Scripts/Icecrown Citadel: Fixed Precious' Plagued Zombies duration
Closes #2365
This commit is contained in:
@@ -4377,6 +4377,10 @@ void SpellMgr::LoadSpellCustomAttr()
|
||||
spellInfo->EffectImplicitTargetA[0] = TARGET_DEST_DEST;
|
||||
++count;
|
||||
break;
|
||||
case 71159: // Awaken Plagued Zombies
|
||||
spellInfo->DurationIndex = 21;
|
||||
++count;
|
||||
break;
|
||||
// THIS IS HERE BECAUSE COOLDOWN ON CREATURE PROCS IS NOT IMPLEMENTED
|
||||
case 71604: // Mutated Strength (Professor Putricide)
|
||||
case 72673: // Mutated Strength (Professor Putricide)
|
||||
|
||||
@@ -346,7 +346,7 @@ class npc_precious_icc : public CreatureScript
|
||||
|
||||
struct npc_precious_iccAI : public ScriptedAI
|
||||
{
|
||||
npc_precious_iccAI(Creature* creature) : ScriptedAI(creature)
|
||||
npc_precious_iccAI(Creature* creature) : ScriptedAI(creature), _summons(me)
|
||||
{
|
||||
_instance = creature->GetInstanceScript();
|
||||
}
|
||||
@@ -357,6 +357,24 @@ class npc_precious_icc : public CreatureScript
|
||||
_events.ScheduleEvent(EVENT_DECIMATE, urand(20000, 25000));
|
||||
_events.ScheduleEvent(EVENT_MORTAL_WOUND, urand(3000, 7000));
|
||||
_events.ScheduleEvent(EVENT_SUMMON_ZOMBIES, urand(20000, 22000));
|
||||
_summons.DespawnAll();
|
||||
}
|
||||
|
||||
void JustSummoned(Creature* summon)
|
||||
{
|
||||
_summons.Summon(summon);
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
|
||||
summon->AI()->AttackStart(target);
|
||||
}
|
||||
|
||||
void SummonedCreatureDespawn(Creature* summon)
|
||||
{
|
||||
_summons.Despawn(summon);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
{
|
||||
_summons.DespawnAll();
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
@@ -404,6 +422,7 @@ class npc_precious_icc : public CreatureScript
|
||||
|
||||
private:
|
||||
EventMap _events;
|
||||
SummonList _summons;
|
||||
InstanceScript* _instance;
|
||||
};
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ class icecrown_citadel_teleport : public GameObjectScript
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Teleport to Sindragosa's Lair", GOSSIP_SENDER_ICC_PORT, SINDRAGOSA_S_LAIR_TELEPORT);
|
||||
}
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(go->GetGOInfo()->GetGossipMenuId()), go->GetGUID());
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(go), go->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -78,7 +78,10 @@ class at_frozen_throne_teleport : public AreaTriggerScript
|
||||
bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/)
|
||||
{
|
||||
if (InstanceScript* instance = player->GetInstanceScript())
|
||||
if (instance->GetBossState(DATA_PROFESSOR_PUTRICIDE) == DONE && instance->GetBossState(DATA_BLOOD_QUEEN_LANA_THEL) == DONE && instance->GetBossState(DATA_SINDRAGOSA) == DONE)
|
||||
if (instance->GetBossState(DATA_PROFESSOR_PUTRICIDE) == DONE &&
|
||||
instance->GetBossState(DATA_BLOOD_QUEEN_LANA_THEL) == DONE &&
|
||||
instance->GetBossState(DATA_SINDRAGOSA) == DONE &&
|
||||
instance->GetBossState(DATA_THE_LICH_KING) != IN_PROGRESS)
|
||||
player->CastSpell(player, FROZEN_THRONE_TELEPORT, true);
|
||||
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user