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; } }
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; } }