Esempio n. 1
0
    void OnRespRoomList(Message msg)
    {
        ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, false);


        msgRespRoomList resp = msgRespRoomList.deserialize(msg);

        //
        Room.Room.roomList.Clear();         //首先清空
        for (int i = 0; i < resp.roomList.Count; i++)
        {
            Room.RoomData rd;
            rd.isFull        = resp.roomList[i].isFull;
            rd.roomDes       = resp.roomList[i].roomDes;
            rd.roomId        = resp.roomList[i].roomId;
            rd.roomName      = resp.roomList[i].roomName;
            rd.roomPersonCnt = resp.roomList[i].roomPersonCnt;
            rd.roomPwd       = resp.roomList[i].roomPwd;
            rd.rule          = resp.roomList [i].rule;

            Room.Room.roomList.Add(rd);
        }

        //刷新界面,如果正在显示。一般这条消息是显示房间列表的时候再请求的,所以一般会正在显示。请求的时候加loading
        onEventShowRoomList(null);
    }
Esempio n. 2
0
        public async void Play(double from, double to, ViewManagerEvent <LottieAnimationView, Dictionary <string, bool> > completion)
        {
            if (!LottiePlayer.IsAnimatedVisualLoaded)
            {
                var d = Window.Current.Dispatcher;
                _ = Task.Delay(100).ContinueWith(t =>
                {
                    _ = d.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
                    {
                        Play(from, to, completion);
                    });
                });
                return;
            }

            _playback = LottiePlayer.PlayAsync(from, to, Loop).AsTask();

            await _playback;

            if (completion != null && _playback.IsCompleted)
            {
                completion.Invoke(this, new Dictionary <string, bool> {
                    { "isCancelled", _playback.IsCanceled || _playback.IsFaulted }
                });
            }
        }
Esempio n. 3
0
    void OnRespOpenTalentslot(Message msg)
    {
        ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, false);

        msgRespOpenTalentslot resp = msgRespOpenTalentslot.deserialize(msg);

        if (resp.result == msgRespOpenTalentslot.eOpenTalentslotResultType.OPEN_SUCCESS)
        {
            //开槽成功
            //refresh ui
            //CommonUtil.Util.showDialog ("温馨提示","开槽成功,当前槽数为:"+resp.currentOpenedCnt);

            Account.setUserGold(resp.currentGold);
            Account.setUserDiamond(resp.currentDiamond);

            LobbyEvent.s_C2V_UpdateTalentForOpenSlot utfos;
            utfos.gold             = resp.currentGold;
            utfos.diamond          = resp.currentDiamond;
            utfos.ret              = CommonDefine.eRespResultType.SUCCESS;
            utfos.currentTalentNum = resp.currentOpenedCnt;
            LobbyEvent.EM().InvokeEvent(LobbyEvent.EVENT.RESP_OPEN_TALENTSLOT, (object)utfos);
        }
        else if (resp.result == msgRespOpenTalentslot.eOpenTalentslotResultType.OPEN_FAIL_LESS_DIAMOND)
        {
            CommonUtil.Util.showDialog("温馨提示", "开槽失败,您的晶核不足,请充值");
        }
        else if (resp.result == msgRespOpenTalentslot.eOpenTalentslotResultType.OPEN_FAIL_LESS_GOLG)
        {
            CommonUtil.Util.showDialog("温馨提示", "开槽失败,您的金币不足,请充值");
        }
        else if (resp.result == msgRespOpenTalentslot.eOpenTalentslotResultType.OPEN_FAIL_MAX_SLOT)
        {
            CommonUtil.Util.showDialog("温馨提示", "您的天赋槽已全部打开!");
        }
    }
