Core/Spells: SPELL_AURA_48 implementation
Port From (https://github.com/TrinityCore/TrinityCore/commit/37178ff311af95c4a2035a38839b5e8a9afe2af5)
This commit is contained in:
@@ -677,13 +677,30 @@ namespace Game
|
||||
return;
|
||||
}
|
||||
|
||||
// do not cast not learned spells
|
||||
if (!caster.HasSpell(spellInfo.Id) || spellInfo.IsPassive())
|
||||
return;
|
||||
|
||||
SpellCastTargets targets = new(caster, petCastSpell.Cast);
|
||||
|
||||
Spell spell = new(caster, spellInfo, TriggerCastFlags.None);
|
||||
TriggerCastFlags triggerCastFlags = TriggerCastFlags.None;
|
||||
|
||||
if (spellInfo.IsPassive())
|
||||
return;
|
||||
|
||||
// cast only learned spells
|
||||
if (!caster.HasSpell(spellInfo.Id))
|
||||
{
|
||||
bool allow = false;
|
||||
|
||||
// allow casting of spells triggered by clientside periodic trigger auras
|
||||
if (caster.HasAuraTypeWithTriggerSpell(AuraType.PeriodicTriggerSpellFromClient, spellInfo.Id))
|
||||
{
|
||||
allow = true;
|
||||
triggerCastFlags = TriggerCastFlags.FullMask;
|
||||
}
|
||||
|
||||
if (!allow)
|
||||
return;
|
||||
}
|
||||
|
||||
Spell spell = new(caster, spellInfo, triggerCastFlags);
|
||||
spell.m_fromClient = true;
|
||||
spell.m_misc.Data0 = petCastSpell.Cast.Misc[0];
|
||||
spell.m_misc.Data1 = petCastSpell.Cast.Misc[1];
|
||||
|
||||
@@ -314,15 +314,12 @@ namespace Game
|
||||
if (go.GetSpellForLock(caster.ToPlayer()) == spellInfo)
|
||||
allow = true;
|
||||
|
||||
// TODO: Preparation for #23204
|
||||
// allow casting of spells triggered by clientside periodic trigger auras
|
||||
/*
|
||||
if (caster->HasAuraTypeWithTriggerSpell(SPELL_AURA_PERIODIC_TRIGGER_SPELL_FROM_CLIENT, spellId))
|
||||
if (caster.HasAuraTypeWithTriggerSpell(AuraType.PeriodicTriggerSpellFromClient, spellInfo.Id))
|
||||
{
|
||||
allow = true;
|
||||
triggerFlag = TRIGGERED_FULL_MASK;
|
||||
triggerFlag = TriggerCastFlags.FullMask;
|
||||
}
|
||||
*/
|
||||
|
||||
if (!allow)
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user