Stats
Besides attributes and skills, the player has the following stats in Arx Fatalis. These cannot be directly modified by spending points when leveling up but instead are computed from the player level, attributes, skills, equipped items and active spells.
Health
Also known as "Life" in the source code.
raw_max_health = raw_constitution * (level + 2) full_max_health = full_constitution * (level + 2)
Player health
is never above full_max_health
. If health
drops to 0
the player dies - duh.
Mana
base_max_mana = raw_mental * (level + 1) full_max_mana = full_mental * (level + 1);
Player mana
is always in the range [0, full_max_mana]
.
Armor Class
base_armor_class = max(1, floor(base_defense / 10 - 1))
Equipped items can increase or decrease the armor class:
modabs_armor_class = ∑<item>[ modabs(<item>, armor_class) ]
Alternatively, equipped items can also add or remove a percentage of the armor class:
modrel(<item>, armor_class) = modpercent(<item>, armor_class) / 100 modrel_armor_class = ∑<item>[ modrel(<item>, armor_class) ] * ( base_armor_class + modabs_armor_class )
Armor/lower armor spells subtract/add one point per caster level to the armor class. Other spells don't modify the armor class directly.
modspell(armor_class, Armor, <caster_level>) = 1 * <caster_level> modspell(armor_class, Lower armor, <caster_level>) = -1 * <caster_level> modspell(armor_class, <spell>, <caster_level>) = 0
modspell_armor_class = ∑<spell>,<caster_level>[ modspell(armor_class, <spell>, <caster_level>) ]
TODO: Clarify caster_level
!
The full armor class is calculated as:
full_armor_class = max(0, base_armor_class + modabs_armor_class + modrel_armor_class + modspell_armor_class + cheats)
TODO: Why use base_defense
(via base_armor_class
) and not full_defense
for full_armor_class
? (bug #322)