76 { 3612.29f, -3335.39f, 124.077f },
77 { 3919.88f, -3545.34f, 134.269f }
82 std::array<ObjectGuid, 2>
Gates;
100 for (
uint8 i = 0; i < 5; ++i)
157 auto el = trapGate.Rats.find(who->
GetGUID());
158 if (el != trapGate.Rats.end())
160 trapGate.Rats.erase(el);
179 TC_LOG_DEBUG(
"scripts",
"Instance Stratholme: Cannot open slaugther square yet.");
191 go->UseDoorOrButton(restoreTime);
193 go->SetGoState((
GOState)newState);
203 for (
uint8 i = 0; i < 30; ++i)
209 creature->EngageWithTarget(where);
366 TC_LOG_DEBUG(
"scripts",
"Instance Stratholme: Slaugther event will continue in 1 minute.");
400 TC_LOG_DEBUG(
"scripts",
"Instance Stratholme: Baron run in progress.");
414 cage->UseDoorOrButton();
419 ysida->SetWalk(
true);
422 ysida->GetClosePoint(x, y, z, ysida->GetObjectScale() / 3, 4.0f);
423 ysida->GetMotionMaster()->MovePoint(1, x, y, z);
427 for (
auto const& i : players)
429 if (
Player* player = i.GetSource())
431 if (player->IsGameMaster())
453 if (!pAbom->IsAlive())
463 TC_LOG_DEBUG(
"scripts",
"Instance Stratholme: Ramstein spawned.");
466 TC_LOG_DEBUG(
"scripts",
"Instance Stratholme: {} Abomnation left to kill.", count);
547 TC_LOG_DEBUG(
"scripts",
"Instance Stratholme: Opening gates to baron.");
560 Player* player = itr.GetSource();
#define TC_LOG_DEBUG(filterType__, message__,...)
@ 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)
ObjectGuid const & GetGUID() 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)
void SetHeaders(std::string_view dataHeaders)
void LoadDungeonEncounterData(std::span< DungeonEncounterData const > encounters)
EncounterState GetBossState(uint32 id) const
GameObject * GetGameObject(ObjectGuid const &guid)
PlayerList const & GetPlayers() const
Creature * GetCreature(ObjectGuid const &guid)
static ObjectGuid const Empty
bool IsGameMaster() const
void RemoveNpcFlag(NPCFlags flags)
bool IsWithinDist2d(float x, float y, float dist) const
Position GetRandomPoint(Position const &srcPos, float distance, float minDistance=0.0f) 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)
InstanceScript * GetInstanceScript(InstanceMap *map) const override
static constexpr DungeonEncounterData Encounters[]
void AddSC_instance_stratholme()
Position const GateTrapPos[]
@ 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
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 SetData(uint32 type, uint32 data) override
EncounterState baronRunState
ObjectGuid gauntletGate1GUID
std::array< GateTrapData, 2 > TrapGates
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
void DoGateTrap(StratholmeGateTrapType type, Unit *where)
ObjectGuid serviceEntranceGUID
instance_stratholme_InstanceMapScript(InstanceMap *map)