Системы - ScreamingScythe/botgame GitHub Wiki
Системы
Системы будут захардкодены в игровую механику, потому описывать всякие их цифры и показатели вижу нецелесообразным. Игроку будет доступно общее описание системы (всяких ее пассивных бонусов в частности), а также:
Базовые хар-ки
- Название
- Описание
- Выцеливаемость (bool)
- Повреждаемость (bool) (не бывает выцеливаемых, но неповреждаемых систем)
- HP
- Броня
Динамические характеристики
- Текущее HP
##API системы Это:
- список методов с аргументами, которые система позволяет вызывать юзеру.
- список действий, которые система позволяет совершать юзеру.
Волновать это должно в основном юзера. Если его шасси в рантайме попробует обратится к несуществующей системе, оно ребутнется. Мы ничего проверять не хотим и не будем. Работа этого самого API также зависит от HP системы.
##Установка системы Тут нам надо создать интересную траблосистему, дабы не все везде ставилось. Система будет иметь:
- массу (double)
- список портов (string [])
Чтобы система влезла на шасси, она должна пролезать по массе и ей должно хватать портов. Порты это просто некие сферические сущности типа USB или там XYZ или docking place или power cord. Система сама может добавлять портов на шасси. Система может требовать несколько портов одного типа и порождать новые порты для других систем. Шасси имеет ограниченное кол-во портов разного типа, и соответственно меняются возможности по установке систем. Для нас также важен порядок установки систем: это упростит проверки. Юзер говорит нам, что хочет поставить 5 систем в конкретном порядке и мы их ему ставим.