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() { if (_ui != null) { _ui.Dispose(); _ui = null; } 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_btnBuy.onClick.Add(() => { OnClickBtnBuy(BUY_TYPE_1); }); } protected override void AddEventListener() { base.AddEventListener(); EventAgent.AddEventListener(ConstMessage.BUY_STUDIO_PLAY_TIMES, OnListenerBuyTimeComplete); } 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); ItemUtil.SetItemNumAndNeedNum(_ui.m_comCostItem, _studioCfg.itemID, _studioCfg.itemNum); StudioCfgArray.Instance.GetMoneyIdAndNum(_studioCfg.id, _studioData.BuyTimes, 1, out int moneyId, out int moneyNum); ItemUtil.SetItemNumAndNeedNum(_ui.m_comCostCurrent, _studioCfg.moneyId, moneyNum); } protected override void OnHide() { base.OnHide(); } protected override void RemoveEventListener() { base.RemoveEventListener(); EventAgent.RemoveEventListener(ConstMessage.BUY_STUDIO_PLAY_TIMES, OnListenerBuyTimeComplete); } private void OnClickBtnBuy(int type) { if (_studioData.BuyTimes == _studioCfg.buyNum) { PromptController.Instance.ShowFloatTextPrompt("今日购买次数已达上限", MessageType.ERR); 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("道具不足", MessageType.ERR); return; } StudioSProxy.ReqBuyStudioPlayTimes(_chapterId, type, 1).Coroutine(); } private void OnListenerBuyTimeComplete() { PromptController.Instance.ShowFloatTextPrompt("购买成功", MessageType.SUCCESS); UpdateView(); if (_studioData.BuyTimes == _studioCfg.buyNum) { PromptController.Instance.ShowFloatTextPrompt("今日购买次数已达上限", MessageType.ERR); this.Hide(); } } } }