Я владею и разрабатываю онлайн-текстовую браузерную MMORPG, я планирую внедрить систему перков по крайней мере с 20+ перками, эти парки в основном настраивают некоторые вещи, например, перк, который дает 5% скидку на купленные вами лакомства, или перк, который дает вам на 10% больше шансов на убийство вашего врага или перка, который увеличивает ваше здоровье на небольшой коэффициент. Все эти парки будут кодироваться на разных страницах, например, скидка на перк должна быть закодирована на странице, называемой магазином. php) остальные должны быть закодированы на разных страницах
Проблема в том, что это не централизовано. Это будут фрагменты кода на разных страницах, и если мы захотим их удалить, это будет ад. Мне было интересно, будет ли способ централизовать все это. Вдобавок к моей голове, у нас будет таблица перков, которая будет включать в себя все льготы. Есть ли способ централизовать такую вещь? Каков наилучший способ централизовать настройки в коде?
В качестве простого примера, перк, который увеличивает ваш шанс, сделал бы это в attack.php
$chance = BattlePvP($player_id);
if(PerkEquipped($player_id, "INCREASECHANCE")) $chance += $perk_increase;
Они будут разбросаны по всему коду .. Так что вопрос Как централизовать условные настройки в коде на разных страницах?
У вас есть метод в базовом классе (или игрок непосредственно), как modifyChance(chance)
которая проверяет, есть ли перк, и если да, возвращает увеличенный шанс, в противном случае возвращает переданное значение шанса.
Код выше, таким образом, становится:
$chance = modifyChance(BattlePvP($player_id));
Вы можете использовать шаблон декоратора. Декоратор часто используют для украшения предметов, например, пицца может иметь много разных верхушек.