@Override
	public void displayAllStates(List<GameState> AllStates){
		final String newline = "<br>";
		String output = "<html>";
		for(GameState gameState: AllStates){
			int[] PlayerRoles = gameState.AllPlayers();
			for(int i = 0; i < PlayerRoles.length; i++){
				output += "(" + (i+1) + " " + RunFileGame.getPlayerName(i+1);
				if(PlayerRoles[i] < 0) output += " Dead";
				switch(PlayerRoles[i]){
				case 1: output += " Villager";
				break;
				case 2: output += " Seer";
				break;
				case -1: output += " Villager";
				break;
				case -2: output += " Seer";
				break;
				}
				if(PlayerRoles[i] >= 3) output += " " + (PlayerRoles[i] - 2) + "-Wolf";
				if(PlayerRoles[i] <= -3) output += " " + (-1 * (PlayerRoles[i] + 2)) + "-Wolf";
				output += ")";
			}	
			output += newline;
		}
		output += "</html>";
		
		JScrollPane ScrPane = new JScrollPane(new JLabel(output));
		final JDialog dialog = new JDialog(null, "Quantum Werewolves", Dialog.ModalityType.APPLICATION_MODAL);	
		dialog.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
		dialog.setLocationRelativeTo(null);
		
		JPanel somePanel = new JPanel();
		somePanel.setLayout(new BorderLayout());
		somePanel.add(new JLabel("This is a list of all currently possible gamestates:"),BorderLayout.NORTH);
		somePanel.add(ScrPane, BorderLayout.CENTER);
		
		JButton button = new JButton("Ok");
		button.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				dialog.setVisible(false);
			}				
		});
		somePanel.add(button, BorderLayout.SOUTH);
		dialog.add(somePanel);
		dialog.pack();
		dialog.setSize(new Dimension(600,325));
		somePanel.setSize(new Dimension(600,300));
		somePanel.setMaximumSize(new Dimension(600,300));
		ScrPane.setMaximumSize(new Dimension(600,300));
		ScrPane.setPreferredSize(new Dimension(600,300));
		somePanel.setPreferredSize(new Dimension(600,300));
		dialog.setLocationRelativeTo(null);
		
		dialog.setVisible(true);
	}