private void OnBuyComplete(GoodsRequestResult result, List <DrawCardData> list) { isClick = false; if (result == GoodsRequestResult.Success) { base.OnBuySuccess(); RefreshBoxCost(); RefreshUIData(); Global.gApp.gUiMgr.OpenPanel(Wndid.BoxOpenUI); var openUI = Global.gApp.gUiMgr.GetPanelCompent <BoxOpenUI>(Wndid.BoxOpenUI); int boxId = res.type_param; openUI.ShowOpenBox(boxId, list); if (res.type == 2 && costType == CurrencyType.KEY) { openUI.ShowOpenBtn(costType, (int)costPrice, OnBuyBtnClick); } } else if (result == GoodsRequestResult.DataFail_NotEnough) { if (costType == CurrencyType.DIAMOND) { Global.gApp.gUiMgr.OpenPanel(Wndid.NoDiamondUI); } } }
private void ClaimRewardEffect(GoodsRequestResult result, BigInteger rewardCount) { if (result == GoodsRequestResult.Success) { if (rewardCount > 0) { Global.gApp.gMsgDispatcher.Broadcast(MsgIds.ShowRewardGetEffect, GoodsType.GOLD, rewardCount.GetPropEffectValue(), rewardGoldTxt.transform.position); } TouchClose(); } else if (result == GoodsRequestResult.NetFail) { Global.gApp.gMsgDispatcher.Broadcast(MsgIds.ShowGameTipsByStr, "Active_Award_No_Network"); } isClick = false; canvasGroup.interactable = true; }
private void ClaimRewardEffect(GoodsRequestResult result, BigInteger rewardCount) { if (result == GoodsRequestResult.Success) { if (rewardCount > 0) { Global.gApp.gMsgDispatcher.Broadcast(MsgIds.ShowRewardGetEffect, GoodsType.GOLD, rewardCount.GetPropEffectValue(), rewardGoldTxt.transform.position); } RefreshState(); } else if (result == GoodsRequestResult.DataFail_NotEnough) { Global.gApp.gUiMgr.OpenPanel(Wndid.NoDiamondUI); } else if (result == GoodsRequestResult.NetFail) { Global.gApp.gMsgDispatcher.Broadcast(MsgIds.ShowGameTipsByStr, "Active_Award_No_Network"); } isClick = false; }
/// <summary> /// 请求消耗物品以添加物品 /// </summary> /// <param name="callback"></param> /// <param name="cost_goods_types"></param> /// <param name="cost_goods_counts"></param> /// <param name="cost_goods_params"></param> /// <param name="add_goods_types"></param> /// <param name="add_goods_counts"></param> /// <param name="add_goods_params"></param> public void RequestCostAddGameGoods(RequestCostAddGameGoodsCallback callback, int[] cost_goods_types, BigInteger[] cost_goods_counts, int[] cost_goods_params, int[] add_goods_types, BigInteger[] add_goods_counts, int[] add_goods_params) { List <GameGoodsCostResult> localCostResults = new List <GameGoodsCostResult>(); List <GameGoodsCostResult> netCostResults = new List <GameGoodsCostResult>(); for (int i = 0; i < cost_goods_types.Length; i++) { var costResult = CheckGoodsCostResult(cost_goods_types[i], cost_goods_counts[i], cost_goods_params[i]); if (costResult == null || costResult.requestType == GoodsRequestType.Undefine) { continue; } if (!costResult.canCost) { callback?.Invoke(GoodsRequestResult.DataFail_NotEnough, null, null, ((int)costResult.costGoods.type).ToString()); return; } switch (costResult.requestType) { case GoodsRequestType.Local: localCostResults.Add(costResult); break; case GoodsRequestType.Network: netCostResults.Add(costResult); break; default: break; } } List <GameGoodsAddResult> localAddResults = new List <GameGoodsAddResult>(); List <GameGoodsAddResult> netAddResults = new List <GameGoodsAddResult>(); for (int i = 0; i < add_goods_types.Length; i++) { GameGoodsAddResult addResult = CheckGoodsAddResult(add_goods_types[i], add_goods_counts[i], add_goods_params[i]); if (addResult == null || addResult.requestType == GoodsRequestType.Undefine) { continue; } switch (addResult.requestType) { case GoodsRequestType.Local: localAddResults.Add(addResult); break; case GoodsRequestType.Network: netAddResults.Add(addResult); break; default: break; } } if (netCostResults.Count <= 0 && netAddResults.Count <= 0) { List <GameGoodData> realAddGoods = new List <GameGoodData>(); HashSet <string> tips = new HashSet <string>(); MergeGoodsAddResult(localAddResults, realAddGoods, tips); AddGameGoods(realAddGoods); ApplyCostResults(localCostResults); callback?.Invoke(GoodsRequestResult.Success, realAddGoods, tips, null); } else { List <int> request_types = new List <int>(); List <int> request_counts = new List <int>(); List <int> request_params = new List <int>(); for (int i = 0; i < netCostResults.Count; i++) { var goods = netCostResults[i].costGoods; request_types.Add((int)goods.type); request_counts.Add(-(int)goods.count);//暂时使用强制转换 之后有大数字请求 需与服务器进行商讨确定 request_params.Add(goods.param); } for (int i = 0; i < netAddResults.Count; i++) { for (int j = 0; j < netAddResults[i].realAddGoods.Count; j++) { var goods = netAddResults[i].realAddGoods[j]; request_types.Add((int)goods.type); request_counts.Add((int)goods.count);//暂时使用强制转换 之后有大数字请求 需与服务器进行商讨确定 request_params.Add(goods.param); } } //打开联网遮罩 Global.gApp.gUiMgr.OpenPanel(Wndid.LoadingUI); ServerMgr.singleton.RequestAddDelResource(request_types.ToArray(), request_counts.ToArray(), request_params.ToArray(), (state) => { //关闭联网遮罩 Global.gApp.gUiMgr.ClosePanel(Wndid.LoadingUI); switch (state) { case ServerMgr.RequestCallbackState.Success: { ApplyCostResults(localCostResults); BroadcastCostResults(netCostResults); List <GameGoodData> realAddGoods = new List <GameGoodData>(); HashSet <string> tips = new HashSet <string>(); MergeGoodsAddResult(localAddResults, realAddGoods, tips); AddGameGoods(realAddGoods); //之后本地物品需要实际添加 MergeGoodsAddResult(netAddResults, realAddGoods, tips); callback?.Invoke(GoodsRequestResult.Success, realAddGoods, tips, null); } break; case ServerMgr.RequestCallbackState.DataFail: { GoodsRequestResult failResult = GoodsRequestResult.Undefine; string failDetail = null; for (int i = 0; i < cost_goods_types.Length; i++) { var costResult = CheckGoodsCostResult(cost_goods_types[i], cost_goods_counts[i], cost_goods_params[i]); if (costResult == null || costResult.requestType == GoodsRequestType.Undefine) { continue; } if (!costResult.canCost) { failResult = GoodsRequestResult.DataFail_NotEnough; failDetail = ((int)costResult.costGoods.type).ToString(); break; } } BroadcastCostResults(netCostResults); callback?.Invoke(failResult, null, null, failDetail); } break; case ServerMgr.RequestCallbackState.NetFail: { callback?.Invoke(GoodsRequestResult.NetFail, null, null, null); } break; default: { callback?.Invoke(GoodsRequestResult.Undefine, null, null, null); } break; } }); } }