Core/Spells: Implemented new trigger flag to cause spells to be instant without also causing other behavior of TRIGGERED_CAST_DIRECTLY (skipping SMSG_SPELL_START, skipping starting GCD)
Port From (https://github.com/TrinityCore/TrinityCore/commit/a885a1fc3c6b894f546b7aee70b5a67932a94486)
This commit is contained in:
@@ -2630,7 +2630,9 @@ namespace Game.Spells
|
||||
// Prepare data for triggers
|
||||
PrepareDataForTriggerSystem();
|
||||
|
||||
m_casttime = CallScriptCalcCastTimeHandlers(m_spellInfo.CalcCastTime(this));
|
||||
if (!_triggeredCastFlags.HasFlag(TriggerCastFlags.IgnoreCastTime))
|
||||
m_casttime = m_spellInfo.CalcCastTime(this);
|
||||
m_casttime = CallScriptCalcCastTimeHandlers(m_casttime);
|
||||
|
||||
SpellCastResult movementResult = SpellCastResult.SpellCastOk;
|
||||
if (m_caster.IsUnit() && m_caster.ToUnit().IsMoving())
|
||||
|
||||
@@ -4841,7 +4841,7 @@ namespace Game.Spells
|
||||
if (!spellInfo.HasAttribute(SpellAttr7.CanBeMultiCast))
|
||||
continue;
|
||||
|
||||
CastSpellExtraArgs args = new(TriggerCastFlags.IgnoreGCD | TriggerCastFlags.IgnoreCastInProgress | TriggerCastFlags.CastDirectly | TriggerCastFlags.DontReportCastError);
|
||||
CastSpellExtraArgs args = new(TriggerCastFlags.IgnoreGCD | TriggerCastFlags.IgnoreCastInProgress | TriggerCastFlags.IgnoreCastTime | TriggerCastFlags.CastDirectly | TriggerCastFlags.DontReportCastError);
|
||||
args.OriginalCastId = m_castId;
|
||||
args.CastDifficulty = GetCastDifficulty();
|
||||
m_caster.CastSpell(m_caster, spellInfo.Id, args);
|
||||
|
||||
Reference in New Issue
Block a user