Stats: Difference between revisions
Line 98: | Line 98: | ||
== Poison Resistance == | == Poison Resistance == | ||
base_resist_poison = floor(raw_constitution * 2 + ( | base_resist_poison = floor(raw_constitution * 2 + base_defense / 4 | ||
fullbase_resist_poison = floor(full_constitution * 2 + full_defense / 4 | |||
<font color="dimgray"> | |||
Arx Fatalis 1.21 and Arx Libertatis 1.1.x and earlier have a bug causing the <code>fullbase_resist_poison</code> value to be calculated as (ie: not including attribute modifiers from items and spells): | |||
<font color="dimgray">fullbase_resist_poison = floor(raw_constitution * 2 + full_defense / 4</font> | |||
This is fixed in later Arx Libertatis versions. | |||
</font> | |||
Equipped items can increase or decrease the poison resistance: | Equipped items can increase or decrease the poison resistance: | ||
Line 109: | Line 114: | ||
modrel(<item>, resist_poison) = modpercent(<item>, resist_poison) / 100 | modrel(<item>, resist_poison) = modpercent(<item>, resist_poison) / 100 | ||
modrel_resist_poison = ∑<item>[ modrel(<item>, resist_poison) ] * ( | modrel_resist_poison = ∑<item>[ modrel(<item>, resist_poison) ] * ( fullbase_resist_poison + modabs_resist_poison ) | ||
The full magic resistance is calculated as: | The full magic resistance is calculated as: | ||
full_resist_poison = max(0, | full_resist_poison = max(0, fullbase_resist_poison + modabs_resist_poison + modrel_resist_poison + <i>cheats</i>) | ||
<br> | <br> |
Revision as of 09:36, 31 August 2013
Stats are the values controlling how well a character can perform various activities. The player has the following stats in Arx Fatalis. Some stats can be increased when leveling up, and are influenced by equipped items.
Attributes
- Main article: Attributes.
Attributes are the most basic Stats|player stats - they can be increased when the character levels up, but are not affected by any other stats. There are four different attributes in Arx Fatalis: Strength, Mental, Dexterity and Constitution.
Skills
- Main article: Skills.
Skills define how good the player is at various groups of tasks. Like attributes, they can be assigned points by the player for each level. Unlike attributes however, their full values are also influenced by the player's attributes. In Arx Fatalis the player has nine different skills: Stealth, Technical, Intuition, Ethereal link, Object knowledge, Casting, Close combat, Projectile, Defense.
Other stats
The remaining player stats cannot be directly modified by spending points when leveling up but instead are computed from the player's attributes and skills.
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)) fullbase_armor_class = max(1, floor(full_defense / 10 - 1))
Arx Fatalis 1.21 and Arx Libertatis 1.1.1 and earlier have a bug causing the fullbase_armor_class
value to be calculated as (ie: not including skill modifiers from items and spells):
fullbase_armor_class = base_armor_class
This is fixed in later Arx Libertatis versions.
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) ] * ( fullbase_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>) ]
The full armor class is calculated as:
full_armor_class = max(0, fullbase_armor_class + modabs_armor_class + modrel_armor_class + modspell_armor_class + cheats)
Magic Resistance
base_resist_magic = floor(raw_mental * (2 + base_casting / 100)); fullbase_resist_magic = floor(full_mental * (2 + full_casting / 100));
Arx Fatalis 1.21 and Arx Libertatis 1.1.1 and earlier have a bug causing the fullbase_resist_magic
value to be calculated as (ie: not including attribute and skill modifiers from items and spells):
fullbase_resist_magic = base_resist_magic
This is fixed in later Arx Libertatis versions.
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) ] * ( fullbase_resist_magic + modabs_resist_magic )
The full magic resistance is calculated as:
full_resist_magic = max(0, fullbase_resist_magic + modabs_resist_magic + modrel_resist_magic + cheats)
Poison Resistance
base_resist_poison = floor(raw_constitution * 2 + base_defense / 4 fullbase_resist_poison = floor(full_constitution * 2 + full_defense / 4
Arx Fatalis 1.21 and Arx Libertatis 1.1.x and earlier have a bug causing the fullbase_resist_poison
value to be calculated as (ie: not including attribute modifiers from items and spells):
fullbase_resist_poison = floor(raw_constitution * 2 + full_defense / 4
This is fixed in later Arx Libertatis versions.
Equipped items can increase or decrease the poison resistance:
modabs_resist_poison = ∑<item>[ modabs(<item>, resist_poison) ]
Alternatively, equipped items can also add or remove a percentage of the poison resistance:
modrel(<item>, resist_poison) = modpercent(<item>, resist_poison) / 100 modrel_resist_poison = ∑<item>[ modrel(<item>, resist_poison) ] * ( fullbase_resist_poison + modabs_resist_poison )
The full magic resistance is calculated as:
full_resist_poison = max(0, fullbase_resist_poison + modabs_resist_poison + modrel_resist_poison + cheats)
Damages
This is the level of damage the player can inflict in one hit:
base_damages = max(1, (raw_strength - 10) / 2)
Equipped items can increase or decrease the damages:
modabs_damages = ∑<item>[ modabs(<item>, damages) ]
Alternatively, equipped items can also add or remove a percentage of the damages:
modrel(<item>, damages) = modpercent(<item>, damages) / 100 modrel_damages = ∑<item>[ modrel(<item>, damages) ] * base_damages
TODO: Why not include modabs_damages
in the scale for modrel_damages
like with other stats?
The full damages are calculated as:
full_damages = max(1, base_damages + modabs_damages + modrel_damages + full_close_combat / 10 + cheats)
TODO: Why use raw_strength
(via base_damages
) and not full_strength
for full_damages
? (bug #322)
TODO: Why use full_close_combat
in full_damages
but not base_close_combat
in base_damages
?
Aim Time
This is the time the player needs to charge the weapon to inflict maximum damages.
Equipped items can set the aim time:
modabs_aim_time = ∑<item>[ modabs(<item>, aim_time) ]
if(floor(modabs_aim_time) <= 0) base_aim_time = 1500 else base_aim_time = floor(modabs_aim_time)
TODO: This does not make sense if more than one item modifies aim_time.
The full aim time is calculated as:
full_aim_time = max(1500, base_aim_time - floor(full_dexterity * 20 - 200))
Some cheats set the aim time to 100.