コード例 #1
0
        private void ClearPUData()
        {
            _versionResult.ClearNotInvalidate();
            _billboardRead.ClearNotInvalidate();

            _pLoginResult.ClearAndInvalidate(Time.time);
        }
コード例 #2
0
        public void RequestTradeNo(string pname, int payChannel)
        {
            _tradeNoResult.ClearNotInvalidate();
            var msg = CmdUtil.HU.RequestTradeNo(pname, 1, null, payChannel, _configHolder.ClientVersion);

            _msgRepo.SendMsg(msg);
        }
コード例 #3
0
        public void CheckTrade(string tradeNo, string outTradeNo, string extra)
        {
            _checkTradeResult.ClearNotInvalidate();
            var msg = CmdUtil.HU.CheckTrade(tradeNo, outTradeNo, extra);

            _msgRepo.SendMsg(msg);
        }
コード例 #4
0
        protected override void DoHandle(StartRound msg)
        {
            var msgPlayingData = msg.playing_data;

            if (msgPlayingData != null)
            {
                _playingData.Write(msgPlayingData, Time.time);
            }

            var table = _currentTable.Read();

            if (table != null)
            {
                // 开局刷新一下局数和HostInfo。
                table.team1_host = msg.team1_host;
                table.team2_host = msg.team2_host;
                table.host_team  = msg.host_team;

                table.round_count = msg.round_count;

                // 刷新桌面用户的数据。这里已经更新了MyUser
                DataUtil.UpdateUserPublic(msg.user1, table.user1);
                DataUtil.UpdateUserPublic(msg.user2, table.user2);
                DataUtil.UpdateUserPublic(msg.user3, table.user3);
                DataUtil.UpdateUserPublic(msg.user4, table.user4);

                _myUser.Invalidate(Time.time);

                // 更新桌子数据。
                // 可以刷新游戏的状态。
                _currentTable.Invalidate(Time.time);

                // 重置打牌数据。
                var playingData = _playingData.Read();
                if (playingData == null)
                {
                    playingData = new PlayingData();
                    playingData.ResetAll();
                    playingData.period = TablePeriod.StartRound;
                    _playingData.Write(playingData, Time.time);
                }

                //清空团团转数据
                _ttzStartBroadcast.ClearAndInvalidate(0);

                // 开局的时候清空结算数据。
                _bRoundEnd.ClearNotInvalidate();
                _raceRoundEnd.ClearNotInvalidate();

                // 设置开局时间。
                _startRound.Write(msg, Time.time);

                //清空倒计时时间
                _bCounter.ClearAndInvalidate(0);
                _kickOutCounter.ClearAndInvalidate(0);
            }
        }
コード例 #5
0
        public void RemoveFriend(string username)
        {
            _removeFriendResultToSender.ClearNotInvalidate();
            _taskManager.ExecuteTask(CheckRemoveFriendResult, null);

            var msg = CmdUtil.CU.URemoveFriend(username);

            _msgRepo.SendMsg(msg);
        }
コード例 #6
0
        public override void BeforeShow()
        {
            PriceText.text          = "正在与服务器通信中...";
            ConfirmBtn.interactable = false;

            _actionPriceResult.ClearNotInvalidate();
            GetRemoteAPI().RequestActionPrice(ActionCode.ChangeSex);
            GetTaskManager().ExecuteTask(CheckActionPriceResult, null);
        }
コード例 #7
0
        public override void BeforeShow()
        {
            _nounList.Clear();
            if (!string.IsNullOrEmpty(Noun.text))
            {
                var nouns = Noun.text.Split('\n');
                if (nouns.Length > 0)
                {
                    for (int i = 0; i < nouns.Length; i++)
                    {
                        var noun = nouns[i];
                        _nounList.Add(noun.Trim());
                    }
                }
            }

            _adjectiveList.Clear();
            if (!string.IsNullOrEmpty(Adjective.text))
            {
                var adjs = Adjective.text.Split('\n');
                if (adjs.Length > 0)
                {
                    for (int i = 0; i < adjs.Length; i++)
                    {
                        var adj = adjs[i];
                        _adjectiveList.Add(adj.Trim());
                    }
                }
            }

            RandomOtherNickname();

            CostTip.text            = "正在与服务器通信中...";
            ConfirmBtn.interactable = false;

            _newNickname = null;
            _price       = null;

            _actionPriceResult.ClearNotInvalidate();
            GetRemoteAPI().RequestActionPrice(ActionCode.EditNickname);

            GetTaskManager().ExecuteTask(CheckActionPriceResult, null);
        }
