Показать сообщение отдельно
Старый 04.10.2018, 14:58
Appleman вне форума Посмотреть профиль Отправить личное сообщение для Appleman Найти все сообщения от Appleman
  № 97  
Ответить с цитированием
Appleman
 
Аватар для Appleman

Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 479
Да, пардон, я так и понял, что никто ничего не понял. Если честно, то я пока формулировал здесь в форуме, уже сам допёр, но всё равно было бы интересно увидеть комментарии.

Давай на примере. У нас экипирован кинжал. Если мы его смажем ядом, то на уровне Модели данному экземпляру будет присвоен статус-эффект, который, в свою очередь, вызовет изменение свойства "ядовитости" у своего владельца - кинжала. Модель "ловит" это изменение и посылает событие во Вью. Вью выводит иконку "отравлено" рядом с окошком экипированного.

Теперь игрок убирает кинжал. При выполнении соответствующего действия Модель посылает событие об изменении экипированного объекта, Вью убирает изображение кинжала и выводит изображение голых рук. При этом иконка "отравлено" должна пропасть и более нигде не выводиться.

Голые руки - это тоже отдельный объект, поддерживающий присвоение статус-эффектов. Допустим, мы тоже можем намазать их ядом (для рукопожатия смерти ). Программа отрабатывает точно так же, как с кинжалом: присвоение статус-эффекта Модели, событие, вывод иконки.

А теперь внимание. Мы опять меняем экипированный объект, выбрав что-то другое, т.е. "прячем" руки. Здесь по моему замыслу, Вью должна отрабатывать иначе, чем в случае с кинжалом. Так как руки - это непосредственно наш персонаж (по здравой логике, не по архитектуре), то все их статус-эффекты должны не пропадать, а оставаться на экране, только выводиться уже не рядом с окошком экипированного, а рядом с портретом.

То есть при идентичной ситуации, происходящей в Модели (смена экипированного объекта), Вью должна отрабатывать по-разному в зависимости от того, что это за объект. Вот так, надеюсь, понятнее.
__________________
Не сломано - не чини!