예제 #1
0
        /// <summary>
        /// again, descriptive name
        /// Ensures that AllPlayers variable contains the same number of players as parser.Players does
        /// </summary>
        private void ensureParserState()
        {
            //Add missing players to AllPlayers
            foreach (var curItem in parser.Players)
            {
                if (!AllPlayers.Select(p => p.AssociatedPlayer).Contains(curItem))
                {
                    if (DamageParser.IsBlacklistedUsername(curItem.Name))
                    {
                        continue;
                    }
                    AllPlayers.Add(new AllPlayersTabPlayerVM(parent, curItem));
                }
            }

            if (parent.IsZanverseSplit)
            {
                if (zanversePlayerVM == null && parser.ZanversePlayer != null) //can be null if zanverse is hidden
                {
                    zanversePlayerVM = new AllPlayersTabPlayerVM(parent, parser.ZanversePlayer);
                    AllPlayers.Add(zanversePlayerVM);
                }
            }
            else if (zanversePlayerVM != null)
            {
                if (AllPlayers.Contains(zanversePlayerVM))
                {
                    AllPlayers.Remove(zanversePlayerVM);
                }
                zanversePlayerVM = null;
            }
        }
 private void OnEntityLost(MEntity entity, bool wasNatural)
 {
     if (entity.IsPlayer())
     {
         var player = (FFAPlayerBehaviour)entity.GetBehaviour(typeof(FFAPlayerBehaviour).FullName);
         AllPlayers.Remove(player);
     }
 }
예제 #3
0
        public void Remove_ShouldRemovePlayerFromPlayersList()
        {
            // Given
            var allPlayers = new AllPlayers();

            var player1 = new Player("Player1");

            allPlayers.Add(player1);

            var player2 = new Player("Player2");

            allPlayers.Add(player2);

            // When
            allPlayers.Remove(player1);

            // Then
            var players = allPlayers.GetAll();

            Assert.That(players, Has.Exactly(1).EqualTo(player2));
            Assert.That(players.Count, Is.EqualTo(1));
        }
예제 #4
0
        private void SwitchSelect(object obj)
        {
            IEnumerable args = obj as IEnumerable;
            List <PlayerCollectionItem> switchPlayers = new List <PlayerCollectionItem>(args.OfType <PlayerCollectionItem>());

            if (!switchPlayers.Any())
            {
                return;
            }

            if (PlayersInAlias.Contains(switchPlayers[0]))
            {
                int index = PlayersInAlias.IndexOf(switchPlayers[0]);

                switchPlayers.ForEach(player =>
                {
                    PlayersInAlias.Remove(player);
                    AllPlayers.Add(player);
                    player.LinkedAliases.Add(newAlias);
                });

                SelectedPlayersSelectdIndex = index + 1 > PlayersInAlias.Count ? 0 : index;
            }
            else
            {
                int index = AllPlayers.IndexOf(switchPlayers[0]);

                switchPlayers.ForEach(player =>
                {
                    PlayersInAlias.Add(player);
                    AllPlayers.Remove(player);
                    player.LinkedAliases.Remove(newAlias);
                });

                AllPlayersSelectdIndex = index + 1 > AllPlayers.Count ? 0 : index;
            }
        }
예제 #5
0
 public virtual void Execute(Player player)
 {
     _allPlayers.Remove(player);
 }
예제 #6
0
 public void LeaveSession(string nickName)
 {
     AllPlayers.Remove(nickName);
 }