begin adding shield slime enemy variant

This commit is contained in:
2025-02-15 12:34:10 +00:00
parent 190f11d7ef
commit 66c60a490d
6 changed files with 61 additions and 3 deletions

View File

@@ -17,11 +17,17 @@ struct
(defeatedList, enemyMap)
end
fun shieldSlimeAttacked (enemyID, enemy, enemyMap, defeatedList) =
if #shieldOn enemy then (defeatedList, enemyMap)
else defeatEnemy (enemyID, enemyMap, defeatedList)
fun onPlayerAttack (enemyID, enemy, enemyMap, defeatedList) =
case #variant enemy of
PATROL_SLIME => defeatEnemy (enemyID, enemyMap, defeatedList)
| FOLLOW_SLIME => defeatEnemy (enemyID, enemyMap, defeatedList)
| STRAIGHT_BAT => defeatEnemy (enemyID, enemyMap, defeatedList)
| SHIELD_SLIME =>
shieldSlimeAttacked (enemyID, enemy, enemyMap, defeatedList)
fun fold (enemyID, (), (defeatedList, enemyMap)) =
case EnemyMap.get (enemyID, enemyMap) of
@@ -105,11 +111,17 @@ struct
(fallingMap, enemyMap)
end
fun onShieldSlimeAttacked (enemyID, enemy, enemyMap, fallingMap) =
if #shieldOn enemy then (fallingMap, enemyMap)
else onDefeated (enemyID, enemy, enemyMap, fallingMap)
fun onProjectileAttack (enemyID, enemy, enemyMap, fallingMap) =
case #variant enemy of
PATROL_SLIME => onDefeated (enemyID, enemy, enemyMap, fallingMap)
| FOLLOW_SLIME => onDefeated (enemyID, enemy, enemyMap, fallingMap)
| STRAIGHT_BAT => onDefeated (enemyID, enemy, enemyMap, fallingMap)
| SHIELD_SLIME =>
onShieldSlimeAttacked (enemyID, enemy, enemyMap, fallingMap)
fun fold (enemyID, (), (fallingMap, enemyMap)) =
case EnemyMap.get (enemyID, enemyMap) of