public void removeDefeatedPlayers(GameRoom room) { IEnumerator roomPlayer = room.Players.PlayerList.GetEnumerator(); while (roomPlayer.MoveNext()) { RoomPlayer rp = (RoomPlayer)roomPlayer.Current; Console.WriteLine(1 + ";" + rp.faction); bool playerDataExists = false; foreach (PlayerMatchdata data in room.getMatchdata()) { if (data.playerId.Equals(rp.playerId)) { playerDataExists = true; } } if (!isFactionActive(rp, room) && !playerDataExists) { Console.WriteLine(2 + ";" + rp.faction); int placement = 4 - room.insertDefeatedPlayer(rp); //removePlayerFromRoom(rp, room); rp.placement = placement; PlayerMatchdata matchdata = new PlayerMatchdata(room.roomId, rp.playerId, rp.placement, rp.armiesCreated, rp.regionsConquered); room.insertPlayerData(matchdata); Console.WriteLine("Player to matchdata: " + matchdata.playerId); } } }
public async Task <IActionResult> SaveMatchData([FromBody] PlayerMatchdataRequest data) { string key = Request.Headers["Authorization"], check = _config["AppSettings:GameServerKey"]; if (string.IsNullOrEmpty(key) || !key.Equals(check)) { return(Unauthorized(new Error("InvalidCredentials", "Only the GameServer is able to add new matchdata entries!"))); } PlayerMatchdata playerMatchdata = new PlayerMatchdata(); playerMatchdata.gameID = data.gameID; playerMatchdata.playerId = data.playerId; playerMatchdata.placement = data.placement; playerMatchdata.armiesCreated = data.armiesCreated; playerMatchdata.regionsConquered = data.regionsConquered; playerMatchdata.date = DateTime.Now; try { await _service.SavePlayerMatchdata(playerMatchdata); return(Ok(new Success("Request saved successfuly"))); } catch (Exception exc) { this._logger.LogError(exc, exc.Message); return(StatusCode(500)); } }
public bool gameFinished(string faction, GameRoom room) //To really use this method which will handle the finished game { RoomPlayer rp = winner(faction, room); if (rp != null) { room.getClassificationPlayers().Add(rp); PlayerMatchdata matchdata = new PlayerMatchdata(room.roomId, rp.playerId, 1, rp.armiesCreated, rp.regionsConquered); room.insertPlayerData(matchdata); Console.WriteLine("Player to matchdata: " + matchdata.playerId); return(true); } return(false); }
public async Task SavePlayerMatchdata(PlayerMatchdata matchdata) { await _matchdataRepository.Create(matchdata); }
public async Task Create(PlayerMatchdata matchdata) { _context.PlayersMatchdata.Add(matchdata); await _context.SaveChangesAsync(); }
public void insertPlayerData(PlayerMatchdata data) { matchdata.Add(data); }