public ArrayList<Move> getPossibleMoves(Loyalty loyalty)
	{
		ArrayList<Move> possibleMoves = super.getPossibleMoves(loyalty);
		ArrayList<Move> realPossibleMoves = new ArrayList<Move>();
		
		for(Move possibleMove : possibleMoves)
		{
			boolean possible = true;
			
			Game nextGame = new Game(getGame());
			
			Board nextBoard = nextGame.getBoard();
			
			nextBoard.executeMove(possibleMove);
			
			for(Node node : nextBoard.getNodes())
			{
				Piece checkCandidate = null;
				
				if(node.getPiece() != null && node.getPiece().getLoyalty() != loyalty)
				{
					checkCandidate = node.getPiece();
				}
				
				if(checkCandidate == null)
				{
					continue;
				}
				else
				{
					for(Move move : checkCandidate.getPossibleMoves())
					{
						for(Node jumped : move.getJumped())
						{
							if(jumped.getPiece() instanceof King)
							{
								possible = false;
							}
						}
					}
				}
			}
			
			if(possible)
			{
				realPossibleMoves.add(possibleMove);
			}
		}
		
		return realPossibleMoves;
	}