コード例 #8
0
        public void OnHistoryRecordBtnClick()
        {
            var taskManager   = GetTaskManager();
            var dialogManager = GetDialogManager();

            dialogManager.ShowWaitingDialog(true);
            _historyRecordResult.ClearNotInvalidate();
            taskManager.ExecuteTask(CheckHistoryRecordResult, () => dialogManager.ShowWaitingDialog(false));
            GetHistoryRecordResult();
        }
コード例 #9
0
        public void DoChangeSex()
        {
            GetDialogManager().ShowWaitingDialog(true);

            _changeSexResult.ClearNotInvalidate();
            GetRemoteAPI().ChangeSex();

            GetTaskManager().ExecuteTask(
                CheckChangeSexResult,
                () => GetDialogManager().ShowWaitingDialog(false));
        }
コード例 #10
0
        public void Exchange(string exName, long count)
        {
            Waiting(true);

            _exchangeResult.ClearNotInvalidate();
            _taskManager.ExecuteTask(CheckExchangeResult, () => Waiting(false));

            var msg = CmdUtil.HU.RequestExchange(exName, count, null);

            _msgRepo.SendMsg(msg);
        }
コード例 #11
0
        /// <summary>
        /// 再来一局。
        /// </summary>
        public void Ready()
        {
            // 向服务器发送准备命令。
            _dialogManager.ShowWaitingDialog(true);
            _readyResult.ClearNotInvalidate();

            _remoteAPI.Ready();
            _taskManager.ExecuteTask(
                CheckReadyState,
                () => { _dialogManager.ShowWaitingDialog(false); });
        }
コード例 #12
0
        public void ChooseTable(long tableId)
        {
            Waiting(true);

            _chooseTableResult.ClearNotInvalidate();
            _taskManager.ExecuteTask(CheckChooseTableResult, () => Waiting(false));

            var msg = CmdUtil.GU.ChooseTable(tableId, PlayerType.Player);

            _msgRepo.SendMsg(msg);
        }
コード例 #13
0
        public void DoCheckin()
        {
            var remoteAPI     = GetRemoteAPI();
            var taskManager   = GetTaskManager();
            var dialogManager = GetDialogManager();

            dialogManager.ShowWaitingDialog(true);
            _checkinResult.ClearNotInvalidate();
            remoteAPI.Checkin();
            taskManager.ExecuteTask(CheckCheckinResult, () => dialogManager.ShowWaitingDialog(false));
        }
コード例 #14
0
        public void TraceUser(string username, bool confirmLeave)
        {
            _traceUserResult.ClearNotInvalidate();
            _taskManager.ExecuteTask(CheckTraceUserResult, null);
            var msg = CmdUtil.HU.TraceUser(username, confirmLeave);

            _msgRepo.SendMsg(msg);

            Waiting(true);

            _analyticManager.Event("trace_user");
        }
コード例 #15
0
        /// <summary>
        /// 清空当前应用的状态。
        /// </summary>
        public void ClearAppStateData()
        {
            _pLoginResult.ClearAndInvalidate(Time.time);
            _versionResult.ClearNotInvalidate();
            _billboardRead.ClearNotInvalidate();

            _hloginResult.ClearAndInvalidate(Time.time);
            _currentGameMode.Write(GameMode.Null, Time.time);
            _vipExchangeList.ClearNotInvalidate();
            _treasureChestData.ClearNotInvalidate();
            _friendListResult.ClearNotInvalidate();
        }
コード例 #16
0
        public void RequestFriendDetail(string username)
        {
            _friendDetailResult.ClearNotInvalidate();
            _taskManager.ExecuteTask(CheckFriendDetailResult, RequestFriendDetailTimeout);

            var msg = CmdUtil.CU.UFriendDetail(username);

            _msgRepo.SendMsg(msg);

            Waiting(true, 10);

            _analyticManager.Event("friend_list_show_detail");
        }
コード例 #17
0
        /// <summary>
        /// 领取奖励
        /// </summary>
        public void GetAward()
        {
            if (_data == null)
            {
                _dialogManager.ShowToast("数据发生错误无法领奖", 2, true);
                return;
            }

            _dialogManager.ShowWaitingDialog(true);
            _getUserTaskAwardResult.ClearNotInvalidate();
            _remoteApi.GetUserTaskAward(_data.task_code);
            _taskManager.ExecuteTask(CheckGetUserTaskAwardResult, () => _dialogManager.ShowWaitingDialog(false), 5f);
        }
コード例 #18
0
        public void DoResetWinRate()
        {
            GetDialogManager().ShowWaitingDialog(true);

            _resetWinRateResult.ClearNotInvalidate();
            GetRemoteAPI().ResetWinRate();

            GetTaskManager().ExecuteTask(
                CheckResetWinRateResult,
                () => GetDialogManager().ShowWaitingDialog(false));

            GetAnalyticManager().Event("reset_winrate_dialog_apply");
        }
