Stats: Difference between revisions
No edit summary |
No edit summary |
||
Line 67: | Line 67: | ||
full_resist_magic = max(0, base_resist_magic + modabs_resist_magic + modrel_resist_magic + <i>cheats</i>) | full_resist_magic = max(0, base_resist_magic + modabs_resist_magic + modrel_resist_magic + <i>cheats</i>) | ||
<b><font color="red">TODO</font></b>: Why use <code>raw_mental</code> and <code>base_casting</code> (via <code>base_resist_magic</code>) and not <code>full_mental</code> and <code>full_casting</code> for <code>full_armor_class</code>? ({{Issue|322}}) | |||
<br> |
Revision as of 14:39, 10 July 2012
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)
Magic Resistance
base_resist_magic = floor(raw_mental * 2 * (1 + base_casting / 200));
Equipped items can increase or decrease the magic resistance:
modabs_resist_magic = ∑<item>[ modabs(<item>, resist_magic) ]
Alternatively, equipped items can also add or remove a percentage of the magic resistance:
modrel(<item>, resist_magic) = modpercent(<item>, resist_magic) / 100 modrel_resist_magic = ∑<item>[ modrel(<item>, resist_magic) ] * ( base_resist_magic + modabs_resist_magic )
The full magic resistance is calculated as:
full_resist_magic = max(0, base_resist_magic + modabs_resist_magic + modrel_resist_magic + cheats)
TODO: Why use raw_mental
and base_casting
(via base_resist_magic
) and not full_mental
and full_casting
for full_armor_class
? (bug #322)