@Override
	public GameState[] allActions(GameState state, Card card, int time) {
		GameState[] states = new GameState[1];
		states[0] = state;
		
		if(time == Time.DAY)
		{
			GameState root = new GameState(state);
			Color faction = card.getFaction();
			int amt = 3;
			if(root.getPlayer(faction).getGold() < 3)
			{
				amt = root.getPlayer(faction).getGold();
			}
			root.getPlayer(faction).addGold(-amt);
			
			Card[] possibleArray = new Card[0];
			HashSet<Card> possibleSet = new HashSet<Card>();
			
			for(Player p : root.getPlayerList())
			{
				possibleSet.addAll(p.getDen());
			}
			
			if(possibleSet.isEmpty())
			{
				states[0] = root;
			}
			else
			{
				possibleArray = possibleSet.toArray(possibleArray);
				states = allKillOutcomes(root, possibleArray).keySet().toArray(states);
			}
		}
		else if(time == Time.DUSK)
		{
			PickTreasure temp = new PickTreasure();
			states = temp.allActions(new GameState(state), card, time);
		}
		else if(time == Time.NIGHT)
		{
			//Nothing to do
		}
		
		return states;
	}