Army

Army


Часть 1. Обязательно для допуска.


Базовые типы юнитов:

Unit: Абстрактный воин специализирующийся на нанесении физического урона

SpellCaster: Абстрактный воин специализирующийся на нанесении магического урона


Вполне логично, что все юниты, наносящие магический урон способны наносить и физический. Физический урон, который наносит SpellCaster должен быть небольшим, так же SpellCaster имеет меньшее, по сравнению с Unit, количество очков здоровья.


Юниты, наносящие физический урон:

Soldier [Солдат] : юнит без всяких специальных возможностей

- Rogue [Разбойник] : разбойника невозможно контратаковать

Berserker [Берсерк] : на берсеркера не действует магия

Vampire [Вампир] : при атаке / контратаке потребляет часть жизненных сил противника

Werewolf [Оборотень] : умеет превращаться в волка (в состоянии волка имеет более высокий показатель жизненных сил и атаки, но получает больший урон от магии)


Юниты, способные к магии:

Wizard [Волшебник] : атакует боевыми заклинаниями (лечебные заклинания имеют только половину силы)

Healer [Целитель] : владеет целебными заклинаниями (боевые заклинания имеют только половину силы)

Priest [Священник] : владеет целебными заклинаниями (боевые заклинания имеют только половину силы), наносит x2 урон нежити (Vampire, Necromancer)

Warlock [Чернокнижник] : призывает демонов (класс Demon немного расширяет класс Soldier)

Necromancer [Некромант] : следит за всеми кого атаковал, в случае смерти атакованого юнита, получает часть его жизненных сил


Интерфейсы:

Observer [наблюдатель] : пригодится для Necromancer

Observable [наблюдаемое] : пригодится для всех остальных


Напрячь мозг и:

- Вынести механику атаки в виде отдельных классов

- Вынести заклинания в виде отдельных классов

- Вынести состояния юнитов в виде отдельных классов


- Придумать внятную систему разделения боевых магов и целителей

- Придумать внятную систему маркировки нежити


- Разделить урон на физический и магический

- Реализовать волшебникам книгу заклинаний

- Структурировать исходный код


Дополнительные возможности:

- Вампир может сделать вампиром другого юнита (исключение Werewolf)

- Оборотень может сделать оборотнем другого юнита (исключение Vampire)


Часть 2. Не обязательно для допуска.

Игровое поле.

Смастерить доску размером 8x8, 16х16, 24х24 или других размеров. Каждая клетка доски - это объект Location с координатами. На одной клетке может находиться только один юнит. Соответственно, каждый юнит может перемещаться на какое-то количество клеток вперед, назад, вверх или вниз.


Нововведения:

- У каждого юнита есть радиус атаки и дальность ходьбы.

- У каждого заклинания есть радиус действия.

Mount [Ездовые животные] - обладатель ездового животного может передвигаться на увеличенное количество клеток.

Archer [Лучник] - умеет наносить урон на расстоянии.

- Солдата можно сделать лучником.


Часть 3. Пишу так, чисто поржать. Все равно никто не сделает.


Визуализация:

- Нарисовать доску в консоли.

- Если в клетке находится юнит - визуально это обозначить.

Report Page