DarkflameServer/dScripts/ai/SPEC/SpecialPowerupSpawner.cpp
Aaron Kimbre 37fe935a3a Implements all the old pickup scripts
Testsed to make sure they work
Tested to make sure existing script works still
killing it immedialtely is live accurate, the timer was not accurate
2023-04-08 22:07:25 -05:00

27 lines
938 B
C++

#include "SpecialImaginePowerupSpawner.h"
#include "GameMessages.h"
#include "SkillComponent.h"
#include "EntityManager.h"
#include "eReplicaComponentType.h"
void SpecialImaginePowerupSpawner::OnStartup(Entity* self) {
self->SetProximityRadius(1.5f, "powerupEnter");
self->SetVar(u"bIsDead", false);
}
void SpecialImaginePowerupSpawner::OnProximityUpdate(Entity* self, Entity* entering, const std::string name, const std::string status) {
if (name != "powerupEnter" && status != "ENTER") return;
if (!entering->IsPlayer()) return;
if (self->GetVar<bool>(u"bIsDead")) return;
GameMessages::SendPlayFXEffect(self, -1, u"pickup", "", LWOOBJID_EMPTY, 1, 1, true);
SkillComponent* skillComponent;
if (!self->TryGetComponent(eReplicaComponentType::SKILL, skillComponent)) return;
skillComponent->CastSkill(13, entering->GetObjectID());
self->SetVar(u"bIsDead", true);
self->Smash(entering->GetObjectID(), eKillType::SILENT);
}