Показать сообщение отдельно
Старый 03.02.2017, 23:36
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 21  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Я то, вообще, имел ввиду что можно попытаться абстрагировать все к одному классу, типа
Код AS3:
var skill:Skill = new Skill(0xFFA099); // ID способности в таблице — для заполнения всех свойств способности
_player.addSkill(skill); // способность добавляется в _skills:Vector.<Skill> персонажа
класс Skill по-сути дата-обжект, просто хранилище всех настроек способности, что позволяет унифицировать дальнейшую обработку, не разбираясь, фаербол это или хилинг, невидимость или цепная молния.

callme, Вам не удастся вытянуть меня на очередной холивар по MVC, их тут было более чем достаточно)) Я даже на описание топикстартером "толстых" контроллеров не стал реагировать, хотя являюсь их ярым противником — настолько логично он описал свое видение MVC применительно к своему случаю.

Добавлено через 4 минуты
Цитата:
В юнитах не стоит проблема добавления/изменения функциональности.
Тогда, конечно, Декоратор не имеет смысла.

Добавлено через 15 минут
Почему я использовал здесь _player.addSkill(skill); а не, допустим, _player.skills.push(skill);
Потому что метод позволяет добавить дополнительные параметры, не связанные с самой способностью — например, время наличия способности у персонажа, если оно не бесконечно и способность должна исчезнуть через 30 секунд (допустим, вызвана употреблением эликсира — тогда это время является свойством эликсира, а не способности).

Добавлено через 20 минут
И да)) наверное совсем не обязательно грузить память целым объектом, экземпляром класса Skill. Наверняка достаточно хранить только ID и тащить данные из таблицы только тогда, когда надо будет просчитать применение и создать анимации эффектов.
__________________
Reality.getBounds(this);