aboutsummaryrefslogtreecommitdiff
path: root/src/Game.hs
diff options
context:
space:
mode:
authorJuan J. Martinez <jjm@usebox.net>2023-03-05 14:55:25 +0000
committerJuan J. Martinez <jjm@usebox.net>2023-03-09 12:21:05 +0000
commit7a714cc457323bff6b4a73ec9e7b58c7a63381ec (patch)
tree23305ab55b3c79fb6bb62c3df56baa01b28890fe /src/Game.hs
parentbeecc1e2af08f81f5cb5d2ebb93aaef59b20fcd5 (diff)
downloadspace-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.hs9
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