| | |
| | | [SerializeField] Text xbScoreText;
|
| | | [SerializeField] Text freeXBTimeText;
|
| | | [SerializeField] float scaleTime = 0.2f;
|
| | | [Header("有寻宝道具")]
|
| | | [SerializeField] GameObject container_XBTool;
|
| | | [SerializeField] Text haveToolText;
|
| | | [SerializeField] Button makeUseToolBtn;
|
| | | [SerializeField] GameObject selectUseToolImg;
|
| | | [Header("消耗金钱或道具")]
|
| | | [SerializeField] GameObject costMoneyObj;
|
| | | [SerializeField] GameObject costToolObj;
|
| | | [SerializeField] GameObject costManyMoneyObj;
|
| | | [SerializeField] GameObject costManyToolObj;
|
| | | [SerializeField] Text costToolNumText;
|
| | | [SerializeField] Text costToolManyText;
|
| | |
|
| | | HappyXBModel XBModel { get { return ModelCenter.Instance.GetModel<HappyXBModel>(); } }
|
| | | PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
|
| | |
| | | }
|
| | |
|
| | | bool isHaveFreeTime = false;
|
| | | int xbOneMoney = 0;
|
| | | int xbManyMoney = 0;
|
| | | List<GameObject> GetItemlist = new List<GameObject>();
|
| | | List<XBGetItemCell> getItemBasiclist = new List<XBGetItemCell>();
|
| | | List<XBGetItem> xbItemlist;
|
| | | int oneMoney = 0;
|
| | | int manyMoney = 0;
|
| | | bool isHaveXBTool = false;
|
| | | bool isCostToolMany = false;
|
| | | protected override void BindController()
|
| | | {
|
| | |
|
| | |
| | | backBtn.AddListener(ClickBackBtn);
|
| | | xbBtn.AddListener(ClickXBBtn);
|
| | | xbManyBtn.AddListener(ClickXBManyBtn);
|
| | | makeUseToolBtn.AddListener(ClickMakeUseTool);
|
| | | }
|
| | |
|
| | | protected override void OnPreOpen()
|
| | |
| | |
|
| | | protected override void OnAfterOpen()
|
| | | {
|
| | | |
| | | CheckHaveXBTool();
|
| | | UpdateCostType();
|
| | | }
|
| | |
|
| | | protected override void OnPreClose()
|
| | |
| | | private void InitUI()
|
| | | {
|
| | | CreateGetItem();
|
| | | XBFuncSet funcSet = XBModel.GetXBFuncSet((int)XBModel.title);
|
| | | if (funcSet != null)
|
| | | {
|
| | | xbBtnText.text = Language.Get("HappyXB103", funcSet.xbNums[0]);
|
| | | xbManyBtnText.text = Language.Get("HappyXB103", funcSet.xbNums[1]);
|
| | | xbMoneyText.text = funcSet.xbPrices[0].ToString();
|
| | | xbManyMoneyText.text = funcSet.xbPrices[1].ToString();
|
| | | xbOneMoney = funcSet.xbPrices[0];
|
| | | xbManyMoney = funcSet.xbPrices[1];
|
| | | }
|
| | | else
|
| | | {
|
| | | xbOneMoney = 0;
|
| | | xbManyMoney = 0;
|
| | | }
|
| | |
|
| | | xbScoreText.text = XBModel.addXBScore.ToString();
|
| | |
|
| | | for(int i = 0; i < xbItemlist.Count; i++)
|
| | | {
|
| | | int count = playerPack.GetItemCountByID(PackType.rptTreasure,xbItemlist[i].itemId);
|
| | | if(count > 0)
|
| | | {
|
| | | XBModel.RefreshXBWarehouse();
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | private void ClickMakeUseTool()
|
| | | {
|
| | | bool isToolXB = !selectUseToolImg.activeInHierarchy;
|
| | | selectUseToolImg.SetActive(isToolXB);
|
| | | XBModel.SetUseToolXB(isToolXB);
|
| | | UpdateCostType();
|
| | | }
|
| | |
|
| | | private void CheckHaveXBTool()
|
| | | {
|
| | | int xbToolCnt = 0;
|
| | | int needToolCnt = 0;
|
| | | isHaveXBTool = XBModel.IsHaveManyXBTool((int)XBModel.title, out xbToolCnt, out needToolCnt);
|
| | | isCostToolMany = xbToolCnt >= needToolCnt;
|
| | | container_XBTool.SetActive(isHaveXBTool);
|
| | | selectUseToolImg.SetActive(XBModel.IsUseToolXB());
|
| | | haveToolText.text = StringUtility.Contact("x",xbToolCnt);
|
| | | }
|
| | |
|
| | | private void UpdateCostType()
|
| | | {
|
| | | bool isToolXB = selectUseToolImg.activeInHierarchy;
|
| | | costMoneyObj.SetActive(!isHaveXBTool || !isToolXB);
|
| | | costToolObj.SetActive(isHaveXBTool && isToolXB);
|
| | | costManyMoneyObj.SetActive(!isCostToolMany || !isToolXB);
|
| | | costManyToolObj.SetActive(isCostToolMany && isToolXB);
|
| | | XBFuncSet funcSet = XBModel.GetXBFuncSet((int)XBModel.title); |
| | | if (funcSet != null)
|
| | | {
|
| | | oneMoney = funcSet.xbPrices[0];
|
| | | manyMoney = funcSet.xbPrices[1];
|
| | | if (isHaveXBTool && isToolXB)
|
| | | {
|
| | | xbBtnText.text = Language.Get("HappyXB103", funcSet.xbNums[0]);
|
| | | costToolNumText.text = StringUtility.Contact("消耗", funcSet.costToolNums[0], "个");
|
| | | }
|
| | | else
|
| | | {
|
| | | xbBtnText.text = Language.Get("HappyXB103", funcSet.xbNums[0]);
|
| | | xbMoneyText.text = oneMoney.ToString();
|
| | | |
| | | }
|
| | |
|
| | | if(isCostToolMany && isToolXB)
|
| | | {
|
| | | xbManyBtnText.text = Language.Get("HappyXB103", funcSet.xbNums[1]);
|
| | | costToolManyText.text = StringUtility.Contact("消耗", funcSet.costToolNums[1], "个"); ;
|
| | | }
|
| | | else
|
| | | {
|
| | | xbManyBtnText.text = Language.Get("HappyXB103", funcSet.xbNums[1]);
|
| | | xbManyMoneyText.text = manyMoney.ToString();
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | |
|
| | | private void ClickXBBtn()
|
| | | {
|
| | | switch (XBModel.title)
|
| | | {
|
| | | case HappXBTitle.Best:
|
| | | XBModel.SendOneXBQuest(PackType.rptTreasure, 1);
|
| | | break;
|
| | | case HappXBTitle.Rune:
|
| | | XBModel.SendOneXBQuest(PackType.rptTreasure, 2);
|
| | | break;
|
| | | }
|
| | | |
| | | SendXBQuest(0);
|
| | | }
|
| | |
|
| | | private void ClickXBManyBtn()
|
| | | {
|
| | | switch (XBModel.title)
|
| | | SendXBQuest(1);
|
| | | }
|
| | |
|
| | | public int GetCostType(int xbNum)
|
| | | {
|
| | | if(xbNum == 0)
|
| | | {
|
| | | case HappXBTitle.Best:
|
| | | XBModel.SendXBManyQuest(PackType.rptTreasure, 1);
|
| | | break;
|
| | | case HappXBTitle.Rune:
|
| | | XBModel.SendXBManyQuest(PackType.rptTreasure, 2);
|
| | | break;
|
| | | bool isFreeXB = isHaveFreeTime && XBModel.IsHaveFreeXB((int)XBModel.title);
|
| | | if (isFreeXB) return 1;
|
| | | if (costMoneyObj.activeInHierarchy) return 0;
|
| | | }
|
| | | else
|
| | | {
|
| | | if (costManyMoneyObj.activeInHierarchy) return 0;
|
| | | }
|
| | |
|
| | | return 2;
|
| | | }
|
| | |
|
| | | public void SendXBQuest(int xbNum)
|
| | | {
|
| | | if (!XBModel.CheckIsEmptyGrid(PackType.rptTreasure)) return;
|
| | |
|
| | | int costType = GetCostType(xbNum);
|
| | | bool isMoneyEnough = true;
|
| | | if (xbNum == 0)
|
| | | {
|
| | | isMoneyEnough = UIHelper.GetMoneyCnt(1) >= (ulong)oneMoney;
|
| | | }
|
| | | else
|
| | | {
|
| | | isMoneyEnough = UIHelper.GetMoneyCnt(1) >= (ulong)manyMoney;
|
| | | }
|
| | |
|
| | | if (isMoneyEnough)
|
| | | {
|
| | | switch (XBModel.title)
|
| | | {
|
| | | case HappXBTitle.Best:
|
| | | XBModel.SendXBQuest(1, xbNum, costType);
|
| | | break;
|
| | | case HappXBTitle.Rune:
|
| | | XBModel.SendXBQuest(2, xbNum, costType);
|
| | | break;
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | WindowCenter.Instance.Open<RechargeTipWin>();
|
| | | }
|
| | | |
| | | }
|
| | |
|
| | | private void OnStartXB(int oneOrMany)
|