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