pass player record as argument for enemy filtering functiokns, so enemy can react to player state (position, etc.)

This commit is contained in:
2025-01-16 08:15:29 +00:00
parent 0c01b224d0
commit a05f211428
3 changed files with 60 additions and 12 deletions

View File

@@ -3,8 +3,16 @@ struct
open GameType
open PlayerPatch
fun checkCollisions (player, enemies, enemyTree, projectiles, walls, wallTree,
platforms, platformTree) =
fun checkCollisions
( player
, enemies
, enemyTree
, projectiles
, walls
, wallTree
, platforms
, platformTree
) =
let
val {x, y, mainAttack, attacked, ...} = player
val size = Constants.playerSize
@@ -26,6 +34,7 @@ struct
, wallTree
, platforms
, platformTree
, player
)
(* add collided enemies to player record,
@@ -46,8 +55,16 @@ struct
(player, enemies, enemyCollisions, [])
val enemies = Enemy.filterProjectileCollisions
(Vector.length enemies - 1, enemies, projectileTree, [],
walls, wallTree, platforms, platformTree)
( Vector.length enemies - 1
, enemies
, projectileTree
, []
, walls
, wallTree
, platforms
, platformTree
, player
)
in
(player, enemies)
end
@@ -63,8 +80,16 @@ struct
(player, enemies, enemyCollisions)
val enemies = Enemy.filterProjectileCollisions
(Vector.length enemies - 1, enemies, projectileTree, [],
walls, wallTree, platforms, platformTree)
( Vector.length enemies - 1
, enemies
, projectileTree
, []
, walls
, wallTree
, platforms
, platformTree
, player
)
in
(player, enemies)
end
@@ -75,8 +100,16 @@ struct
let
val player = Player.incrementAttacked (player, amt)
val enemies = Enemy.filterProjectileCollisions
(Vector.length enemies - 1, enemies, projectileTree, [],
walls, wallTree, platforms, platformTree)
( Vector.length enemies - 1
, enemies
, projectileTree
, []
, walls
, wallTree
, platforms
, platformTree
, player
)
in
(player, enemies)
end)