aboutsummaryrefslogtreecommitdiff
path: root/src/game/StatSystem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/StatSystem.cpp')
-rw-r--r--src/game/StatSystem.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/game/StatSystem.cpp b/src/game/StatSystem.cpp
index 4cf93760957..87bd8a46825 100644
--- a/src/game/StatSystem.cpp
+++ b/src/game/StatSystem.cpp
@@ -842,16 +842,14 @@ void Creature::UpdateDamagePhysical(WeaponAttackType attType)
float weapon_mindamage = GetWeaponDamageRange(attType, MINDAMAGE);
float weapon_maxdamage = GetWeaponDamageRange(attType, MAXDAMAGE);
- //This formula is not correct
- //The correct one is (Damage_from_AttackPower + Base_Weapon_Damage) * Multiplier
- //We do not know the multiplier, so we assume attack power is about 25% damage
- //float base_value = GetModifierValue(unitMod, BASE_VALUE) + GetTotalAttackPowerValue(attType)/ 14.0f * att_speed;
float base_value = GetModifierValue(unitMod, BASE_VALUE)
+ (weapon_mindamage + weapon_maxdamage) / 6
* GetTotalAttackPowerValue(attType) / (getLevel() * 5);
+ //float base_value = GetModifierValue(unitMod, BASE_VALUE) + GetTotalAttackPowerValue(attType);
float base_pct = GetModifierValue(unitMod, BASE_PCT);
float total_value = GetModifierValue(unitMod, TOTAL_VALUE);
float total_pct = GetModifierValue(unitMod, TOTAL_PCT);
+ float dmg_multiplier = GetCreatureInfo()->dmg_multiplier;
if(!CanUseAttackType(attType))
{
@@ -859,8 +857,8 @@ void Creature::UpdateDamagePhysical(WeaponAttackType attType)
weapon_maxdamage = 0;
}
- float mindamage = ((base_value + weapon_mindamage) * base_pct + total_value) * total_pct ;
- float maxdamage = ((base_value + weapon_maxdamage) * base_pct + total_value) * total_pct ;
+ float mindamage = ((base_value + weapon_mindamage) * base_pct + total_value) * total_pct * dmg_multiplier;
+ float maxdamage = ((base_value + weapon_maxdamage) * base_pct + total_value) * total_pct * dmg_multiplier;
switch(attType)
{