コード例 #19
0
        public void LeaveRoom(bool confirmLeave)
        {
            Waiting(true);

            _leaveRoomResult.ClearNotInvalidate();
            _taskManager.ExecuteTask(
                CheckLeaveRoomResult,
                () => Waiting(false));

            var msg = CmdUtil.HU.LeaveRoom(confirmLeave);

            _msgRepo.SendMsg(msg);
        }
コード例 #20
0
        public void RequestExchangeYuanBao(string yuanBaoItemName)
        {
            Waiting(true);
            _exchangeYuanBaoResult.ClearNotInvalidate();

            var msg = CmdUtil.HU.RequestExchangeYuanBao(yuanBaoItemName);

            _msgRepo.SendMsg(msg);
            _taskManager.ExecuteTask(CheckExchangeYuanBaoResult, () => Waiting(false));

            var attrs = new Dictionary <string, string>();

            attrs.Add("item", yuanBaoItemName);
            _analyticManager.Event("yuanbao_request_exchange", attrs);
        }
コード例 #21
0
        public void LeaveTable(bool force)
        {
            Waiting(true);

            // 直接退出桌子。
            _leaveTableResult.ClearNotInvalidate();
            _taskManager.ExecuteTask(
                CheckLeaveTableResult,
                () => Waiting(false));

            // 向服务器发送一个离桌的消息。
            var msg = CmdUtil.GU.LeaveTable(force);

            _msgRepo.SendMsg(msg);
        }
コード例 #22
0
ファイル: RaceItem.cs プロジェクト: jsrhtc/Dmm_GoldIGDClient
        public void OnRuleBtnClicked()
        {
            _dialogManager.RequestDialog <RaceIntroduceDialog>(
                DialogName.RaceIntroduceDialog,
                () =>
            {
                _raceDescriptionResult.ClearNotInvalidate();
                GetRaceDescriptionResult();
            },
                () =>
            {
                var data = _raceDescriptionResult.Read();
                if (data == null)
                {
                    return(null);
                }

                if (data.result == RaceDescriptionResult.Ok)
                {
                    return(TaskResult.Success());
                }
                else
                {
                    return(TaskResult.Fail(data.result, data.error));
                }
            },
                () =>
            {
                _dialogManager.ShowDialog <RaceIntroduceDialog>(DialogName.RaceIntroduceDialog, false, false,
                                                                (dialog) =>
                {
                    dialog.Apply(_data, _raceDescriptionResult.Read());
                    dialog.Show();
                });
            },
                (errCode, errMsg) =>
            {
                if (!string.IsNullOrEmpty(errMsg))
                {
                    _dialogManager.ShowToast(errMsg, 3, true);
                }
                else
                {
                    _dialogManager.ShowToast("获取比赛信息失败", 3, true);
                }
            }
                );
        }
コード例 #23
0
        /// <summary>
        /// 执行选房操作
        /// </summary>
        /// <param name="roomId"></param>
        public void ChooseRoom(int roomId)
        {
            // 显示等待对话框。
            Waiting(true);

            _chooseRoomResult.ClearNotInvalidate();
            _chooseRoomFail.ClearNotInvalidate();
            _taskManager.ExecuteTask(
                CheckChooseRoomResult,
                () => Waiting(false));

            // 发送选房的命令。
            var msg = CmdUtil.HU.ChooseRoom(roomId, 0);

            _msgRepo.SendMsg(msg);
        }
コード例 #24
0
        public void FindFriend(string username)
        {
            if (string.IsNullOrEmpty(username))
            {
                return;
            }

            _searchUserResult.ClearNotInvalidate();
            _taskManager.ExecuteTask(CheckSearchUserResult, SearchUserTimeout);

            Waiting(true);

            var msg = CmdUtil.CU.SearchUser(username);

            _msgRepo.SendMsg(msg);
        }
