Currently, players and monsters can both score critical hits (1 in 20 chance in fact).
The base damage from a normal melee or ranged hit is:
DamageInflicted := Random(LocalMonster.AttackDamage) + LocalMonster.AttackDamageBonus + LocalMonster.GetBonusDamage(LocalPlayer.SubRace) + 1;
This is then subsequently modified by armour:
Absorption := (LocalPlayer.AC / (ARMOURCAPACITYCAP * 8));
DamageInflicted := DamageInflicted * (1 - Absorption);
Result := Trunc(DamageInflicted);
The constant
ARMOURCAPACITYCAP is currently set to
25, hence an AC of
200 (not currently achievable) could potentially block all incoming physical damage (AC is currently linear, unlike EV, which is non-linear).
However, the damage from a critical hit can potentially one-shot a player at lower levels. For a critical melee or ranged hit, the damage is:
DamageInflicted := LocalMonster.AttackDamage + LocalMonster.AttackDamageBonus + LocalMonster.GetBonusDamage(LocalPlayer.SubRace) + 1;
For example, a non-weapon wielding
Greedy Adventurer has a base
AttackDamage of
8 and an
AttackDamageBonus of 1, thus on a crit, it could do
8+1+1=10 points of damage, before absorption by armour. The usual starting AC is
20, which means
1 point of damage is absorbed, leaving
9 to get through.
The only classes that are normally capable of withstanding this at level 1 are Warriors and Knights. If the monster is carrying a magical weapon, then it will do more damage and thus potentially one-shot any character.
I don't like one-shots.
So the question is:
should monsters be able to critically hit? And even if not, should their damage
always be limited to, at maximum, the
player's maximum health - 1? Or some other fraction of the players' health?