*Update damage calculation of Serpent Sting, Immolation Trap and Deadly Poison.

--HG--
branch : trunk
This commit is contained in:
QAston
2009-07-18 18:09:27 +02:00
parent 9126cd99d2
commit 6443bf531c
3 changed files with 12 additions and 11 deletions
+1 -1
View File
@@ -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
View File
@@ -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;
+1
View File
@@ -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; }