コード例 #25
0
        public void OnCommitProblemBtnClick()
        {
            var dialogManager = GetDialogManager();
            var contactInfo   = ContactInfoTxt.text;

            if (CommitProblemType == ProblemType.None)
            {
                dialogManager.ShowConfirmBox("请选择反馈问题的类型");
                return;
            }
            if (string.IsNullOrEmpty(contactInfo))
            {
                dialogManager.ShowConfirmBox("请输入您的联系方式");
                return;
            }
            if (contactInfo.Length != PhoneNumLenght)
            {
                dialogManager.ShowConfirmBox("请输入正确的联系方式");
                return;
            }
            try
            {
                var phoneNum = long.Parse(contactInfo);
            }
            catch (Exception e)
            {
                dialogManager.ShowConfirmBox("请输入正确的联系方式");
                return;
            }

            var description = DescriptionTxt.text;

            if (string.IsNullOrEmpty(description))
            {
                dialogManager.ShowConfirmBox("请输入您的问题描述");
                return;
            }

            var taskManager = GetTaskManager();

            dialogManager.ShowWaitingDialog(true);
            _commitIssueResult.ClearNotInvalidate();
            taskManager.ExecuteTask(CheckCommitIssueResult, () => dialogManager.ShowWaitingDialog(false));
            GetIssueCommitResult(contactInfo, ((int)CommitProblemType), description);
        }
コード例 #26
0
        public void OnCommitReportBtnClick()
        {
            var dialogManager = GetDialogManager();
            var contactInfo   = ContactInfoTxt.text;
            var badPlayer     = _data;

            if (badPlayer == null)
            {
                dialogManager.ShowToast("举报玩家失败", 2, true);
                return;
            }

            var description = DescriptionTxt.text;
            var taskManager = GetTaskManager();

            dialogManager.ShowWaitingDialog(true);
            _reportResult.ClearNotInvalidate();
            taskManager.ExecuteTask(CheckCommitReportResult, () => dialogManager.ShowWaitingDialog(false));
            GetReportCommitResult(badPlayer, contactInfo, ((int)CommitReportType), description);
        }
コード例 #27
0
        private bool LoginWechat(IAppContext context, float time)
        {
            MyLog.DebugWithFrame(Tag, "Start wechat login gate server.");

            _isServerVerifyWechatSucc = false;
            _wechatAuthResultContainer.ClearNotInvalidate();
            _wechatLoginResultContainer.ClearNotInvalidate();

            var openId = LoginRecord.GetOpenId();

            if (!string.IsNullOrEmpty(openId))
            {
                DoWechatLogin(context, openId);
            }
            else
            {
                GetAuthCode(context);
            }
            return(true);
        }
コード例 #28
0
        private void NotifyDoShare()
        {
            if (_currentNotifyDoShare == null)
            {
                if (_finishCallBack != null)
                {
                    _finishCallBack();
                }
                return;
            }

            MyLog.InfoWithFrame("WechatShareSeq",
                                "FirstNotifyDoShare _currentNotifyDoShare.type == " + _currentNotifyDoShare.type +
                                "user_task_code == " + _currentNotifyDoShare.user_task_code + "_currentNotifyDoShare.id =" +
                                _currentNotifyDoShare.id);
            _notifyDoShareResult.ClearNotInvalidate();
            _remoteAPI.NotifyDoShare(_currentNotifyDoShare.id, _currentNotifyDoShare.type,
                                     _currentNotifyDoShare.user_task_code,
                                     _currentNotifyDoShare.award_code, _currentNotifyDoShare.share_source);
        }
コード例 #29
0
        public void RequestExchangeVip(VipExchange data)
        {
            if (data == null)
            {
                return;
            }

            Waiting(true);

            _lastVipExchangeRequest = data;

            _requestExchangeVipResult.ClearNotInvalidate();
            _taskManager.ExecuteTask(CheckExchangeVipResult, () => Waiting(false));

            var msg = CmdUtil.HU.RequestExchangeVip(data.name);

            _msgRepo.SendMsg(msg);

            _analyticManager.Event("exchange_vip");
        }
コード例 #30
0
        protected override void DoHandle(LeaveTableResult msg)
        {
            if (msg == null)
            {
                return;
            }

            _leaveTableResult.Write(msg, Time.time);

            if (msg.result == ResultCode.OK)
            {
                // 离桌成功,则清空选桌数据。
                _chooseTableResult.ClearAndInvalidate(Time.time);

                // 离桌成功,清空开局和结算数据。
                _startRound.ClearAndInvalidate(0);
                _roundEnd.ClearNotInvalidate();
                _raceRoundEnd.ClearNotInvalidate();
            }

            // 离桌不成功,则什么都不做。
            _chooseTableResult.Invalidate(Time.time);

            if (msg.result == ResultCode.LEAVE_WILL_PUNISH)
            {
                var room = _currentRoom.Read();

                _dialogManager.ShowDialog <PunishTipDialog>(DialogName.PunishTipDialog, false, false,
                                                            (dialog) =>
                {
                    dialog.ApplyData(
                        room,
                        "依然退出",
                        () => _remoteAPI.LeaveTable(true)
                        );
                    dialog.Show();
                });
            }
        }