public GameCommon.mjSite GetNextSite(GameCommon.mjSite site)
        {
            log.log.trace(new System.Diagnostics.StackFrame(), service.timerservice.Tick, "begin GetNextSite");

            site++;
            if (peopleNum == (Int64)GameCommon.PeopleNum.TwoPeople)
            {
                if (site == GameCommon.mjSite.Three)
                {
                    site = GameCommon.mjSite.One;
                }
            }
            else if (peopleNum == (Int64)GameCommon.PeopleNum.ThreePeople)
            {
                if (site == GameCommon.mjSite.Four)
                {
                    site = GameCommon.mjSite.One;
                }
            }
            else if (peopleNum == (Int64)GameCommon.PeopleNum.FourPeople)
            {
                if (site == GameCommon.mjSite.End)
                {
                    site = GameCommon.mjSite.One;
                }
            }

            log.log.trace(new System.Diagnostics.StackFrame(), service.timerservice.Tick, "end GetNextSite");

            return(site);
        }
예제 #2
0
        public void read(Int64 room_id)
        {
            log.log.trace(new System.Diagnostics.StackFrame(), service.timerservice.Tick, "begin read");

            mj_huanghuang_table _table = server.tables.get_mj_huanghuang_table(room_id);

            if (_table.play_count < _table.times || _table.times < 0)
            {
                var client_uuid = hub.hub.gates.current_client_uuid;
                var _proxy      = _table.get_player_proxy(client_uuid);
                _proxy.state = GameCommon.mjPlayerstate.read;

                bool is_read           = true;
                GameCommon.mjSite site = GameCommon.mjSite.One;
                for (int i = 0; i < _table.peopleNum; i++)
                {
                    if (_table.site[(int)site].is_robot)
                    {
                        _table.site[(int)site].state = GameCommon.mjPlayerstate.read;
                    }

                    if (_table.site[(int)site].state != GameCommon.mjPlayerstate.read)
                    {
                        log.log.trace(new System.Diagnostics.StackFrame(), service.timerservice.Tick, "site:{0}", site);
                        is_read = false;
                        break;
                    }

                    site = _table.GetNextSite(site);
                }
                if (is_read)
                {
                    log.log.trace(new System.Diagnostics.StackFrame(), service.timerservice.Tick, "new game");
                    _table.begin_game();
                    _table.deal();
                }
                else
                {
                    _table.broadcast("mj_huanghuang", "read", _proxy.player_info["site"]);
                }
            }

            log.log.trace(new System.Diagnostics.StackFrame(), service.timerservice.Tick, "end read");
        }