Esempio n. 4
0
    //以下消息类似
    void OnRespRankList(Message msg)
    {
        ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, false);

        //
        msgRespRankList rankList = msgRespRankList.deserialize(msg);

        //此条有较大问题,后续优化
        Lobby.Lobby.rankList.Clear();
        for (int i = 0; i < rankList.rankList.Count; i++)
        {
            LobbyEvent.Rank rk;
            rk.headUrl  = rankList.rankList[i].headUrl;
            rk.exp      = rankList.rankList[i].exp;
            rk.name     = rankList.rankList[i].name;
            rk.score    = rankList.rankList[i].score;
            rk.userID   = rankList.rankList[i].userID;
            rk.charm    = rankList.rankList [i].charm;
            rk.diamond  = rankList.rankList [i].diamond;
            rk.gold     = rankList.rankList [i].gold;
            rk.win_rate = rankList.rankList [i].win_rate;

            rk.rst.scope = (LobbyEvent.RankScopeType.RANK_SCOPE_TYPE)rankList.scope;
            rk.rst.type  = (LobbyEvent.RankScopeType.RANK_TYPE)rankList.type;

            Lobby.Lobby.rankList.Add(rk);
        }

        //由于这个消息的特殊性,可以不在此处刷新,需要的展示界面的时候再请求,刷新
        LobbyEvent.RankScopeType rst;
        rst.scope = LobbyEvent.RankScopeType.RANK_SCOPE_TYPE.RANK_AREA;
        rst.type  = LobbyEvent.RankScopeType.RANK_TYPE.RANK_GOLD;
        onEventShowRank((object)(rst));         //此为默认显示的榜单
    }
Esempio n. 5
0
    //服务器列表,以此显示服务器列表,供用户选择服务器
    void OnConnect(bool canLogin, Message msg)
    {
        if (!canLogin)
        {
            msgRespServerList resp = msgRespServerList.deserialize(msg);
            //选择服务器后需要调用,然后再去请求登陆到游戏(和自动选择模式相同)
            //ProtocolManager.getInstance().SelectServer(host,port);
        }
        else
        {
            //后续 自动登录
            //第一次需要点击登录按钮

            if (_autoLogin)
            {
                _autoLogin = false;

                //重新登陆
                NowAccount nc = Account.getNowAccount();
                loginServer(nc.userID, nc.openid, nc.pwd, nc.lastLoginType, nc.area);
            }
            else
            {
                ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, false);
            }
        }
    }
Esempio n. 6
0
    void OnRespCreateRoom(Message msg)
    {
        ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, false);

        msgRespCreateRoom resp = msgRespCreateRoom.deserialize(msg);

        if (resp.flag == 0)
        {
            CommonUtil.RoomRule     roomRule = CommonUtil.RoomRule.deserialize(resp.rule);
            RoomEvent.sV2C_JoinRoom data;

            data.playerNum = roomRule.playerNum;
            data.gridLevel = roomRule.gridLevel;
            data.plazaID   = 0;
            data.pwd       = resp.roomPassword;
            data.roomId    = resp.roomId;
            data.plazaName = "";
            data.tagId     = -1;

            onEventJoinRoom((object)data);
        }
        else
        {
            CommonUtil.Util.showDialog("系统提示", "创建房间失败,参数有误或不满足开房条件");
        }
    }
Esempio n. 7
0
    //三方登陆响应
    public void onThirdPartyLoginResult(object data)
    {
        AccountEvent.ThirdPartyLoginResult ret = (AccountEvent.ThirdPartyLoginResult)data;

        //设置nowaccount的 third
        Account.thirdOpenID = ret.openId;
        Account.thirdToken  = ret.token;

        //登陆
        msgLogin msg = new msgLogin();

        msg.userID      = 0;
        msg.area        = 1; //用户所选服务器
        msg.appVersion  = CommonUtil.Util.getAppVer();
        msg.channelID   = CommonUtil.Util.getChanelId();
        msg.deviceID    = SystemInfo.deviceUniqueIdentifier;
        msg.ipAddr      = 1111;
        msg.loginType   = (msgLogin.eLoginType)_loginType;
        msg.netWorkType = 1;
        msg.osVersion   = 10000;
        msg.password    = "******";

        //
        msg.openID     = ret.openId;
        msg.token      = ret.token;
        msg.nickName   = ret.name;
        msg.head       = ret.head;
        msg.sex        = ret.sex;
        msg.expireTime = ret.expireTime;
        //.. etc.
        ProtocolManager.getInstance().sendMsg(LobbyProtocol.P_LOBBY_REQ_LOGIN, msg, OnLoginSuccess);

        //显示加载,禁止点击
        ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, true);
    }
