Пример #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;
            }
        }
        protected virtual void OfferNewGame(Mobile from)
        {
            PendingPlayers.Add(from);

            State = BoardGameState.Pending;

            from.SendGump(new OfferNewGameGump(from, this, true));
        }
 protected virtual void OfferRecruiting(Mobile from)
 {
     if (PendingPlayers.IndexOf(from) == -1)
     {
         if (PendingPlayers.Count < CurrentMaxPlayers)
         {
             PendingPlayers.Add(from);
             from.SendGump(new OfferNewGameGump(from, this, false));
         }
         else
         {
             from.SendMessage("This game has enough players attempting to start a game.  Please try again later.");
         }
     }
     else
     {
         from.SendGump(new AwaitRecruitmentGump(from, this));
     }
 }