Example #1
0
        public short CalculateEarnedHonor(CharacterFighter character)
        {
            if (Draw)
            {
                return(0);
            }

            if (character.OpposedTeam.AlignmentSide == AlignmentSideEnum.ALIGNMENT_NEUTRAL)
            {
                return(0);
            }

            var winnersLevel   = (double)Winners.GetAllFightersWithLeavers <CharacterFighter>().Sum(entry => entry.Level);
            var losersLevel    = (double)Losers.GetAllFightersWithLeavers <CharacterFighter>().Sum(entry => entry.Level);
            var maxLosersLevel = winnersLevel + 15;

            var delta = Math.Floor(Math.Sqrt(character.Level) * 10 * ((losersLevel > maxLosersLevel ? maxLosersLevel : losersLevel) / winnersLevel));

            if (Losers == character.Team)
            {
                delta = -delta;
            }

            return((short)delta);
        }
Example #2
0
 /// <summary>
 /// Nachdem ein Loser nochmal verliert scheidet er aus dem Turnier aus
 /// </summary>
 /// <param name="losers"></param>
 public void EliminateLosingPlayers(List <Player> losers)
 {
     foreach (Player loser in losers)
     {
         Losers.Remove(loser);
     }
 }
Example #3
0
        public void PopulateLosers()
        {
            IEXHandler        webHandler    = new IEXHandler();
            List <StockStats> losersListRes = webHandler.Losers();
            String            losersData    = JsonConvert.SerializeObject(losersListRes);
            List <StockStats> losersList    = null;

            if (losersData != "")
            {
                var settings = new JsonSerializerSettings
                {
                    NullValueHandling     = NullValueHandling.Ignore,
                    MissingMemberHandling = MissingMemberHandling.Ignore
                };
                losersList = JsonConvert.DeserializeObject <List <StockStats> >(losersData, settings);
            }

            foreach (StockStats loser in losersList)
            {
                //Database will give PK constraint violation error when trying to insert record with existing PK.
                //So add company only if it doesnt exist, check existence using symbol (PK)
                if (dbContext.Losers.Where(c => c.symbol.Equals(loser.symbol)).Count() == 0)
                {
                    Losers loserData = new Losers(loser.symbol, loser.companyName, loser.primaryExchange, loser.sector);
                    dbContext.Losers.Add(loserData);
                }
            }
            dbContext.SaveChanges();
        }
Example #4
0
 private void GetLosersCallback(IEnumerable <Stock> losers)
 {
     Losers.Clear();
     foreach (Stock stock in losers)
     {
         Losers.Add(stock);
     }
 }
Example #5
0
 protected override void CreateSummary()
 {
     if (Winners == null || !Winners.Any() || Losers == null || !Losers.Any())
     {
         Summary = "Game Ended.";
     }
     else
     {
         Summary = String.Format("Game ended: {0} wins against {1}.", Winners.First(), Losers.First());
     }
 }
Example #6
0
        public static void MostLosingCoach(List <SuperBowlWinner> SuperBowlWinners, StreamWriter Writer)
        {
            // using linq to get the coach who lost the most games.
            var MostLosses = (
                from i in SuperBowlWinners
                group i by i.CoachLoser into Losers
                where Losers.Count() > 2
                orderby Losers.Count() descending
                select Losers).Take(1);

            foreach (var e in MostLosses)
            {
                Writer.WriteLine("The Coach who lost the most super bowls is {0}.", e.Key);

                Writer.WriteLine();
            }
        }
Example #7
0
        public void ParseData()
        {
            LosersList       = new List <User>();
            SettledUsersList = new List <User>();

            if (Losers != null)
            {
                var loserIds = Losers.Split(' ');
                parseToList(loserIds, LosersList);
            }

            if (SettledUsers != null)
            {
                var settledIds = SettledUsers.Split(' ');
                parseToList(settledIds, SettledUsersList);
            }
        }
