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){
//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<Vector2> {
}
public boolean isFrozen() {
return _freeze;
}
}

View File

@@ -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();