diff --git a/forge-gui-mobile/src/forge/adventure/character/EnemySprite.java b/forge-gui-mobile/src/forge/adventure/character/EnemySprite.java index aa1c2f1f4ad..a4652e3ca8f 100644 --- a/forge-gui-mobile/src/forge/adventure/character/EnemySprite.java +++ b/forge-gui-mobile/src/forge/adventure/character/EnemySprite.java @@ -324,7 +324,8 @@ public class EnemySprite extends CharacterSprite implements Steerable { if (_freeze){ //Mob has defeated player in battle, hold still until player has a chance to move away. //Without this moving enemies can immediately restart battle. - if (spriteToPlayer.len() < unfreezeRange) { + float distance = spriteToPlayer.len(); + if (distance < unfreezeRange) { timer += delta; return Vector2.Zero; } @@ -635,7 +636,8 @@ public class EnemySprite extends CharacterSprite implements Steerable { } - - + public boolean isFrozen() { + return _freeze; + } } diff --git a/forge-gui-mobile/src/forge/adventure/stage/MapStage.java b/forge-gui-mobile/src/forge/adventure/stage/MapStage.java index 4d2d6ff2be1..eb71fabadf7 100644 --- a/forge-gui-mobile/src/forge/adventure/stage/MapStage.java +++ b/forge-gui-mobile/src/forge/adventure/stage/MapStage.java @@ -959,10 +959,11 @@ public class MapStage extends GameStage { } else { Vector2 destination = mob.getTargetVector(player, verticesNearPlayer, delta); - if (destination.epsilonEquals(mob.pos()) && !mob.aggro) { + if (mob.isFrozen() || (destination.epsilonEquals(mob.pos()) && !mob.aggro)) { mob.setAnimation(CharacterSprite.AnimationTypes.Idle); continue; } + if (destination.equals(mob.targetVector) && mob.getNavPath() != null) navPath = mob.getNavPath();