slight refactoring to help with extensibility of adding enemy variants later

This commit is contained in:
2025-01-14 11:50:27 +00:00
parent 90c29ebe24
commit 0c01b224d0
6 changed files with 187 additions and 133 deletions

View File

@@ -21,19 +21,26 @@ struct
| W_X_AXIS of GameType.x_axis
| W_Y_AXIS of GameType.y_axis
fun mkEnemy (id, health, x, y, xAxis, yAxis) =
{id = id, health = health, x = x, y = y, xAxis = xAxis, yAxis = yAxis}
fun mkEnemy (id, health, x, y, xAxis, yAxis, variant) =
{ id = id
, health = health
, x = x
, y = y
, xAxis = xAxis
, yAxis = yAxis
, variant = variant
}
fun withPatch (enemy, patch) =
let
val {id, health, x, y, xAxis, yAxis} = enemy
val {id, health, x, y, xAxis, yAxis, variant} = enemy
in
case patch of
W_HEALTH health => mkEnemy (id, health, x, y, xAxis, yAxis)
| W_X x => mkEnemy (id, health, x, y, xAxis, yAxis)
| W_X_AXIS xAxis => mkEnemy (id, health, x, y, xAxis, yAxis)
| W_Y y => mkEnemy (id, health, x, y, xAxis, yAxis)
| W_Y_AXIS yAxis => mkEnemy (id, health, x, y, xAxis, yAxis)
W_HEALTH health => mkEnemy (id, health, x, y, xAxis, yAxis, variant)
| W_X x => mkEnemy (id, health, x, y, xAxis, yAxis, variant)
| W_X_AXIS xAxis => mkEnemy (id, health, x, y, xAxis, yAxis, variant)
| W_Y y => mkEnemy (id, health, x, y, xAxis, yAxis, variant)
| W_Y_AXIS yAxis => mkEnemy (id, health, x, y, xAxis, yAxis, variant)
end
fun withPatches (enemy, lst) =