Esempio n. 8
0
 public static ViewManagerEvent EM()
 {
     if (_instance == null)
     {
         _instance = new ViewManagerEvent();
     }
     return(_instance);
 }
Esempio n. 9
0
 void OnGameStart(Message msg)
 {
     //
     ViewManagerEvent.sShowView data;
     data.fromView = ViewManagerEvent.VIEW_TYPE.LOBBY_VIEW;
     data.toView   = ViewManagerEvent.VIEW_TYPE.GAME_VIEW;
     ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_VIEW, (object)data);
 }
Esempio n. 10
0
 // Use this for initialization
 void Start()
 {
     //启动动画结束后,切换到帐号登陆界面
     ViewManagerEvent.sShowView data;
     data.fromView = ViewManagerEvent.VIEW_TYPE.START_VIEW;
     data.toView   = ViewManagerEvent.VIEW_TYPE.ACCOUNT_VIEW;
     ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_VIEW, (object)data);
 }
        /// <summary>
        /// Sends a command to another service
        /// </summary>
        /// <param name="command"></param>
        /// <param name="info"></param>
        /// <param name="source"></param>
        /// <param name="target"></param>
        public void RaiseUICommand(
            string command, string info, string source, string target)
        {
            var newUIargs = new StateMachineEventArgs(
                command, info, StateMachineEventType.Command, source, target);

            ViewManagerEvent?.Invoke(this, newUIargs);
        }
Esempio n. 12
0
    public void onConnectServer(object data)
    {
        bool selectServer = (bool)data;

        ProtocolManager.getInstance().Start(selectServer, OnError, OnDisconnect, OnConnect);       //此处只能调用一次,位置是在登陆界面显示的时候首次连接服务器

        ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, true);
    }
        /// <summary>
        /// Method to raise a view manager event for logging, etc
        /// </summary>
        /// <param name="name"></param>
        /// <param name="info"></param>
        /// <param name="eventType"></param>
        private void RaiseViewManagerEvent(string name, string info,
                                           StateMachineEventType eventType = StateMachineEventType.System)
        {
            var newVMargs = new StateMachineEventArgs(name,
                                                      $"View manager event: {info}", eventType, "View Manager");

            // Raise event only, if there are subscribers!
            ViewManagerEvent?.Invoke(this, newVMargs);
        }
Esempio n. 14
0
    public void onEventReqUpdateEmail(object data)
    {
        LobbyEvent.sV2C_ReqUpdateEmail re = (LobbyEvent.sV2C_ReqUpdateEmail)data;
        msgReqUpdateEmail msg             = new msgReqUpdateEmail();

        msg.type         = re.type;
        msg.awardEmailId = re.id;
        ProtocolManager.getInstance().sendMsg(LobbyProtocol.P_LOBBY_REQ_UPDATE_EMAIL, msg, OnRespUpdateEmail);

        ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, true);
    }
Esempio n. 15
0
    public void onEventReqFeedback(object data)
    {
        LobbyEvent.sV2C_Feedback fb  = (LobbyEvent.sV2C_Feedback)data;
        msgReqFeedback           msg = new msgReqFeedback();

        msg.type    = fb.type;
        msg.content = fb.content;
        ProtocolManager.getInstance().sendMsg(LobbyProtocol.P_LOBBY_REQ_FEEDBACK, msg, OnRespFeedback);

        ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, true);
    }
Esempio n. 16
0
        public static void showDialog(string title, string content)
        {
            ViewManagerEvent.s_ShowDialog d;
            d.callBack  = null;
            d.hasCancel = false;
            d.hasClose  = true;
            d.hasOk     = false;
            d.tip       = title;
            d.tip       = content;
            d.type      = CommonDefine.eDialogEventType.SIMPLE;

            ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_DIALOG, (object)d);
        }
Esempio n. 17
0
    void onError(object data)
    {
        ViewManagerEvent.s_ShowDialog d;
        d.callBack  = onClickDialogBtn;
        d.hasCancel = true;
        d.hasClose  = false;
        d.hasOk     = true;
        d.tip       = "系统提示";
        d.tip       = "您的网络存在异常,请检查网络设置~";
        d.type      = CommonDefine.eDialogEventType.NETWORK_ERROR;

        ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_DIALOG, (object)d);
    }
