From 8a4e1119ac21e2d1112d1717337597fe073e495f Mon Sep 17 00:00:00 2001 From: Shauren Date: Sat, 4 Sep 2021 15:13:15 +0200 Subject: Core/Spells: Unify spell effect access api in both branches --- src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp | 10 ++++++---- src/server/scripts/Outland/GruulsLair/boss_gruul.cpp | 7 ++++++- .../Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp | 5 ++--- .../scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp | 7 ++++--- 4 files changed, 18 insertions(+), 11 deletions(-) (limited to 'src/server/scripts/Outland') diff --git a/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp b/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp index f5b8418fd11..0e88b976fe1 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp @@ -262,14 +262,15 @@ class spell_mother_shahraz_saber_lash : public AuraScript bool Validate(SpellInfo const* spellInfo) override { - return ValidateSpellInfo({ spellInfo->GetEffect(EFFECT_1)->TriggerSpell }); + return spellInfo->GetEffects().size() > EFFECT_1 + && ValidateSpellInfo({ spellInfo->GetEffect(EFFECT_1).TriggerSpell }); } void OnTrigger(AuraEffect const* aurEff) { PreventDefaultAction(); - uint32 triggerSpell = aurEff->GetSpellEffectInfo()->TriggerSpell; + uint32 triggerSpell = aurEff->GetSpellEffectInfo().TriggerSpell; if (Unit* target = GetUnitOwner()->GetAI()->SelectTarget(SELECT_TARGET_RANDOM, 0)) GetUnitOwner()->CastSpell(target, triggerSpell, true); } @@ -290,14 +291,15 @@ class spell_mother_shahraz_generic_periodic : public AuraScript bool Validate(SpellInfo const* spellInfo) override { - return ValidateSpellInfo({ spellInfo->GetEffect(EFFECT_0)->TriggerSpell }); + return !spellInfo->GetEffects().empty() + && ValidateSpellInfo({ spellInfo->GetEffect(EFFECT_0).TriggerSpell }); } void OnTrigger(AuraEffect const* aurEff) { PreventDefaultAction(); - uint32 triggerSpell = aurEff->GetSpellEffectInfo()->TriggerSpell; + uint32 triggerSpell = aurEff->GetSpellEffectInfo().TriggerSpell; if (Unit* target = GetUnitOwner()->GetAI()->SelectTarget(SELECT_TARGET_RANDOM, 0)) GetUnitOwner()->CastSpell(target, triggerSpell, true); } diff --git a/src/server/scripts/Outland/GruulsLair/boss_gruul.cpp b/src/server/scripts/Outland/GruulsLair/boss_gruul.cpp index f050c1d9e39..fae7d777b32 100644 --- a/src/server/scripts/Outland/GruulsLair/boss_gruul.cpp +++ b/src/server/scripts/Outland/GruulsLair/boss_gruul.cpp @@ -309,12 +309,17 @@ class spell_gruul_shatter_effect : public SpellScriptLoader { PrepareSpellScript(spell_gruul_shatter_effect_SpellScript); + bool Validate(SpellInfo const* spellInfo) override + { + return !spellInfo->GetEffects().empty(); + } + void CalculateDamage() { if (!GetHitUnit()) return; - float radius = GetSpellInfo()->GetEffect(EFFECT_0)->CalcRadius(GetCaster()); + float radius = GetEffectInfo(EFFECT_0).CalcRadius(GetCaster()); if (!radius) return; diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp index 334e7335ccd..23100fea7c5 100644 --- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp @@ -171,8 +171,7 @@ class spell_broggok_poison_cloud : public SpellScriptLoader bool Validate(SpellInfo const* spellInfo) override { - SpellEffectInfo const* effect0 = spellInfo->GetEffect(EFFECT_0); - return effect0 && ValidateSpellInfo({ effect0->TriggerSpell }); + return !spellInfo->GetEffects().empty() && ValidateSpellInfo({ spellInfo->GetEffect(EFFECT_0).TriggerSpell }); } void PeriodicTick(AuraEffect const* aurEff) @@ -181,7 +180,7 @@ class spell_broggok_poison_cloud : public SpellScriptLoader if (!aurEff->GetTotalTicks()) return; - uint32 triggerSpell = aurEff->GetSpellEffectInfo()->TriggerSpell; + uint32 triggerSpell = aurEff->GetSpellEffectInfo().TriggerSpell; int32 mod = int32(((float(aurEff->GetTickNumber()) / aurEff->GetTotalTicks()) * 0.9f + 0.1f) * 10000 * 2 / 3); GetTarget()->CastSpell(nullptr, triggerSpell, CastSpellExtraArgs(aurEff).AddSpellMod(SPELLVALUE_RADIUS_MOD, mod)); } diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp index f7874b392f7..b3a4ae4144c 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp @@ -512,9 +512,10 @@ class spell_astromancer_wrath_of_the_astromancer : public SpellScriptLoader { PrepareAuraScript(spell_astromancer_wrath_of_the_astromancer_AuraScript); - bool Validate(SpellInfo const* /*spellInfo*/) override + bool Validate(SpellInfo const* spellInfo) override { - return ValidateSpellInfo({ SPELL_WRATH_OF_THE_ASTROMANCER_DOT }); + return ValidateSpellInfo({ SPELL_WRATH_OF_THE_ASTROMANCER_DOT }) + && spellInfo->GetEffects().size() > EFFECT_1; } void AfterRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -524,7 +525,7 @@ class spell_astromancer_wrath_of_the_astromancer : public SpellScriptLoader return; Unit* target = GetUnitOwner(); - target->CastSpell(target, GetSpellInfo()->GetEffect(EFFECT_1)->CalcValue(), false); + target->CastSpell(target, GetEffectInfo(EFFECT_1).CalcValue(), false); } void Register() override -- cgit v1.2.3