Core/AI: OnSpellCast, OnSpellFailed, OnSpellStart hooks (#27704)

This commit is contained in:
offl
2022-02-18 19:14:44 +02:00
committed by GitHub
parent 410c3ff25f
commit 3dca705acc
14 changed files with 96 additions and 29 deletions

View File

@@ -1345,9 +1345,9 @@ struct npc_shambling_horror_icc : public ScriptedAI
DoMeleeAttackIfReady();
}
void OnSpellCastFinished(SpellInfo const* spell, SpellFinishReason reason) override
void OnSpellFailed(SpellInfo const* spell) override
{
if (reason == SPELL_FINISHED_CANCELED && spell->Id == ENRAGE)
if (spell->Id == ENRAGE)
_events.RescheduleEvent(EVENT_ENRAGE, 1s);
}

View File

@@ -19,7 +19,6 @@
#include "halls_of_stone.h"
#include "InstanceScript.h"
#include "ScriptedCreature.h"
#include "Spell.h"
#include "SpellInfo.h"
#include "SpellMgr.h"
@@ -82,9 +81,9 @@ struct boss_maiden_of_grief : public BossAI
Talk(SAY_SLAY);
}
void OnSpellCastFinished(SpellInfo const* spell, SpellFinishReason reason) override
void OnSpellCast(SpellInfo const* spell) override
{
if (reason == SPELL_FINISHED_SUCCESSFUL_CAST && spell->Id == sSpellMgr->GetSpellIdForDifficulty(SPELL_SHOCK_OF_SORROW, me))
if (spell->Id == sSpellMgr->GetSpellIdForDifficulty(SPELL_SHOCK_OF_SORROW, me))
Talk(SAY_STUN);
}

View File

@@ -20,7 +20,6 @@
#include "ObjectAccessor.h"
#include "Player.h"
#include "ScriptedCreature.h"
#include "Spell.h"
#include "SpellInfo.h"
#include "SpellScript.h"
@@ -122,9 +121,9 @@ struct boss_exarch_maladaar : public BossAI
}
}
void OnSpellCastFinished(SpellInfo const* spell, SpellFinishReason reason) override
void OnSpellCast(SpellInfo const* spell) override
{
if (reason == SPELL_FINISHED_SUCCESSFUL_CAST && spell->Id == SPELL_STOLEN_SOUL)
if (spell->Id == SPELL_STOLEN_SOUL)
if (roll_chance_i(25))
Talk(SAY_SOUL_CLEAVE);
}

View File

@@ -17,7 +17,6 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "Spell.h"
#include "SpellInfo.h"
#include "SpellScript.h"
#include "the_botanica.h"
@@ -97,9 +96,9 @@ struct boss_commander_sarannis : public BossAI
}
}
void OnSpellCastFinished(SpellInfo const* spell, SpellFinishReason reason) override
void OnSpellCast(SpellInfo const* spell) override
{
if (reason == SPELL_FINISHED_SUCCESSFUL_CAST && spell->Id == SPELL_SUMMON_REINFORCEMENTS)
if (spell->Id == SPELL_SUMMON_REINFORCEMENTS)
Talk(SAY_SUMMON);
}

View File

@@ -17,7 +17,6 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "Spell.h"
#include "SpellInfo.h"
#include "the_botanica.h"
@@ -82,9 +81,9 @@ struct boss_warp_splinter : public BossAI
Talk(SAY_DEATH);
}
void OnSpellCastFinished(SpellInfo const* spell, SpellFinishReason reason) override
void OnSpellCast(SpellInfo const* spell) override
{
if (reason == SPELL_FINISHED_SUCCESSFUL_CAST && spell->Id == SPELL_SUMMON_SAPLINGS)
if (spell->Id == SPELL_SUMMON_SAPLINGS)
{
for (uint32 summonSpells : SummonSaplingsSpells)
DoCastSelf(summonSpells, true);