diff --git a/The Great Machine.exe b/The Great Machine.exe index f4e7811..f4e8a49 100644 Binary files a/The Great Machine.exe and b/The Great Machine.exe differ diff --git a/The Great Machine/Dungeon.cpp b/The Great Machine/Dungeon.cpp index 056a1c6..95cccd9 100644 --- a/The Great Machine/Dungeon.cpp +++ b/The Great Machine/Dungeon.cpp @@ -498,8 +498,12 @@ void Dungeon::Update(olc::PixelGameEngine* engine, float fTime) int enemyBoundsRight = enemyBoundsLeft + 1280.0f; int enemyBoundsBottom = enemyBoundsTop + 720.0f; + auto rangedRand = [](float min, float max) -> int { + return static_cast(min) + rand() % ((static_cast(max) + 1) - static_cast(min)); + }; + // spawn enemies - if (rand() % 100 < 1 && Enemies.size() < 20) + if (rand() % 100 < 1 && Enemies.size() <= 7) { Enemy* enemy = new Enemy(); enemy->Type = EEntity::Type::Enemy; @@ -511,17 +515,13 @@ void Dungeon::Update(olc::PixelGameEngine* engine, float fTime) if (enemyBoundsLeft == 0) enemyBoundsLeft = 1; if (enemyBoundsTop == 0) enemyBoundsTop = 1; - auto rangedRand = [](float min, float max) -> int { - return static_cast(min) + rand() % ((static_cast(max) + 1) - static_cast(min)); - }; - enemy->Coords = { static_cast(rangedRand(enemyBoundsLeft, enemyBoundsRight)), static_cast(rangedRand(enemyBoundsTop, enemyBoundsBottom) ) }; enemy->dxdy = { static_cast(rand() % 10 - 5), static_cast(rand() % 10 - 5) }; float distanceFromPlayer = vecDistance(Player->Coords, enemy->Coords); _Logger.Debug(enemy->Coords.x, " ", enemy->Coords.y, " ", distanceFromPlayer); - if (distanceFromPlayer > 300.0f) + if (distanceFromPlayer > 200.0f) { enemy->HitBox = new Collider{ 0, 0, 28, 36 }; Enemies.push_back(enemy); @@ -542,7 +542,7 @@ void Dungeon::Update(olc::PixelGameEngine* engine, float fTime) enemy->Coords += enemy->dxdy; float distanceFromPlayer = vecDistance(Player->Coords, enemy->Coords); - if (distanceFromPlayer > 550.0f) + if (distanceFromPlayer > 500.0f) { Enemies.erase(Enemies.begin() + i); delete enemy->HitBox; @@ -554,9 +554,7 @@ void Dungeon::Update(olc::PixelGameEngine* engine, float fTime) if (!colliding) continue; SoundHit.play(); Player->Life--; - Enemies.erase(Enemies.begin() + i); - delete enemy->HitBox; - delete enemy; + enemy->Coords = { static_cast(rangedRand(enemyBoundsLeft, enemyBoundsRight)), static_cast(rangedRand(enemyBoundsTop, enemyBoundsBottom) ) }; } if (StartedSpawning != true) return; diff --git a/The-Great-Machine.zip b/The-Great-Machine.zip index a248c32..40dc101 100644 Binary files a/The-Great-Machine.zip and b/The-Great-Machine.zip differ