Тестовое задание
Необходимо реализовать игру в стиле Tower Defence. Противники двигаются по заданному маршруту с целью нанести урон башне игрока, которая находится на конце их пути. На определенных точках маршрута расставлены защитные сооружения цель которых не допустить противников до базы игрока.
Ресурсы: У игрока есть лишь 1 ресурс - золото У игрока N жизней, которые будут отнимать своим уроном противники, которые смогут дойти до базы.
Характеристики врагов
- Количество здоровья;
- Урон;
- Количество золота получаемое за убийство.
Противники в игре появляются волнами, где K - номер волны. Количество противников в волне - случайная величина от K до K + X. Каждую волну одна или несколько характеристик противников повышаются. Время между активацией волн задается в конфигурационном файле игры.
Маршрут перемещения противников известен заранее и не меняется в процессе игры
Защитные башни
Защитные сооружения игрока расставлены на маршруте следования противников и не меняют свое положение в процессе игры. Во время начала игры на поле стоят все доступные защитные башни, но начального уровня без улучшений;
Характеристики:
- Урон от выстрела;
- Скорострельность - количество снарядов в единицу времени
Выстрел из укрепления попадает в цель мгновенно.
Для реализации фортификаций могут быть 2 варианта:
Простой
Укрепления просто расположены на поле и работают с указанной для них конфигурацией.
Усложненный
При нажатии на защитное сооружение происходит его “улучшение“, при котором: Списывается стоимость улучшения в золоте; Увеличиваются характеристики фортификации на заданное значение;
Окончание игры
Игра заканчивается когда здоровье базы игрока достигает 0. Игроку показывается окно окончания матча с указанным на нем количеством побежденных противников и возможность перезапустить игру.
UI На экране необходимо отображать следующее: Здоровье игрока Текущее значение золота Стоимость улучшения фортификации Окно поражения
Что будет оцениваться Целостность написанной системы; Расширяемость системы; Использование механизмов передачи/внедрения зависимостей между модулями системы; Соответствие требованиям ТЗ; Работа с UI (техническая часть)
Что не будет оцениваться: Детальность картинки и UI, внешний вид; Качество моделей и ассетов;