Создание игрового поля и управление юнитами
Создан класс Клетка и класс Сетка для размещения юнитов. Созданы префабы и размещены на сцене. Скрипт управляет юнитами, командами и иерархией сетки (7×7 для одной команды, 3x5x6x0x8 — для другой). Создан объект-пустышка, принадлежащий команде террористов, определяющий точку установки бомбы. Этот объект связан со скриптом, управляющим игровым процессом.
Спаун юнитов, награды и видимость
Скрипт управляет спауном юнитов каждой команды и их логикой. Реализована логика активации и сброса состояния юнитов. Метод контроля видимости скрывает вражеских юнитов от игрока. Реализована система наград бойцам в конце раунда. Созданы Canvas и кнопка «Старт раунда». Клеткам заданы материалы, отображающие доступность для размещения юнитов. Скрипт BattleFlow отвечает за спаун юнитов и управление видимостью команды террористов. Логика начала и конца раундов включает/выключает видимость террористов, передаёт им координаты точки закладки бомбы и активирует/деактивирует бойцов.
Компонент кошелька, тени и геймплей
Для каждого юнита создан компонент Кошелек, отвечающий за покупательскую способность. Наличие теней обусловлено отсутствием в CS:GO модели персонажа, так как игрок управляет только камерой. Реализованы перемещение, стрельба, нанесение и получение урона. Созданы классы Мусор и Атакер для логики перемещения и сражений. Создана машина состояний юнита и компонент Эквипмент для управления оружием. Реализованы методы инициализации, сброса состояния, получения урона (ReceiveDamage) и смерти (Die). Класс Дизолвер отвечает за исчезновение юнита после смерти. Машина состояний управляет поведением юнитов: удержание позиции, сражение, перемещение к точке установки бомбы (для террористов).
Оружие, анимация и интерфейс
Юнитам добавлены компоненты. Настроена анимация. Оружие из CS:GO добавлено в игру. Создан класс WeaponData, наследуемый от ScriptableObject, для хранения данных об оружии. Создан класс Bullet для поведения пули. Создан префаб пистолета Beretta и заполнен данными. Beretta установлен как оружие по умолчанию. Исправлен логотип. Проведены тесты боя, настроено поведение пули на NavMesh. Декорации адаптированы под NavMesh. Настроена камера. Создан интерфейс для отображения состояния бойцов (здоровье, броня, оружие, финансы) с кнопкой открытия магазина.
Перестановка юнитов, магазин и финальные штрихи
Реализована перестановка юнитов и передача контроля над бойцами. Создан интерфейс магазина с иерархией объектов оружия (пистолеты, винтовки, пистолеты-пулеметы) и покупкой бронежилетов. Выполнены финальные работы: настройка косметики, зон плента, сетки, подсветки при перестановке юнитов, метки плента. Заменен вражеский боец, добавлен финальный эффект на карте Dust 2. Добавлен сброс оружия при смерти.