aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorQAston <none@none>2009-07-18 23:41:23 +0200
committerQAston <none@none>2009-07-18 23:41:23 +0200
commit5f3f62222670f70a0c278b76ce91601814da1f3f (patch)
tree090e08715686e6f47cdc48603fb9518e6a5baa65 /src
parentbc4d862263b6823562c643c270f41de7e12001be (diff)
*Move coefficients from Spell::SpellDamageSchoolDmg to spell_bonus_data.
--HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/game/SpellEffects.cpp78
-rw-r--r--src/game/SpellMgr.h2
-rw-r--r--src/game/Unit.cpp16
3 files changed, 10 insertions, 86 deletions
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp
index ebf0037781d..bd0b1766acb 100644
--- a/src/game/SpellEffects.cpp
+++ b/src/game/SpellEffects.cpp
@@ -386,13 +386,6 @@ void Spell::SpellDamageSchoolDmg(uint32 effect_idx)
damage = 200;
break;
}
- // Intercept (warrior spell trigger)
- case 20253:
- case 61491:
- {
- damage+= uint32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK) * 0.12f);
- break;
- }
// arcane charge. must only affect demons (also undead?)
case 45072:
{
@@ -426,9 +419,7 @@ void Spell::SpellDamageSchoolDmg(uint32 effect_idx)
{
// Bloodthirst
if(m_spellInfo->SpellFamilyFlags[1] & 0x400)
- {
damage = uint32(damage * (m_caster->GetTotalAttackPowerValue(BASE_ATTACK)) / 100);
- }
// Shield Slam
else if(m_spellInfo->SpellFamilyFlags[1] & 0x200 && m_spellInfo->Category==1209)
damage += int32(m_caster->GetShieldBlockValue());
@@ -438,12 +429,6 @@ void Spell::SpellDamageSchoolDmg(uint32 effect_idx)
damage = uint32(damage * m_caster->GetTotalAttackPowerValue(BASE_ATTACK) / 100);
m_caster->ModifyAuraState(AURA_STATE_WARRIOR_VICTORY_RUSH, false);
}
- // Revenge ${$m1+$AP*0.207} to ${$M1+$AP*0.207}
- else if(m_spellInfo->SpellFamilyFlags[0] & 0x400)
- damage+= uint32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK) * 0.207f);
- // Heroic Throw ${$m1+$AP*.50}
- else if(m_spellInfo->SpellFamilyFlags[1] & 0x00000001)
- damage+= uint32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK) * 0.5f);
// Shockwave ${$m3/100*$AP}
else if(m_spellInfo->SpellFamilyFlags[1] & 0x00008000)
{
@@ -452,12 +437,6 @@ void Spell::SpellDamageSchoolDmg(uint32 effect_idx)
damage+= int32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK) * pct / 100);
break;
}
- // Thunder Clap
- else if(m_spellInfo->SpellFamilyFlags[0] & 0x80)
- {
- damage += int32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK) * 12 / 100);
- break;
- }
break;
}
case SPELLFAMILY_WARLOCK:
@@ -520,17 +499,6 @@ void Spell::SpellDamageSchoolDmg(uint32 effect_idx)
damage += int32(energy * multiple);
damage += int32(((Player*)m_caster)->GetComboPoints() * ap * 7 / 100);
}
- // Rake
- else if(m_spellInfo->SpellFamilyFlags[0] & 0x1000 && m_spellInfo->Effect[2]==SPELL_EFFECT_ADD_COMBO_POINTS)
- {
- // $AP*0.01 bonus
- damage += int32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK) / 100);
- }
- // Swipe
- else if(m_spellInfo->SpellFamilyFlags[1] & 0x00100000)
- {
- damage += int32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK)*0.08f);
- }
break;
}
case SPELLFAMILY_ROGUE:
@@ -582,53 +550,14 @@ void Spell::SpellDamageSchoolDmg(uint32 effect_idx)
damage += combo*40;
}
}
- // Gouge
- else if(m_spellInfo->SpellFamilyFlags[0] & 0x8)
- {
- damage += int32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK)*0.21f);
- }
- // Instant Poison
- else if(m_spellInfo->SpellFamilyFlags[0] & 0x2000)
- {
- damage += int32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK)*0.10f);
- }
- // Wound Poison
- else if(m_spellInfo->SpellFamilyFlags[0] & 0x10000000)
- {
- damage += int32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK)*0.04f);
- }
break;
}
case SPELLFAMILY_HUNTER:
{
- // Gore
- if (m_spellInfo->SpellIconID == 1578)
- {
- damage+= rand()%2 ? damage : 0;
- }
- // Mongoose Bite
- else if((m_spellInfo->SpellFamilyFlags[0] & 0x2) && m_spellInfo->SpellVisual[0]==342)
- {
- damage += int32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK)*0.2f);
- }
- // Counterattack
- else if(m_spellInfo->SpellFamilyFlags[1] & 0x00080000)
- {
- damage += int32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK)*0.2f);
- }
- // Arcane Shot
- else if((m_spellInfo->SpellFamilyFlags[0] & 0x00000800) && m_spellInfo->maxLevel > 0)
- {
- damage += int32(m_caster->GetTotalAttackPowerValue(RANGED_ATTACK)*0.15f);
- }
// Steady Shot
- else if(m_spellInfo->SpellFamilyFlags[1] & 0x1)
+ if(m_spellInfo->SpellFamilyFlags[1] & 0x1)
{
- int32 base = irand((int32)m_caster->GetWeaponDamageRange(RANGED_ATTACK, MINDAMAGE),(int32)m_caster->GetWeaponDamageRange(RANGED_ATTACK, MAXDAMAGE));
- damage += int32(float(base)/m_caster->GetAttackTime(RANGED_ATTACK)*2800 + m_caster->GetTotalAttackPowerValue(RANGED_ATTACK)*0.1f);
-
bool found = false;
-
// check dazed affect
Unit::AuraEffectList const& decSpeedList = unitTarget->GetAurasByType(SPELL_AURA_MOD_DECREASE_SPEED);
for(Unit::AuraEffectList::const_iterator iter = decSpeedList.begin(); iter != decSpeedList.end(); ++iter)
@@ -644,11 +573,6 @@ void Spell::SpellDamageSchoolDmg(uint32 effect_idx)
if(found)
damage += m_spellInfo->EffectBasePoints[1];
}
- // Explosive Trap Effect
- else if(m_spellInfo->SpellFamilyFlags[0] & 0x00000004)
- {
- damage += int32(m_caster->GetTotalAttackPowerValue(RANGED_ATTACK)*0.1f);
- }
break;
}
case SPELLFAMILY_PALADIN:
diff --git a/src/game/SpellMgr.h b/src/game/SpellMgr.h
index 01ba76e10b2..da23bddc4af 100644
--- a/src/game/SpellMgr.h
+++ b/src/game/SpellMgr.h
@@ -322,7 +322,7 @@ inline bool IsAutoRepeatRangedSpell(SpellEntry const* spellInfo)
inline bool IsRangedWeaponSpell(SpellEntry const* spellInfo)
{
//spell->DmgClass == SPELL_DAMAGE_CLASS_RANGED should be checked outside
- return (spellInfo->SpellFamilyName == SPELLFAMILY_HUNTER) // for 53352, cannot find better way
+ return (spellInfo->SpellFamilyName == SPELLFAMILY_HUNTER && !(spellInfo->SpellFamilyFlags[1] & 0x100000000)) // for 53352, cannot find better way
|| (spellInfo->EquippedItemSubClassMask & ITEM_SUBCLASS_MASK_WEAPON_RANGED);
}
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index fddbd482b38..5696d3e8bf8 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -9326,15 +9326,15 @@ uint32 Unit::SpellDamageBonus(Unit *pVictim, SpellEntry const *spellProto, uint3
{
coeff = bonus->dot_damage;
if (bonus->ap_dot_bonus > 0)
- DoneTotal+=bonus->ap_dot_bonus * stack * ApCoeffMod *
- GetTotalAttackPowerValue(IsRangedWeaponSpell(spellProto) ? RANGED_ATTACK: BASE_ATTACK);
+ DoneTotal+=bonus->ap_dot_bonus * stack * ApCoeffMod * GetTotalAttackPowerValue(
+ (IsRangedWeaponSpell(spellProto) && spellProto->DmgClass !=SPELL_DAMAGE_CLASS_MELEE) ? RANGED_ATTACK : BASE_ATTACK);
}
else
{
coeff = bonus->direct_damage;
if (bonus->ap_bonus > 0)
- DoneTotal+=bonus->ap_bonus * stack * ApCoeffMod *
- GetTotalAttackPowerValue(IsRangedWeaponSpell(spellProto) ? RANGED_ATTACK: BASE_ATTACK);
+ DoneTotal+=bonus->ap_dot_bonus * stack * ApCoeffMod * GetTotalAttackPowerValue(
+ (IsRangedWeaponSpell(spellProto) && spellProto->DmgClass !=SPELL_DAMAGE_CLASS_MELEE)? RANGED_ATTACK : BASE_ATTACK);
}
}
// Default calculation
@@ -9801,15 +9801,15 @@ uint32 Unit::SpellHealingBonus(Unit *pVictim, SpellEntry const *spellProto, uint
{
coeff = bonus->dot_damage;
if (bonus->ap_dot_bonus > 0)
- DoneTotal+=bonus->ap_dot_bonus * stack *
- GetTotalAttackPowerValue(IsRangedWeaponSpell(spellProto) ? RANGED_ATTACK: BASE_ATTACK);
+ DoneTotal+=bonus->ap_dot_bonus * stack * GetTotalAttackPowerValue(
+ (IsRangedWeaponSpell(spellProto) && spellProto->DmgClass !=SPELL_DAMAGE_CLASS_MELEE)? RANGED_ATTACK : BASE_ATTACK);
}
else
{
coeff = bonus->direct_damage;
if (bonus->ap_bonus > 0)
- DoneTotal+=bonus->ap_bonus * stack *
- GetTotalAttackPowerValue(IsRangedWeaponSpell(spellProto) ? RANGED_ATTACK: BASE_ATTACK);
+ DoneTotal+=bonus->ap_dot_bonus * stack * GetTotalAttackPowerValue(
+ (IsRangedWeaponSpell(spellProto) && spellProto->DmgClass !=SPELL_DAMAGE_CLASS_MELEE)? RANGED_ATTACK : BASE_ATTACK);
}
}
else // scripted bonus