04.07.2018, 12:59
|
|
Регистрация: May 2008
Адрес: Питер
Сообщений: 385
|
Ну, если у нас уже есть экземпляр, то чтобы временно изменить свойства персонажа, можно оборачивать его в Декоратор.. Будет какой-нибудь var zombie = ZombieDecorator(character). И подменять им персонажа. Декоратор будет модифицировать воздействия нужным образом.
Либо, если хочется скрыть все это внутри персонажа, то можно и внутрь него внедрить декоратор. При этом публичные методы не будут знать, с кем именно они работают - они будут работать просто с интерфейсом iChar каким-нибудь. Просто в какой-то момент ты будешь подменять чара декоратором
Добавлено через 2 часа 26 минут
а еще можно через по умолчанию пустой Адаптер все влияния, такие, как дамаг и прочее.. И при разных воздействии просто втыкать нужный адаптер в метод setAdapter - ZombieAdapter, IceAdapter, VampierAdapter, StoneAdapter и т.п. ..
__________________
while(live()) { hope(); }
|