66 { 3612.29f, -3335.39f, 124.077f },
67 { 3919.88f, -3545.34f, 134.269f }
72 std::array<ObjectGuid, 2>
Gates;
89 for (
uint8 i = 0; i < 5; ++i)
170 auto el = trapGate.Rats.find(who->
GetGUID());
171 if (el != trapGate.Rats.end())
173 trapGate.Rats.erase(el);
192 TC_LOG_DEBUG(
"scripts",
"Instance Stratholme: Cannot open slaugther square yet.");
204 go->UseDoorOrButton(restoreTime);
206 go->SetGoState((
GOState)newState);
216 for (
uint8 i = 0; i < 30; ++i)
222 creature->EngageWithTarget(where);
379 TC_LOG_DEBUG(
"scripts",
"Instance Stratholme: Slaugther event will continue in 1 minute.");
413 TC_LOG_DEBUG(
"scripts",
"Instance Stratholme: Baron run in progress.");
427 cage->UseDoorOrButton();
432 ysida->SetWalk(
true);
435 ysida->GetClosePoint(x, y, z, ysida->GetObjectScale() / 3, 4.0f);
436 ysida->GetMotionMaster()->MovePoint(1, x, y, z);
440 for (
auto const& i : players)
442 if (
Player* player = i.GetSource())
444 if (player->IsGameMaster())
466 if (!pAbom->IsAlive())
476 TC_LOG_DEBUG(
"scripts",
"Instance Stratholme: Ramstein spawned.");
479 TC_LOG_DEBUG(
"scripts",
"Instance Stratholme: {} Abomnation left to kill.", count);
560 TC_LOG_DEBUG(
"scripts",
"Instance Stratholme: Opening gates to baron.");
573 Player* player = itr.GetSource();
#define TC_LOG_DEBUG(filterType__,...)
@ TEMPSUMMON_DEAD_DESPAWN
@ TEMPSUMMON_TIMED_OR_DEAD_DESPAWN
std::unordered_set< ObjectGuid > GuidUnorderedSet
std::set< ObjectGuid > GuidSet
@ UNIT_NPC_FLAG_QUESTGIVER
constexpr std::underlying_type< E >::type AsUnderlyingType(E enumValue)
bool IsWithinBoundary(Position const *pos) const
void GetHomePosition(float &x, float &y, float &z, float &ori) const
void CancelEvent(EventId eventId)
void ScheduleEvent(EventId eventId, Milliseconds time, GroupIndex group=0u, PhaseIndex phase=0u)
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)
EncounterState GetBossState(uint32 id) const
void SetHeaders(std::string const &dataHeaders)
bool SpawnGroupSpawn(uint32 groupId, bool ignoreRespawn=false, bool force=false, std::vector< WorldObject * > *spawnedObjects=nullptr)
GameObject * GetGameObject(ObjectGuid const &guid)
PlayerList const & GetPlayers() const
Creature * GetCreature(ObjectGuid const &guid)
static ObjectGuid const Empty
static Creature * ToCreature(Object *o)
static ObjectGuid GetGUID(Object const *o)
bool IsGameMaster() const
void RemoveNpcFlag(NPCFlags flags)
bool IsWithinDist2d(float x, float y, float dist) const
TempSummon * SummonCreature(uint32 entry, Position const &pos, TempSummonType despawnType=TEMPSUMMON_MANUAL_DESPAWN, Milliseconds despawnTime=0s, uint32 vehId=0, uint32 spellId=0, ObjectGuid privateObjectOwner=ObjectGuid::Empty)
void GetRandomPoint(Position const &srcPos, float distance, float &rand_x, float &rand_y, float &rand_z) const
InstanceScript * GetInstanceScript(InstanceMap *map) const override
EllipseBoundary const beforeScarletGate(Position(3671.158f, -3181.79f), 60.0f, 40.0f)
void AddSC_instance_stratholme()
Position const GateTrapPos[]
@ BOSS_HEARTHSINGER_FORRESTEN
@ BOSS_INSTRUCTOR_GALFORD
@ BOSS_RAMSTEIN_THE_GORGER
@ 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
std::array< ObjectGuid, 2 > Gates
bool StartSlaugtherSquare()
void UpdateGoState(ObjectGuid goGuid, uint32 newState, uint32 restoreTime=0u)
ObjectGuid portGauntletGUID
ObjectGuid GetGuidData(uint32 data) const override
ObjectGuid portSlaugtherGUID
void OnCreatureCreate(Creature *creature) override
bool SetBossState(uint32 id, EncounterState state) override
void ReadSaveDataMore(std::istringstream &) override
void SetData(uint32 type, uint32 data) override
EncounterState baronRunState
ObjectGuid gauntletGate1GUID
std::array< GateTrapData, 2 > TrapGates
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
void DoGateTrap(StratholmeGateTrapType type, Unit *where)
ObjectGuid serviceEntranceGUID
instance_stratholme_InstanceMapScript(InstanceMap *map)