mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2024-11-26 23:47:21 +00:00
8cdb388915
* Implement Precompiled Headers * First volume of optimizations * Scripts A-B Gonna be doing this in alphabetical order now. * C Scripts and remove unneeded includes from base cppscripts header Remove the MissionComponent and Loot includes from all base scripts and place their needed includes in the respective scripts. * D scripts * F scripts * F scripts 2 Finish up removing extraneous includes from scripts that start with the letter F * G scripts Removing extraneous includes from scripts that start with the letter G * I scripts Removing extraneous includes from scripts that start with the letter I * M-Z scripts Removing extraneous includes from scripts that start with the letter M-Z * Revert "Implement Precompiled Headers" This reverts commitd79d8d4991
. * Revert "Revert "Implement Precompiled Headers"" This reverts commit0597faf308
. * Add back in PCH Add back in PCH * Fix CMake Whitespace Remove duplicate file glob Remove newline
57 lines
1.6 KiB
C++
57 lines
1.6 KiB
C++
#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);
|
|
} |