Тип атаки
Вы должны не только учесть объем наносимого боевой единицей ущерба, но также и подумать о том, каким именно способом этот ущерб будет наноситься. Будет ли подразделение выпускать во врага ракеты, или оно будет стрелять пулями, воспользуется лазером, или каким-либо другим оружием?
Есть несколько различных методов назначения боевым подразделениям типов атаки. Можно либо назначать параметры каждому подразделению индивидуально, либо создать несколько глобальных наборов параметров, и назначать их различным подразделениям. Я предпочитаю использовать глобальные параметры, поскольку это упрощает назначение одного и того же типа атаки нескольким различным подразделениям. Многие игры на рынке также следуют этим путем, поскольку он более эффективен. Взгляните, например, на следующую таблицу:
Название подразделения | Легкий танк | ||
Наносимый ущерб | 100 | ||
Скорострельность | 5 | ||
Косвенный ущерб от оружия | 0 | ||
Изображение атаки | laser.bmp | ||
Мощность брони | 100 | ||
Скорость передвижения | 50 |
В данном примере легкий танк может причинить вражескому подразделению до 100 единиц ущерба, стреляет пять раз в минуту, для изображения оружия используется файл laser.bmp, оборудован броней мощностью 100 единиц и за один ход может переместиться на 50 единиц. Что, если теперь вы захотите создать средний танк, оборудованный тем же вооружением, но имеющий броню мощьностью 150 единиц и способный передвинуться за один ход только на 40 единиц? Конечно, вы можете заново задать все значения параметров атаки. В результате ряд параметров будет дублироваться и вы получите настоящую головную боль, если решите внести глобальные изменения в параметры вооружений.
Гораздо лучше сгруппировать параметры нападения в типы атаки. Взгляните на следующий пример:
Тип атаки | лазер | ||
Наносимый ущерб | 100 | ||
Скорострельность | 5 | ||
Косвенный ущерб от оружия | 0 | ||
Изображение атаки | laser.bmp | ||
Название подразделения | легкий танк | ||
Тип атаки | лазер | ||
Мощность брони | 100 | ||
Скорость передвижения | 50 | ||
Название подразделения | средний танк | ||
Тип атаки | лазер | ||
Мощность брони | 150 | ||
Скорость передвижения | 40 |
В данном примере я создаю тип атаки с названием «лазер». Затем я создаю два подразделения, которые используют один и тот же тип атаки, но отличаются параметрами защиты и скоростью передвижения. Эта ситуация показана на рис. 8.5.
Рис. 8.5. Два типа подразделений используют один тип атаки
На рис. 8.5 оказаны легкий и средний танк, которые используют один и тот же тип атаки. Если вы используете данный метод, вам достаточн изменить тип атаки, и эти изменения будут действовать для всех использующих данный тип подразделений.
Переменная m_iType хранит число, соответствующее данному типу атаки. Это работает точно так же, как и для типов защиты.