private GameState parrotDay(GameState state, Card card)
	{
		Color faction = card.getFaction();
		Player p = state.getPlayer(faction);
		
		if(p.getHand().isEmpty())
		{
			GameState end = new GameState(state);
			end.getBoard().removeCard(card);
			end.getPlayer(faction).addToDiscard(card);
			state.log(Faction.getPirateName(faction) + "'s " +
					"Parrot (" + card.abbreviate() + ") died but nothing could take its place");
			return end;
		}
		
		if(p.checkCPU())
		{
			HashMap<GameState, String> choiceMap = new HashMap<GameState, String>();
			for(Card c : p.getHand())
			{
				GameState choice = getParrotState(state, card, c);
				choiceMap.put(choice, 
						Faction.getPirateName(faction) + "'s Parrot (" + card.abbreviate() + 
						") died and " + c.abbreviate() + 
						" took its place");
			}
			GameState result = 
					p.chooseState(choiceMap.keySet().toArray(new GameState[0]), card);
			state.log(choiceMap.get(result));
			return result;
		}
		else
		{
			
			Card choice = p.getGUI().makeChoice("Choose a card from your hand to replace the parrot: ",
					p.getHand().toArray(new Card[0]));
			GameState end = getParrotState(state, card, choice);
			
			state.log(Faction.getPirateName(faction) + "'s Parrot (" + card.abbreviate() + 
					") died and " + choice.abbreviate() + 
					" took its place");
			
			return end;
		}
	}