| | |
| | | using System.Collections;
|
| | | using System.Collections.Generic;
|
| | | using System.Linq;
|
| | | using TableConfig;
|
| | | using UnityEngine;
|
| | | using UnityEngine.UI;
|
| | |
|
| | |
| | | [SerializeField] GameObject xbResultObj;
|
| | | [SerializeField] Button lookRuneBtn;
|
| | | [SerializeField] GameObject maskObj;
|
| | | [SerializeField] GameObject toolXBShowObj;
|
| | | [SerializeField] Text toolNumText;
|
| | | [SerializeField] Image toolImg1;
|
| | | [SerializeField] Image toolImg2;
|
| | |
|
| | | [Header("控制寻宝转动圈数")]
|
| | | [SerializeField] int cycleTimes = 1;
|
| | |
| | | List<GameObject> xbResultObjlist = new List<GameObject>();
|
| | | List<CommonItemBaisc> xbResultItemBasiclist = new List<CommonItemBaisc>();
|
| | | HappyXBModel XBModel { get { return ModelCenter.Instance.GetModel<HappyXBModel>(); } }
|
| | |
|
| | | PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
|
| | | XBFuncSet funcSet;
|
| | | float coolTime = 3;
|
| | | protected override void BindController()
|
| | | {
|
| | | xbItemlist.Clear();
|
| | |
| | |
|
| | | protected override void OnPreOpen()
|
| | | {
|
| | | playerPack.RefreshItemCountAct += RefreshItemCount;
|
| | | XBModel.RefreshAgainXBAct += RefreshAgainXB;
|
| | | XBModel.RefreshRuneXBTimeAct += RefreshFreeTime;
|
| | | XBModel.RefreshXBTypeInfoAct += RefreshXBTypeInfo;
|
| | | XBModel.RefreshXBResultAct += RefreshXBResult;
|
| | | GlobalTimeEvent.Instance.secondEvent += RefreshSecond;
|
| | | getItemlist = XBModel.GetXBGetItemByID(2).Values.ToList();
|
| | | isHaveFreeTime = XBModel.IsHaveFreeXBTime(2);
|
| | | InitUI();
|
| | |
| | | XBModel.RefreshRuneXBTimeAct -= RefreshFreeTime;
|
| | | XBModel.RefreshXBResultAct -= RefreshXBResult;
|
| | | XBModel.RefreshXBTypeInfoAct -= RefreshXBTypeInfo;
|
| | | playerPack.RefreshItemCountAct -= RefreshItemCount;
|
| | | GlobalTimeEvent.Instance.secondEvent -= RefreshSecond;
|
| | | }
|
| | | protected override void OnAfterClose()
|
| | | {
|
| | |
|
| | | }
|
| | |
|
| | | private void RefreshSecond()
|
| | | {
|
| | | if (XBModel.isXBCoolTime)
|
| | | {
|
| | | coolTime -= 1;
|
| | | if (coolTime < 0)
|
| | | {
|
| | | XBModel.isXBCoolTime = false;
|
| | | ResetXBItemState();
|
| | | coolTime = 3;
|
| | | DebugEx.Log("请求超时服务端未回包");
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | coolTime = 3;
|
| | | }
|
| | | }
|
| | |
|
| | | private void InitUI()
|
| | |
| | | getXBItemParent.gameObject.SetActive(false);
|
| | | xbResultObj.SetActive(false);
|
| | | freeXbBtn.gameObject.SetActive(false);
|
| | | XBFuncSet funcSet = XBModel.GetXBFuncSet(2);
|
| | | funcSet = XBModel.GetXBFuncSet(2);
|
| | | if(funcSet != null)
|
| | | {
|
| | | xbBtnText.text = Language.Get("HappyXB101", funcSet.xbNums[0]);
|
| | |
| | | xbManyMoneyText.text = funcSet.xbPrices[1].ToString();
|
| | | xbOneMoney = funcSet.xbPrices[0];
|
| | | xbManyMoney = funcSet.xbPrices[1];
|
| | | ItemConfig itemConfig1 = ConfigManager.Instance.GetTemplate<ItemConfig>(funcSet.costToolIds[0]);
|
| | | ItemConfig itemConfig2 = ConfigManager.Instance.GetTemplate<ItemConfig>(funcSet.costToolIds[1]);
|
| | | if (itemConfig1 != null)
|
| | | {
|
| | | toolImg1.SetSprite(itemConfig1.IconKey);
|
| | | }
|
| | | if (itemConfig2 != null)
|
| | | {
|
| | | toolImg2.SetSprite(itemConfig2.IconKey);
|
| | | }
|
| | | }
|
| | |
|
| | | RefreshXBTypeInfo();
|
| | | RefreshXBTools();
|
| | | }
|
| | |
|
| | | private void RefreshFreeTime(float time)
|
| | |
| | | {
|
| | | freeXBTimeText.gameObject.SetActive(true);
|
| | | freeXBTimeText.text = Language.Get("HappyXB102", TimeUtility.SecondsToHMSCHSRetain((int)time));
|
| | | freeXbBtn.gameObject.SetActive(false);
|
| | | xbBtn.gameObject.SetActive(true);
|
| | | if (!XBModel.IsHaveOneXBTool(2))
|
| | | {
|
| | | freeXbBtn.gameObject.SetActive(false);
|
| | | xbBtn.gameObject.SetActive(true);
|
| | | }
|
| | | }
|
| | | }
|
| | | else
|
| | |
| | | freeXBTimeText.gameObject.SetActive(false);
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | private void RefreshItemCount(PackType type, int index, int id)
|
| | | {
|
| | | if (type != PackType.rptItem || !XBModel.CheckIsXBTool(id, 2)) return;
|
| | | RefreshXBTools();
|
| | | }
|
| | |
|
| | | public void RefreshXBTools()
|
| | | {
|
| | | if (XBModel.IsHaveOneXBTool(2))
|
| | | {
|
| | | freeXbBtn.gameObject.SetActive(true);
|
| | | xbBtn.gameObject.SetActive(false);
|
| | | }
|
| | | else
|
| | | {
|
| | | freeXbBtn.gameObject.SetActive(false);
|
| | | xbBtn.gameObject.SetActive(true);
|
| | |
|
| | | }
|
| | |
|
| | | int xbToolCnt = 0;
|
| | | if (XBModel.IsHaveManyXBTool(2, out xbToolCnt))
|
| | | {
|
| | | toolXBShowObj.SetActive(true);
|
| | | toolNumText.text = StringUtility.Contact("x", xbToolCnt);
|
| | | }
|
| | | else
|
| | | {
|
| | | toolXBShowObj.SetActive(false);
|
| | | }
|
| | | }
|
| | |
|
| | | private void RefreshAgainXB(HappXBTitle title, int xbType)
|
| | |
| | | {
|
| | | if (XBModel.CheckIsEmptyGrid(PackType.rptRunePack))
|
| | | {
|
| | | if (UIHelper.GetMoneyCnt(1) >= (ulong)xbManyMoney)
|
| | | int toolCnt = 0;
|
| | | if (XBModel.IsHaveManyXBTool(2, out toolCnt))
|
| | | {
|
| | | maskObj.SetActive(true);
|
| | | isXBMany = true;
|
| | | XBModel.SendXBQuest(2, 1, 0);
|
| | | int needToolCnt = funcSet.costToolNums[1] - toolCnt;
|
| | | int needMoney = needToolCnt * xbOneMoney;
|
| | | if (needToolCnt > 0)
|
| | | {
|
| | | ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("HappyXBCostTools", funcSet.costToolNums[1], needMoney, needToolCnt), (bool isOk) =>
|
| | | {
|
| | | if (isOk)
|
| | | {
|
| | | CheckXBManyLimit(needMoney);
|
| | | }
|
| | | return;
|
| | | });
|
| | | }
|
| | | else
|
| | | {
|
| | | CheckXBManyLimit(xbManyMoney);
|
| | | }
|
| | |
|
| | | }
|
| | | else
|
| | | {
|
| | | WindowCenter.Instance.Open<RechargeTipWin>();
|
| | | CheckXBManyLimit(xbManyMoney);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | private void CheckXBManyLimit(int needMoney)
|
| | | {
|
| | | if (UIHelper.GetMoneyCnt(1) >= (ulong)needMoney)
|
| | | {
|
| | | maskObj.SetActive(true);
|
| | | isXBMany = true;
|
| | | XBModel.SendXBQuest(2, 1, 0);
|
| | | }
|
| | | else
|
| | | {
|
| | | WindowCenter.Instance.Open<RechargeTipWin>();
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | {
|
| | | maskObj.SetActive(true);
|
| | | isXBMany = false;
|
| | | XBModel.SendXBQuest(2, 0, 1);
|
| | | if (XBModel.IsHaveFreeXB(2))
|
| | | {
|
| | | XBModel.SendXBQuest(2, 0, 1);
|
| | | }
|
| | | else if (XBModel.IsHaveOneXBTool(2))
|
| | | {
|
| | | XBModel.SendXBQuest(2, 0, 2);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | {
|
| | | if (index == xbResultItemBasiclist.Count - 1)
|
| | | {
|
| | | RestXBItemState();
|
| | | ResetXBItemState();
|
| | | WindowCenter.Instance.Open<HappyXBGetItemWin>();
|
| | | }
|
| | | }); ;
|
| | | if(xbResultItemBasiclist[index].itemConfig != null)
|
| | |
| | | }
|
| | | else
|
| | | {
|
| | | RestXBItemState();
|
| | | ResetXBItemState();
|
| | | WindowCenter.Instance.Open<HappyXBGetItemWin>();
|
| | | }
|
| | | }
|
| | | else
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | private void RestXBItemState()
|
| | | private void ResetXBItemState()
|
| | | {
|
| | | luckDesObj.SetActive(true);
|
| | | maskObj.SetActive(false);
|
| | |
| | | {
|
| | | xbItemlist[i].RefreshSelectIcon(0);
|
| | | }
|
| | |
|
| | | WindowCenter.Instance.Open<HappyXBGetItemWin>();
|
| | | }
|
| | | }
|
| | | }
|