83 for (
uint8 i = 0; i < 5; ++i)
168 TC_LOG_DEBUG(
"scripts",
"Instance Stratholme: Cannot open slaugther square yet.");
181 go->UseDoorOrButton(10);
183 go->SetGoState((
GOState)newState);
325 TC_LOG_DEBUG(
"scripts",
"Instance Stratholme: Slaugther event will continue in 1 minute.");
359 TC_LOG_DEBUG(
"scripts",
"Instance Stratholme: Baron run in progress.");
373 cage->UseDoorOrButton();
378 ysida->SetWalk(
true);
381 ysida->GetClosePoint(x, y, z, ysida->GetObjectScale() / 3, 4.0f);
382 ysida->GetMotionMaster()->MovePoint(1, x, y, z);
386 for (
auto const& i : players)
388 if (
Player* player = i.GetSource())
390 if (player->IsGameMaster())
412 if (!pAbom->IsAlive())
422 TC_LOG_DEBUG(
"scripts",
"Instance Stratholme: Ramstein spawned.");
425 TC_LOG_DEBUG(
"scripts",
"Instance Stratholme: {} Abomnation left to kill.", count);
506 for (
uint8 i = 0; i < 4; ++i)
511 TC_LOG_DEBUG(
"scripts",
"Instance Stratholme: Black guard sentries spawned. Opening gates to baron.");
#define TC_LOG_DEBUG(filterType__, message__,...)
@ TEMPSUMMON_TIMED_OR_DEAD_DESPAWN
std::set< ObjectGuid > GuidSet
@ UNIT_NPC_FLAG_QUESTGIVER
bool IsWithinBoundary(Position const *pos) const
ObjectGuid const & GetGUID() const
void GetHomePosition(float &x, float &y, float &z, float &ori) const
void ScheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
void CancelEvent(uint32 eventId)
void SetFlag(GameObjectFlags flags)
void SetBossNumber(uint32 number)
virtual bool SetBossState(uint32 id, EncounterState state)
void DoRemoveAurasDueToSpellOnPlayers(uint32 spell, bool includePets=false, bool includeControlled=false)
void HandleGameObject(ObjectGuid guid, bool open, GameObject *go=nullptr)
void SetHeaders(std::string_view dataHeaders)
void LoadDungeonEncounterData(std::span< DungeonEncounterData const > encounters)
EncounterState GetBossState(uint32 id) const
TempSummon * SummonCreature(uint32 entry, Position const &pos, SummonPropertiesEntry const *properties=nullptr, Milliseconds duration=0ms, WorldObject *summoner=nullptr, uint32 spellId=0, uint32 vehId=0, ObjectGuid privateObjectOwner=ObjectGuid::Empty, SmoothPhasingInfo const *smoothPhasingInfo=nullptr)
GameObject * GetGameObject(ObjectGuid const &guid)
PlayerList const & GetPlayers() const
Creature * GetCreature(ObjectGuid const &guid)
static ObjectGuid const Empty
void RemoveNpcFlag(NPCFlags flags)
InstanceScript * GetInstanceScript(InstanceMap *map) const override
EllipseBoundary const beforeScarletGate(Position(3671.158f, -3181.79f), 60.0f, 40.0f)
static constexpr DungeonEncounterData Encounters[]
Position const timmyTheCruelSpawnPosition
void AddSC_instance_stratholme()
@ BOSS_HEARTHSINGER_FORRESTEN
@ BOSS_INSTRUCTOR_GALFORD
@ BOSS_MAGISTRATE_BARTHILAS
@ BOSS_RAMSTEIN_THE_GORGER
@ BOSS_WILLEY_HOPEBREAKER
@ NPC_HEARTHSINGER_FORRESTEN
@ SPELL_YSIDA_CREDIT_EFFECT
#define StratholmeScriptName
@ TIMMY_THE_CRUEL_CRUSADERS_REQUIRED
amount of crusade monsters required to be killed in order for timmy the cruel to spawn
void UpdateGoState(ObjectGuid goGuid, uint32 newState, bool withRestoreTime)
bool StartSlaugtherSquare()
ObjectGuid portGauntletGUID
ObjectGuid GetGuidData(uint32 data) const override
ObjectGuid portSlaugtherGUID
void OnCreatureCreate(Creature *creature) override
bool SetBossState(uint32 id, EncounterState state) override
void SetData(uint32 type, uint32 data) override
EncounterState baronRunState
ObjectGuid gauntletGate1GUID
void AfterDataLoad() override
void OnCreatureRemove(Creature *creature) override
void OnGameObjectCreate(GameObject *go) override
void Update(uint32 diff) override
uint32 GetData(uint32 type) const override
ObjectGuid ysidaTriggerGUID
void OnUnitDeath(Unit *who) override
ObjectGuid serviceEntranceGUID
instance_stratholme_InstanceMapScript(InstanceMap *map)