Моя программа - это справочное приложение по настольной игре. В ней довольно много параметров (число монстров на карте, отслеживание игровых событий, здоровье игроков и др.), следить за которыми игрокам трудно в течение долгого времени.
Однако возникла следующая проблема - у данной настольной игры есть дополнения, расширяющие список возможных событий. Покажу на конкретном примере (постараюсь не слишком сильно углубляться в детали игры):
Каждый раунд в одной из игровых зон (одной из 12) должны появиться Врата в Иной мир. Если в этой зоне уже есть Врата, происходит событие "Наплыв монстров". Для этих двух событий были сделаны кнопки, при нажатии которых выводятся подсказки (что происходит в этом случае), а приложение будет показывать, что открыто столько-то врат, на карте столько-то монстров (если Врат слишком много, игра проиграна). Игроки могут запечатать врата, положив туда особую метку. В локациях с меткой Врата не появляются.
В дополнении к этой игре появилось событие "Прорыв Врат" - если в локации есть метка, она снимается, и Врата появляются как обычно.
А теперь вопрос: какие есть инструменты в Java, позволяющие выборочно добавлять элементы и механики в игру? Причем не постоянными if-проверками при каждом чихе, а так, чтобы в начале игры пользователь выбирает используемые дополнения (из-за сложности игры обычно используют одно дополнение из возможных) в начале игры, после чего эти элементы (кнопки, прослушиватели событий и т. д.) добавляются в текущую игру.
В качестве графической платформы используется JavaFX, приложение для компьютера.
P.S. Настольная игра называется "Ужас Аркхэма" (вдруг, кто-то знает).
P.P.S. Я новичок в Java, так что многих особенностей языка пока ещё не знаю.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Здравствуйтекак получить полное число, которое выходит за пределы типа long, и соответственно выдает не правильный ответ
Как реализовать метод select, чтобы отрабатывались переходы selectOne, selectTwo при вызове метода?
Каким способом можно пройтись по всем значениям производительнее (ключи не нужны) в HashMap?
Что будет если в TreeMap запросить значение по несуществующему ключуСработает исключение или вернёт null