Scripts/ICC: Added Orange/Green Blight Residue
Closes #5920 Closes #12464 (PR) Signed-off-by: DDuarte <[email protected]>
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user