Условия:
- Для выполнения задания необходимо использовать Unity 2018+ и C# без использования сторонних библиотек и кода.
- Визуальное исполнение в плане текстур и анимаций не имеет значение, для упрощения работы можно просто использовать геометрические фигуры.
- Итоговый результат должен хорошо работать на любом мобильном устройстве.
- Приоритет на реализации в 2D
- Приветствуются пояснения из разряда "Вот тут я сделал вот так, чтобы сэкономить время, но в реальных условиях я бы сделал вот так".
Задача:
- Создать игровую сцену на которой расположить поле битвы в виде шахматной доски 6х8 клеток
- Добавить в интерфейс кнопку "Начать бой"
- При нажатии на кнопку "Начать бой":
- Кнопка "Начать бой" скрывается
- С правой стороны (правые 3 ряда) должны появится юниты Команды 1
- С левой стороны (левые 3 ряда) должны появится юниты Команды 2
- При каждом начале боя на каждой стороне должно появляться рандомное количество юнитов от 2 до 5
- Запускается бой юнитов
- У юнитов должна быть полоса здоровья которая будет уменьшаться при получении урона от юнита противоположной команды
- Когда у юнита падает жизнь до нуля, он уничтожается
- Когда все юниты одной из команды уничтожены, все перезапускается и идет ожидание нажатия на кнопку "Начать бой"
Логика боя:
- После появления юнитов, они должны найти ближайшего (близость определяется количеством ходов по клеткам, а не прямым расстоянием) врага (юнит противоположной команды) до которого они могут дойти и начать движение к нему
- Юниты должны ходить по шахматным ячейкам, т.е. поиск пути и передвижение идет в рамках сетки 6х8. По горизонтали, вертикали и диагонали
- Ходы должны рассчитываться очередно и после каждой смены ячейки. Т.е. после того как юнит перешел на новую ячейку, повторно пересчитывать путь и искать ближайшего врага.
- После того как в соседней ячейки окажется враг, юнит должен атаковать его
- После того как враг уничтожен, должен начаться поиск следующей цели, и так пока не будут уничтожены все юниты противоположной команды
- Юниты должны атаковать по прямой и диагонали
На что будет обращено внимание:
- Качество реализации
- Понятность и чистота кода
- Производительность и оптимизация
- Работоспособность