Механизм реализации¶
Космос¶
Сцена космоса находится: res://blokoj/kosmo/scenoj/space.tscn. В сцене сразу есть центральная звезда, камера (res://blokoj/kosmo/scenoj/main_camera.tscn) и управление (UI). Остальные объекты, появляющиеся в космосе создаются автоматически в зависисмости от данных, пришедших с сервера.
В сцене звезды (res://blokoj/kosmo/scenoj/star.tscn) находится освещение (WorldEnveronment).
Объекты¶
Все объекты создаются на основании полученных данных с сервера. Список объектов храниться в Global.objektoj. Запрос объектов с сервера происходит в моменты:
- смены мира
- космоса на станцию
- станции на космос
- куба в космосе (на 24.11.2020 не реализовано).
Стрельба¶
Сцена универсального лазера - res://blokoj/kosmosxipoj/scenoj/moduloj/laser.tscn. У первого боевого лазера скрипт такой-же.
Визуализация стрельбы и результаты заложены в скрипте лазера.
За разрушения лазером отвечает Godot-сервер.
Для выстрела необходимо цель взять в прицел. Отправляется задача (если проекта ещё нет, то открывается проект) на сервер с соответствующей категорией. С сервера приходит по подписке постановка цели. Если расстояние до цели больше, чем разрешено, то цель снимается Godot-сервером. Следующий шаг - стреляем по цели. Отправляется на сервер задача со стрельбой. Godot-сервер анализирует результат выстрела.
Если успешный выстрел:
- Если не добывающий лазер, то отправляем на сервер разрушение цели на уровен повреждения
- Если выстрел добывающий лазером не по астероиду:
2.1. Отправляется на сервер разрушение цели на уровен повреждения, уменьшенное в два раза
- Выстрел по астероиду добывающим лазером, отправляем на сервер изменения:
3.1. Убавляем минерала астероиду
3.2. Добавляем (при отсутствии создаём) на склад (е) корабля ресурс
3.3. Уменьшаем астероиду объём
По результату снятия прицеливания приходит закрытие задачи прицеливания и если более целей нет, то закрытие проекта стрельбы
Модели кораблей¶
У каждого корабля должны быть элементы:
- Кабина с местом для хранения (куда сесть аватару)
- Кузов с местом для хранения (либо общий груз, либо специализированный как боеприпасы для примера)
- Двигател(ь/и)
Модели кораблей создаются в реальном размере без масштабирования.