Esempio n. 18
0
    public void onEventReqOpenTalentslot(object data)
    {
        LobbyEvent.sV2C_OpenTalentslot ot = (LobbyEvent.sV2C_OpenTalentslot)data;

        //需要判断是否有足够的金币或者钻石开槽,避免多余的网络请求

        msgReqOpenTalentslot msg = new msgReqOpenTalentslot();

        msg.game   = GameType.GAME_LIANQI;
        msg.openBy = ot.type;
        ProtocolManager.getInstance().sendMsg(LobbyProtocol.P_LOBBY_REQ_OPENTALENTSLOT, msg, OnRespOpenTalentslot);

        ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, true);
    }
Esempio n. 19
0
    void OnRespLeaveRoom(Message msg)
    {
        msgRespLeaveRoom resp = msgRespLeaveRoom.deserialize(msg);

        if (resp.type == msgRespLeaveRoom.LEAVE_TYPE.LEAVE_CANT_LEAVE)
        {
            //不能离开,目前是游戏不能离开,此消息在游戏中的时候离开会收到
        }
        else if (resp.type == msgRespLeaveRoom.LEAVE_TYPE.LEAVE_ESCAPE)
        {
            //逃跑,目前不支持
        }
        else if (resp.type == msgRespLeaveRoom.LEAVE_TYPE.LEAVE_KICK)
        {
            //被t了,目前不支持
        }
        else if (resp.type == msgRespLeaveRoom.LEAVE_TYPE.LEAVE_NORMAL)
        {
            //正常离开,切到大厅界面
            if (Room.Room.roomType == CommonDefine.eCreateRoomType.ROOM_PLAZA ||
                Room.Room.roomType == CommonDefine.eCreateRoomType.ROOM_CLASSIC_PLAZA)
            {
                ViewManagerEvent.sShowView s;
                s.fromView = ViewManagerEvent.VIEW_TYPE.GAME_VIEW;
                s.toView   = ViewManagerEvent.VIEW_TYPE.LOBBY_VIEW;
                ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_VIEW, (object)s);
            }
            else
            {
                //此处为离开队伍或者离开房间,对于自己而言,这就是解散同样的处理
                RoomEvent.EM().InvokeEvent(RoomEvent.EVENT.UPDATE_DISSOLVE_ROOM, null);
            }
        }
        else if (resp.type == msgRespLeaveRoom.LEAVE_TYPE.LEAVE_NOT_IN_ROOM)
        {
            //不在房间中,直接切到大厅界面
            ViewManagerEvent.sShowView s;
            s.fromView = ViewManagerEvent.VIEW_TYPE.GAME_VIEW;
            s.toView   = ViewManagerEvent.VIEW_TYPE.LOBBY_VIEW;
            ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_VIEW, (object)s);
        }
        else if (resp.type == msgRespLeaveRoom.LEAVE_TYPE.LEAVE_DISSOLVE)
        {
            // 房间解散
            //切换面板
            RoomEvent.EM().InvokeEvent(RoomEvent.EVENT.UPDATE_DISSOLVE_ROOM, null);
        }

        Room.Room.reset();
    }
Esempio n. 20
0
    void onDisconnect(object data)
    {
        ViewManagerEvent.s_ShowDialog d;
        d.callBack  = onClickDialogBtn;
        d.hasCancel = true;
        d.hasClose  = false;
        d.hasOk     = true;
        d.tip       = "系统提示";
        d.tip       = "您已经与服务器断开连接,是否重连?";
        d.type      = CommonDefine.eDialogEventType.NETWORK_DISCONNECT;

        ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_DIALOG, (object)d);

        // 自动重连模式
    }
Esempio n. 21
0
    void OnRespFeedback(Message msg)
    {
        ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, false);

        msgReqFeedback resp = msgReqFeedback.deserialize(msg);

        if (resp.type == CommonDefine.eFeedbackType.DANMU)
        {
            //显示弹幕
        }
        else
        {
            CommonUtil.Util.showDialog("温馨提示", resp.content);
        }
    }
