private void StartCountDown(GameGroup gg) { while(!CountDownQueue.Contains(gg)) { CountDownQueue.Enqueue(gg); } }
///for load test harness - convert add game group from GroupList info private void addGameGroupAndUsers(string groupID) { GameGroup newGameGroup = new GameGroup(groupID); bool failedAdd = false; foreach (UserDetail user in GroupList.FirstOrDefault(o => o.id == groupID).users) { PlayerState playerState = new PlayerState(); playerState.Id = user.ConnectionId; if (!newGameGroup.PlayerStates.TryAdd(user.ConnectionId, playerState)) { failedAdd = true; } //LOW threadsafe Risk, only one client inititates creation of group } //What if not added initially, requires while loop? if (!GameGroups.TryAdd(groupID, newGameGroup)) { failedAdd = true; } //MEDIUM threadsafe Risk if (failedAdd) { //TODO: Add ClientError() callback DebugOut("Failed to Add Player to Group or Group to List"); } else { DebugOut("Added Following Group " + newGameGroup.id + " !!!!!! "); } }
private void InitGame(string groupID) { GameGroup newGroup = new GameGroup(groupID); bool failedAdd = false; foreach (UserDetail user in GroupList.FirstOrDefault(o => o.id == groupID).users) { PlayerState playerState = new PlayerState(); playerState.Id = user.ConnectionId; if (!newGroup.PlayerStates.TryAdd(user.ConnectionId, playerState)) { failedAdd = true; } //LOW threadsafe Risk, only one client inititates creation of group } //What if not added initially, requires while loop? if(!GameGroups.TryAdd(groupID, newGroup)){ failedAdd = true; } //MEDIUM threadsafe Risk if(failedAdd){ //Clients.Group(groupID).clientError("Couldn't Add Player", "Failed to Add a player(s) to the game"); //failed to add player to group or group list DebugOut("failed to add player to group or group list"); } else{ Clients.Group(groupID).showGameScreen(); this.StartCountDown(GameGroups[groupID]); } }