/// <summary> /// 使用道具 /// </summary> /// <param name="title">抬头</param> /// <param name="itemId">物品Id</param> /// <param name="okDel">确认回调</param> /// <param name="cancelDel">取消回调</param> /// <param name="belowDel">超过最小设置数量</param> /// <param name="overDel">超过背包中道具存量</param> /// <param name="okStr">确认按钮文字</param> /// <param name="cancelStr">取消按钮文字</param> /// <param name="leftUseTimes">剩余使用次数</param> /// <param name="setNum">是否可以设置使用数量,默认不可设置道具使用数量</param> /// <param name="useDianjuan">是否可使用元宝兑换,默认可以使用元宝兑换道具</param> public void ShowUseItemWindow(string title, uint itemId, OkDelegate okDel, Action cancelDel, Action belowDel = null, Action overDel = null, string okStr = "使用", string cancelStr = "取消", int leftUseTimes = -1, bool setNum = false, bool canUseDianjuan = false) { UseItemWidnowParam param = new UseItemWidnowParam { title = title, itemId = itemId, ok = okDel , cancel = cancelDel, belowMinCount = belowDel , overMaxCount = overDel, oktxt = okStr , canletxt = cancelStr, LeftUseTimes = leftUseTimes , canSetNum = setNum, canUseDianjuan = canUseDianjuan }; DataManager.Manager <UIPanelManager>().ShowPanel(PanelID.CommonUseItemPanel, panelShowAction: (pb) => { if (null != pb && pb is CommonUseItemPanel) { CommonUseItemPanel panel = pb as CommonUseItemPanel; panel.Init(param); } }); }
public void Init(UseItemWidnowParam param) { this.title = param.title; this.itemId = param.itemId; this.ok = param.ok; this.cancel = param.cancel; this.belowMinCount = param.belowMinCount; this.overMaxCount = param.overMaxCount; this.oktxt = param.oktxt; this.canletxt = param.canletxt; this.leftUseTimes = param.LeftUseTimes; this.canSetNum = param.canSetNum; this.canUseDianjuan = param.canUseDianjuan; //初始为默认状态 num = 1; useDianJuan = false; SetZidongbuzuFalse(); this.baseItem = new BaseItem(this.itemId); if (baseItem == null) { return; } itemCount = DataManager.Manager <ItemManager>().GetItemNumByBaseId(this.itemId); //道具存量 dianjuanCount = MainPlayerHelper.GetMoneyNumByType(ClientMoneyType.YuanBao); //元宝存量 PointConsumeDataBase pcDb = GameTableManager.Instance.GetTableItem <PointConsumeDataBase>(this.itemId); if (pcDb != null) { itemPerCostDianjuan = pcDb.buyPrice; //每个道具要几个元宝来换 } else { Engine.Utility.Log.Info("元宝代消耗表格无数据"); } //初始化item InitItem(); m_label_TitleLabel.text = this.title; m_label_Name.text = baseItem.Name; m_label_Description.text = baseItem.Des; m_btn_Btn_Use.GetComponentInChildren <UILabel>().text = this.oktxt; m_btn_Btn_Canel.GetComponentInChildren <UILabel>().text = this.canletxt; m_label_UnitNum.text = num.ToString(); //每日使用次数限制 if (this.leftUseTimes == -1) //-1 无使用次数限制 { m_trans_Times.gameObject.SetActive(false); this.availableNum = itemCount; } else { m_trans_Times.gameObject.SetActive(true); this.availableNum = Mathf.Min(this.leftUseTimes, itemCount); if (this.leftUseTimes == 0) { m_label_TimesNum.color = Color.red; } if (this.leftUseTimes > 0) { m_label_TimesNum.color = Color.green; } m_label_TimesNum.text = string.Format("{0}/{1}", this.leftUseTimes, baseItem.DailyUseNum); } //设置-+功能 if (this.canSetNum) { m_btn_Btn_Less.gameObject.SetActive(true); m_btn_Btn_Add.gameObject.SetActive(true); } else { m_btn_Btn_Less.gameObject.SetActive(false); m_btn_Btn_Add.gameObject.SetActive(false); } //使用元宝功能 if (this.canUseDianjuan) { m_trans_buzu.gameObject.SetActive(true); } else { m_trans_buzu.gameObject.SetActive(false); m_trans_UseCost.gameObject.SetActive(false); } }