void instance_stratholme::OnCreatureDeath(Creature* pCreature) { switch (pCreature->GetEntry()) { case NPC_BARONESS_ANASTARI: SetData(TYPE_BARONESS, DONE); break; case NPC_MALEKI_THE_PALLID: SetData(TYPE_PALLID, DONE); break; case NPC_NERUBENKAN: SetData(TYPE_NERUB, DONE); break; case NPC_RAMSTEIN: SetData(TYPE_RAMSTEIN, DONE); break; case NPC_BARON: SetData(TYPE_BARON, DONE); break; case NPC_THUZADIN_ACOLYTE: ThazudinAcolyteJustDied(pCreature); break; case NPC_ABOM_BILE: case NPC_ABOM_VENOM: // Start Slaughterhouse Event SetData(TYPE_RAMSTEIN, SPECIAL); break; case NPC_MINDLESS_UNDEAD: m_luiUndeadGUIDs.remove(pCreature->GetObjectGuid()); if (m_luiUndeadGUIDs.empty()) { // Let the black Guards move out of the citadel for (GuidList::const_iterator itr = m_luiGuardGUIDs.begin(); itr != m_luiGuardGUIDs.end(); ++itr) { Creature* pGuard = instance->GetCreature(*itr); if (pGuard && pGuard->isAlive() && !pGuard->isInCombat()) { float fX, fY, fZ; pGuard->GetRandomPoint(aStratholmeLocation[5].m_fX, aStratholmeLocation[5].m_fY, aStratholmeLocation[5].m_fZ, 10.0f, fX, fY, fZ); pGuard->GetMotionMaster()->MovePoint(0, fX, fY, fZ); } } } break; case NPC_BLACK_GUARD: m_luiGuardGUIDs.remove(pCreature->GetObjectGuid()); if (m_luiGuardGUIDs.empty()) SetData(TYPE_BLACK_GUARDS, DONE); break; // Timmy spawn support case NPC_CRIMSON_INITIATE: case NPC_CRIMSON_GALLANT: case NPC_CRIMSON_GUARDSMAN: case NPC_CRIMSON_CONJURER: if (m_suiCrimsonLowGuids.find(pCreature->GetGUIDLow()) != m_suiCrimsonLowGuids.end()) { m_suiCrimsonLowGuids.erase(pCreature->GetGUIDLow()); // If all courtyard mobs are dead then summon Timmy if (m_suiCrimsonLowGuids.empty()) pCreature->SummonCreature(NPC_TIMMY_THE_CRUEL, aTimmyLocation[0].m_fX, aTimmyLocation[0].m_fY, aTimmyLocation[0].m_fZ, aTimmyLocation[0].m_fO, TEMPSUMMON_DEAD_DESPAWN, 0); } break; } }
void instance_stratholme::OnCreatureDeath(Creature* pCreature) { switch (pCreature->GetEntry()) { case NPC_BARONESS_ANASTARI: SetData(TYPE_BARONESS, DONE); break; case NPC_MALEKI_THE_PALLID: SetData(TYPE_PALLID, DONE); break; case NPC_NERUBENKAN: SetData(TYPE_NERUB, DONE); break; case NPC_RAMSTEIN: SetData(TYPE_RAMSTEIN, DONE); break; case NPC_BARON: SetData(TYPE_BARON, DONE); break; case NPC_AURIUS: DoScriptText(SAY_AURIUS_DEATH, pCreature); break; case NPC_THUZADIN_ACOLYTE: ThazudinAcolyteJustDied(pCreature); break; case NPC_ABOM_BILE: case NPC_ABOM_VENOM: // Start Slaughterhouse Event SetData(TYPE_RAMSTEIN, SPECIAL); break; case NPC_MINDLESS_UNDEAD: m_luiUndeadGUIDs.remove(pCreature->GetObjectGuid()); if (m_luiUndeadGUIDs.empty()) m_uiBlackGuardsTimer = 60000; // Wait 1 min before sending the Black Guards outside. In Classic, this allows players to resplenish health and mana break; case NPC_BLACK_GUARD: m_luiGuardGUIDs.remove(pCreature->GetObjectGuid()); if (m_luiGuardGUIDs.empty()) SetData(TYPE_BLACK_GUARDS, DONE); break; // Scarlet Bastion defense and Timmy spawn support case NPC_CRIMSON_INITIATE: case NPC_CRIMSON_GALLANT: case NPC_CRIMSON_GUARDSMAN: case NPC_CRIMSON_CONJURER: case NPC_CRIMSON_BATTLE_MAGE: for (uint8 i = BARRICADE; i <= FIRST_BARRICADES; i++) { if (m_suiCrimsonDefendersLowGuids[i].empty()) continue; m_suiCrimsonDefendersLowGuids[i].remove(pCreature->GetObjectGuid()); // If all mobs from a defense group are dead then activate the related defense event if (m_suiCrimsonDefendersLowGuids[i].empty() && i != FIRST_BARRICADES) DoScarletBastionDefense(i, pCreature); } break; case NPC_BALNAZZAR: DoScarletBastionDefense(CRIMSON_THRONE, pCreature); break; } }