Esempio n. 1
0
        public void EnterQueue() // Добавляет игрока в очередь
        {
            var name = ContextPlayerName;

            if (name == null)
            {
                return;
            }
            var user = PendingPlayers.FirstOrDefault(x => x.Name != name);

            if (user != null)
            {
                var session = new Session(hubContext, new Player()
                {
                    Name = name
                }, user);
                Sessions.Add(session);
                PendingPlayers.Remove(user);
            }
            else if (!PendingPlayers.Any(x => x.Name == name) && !Sessions.Any(x => x.Player1.Name == name || x.Player2.Name == name))
            {
                PendingPlayers.Add(new Player()
                {
                    Name = name
                });
            }
            else
            {
                return;
            }
        }
Esempio n. 2
0
        public void EscapeQueue()
        {
            var name      = ContextPlayerName;
            var escPlayer = PendingPlayers.FirstOrDefault(x => x.Name == name);

            if (escPlayer != null)
            {
                PendingPlayers.Remove(escPlayer);
            }
        }
        //this is called by the await recruitment gump when the player chooses to cancel waiting
        public virtual void RemovePlayer(Mobile from)
        {
            from.CloseGump(typeof(AwaitRecruitmentGump));
            from.CloseGump(typeof(SelectStyleGump));

            Players.Remove(from);
            PendingPlayers.Remove(from);

            if (Players.Count == 0)
            {
                State          = BoardGameState.Inactive;
                _SettingsReady = !_AllowPlayerConfiguration;
            }
        }