diff options
author | Juan J. Martinez <jjm@usebox.net> | 2023-03-05 14:55:25 +0000 |
---|---|---|
committer | Juan J. Martinez <jjm@usebox.net> | 2023-03-09 12:21:05 +0000 |
commit | 7a714cc457323bff6b4a73ec9e7b58c7a63381ec (patch) | |
tree | 23305ab55b3c79fb6bb62c3df56baa01b28890fe /src/Game.hs | |
parent | beecc1e2af08f81f5cb5d2ebb93aaef59b20fcd5 (diff) | |
download | space-plat-hs-7a714cc457323bff6b4a73ec9e7b58c7a63381ec.tar.gz space-plat-hs-7a714cc457323bff6b4a73ec9e7b58c7a63381ec.zip |
Exit placement on the last battery
Diffstat (limited to 'src/Game.hs')
-rw-r--r-- | src/Game.hs | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/Game.hs b/src/Game.hs index 850d6ed..31aa40b 100644 --- a/src/Game.hs +++ b/src/Game.hs @@ -63,7 +63,9 @@ initialState m = totalLives = maxLives, hitDelay = hitDelay, gameOverDelay = 0, - exit = False + exit = False, + -- doesn't matter where + lastBattery = (0, 0) } main :: IO () @@ -169,16 +171,17 @@ gameLoop e = do gameLoop updatedEnv where - -- update state counters + -- update state counters, etc updateState :: Env -> IO Env updateState env | state.gameOverDelay > 1 = pure env {state = state {GS.gameOverDelay = state.gameOverDelay - 1}} | state.batteries == state.totalBatteries && not state.exit = do - es <- E.addExit env.entities + es <- E.addExit env.entities x (y - 8) -- adjusted to player's height pure env {entities = es, state = state {GS.exit = True}} | otherwise = pure env where state = env.state + (x, y) = state.lastBattery playLoop :: Env -> IO Env playLoop e = do |