Implemented frightmode

This commit is contained in:
Urban Modig
2025-08-29 13:28:09 +02:00
parent 09e0396cc3
commit f001cf0a41
6 changed files with 129 additions and 64 deletions

View File

@ -5,10 +5,12 @@ import lombok.extern.slf4j.Slf4j;
import se.urmo.game.collision.CollisionChecker;
import se.urmo.game.collision.GhostCollisionChecker;
import se.urmo.game.entities.Ghost;
import se.urmo.game.entities.GhostMode;
import se.urmo.game.entities.PacMan;
import se.urmo.game.main.Game;
import se.urmo.game.map.GameMap;
import se.urmo.game.map.MapTile;
import se.urmo.game.map.TileType;
import se.urmo.game.util.Direction;
import java.awt.*;
@ -48,7 +50,9 @@ public class PlayingState implements GameState {
Point pacmanScreenPos = pacman.getPosition();
MapTile tile = map.getTile(pacmanScreenPos);
boolean wasRemoved = map.removeTileImage(pacmanScreenPos);
if(wasRemoved && tile.getTileType() == TileType.LARGE_PELLET){
ghostManager.setFrightMode();
}
if(wasRemoved){
score+=tile.getTileType().getScore();
}
@ -107,6 +111,7 @@ public class PlayingState implements GameState {
// Pac-Man eats ghost
score += 200;
ghost.resetPosition();
ghost.setMode(GhostMode.CHASE); // end frightend
} else {
// Pac-Man loses a life
lives--;