#pragma once #include <crepe/api/Script.h> #include "ZapperObject.h" #include "util/OptionalRef.h" class ZapperPoolSubScene; class ZapperPoolScript : public crepe::Script { public: ZapperPoolScript(std::vector<ZapperObject> && pool); void init(); void fixed_update(crepe::duration_t); unsigned i = 0; private: std::vector<ZapperObject> pool; private: crepe::OptionalRef<crepe::Transform> camera_transform; crepe::OptionalRef<crepe::Camera> camera_camera; crepe::OptionalRef<ZapperObject> get_next_zapper(); private: void spawn_random(); private: static constexpr float OFFSCREEN_MARGIN = 40; };