diff --git a/fcore/enemy-behaviour.sml b/fcore/enemy-behaviour.sml index 7eb4412..759bb51 100644 --- a/fcore/enemy-behaviour.sml +++ b/fcore/enemy-behaviour.sml @@ -112,7 +112,8 @@ struct end - fun getVariantPatches (enemy, walls, wallTree, platforms, platformTree, acc) = + fun getVariantPatches + (enemy, walls, wallTree, platforms, platformTree, player, acc) = let open EnemyVariants in diff --git a/fcore/enemy.sml b/fcore/enemy.sml index 048baad..42091b8 100644 --- a/fcore/enemy.sml +++ b/fcore/enemy.sml @@ -22,6 +22,7 @@ struct , wallTree , platforms , platformTree + , player ) = let val {x, y, health, ...} = enemy @@ -51,7 +52,7 @@ struct (* get patches specific to this type of enemy *) val patches = EnemyBehaviour.getVariantPatches - (enemy, walls, wallTree, platforms, platformTree, patches) + (enemy, walls, wallTree, platforms, platformTree, player, patches) val enemy = EnemyPatch.withPatches (enemy, patches) in @@ -69,7 +70,7 @@ struct (* get patches specific to this type of enemy *) val patches = EnemyBehaviour.getVariantPatches - (enemy, walls, wallTree, platforms, platformTree, patches) + (enemy, walls, wallTree, platforms, platformTree, player, patches) val enemy = EnemyPatch.withPatches (enemy, patches) in @@ -87,6 +88,7 @@ struct , wallTree , platforms , platformTree + , player ) = if pos < 0 then Vector.fromList acc @@ -94,7 +96,15 @@ struct let val enemy = Vector.sub (enemies, pos) val acc = onCollisionWithProjectile - (enemy, projectileTree, acc, walls, wallTree, platforms, platformTree) + ( enemy + , projectileTree + , acc + , walls + , wallTree + , platforms + , platformTree + , player + ) in filterProjectileCollisions ( pos - 1 @@ -105,6 +115,7 @@ struct , wallTree , platforms , platformTree + , player ) end @@ -121,6 +132,7 @@ struct , wallTree , platforms , platformTree + , player ) = if pos < 0 then Vector.fromList acc @@ -139,6 +151,7 @@ struct , wallTree , platforms , platformTree + , player ) in filterWhenAttacked @@ -151,6 +164,7 @@ struct , wallTree , platforms , platformTree + , player ) end diff --git a/fcore/player-enemy.sml b/fcore/player-enemy.sml index 0fe7280..8c65545 100644 --- a/fcore/player-enemy.sml +++ b/fcore/player-enemy.sml @@ -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)