Implement 53720, 20185, 20186 dummy proc

Fix 31892 (use correct %)

Signed-off-by: DiSlord <dislord@nomail.com>
This commit is contained in:
DiSlord 2009-01-14 01:56:28 +03:00
parent 5378d766f0
commit d544aec1db

View file

@ -5232,29 +5232,30 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
basepoints0 = GetAttackTime(BASE_ATTACK) * int32(ap*0.022f + 0.044f * holy) / 1000;
break;
}
// Seal of Blood do damage trigger
if(dummySpell->SpellFamilyFlags & 0x0000040000000000LL)
{
switch(triggeredByAura->GetEffIndex())
{
case 0:
triggered_spell_id = 31893;
break;
case 1:
{
// damage
damage += CalculateDamage(BASE_ATTACK, false) * 35 / 100; // add spell damage from prev effect (35%)
basepoints0 = triggeredByAura->GetModifier()->m_amount * damage / 100;
target = this;
triggered_spell_id = 32221;
break;
}
}
}
switch(dummySpell->Id)
{
// Judgement of Light
case 20185:
{
// Get judgement caster
Unit *caster = triggeredByAura->GetCaster();
if (!caster)
return false;
float ap = caster->GetTotalAttackPowerValue(BASE_ATTACK);
int32 holy = caster->SpellBaseDamageBonus(SPELL_SCHOOL_MASK_HOLY) +
caster->SpellBaseDamageBonusForVictim(SPELL_SCHOOL_MASK_HOLY, this);
basepoints0 = int32(ap*0.10f + 0.10f*holy);
pVictim->CastCustomSpell(pVictim, 20267, &basepoints0, 0, 0, true, 0, triggeredByAura);
return true;
}
// Judgement of Wisdom
case 20186:
{
if (pVictim->getPowerType() == POWER_MANA)
pVictim->CastSpell(pVictim, 20268, true, 0, triggeredByAura);
return true;
}
// Holy Power (Redemption Armor set)
case 28789:
{
@ -5309,6 +5310,40 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
triggered_spell_id = 31786;
break;
}
// Seal of Blood do damage trigger
case 31892:
{
if (triggeredByAura->GetEffIndex() == 0) // 0 effect - is proc on enemy
triggered_spell_id = 31893;
else if (triggeredByAura->GetEffIndex() == 1) // 1 effect - is proc on self
{
// add spell damage from prev effect (27%)
damage += CalculateDamage(BASE_ATTACK, false) * 27 / 100;
basepoints0 = triggeredByAura->GetModifier()->m_amount * damage / 100;
target = this;
triggered_spell_id = 32221;
}
else
return true;
break;
}
// Seal of the Martyr do damage trigger
case 53720:
{
if (triggeredByAura->GetEffIndex() == 0) // 0 effect - is proc on enemy
triggered_spell_id = 53719;
else if (triggeredByAura->GetEffIndex() == 1) // 1 effect - is proc on self
{
// add spell damage from prev effect (27%)
damage += CalculateDamage(BASE_ATTACK, false) * 27 / 100;
basepoints0 = triggeredByAura->GetModifier()->m_amount * damage / 100;
target = this;
triggered_spell_id = 53718;
}
else
return true;
break;
}
// Paladin Tier 6 Trinket (Ashtongue Talisman of Zeal)
case 40470:
{