Scripts/Icecrown Citadel: Fixed Precious' Plagued Zombies duration

Closes #2365
This commit is contained in:
Shauren
2011-07-22 19:05:46 +02:00
parent a3feb40eb6
commit 6b1a7497dc
3 changed files with 29 additions and 3 deletions
+4
View File
@@ -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;