aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGolrag <buderus@hotmail.be>2014-07-21 03:05:27 +0100
committerDDuarte <dnpd.dd@gmail.com>2014-07-21 03:11:55 +0100
commit1a391e9fbdfe6e0d3faf7a362e6250ece75204b9 (patch)
tree0d111b4ab44981e361e47837aef371380d0f9c08
parentb82c66f57e7af81ee76f6c542f19bd05d5729b38 (diff)
Scripts/ICC: Added Orange/Green Blight Residue
Closes #5920 Closes #12464 (PR) Signed-off-by: DDuarte <dnpd.dd@gmail.com>
-rw-r--r--sql/updates/world/2014_07_21_04_world_spell_script_names.sql6
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp30
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp48
3 files changed, 83 insertions, 1 deletions
diff --git a/sql/updates/world/2014_07_21_04_world_spell_script_names.sql b/sql/updates/world/2014_07_21_04_world_spell_script_names.sql
new file mode 100644
index 00000000000..c7080adb88e
--- /dev/null
+++ b/sql/updates/world/2014_07_21_04_world_spell_script_names.sql
@@ -0,0 +1,6 @@
+DELETE FROM spell_script_names WHERE spell_id IN (69507, 71213, 73189, 73190);
+INSERT INTO spell_script_names VALUES
+(69507, 'spell_rotface_slime_spray'),
+(71213, 'spell_rotface_slime_spray'),
+(73189, 'spell_rotface_slime_spray'),
+(73190, 'spell_rotface_slime_spray');
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();
}