Я занимаюсь разработкой космического шутера с настраиваемыми кораблями. Вы можете увеличить силу любого количества свойств корабля через пару радарных карт *. Внутренне я представляю каждый корабль как подкласс SpaceObject
класса, который содержит ShipInfo
, который описывает различные свойства этого корабля.
Я хочу разработать относительно простой API, который позволит мне вводить блок относительных сил (от минимума до максимума, который позволяет радиолокационная карта) для всех свойств корабля (некоторые из которых являются упрощениями базового фактического набора свойств) и вернуть класс ShipInfo, который я могу дать классу PlayerShip
(это объект, который создается как корабль игрока).
Я могу самостоятельно разработать код для преобразования упрощенных и фактических свойств, но мне хотелось бы получить некоторые рекомендации относительно того, какую архитектуру предоставить, чтобы минимизировать боль при взаимодействии с этим кодом переводчика (то есть без методов с 5+ аргументы или какая-то другая ерунда). У кого-нибудь есть идеи?
* = на самом деле еще не реализовано, но это план.