diff --git a/src/services/ai/AIActor.java b/src/services/ai/AIActor.java index fcaf3e7d..f3f406b7 100644 --- a/src/services/ai/AIActor.java +++ b/src/services/ai/AIActor.java @@ -237,7 +237,6 @@ public class AIActor { case StateResult.DEAD: setCurrentState(new DeathState()); case StateResult.FINISHED: - // TODO: add state transitions case StateResult.UNFINISHED: return; case StateResult.IDLE: diff --git a/src/services/ai/states/AttackState.java b/src/services/ai/states/AttackState.java index 57e8e4a6..dbc0a54d 100644 --- a/src/services/ai/states/AttackState.java +++ b/src/services/ai/states/AttackState.java @@ -120,6 +120,7 @@ public class AttackState extends AIState { creature.setLookAtTarget(0); creature.setIntendedTarget(0); actor.setFollowObject(null); + actor.setCurrentState(new RetreatState()); return StateResult.FINISHED; } CreatureObject target = actor.getFollowObject(); @@ -133,7 +134,7 @@ public class AttackState extends AIState { return StateResult.UNFINISHED; } if(target.getPosture() == 13 || target.getPosture() == 14) { - actor.getDamageMap().remove(target); + actor.removeDefender(target); actor.setFollowObject(actor.getHighestDamageDealer()); target = actor.getFollowObject(); if(target == null)