Пример #1
0
 public override void OnPlayerJoin(String soldierName)
 {
     if (!ELOList.ContainsKey(soldierName))
     {
         ELOList[soldierName] = new ELO(soldierName);
     }
 }
Пример #2
0
        public override void OnServerInfo(CServerInfo serverInfo)
        {
            List <ELO> ELOObjects = ELOList.Values.ToList();

            ELOObjects.Sort();

            StringBuilder s = new StringBuilder($"\n^4---Top {TopNRanks} ELO Rank---^0\n");

            for (int i = 0, rank = 1; i < TopNRanks; i++)
            {
                ELO player = ELOObjects[i];
                s.AppendLine($"#{rank++} {player.Name} --> {player.Rating}".PadRight(75) + $"KD({player.Kills}/{player.Deaths}) |{ player.KDR.ToString("F2")}|");
            }
            ConsoleWrite(s.ToString());
        }
Пример #3
0
        public override void OnPlayerKilled(Kill kKillerVictimDetails)
        {
            if (!kKillerVictimDetails.IsSuicide || kKillerVictimDetails.DamageType != "DamageArea")
            {
                string killerName = kKillerVictimDetails.Killer.SoldierName;
                string victimName = kKillerVictimDetails.Victim.SoldierName;

                ELO killer = ELOList[killerName];
                ELO victim = ELOList[victimName];

                (float killer, float victim)diff = killer.Beat(victim);

                ConsoleWrite($"{killerName} ({(int)killer.Rating}) |{(diff.killer >= 0f ? "+" : "") + diff.killer}|".PadRight(40) +
                             $" [{kKillerVictimDetails.DamageType}] ".PadLeft(20) +
                             $"{victimName} ({(int)victim.Rating}) |{(diff.victim >= 0f ? "+" : "") + diff.victim}|".PadLeft(40));
            }
        }
        public IActionResult MAPost(MatchAdd matchToAdd)
        {
            if (matchToAdd.win == matchToAdd.lose || matchToAdd.win == null || matchToAdd.lose == null)
            {
                ViewBag.PostResultText = "Матч не добавлен! Участники заданы неверно.";
                ViewBag.PostResult     = "0";
                return(View());
            }
            int PONewRating = 0; int PTNewRating = 0;

            if (matchToAdd.time == new DateTime(1, 1, 1, 0, 0, 0))
            {
                matchToAdd.time = DateTime.Now;
            }
            Match newMatch = new Match {
                Time = matchToAdd.time, Comment = matchToAdd.comment + ""
            };
            MatchParticipant ParticipantOne = new MatchParticipant {
                player = Convert.ToString(matchToAdd.win), matchID = Convert.ToInt32(newMatch.Id), result = 1
            };
            MatchParticipant ParticipantTwo = new MatchParticipant {
                player = Convert.ToString(matchToAdd.lose), matchID = Convert.ToInt32(newMatch.Id), result = 0
            };

            PONewRating = _allPlayers.GetPlayerByAlias(matchToAdd.win).Rating;
            PTNewRating = _allPlayers.GetPlayerByAlias(matchToAdd.lose).Rating;
            ELO.CalculateELO(ref PONewRating, ref PTNewRating, 1);
            ELO.CalculateELO(ref PTNewRating, ref PONewRating, 0);
            //POne.Rating = PONewRating;
            //PTwo.Rating = PONewRating;
            _allPlayers.UpdateRating(PONewRating, matchToAdd.win);
            _allPlayers.UpdateRating(PTNewRating, matchToAdd.lose);
            PONewRating = 0; PTNewRating = 0;
            _AddMatch.AddMatch(matchToAdd, newMatch, ParticipantOne, ParticipantTwo);

            //ViewBag.AP = _allPlayers.AllPlayers
            PlayersListViewModel PListed = new PlayersListViewModel();

            PListed.GetAllPlayers  = _allPlayers.AllPlayers;
            ViewBag.PostResultText = "Матч добавлен!";
            ViewBag.PostResult     = "1";
            return(View());
        }