using System; using UI.CommonGame; namespace GFGGame { public class BuyConfirmView : BaseWindow { private UI_BuyConfirmUI _ui; private int _itemId; private int _count;//本次购买次数 private int _buyTimes = 0;//已购次数 private Action _onSuccess; private int _times = 0; private int _maxTimes = 0; private string _message = ""; public override void Dispose() { base.Dispose(); } protected override void OnInit() { base.OnInit(); _ui = UI_BuyConfirmUI.Create(); this.viewCom = _ui.target; this.viewCom.Center(); this.modal = true; viewAnimationType = EnumViewAnimationType.ZOOM_CENTER; _ui.m_btnSure.onClick.Add(OnClickBtnSure); _ui.m_btnCancel.onClick.Add(OnClickBtnCancel); } public void SetParams(int itemId, int count, Action onSuccess, string message = "") { _itemId = itemId; _count = count; _onSuccess = onSuccess; _message = message; } protected override void OnShown() { base.OnShown(); UpdateView(); } private void UpdateView() { _buyTimes = 0; ItemExchangeCfgArray.Instance.GetMoneyIdAndNum(_itemId, _buyTimes, _buyTimes + _count, out int costId, out int coustNum, out int buyNum); ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(_itemId); ItemCfg costCfg = ItemCfgArray.Instance.GetCfg(costId); _ui.m_txtNeed.text = string.Format("是否花费{0}{1} 购买{2}{3}", coustNum, costCfg.name, buyNum, itemCfg.name); _ui.m_txtNum.text = ""; _maxTimes = ItemExchangeCfgArray.Instance.GetCfgs(_itemId)[0].maxLimit; if (_maxTimes != 0) { _ui.m_txtNum.text = string.Format("今日剩余购买次数{0}/{1}", _buyTimes, _maxTimes); } if (_message != "") { _ui.m_txtNum.text = _message; } } private async void OnClickBtnSure() { if ((_buyTimes + _count) <= 0 && _maxTimes != 0) { PromptController.Instance.ShowFloatTextPrompt("购买次数不足!"); return; } ItemExchangeCfgArray.Instance.GetMoneyIdAndNum(_itemId, _buyTimes, _buyTimes + _count, out int costId, out int coustNum, out int buyNum); if (ItemDataManager.GetItemNum(costId) < coustNum) { ItemCfg costCfg = ItemCfgArray.Instance.GetCfg(costId); if (_itemId == ConstItemID.GOLD) { PromptController.Instance.ShowFloatTextPrompt("鲛绡不足,请前往商城选购"); } else { Alert.Show(costCfg.name + "不足,是否前往购买?").SetLeftButton(true).SetRightButton(true, "确认", (AlertWindow.AlertCallback)((object data) => { int costNeedCount = coustNum - ItemDataManager.GetItemNum(costId); ItemExchangeCfg currencyRatioCfg = ItemUtil.GetCurrencyRatioCfgById(costId); BuyItemConteoller.Show(costId, (int)currencyRatioCfg.costId, (int)currencyRatioCfg.num, (int)currencyRatioCfg.costNum, costNeedCount, ConstBuyType.TYPE_ITEM, 0, null, true, true, GameConst.MAX_COUNT_TO_BUY_DIAMOND_RED); })); OnClickBtnCancel(); } return; } bool result = await ItemExchangeSProxy.ItemExchange(_itemId, _count); if (result) { PromptController.Instance.ShowFloatTextPrompt("购买成功!", MessageType.SUCCESS); if (_onSuccess != null) { _onSuccess(); } } this.Hide(); } private void OnClickBtnCancel() { this.Hide(); } } }