コード例 #1
0
ファイル: GameManager.cs プロジェクト: kolyan1981by/monop
        public static void LeaveGame(Game g, string uname)
        {
            if (g.IsFinished) return;

            var p = g.GetPlayer(uname);

            if (p == null) return;

            if (g.Players.Count > 2)
            {
                foreach (var cell in g.Map.CellsByUser(p.Id))
                {
                    cell.Owner = null;
                    cell.HousesCount = 0;
                }
                g.Tlog("Game.LeaveGame.PlayerLeaveGame", "@p{0} покинул игру", "@p{0} leave Game ", p.Id);
                //g.Players.Remove(p);
                p.Deleted = true;
                g.pcount--;
                g.OnLeave(p.Name, false);

            }
            else
                if (g.Players.Count == 2)
                {
                    g.Winner = g.Players.First(x => x.Id != p.Id);
                    g.Tlog("Game.LeaveGame.PlayerIsWinner", "@p{0} ПОБЕДИТЕЛЬ", "@p{0} is WINNER ", g.Winner.Id);
                    g.SetState(GameState.FinishGame);
                    g.OnLeave(p.Name, false);
                    g.OnLeave(g.Winner.Name, true);

                }
        }