diff --git a/img/dialogue/Bouncer.png b/img/dialogue/Bouncer.png new file mode 100644 index 0000000..429d304 Binary files /dev/null and b/img/dialogue/Bouncer.png differ diff --git a/src/GamePanel.java b/src/GamePanel.java index 23b5f70..7901a24 100644 --- a/src/GamePanel.java +++ b/src/GamePanel.java @@ -42,7 +42,7 @@ public class GamePanel extends JPanel implements Runnable, KeyListener, Serializ public int playerFrame, enemyFrame; // keeps track of how many ticks has elapsed since last frame change public int playerFrameCounter = 0; - public int enemyFrameCounter = 0; + public int timeSinceLastSave = 0; public boolean isPaused, isDialogue, waitForDialogue, mouseAlreadyTranslated; public PauseMenu pauseMenu; public DialogueMenu dialogueMenu; @@ -388,14 +388,18 @@ public class GamePanel extends JPanel implements Runnable, KeyListener, Serializ playerFrameCounter -= 5; } } - // a new save is made every tick - bombCount = LevelManager.bombs; - try { - // atomic save to prevent EOF errors - FileManager.writeObjectToFile("local\\temp_state.dat", this); - Files.move(Path.of("local", "temp_state.dat"), Path.of("local", "game_state.dat"), ATOMIC_MOVE); - } catch (IOException | ConcurrentModificationException e) { - e.printStackTrace(); + // a new save is made every 100 ticks + timeSinceLastSave++; + if (timeSinceLastSave >= 100) { + timeSinceLastSave -= 100; + bombCount = LevelManager.bombs; + try { + // atomic save to prevent EOF errors + FileManager.writeObjectToFile("local\\temp_state.dat", this); + Files.move(Path.of("local", "temp_state.dat"), Path.of("local", "game_state.dat"), ATOMIC_MOVE); + } catch (IOException | ConcurrentModificationException e) { + e.printStackTrace(); + } } repaint(); delta--;