From ec70cff006f518c641f7283074a85fc80b32ab42 Mon Sep 17 00:00:00 2001 From: ccrs Date: Thu, 19 Aug 2021 18:20:50 +0200 Subject: Scripts/Ahnkahet: rescript Ahn'kahar Spell Flinger SAI + spell scripts + spelldifficulty_dbc entries (cherry picked from commit 57fe05f270ec150b05e101f1325d3b27e2e5a655) --- .../Northrend/AzjolNerub/Ahnkahet/ahnkahet.h | 6 ++++ .../AzjolNerub/Ahnkahet/instance_ahnkahet.cpp | 39 ++++++++++++++++++++++ 2 files changed, 45 insertions(+) (limited to 'src/server/scripts') diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/ahnkahet.h b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/ahnkahet.h index e0b70b3fa36..830975a8fcd 100644 --- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/ahnkahet.h +++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/ahnkahet.h @@ -78,6 +78,12 @@ enum AKGameObjectIds GO_SPHERE_2 = 193094 }; +enum AKSpellIds +{ + SPELL_SHADOW_SICKLE_TRIGGERED = 56701, + SPELL_SHADOW_SICKLE_TRIGGERED_H = 59104, +}; + template inline AI* GetAhnKahetAI(T* obj) { diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/instance_ahnkahet.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/instance_ahnkahet.cpp index 2a31175bb65..a3347456a9d 100644 --- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/instance_ahnkahet.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/instance_ahnkahet.cpp @@ -170,6 +170,45 @@ class spell_combined_toxins : public AuraScript } }; +// 56702, 59103 - Shadow Sickle +class spell_shadow_sickle : public AuraScript +{ + PrepareAuraScript(spell_shadow_sickle); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_SHADOW_SICKLE_TRIGGERED, SPELL_SHADOW_SICKLE_TRIGGERED_H }); + } + + void HandlePeriodic(AuraEffect const* aurEff) + { + Unit* owner = GetUnitOwner(); + + uint32 spellId = 0; + + switch (GetId()) + { + case 56702: + spellId = SPELL_SHADOW_SICKLE_TRIGGERED; + break; + case 59103: + spellId = SPELL_SHADOW_SICKLE_TRIGGERED_H; + break; + default: + return; + } + + if (owner->IsAIEnabled()) + if (Unit* target = owner->GetAI()->SelectTarget(SelectTargetMethod::Random, 0, 40.f)) + owner->CastSpell(target, spellId, CastSpellExtraArgs(aurEff).SetTriggerFlags(TriggerCastFlags::TRIGGERED_FULL_MASK)); + } + + void Register() override + { + OnEffectPeriodic += AuraEffectPeriodicFn(spell_shadow_sickle::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL); + } +}; + void AddSC_instance_ahnkahet() { new instance_ahnkahet(); -- cgit v1.2.3