aboutsummaryrefslogtreecommitdiff
path: root/src/game/Creature.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/Creature.cpp')
-rw-r--r--src/game/Creature.cpp28
1 files changed, 12 insertions, 16 deletions
diff --git a/src/game/Creature.cpp b/src/game/Creature.cpp
index d69c083417a..50fa95337f6 100644
--- a/src/game/Creature.cpp
+++ b/src/game/Creature.cpp
@@ -1390,22 +1390,18 @@ void Creature::SelectLevel(const CreatureInfo *cinfo)
SetModifierValue(UNIT_MOD_HEALTH, BASE_VALUE, health);
SetModifierValue(UNIT_MOD_MANA, BASE_VALUE, mana);
- // damage
- //uint32 attackpower = cinfo->attackpower * level / 60;
- //uint32 rangedattackpower = cinfo->rangedattackpower * level / 60;
- //damagemod *= 0.75f;
- SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, cinfo->mindmg);
- SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, cinfo->maxdmg);
- SetBaseWeaponDamage(OFF_ATTACK, MINDAMAGE, cinfo->mindmg);
- SetBaseWeaponDamage(OFF_ATTACK, MAXDAMAGE, cinfo->maxdmg);
- SetBaseWeaponDamage(RANGED_ATTACK, MINDAMAGE, cinfo->minrangedmg);
- SetBaseWeaponDamage(RANGED_ATTACK, MAXDAMAGE, cinfo->maxrangedmg);
-
- // this value is not accurate, but should be close to the real value
- //SetModifierValue(UNIT_MOD_ATTACK_POWER, BASE_VALUE, level * 5);
- //SetModifierValue(UNIT_MOD_ATTACK_POWER_RANGED, BASE_VALUE, level * 5);
- SetModifierValue(UNIT_MOD_ATTACK_POWER, BASE_VALUE, cinfo->attackpower);
- SetModifierValue(UNIT_MOD_ATTACK_POWER_RANGED, BASE_VALUE, cinfo->rangedattackpower);
+
+ //damage
+ float damagemod = _GetDamageMod(rank);
+
+ SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, cinfo->mindmg * damagemod);
+ SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, cinfo->maxdmg * damagemod);
+
+ SetFloatValue(UNIT_FIELD_MINRANGEDDAMAGE,cinfo->minrangedmg * damagemod);
+ SetFloatValue(UNIT_FIELD_MAXRANGEDDAMAGE,cinfo->maxrangedmg * damagemod);
+
+ SetModifierValue(UNIT_MOD_ATTACK_POWER, BASE_VALUE, cinfo->attackpower * damagemod);
+
}
float Creature::_GetHealthMod(int32 Rank)