diff options
author | Golrag <buderus@hotmail.be> | 2014-07-21 03:05:27 +0100 |
---|---|---|
committer | DDuarte <dnpd.dd@gmail.com> | 2014-07-21 03:11:55 +0100 |
commit | 1a391e9fbdfe6e0d3faf7a362e6250ece75204b9 (patch) | |
tree | 0d111b4ab44981e361e47837aef371380d0f9c08 /src | |
parent | b82c66f57e7af81ee76f6c542f19bd05d5729b38 (diff) |
Scripts/ICC: Added Orange/Green Blight Residue
Closes #5920
Closes #12464 (PR)
Signed-off-by: DDuarte <dnpd.dd@gmail.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp | 30 | ||||
-rw-r--r-- | src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp | 48 |
2 files changed, 77 insertions, 1 deletions
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp index 4e45d72cadf..96cc16fda8c 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp @@ -457,11 +457,39 @@ class spell_festergut_blighted_spores : public SpellScriptLoader if (InstanceScript* instance = GetTarget()->GetInstanceScript()) if (Creature* festergut = ObjectAccessor::GetCreature(*GetTarget(), instance->GetData64(DATA_FESTERGUT))) festergut->AI()->SetData(DATA_INOCULATED_STACK, GetStackAmount()); + + HandleResidue(); + } + + void HandleResidue() + { + Player* target = GetUnitOwner()->ToPlayer(); + if (!target) + return; + + if (target->HasAura(SPELL_ORANGE_BLIGHT_RESIDUE)) + return; + + if (target->GetMap() && !target->GetMap()->Is25ManRaid()) + { + if (target->GetQuestStatus(QUEST_RESIDUE_RENDEZVOUS_10) != QUEST_STATUS_INCOMPLETE) + return; + + target->CastSpell(target, SPELL_ORANGE_BLIGHT_RESIDUE, TRIGGERED_FULL_MASK); + } + + if (target->GetMap() && target->GetMap()->Is25ManRaid()) + { + if (target->GetQuestStatus(QUEST_RESIDUE_RENDEZVOUS_25) != QUEST_STATUS_INCOMPLETE) + return; + + target->CastSpell(target, SPELL_ORANGE_BLIGHT_RESIDUE, TRIGGERED_FULL_MASK); + } } void Register() override { - AfterEffectApply += AuraEffectApplyFn(spell_festergut_blighted_spores_AuraScript::ExtraEffect, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK); + OnEffectRemove += AuraEffectApplyFn(spell_festergut_blighted_spores_AuraScript::ExtraEffect, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK); } }; diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp index c1ee616218c..2f2889a9cf3 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp @@ -862,6 +862,53 @@ class spell_rotface_vile_gas_trigger : public SpellScriptLoader } }; +class spell_rotface_slime_spray : public SpellScriptLoader +{ + public: + spell_rotface_slime_spray() : SpellScriptLoader("spell_rotface_slime_spray") { } + + class spell_rotface_slime_spray_SpellScript : public SpellScript + { + PrepareSpellScript(spell_rotface_slime_spray_SpellScript); + + void HandleResidue() + { + Player* target = GetHitPlayer(); + if (!target) + return; + + if (target->HasAura(SPELL_GREEN_BLIGHT_RESIDUE)) + return; + + if (target->GetMap() && !target->GetMap()->Is25ManRaid()) + { + if (target->GetQuestStatus(QUEST_RESIDUE_RENDEZVOUS_10) != QUEST_STATUS_INCOMPLETE) + return; + + target->CastSpell(target, SPELL_GREEN_BLIGHT_RESIDUE, TRIGGERED_FULL_MASK); + } + + if (target->GetMap() && target->GetMap()->Is25ManRaid()) + { + if (target->GetQuestStatus(QUEST_RESIDUE_RENDEZVOUS_25) != QUEST_STATUS_INCOMPLETE) + return; + + target->CastSpell(target, SPELL_GREEN_BLIGHT_RESIDUE, TRIGGERED_FULL_MASK); + } + } + + void Register() override + { + OnHit += SpellHitFn(spell_rotface_slime_spray_SpellScript::HandleResidue); + } + }; + + SpellScript* GetSpellScript() const override + { + return new spell_rotface_slime_spray_SpellScript(); + } +}; + void AddSC_boss_rotface() { new boss_rotface(); @@ -877,4 +924,5 @@ void AddSC_boss_rotface() new spell_rotface_unstable_ooze_explosion(); new spell_rotface_unstable_ooze_explosion_suicide(); new spell_rotface_vile_gas_trigger(); + new spell_rotface_slime_spray(); } |