Ejemplo n.º 1
0
        public void PickPlayer(ulong captainID, ulong pickedPlayerID, ulong pickedPlayer2ID = 0)
        {
            var player1 = RemainingPlayers.Where(p => p.DiscordID == pickedPlayerID).First();
            var player2 = RemainingPlayers.Where(p => p.DiscordID == pickedPlayer2ID).FirstOrDefault();

            if (captainID == Captain1.DiscordID)
            {
                Team1.Add(player1);
                RemainingPlayers.Remove(player1);

                if (player2 != null)
                {
                    Team1.Add(player2);
                    RemainingPlayers.Remove(player2);
                }

                PickTurn = 2;
            }
            else if (captainID == Captain2.DiscordID)
            {
                Team2.Add(player1);
                RemainingPlayers.Remove(player1);

                if (player2 != null)
                {
                    Team2.Add(player2);
                    RemainingPlayers.Remove(player2);
                }

                PickTurn = 1;
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Diese Methode ermittelt die besten zwei Spieler der Gruppen.
 /// Da die Gruppen immer mindestens drei Spieler haben, ist dies kein Problem.
 /// </summary>
 private void BestTwoPlayersRemain()
 {
     foreach (Group group in Groups)
     {
         RemainingPlayers.Add(group.Players[0]);
         RemainingPlayers.Add(group.Players[1]);
     }
     ShowRemainingPlayers();
 }
Ejemplo n.º 3
0
        private void FinishPlayerDeathRewind(Player player)
        {
            RemainingPlayers.Remove(player);

            EnablePlayer(player);

            ClearPlayerBuffer(player);

            CheckForRewindComplete();
        }
Ejemplo n.º 4
0
 public bool IsAvailablePlayer(ulong discordID)
 {
     if (RemainingPlayers.Select(p => p.DiscordID).Contains(discordID))
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
Ejemplo n.º 5
0
        public void PopQueue()
        {
            ChooseCaptains();
            ChooseMap();

            //Set remaining players.
            RemainingPlayers = Players.ToList();
            RemainingPlayers.Remove(Captain1);
            RemainingPlayers.Remove(Captain2);

            //Set pick turn and game state.
            PickTurn = 1;
            State    = LobbyState.PickingPlayers;
        }
Ejemplo n.º 6
0
        public bool IsFirstPick()
        {
            if (State != LobbyState.PickingPlayers)
            {
                return(false);
            }

            if (RemainingPlayers.Count() == ((Session.AppConfig.PlayersPerTeam * 2) - 2))
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Ejemplo n.º 7
0
        public void StartMatch()
        {
            var lastPlayer = RemainingPlayers.First();

            if (PickTurn == 1)
            {
                Team1.Add(lastPlayer);
            }
            else
            {
                Team2.Add(lastPlayer);
            }

            RemainingPlayers.Remove(lastPlayer);
            State = GameLobby.LobbyState.Reporting;
        }
Ejemplo n.º 8
0
        public RewindOperation(IEnumerable <Player> players, IEnumerable <Ghost> ghosts, Action onComplete)
        {
            _onComplete = onComplete;
            ParticipatingPlayers.AddRange(players);
            RemainingPlayers.AddRange(players);

            ParticipatingGhosts.AddRange(ghosts);
            RemainingGhosts.AddRange(ghosts);


            //Kill all projectiles
            var projectiles = Scene.Current.FindGameObjects <Projectile>();

            foreach (var item in projectiles)
            {
                item.DisposeLater();
            }

            //And remove all active status effects.
            foreach (var item in ParticipatingPlayers)
            {
                item.RemoveAllStatusEffects();
            }



            //Turn on replay for all players.
            foreach (var player in ParticipatingPlayers)
            {
                DisablePlayer(player);
                player.TimeBody.StartRewind(2, true, () =>
                {
                    FinishPlayerDeathRewind(player);
                });
            }


            //Turn on replay for all ghosts.
            foreach (var ghost in ParticipatingGhosts)
            {
                ghost.TimeBody.StartRewind(2, false, () =>
                {
                    FinishGhostDeathRewind(ghost);
                });
            }
        }