#ifndef DEBUGGERS_H #define DEBUGGERS_H #include "olcPGEX_Sound.h" #include "olcPixelGameEngine.h" #include "bonus.h" #include "bug.h" #include "player.h" #include "programmer.h" #include #include #include #include #include namespace pabloader { class Debuggers : public olc::PixelGameEngine { private: std::vector programmers; std::vector bonuses; std::map bonusesCatched; uint32_t bugsCatched = 0; uint32_t bugsMissed = 0; uint8_t linesOfCode = 5; uint16_t totalLines; std::vector sourceCode; std::random_device rd; std::mt19937 generator; public: Debuggers() : generator(rd()) { sAppName = "Debuggers"; } public: bool OnUserCreate() override; bool OnUserUpdate(float fElapsedTime) override; bool OnUserDestroy() override; int GameScreenHeight() { return ScreenHeight() - linesOfCode * 10; }; template T GetRandom(T from = 0, T to = 1); private: void SpawnProgrammer(); void SpawnBug(); void SpawnBonus(); Bug* CreateBug(); Bonus* CreateBonus(); bool GameOver(); public: std::vector bugs; olc::ResourcePack pack; olc::Sprite playerSprite; olc::Sprite enemiesSprite; olc::Sprite bonusesSprite; olc::Sprite backgroundSprite; int playerFallSample; int bugFallSample; int bugCatchSample; const int gravity = 30; }; } #endif