Exemple #1
0
	public GameStarted startGame(String gameUUID, GameData data) {
		PersistenceManager pm = getPersistenceManager();
		GameStarted retObject;
		ArrayList<HashMap<String, String>> apnData =
				new ArrayList<HashMap<String, String>>();
		try {
			Game g = pm.getObjectById(Game.class, gameUUID);
			g.setGamePlayDataUUID(data.getUUID());
			g.startGame();
			pm.makePersistent(data);
			//Assigns Targets
			ArrayList<String> playerUUIDs = g.getPlayerUUIDs();
			Collections.shuffle(playerUUIDs, new Random(System.currentTimeMillis()));
			int numPlayers = playerUUIDs.size();
			for (int i= 0; i < numPlayers; i ++) {
				GameUser hunter = pm.getObjectById(GameUser.class, playerUUIDs.get(i));
				hunter.setTargetUUID(gameUUID, playerUUIDs.get((i+1)%numPlayers));
				hunter.setUserStatus("Playing - Alive");
			}
			
			//Collect APN Information
			String hostUUID = g.getHostUUID();
			for (String usrUUID: playerUUIDs) {
				if (usrUUID != hostUUID) {
					GameUser usr = pm.getObjectById(GameUser.class, usrUUID);
					HashMap<String, String> entry = 
							new HashMap<String, String>();
					entry.put("apn", usr.getAPN());
					entry.put("platformId", usr.getPlatformID());
					apnData.add(entry);
				}
			}
		} finally {
			pm.close();
		}
		retObject = new GameStarted(apnData);
		return retObject;
	}