Added check for frozen enemy to enemy idle anim condition

This commit is contained in:
misha-colbourne
2024-08-22 01:19:25 +01:00
parent c06e97d57b
commit 7ffd7b1d63
2 changed files with 7 additions and 4 deletions

View File

@@ -324,7 +324,8 @@ public class EnemySprite extends CharacterSprite implements Steerable<Vector2> {
if (_freeze){ if (_freeze){
//Mob has defeated player in battle, hold still until player has a chance to move away. //Mob has defeated player in battle, hold still until player has a chance to move away.
//Without this moving enemies can immediately restart battle. //Without this moving enemies can immediately restart battle.
if (spriteToPlayer.len() < unfreezeRange) { float distance = spriteToPlayer.len();
if (distance < unfreezeRange) {
timer += delta; timer += delta;
return Vector2.Zero; return Vector2.Zero;
} }
@@ -635,7 +636,8 @@ public class EnemySprite extends CharacterSprite implements Steerable<Vector2> {
} }
public boolean isFrozen() {
return _freeze;
}
} }

View File

@@ -959,10 +959,11 @@ public class MapStage extends GameStage {
} else { } else {
Vector2 destination = mob.getTargetVector(player, verticesNearPlayer, delta); 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); mob.setAnimation(CharacterSprite.AnimationTypes.Idle);
continue; continue;
} }
if (destination.equals(mob.targetVector) && mob.getNavPath() != null) if (destination.equals(mob.targetVector) && mob.getNavPath() != null)
navPath = mob.getNavPath(); navPath = mob.getNavPath();