protected void night() {

		//Vote
		
		List<Vote> voteList = gameData.getVoteList();
		Agent target = getVotedAgent(voteList);
		if(gameData.getStatus(target) == Status.alive){
			gameData.setExecuteTarget(target);
			gameLogger.info(String.format("%d,execute,%d,%s", gameData.getDay(), target.getAgentIdx(), gameData.getRole(target)));
		}
		
		
		//Attack
		if(!(getAliveWolfList().size() == 1 && gameData.getRole(gameData.getExecuted()) == Role.werewolf)){
			List<Vote> attackCandidateList = gameData.getAttackVoteList();
			Agent attacked = getAttackVotedAgent(attackCandidateList);
			
			if((gameData.getGuard() == null || !gameData.getGuard().getTarget().equals(attacked)) && attacked != null){
				gameData.setAttackedTarget(attacked);
				gameLogger.info(String.format("%d,attack,%d,true", gameData.getDay(), attacked.getAgentIdx()));
			}
			else if(attacked != null){
				gameLogger.info(String.format("%d,attack,%d,false", gameData.getDay(), attacked.getAgentIdx()));
			}
		}
		
		
		gameData = gameData.nextDay();
		gameDataMap.put(gameData.getDay(), gameData);
		gameServer.setGameData(gameData);
		
	}