mirror of
https://github.com/mangosfour/server.git
synced 2025-12-16 04:37:00 +00:00
[8514] Impmlement unleashing effect for possitive seals that not have special stored spell id for this.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
This commit is contained in:
parent
7c6f770d64
commit
64e753f169
6 changed files with 33 additions and 7 deletions
|
|
@ -669,6 +669,12 @@ void Spell::EffectSchoolDMG(uint32 effect_idx)
|
|||
{
|
||||
damage+=int32(m_caster->GetShieldBlockValue());
|
||||
}
|
||||
// Judgement
|
||||
else if (m_spellInfo->Id == 54158)
|
||||
{
|
||||
// [1 + 0.25 * SPH + 0.16 * AP]
|
||||
damage += int32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK) * 0.16f);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -5405,13 +5411,12 @@ void Spell::EffectScriptEffect(uint32 effIndex)
|
|||
sLog.outError("Unsupported Judgement (seal trigger) spell (Id: %u) in Spell::EffectScriptEffect",m_spellInfo->Id);
|
||||
return;
|
||||
}
|
||||
// all seals have aura dummy in 2 effect
|
||||
// offensive seals have aura dummy in 2 effect
|
||||
Unit::AuraList const& m_dummyAuras = m_caster->GetAurasByType(SPELL_AURA_DUMMY);
|
||||
for(Unit::AuraList::const_iterator itr = m_dummyAuras.begin(); itr != m_dummyAuras.end(); ++itr)
|
||||
{
|
||||
SpellEntry const *spellInfo = (*itr)->GetSpellProto();
|
||||
// search seal (all seals have judgement's aura dummy spell id in 2 effect
|
||||
if ((*itr)->GetEffIndex() != 2 || !spellInfo || !IsSealSpell(spellInfo))
|
||||
// search seal (offensive seals have judgement's aura dummy spell id in 2 effect
|
||||
if ((*itr)->GetEffIndex() != 2 || !IsSealSpell((*itr)->GetSpellProto()))
|
||||
continue;
|
||||
spellId2 = (*itr)->GetModifier()->m_amount;
|
||||
SpellEntry const *judge = sSpellStore.LookupEntry(spellId2);
|
||||
|
|
@ -5419,6 +5424,18 @@ void Spell::EffectScriptEffect(uint32 effIndex)
|
|||
continue;
|
||||
break;
|
||||
}
|
||||
// if there were no offensive seals than there is seal with proc trigger aura
|
||||
if (!spellId2)
|
||||
{
|
||||
Unit::AuraList const& procTriggerAuras = m_caster->GetAurasByType(SPELL_AURA_PROC_TRIGGER_SPELL);
|
||||
for(Unit::AuraList::const_iterator itr = procTriggerAuras.begin(); itr != procTriggerAuras.end(); ++itr)
|
||||
{
|
||||
if ((*itr)->GetEffIndex() != 0 || !IsSealSpell((*itr)->GetSpellProto()))
|
||||
continue;
|
||||
spellId2 = 54158;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (spellId1)
|
||||
m_caster->CastSpell(unitTarget, spellId1, true);
|
||||
if (spellId2)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue