Core/Spells: Don't ignore power costs and reagents for spells triggered by SPELL_EFFECT_TRIGGER_SPELL, SPELL_EFFECT_TRIGGER_MISSILE, SPELL_EFFECT_FORCE_CAST, SPELL_AURA_PERIODIC_TRIGGER_SPELL, SPELL_AURA_PROC_TRIGGER_SPELL and fixed implementation of SPELL_ATTR6_DO_NOT_CONSUME_RESOURCES

Port From (https://github.com/TrinityCore/TrinityCore/commit/54a83b4b689b7d2bbddb91fc79319dd806da8cc0)
This commit is contained in:
Hondacrx
2025-05-25 11:04:24 -04:00
parent 9b75d3255d
commit 486d80ceb9
5 changed files with 21 additions and 14 deletions
+3 -3
View File
@@ -309,7 +309,7 @@ namespace Game.Spells
targets.Update(caster); // refresh pointers stored in targets
// original caster guid only for GO cast
CastSpellExtraArgs args = new(TriggerCastFlags.FullMask);
CastSpellExtraArgs args = new(TriggerCastFlags.FullMask & ~(TriggerCastFlags.IgnorePowerCost | TriggerCastFlags.IgnoreReagentCost));
args.SetOriginalCaster(originalCaster);
args.OriginalCastId = originalCastId;
args.OriginalCastItemLevel = itemLevel;
@@ -389,7 +389,7 @@ namespace Game.Spells
}
}
CastSpellExtraArgs args = new(TriggerCastFlags.FullMask);
CastSpellExtraArgs args = new(TriggerCastFlags.FullMask & ~(TriggerCastFlags.IgnorePowerCost | TriggerCastFlags.IgnoreReagentCost));
args.SetOriginalCaster(m_originalCasterGUID);
args.SetTriggeringSpell(this);
args.SetCustomArg(m_customArg);
@@ -464,7 +464,7 @@ namespace Game.Spells
return;
}
CastSpellExtraArgs args = new(TriggerCastFlags.FullMask);
CastSpellExtraArgs args = new(TriggerCastFlags.FullMask & ~(TriggerCastFlags.IgnorePowerCost | TriggerCastFlags.IgnoreReagentCost));
args.SetTriggeringSpell(this);
// set basepoints for trigger with value effect
if (effectInfo.Effect == SpellEffectName.ForceCastWithValue)