Fixed game state related bugs
This commit is contained in:
		| @@ -46,10 +46,9 @@ public class Game { | |||||||
| 					System.out.printf("%s in check!%n", player.color.opposite()); | 					System.out.printf("%s in check!%n", player.color.opposite()); | ||||||
| 				default: | 				default: | ||||||
| 					boardComponent.repaint(); | 					boardComponent.repaint(); | ||||||
| 					overlayComponent.displayArrow(move); |  | ||||||
| 					players.get(player.color.opposite()).requestMove(); | 					players.get(player.color.opposite()).requestMove(); | ||||||
|  |  | ||||||
| 			} | 			} | ||||||
|  | 			overlayComponent.displayArrow(move); | ||||||
| 		} else player.requestMove(); | 		} else player.requestMove(); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| @@ -57,12 +56,11 @@ public class Game { | |||||||
| 		players.get(Color.WHITE).requestMove(); | 		players.get(Color.WHITE).requestMove(); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public void restart() { | 	public void reset() { | ||||||
| 		players.forEach((k, v) -> v.cancelMove()); | 		players.forEach((k, v) -> v.cancelMove()); | ||||||
| 		board.initializeDefaultPositions(); | 		board.initializeDefaultPositions(); | ||||||
| 		boardComponent.repaint(); | 		boardComponent.repaint(); | ||||||
| 		overlayComponent.clearDots(); | 		overlayComponent.clearDots(); | ||||||
| 		overlayComponent.clearArrow(); | 		overlayComponent.clearArrow(); | ||||||
| 		start(); |  | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|   | |||||||
| @@ -65,7 +65,7 @@ public class MainWindow { | |||||||
| 		mframe.getContentPane().add(toolPanel, BorderLayout.NORTH); | 		mframe.getContentPane().add(toolPanel, BorderLayout.NORTH); | ||||||
|  |  | ||||||
| 		JButton btnRestart = new JButton("Restart"); | 		JButton btnRestart = new JButton("Restart"); | ||||||
| 		btnRestart.addActionListener((evt) -> { if (game != null) game.restart(); }); | 		btnRestart.addActionListener((evt) -> { if (game != null) game.reset(); game.start(); }); | ||||||
| 		toolPanel.add(btnRestart); | 		toolPanel.add(btnRestart); | ||||||
| 		mframe.pack(); | 		mframe.pack(); | ||||||
| 		mframe.setLocationRelativeTo(null); | 		mframe.setLocationRelativeTo(null); | ||||||
|   | |||||||
| @@ -80,9 +80,11 @@ public class MenuBar extends JMenuBar { | |||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	private void startGame() { | 	private void startGame() { | ||||||
| 		// TODO: Re-init board and overlay component |  | ||||||
| 		Game game = new Game(players, boardPane); | 		Game game = new Game(players, boardPane); | ||||||
| 		mainWindow.setGame(game); | 		mainWindow.setGame(game); | ||||||
|  |  | ||||||
|  | 		// Update board and board component | ||||||
|  | 		game.reset(); | ||||||
| 		game.start(); | 		game.start(); | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user