diff options
author | win32 <> | 2010-01-21 13:48:27 +0200 |
---|---|---|
committer | win32 <> | 2010-01-21 13:48:27 +0200 |
commit | 2572e9ef8eacdd5944e8a63cf313c8a3c9ac7faf (patch) | |
tree | 9f0fedf87c181ea9a851754e70b3336769bea8f2 /src/game/Creature.cpp | |
parent | 1c310c887b40c8a415f4eb10c5aa7319c6855f4a (diff) |
* Add support for basedmg and baserangeddmg values in creature_classlevelstats.
* Remove mindmg, maxdmg, attackpower and ranged field in creature_template and add Dmg_Mod, Rangeddmg_Mod field.
--HG--
branch : trunk
Diffstat (limited to 'src/game/Creature.cpp')
-rw-r--r-- | src/game/Creature.cpp | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/src/game/Creature.cpp b/src/game/Creature.cpp index 29ed9983cd2..4b6e8186801 100644 --- a/src/game/Creature.cpp +++ b/src/game/Creature.cpp @@ -1107,15 +1107,24 @@ void Creature::SelectLevel(const CreatureInfo *cinfo) //damage float damagemod = 1.0f;//_GetDamageMod(rank); + float mindmg = stats->GenerateMinDmg(cinfo); + float maxdmg = stats->GenerateMaxDmg(cinfo); + float attackpower = stats->GenerateAttackPower(cinfo); - SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, cinfo->mindmg * damagemod); - SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, cinfo->maxdmg * damagemod); + SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, mindmg * damagemod); + SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, maxdmg * damagemod); - SetFloatValue(UNIT_FIELD_MINRANGEDDAMAGE,cinfo->minrangedmg * damagemod); - SetFloatValue(UNIT_FIELD_MAXRANGEDDAMAGE,cinfo->maxrangedmg * damagemod); + SetModifierValue(UNIT_MOD_ATTACK_POWER, BASE_VALUE, attackpower * damagemod); - SetModifierValue(UNIT_MOD_ATTACK_POWER, BASE_VALUE, cinfo->attackpower * damagemod); + // ranged damage + float minrangeddmg = stats->GenerateRangedDmg(cinfo) / 2.5f; + float maxrangeddmg = stats->GenerateRangedDmg(cinfo) - mindmg; + float rangedattackpower = (minrangeddmg + maxrangeddmg) / 2 * 0.3; + SetFloatValue(UNIT_FIELD_MINRANGEDDAMAGE, minrangeddmg * damagemod); + SetFloatValue(UNIT_FIELD_MAXRANGEDDAMAGE, maxrangeddmg * damagemod); + + SetModifierValue(UNIT_MOD_ATTACK_POWER_RANGED, BASE_VALUE, rangedattackpower * damagemod); } float Creature::_GetHealthMod(int32 Rank) |