示例#1
0
    /// <summary>
    /// 获取游戏控制器
    /// </summary>
    /// <param name="type">游戏类型</param>
    /// <returns></returns>
    private IGameCtrl GetGameCtrl(GameType type)
    {
        IGameCtrl ret = null;

        switch (type)
        {
        case GameType.Majiang:
            ret = MaJiangGameCtrl.Instance;
            break;

        case GameType.Niuniu:
            ret = NiuNiuGameCtrl.Instance;
            break;

        case GameType.Paijiu:
            ret = PaiJiuGameCtrl.Instance;
            break;

        case GameType.PaoDeKuai:
            ret = PaoDeKuaiGameCtrl.Instance;
            break;

        case GameType.Zhajinhua:
            ret = ZhaJHGameCtrl.Instance;
            break;

        case GameType.Jigala:
            ret = JuYouGameCtrl.Instance;
            break;

        case GameType.Gupai:
            ret = GuPaiJiuGameCtrl.Instance;
            break;

        case GameType.GuanDan:
            ret = GuanDanGameCtrl.Instance;
            break;

        case GameType.Doudizhu:
            ret = DouDiZhuGameCtrl.Instance;
            break;

        case GameType.ShiSanShui:
            ret = ShiSanZhangGameCtrl.Instance;
            break;
        }

        return(ret);
    }
示例#2
0
    /// <summary>
    /// 连接服务器回调
    /// </summary>
    /// <param name="obj"></param>
    private void OnConnectedCallBack(bool isSuccess)
    {
        UIViewManager.Instance.CloseWait();
        if (isSuccess)
        {
            NetWorkSocket.Instance.GetSocket(SocketHandle).OnDisConnect = OnDisConnectCallBack; //断开连接事件
            NetWorkSocket.Instance.GetSocket(SocketHandle).OnReconnect  = OnReconnectCallBack;  //重新连接事件
            m_CurrentGameCtrl = GetGameCtrl(CurrentGameId);
            if (m_CurrentGameCtrl == null)
            {
                throw new NotSupportedException("没有此Id:" + CurrentGameId.ToString());
            }

            if (m_CurrentType == EnterRoomType.Create)
            {
                List <int> ids = new List <int>();
                List <cfg_settingEntity> lst = cfg_settingDBModel.Instance.GetOptionsByGameId(CurrentGameId);
                for (int i = 0; i < lst.Count; ++i)
                {
                    if (lst[i].status == 1 && lst[i].init == 1)
                    {
                        Debug.Log(lst[i].id);
                        ids.Add(lst[i].id);
                    }
                }
                m_CurrentGameCtrl.CreateRoom(m_nCurrentGroupId, ids);
            }
            else if (m_CurrentType == EnterRoomType.Join)
            {
                m_CurrentGameCtrl.JoinRoom(m_nCurrentJoinRoomId);
            }
            else
            {
                m_CurrentGameCtrl.RebuildRoom();
            }
        }
        else
        {
            if (m_CurrentType == EnterRoomType.Renter)
            {
                UIViewManager.Instance.ShowMessage("错误提示", "网络连接失败,请重新尝试", MessageViewType.Ok, RebuildRoom, null, 20f, AutoClickType.Ok);
            }
            else
            {
                UIViewManager.Instance.ShowMessage("错误提示", "网络连接失败", MessageViewType.Ok, ExitGame);
            }
        }
    }
示例#3
0
 /// <summary>
 /// 比赛开始
 /// </summary>
 /// <param name="gameId"></param>
 public void BeginMatch(int gameId)
 {
     m_CurrentGameCtrl = GetGameCtrl(gameId);
 }