diff --git a/fcore/game-type.sml b/fcore/game-type.sml index 09d5471..99c34b8 100644 --- a/fcore/game-type.sml +++ b/fcore/game-type.sml @@ -36,6 +36,7 @@ sig , y: int , jumpPressed: bool , enemies: defeated_enemies vector + , charge: int } datatype player_patch = @@ -106,6 +107,7 @@ struct , y: int , jumpPressed: bool , enemies: defeated_enemies vector + , charge: int } datatype player_patch = @@ -149,6 +151,7 @@ struct , y = 500 , jumpPressed = false , enemies = Vector.fromList [] + , charge = 60 } val wall1 = {id = 1, x = 0, y = 0, width = 100, height = 1080} diff --git a/fcore/player.sml b/fcore/player.sml index d592c32..c6e0fb5 100644 --- a/fcore/player.sml +++ b/fcore/player.sml @@ -15,6 +15,7 @@ struct , facing , mainAttackPressed , enemies + , charge ) = { yAxis = yAxis , xAxis = xAxis @@ -28,6 +29,7 @@ struct , y = y , jumpPressed = jumpPressed , enemies = enemies + , charge = charge } fun withPatch (player: player, patch) = @@ -45,6 +47,7 @@ struct , y , jumpPressed , enemies + , charge } = player in case patch of @@ -62,6 +65,7 @@ struct , facing , mainAttackPressed , enemies + , charge ) | W_Y_AXIS yAxis => mkPlayer @@ -77,6 +81,7 @@ struct , facing , mainAttackPressed , enemies + , charge ) | W_RECOIL recoil => mkPlayer @@ -92,6 +97,7 @@ struct , facing , mainAttackPressed , enemies + , charge ) | W_ATTACKED attacked => mkPlayer @@ -107,6 +113,7 @@ struct , facing , mainAttackPressed , enemies + , charge ) | W_MAIN_ATTACK mainAttack => mkPlayer @@ -122,6 +129,7 @@ struct , facing , mainAttackPressed , enemies + , charge ) | W_FACING facing => mkPlayer @@ -137,6 +145,7 @@ struct , facing , mainAttackPressed , enemies + , charge ) | W_HEALTH health => mkPlayer @@ -152,6 +161,7 @@ struct , facing , mainAttackPressed , enemies + , charge ) | W_X x => mkPlayer @@ -167,6 +177,7 @@ struct , facing , mainAttackPressed , enemies + , charge ) | W_Y y => mkPlayer @@ -182,6 +193,7 @@ struct , facing , mainAttackPressed , enemies + , charge ) | W_JUMP_PRESSED jumpPressed => mkPlayer @@ -197,6 +209,7 @@ struct , facing , mainAttackPressed , enemies + , charge ) | W_MAIN_ATTACK_PRESSED mainAttackPressed => mkPlayer @@ -212,6 +225,7 @@ struct , facing , mainAttackPressed , enemies + , charge ) | W_ENEMIES enemies => mkPlayer @@ -227,6 +241,7 @@ struct , facing , mainAttackPressed , enemies + , charge ) end @@ -254,6 +269,7 @@ struct val recoilLimit = 15 val attackedLimit = 55 val mainAttackLimit = 15 + val maxCharge = 60 (* helper functions checking input *) fun getXAxis (lh, rh) =