using System.Collections.Generic; using FairyGUI; using UI.CommonGame; using UI.Studio; namespace GFGGame { public class StudioBuyNumView : BaseWindow { private UI_StudioBuyNumUI _ui; private int _chapterId; private StudioData _studioData; private StudioCfg _studioCfg; private int _index; private const int BUY_TYPE_0 = 0; private const int BUY_TYPE_1 = 1; public override void Dispose() { base.Dispose(); } protected override void OnInit() { base.OnInit(); _ui = UI_StudioBuyNumUI.Create(); this.viewCom = _ui.target; this.viewCom.Center(); this.modal = true; viewAnimationType = EnumViewAnimationType.ZOOM_CENTER; _ui.m_btnExchange.onClick.Add(() => { OnClickBtnBuy(BUY_TYPE_0); }); _ui.m_btnExchange.onClick.Add(() => { OnClickBtnBuy(BUY_TYPE_1); }); EventAgent.AddEventListener(ConstMessage.BUY_STUDIO_PLAY_TIMES, () => { PromptController.Instance.ShowFloatTextPrompt("购买成功"); UpdateView(); if (_studioData.BuyTimes == _studioCfg.buyNum) { PromptController.Instance.ShowFloatTextPrompt("今日购买次数已达上限"); this.Hide(); } }); } protected override void OnShown() { base.OnShown(); UpdateView(); } private void UpdateView() { _chapterId = (int)this.viewData; _studioData = StudioDataManager.Instance.GetStudioDataById(_chapterId); _studioCfg = StudioCfgArray.Instance.GetCfg(_chapterId); _ui.m_txtNum.text = string.Format("(今天已兑换{0}/{1}次)", _studioData.BuyTimes, _studioCfg.buyNum); ItemCfg cfg1 = ItemCfgArray.Instance.GetCfg(_studioCfg.itemID); UI_ComCostCurrency comCostCurrency = UI_ComCostCurrency.Proxy(_ui.m_comCostItem); comCostCurrency.m_txtNeed.text = _studioCfg.itemNum.ToString(); comCostCurrency.m_loaIcon.url = ResPathUtil.GetCommonGameResPath(cfg1.res); ItemCfg cfg2 = ItemCfgArray.Instance.GetCfg(_studioCfg.moneyId); UI_ComCostCurrency comCostCurrency2 = UI_ComCostCurrency.Proxy(_ui.m_comCostCurrent); StudioCfgArray.Instance.GetMoneyIdAndNum(_studioCfg.id, _studioData.BuyTimes, 1, out int moneyId, out int moneyNum); comCostCurrency2.m_txtNeed.text = moneyNum.ToString(); comCostCurrency2.m_loaIcon.url = ResPathUtil.GetCommonGameResPath(cfg2.res); } protected override void OnHide() { base.OnHide(); } private void OnClickBtnBuy(int type) { if (_studioData.BuyTimes == _studioCfg.buyNum) { PromptController.Instance.ShowFloatTextPrompt("今日购买次数已达上限"); return; } StudioCfgArray.Instance.GetMoneyIdAndNum(_studioCfg.id, _studioData.BuyTimes, 1, out int moneyId, out int moneyNum); if (type == BUY_TYPE_0 && ItemDataManager.GetItemNum(_studioCfg.itemID) < _studioCfg.itemNum || type == BUY_TYPE_1 && ItemDataManager.GetItemNum(moneyId) < moneyNum) { PromptController.Instance.ShowFloatTextPrompt("道具不足"); return; } StudioProxy.ReqBuyStudioPlayTimes(_chapterId, type, 1).Coroutine(); } } }