mirror of
https://github.com/mangosfour/server.git
synced 2025-12-13 13:37:05 +00:00
[8487] Fixes in paladin seals and related spells.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
This commit is contained in:
parent
53c96fc731
commit
d91f2c2c35
9 changed files with 148 additions and 73 deletions
|
|
@ -5737,6 +5737,43 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
|
|||
return false;
|
||||
|
||||
triggered_spell_id = 31803;
|
||||
|
||||
// Add 5-stack effect
|
||||
int8 stacks = 0;
|
||||
AuraList const& auras = target->GetAurasByType(SPELL_AURA_PERIODIC_DAMAGE);
|
||||
for(AuraList::const_iterator itr = auras.begin(); itr!=auras.end(); ++itr)
|
||||
{
|
||||
if( ((*itr)->GetId() == 31803) && (*itr)->GetCasterGUID()==GetGUID())
|
||||
{
|
||||
stacks = (*itr)->GetStackAmount();
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(stacks >= 5)
|
||||
CastSpell(target,42463,true,NULL,triggeredByAura);
|
||||
break;
|
||||
}
|
||||
// Seal of Corruption (damage calc on apply aura)
|
||||
case 53736:
|
||||
{
|
||||
if(effIndex != 0) // effect 1,2 used by seal unleashing code
|
||||
return false;
|
||||
|
||||
triggered_spell_id = 53742;
|
||||
|
||||
// Add 5-stack effect
|
||||
int8 stacks = 0;
|
||||
AuraList const& auras = target->GetAurasByType(SPELL_AURA_PERIODIC_DAMAGE);
|
||||
for(AuraList::const_iterator itr = auras.begin(); itr!=auras.end(); ++itr)
|
||||
{
|
||||
if( ((*itr)->GetId() == 53742) && (*itr)->GetCasterGUID()==GetGUID())
|
||||
{
|
||||
stacks = (*itr)->GetStackAmount();
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(stacks >= 5)
|
||||
CastSpell(target,53739,true,NULL,triggeredByAura);
|
||||
break;
|
||||
}
|
||||
// Spiritual Attunement
|
||||
|
|
@ -5756,16 +5793,9 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
|
|||
// Seal of Blood do damage trigger
|
||||
case 31892:
|
||||
{
|
||||
if (effIndex == 0) // 0 effect - is proc on enemy
|
||||
// 0 effect - is proc on enemy
|
||||
if (effIndex == 0 && (procFlag & PROC_FLAG_SUCCESSFUL_MILEE_HIT))
|
||||
triggered_spell_id = 31893;
|
||||
else if (effIndex == 1) // 1 effect - is proc on self
|
||||
{
|
||||
// add spell damage from prev effect (27%)
|
||||
damage += CalculateDamage(BASE_ATTACK, false) * 27 / 100;
|
||||
basepoints0 = triggerAmount * damage / 100;
|
||||
target = this;
|
||||
triggered_spell_id = 32221;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
break;
|
||||
|
|
@ -5773,16 +5803,9 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
|
|||
// Seal of the Martyr do damage trigger
|
||||
case 53720:
|
||||
{
|
||||
if (effIndex == 0) // 0 effect - is proc on enemy
|
||||
// 0 effect - is proc on enemy
|
||||
if (effIndex == 0 && (procFlag & PROC_FLAG_SUCCESSFUL_MILEE_HIT))
|
||||
triggered_spell_id = 53719;
|
||||
else if (effIndex == 1) // 1 effect - is proc on self
|
||||
{
|
||||
// add spell damage from prev effect (27%)
|
||||
damage += CalculateDamage(BASE_ATTACK, false) * 27 / 100;
|
||||
basepoints0 = triggerAmount * damage / 100;
|
||||
target = this;
|
||||
triggered_spell_id = 53718;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
break;
|
||||
|
|
@ -8453,12 +8476,22 @@ bool Unit::isSpellCrit(Unit *pVictim, SpellEntry const *spellProto, SpellSchoolM
|
|||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SPELL_DAMAGE_CLASS_MELEE:
|
||||
{
|
||||
// Judgement of Command proc always crits on stunned target
|
||||
if(spellProto->SpellFamilyName == SPELLFAMILY_PALADIN)
|
||||
{
|
||||
if(spellProto->SpellFamilyFlags & 0x0000000000800000LL && spellProto->SpellIconID == 561)
|
||||
{
|
||||
if(pVictim->hasUnitState(UNIT_STAT_STUNNED))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
case SPELL_DAMAGE_CLASS_RANGED:
|
||||
{
|
||||
if (pVictim)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue