make player's heatth decrement when attacked, and when player's health reaches 0, boot player back to title screen
This commit is contained in:
@@ -17,31 +17,40 @@ struct
|
||||
|
||||
val enemyTree = Enemy.generateTree enemies
|
||||
val player = Player.checkEnemyCollisions (player, enemies, enemyTree)
|
||||
|
||||
val (player, enemies, fallingEnemies) =
|
||||
PlayerAttack.attackEnemies (player, enemies, enemyTree, fallingEnemies)
|
||||
|
||||
val projectiles = #projectiles player
|
||||
val (fallingEnemies, enemies) =
|
||||
PlayerAttack.projectileHitEnemy
|
||||
(projectiles, enemies, enemyTree, fallingEnemies)
|
||||
|
||||
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}
|
||||
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)
|
||||
|
||||
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
|
||||
|
||||
@@ -309,18 +309,18 @@ struct
|
||||
val newRecoil = RECOIL_RIGHT 0
|
||||
val newAttacked = ATTACKED 0
|
||||
in
|
||||
W_RECOIL newRecoil :: W_ATTACKED newAttacked
|
||||
:: W_FACING FACING_LEFT :: W_Y_AXIS FALLING
|
||||
:: W_X_AXIS STAY_STILL :: acc
|
||||
W_HEALTH (#health player - 1) :: W_RECOIL newRecoil
|
||||
:: W_ATTACKED newAttacked :: W_FACING FACING_LEFT
|
||||
:: W_Y_AXIS FALLING :: W_X_AXIS STAY_STILL :: acc
|
||||
end
|
||||
else
|
||||
let
|
||||
val newRecoil = RECOIL_LEFT 0
|
||||
val newAttacked = ATTACKED 0
|
||||
in
|
||||
W_RECOIL newRecoil :: W_ATTACKED newAttacked
|
||||
:: W_FACING FACING_RIGHT :: W_Y_AXIS FALLING
|
||||
:: W_X_AXIS STAY_STILL :: acc
|
||||
W_HEALTH (#health player - 1) :: W_RECOIL newRecoil
|
||||
:: W_ATTACKED newAttacked :: W_FACING FACING_RIGHT
|
||||
:: W_Y_AXIS FALLING :: W_X_AXIS STAY_STILL :: acc
|
||||
end
|
||||
|
||||
fun fold (enemyID, (enemies, player: player), patches) =
|
||||
@@ -353,15 +353,6 @@ struct
|
||||
end
|
||||
end)
|
||||
|
||||
structure AttackEnemies =
|
||||
MakeQuadTreeFold
|
||||
(struct
|
||||
type env = unit
|
||||
type state = defeated_enemies list
|
||||
|
||||
fun fold (_, (), defeatedList) = {angle = 1} :: defeatedList
|
||||
end)
|
||||
|
||||
fun runPhysicsAndInput (game: LevelType.level_type, input) =
|
||||
let
|
||||
val player = #player game
|
||||
|
||||
Reference in New Issue
Block a user