Esempio n. 22
0
    void onEventGetRoomList(object data)
    {
        SelfData self = Account.getSelfData();

        RoomEvent.sV2C_GetRoomList getRoom = (RoomEvent.sV2C_GetRoomList)data;

        msgReqRoomList rl = new msgReqRoomList();

        rl.areaID = self.area;

        //原则上来说,以后这两个数据需要传过来
        rl.begin  = getRoom.currentPage * getRoom.perCnt;
        rl.reqCnt = getRoom.perCnt;        //所有

        rl.game = GameType.GAME_LIANQI;
        ProtocolManager.getInstance().sendMsg(GameProtocol.P_GAME_REQ_ROOMLIST, rl, OnRespRoomList);

        ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, true);
    }
Esempio n. 23
0
    //------------------------------------以下是界面消息--------------------------------------------
    void onEventCreateRoom(object data)
    {
        RoomEvent.sV2C_CreateRoom roomData = (RoomEvent.sV2C_CreateRoom)data;

        msgReqCreateRoom cr = new msgReqCreateRoom();

        cr.game         = GameType.GAME_LIANQI;
        cr.roomType     = roomData.roomType;
        cr.baseScore    = roomData.baseScore;
        cr.minScore     = roomData.minScore;
        cr.maxScore     = roomData.maxScore;
        cr.roomName     = Account.getSelfData().name;
        cr.roomPassword = roomData.roomPassword;
        cr.rule         = roomData.rule;

        ProtocolManager.getInstance().sendMsg(GameProtocol.P_GAME_REQ_CREATEROOM, cr, OnRespCreateRoom);

        ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, true);
    }
Esempio n. 24
0
    // Use this for initialization
    void Start()
    {
        ViewManagerEvent.EM().AddEvent(ViewManagerEvent.EVENT.SHOW_VIEW, onShowView);
        ViewManagerEvent.EM().AddEvent(ViewManagerEvent.EVENT.SHOW_DIALOG, onShowDialog);
        ViewManagerEvent.EM().AddEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, onShowLoadingAni);
        ViewManagerEvent.EM().AddEvent(ViewManagerEvent.EVENT.SHOW_SCENE, onShowScene);

        initViewMap();
        hideAllView();

        if (!_isChangeScene)
        {
            showViewFromTo(ViewManagerEvent.VIEW_TYPE.NONE_VIEW, ViewManagerEvent.VIEW_TYPE.START_VIEW);
        }
        else
        {
            _isChangeScene = false;
            showViewFromTo(ViewManagerEvent.VIEW_TYPE.ACCOUNT_VIEW, ViewManagerEvent.VIEW_TYPE.LOBBY_VIEW);
        }
    }
Esempio n. 25
0
    void onEventLeaveRoom(object data)
    {
        bool mustLeave = (bool)data;

        if (mustLeave)
        {
            Room.Room.reset();

            ViewManagerEvent.sShowView s;
            s.fromView = ViewManagerEvent.VIEW_TYPE.GAME_VIEW;
            s.toView   = ViewManagerEvent.VIEW_TYPE.LOBBY_VIEW;
            ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_VIEW, (object)s);

            RoomEvent.EM().InvokeEvent(RoomEvent.EVENT.UPDATE_DISSOLVE_ROOM, null);
        }
        else
        {
            msgReqLeaveRoom lr = new msgReqLeaveRoom();
            lr.game = GameType.GAME_LIANQI;
            ProtocolManager.getInstance().sendMsg(GameProtocol.P_GAME_REQ_LEAVEROOM, lr, OnRespLeaveRoom);
        }
    }
