2021-12-05 17:54:36 +00:00
|
|
|
#pragma once
|
|
|
|
#include "CppScripts.h"
|
|
|
|
|
|
|
|
struct QuickBuildSet {
|
2022-07-28 13:39:57 +00:00
|
|
|
std::string name;
|
|
|
|
std::vector<std::string> effects;
|
2021-12-05 17:54:36 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
class NsConcertQuickBuild : public CppScripts::Script {
|
|
|
|
public:
|
2022-07-28 13:39:57 +00:00
|
|
|
void OnStartup(Entity* self) override;
|
2023-12-29 04:24:30 +00:00
|
|
|
void OnQuickBuildComplete(Entity* self, Entity* target) override;
|
2022-07-28 13:39:57 +00:00
|
|
|
void OnDie(Entity* self, Entity* killer) override;
|
2021-12-05 17:54:36 +00:00
|
|
|
private:
|
2022-07-28 13:39:57 +00:00
|
|
|
static std::vector<LWOOBJID> finishedQuickBuilds;
|
|
|
|
static const float resetBlinkTime;
|
|
|
|
static const float resetStageTime;
|
|
|
|
static const float resetActivatorTime;
|
|
|
|
static const float resetTime;
|
|
|
|
static const std::map<std::string, std::string> quickBuildFX;
|
|
|
|
static const std::map<LOT, QuickBuildSet> quickBuildSets;
|
|
|
|
static float GetBlinkTime(float time);
|
|
|
|
static void ProgressStageCraft(Entity* self, Entity* player);
|
|
|
|
static void ProgressLicensedTechnician(Entity* self);
|
|
|
|
static void UpdateEffects(Entity* self);
|
|
|
|
static void CancelEffects(Entity* self);
|
2021-12-05 17:54:36 +00:00
|
|
|
};
|