Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //INSERT INTO spell_script_names VALUES (999347, 'freakz_aura_remove_areatriggers_xylem_mage_tower');
- class freakz_aura_remove_areatriggers_xylem_mage_tower : public SpellScriptLoader
- {
- public:
- freakz_aura_remove_areatriggers_xylem_mage_tower() : SpellScriptLoader("freakz_aura_remove_areatriggers_xylem_mage_tower") { }
- enum eMisc
- {
- //Creatures:
- NPC_XYLEM = 115244,
- NPC_XYLEM_CLONE = 116295,
- NPC_CORRUPTING_SHADOWS = 116839,
- //Spells:
- SPELL_ARCANE_AREATRIGGER = 231982,
- SPELL_PURPLE_GOO_AREATRIGGER = 232664
- };
- class freakz_aura_remove_areatriggers_xylem_mage_tower_AuraScript : public AuraScript
- {
- PrepareAuraScript(freakz_aura_remove_areatriggers_xylem_mage_tower_AuraScript);
- void HandleApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
- {
- if (!GetCaster())
- return;
- Unit* caster = GetCaster();
- Creature* xylem = caster->FindNearestCreature(NPC_XYLEM, 200.0f);
- Creature* corruptingShadows = caster->FindNearestCreature(NPC_CORRUPTING_SHADOWS, 200.0f, false);
- if (!xylem && !corruptingShadows)
- return;
- if (xylem)
- {
- std::list<Creature*> xylemClones;
- caster->GetCreatureListWithEntryInGrid(xylemClones, NPC_XYLEM_CLONE);
- for (Creature* xylem_clone : xylemClones)
- if (xylem_clone->GetAreaTrigger(SPELL_ARCANE_AREATRIGGER))
- xylem_clone->GetAreaTrigger(SPELL_ARCANE_AREATRIGGER)->Remove();
- }
- else //if (corruptingShadows)
- {
- std::vector<AreaTrigger*> goo_areatriggers = corruptingShadows->GetAreaTriggers(SPELL_PURPLE_GOO_AREATRIGGER);
- for (AreaTrigger* at : goo_areatriggers)
- if (at)
- at->Remove();
- }
- }
- void Register() override
- {
- AfterEffectApply += AuraEffectApplyFn(freakz_aura_remove_areatriggers_xylem_mage_tower_AuraScript::HandleApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
- }
- };
- AuraScript* GetAuraScript() const override
- {
- return new freakz_aura_remove_areatriggers_xylem_mage_tower_AuraScript();
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement