mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2025-08-04 09:44:10 +00:00
Organize dScripts (#814)
* Organize dScripts whitespace Remove parent scope Remove parent scope from initial setter Remove debug Remove helper programs * Fix NtImagimeterVisibility script Co-authored-by: aronwk-aaron <aronwk.aaron@gmail.com>
This commit is contained in:
3
dScripts/02_server/Map/FV/Racing/CMakeLists.txt
Normal file
3
dScripts/02_server/Map/FV/Racing/CMakeLists.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
set(DSCRIPTS_SOURCES_02_SERVER_MAP_FV_RACING
|
||||
"RaceMaelstromGeiser.cpp"
|
||||
PARENT_SCOPE)
|
85
dScripts/02_server/Map/FV/Racing/RaceMaelstromGeiser.cpp
Normal file
85
dScripts/02_server/Map/FV/Racing/RaceMaelstromGeiser.cpp
Normal file
@@ -0,0 +1,85 @@
|
||||
#include "RaceMaelstromGeiser.h"
|
||||
#include "GameMessages.h"
|
||||
#include "PossessableComponent.h"
|
||||
#include "PossessorComponent.h"
|
||||
#include "EntityManager.h"
|
||||
#include "RacingControlComponent.h"
|
||||
#include "dZoneManager.h"
|
||||
|
||||
void RaceMaelstromGeiser::OnStartup(Entity* self) {
|
||||
self->SetVar(u"AmFiring", false);
|
||||
|
||||
self->AddTimer("downTime", self->GetVar<int32_t>(u"startTime"));
|
||||
|
||||
self->SetProximityRadius(15, "deathZone");
|
||||
}
|
||||
|
||||
void RaceMaelstromGeiser::OnProximityUpdate(Entity* self, Entity* entering, std::string name, std::string status) {
|
||||
if (!entering->IsPlayer() || name != "deathZone" || status != "ENTER") {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!self->GetVar<bool>(u"AmFiring")) {
|
||||
return;
|
||||
}
|
||||
|
||||
auto* possessableComponent = entering->GetComponent<PossessableComponent>();
|
||||
|
||||
Entity* vehicle;
|
||||
Entity* player;
|
||||
|
||||
if (possessableComponent != nullptr) {
|
||||
player = EntityManager::Instance()->GetEntity(possessableComponent->GetPossessor());
|
||||
|
||||
if (player == nullptr) {
|
||||
return;
|
||||
}
|
||||
|
||||
vehicle = entering;
|
||||
} else if (entering->IsPlayer()) {
|
||||
auto* possessorComponent = entering->GetComponent<PossessorComponent>();
|
||||
|
||||
if (possessorComponent == nullptr) {
|
||||
return;
|
||||
}
|
||||
|
||||
vehicle = EntityManager::Instance()->GetEntity(possessorComponent->GetPossessable());
|
||||
|
||||
if (vehicle == nullptr) {
|
||||
return;
|
||||
}
|
||||
|
||||
player = entering;
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
GameMessages::SendDie(vehicle, self->GetObjectID(), LWOOBJID_EMPTY, true, VIOLENT, u"", 0, 0, 0, true, false, 0);
|
||||
|
||||
auto* zoneController = dZoneManager::Instance()->GetZoneControlObject();
|
||||
|
||||
auto* racingControlComponent = zoneController->GetComponent<RacingControlComponent>();
|
||||
|
||||
if (racingControlComponent != nullptr) {
|
||||
racingControlComponent->OnRequestDie(player);
|
||||
}
|
||||
}
|
||||
|
||||
void RaceMaelstromGeiser::OnTimerDone(Entity* self, std::string timerName) {
|
||||
if (timerName == "downTime") {
|
||||
GameMessages::SendPlayFXEffect(self->GetObjectID(), 4048, u"rebuild_medium", "geiser", LWOOBJID_EMPTY, 1, 1, true);
|
||||
|
||||
self->AddTimer("buildUpTime", 1);
|
||||
} else if (timerName == "buildUpTime") {
|
||||
self->SetVar(u"AmFiring", true);
|
||||
|
||||
self->AddTimer("killTime", 1.5f);
|
||||
} else if (timerName == "killTime") {
|
||||
GameMessages::SendStopFXEffect(self, true, "geiser");
|
||||
|
||||
self->SetVar(u"AmFiring", false);
|
||||
|
||||
self->AddTimer("downTime", 3.0);
|
||||
}
|
||||
}
|
10
dScripts/02_server/Map/FV/Racing/RaceMaelstromGeiser.h
Normal file
10
dScripts/02_server/Map/FV/Racing/RaceMaelstromGeiser.h
Normal file
@@ -0,0 +1,10 @@
|
||||
#pragma once
|
||||
#include "CppScripts.h"
|
||||
|
||||
class RaceMaelstromGeiser : public CppScripts::Script
|
||||
{
|
||||
public:
|
||||
void OnStartup(Entity* self) override;
|
||||
void OnTimerDone(Entity* self, std::string timerName) override;
|
||||
void OnProximityUpdate(Entity* self, Entity* entering, std::string name, std::string status) override;
|
||||
};
|
Reference in New Issue
Block a user