Esempio n. 26
0
    void onEventJoinRoom(object data)
    {
        RoomEvent.sV2C_JoinRoom roomData = (RoomEvent.sV2C_JoinRoom)data;

        msgReqJoinRoom jr = new msgReqJoinRoom();

        jr.game      = GameType.GAME_LIANQI;
        jr.playerNum = roomData.playerNum;
        jr.gridLevel = roomData.gridLevel;
        jr.pwd       = roomData.pwd;     //非用户创建无密码
        jr.plazaID   = roomData.plazaID; //根据plazalist得到,界面也是根据plazalisy生成
        jr.roomId    = roomData.roomId;  //非用户创建房间填0,即通过各种模式直接进入游戏的

        //如果plazaid和roomid同时为0 则认为是经典快速开始模式
        if (roomData.plazaID == 0 && roomData.roomId == 0)
        {
            //需要从plazalist查找plazaid
            for (int i = 0; i < Lobby.Lobby.plazaList.Count; i++)
            {
                CommonUtil.RoomRule roomRule = CommonUtil.RoomRule.deserialize(Lobby.Lobby.plazaList[i].rule);

                if (Lobby.Lobby.plazaList[i].roomType == (int)CommonDefine.eCreateRoomType.ROOM_CLASSIC_PLAZA &&
                    roomRule.playerNum == roomData.playerNum &&
                    roomRule.gridLevel == roomData.gridLevel)
                {
                    jr.plazaID = Lobby.Lobby.plazaList[i].plazaid;
                    jr.roomId  = 0;
                }
            }
        }
        //保存下如果是场模式的信息
        Room.Room.setPlazaData(roomData.plazaName, roomData.tagId);

        ProtocolManager.getInstance().sendMsg(GameProtocol.P_GAME_REQ_JOINROOM, jr, OnRespJoinRoom);

        ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, true);
    }
Esempio n. 27
0
    private void loginServer(int userId, string openId, string pwd, NowAccount.eLoginType loginType, int area)
    {
        msgLogin msg = new msgLogin();

        msg.userID     = userId;
        msg.area       = area;  //用户所选服务器
        msg.appVersion = CommonUtil.Util.getAppVer();
        msg.channelID  = CommonUtil.Util.getChanelId();

        msg.deviceID    = SystemInfo.deviceUniqueIdentifier;
        msg.ipAddr      = 1111;
        msg.loginType   = (msgLogin.eLoginType)loginType;
        msg.netWorkType = 1;
        msg.osVersion   = 10000;
        msg.password    = pwd;

        //
        msg.openID = openId;
        //.. etc.
        ProtocolManager.getInstance().sendMsg(LobbyProtocol.P_LOBBY_REQ_LOGIN, msg, OnLoginSuccess);

        //显示加载,禁止点击
        ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, true);
    }
Esempio n. 28
0
    public void onEventShowRank(object data)
    {
        LobbyEvent.RankScopeType rst = (LobbyEvent.RankScopeType)data;
        rst.scope = LobbyEvent.RankScopeType.RANK_SCOPE_TYPE.RANK_AREA;
        rst.type  = LobbyEvent.RankScopeType.RANK_TYPE.RANK_GOLD;

        List <LobbyEvent.Rank> rankList = new List <LobbyEvent.Rank>();

        for (int i = 0; i < Lobby.Lobby.rankList.Count; i++)
        {
            if (rst.type == Lobby.Lobby.rankList [i].rst.type &&
                rst.scope == Lobby.Lobby.rankList [i].rst.scope)
            {
                rankList.Add(Lobby.Lobby.rankList [i]);
            }
        }

        if (rankList.Count == 0)
        {
            //说明还没有请求过,刷新一次

            msgReqRankList rank = new msgReqRankList();
            rank.game    = GameType.GAME_LIANQI;
            rank.areaID  = Account.getSelfData().area;
            rank.rankNum = 50;                                       // 只取前50
            rank.scope   = msgReqRankList.RANK_SCOPE_TYPE.RANK_AREA; //区排行
            rank.type    = msgReqRankList.RANK_TYPE.RANK_GOLD;       //财富排行
            ProtocolManager.getInstance().sendMsg(LobbyProtocol.P_LOBBY_REQ_RANK_LIST, rank, OnRespRankList);

            ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, true);
        }
        else
        {
            LobbyEvent.EM().InvokeEvent(LobbyEvent.EVENT.UPDATE_RANK, (object)(rankList));
        }
    }
