2024-12-15 09:10:19 +00:00
|
|
|
structure GameUpdate =
|
|
|
|
|
struct
|
|
|
|
|
fun update (game, input) =
|
|
|
|
|
let
|
2025-02-08 09:20:10 +00:00
|
|
|
val
|
|
|
|
|
{ player
|
|
|
|
|
, walls
|
|
|
|
|
, wallTree
|
|
|
|
|
, platforms
|
|
|
|
|
, platformTree
|
|
|
|
|
, enemies
|
|
|
|
|
, graph
|
|
|
|
|
, fallingEnemies
|
|
|
|
|
} = game
|
2024-12-24 19:00:11 +00:00
|
|
|
|
2025-02-14 11:19:24 +00:00
|
|
|
val player = Player.runPhysicsAndInput (game, input)
|
|
|
|
|
|
2025-02-14 09:06:32 +00:00
|
|
|
val enemyTree = Enemy.generateTree enemies
|
2025-02-14 11:19:24 +00:00
|
|
|
val player = Player.checkEnemyCollisions (player, enemies, enemyTree)
|
2025-01-11 22:06:08 +00:00
|
|
|
|
2025-02-14 13:15:45 +00:00
|
|
|
val (player, enemies) =
|
|
|
|
|
PlayerAttack.attackEnemies (player, enemies, enemyTree)
|
2025-02-14 12:59:22 +00:00
|
|
|
|
2025-02-14 18:18:46 +00:00
|
|
|
val projectiles = #projectiles player
|
|
|
|
|
val (fallingEnemies, enemies) =
|
|
|
|
|
PlayerAttack.projectileHitEnemy
|
|
|
|
|
(projectiles, enemies, enemyTree, fallingEnemies)
|
|
|
|
|
|
2025-02-14 10:43:27 +00:00
|
|
|
val enemies = Enemy.update
|
|
|
|
|
(enemies, walls, wallTree, platforms, platformTree, player, graph)
|
2025-02-08 01:05:39 +00:00
|
|
|
|
2025-02-14 11:19:24 +00:00
|
|
|
(* update state of falling enemies and possibly filter *)
|
|
|
|
|
(* todo: use enemy map
|
|
|
|
|
val fallingEnemies = FallingEnemies.updateList
|
|
|
|
|
(Vector.length fallingEnemies - 1, fallingEnemies, player, [])
|
|
|
|
|
|
|
|
|
|
val fallingEnemies = Vector.fromList fallingEnemies
|
|
|
|
|
*)
|
2024-12-15 09:10:19 +00:00
|
|
|
in
|
2024-12-17 21:42:06 +00:00
|
|
|
{ player = player
|
|
|
|
|
, walls = walls
|
|
|
|
|
, wallTree = wallTree
|
|
|
|
|
, platforms = platforms
|
|
|
|
|
, platformTree = platformTree
|
2024-12-19 03:08:26 +00:00
|
|
|
, enemies = enemies
|
2025-01-31 04:32:53 +00:00
|
|
|
, graph = graph
|
2025-02-08 09:20:10 +00:00
|
|
|
, fallingEnemies = fallingEnemies
|
2024-12-17 21:42:06 +00:00
|
|
|
}
|
2024-12-15 09:10:19 +00:00
|
|
|
end
|
|
|
|
|
end
|