Scripts/Icecrown Citadel
* Fixed Professor Putricide Tear Gas stunning himself * Fixed visual of Unstable Experiment * Fixed oozes not picking new targets after hitting old * Fixed Gas Cloud not using melee attack * Removed ooze summon position hack Closes #4301 Closes #2726 Closes #5119 Closes #4464 Closes #2874 Closes #4407 Closes #2421 Closes #4899
This commit is contained in:
@@ -0,0 +1,18 @@
|
|||||||
|
UPDATE `creature_template` SET `InhabitType`=4 WHERE `entry` IN (38308,38309,37824); -- Professor Putricide triggers
|
||||||
|
UPDATE `creature_template` SET `ScriptName`='npc_gas_cloud' WHERE `entry`=37562; -- Gas Cloud
|
||||||
|
DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_putricide_ooze_summon';
|
||||||
|
DELETE FROM `spell_target_position` WHERE `id` IN (71413,71414);
|
||||||
|
INSERT INTO `spell_target_position` (`id`,`target_map`,`target_position_x`,`target_position_y`,`target_position_z`,`target_orientation`) VALUES
|
||||||
|
(71414,631,4335.00,3206.75,389.399,0),
|
||||||
|
(71413,631,4380.43,3206.55,389.398,0);
|
||||||
|
|
||||||
|
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry` IN (71615,71618,71412,71415);
|
||||||
|
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`Comment`) VALUES
|
||||||
|
(13,4,71615,31,3,37690,'Putricide - Tear Gas on Slime Puddle'),
|
||||||
|
(13,1,71618,31,3,37562,'Putricide - Tear Gas on Gas Cloud'),
|
||||||
|
(13,2,71618,31,3,37697,'Putricide - Tear Gas on Volatile Ooze'),
|
||||||
|
(13,4,71618,31,3,38159,'Putricide - Tear Gas on Choking Gas Bomb');
|
||||||
|
|
||||||
|
UPDATE `spell_script_names` SET `ScriptName`='spell_putricide_clear_aura_effect_value' WHERE `ScriptName`='spell_putricide_clear_mutated_plague';
|
||||||
|
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
|
||||||
|
(71620,'spell_putricide_clear_aura_effect_value');
|
||||||
@@ -7396,8 +7396,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
|
|||||||
if (GetTypeId() != TYPEID_PLAYER || !victim || !victim->isAlive() || !castItem || !castItem->IsEquipped())
|
if (GetTypeId() != TYPEID_PLAYER || !victim || !victim->isAlive() || !castItem || !castItem->IsEquipped())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
Player* player = ToPlayer();
|
WeaponAttackType attType = WeaponAttackType(Player::GetAttackBySlot(castItem->GetSlot()));
|
||||||
WeaponAttackType attType = WeaponAttackType(player->GetAttackBySlot(castItem->GetSlot()));
|
|
||||||
if ((attType != BASE_ATTACK && attType != OFF_ATTACK)
|
if ((attType != BASE_ATTACK && attType != OFF_ATTACK)
|
||||||
|| (attType == BASE_ATTACK && procFlag & PROC_FLAG_DONE_OFFHAND_ATTACK)
|
|| (attType == BASE_ATTACK && procFlag & PROC_FLAG_DONE_OFFHAND_ATTACK)
|
||||||
|| (attType == OFF_ATTACK && procFlag & PROC_FLAG_DONE_MAINHAND_ATTACK))
|
|| (attType == OFF_ATTACK && procFlag & PROC_FLAG_DONE_MAINHAND_ATTACK))
|
||||||
@@ -7985,11 +7984,7 @@ bool Unit::HandleAuraProc(Unit* victim, uint32 damage, Aura* triggeredByAura, Sp
|
|||||||
for (uint8 i = 1; i < stack; ++i)
|
for (uint8 i = 1; i < stack; ++i)
|
||||||
dmg += mod * stack;
|
dmg += mod * stack;
|
||||||
if (Unit* caster = triggeredByAura->GetCaster())
|
if (Unit* caster = triggeredByAura->GetCaster())
|
||||||
{
|
|
||||||
caster->CastCustomSpell(70701, SPELLVALUE_BASE_POINT0, dmg);
|
caster->CastCustomSpell(70701, SPELLVALUE_BASE_POINT0, dmg);
|
||||||
if (Creature* creature = caster->ToCreature())
|
|
||||||
creature->DespawnOrUnsummon(1);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// Ball of Flames Proc
|
// Ball of Flames Proc
|
||||||
@@ -17576,7 +17571,7 @@ bool Unit::SetWalk(bool enable)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Unit::SetDisableGravity(bool disable, bool packetOnly /*= false*/)
|
bool Unit::SetDisableGravity(bool disable, bool /*packetOnly = false*/)
|
||||||
{
|
{
|
||||||
if (disable == IsLevitating())
|
if (disable == IsLevitating())
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -3347,9 +3347,9 @@ void SpellMgr::LoadDbcDataCorrections()
|
|||||||
case 70460: // Coldflame Jets (Traps after Saurfang)
|
case 70460: // Coldflame Jets (Traps after Saurfang)
|
||||||
spellInfo->DurationIndex = 1; // 10 seconds
|
spellInfo->DurationIndex = 1; // 10 seconds
|
||||||
break;
|
break;
|
||||||
case 71413: // Green Ooze Summon (Professor Putricide)
|
case 71412: // Green Ooze Summon (Professor Putricide)
|
||||||
case 71414: // Orange Ooze Summon (Professor Putricide)
|
case 71415: // Orange Ooze Summon (Professor Putricide)
|
||||||
spellInfo->EffectImplicitTargetA[0] = TARGET_DEST_DEST;
|
spellInfo->EffectImplicitTargetA[0] = TARGET_UNIT_TARGET_ANY;
|
||||||
break;
|
break;
|
||||||
case 71159: // Awaken Plagued Zombies
|
case 71159: // Awaken Plagued Zombies
|
||||||
spellInfo->DurationIndex = 21;
|
spellInfo->DurationIndex = 21;
|
||||||
|
|||||||
@@ -64,6 +64,9 @@ enum Spells
|
|||||||
SPELL_MALLEABLE_GOO = 70852,
|
SPELL_MALLEABLE_GOO = 70852,
|
||||||
SPELL_UNSTABLE_EXPERIMENT = 70351,
|
SPELL_UNSTABLE_EXPERIMENT = 70351,
|
||||||
SPELL_TEAR_GAS = 71617, // phase transition
|
SPELL_TEAR_GAS = 71617, // phase transition
|
||||||
|
SPELL_TEAR_GAS_CREATURE = 71618,
|
||||||
|
SPELL_TEAR_GAS_CANCEL = 71620,
|
||||||
|
SPELL_TEAR_GAS_PERIODIC_TRIGGER = 73170,
|
||||||
SPELL_CREATE_CONCOCTION = 71621,
|
SPELL_CREATE_CONCOCTION = 71621,
|
||||||
SPELL_GUZZLE_POTIONS = 71893,
|
SPELL_GUZZLE_POTIONS = 71893,
|
||||||
SPELL_OOZE_TANK_PROTECTION = 71770, // protects the tank
|
SPELL_OOZE_TANK_PROTECTION = 71770, // protects the tank
|
||||||
@@ -86,6 +89,7 @@ enum Spells
|
|||||||
SPELL_GASEOUS_BLOAT_PROC = 70215,
|
SPELL_GASEOUS_BLOAT_PROC = 70215,
|
||||||
SPELL_GASEOUS_BLOAT = 70672,
|
SPELL_GASEOUS_BLOAT = 70672,
|
||||||
SPELL_GASEOUS_BLOAT_PROTECTION = 70812,
|
SPELL_GASEOUS_BLOAT_PROTECTION = 70812,
|
||||||
|
SPELL_EXPUNGED_GAS = 70701,
|
||||||
|
|
||||||
// Volatile Ooze
|
// Volatile Ooze
|
||||||
SPELL_OOZE_ERUPTION = 70492,
|
SPELL_OOZE_ERUPTION = 70492,
|
||||||
@@ -595,13 +599,15 @@ class boss_professor_putricide : public CreatureScript
|
|||||||
break;
|
break;
|
||||||
case EVENT_TEAR_GAS:
|
case EVENT_TEAR_GAS:
|
||||||
me->GetMotionMaster()->MovePoint(POINT_TABLE, tablePos);
|
me->GetMotionMaster()->MovePoint(POINT_TABLE, tablePos);
|
||||||
|
DoCast(me, SPELL_TEAR_GAS_PERIODIC_TRIGGER, true);
|
||||||
break;
|
break;
|
||||||
case EVENT_RESUME_ATTACK:
|
case EVENT_RESUME_ATTACK:
|
||||||
me->SetReactState(REACT_DEFENSIVE);
|
me->SetReactState(REACT_DEFENSIVE);
|
||||||
AttackStart(me->getVictim());
|
AttackStart(me->getVictim());
|
||||||
// remove Tear Gas
|
// remove Tear Gas
|
||||||
|
me->RemoveAurasDueToSpell(SPELL_TEAR_GAS_PERIODIC_TRIGGER);
|
||||||
instance->DoRemoveAurasDueToSpellOnPlayers(71615);
|
instance->DoRemoveAurasDueToSpellOnPlayers(71615);
|
||||||
instance->DoRemoveAurasDueToSpellOnPlayers(71618);
|
DoCastAOE(SPELL_TEAR_GAS_CANCEL);
|
||||||
instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_GAS_VARIABLE);
|
instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_GAS_VARIABLE);
|
||||||
instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_OOZE_VARIABLE);
|
instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_OOZE_VARIABLE);
|
||||||
break;
|
break;
|
||||||
@@ -699,27 +705,36 @@ class npc_volatile_ooze : public CreatureScript
|
|||||||
public:
|
public:
|
||||||
npc_volatile_ooze() : CreatureScript("npc_volatile_ooze") { }
|
npc_volatile_ooze() : CreatureScript("npc_volatile_ooze") { }
|
||||||
|
|
||||||
struct npc_volatile_oozeAI : public ScriptedAI
|
struct npc_putricide_oozeAI : public ScriptedAI
|
||||||
{
|
{
|
||||||
npc_volatile_oozeAI(Creature* creature) : ScriptedAI(creature)
|
npc_putricide_oozeAI(Creature* creature) : ScriptedAI(creature)
|
||||||
{
|
{
|
||||||
_newTargetSelectTimer = 0;
|
_newTargetSelectTimer = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpellHitTarget(Unit* /*target*/, SpellInfo const* spell)
|
void SpellHitTarget(Unit* /*target*/, SpellInfo const* spell)
|
||||||
{
|
{
|
||||||
if (!_newTargetSelectTimer && sSpellMgr->GetSpellDifficultyId(spell->Id) == sSpellMgr->GetSpellDifficultyId(SPELL_OOZE_ERUPTION))
|
if (!_newTargetSelectTimer && spell->Id == sSpellMgr->GetSpellIdForDifficulty(SPELL_OOZE_ERUPTION, me))
|
||||||
|
_newTargetSelectTimer = 1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
|
||||||
|
{
|
||||||
|
if (spell->Id == SPELL_TEAR_GAS_CREATURE)
|
||||||
_newTargetSelectTimer = 1000;
|
_newTargetSelectTimer = 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateAI(uint32 const diff)
|
void UpdateAI(uint32 const diff)
|
||||||
{
|
{
|
||||||
if (!UpdateVictim())
|
if (!UpdateVictim() && !_newTargetSelectTimer)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!_newTargetSelectTimer)
|
if (!_newTargetSelectTimer)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (me->HasAura(SPELL_TEAR_GAS_CREATURE))
|
||||||
|
return;
|
||||||
|
|
||||||
if (_newTargetSelectTimer <= diff)
|
if (_newTargetSelectTimer <= diff)
|
||||||
{
|
{
|
||||||
_newTargetSelectTimer = 0;
|
_newTargetSelectTimer = 0;
|
||||||
@@ -730,13 +745,68 @@ class npc_volatile_ooze : public CreatureScript
|
|||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// no need to use EventMap for just one event
|
|
||||||
uint32 _newTargetSelectTimer;
|
uint32 _newTargetSelectTimer;
|
||||||
};
|
};
|
||||||
|
|
||||||
CreatureAI* GetAI(Creature* creature) const
|
CreatureAI* GetAI(Creature* creature) const
|
||||||
{
|
{
|
||||||
return GetIcecrownCitadelAI<npc_volatile_oozeAI>(creature);
|
return GetIcecrownCitadelAI<npc_putricide_oozeAI>(creature);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
class npc_gas_cloud : public CreatureScript
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
npc_gas_cloud() : CreatureScript("npc_gas_cloud") { }
|
||||||
|
|
||||||
|
struct npc_gas_cloudAI : public ScriptedAI
|
||||||
|
{
|
||||||
|
npc_gas_cloudAI(Creature* creature) : ScriptedAI(creature)
|
||||||
|
{
|
||||||
|
_newTargetSelectTimer = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SpellHitTarget(Unit* /*target*/, SpellInfo const* spell)
|
||||||
|
{
|
||||||
|
if (!_newTargetSelectTimer && spell->Id == sSpellMgr->GetSpellIdForDifficulty(SPELL_EXPUNGED_GAS, me))
|
||||||
|
_newTargetSelectTimer = 1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
|
||||||
|
{
|
||||||
|
if (spell->Id == SPELL_TEAR_GAS_CREATURE)
|
||||||
|
_newTargetSelectTimer = 1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateAI(uint32 const diff)
|
||||||
|
{
|
||||||
|
if (!UpdateVictim() && !_newTargetSelectTimer)
|
||||||
|
return;
|
||||||
|
|
||||||
|
DoMeleeAttackIfReady();
|
||||||
|
|
||||||
|
if (!_newTargetSelectTimer)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (me->HasAura(SPELL_TEAR_GAS_CREATURE))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (_newTargetSelectTimer <= diff)
|
||||||
|
{
|
||||||
|
_newTargetSelectTimer = 0;
|
||||||
|
me->CastCustomSpell(SPELL_GASEOUS_BLOAT, SPELLVALUE_AURA_STACK, 10, me, false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
_newTargetSelectTimer -= diff;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
uint32 _newTargetSelectTimer;
|
||||||
|
};
|
||||||
|
|
||||||
|
CreatureAI* GetAI(Creature* creature) const
|
||||||
|
{
|
||||||
|
return GetIcecrownCitadelAI<npc_gas_cloudAI>(creature);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -755,8 +825,8 @@ class spell_putricide_gaseous_bloat : public SpellScriptLoader
|
|||||||
if (Unit* caster = GetCaster())
|
if (Unit* caster = GetCaster())
|
||||||
{
|
{
|
||||||
target->RemoveAuraFromStack(GetSpellInfo()->Id, GetCasterGUID());
|
target->RemoveAuraFromStack(GetSpellInfo()->Id, GetCasterGUID());
|
||||||
if (!target->HasAura(GetId())&& caster->GetTypeId() == TYPEID_UNIT)
|
if (!target->HasAura(GetId()))
|
||||||
caster->ToCreature()->DespawnOrUnsummon();
|
caster->CastCustomSpell(SPELL_GASEOUS_BLOAT, SPELLVALUE_AURA_STACK, 10, caster, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -823,7 +893,19 @@ class spell_putricide_ooze_channel : public SpellScriptLoader
|
|||||||
void StartAttack()
|
void StartAttack()
|
||||||
{
|
{
|
||||||
GetCaster()->ClearUnitState(UNIT_STATE_CASTING);
|
GetCaster()->ClearUnitState(UNIT_STATE_CASTING);
|
||||||
|
GetCaster()->DeleteThreatList();
|
||||||
GetCaster()->ToCreature()->AI()->AttackStart(GetHitUnit());
|
GetCaster()->ToCreature()->AI()->AttackStart(GetHitUnit());
|
||||||
|
GetCaster()->AddThreat(GetHitUnit(), 500000000.0f); // value seen in sniff
|
||||||
|
}
|
||||||
|
|
||||||
|
// temporary, until SelectTarget are not called on empty lists
|
||||||
|
void CheckTarget()
|
||||||
|
{
|
||||||
|
if (_target)
|
||||||
|
return;
|
||||||
|
|
||||||
|
FinishCast(SPELL_FAILED_NO_VALID_TARGETS);
|
||||||
|
GetCaster()->ToCreature()->DespawnOrUnsummon(1); // despawn next update
|
||||||
}
|
}
|
||||||
|
|
||||||
void Register()
|
void Register()
|
||||||
@@ -832,6 +914,7 @@ class spell_putricide_ooze_channel : public SpellScriptLoader
|
|||||||
OnUnitTargetSelect += SpellUnitTargetFn(spell_putricide_ooze_channel_SpellScript::SetTarget, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
|
OnUnitTargetSelect += SpellUnitTargetFn(spell_putricide_ooze_channel_SpellScript::SetTarget, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
|
||||||
OnUnitTargetSelect += SpellUnitTargetFn(spell_putricide_ooze_channel_SpellScript::SetTarget, EFFECT_2, TARGET_UNIT_SRC_AREA_ENEMY);
|
OnUnitTargetSelect += SpellUnitTargetFn(spell_putricide_ooze_channel_SpellScript::SetTarget, EFFECT_2, TARGET_UNIT_SRC_AREA_ENEMY);
|
||||||
AfterHit += SpellHitFn(spell_putricide_ooze_channel_SpellScript::StartAttack);
|
AfterHit += SpellHitFn(spell_putricide_ooze_channel_SpellScript::StartAttack);
|
||||||
|
OnCast += SpellCastFn(spell_putricide_ooze_channel_SpellScript::CheckTarget);
|
||||||
}
|
}
|
||||||
|
|
||||||
Unit* _target;
|
Unit* _target;
|
||||||
@@ -931,13 +1014,13 @@ class spell_putricide_unstable_experiment : public SpellScriptLoader
|
|||||||
uint32 stage = GetCaster()->ToCreature()->AI()->GetData(DATA_EXPERIMENT_STAGE);
|
uint32 stage = GetCaster()->ToCreature()->AI()->GetData(DATA_EXPERIMENT_STAGE);
|
||||||
Creature* target = NULL;
|
Creature* target = NULL;
|
||||||
std::list<Creature*> creList;
|
std::list<Creature*> creList;
|
||||||
GetCreatureListWithEntryInGrid(creList, GetCaster(), NPC_ABOMINATION_WING_MAD_SCIENTIST_STALKER, 100.0f);
|
GetCreatureListWithEntryInGrid(creList, GetCaster(), NPC_ABOMINATION_WING_MAD_SCIENTIST_STALKER, 200.0f);
|
||||||
// 2 of them are spawned at green place - weird trick blizz
|
// 2 of them are spawned at green place - weird trick blizz
|
||||||
for (std::list<Creature*>::iterator itr = creList.begin(); itr != creList.end(); ++itr)
|
for (std::list<Creature*>::iterator itr = creList.begin(); itr != creList.end(); ++itr)
|
||||||
{
|
{
|
||||||
target = *itr;
|
target = *itr;
|
||||||
std::list<Creature*> tmp;
|
std::list<Creature*> tmp;
|
||||||
GetCreatureListWithEntryInGrid(tmp, target, NPC_ABOMINATION_WING_MAD_SCIENTIST_STALKER, 1.0f);
|
GetCreatureListWithEntryInGrid(tmp, target, NPC_ABOMINATION_WING_MAD_SCIENTIST_STALKER, 10.0f);
|
||||||
if ((!stage && tmp.size() > 1) || (stage && tmp.size() == 1))
|
if ((!stage && tmp.size() > 1) || (stage && tmp.size() == 1))
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -957,42 +1040,6 @@ class spell_putricide_unstable_experiment : public SpellScriptLoader
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
class spell_putricide_ooze_summon : public SpellScriptLoader
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
spell_putricide_ooze_summon() : SpellScriptLoader("spell_putricide_ooze_summon") { }
|
|
||||||
|
|
||||||
class spell_putricide_ooze_summon_AuraScript : public AuraScript
|
|
||||||
{
|
|
||||||
PrepareAuraScript(spell_putricide_ooze_summon_AuraScript);
|
|
||||||
|
|
||||||
void HandleTriggerSpell(AuraEffect const* aurEff)
|
|
||||||
{
|
|
||||||
PreventDefaultAction();
|
|
||||||
if (Unit* caster = GetCaster())
|
|
||||||
{
|
|
||||||
uint32 triggerSpellId = GetSpellInfo()->Effects[aurEff->GetEffIndex()].TriggerSpell;
|
|
||||||
float x, y, z;
|
|
||||||
GetTarget()->GetPosition(x, y, z);
|
|
||||||
z = GetTarget()->GetMap()->GetHeight(GetTarget()->GetPhaseMask(), x, y, z, true, 25.0f);
|
|
||||||
x += 10.0f * cosf(caster->GetOrientation());
|
|
||||||
y += 10.0f * sinf(caster->GetOrientation());
|
|
||||||
caster->CastSpell(x, y, z, triggerSpellId, true, NULL, NULL, GetCasterGUID());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Register()
|
|
||||||
{
|
|
||||||
OnEffectPeriodic += AuraEffectPeriodicFn(spell_putricide_ooze_summon_AuraScript::HandleTriggerSpell, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
AuraScript* GetAuraScript() const
|
|
||||||
{
|
|
||||||
return new spell_putricide_ooze_summon_AuraScript();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
class spell_putricide_ooze_eruption_searcher : public SpellScriptLoader
|
class spell_putricide_ooze_eruption_searcher : public SpellScriptLoader
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -1455,14 +1502,15 @@ class spell_putricide_regurgitated_ooze : public SpellScriptLoader
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
class spell_putricide_clear_mutated_plague : public SpellScriptLoader
|
// Removes aura with id stored in effect value
|
||||||
|
class spell_putricide_clear_aura_effect_value : public SpellScriptLoader
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
spell_putricide_clear_mutated_plague() : SpellScriptLoader("spell_putricide_clear_mutated_plague") { }
|
spell_putricide_clear_aura_effect_value() : SpellScriptLoader("spell_putricide_clear_aura_effect_value") { }
|
||||||
|
|
||||||
class spell_putricide_clear_mutated_plague_SpellScript : public SpellScript
|
class spell_putricide_clear_aura_effect_value_SpellScript : public SpellScript
|
||||||
{
|
{
|
||||||
PrepareSpellScript(spell_putricide_clear_mutated_plague_SpellScript);
|
PrepareSpellScript(spell_putricide_clear_aura_effect_value_SpellScript);
|
||||||
|
|
||||||
void HandleScript(SpellEffIndex effIndex)
|
void HandleScript(SpellEffIndex effIndex)
|
||||||
{
|
{
|
||||||
@@ -1473,13 +1521,13 @@ class spell_putricide_clear_mutated_plague : public SpellScriptLoader
|
|||||||
|
|
||||||
void Register()
|
void Register()
|
||||||
{
|
{
|
||||||
OnEffectHitTarget += SpellEffectFn(spell_putricide_clear_mutated_plague_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
OnEffectHitTarget += SpellEffectFn(spell_putricide_clear_aura_effect_value_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
SpellScript* GetSpellScript() const
|
SpellScript* GetSpellScript() const
|
||||||
{
|
{
|
||||||
return new spell_putricide_clear_mutated_plague_SpellScript();
|
return new spell_putricide_clear_aura_effect_value_SpellScript();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1518,12 +1566,12 @@ void AddSC_boss_professor_putricide()
|
|||||||
{
|
{
|
||||||
new boss_professor_putricide();
|
new boss_professor_putricide();
|
||||||
new npc_volatile_ooze();
|
new npc_volatile_ooze();
|
||||||
|
new npc_gas_cloud();
|
||||||
new spell_putricide_gaseous_bloat();
|
new spell_putricide_gaseous_bloat();
|
||||||
new spell_putricide_ooze_channel();
|
new spell_putricide_ooze_channel();
|
||||||
new spell_putricide_slime_puddle();
|
new spell_putricide_slime_puddle();
|
||||||
new spell_putricide_slime_puddle_aura();
|
new spell_putricide_slime_puddle_aura();
|
||||||
new spell_putricide_unstable_experiment();
|
new spell_putricide_unstable_experiment();
|
||||||
new spell_putricide_ooze_summon();
|
|
||||||
new spell_putricide_ooze_eruption_searcher();
|
new spell_putricide_ooze_eruption_searcher();
|
||||||
new spell_putricide_choking_gas_bomb();
|
new spell_putricide_choking_gas_bomb();
|
||||||
new spell_putricide_unbound_plague();
|
new spell_putricide_unbound_plague();
|
||||||
@@ -1534,6 +1582,6 @@ void AddSC_boss_professor_putricide()
|
|||||||
new spell_putricide_mutated_transformation();
|
new spell_putricide_mutated_transformation();
|
||||||
new spell_putricide_mutated_transformation_dmg();
|
new spell_putricide_mutated_transformation_dmg();
|
||||||
new spell_putricide_regurgitated_ooze();
|
new spell_putricide_regurgitated_ooze();
|
||||||
new spell_putricide_clear_mutated_plague();
|
new spell_putricide_clear_aura_effect_value();
|
||||||
new spell_stinky_precious_decimate();
|
new spell_stinky_precious_decimate();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user