Esempio n. 29
0
    public void onShowUpdateEmailResult(object data)
    {
        LobbyEvent.sV2C_ReqUpdateEmail re = (LobbyEvent.sV2C_ReqUpdateEmail)data;

        int index = -1;

        for (int i = 0; i < _emailList.Count; i++)
        {
            if (_emailList [i].getEmailID() == re.id)
            {
                index = i;
                break;
            }
        }
        if (index == -1)
        {
            return;
        }

        if (re.type == CommonDefine.eUpdateEmailType.READ)
        {
            //设置已读
            _emailList [index].updateHasRead();
        }
        else if (re.type == CommonDefine.eUpdateEmailType.DEL)
        {
            //删除
            Destroy(_emailList [index].gameObject);
            _emailList.RemoveAt(index);
            //需要刷新整个界面
            //将默认选择移动到第一个,设置当前选择
            updateDefaultSelect();
        }
        else if (re.type == CommonDefine.eUpdateEmailType.GET_AWARD)
        {
            //恭喜获得xx 提示
            ViewManagerEvent.s_ShowDialog d;
            d.callBack  = onClickDialogBtn;
            d.hasCancel = false;
            d.hasClose  = true;
            d.hasOk     = false;
            d.tip       = "温馨提示";
            CommonUtil.EmailContent content = _emailList [index].getContent();
            if (content.type == CommonUtil.EmailContent.AWARD_TYPE.GOLD)
            {
                d.tip = "恭喜获得" + content.awardCnt + "积分!祝您游戏愉快~";
            }
            else if (_emailList [index].getContent().type == CommonUtil.EmailContent.AWARD_TYPE.PROP)
            {
                d.tip = "恭喜获得永久皮肤" + "吃遍天下" + "!祝您游戏愉快~";
            }

            d.type = CommonDefine.eDialogEventType.LOBBY_EMAIL_GET_AWARD_RESULT;

            ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_DIALOG, (object)d);

            _emailList [index].getContent().hasGottenAward = true;
            //更新
            _awardBtn.interactable = false;
            Text txt = _awardBtn.GetComponentInChildren <Text> ();
            txt.text = "已领取";

            //all btn
            Invoke("checkIsGettingAllAward", 0.001f);
        }
        updateReadUnRead();
    }
