create enemy patch structure
This commit is contained in:
32
fcore/enemy-patch.sml
Normal file
32
fcore/enemy-patch.sml
Normal file
@@ -0,0 +1,32 @@
|
||||
structure EnemyPatch =
|
||||
struct
|
||||
datatype enemy_patch =
|
||||
W_HEALTH of int
|
||||
| W_X of int
|
||||
| W_Y of int
|
||||
| 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 withPatch (enemy, patch) =
|
||||
let
|
||||
val {id, health, x, y, xAxis, yAxis} = 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)
|
||||
end
|
||||
|
||||
fun withPatches (enemy, lst) =
|
||||
case lst of
|
||||
hd :: tl =>
|
||||
let val enemy = withPatch (enemy, hd)
|
||||
in withPatches (enemy, tl)
|
||||
end
|
||||
| [] => enemy
|
||||
end
|
||||
Reference in New Issue
Block a user