- class spell_add_threat_and_combat_state : public SpellScriptLoader
- {
- public:
- spell_add_threat_and_combat_state() : SpellScriptLoader("spell_add_threat_and_combat_state") { }
- class spell_add_threat_and_combat_state_SpellScript : public SpellScript
- {
- PrepareSpellScript(spell_add_threat_and_combat_state_SpellScript);
- void HandleScript(SpellEffIndex /*effIndex*/)
- {
- if (Creature* creature = GetHitCreature())
- {
- creature->AddThreat(GetCaster(), float(GetEffectValue()));
- creature->AI()->AttackStart(GetCaster());
- }
- }
- void Register() override
- {
- OnEffectHitTarget += SpellEffectFn(spell_add_threat_and_combat_state_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
- }
- };
- SpellScript* GetSpellScript() const override
- {
- return new spell_add_threat_and_combat_state_SpellScript();
- }
- };
- class spell_remove_from_combat : public SpellScriptLoader
- {
- public:
- spell_remove_from_combat() : SpellScriptLoader("spell_remove_from_combat") { }
- class spell_remove_from_combat_SpellScript : public SpellScript
- {
- PrepareSpellScript(spell_remove_from_combat_SpellScript);
- void HandleScript(SpellEffIndex /*effIndex*/)
- {
- if (Unit* caster = GetCaster())
- {
- if (Unit* unitTarget = GetHitCreature())
- {
- unitTarget->DeleteThreatList();
- unitTarget->CombatStop(true);
- unitTarget->GetMotionMaster()->Clear();
- unitTarget->GetMotionMaster()->MoveIdle();
- }
- }
- }
- void Register() override
- {
- OnEffectHitTarget += SpellEffectFn(spell_remove_from_combat_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
- }
- };
- SpellScript* GetSpellScript() const override
- {
- return new spell_remove_from_combat_SpellScript();
- }
- };
- class spell_set_respawn_delay : public SpellScriptLoader
- {
- public:
- spell_set_respawn_delay() : SpellScriptLoader("spell_set_respawn_delay") { }
- class spell_set_respawn_delay_SpellScript : public SpellScript
- {
- PrepareSpellScript(spell_set_respawn_delay_SpellScript);
- void HandleScript(SpellEffIndex /*effIndex*/)
- {
- if (Creature* creature = GetHitCreature())
- {
- creature->SetCorpseDelay(5);
- creature->SetRespawnDelay(uint32(GetEffectValue()));
- }
- }
- void Register() override
- {
- OnEffectHitTarget += SpellEffectFn(spell_set_respawn_delay_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
- }
- };
- SpellScript* GetSpellScript() const override
- {
- return new spell_set_respawn_delay_SpellScript();
- }
- };
- class spell_set_respawn_delay_2 : public SpellScriptLoader
- {
- public:
- spell_set_respawn_delay_2() : SpellScriptLoader("spell_set_respawn_delay_2") { }
- class spell_set_respawn_delay_2_SpellScript : public SpellScript
- {
- PrepareSpellScript(spell_set_respawn_delay_2_SpellScript);
- void HandleScript(SpellEffIndex /*effIndex*/)
- {
- if (Creature* creature = GetHitCreature())
- {
- uint32 corpseDelay = creature->GetCorpseDelay();
- uint32 respawnDelay = creature->GetRespawnDelay();
- creature->SetCorpseDelay(5);
- creature->SetRespawnDelay(uint32(GetEffectValue()));
- creature->DespawnOrUnsummon();
- creature->SetCorpseDelay(corpseDelay);
- creature->SetRespawnDelay(respawnDelay);
- }
- }
- void Register() override
- {
- OnEffectHitTarget += SpellEffectFn(spell_set_respawn_delay_2_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
- }
- };
- SpellScript* GetSpellScript() const override
- {
- return new spell_set_respawn_delay_2_SpellScript();
- }
- };
Generic template spells.