Esempio n. 30
0
    void OnRespJoinRoom(Message msg)
    {
        ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, false);

        msgRespJoinRoom resp = msgRespJoinRoom.deserialize(msg);
        //此处需要根据各种响应值,来给出友好提示
        string tip = "加入房间失败";

        //RESP_JOINROOM_FLAG
        if (resp.flag == msgRespJoinRoom.RESP_JOINROOM_FLAG.JOINROOM_SUCCESS ||
            resp.flag == msgRespJoinRoom.RESP_JOINROOM_FLAG.JOINGROOM_ALREADY_IN_ROOM)
        {
            //规则应该一定不会为空的
            if (resp.rule == null || resp.rule.Length == 0)
            {
                //
                return;
            }

            if (resp.flag == msgRespJoinRoom.RESP_JOINROOM_FLAG.JOINGROOM_ALREADY_IN_ROOM)
            {
                //原则上此处可以直接进入房间,也可以是弹窗提示用户是否重新进入房间
                //
            }

            // 设置相关数据
            Room.Room.setRoomData(resp.roomId, resp.levelId, resp.plazaid, resp.roomType, resp.owner, resp.rule, resp.baseScore);
            Room.Room.isRelink = resp.isRelink;

            //这里需要判断是哪种类型的房间
            if (Room.Room.roomType == CommonDefine.eCreateRoomType.ROOM_ROOM)
            {
                msgNotifyEnterRoomFinish efmsg = new msgNotifyEnterRoomFinish();
                efmsg.isRelink = Room.Room.isRelink;
                ProtocolManager.getInstance().sendMsg(GameProtocol.P_GAME_ENTER_ROOM_FINISH, efmsg);


                if (!Room.Room.isRelink)
                {
                    //刷新房间规则显示
                    RoomEvent.sC2V_RoomRule rr;
                    rr.playerNum   = Room.Room.roomRule.playerNum;
                    rr.gameTime    = Room.Room.roomRule.gameTime;
                    rr.gridLevel   = Room.Room.roomRule.gridLevel;
                    rr.rule        = Room.Room.roomRule.rule;
                    rr.lmtRound    = Room.Room.roomRule.lmtRound;
                    rr.lmtTurnTime = Room.Room.roomRule.lmtTurnTime;
                    rr.roomLevel   = resp.levelId;
                    rr.roomID      = resp.roomId;
                    rr.plazaName   = Room.Room.plazaName;

                    if (Room.Room.plazaid != 0)
                    {
                        LobbyEvent.Plaza plaza = getPlazaById(Room.Room.plazaid);
                        rr.star = plaza.star;
                    }
                    else
                    {
                        rr.star = 0;
                    }

                    rr.tag  = Room.Room.tagId;
                    rr.type = Room.Room.roomType;

                    RoomEvent.EM().InvokeEvent(RoomEvent.EVENT.UPDATE_ROOMRULE, (object)rr);
                }
                else
                {
                    //////
                    ViewManagerEvent.sShowView data;
                    data.fromView = ViewManagerEvent.VIEW_TYPE.LOBBY_VIEW;
                    data.toView   = ViewManagerEvent.VIEW_TYPE.GAME_VIEW;
                    ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_VIEW, (object)data);
                }
            }
            else if (Room.Room.roomType == CommonDefine.eCreateRoomType.ROOM_TEAM)
            {
            }
            else
            {
                //另外需要显示房间规则相关的信息在房间某个位置
                //进入房间成功,切换到游戏场景,这里应为主动操作,不需要事件通知请访问GameController来切换
                //或者这里直接切换也行
                //也可以事件通知,为了统一起见
                ViewManagerEvent.sShowView data;
                data.fromView = ViewManagerEvent.VIEW_TYPE.LOBBY_VIEW;
                data.toView   = ViewManagerEvent.VIEW_TYPE.GAME_VIEW;
                ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_VIEW, (object)data);
            }

            //结束处理
            return;
        }
        else if (resp.flag == msgRespJoinRoom.RESP_JOINROOM_FLAG.JOINGROOM_FAIL_ROOM_NOT_EXIST)
        {
            tip = "房间不存在,请重试";
        }
        else if (resp.flag == msgRespJoinRoom.RESP_JOINROOM_FLAG.JOINROOM_ACCOUNT_ERR)
        {
            tip = "加入失败,用户异常";
        }
        else if (resp.flag == msgRespJoinRoom.RESP_JOINROOM_FLAG.JOINROOM_FAIL_NO_FREE_ROOM)
        {
            tip = "加入失败,没有可用的房间";
        }
        else if (resp.flag == msgRespJoinRoom.RESP_JOINROOM_FLAG.JOINROOM_FIAL_SYSERR)
        {
            tip = "加入失败,系统错误";
        }
        else if (resp.flag == msgRespJoinRoom.RESP_JOINROOM_FLAG.JOINROOM_GOLD_LESS)
        {
            tip = "加入失败,您的积分不足,请充值";
        }
        else if (resp.flag == msgRespJoinRoom.RESP_JOINROOM_FLAG.JOINROOM_GOLD_MORE)
        {
            tip = "加入失败,您太有钱了,请到其他模式游戏";
        }
        else if (resp.flag == msgRespJoinRoom.RESP_JOINROOM_FLAG.JOINROOM_LEVEL_LESS)
        {
            tip = "加入失败,您的级别太高了";
        }
        else if (resp.flag == msgRespJoinRoom.RESP_JOINROOM_FLAG.JOINROOM_LEVEL_MORE)
        {
            tip = "加入失败,您的级别太低了";
        }
        else if (resp.flag == msgRespJoinRoom.RESP_JOINROOM_FLAG.JOINROOM_PLAZA_ERR)
        {
            tip = "加入失败,参数错误";
        }
        else if (resp.flag == msgRespJoinRoom.RESP_JOINROOM_FLAG.JOINROOM_PWD_ERR)
        {
            tip = "加入失败,密码错误";
        }

        CommonUtil.Util.showDialog("系统提示", tip);
    }