#include "HydrantBroken.h" #include "EntityManager.h" #include "GameMessages.h" void HydrantBroken::OnStartup(Entity* self) { self->AddTimer("playEffect", 1); const auto hydrant = "hydrant" + self->GetVar(u"hydrant"); const auto bouncers = Game::entityManager->GetEntitiesInGroup(hydrant); for (auto* bouncer : bouncers) { self->SetVar(u"bouncer", bouncer->GetObjectID()); GameMessages::SendBouncerActiveStatus(bouncer->GetObjectID(), true, UNASSIGNED_SYSTEM_ADDRESS); GameMessages::SendNotifyObject(bouncer->GetObjectID(), self->GetObjectID(), u"enableCollision", UNASSIGNED_SYSTEM_ADDRESS); } self->AddTimer("KillBroken", 25); } void HydrantBroken::OnTimerDone(Entity* self, std::string timerName) { if (timerName == "KillBroken") { auto* bouncer = Game::entityManager->GetEntity(self->GetVar(u"bouncer")); if (bouncer != nullptr) { GameMessages::SendBouncerActiveStatus(bouncer->GetObjectID(), false, UNASSIGNED_SYSTEM_ADDRESS); GameMessages::SendNotifyObject(bouncer->GetObjectID(), self->GetObjectID(), u"disableCollision", UNASSIGNED_SYSTEM_ADDRESS); } self->Kill(); } else if (timerName == "playEffect") { GameMessages::SendPlayFXEffect(self->GetObjectID(), 384, u"water", "water", LWOOBJID_EMPTY, 1, 1, true); } }