Example #8
0
        public override void Stop()
        {
            Program.MainForm.LogDebug("Stopping." + Environment.StackTrace);
            End?.Stop();
            End = null;

            List <Character> Winners;
            List <Character> Losers;

            if (SnowballMap.GetWinner() == SnowballEventState.MAPLE_WIN)
            {
                Winners = MapleTeam.ToList();
                Losers  = StoryTeam.ToList();
            }
            else
            {
                Winners = StoryTeam.ToList();
                Losers  = MapleTeam.ToList();
            }

            _log.Info("Total players: " + (Winners.Count + Losers.Count));
            _log.Info("Winners: " + string.Join(", ", Winners.Select(x => x.Name)));
            _log.Info("Losers: " + string.Join(", ", Losers.Select(x => x.Name)));

            Winners.ForEach(c =>
            {
                MapPacket.MapEffect(c, 4, "Coconut/Victory", true);
                MapPacket.MapEffect(c, 3, "event/coconut/victory", true);
            });
            Losers.ForEach(c =>
            {
                MapPacket.MapEffect(c, 4, "Coconut/Failed", true);
                MapPacket.MapEffect(c, 3, "event/coconut/lose", true);
            });

            RepeatingAction.Start("snowball warper", e =>
            {
                Winners.ForEach(c => c.ChangeMap(WinMapId));
                Losers.ForEach(c => c.ChangeMap(LoseMapId));
                SnowballMap.TimerEndTime = MasterThread.CurrentTime;
                MapleTeam.Clear();
                StoryTeam.Clear();
                SnowballMap.Reset();
                base.Stop();
            }, 10 * 1000, 0);
        }
Example #9
0
        private void ManageIrregularGroup()
        {
            var nativeChallengers    = new List <Challenger>(_challengers);
            var remainingChallengers = FetchRemainigChallengers(ref nativeChallengers);

            var tempGroup = new Group(nativeChallengers, this.GroupLabel, Shuffle, 1);

            tempGroup.ManageRegularGroup();

            var challengersFromRoundOne = tempGroup._challengers;

            Matches.AddRange(tempGroup.Matches);
            Losers.AddRange(tempGroup.Losers);

            nativeChallengers = Enumerable.Concat(remainingChallengers, challengersFromRoundOne).ToList();
            _challengers      = nativeChallengers;
            ManageRegularGroup();
        }
Example #10
0
        private void ManageRegularGroup()
        {
            if (_challengers.Count == 1)
            {
                Winner = _challengers.First();
            }

            //Looping through the challengers until they are one. (the "winner")
            while (_challengers.Count != 1)
            {
                //looping through the Challengers list taking every two challengers, putting them in a match and
                //remove them from the '_challengers' list then add the winner to the '_challengersTemp' list.
                for (int i = 0; i < _challengers.Count; i += 2)
                {
                    //create an object from the Match that will contain the player in the index 'i' with the player in the index 'i+1'.
                    Match match = new Match(_challengers[i], _challengers[i + 1]);
                    Matches.Add(new MatchRecord(_challengers[i], _challengers[i + 1], this));
                    //Starting the match which will end up with a winner and a loser.
                    match.Start();
                    //Adding the winner to the '_challengersTemp' List.
                    _challengersTemp.Add(match.Winner);
                    //Adding the loser to the 'Losers' List.
                    Losers.Add(match.Loser);
                }

                //moving items from challengersTemp to challengers and clean challengers temp in order to set the path for another round
                HelperMethods.MoveItems(_challengersTemp, ref _challengers, true);

                CurrentRound++;
                OnCurrentRoundLeveledUp(this, null);

                if (_exit)
                {
                    return;
                }
            }

            Winner = _challengers.First();
        }
