aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp30
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp48
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();
}