Scripts/ICC: Added Orange/Green Blight Residue

Closes #5920
Closes #12464 (PR)

Signed-off-by: DDuarte <[email protected]>
This commit is contained in:
Golrag
2014-07-21 03:11:55 +01:00
committed by DDuarte
parent b82c66f57e
commit 1a391e9fbd
3 changed files with 83 additions and 1 deletions
@@ -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');
@@ -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);
}
};
@@ -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();
}