Example #11
0
 /// <summary>
 /// Verschiebt die Spieler vom Winning Bracket in das Loser Bracket
 /// </summary>
 /// <param name="losers"></param>
 public void MoveLosingPlayers(List <Player> losers)
 {
     // Bei der ersten Loser Runde werden einfach alle Spieler in eine Liste getan
     if (FirstLosers)
     {
         foreach (Player loser in losers)
         {
             Winners.Remove(loser);
             Losers.Add(loser);
         }
         FirstLosers = false;
     }
     // Bei den nachfolgenden Runden müssen die Verlierer vom Winning Bracket gegen gezielte Gegner aus dem Loser Bracket spielen
     else
     {
         int counterIndex = 0;
         foreach (Player loser in losers)
         {
             Winners.Remove(loser);
             Losers.Insert(counterIndex, loser);
             counterIndex += 2;
         }
     }
 }
Example #12
0
        public bool GameLoop()
        {
            foreach (var player in Players)
            {
                if (player.Pos.InCellCenter())
                {
                    var direction = SendTick(player);
                    if (direction != null)
                    {
                        player.ChangeDirection(direction.Value);
                    }
                }
            }

            foreach (var player in Players)
            {
                player.Move();
            }

            var playerToCaptured = new Dictionary <Player, HashSet <V> >();

            foreach (var player in Players)
            {
                player.RemoveSawBonus();
                if (player.Pos.InCellCenter())
                {
                    player.UpdateLines();
                    var captured = player.Territory.Capture(player.Lines);
                    playerToCaptured[player] = captured;
                    if (captured.Count > 0)
                    {
                        player.Lines.Clear();
                        player.TickScore += Env.NEUTRAL_TERRITORY_SCORE * captured.Count;
                    }
                }
            }

            foreach (var player in Players)
            {
                if (CheckLoss(player))
                {
                    Losers.Add(player);
                }
            }

            playerToCaptured = CollisionResolution(playerToCaptured);

            foreach (var player in Players)
            {
                if (player.IsAte(playerToCaptured))
                {
                    Losers.Add(player);
                }
            }

            foreach (var player in Players)
            {
                if (player.Pos.InCellCenter())
                {
                    if (!playerToCaptured.TryGetValue(player, out var captured))
                    {
                        captured = new HashSet <V>();
                    }

                    player.TickAction();

                    foreach (var bonus in Bonuses.ToList())
                    {
                        if (bonus.IsAte(player, captured))
                        {
                            bonus.Apply(player);
                            Bonuses.Remove(bonus);

                            if (bonus is Saw)
                            {
                                var line = player.GetDirectionLine();
                                foreach (var p in Players)
                                {
                                    if (p != player)
                                    {
                                        if (line.Any(point => p.Pos.IntersectsWith(point)))
                                        {
                                            Losers.Add(p);
                                            player.TickScore += Env.SAW_KILL_SCORE;
                                        }
                                        else
                                        {
                                            var removed = p.Territory.Split(line, player.Dir ?? throw new InvalidOperationException(), p);
                                            if (removed.Count > 0)
                                            {
                                                player.TickScore += Env.SAW_SCORE;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    if (captured.Count > 0)
                    {
                        player.Territory.Points.UnionWith(captured);
                        foreach (var p in Players)
                        {
                            if (p != player)
                            {
                                var removed = p.Territory.RemovePoints(captured);
                                player.TickScore += (Env.ENEMY_TERRITORY_SCORE - Env.NEUTRAL_TERRITORY_SCORE) * removed.Count;
                            }
                        }
                    }
                }
            }

            foreach (var loser in Losers)
            {
                Players.Remove(loser);
            }

            foreach (var player in Players)
            {
                player.Score    += player.TickScore;
                player.TickScore = 0;
            }

            GenerateBonus();

            Tick++;
            return(Players.Count == 0);
        }
 /// <summary>
 /// Combines the losers from the whole tournament into one collection
 /// </summary>
 /// <param name="finalMatch"></param>
 private void AddLosers(Match finalMatch)
 {
     Losers.AddRange(Group1.Losers);
     Losers.AddRange(Group2.Losers);
     Losers.Add(finalMatch.Loser);
 }
Example #14
0
 public void Lose(Player player)
 {
     Losers.Add(player);
     _ = Players.Remove(player);
     CurrentTurn.CurrentStep.GameEvents.Enqueue(new LoseEvent(new Player(player)));
 }