diff --git a/packages/wolf_3d_dart/lib/src/entities/entities/enemies/enemy.dart b/packages/wolf_3d_dart/lib/src/entities/entities/enemies/enemy.dart index 83eeb42..0a68aa0 100644 --- a/packages/wolf_3d_dart/lib/src/entities/entities/enemies/enemy.dart +++ b/packages/wolf_3d_dart/lib/src/entities/entities/enemies/enemy.dart @@ -96,7 +96,7 @@ abstract class Enemy extends Entity { // Reaction delay has passed isAlerted = true; - if (state == EntityState.idle) { + if (state == EntityState.idle || state == EntityState.ambush) { state = EntityState.patrolling; } diff --git a/packages/wolf_3d_dart/lib/src/entities/entities/enemies/guard.dart b/packages/wolf_3d_dart/lib/src/entities/entities/enemies/guard.dart index fcced22..81de336 100644 --- a/packages/wolf_3d_dart/lib/src/entities/entities/enemies/guard.dart +++ b/packages/wolf_3d_dart/lib/src/entities/entities/enemies/guard.dart @@ -105,8 +105,8 @@ class Guard extends Enemy { ); } - // Attack if the player is within 6 tiles and the cooldown has passed. - if (isAlerted && distance < 6.0 && elapsedMs - lastActionTime > 1500) { + // Attack if the player is within 6 tiles and the brief cooldown has passed. + if (isAlerted && distance < 6.0 && elapsedMs - lastActionTime > 400) { if (hasLineOfSight(playerPosition, isWalkable)) { state = EntityState.attacking; lastActionTime = elapsedMs; diff --git a/packages/wolf_3d_dart/lib/src/entities/entities/enemies/ss.dart b/packages/wolf_3d_dart/lib/src/entities/entities/enemies/ss.dart index 6c51200..9ffc60c 100644 --- a/packages/wolf_3d_dart/lib/src/entities/entities/enemies/ss.dart +++ b/packages/wolf_3d_dart/lib/src/entities/entities/enemies/ss.dart @@ -89,8 +89,8 @@ class SS extends Enemy { ); } - // FIX 3: Only attack if alerted (Adjust the distance/timing per enemy class!) - if (isAlerted && distance < 6.0 && elapsedMs - lastActionTime > 1500) { + // Attack if the player is within 6 tiles and the brief cooldown has passed. + if (isAlerted && distance < 6.0 && elapsedMs - lastActionTime > 400) { if (hasLineOfSight(playerPosition, isWalkable)) { state = EntityState.attacking; lastActionTime = elapsedMs;