Add 'game-sml/' from commit '113c3e67abe635f714f972a1e2ab0e4b24ff10f4'
git-subtree-dir: game-sml git-subtree-mainline:aa5357714dgit-subtree-split:113c3e67ab
This commit is contained in:
55
game-sml/fcore/level/level-update.sml
Normal file
55
game-sml/fcore/level/level-update.sml
Normal file
@@ -0,0 +1,55 @@
|
||||
structure LevelUpdate =
|
||||
struct
|
||||
fun update (level, input, userKeys, time) =
|
||||
let
|
||||
val
|
||||
{ player
|
||||
, walls
|
||||
, wallTree
|
||||
, platforms
|
||||
, platformTree
|
||||
, enemies
|
||||
, graph
|
||||
, fallingEnemies
|
||||
} = level
|
||||
|
||||
val player = Player.runPhysicsAndInput (level, input, time)
|
||||
|
||||
val enemyTree = Enemy.generateTree enemies
|
||||
val player = Player.checkEnemyCollisions (player, enemies, enemyTree)
|
||||
in
|
||||
if #health player > 0 then
|
||||
let
|
||||
val (player, enemies, fallingEnemies) =
|
||||
PlayerAttack.attackEnemies
|
||||
(player, enemies, enemyTree, fallingEnemies)
|
||||
|
||||
val projectiles = #projectiles player
|
||||
val (fallingEnemies, enemies) = PlayerAttack.projectileHitEnemy
|
||||
(projectiles, enemies, enemyTree, fallingEnemies, time)
|
||||
|
||||
val enemies = Enemy.update
|
||||
(enemies, walls, wallTree, platforms, platformTree, player, graph)
|
||||
|
||||
val fallingEnemies = FallingEnemies.update fallingEnemies
|
||||
|
||||
val mode =
|
||||
{ player = player
|
||||
, walls = walls
|
||||
, wallTree = wallTree
|
||||
, platforms = platforms
|
||||
, platformTree = platformTree
|
||||
, enemies = enemies
|
||||
, graph = graph
|
||||
, fallingEnemies = fallingEnemies
|
||||
}
|
||||
in
|
||||
{mode = GameType.LEVEL mode, userKeys = userKeys, saveKeys = false}
|
||||
end
|
||||
else
|
||||
{ mode = GameType.TITLE (TitleType.initial)
|
||||
, userKeys = userKeys
|
||||
, saveKeys = false
|
||||
}
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user