Защита

Как-то при планировании это у меня вылетело из головы, ничего сейчас все исправим.

Зашита(Defence) так-же один из важных параметров существ(героя), этот параметр показывает насколько будет НЕ эффективным удар.
Есть несколько вариантов алгоритмов уменьшения урона от показателя защиты, но по сути их два - это вычитание (Warcraft II, Starcraft) из урона показатель, и деление (например Heroes).

Подумав я выбрал первый вариант, потому что он более простой и понятный. Из возможного урона, вычитается защита, но считается что минимальный урон не может быть меньше 1.

Т.к. все параметры существ уже в XML, то для типов защит тоже сделал свой файлик defences.xml.

<defences>
<none id=1 name="нет" value=0/>
<chitin id=2 name="хитиновый покров" value=3/>
</defences>

А у creatures.xml указал <Defence>chitin</Defence>

При генерации существа ему в структуру TMazeCreature устанавливается его базовая защита для его типа.
Но защита также может быть изменена вещами/артефактами, которыми я собираюсь заняться.

Ну и функция урона damage = basic_damage - getDefence(creature), также есть мысль сделать, что урон не может быть меньше не только 1HP, а еще и 10% от урона например.
Т.е. существо бьет на 100HP, броня 200 как-то будет обидно снимать только 1HP, да и очень долго - а так 10HP (10% от 100).
Пока думаю над этим.