mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2025-08-06 10:44:08 +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:
55
dScripts/02_server/Map/FV/FvCandle.cpp
Normal file
55
dScripts/02_server/Map/FV/FvCandle.cpp
Normal file
@@ -0,0 +1,55 @@
|
||||
#include "FvCandle.h"
|
||||
#include "MissionComponent.h"
|
||||
#include "RenderComponent.h"
|
||||
|
||||
std::vector<int32_t> FvCandle::m_Missions = { 850, 1431, 1529, 1566, 1603 };
|
||||
|
||||
void FvCandle::OnStartup(Entity* self) {
|
||||
auto* render = static_cast<RenderComponent*>(self->GetComponent(COMPONENT_TYPE_RENDER));
|
||||
if (render == nullptr)
|
||||
return;
|
||||
|
||||
render->PlayEffect(2108, u"create", "candle_light", LWOOBJID_EMPTY, 1.0f, 1.0f, true);
|
||||
self->SetI32(u"Smoke", static_cast<int32_t>(5));
|
||||
self->SetBoolean(u"AmHit", false);
|
||||
}
|
||||
|
||||
void FvCandle::OnHit(Entity* self, Entity* attacker) {
|
||||
BlowOutCandle(self, attacker);
|
||||
}
|
||||
|
||||
void FvCandle::BlowOutCandle(Entity* self, Entity* blower) {
|
||||
if (self->GetBoolean(u"AmHit"))
|
||||
return;
|
||||
|
||||
auto* render = static_cast<RenderComponent*>(self->GetComponent(COMPONENT_TYPE_RENDER));
|
||||
if (render == nullptr)
|
||||
return;
|
||||
|
||||
auto* missionComponent = blower->GetComponent<MissionComponent>();
|
||||
|
||||
if (missionComponent != nullptr) {
|
||||
for (const auto mission : m_Missions) {
|
||||
missionComponent->ForceProgressTaskType(mission, 1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
//Update mission tasks here
|
||||
self->SetBoolean(u"AmHit", true);
|
||||
|
||||
render->StopEffect("candle_light", false);
|
||||
render->PlayEffect(2109, u"create", "candle_smoke", LWOOBJID_EMPTY, 1.0f, 1.0f, true);
|
||||
|
||||
self->AddTimer("SmokeTime", self->GetI32(u"Smoke"));
|
||||
}
|
||||
|
||||
void FvCandle::OnTimerDone(Entity* self, std::string timerName) {
|
||||
self->SetBoolean(u"AmHit", false);
|
||||
|
||||
auto* render = static_cast<RenderComponent*>(self->GetComponent(COMPONENT_TYPE_RENDER));
|
||||
if (render == nullptr)
|
||||
return;
|
||||
|
||||
render->StopEffect("candle_smoke", false);
|
||||
render->PlayEffect(2108, u"create", "candle_light", LWOOBJID_EMPTY, 1.0f, 1.0f, true);
|
||||
}
|
Reference in New Issue
Block a user