diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game/Creature.cpp | 28 | ||||
-rw-r--r-- | src/game/Creature.h | 4 | ||||
-rw-r--r-- | src/game/ObjectMgr.cpp | 2 | ||||
-rw-r--r-- | src/game/StatSystem.cpp | 8 |
4 files changed, 21 insertions, 21 deletions
diff --git a/src/game/Creature.cpp b/src/game/Creature.cpp index 07fa83f0144..d69c083417a 100644 --- a/src/game/Creature.cpp +++ b/src/game/Creature.cpp @@ -1391,23 +1391,21 @@ void Creature::SelectLevel(const CreatureInfo *cinfo) SetModifierValue(UNIT_MOD_MANA, BASE_VALUE, mana); // damage - float damagemod = _GetDamageMod(rank); - - uint32 attackpower = cinfo->attackpower * level / 60; - uint32 rangedattackpower = cinfo->rangedattackpower * level / 60; - damagemod *= 0.75f; - SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, (cinfo->mindmg + attackpower/2) * damagemod); - SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, (cinfo->maxdmg + attackpower) * damagemod); - SetBaseWeaponDamage(OFF_ATTACK, MINDAMAGE, (cinfo->mindmg + attackpower/2) * damagemod); - SetBaseWeaponDamage(OFF_ATTACK, MAXDAMAGE, (cinfo->maxdmg + attackpower) * damagemod); - SetBaseWeaponDamage(RANGED_ATTACK, MINDAMAGE, (cinfo->minrangedmg + rangedattackpower/2) * damagemod); - SetBaseWeaponDamage(RANGED_ATTACK, MAXDAMAGE, (cinfo->maxrangedmg + rangedattackpower) * damagemod); + //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 * damagemod); - //SetModifierValue(UNIT_MOD_ATTACK_POWER_RANGED, BASE_VALUE, cinfo->rangedattackpower * damagemod); + //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); } float Creature::_GetHealthMod(int32 Rank) diff --git a/src/game/Creature.h b/src/game/Creature.h index b3433c2f1f4..f29982436d5 100644 --- a/src/game/Creature.h +++ b/src/game/Creature.h @@ -736,7 +736,8 @@ class TRINITY_DLL_SPEC Creature : public Unit uint32 m_PlayerDamageReq; void SetOriginalEntry(uint32 entry) { m_originalEntry = entry; } - + + static float _GetDamageMod(int32 Rank); protected: bool CreateFromProto(uint32 guidlow,uint32 Entry,uint32 team, const CreatureData *data = NULL); bool InitEntry(uint32 entry, uint32 team=ALLIANCE, const CreatureData* data=NULL); @@ -747,7 +748,6 @@ class TRINITY_DLL_SPEC Creature : public Unit void _RealtimeSetCreatureInfo(); static float _GetHealthMod(int32 Rank); - static float _GetDamageMod(int32 Rank); uint32 m_lootMoney; uint64 m_lootRecipient; diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp index cbcb7b95e10..e11bd2b6638 100644 --- a/src/game/ObjectMgr.cpp +++ b/src/game/ObjectMgr.cpp @@ -785,6 +785,8 @@ void ObjectMgr::LoadCreatureTemplates() else const_cast<CreatureInfo*>(cInfo)->scale = 1.0f; } + + const_cast<CreatureInfo*>(cInfo)->dmg_multiplier *= Creature::_GetDamageMod(cInfo->rank); } } diff --git a/src/game/StatSystem.cpp b/src/game/StatSystem.cpp index 1d6ad79fda8..bb7b1273ac0 100644 --- a/src/game/StatSystem.cpp +++ b/src/game/StatSystem.cpp @@ -881,10 +881,10 @@ void Creature::UpdateDamagePhysical(WeaponAttackType attType) float weapon_mindamage = GetWeaponDamageRange(attType, MINDAMAGE); float weapon_maxdamage = GetWeaponDamageRange(attType, MAXDAMAGE); - float base_value = GetModifierValue(unitMod, BASE_VALUE) - + (weapon_mindamage + weapon_maxdamage) - * GetTotalAttackPowerValue(attType) / (getLevel() * 30); - //float base_value = GetModifierValue(unitMod, BASE_VALUE) + GetTotalAttackPowerValue(attType); + //float base_value = GetModifierValue(unitMod, BASE_VALUE) + // + (weapon_mindamage + weapon_maxdamage) + // * GetTotalAttackPowerValue(attType) / (getLevel() * 30); + 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); |