Exemple #1
0
        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));
            }
        }
Exemple #3
0
        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);
        }
Exemple #4
0
 public async Task SavePlayerMatchdata(PlayerMatchdata matchdata)
 {
     await _matchdataRepository.Create(matchdata);
 }
Exemple #5
0
 public async Task Create(PlayerMatchdata matchdata)
 {
     _context.PlayersMatchdata.Add(matchdata);
     await _context.SaveChangesAsync();
 }
Exemple #6
0
 public void insertPlayerData(PlayerMatchdata data)
 {
     matchdata.Add(data);
 }