*Update damage calculation of Serpent Sting, Immolation Trap and Deadly Poison.
--HG-- branch : trunk
This commit is contained in:
@@ -33,7 +33,6 @@ INSERT INTO `spell_linked_spell` (`spell_trigger`, `spell_effect`, `type`, `comm
|
||||
(-49011, 49009, 0, 'Wyvern Sting'),
|
||||
(-49012, 49010, 0, 'Wyvern Sting'),
|
||||
( 47585, 60069, 0, 'Dispersion (transform/regen)'),
|
||||
# (-47953, 60406, 0, 'Divine hymn buff to enemies'), removed in 313
|
||||
( 48265, 49772, 2, 'Unholy Presence'),
|
||||
( 49772, 55222, 2, 'Unholy Presence'),
|
||||
( 48263, 61261, 2, 'Frost Presence'),
|
||||
@@ -73,6 +72,7 @@ INSERT INTO `spell_linked_spell` (`spell_trigger`, `spell_effect`, `type`, `comm
|
||||
(48395, 50171, 2, 'Improved Moonkin Form'),
|
||||
(48396, 50172, 2, 'Improved Moonkin Form'),
|
||||
( 20594, 65116, 2, 'Stoneform'),
|
||||
( 1038, 53055, 2, 'Hand of Salvation'),
|
||||
|
||||
-- Creature
|
||||
( 36574, 36650, 0, 'Apply Phase Slip Vulnerability'),
|
||||
|
||||
+10
-10
@@ -4606,7 +4606,7 @@ void AuraEffect::HandlePeriodicEnergize(bool apply, bool Real, bool changeAmount
|
||||
if (m_spellProto->SpellIconID == 3184 && m_spellProto->SpellVisual[0] == 12495)
|
||||
m_amount = m_target->GetMaxPower(POWER_MANA) * 25 / 10000;
|
||||
else if (m_spellProto->Id == 29166) // Innervate
|
||||
m_amount = m_target->GetCreatePowers(POWER_MANA) * m_amount / ((GetParentAura()->GetAuraMaxDuration() / 10.0f) * (m_amplitude / IN_MILISECONDS));
|
||||
m_amount = m_target->GetCreatePowers(POWER_MANA) * m_amount / (GetTotalTicks() * 100.0f);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4707,8 +4707,8 @@ void AuraEffect::HandlePeriodicDamage(bool apply, bool Real, bool changeAmount)
|
||||
// Pounce Bleed
|
||||
if ( m_spellProto->SpellIconID == 147 && m_spellProto->SpellVisual[0] == 0 )
|
||||
{
|
||||
// $AP*0.18/6 bonus per tick
|
||||
m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * 3 / 100);
|
||||
// 0.18*$AP / number of ticks
|
||||
m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * 0.18f / GetTotalTicks());
|
||||
return;
|
||||
}
|
||||
break;
|
||||
@@ -4814,8 +4814,8 @@ void AuraEffect::HandlePeriodicDamage(bool apply, bool Real, bool changeAmount)
|
||||
// Deadly Poison
|
||||
if (m_spellProto->SpellFamilyFlags[0] & 0x10000)
|
||||
{
|
||||
// 0.08*$AP / 4 * amount of stack
|
||||
m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * 2 * GetParentAura()->GetStackAmount() / 100);
|
||||
// 0.12*$AP * amount of stack / number of ticks
|
||||
m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * 0.12f * GetParentAura()->GetStackAmount() / GetTotalTicks());
|
||||
return;
|
||||
}
|
||||
break;
|
||||
@@ -4825,15 +4825,15 @@ void AuraEffect::HandlePeriodicDamage(bool apply, bool Real, bool changeAmount)
|
||||
// Serpent Sting
|
||||
if (m_spellProto->SpellFamilyFlags[0] & 0x4000)
|
||||
{
|
||||
// $RAP*0.1/5 bonus per tick
|
||||
m_amount += int32(caster->GetTotalAttackPowerValue(RANGED_ATTACK) * 10 / 500);
|
||||
// $RAP*0.2 / number of ticks
|
||||
m_amount += int32(caster->GetTotalAttackPowerValue(RANGED_ATTACK) * 0.02f / GetTotalTicks());
|
||||
return;
|
||||
}
|
||||
// Immolation Trap
|
||||
if (m_spellProto->SpellFamilyFlags[0] & 0x4 && m_spellProto->SpellIconID == 678)
|
||||
if (m_spellProto->SpellFamilyFlags[2] & 0x00020000)
|
||||
{
|
||||
// $RAP*0.1/5 bonus per tick
|
||||
m_amount += int32(caster->GetTotalAttackPowerValue(RANGED_ATTACK) * 10 / 500);
|
||||
// $RAP*0.1 / number of ticks
|
||||
m_amount += int32(caster->GetTotalAttackPowerValue(RANGED_ATTACK) * 0.01f / GetTotalTicks());
|
||||
return;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -353,6 +353,7 @@ class TRINITY_DLL_SPEC AuraEffect
|
||||
virtual void Update(uint32 diff);
|
||||
|
||||
uint32 GetTickNumber() const { return m_tickNumber; }
|
||||
int32 GetTotalTicks () const { return m_amplitude ? (GetParentAura()->GetAuraMaxDuration() / m_amplitude) : 1;}
|
||||
bool IsAreaAura() const { return m_isAreaAura; }
|
||||
bool IsPeriodic() const { return m_isPeriodic; }
|
||||
bool IsPersistent() const { return m_isPersistent; }
|
||||
|
||||
Reference in New Issue
Block a user