Я делаю 2D-игру сверху вниз и хочу иметь много разных типов атак. Я хотел бы сделать атаки очень гибкими и совместимыми, как работает «Привязка Исаака». Вот список всех предметов коллекционирования в игре . Чтобы найти хороший пример, давайте посмотрим на предмет Spoon Bender .
Ложка Бендера дает Исааку возможность стрелять в слезы.
Если вы посмотрите на раздел «Синергия», то увидите, что его можно комбинировать с другими предметами коллекционирования для получения интересных, но интуитивно понятных эффектов. Например, если он сочетается с «Внутренним глазом» , это «позволит Исааку сделать несколько выстрелов в самонаводящихся местах одновременно». Это имеет смысл, потому что Внутренний Глаз
Дает Исааку тройной выстрел
Какая хорошая архитектура для дизайна таких вещей? Вот решение грубой силы:
if not spoon bender and not the inner eye then ...
if spoon bender and not the inner eye then ...
if not spoon bender and the inner eye then ...
if spoon bender and the inner eye then ...
Но это очень быстро выйдет из-под контроля. Какой лучший способ спроектировать такую систему?