Показать сообщение отдельно
Старый 18.05.2018, 03:45
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 20  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Цитата:
Сообщение от Appleman Посмотреть сообщение
Я с тобой тут поспорю. Во-первых, условия могут отличаться как количественно, так и качественно. В твоём варианте получается, что любое количественное изменение (сила не 5, а 10) - это появление нового экземпляра
Да, всё верно, это будет новое условие. (Новая запись в таблице)

Цитата:
Сообщение от Appleman Посмотреть сообщение
Или ты предлагаешь воссоздавать в Condition все свойства проверяемого объекта и устанавливать значения для тех, которые должны быть проверены? Там ещё экипированные предметы, статус-эффекты и хрен знает что ещё.
Да. У тебя же характеристики персонажа не являются отдельными сущностями, они у тебя - свойства Character. Вот если-бы у тебя характеристики были отдельными сущностями, как например:
Код:
class Attribute {
    var id:Uint;
    var value:Number;
}
class AttributeData {
    var id:Uint;
    var min:Number;
    var max:Number;
    var name:String;
}
То тогда бы ты мог добавить отдельное под. условие:
Код:
class ConditionAttribute {
    var id:Uint; // ID Записи.
    var condition:Uint; // ID Условия, к которому относится эта запись.
    var minValue:Number;
    var maxValue:Number;
}
Аналогично для условий по эффектам, предметам или любым другим сущностям. Получается, что Condition может содержать в себе несколько ConditionAttribute, ConditionItem и т.п.

Цитата:
Сообщение от Appleman Посмотреть сообщение
Во-вторых, при таком подходе имеем туеву хучу плохо читаемых объектов. Как потом разбираться, что из себя представляет Condition id8 или id28? Imho, запись вроде {IDs.PLAYER, IDs.PROP_STRENGTH, 15} читается лучше.
Если заполнение в блокноте становится слишком сложным - пишется админка.

Цитата:
Сообщение от Appleman Посмотреть сообщение
В-третьих, я не совсем понял, откуда метод, выполняющий проверку условия id8 "знает", что свойство minStrength в экземпляре Condition связано именно со свойством _strength персонажа, а не с каким-нибудь другим?
Condition относится к Character, поэтому повторяет все его свойства, по которым нужно что-то проверить. ConditionItem будет иметь свойства для сравнения Item, ConditionEffect - Effect.
__________________
Дети не должны знать о своих родителях