Scripts/Spells: Added spell effect validation helper

Port From (https://github.com/TrinityCore/TrinityCore/commit/f8a6a9b01713a5dbe5ed38bd3d1b1c72191cf288)
This commit is contained in:
hondacrx
2023-06-13 03:59:41 -04:00
parent 71a878c2cf
commit b7146a011e
14 changed files with 73 additions and 51 deletions
+29
View File
@@ -45,6 +45,35 @@ namespace Game.Scripting
return allValid; return allValid;
} }
public bool ValidateSpellEffect(params (uint spellId, uint effectIndex)[] pairs)
{
bool allValid = true;
foreach (var (spellId, effectIndex) in pairs)
{
if (!ValidateSpellEffect(spellId, effectIndex))
allValid = false;
}
return allValid;
}
public bool ValidateSpellEffect(uint spellId, uint effectIndex)
{
SpellInfo spellInfo = Global.SpellMgr.GetSpellInfo(spellId, Difficulty.None);
if (spellInfo == null)
{
Log.outError(LogFilter.Scripts, $"BaseSpellScript::ValidateSpellEffect: Spell {spellId} does not exist.");
return false;
}
if (spellInfo.GetEffects().Count <= effectIndex)
{
Log.outError(LogFilter.Scripts, $"BaseSpellScript::ValidateSpellEffect: Spell {spellId} does not have EFFECT_{effectIndex}.");
return false;
}
return true;
}
public void _Register() public void _Register()
{ {
m_currentScriptState = (byte)SpellScriptState.Registration; m_currentScriptState = (byte)SpellScriptState.Registration;
+2 -2
View File
@@ -55,7 +55,7 @@ namespace Scripts.Spells.Azerite
{ {
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return spellInfo.GetEffects().Count > 1 && ValidateSpellInfo(spellInfo.GetEffect(1).TriggerSpell); return ValidateSpellEffect(spellInfo.Id, 1) && ValidateSpellInfo(spellInfo.GetEffect(1).TriggerSpell);
} }
void CalculateAmount(AuraEffect aurEff, ref int amount, ref bool canBeRecalculated) void CalculateAmount(AuraEffect aurEff, ref int amount, ref bool canBeRecalculated)
@@ -420,7 +420,7 @@ namespace Scripts.Spells.Azerite
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return ValidateSpellInfo(SpellIds.EchoingBladesTrait) return ValidateSpellInfo(SpellIds.EchoingBladesTrait)
&& Global.SpellMgr.GetSpellInfo(SpellIds.EchoingBladesTrait, Difficulty.None).GetEffects().Count > 2; && ValidateSpellEffect(SpellIds.EchoingBladesTrait, 2);
} }
void CalculateDamage(uint effIndex) void CalculateDamage(uint effIndex)
+5 -5
View File
@@ -118,7 +118,7 @@ namespace Scripts.Spells.DeathKnight
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return ValidateSpellInfo(SpellIds.RunicPowerEnergize, SpellIds.VolatileShielding) && spellInfo.GetEffects().Count > 1; return ValidateSpellInfo(SpellIds.RunicPowerEnergize, SpellIds.VolatileShielding) && ValidateSpellEffect(spellInfo.Id, 1);
} }
public override bool Load() public override bool Load()
@@ -418,7 +418,7 @@ namespace Scripts.Spells.DeathKnight
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return ValidateSpellInfo(SpellIds.DeathStrikeEnabler, SpellIds.DeathStrikeHeal, SpellIds.BloodShieldMastery, SpellIds.BloodShieldAbsorb, SpellIds.RecentlyUsedDeathStrike, SpellIds.Frost, SpellIds.DeathStrikeOffhand) return ValidateSpellInfo(SpellIds.DeathStrikeEnabler, SpellIds.DeathStrikeHeal, SpellIds.BloodShieldMastery, SpellIds.BloodShieldAbsorb, SpellIds.RecentlyUsedDeathStrike, SpellIds.Frost, SpellIds.DeathStrikeOffhand)
&& spellInfo.GetEffects().Count > 2; && ValidateSpellEffect(spellInfo.Id, 2);
} }
void HandleDummy(uint effIndex) void HandleDummy(uint effIndex)
@@ -519,7 +519,7 @@ namespace Scripts.Spells.DeathKnight
{ {
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return ValidateSpellInfo(SpellIds.CorpseExplosionTriggered) && spellInfo.GetEffects().Count > 2; return ValidateSpellInfo(SpellIds.CorpseExplosionTriggered) && ValidateSpellEffect(spellInfo.Id, 2);
} }
void HandleDamage(uint effIndex) void HandleDamage(uint effIndex)
@@ -648,7 +648,7 @@ namespace Scripts.Spells.DeathKnight
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return ValidateSpellInfo(SpellIds.Obliteration, SpellIds.ObliterationRuneEnergize, SpellIds.KillingMachineProc) return ValidateSpellInfo(SpellIds.Obliteration, SpellIds.ObliterationRuneEnergize, SpellIds.KillingMachineProc)
&& Global.SpellMgr.GetSpellInfo(SpellIds.Obliteration, Difficulty.None).GetEffects().Count > 1; && ValidateSpellEffect(SpellIds.Obliteration, 1);
} }
void HandleProc(AuraEffect aurEff, ProcEventInfo eventInfo) void HandleProc(AuraEffect aurEff, ProcEventInfo eventInfo)
@@ -779,7 +779,7 @@ namespace Scripts.Spells.DeathKnight
{ {
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return spellInfo.GetEffects().Count > 1 && ValidateSpellInfo(SpellIds.FrostScythe); return ValidateSpellEffect(spellInfo.Id, 1) && ValidateSpellInfo(SpellIds.FrostScythe);
} }
bool CheckProc(AuraEffect aurEff, ProcEventInfo eventInfo) bool CheckProc(AuraEffect aurEff, ProcEventInfo eventInfo)
+2 -2
View File
@@ -394,7 +394,7 @@ namespace Scripts.Spells.Druid
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return ValidateSpellInfo(SpellIds.IncarnationKingOfTheJungle) return ValidateSpellInfo(SpellIds.IncarnationKingOfTheJungle)
&& Global.SpellMgr.GetSpellInfo(SpellIds.IncarnationKingOfTheJungle, Difficulty.None).GetEffects().Count > 1; && ValidateSpellEffect(SpellIds.IncarnationKingOfTheJungle, 1);
} }
void HandleHitTargetBurn(uint effIndex) void HandleHitTargetBurn(uint effIndex)
@@ -1445,7 +1445,7 @@ namespace Scripts.Spells.Druid
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
if (spellInfo.GetEffects().Count <= 2 || spellInfo.GetEffect(2).IsEffect() || spellInfo.GetEffect(2).CalcValue() <= 0) if (!ValidateSpellEffect(spellInfo.Id, 2) || spellInfo.GetEffect(2).IsEffect() || spellInfo.GetEffect(2).CalcValue() <= 0)
return false; return false;
return true; return true;
} }
+6 -6
View File
@@ -1103,7 +1103,7 @@ namespace Scripts.Spells.Generic
{ {
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return spellInfo.GetEffects().Count > 2 && ValidateSpellInfo((uint)spellInfo.GetEffect(2).CalcValue()); return ValidateSpellEffect(spellInfo.Id, 2) && ValidateSpellInfo((uint)spellInfo.GetEffect(2).CalcValue());
} }
void HandleApply(AuraEffect aurEff, AuraEffectHandleModes mode) void HandleApply(AuraEffect aurEff, AuraEffectHandleModes mode)
@@ -2115,7 +2115,7 @@ namespace Scripts.Spells.Generic
{ {
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return spellInfo.GetEffects().Count > 1; return ValidateSpellEffect(spellInfo.Id, 1);
} }
void CalculateAmount(AuraEffect aurEff, ref int amount, ref bool canBeRecalculated) void CalculateAmount(AuraEffect aurEff, ref int amount, ref bool canBeRecalculated)
@@ -2602,7 +2602,7 @@ namespace Scripts.Spells.Generic
{ {
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return spellInfo.GetEffects().Count > 1; return ValidateSpellEffect(spellInfo.Id, 1);
} }
public override bool Load() public override bool Load()
@@ -3002,7 +3002,7 @@ namespace Scripts.Spells.Generic
{ {
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return spellInfo.GetEffects().Count > 1; return ValidateSpellEffect(spellInfo.Id, 1);
} }
void PeriodicTick(AuraEffect aurEff) void PeriodicTick(AuraEffect aurEff)
@@ -4582,11 +4582,11 @@ namespace Scripts.Spells.Generic
{ {
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return ValidateSpellInfo(SpellIds.FaceRage) && spellInfo.GetEffects().Count > 2; return ValidateSpellInfo(SpellIds.FaceRage) && ValidateSpellEffect(spellInfo.Id, 2);
} }
void OnRemove(AuraEffect effect, AuraEffectHandleModes mode) void OnRemove(AuraEffect effect, AuraEffectHandleModes mode)
{ {
GetTarget().RemoveAurasDueToSpell(GetEffectInfo(2).TriggerSpell); GetTarget().RemoveAurasDueToSpell(GetEffectInfo(2).TriggerSpell);
} }
+5 -5
View File
@@ -3694,7 +3694,7 @@ namespace Scripts.Spells.Items
{ {
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return spellInfo.GetEffects().Count > 1; return ValidateSpellEffect(spellInfo.Id, 1);
} }
public override bool Load() public override bool Load()
@@ -3720,7 +3720,7 @@ namespace Scripts.Spells.Items
{ {
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return spellInfo.GetEffects().Count > 1; return ValidateSpellEffect(spellInfo.Id, 1);
} }
public override bool Load() public override bool Load()
@@ -3826,7 +3826,7 @@ namespace Scripts.Spells.Items
{ {
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return spellInfo.GetEffects().Count > 1; return ValidateSpellEffect(spellInfo.Id, 1);
} }
void OnRemove(AuraEffect effect, AuraEffectHandleModes mode) void OnRemove(AuraEffect effect, AuraEffectHandleModes mode)
@@ -4106,7 +4106,7 @@ namespace Scripts.Spells.Items
{ {
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return spellInfo.GetEffects().Count > 1 return ValidateSpellEffect(spellInfo.Id, 1)
&& ValidateSpellInfo(spellInfo.GetEffect(1).TriggerSpell); && ValidateSpellInfo(spellInfo.GetEffect(1).TriggerSpell);
} }
@@ -4210,7 +4210,7 @@ namespace Scripts.Spells.Items
{ {
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return spellInfo.GetEffects().Count > 1; return ValidateSpellEffect(spellInfo.Id, 1);
} }
bool CheckHealth(AuraEffect aurEff, ProcEventInfo eventInfo) bool CheckHealth(AuraEffect aurEff, ProcEventInfo eventInfo)
+4 -4
View File
@@ -142,7 +142,7 @@ namespace Scripts.Spells.Mage
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return ValidateSpellInfo(SpellIds.ArcaneBarrageR3, SpellIds.ArcaneBarrageEnergize) && spellInfo.GetEffects().Count > 1; return ValidateSpellInfo(SpellIds.ArcaneBarrageR3, SpellIds.ArcaneBarrageEnergize) && ValidateSpellEffect(spellInfo.Id, 1);
} }
void ConsumeArcaneCharges() void ConsumeArcaneCharges()
@@ -205,7 +205,7 @@ namespace Scripts.Spells.Mage
if (!ValidateSpellInfo(SpellIds.ArcaneMage, SpellIds.Reverberate)) if (!ValidateSpellInfo(SpellIds.ArcaneMage, SpellIds.Reverberate))
return false; return false;
if (spellInfo.GetEffects().Count <= 1) if (!ValidateSpellEffect(spellInfo.Id, 1))
return false; return false;
return spellInfo.GetEffect(1).IsEffect(SpellEffectName.SchoolDamage); return spellInfo.GetEffect(1).IsEffect(SpellEffectName.SchoolDamage);
@@ -357,7 +357,7 @@ namespace Scripts.Spells.Mage
{ {
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return spellInfo.GetEffects().Count > 2 && ValidateSpellInfo(SpellIds.CauterizeDot, SpellIds.Cauterized, spellInfo.GetEffect(2).TriggerSpell); return ValidateSpellEffect(spellInfo.Id, 2) && ValidateSpellInfo(SpellIds.CauterizeDot, SpellIds.Cauterized, spellInfo.GetEffect(2).TriggerSpell);
} }
void HandleAbsorb(AuraEffect aurEff, DamageInfo dmgInfo, ref uint absorbAmount) void HandleAbsorb(AuraEffect aurEff, DamageInfo dmgInfo, ref uint absorbAmount)
@@ -611,7 +611,7 @@ namespace Scripts.Spells.Mage
{ {
return ValidateSpellInfo(SpellIds.FireBlast) return ValidateSpellInfo(SpellIds.FireBlast)
&& CliDB.SpellCategoryStorage.HasRecord(Global.SpellMgr.GetSpellInfo(SpellIds.FireBlast, Difficulty.None).ChargeCategoryId) && CliDB.SpellCategoryStorage.HasRecord(Global.SpellMgr.GetSpellInfo(SpellIds.FireBlast, Difficulty.None).ChargeCategoryId)
&& spellInfo.GetEffects().Count > 2; && ValidateSpellEffect(spellInfo.Id, 2);
} }
void CalculateAmount(AuraEffect aurEff, ref int amount, ref bool canBeRecalculated) void CalculateAmount(AuraEffect aurEff, ref int amount, ref bool canBeRecalculated)
+1 -2
View File
@@ -184,8 +184,7 @@ namespace Scripts.Spells.Paladin
{ {
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return ValidateSpellInfo(SpellIds.AvengingWrath) return ValidateSpellInfo(SpellIds.AvengingWrath) && ValidateSpellEffect(spellInfo.Id, 1);
&& spellInfo.GetEffects().Count >= 1;
} }
bool CheckProc(AuraEffect aurEff, ProcEventInfo eventInfo) bool CheckProc(AuraEffect aurEff, ProcEventInfo eventInfo)
+5 -8
View File
@@ -206,8 +206,7 @@ namespace Scripts.Spells.Priest
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return ValidateSpellInfo(SpellIds.AtonementHeal, SpellIds.SinsOfTheMany) return ValidateSpellInfo(SpellIds.AtonementHeal, SpellIds.SinsOfTheMany)
&& spellInfo.GetEffects().Count > 1 && ValidateSpellEffect((spellInfo.Id, 1), (SpellIds.SinsOfTheMany, 2));
&& Global.SpellMgr.GetSpellInfo(SpellIds.SinsOfTheMany, Difficulty.None).GetEffects().Count > 2;
} }
bool CheckProc(ProcEventInfo eventInfo) bool CheckProc(ProcEventInfo eventInfo)
@@ -483,7 +482,7 @@ namespace Scripts.Spells.Priest
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return ValidateSpellInfo(SpellIds.GuardianSpiritHeal) && spellInfo.GetEffects().Count > 1; return ValidateSpellInfo(SpellIds.GuardianSpiritHeal) && ValidateSpellEffect(spellInfo.Id, 1);
} }
public override bool Load() public override bool Load()
@@ -564,9 +563,7 @@ namespace Scripts.Spells.Priest
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return ValidateSpellInfo(SpellIds.Heal, SpellIds.FlashHeal, SpellIds.PrayerOfHealing, SpellIds.Renew, SpellIds.Smite, SpellIds.HolyWordChastise, SpellIds.HolyWordSanctify, SpellIds.HolyWordSerenity) return ValidateSpellInfo(SpellIds.Heal, SpellIds.FlashHeal, SpellIds.PrayerOfHealing, SpellIds.Renew, SpellIds.Smite, SpellIds.HolyWordChastise, SpellIds.HolyWordSanctify, SpellIds.HolyWordSerenity)
&& Global.SpellMgr.GetSpellInfo(SpellIds.HolyWordSerenity, Difficulty.None).GetEffects().Count > 1 && ValidateSpellEffect((SpellIds.HolyWordSerenity, 1), (SpellIds.HolyWordSanctify, 3), (SpellIds.HolyWordChastise, 1));
&& Global.SpellMgr.GetSpellInfo(SpellIds.HolyWordSanctify, Difficulty.None).GetEffects().Count > 3
&& Global.SpellMgr.GetSpellInfo(SpellIds.HolyWordChastise, Difficulty.None).GetEffects().Count > 1;
} }
void HandleProc(AuraEffect aurEff, ProcEventInfo eventInfo) void HandleProc(AuraEffect aurEff, ProcEventInfo eventInfo)
@@ -907,7 +904,7 @@ namespace Scripts.Spells.Priest
{ {
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return ValidateSpellInfo(SpellIds.Atonement, SpellIds.AtonementTriggered, SpellIds.Trinity) && spellInfo.GetEffects().Count > 3; return ValidateSpellInfo(SpellIds.Atonement, SpellIds.AtonementTriggered, SpellIds.Trinity) && ValidateSpellEffect(spellInfo.Id, 3);
} }
void OnTargetSelect(List<WorldObject> targets) void OnTargetSelect(List<WorldObject> targets)
@@ -1270,7 +1267,7 @@ namespace Scripts.Spells.Priest
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return ValidateSpellInfo(SpellIds.PurgeTheWickedPeriodic, SpellIds.RevelInPurity) return ValidateSpellInfo(SpellIds.PurgeTheWickedPeriodic, SpellIds.RevelInPurity)
&& Global.SpellMgr.GetSpellInfo(SpellIds.RevelInPurity, Difficulty.None)?.GetEffects().Count > 1; && ValidateSpellEffect(SpellIds.RevelInPurity, 1);
} }
void FilterTargets(List<WorldObject> targets) void FilterTargets(List<WorldObject> targets)
+1 -1
View File
@@ -1349,7 +1349,7 @@ namespace Scripts.Spells.Quest
{ {
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return spellInfo.GetEffects().Count > 1 return ValidateSpellEffect(spellInfo.Id, 1)
&& ValidateSpellInfo((uint)spellInfo.GetEffect(0).CalcValue()) && ValidateSpellInfo((uint)spellInfo.GetEffect(0).CalcValue())
&& Global.ObjectMgr.GetQuestTemplate((uint)spellInfo.GetEffect(1).CalcValue()) != null; && Global.ObjectMgr.GetQuestTemplate((uint)spellInfo.GetEffect(1).CalcValue()) != null;
} }
+2 -2
View File
@@ -62,7 +62,7 @@ namespace Scripts.Spells.Rogue
{ {
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return spellInfo.GetEffects().Count > 3; return ValidateSpellEffect(spellInfo.Id, 3);
} }
void HandleHitDamage(uint effIndex) void HandleHitDamage(uint effIndex)
@@ -615,7 +615,7 @@ namespace Scripts.Spells.Rogue
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return ValidateSpellInfo(SpellIds.PremeditationAura, SpellIds.SliceAndDice, SpellIds.PremeditationPassive) return ValidateSpellInfo(SpellIds.PremeditationAura, SpellIds.SliceAndDice, SpellIds.PremeditationPassive)
&& Global.SpellMgr.GetSpellInfo(SpellIds.PremeditationPassive, Difficulty.None).GetEffects().Count > 0; && ValidateSpellEffect(SpellIds.PremeditationPassive, 0);
} }
SpellCastResult HandleCheckCast() SpellCastResult HandleCheckCast()
+7 -7
View File
@@ -190,7 +190,7 @@ namespace Scripts.Spells.Shaman
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return ValidateSpellInfo(SpellIds.ChainLightningEnergize, SpellIds.MaelstromController) return ValidateSpellInfo(SpellIds.ChainLightningEnergize, SpellIds.MaelstromController)
&& Global.SpellMgr.GetSpellInfo(SpellIds.MaelstromController, Difficulty.None).GetEffects().Count > 4; && ValidateSpellEffect(SpellIds.MaelstromController, 4);
} }
void HandleScript(uint effIndex) void HandleScript(uint effIndex)
@@ -213,7 +213,7 @@ namespace Scripts.Spells.Shaman
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return ValidateSpellInfo(SpellIds.ChainLightningOverloadEnergize, SpellIds.MaelstromController) return ValidateSpellInfo(SpellIds.ChainLightningOverloadEnergize, SpellIds.MaelstromController)
&& Global.SpellMgr.GetSpellInfo(SpellIds.MaelstromController, Difficulty.None).GetEffects().Count > 5; && ValidateSpellEffect(SpellIds.MaelstromController, 5);
} }
void HandleScript(uint effIndex) void HandleScript(uint effIndex)
@@ -273,7 +273,7 @@ namespace Scripts.Spells.Shaman
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return spellInfo.GetEffects().Count > 1; return ValidateSpellEffect(spellInfo.Id, 1);
} }
void FilterTargets(List<WorldObject> targets) void FilterTargets(List<WorldObject> targets)
@@ -447,7 +447,7 @@ namespace Scripts.Spells.Shaman
{ {
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return ValidateSpellInfo(SpellIds.EarthquakeKnockingDown) && spellInfo.GetEffects().Count > 1; return ValidateSpellInfo(SpellIds.EarthquakeKnockingDown) && ValidateSpellEffect(spellInfo.Id, 1);
} }
void HandleDamageCalc(uint effIndex) void HandleDamageCalc(uint effIndex)
@@ -491,7 +491,7 @@ namespace Scripts.Spells.Shaman
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return ValidateSpellInfo(SpellIds.ElementalBlastCrit, SpellIds.ElementalBlastHaste, SpellIds.ElementalBlastMastery, SpellIds.MaelstromController) return ValidateSpellInfo(SpellIds.ElementalBlastCrit, SpellIds.ElementalBlastHaste, SpellIds.ElementalBlastMastery, SpellIds.MaelstromController)
&& Global.SpellMgr.GetSpellInfo(SpellIds.MaelstromController, Difficulty.None).GetEffects().Count > 10; && ValidateSpellEffect(SpellIds.MaelstromController, 10);
} }
void HandleEnergize(uint effIndex) void HandleEnergize(uint effIndex)
@@ -988,7 +988,7 @@ namespace Scripts.Spells.Shaman
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return ValidateSpellInfo(SpellIds.LightningBoltEnergize, SpellIds.MaelstromController) return ValidateSpellInfo(SpellIds.LightningBoltEnergize, SpellIds.MaelstromController)
&& Global.SpellMgr.GetSpellInfo(SpellIds.MaelstromController, Difficulty.None).GetEffects().Count > 0; && ValidateSpellEffect(SpellIds.MaelstromController, 0);
} }
void HandleScript(uint effIndex) void HandleScript(uint effIndex)
@@ -1011,7 +1011,7 @@ namespace Scripts.Spells.Shaman
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return ValidateSpellInfo(SpellIds.LightningBoltOverloadEnergize, SpellIds.MaelstromController) return ValidateSpellInfo(SpellIds.LightningBoltOverloadEnergize, SpellIds.MaelstromController)
&& Global.SpellMgr.GetSpellInfo(SpellIds.MaelstromController, Difficulty.None).GetEffects().Count > 1; && ValidateSpellEffect(SpellIds.MaelstromController, 1);
} }
void HandleScript(uint effIndex) void HandleScript(uint effIndex)
+1 -1
View File
@@ -219,7 +219,7 @@ namespace Scripts.Spells.Warlock
{ {
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return ValidateSpellInfo(SpellIds.GlyphOfDemonTraining, SpellIds.DevourMagicHeal) && spellInfo.GetEffects().Count > 1; return ValidateSpellInfo(SpellIds.GlyphOfDemonTraining, SpellIds.DevourMagicHeal) && ValidateSpellEffect(spellInfo.Id, 1);
} }
void OnSuccessfulDispel(uint effIndex) void OnSuccessfulDispel(uint effIndex)
+3 -6
View File
@@ -191,7 +191,7 @@ namespace Scripts.Spells.Warrior
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return ValidateSpellInfo(SpellIds.ColossusSmashAura, SpellIds.InForTheKill, SpellIds.InForTheKillHaste) return ValidateSpellInfo(SpellIds.ColossusSmashAura, SpellIds.InForTheKill, SpellIds.InForTheKillHaste)
&& Global.SpellMgr.GetSpellInfo(SpellIds.InForTheKill, Difficulty.None).GetEffects().Count > 2; && ValidateSpellEffect(SpellIds.InForTheKill, 2);
} }
void HandleHit() void HandleHit()
@@ -412,7 +412,7 @@ namespace Scripts.Spells.Warrior
{ {
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return ValidateSpellInfo(SpellIds.Stoicism) && spellInfo.GetEffects().Count > 1; return ValidateSpellInfo(SpellIds.Stoicism) && ValidateSpellEffect(spellInfo.Id, 1);
} }
void HandleProc(ProcEventInfo eventInfo) void HandleProc(ProcEventInfo eventInfo)
@@ -523,10 +523,7 @@ namespace Scripts.Spells.Warrior
{ {
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
if (!ValidateSpellInfo(SpellIds.Shockwave, SpellIds.ShockwaveStun)) return !ValidateSpellInfo(SpellIds.Shockwave, SpellIds.ShockwaveStun) && ValidateSpellEffect(spellInfo.Id, 3);
return false;
return spellInfo.GetEffects().Count > 3;
} }
public override bool Load() public override bool Load()