Цитата:
Сообщение от Appleman
.. сразу же открываю класс IDs и вписываю туда статическую константу
Код AS3:
static public const PROP_STRENGTH: String = "strength"
Всё. Теперь где бы мне ни потребовалось передать обращение (подчёркиваю, не обратиться, а именно передать необходимость обращения) к свойству силы, я знаю как это сделать.
|
В принципе, это норм, только класс я бы назвал CharacterProperty и значения использовал не строковые, а целочисленные. (Int, Uint). Строки - жирные и тормознутые.
Цитата:
Сообщение от Appleman
Например, я записываю таблицу условий на выполнение действия или использования предмета в вектор:
Код AS3:
_activeConds.push(new ACRange(IDs.PROP_STRENGTH, 15)); //Наследник класса проверки условий
|
Вот это фигня какая-то, я бы сделал по другому, описал 2 таблички - "Условия" и "Действия". Допустим, в игре есть используемые предметы, тогда, сущность "Предмет" будет выглядеть так:
Код:
class Item {
var id:Uint; // ID Предмета
var useCondition:Uint; // ID Условия, которое должно выполняться для использования предмета
var useAction:Uint; // ID Выполняемого действия.
}
class Condition {
var id:Uint;
var minStrength:Number;
}
class Action {
var id:Uint;
var type:Uint; // Тип действия. (ActionType)
var strength:Number;
var agility:Number;
}
class ActionType {
static const ADD:Uint = 1; // Добавить.
static const MUL:Uint = 2; // Умножить.
static const SET:Uint = 3; // Установить.
}
Обрати внимание, как сущности связаны между собою, я это хочу донести. Один предмет может ссылаться на одно и то-же действие, например. (Предметы id=2, id=3 могут иметь общее условие condition=8)
Или так:
Код:
class Item {
var id:Uint; // ID Предмета
var use; // ID Использоания.
}
class Use {
var id:Uint; // ID Применения.
var condition:Uint; // ID Условия, которое должно выполняться для этого использования.
var action:Uint; // ID Выполняемого действия.
}
Сперва нужно разобраться со структурой данных и связями между ними.
Все связи должны быть так-же выражены в отдельных таблицах (Class), а не разбросаны по коду в виде иерархий наследования или огромных стеков из if.
пс. Больше я не буду предлагать решение для задачи, которую не знаю целиком.