aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/SpellEffects.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-01-01 19:37:48 +0100
committerShauren <shauren.trinity@gmail.com>2025-01-01 19:37:48 +0100
commit54a83b4b689b7d2bbddb91fc79319dd806da8cc0 (patch)
tree3b2e8426454f3fb75f9c5ffcede6a93fc9d4efdc /src/server/game/Spells/SpellEffects.cpp
parent13b47c7780ae7f8b6454d38560af697e49648184 (diff)
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
Diffstat (limited to 'src/server/game/Spells/SpellEffects.cpp')
-rw-r--r--src/server/game/Spells/SpellEffects.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index bf21eaecc1f..b3bea4b8882 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -708,7 +708,7 @@ void Spell::EffectTriggerSpell()
targets.Update(caster); // refresh pointers stored in targets
// original caster guid only for GO cast
- CastSpellExtraArgs args(TRIGGERED_FULL_MASK);
+ CastSpellExtraArgs args(TRIGGERED_FULL_MASK & ~(TRIGGERED_IGNORE_POWER_COST | TRIGGERED_IGNORE_REAGENT_COST));
args.SetOriginalCaster(originalCaster);
args.OriginalCastId = originalCastId;
args.OriginalCastItemLevel = itemLevel;
@@ -777,7 +777,7 @@ void Spell::EffectTriggerMissileSpell()
targets.SetGOTarget(go);
}
- CastSpellExtraArgs args(TRIGGERED_FULL_MASK);
+ CastSpellExtraArgs args(TRIGGERED_FULL_MASK & ~(TRIGGERED_IGNORE_POWER_COST | TRIGGERED_IGNORE_REAGENT_COST));
args.SetOriginalCaster(m_originalCasterGUID);
args.SetTriggeringSpell(this);
args.SetCustomArg(m_customArg);
@@ -851,7 +851,7 @@ void Spell::EffectForceCast()
return;
}
- CastSpellExtraArgs args(TRIGGERED_FULL_MASK);
+ CastSpellExtraArgs args(TRIGGERED_FULL_MASK & ~(TRIGGERED_IGNORE_POWER_COST | TRIGGERED_IGNORE_REAGENT_COST));
args.SetTriggeringSpell(this);
if (effectInfo->Effect == SPELL_EFFECT_FORCE_CAST_WITH_VALUE)
for (uint32 i = 0; i < MAX_SPELL_EFFECTS; ++i)