#pragma once
#include "CppScripts.h"

struct QuickBuildSet {
	std::string name;
	std::vector<std::string> effects;
};

class NsConcertQuickBuild : public CppScripts::Script {
public:
	void OnStartup(Entity* self) override;
	void OnRebuildComplete(Entity* self, Entity* target) override;
	void OnDie(Entity* self, Entity* killer) override;
private:
	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);
};