using ET; using FairyGUI; using UI.CommonGame; using UI.Studio; using UnityEngine; using System.Collections.Generic; using UI_ListRewardItem = UI.Studio.UI_ListRewardItem; namespace GFGGame { public class StudioFilingRewardView : BaseWindow { private UI_StudioFilingRewardUI _ui; private List rewardList; private EffectUI _effectUI1; private EffectUI _effectUI2; public override void Dispose() { if (_ui != null) { _ui.Dispose(); _ui = null; } EffectUIPool.Recycle(_effectUI1); _effectUI1 = null; EffectUIPool.Recycle(_effectUI2); _effectUI2 = null; base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_StudioFilingRewardUI.PACKAGE_NAME; _ui = UI_StudioFilingRewardUI.Create(); this.viewCom = _ui.target; this.viewCom.Center(); this.modal = true; viewAnimationType = EnumViewAnimationType.ZOOM_CENTER; _ui.m_list.itemRenderer = RenderListItem; _ui.m_btnGet.onClick.Add(OnBtnGetClcik); _ui.m_btnBack.onClick.Add(this.Hide); AddEffect(); } protected override void AddEventListener() { base.AddEventListener(); EventAgent.AddEventListener(ConstMessage.FILING_SCORE_CHANGE, UpdateView); } protected override void OnShown() { base.OnShown(); _ui.m_bg.url = ResPathUtil.GetCommonGameResPath("ty_tc_s"); _ui.m_txtScore.text = string.Format("本章评分: {0}", StudioDataManager.Instance.GetStudioDataById(StudioDataManager.Instance.filingChapterId).ChapterScore); UpdateView(); } private void UpdateView() { _ui.m_list.numItems = FilingRewardCfgArray.Instance.GetCfgsByid(StudioDataManager.Instance.filingChapterId).Count; _ui.m_btnGet.grayed = !StudioDataManager.Instance.GetFilingRewardState(StudioDataManager.Instance.filingChapterId); } protected override void OnHide() { base.OnHide(); _ui.m_list.ScrollToView(0); } private void AddEffect() { //边框左上角特效 _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_LeftTopEffect, "ui_Activity", "Com_window_L_up"); //边框右下角特效 _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_RightDownEffect, "ui_Activity", "Com_window_R_Down"); } protected override void RemoveEventListener() { base.RemoveEventListener(); EventAgent.RemoveEventListener(ConstMessage.FILING_SCORE_CHANGE, UpdateView); } private void RenderListItem(int index, GObject obj) { FilingRewardCfg cfg = FilingRewardCfgArray.Instance.GetCfgsByid(StudioDataManager.Instance.filingChapterId)[index]; UI_ListRewardItem item = UI_ListRewardItem.Proxy(obj); item.m_txtDesc.text = string.Format("总评分达到{0}", cfg.score); rewardList = StudioDataManager.Instance.GetFilingRewardList(StudioDataManager.Instance.filingChapterId); if (index < rewardList.Count && rewardList[index] == ConstBonusStatus.CAN_GET) { item.m_canGet.visible = true; } else if (index < rewardList.Count && rewardList[index] == ConstBonusStatus.CAN_NOT_GET) { item.m_canGet.visible = false; } else { item.m_canGet.visible = false; } item.m_listReward.data = index; item.m_listReward.itemRenderer = RenderListRewardItem; item.m_listReward.numItems = cfg.itemsArr.Length; // item.m_listReward.SetScale(0.6f, 0.6f); UI_ListRewardItem.ProxyEnd(); } private void RenderListRewardItem(int index, GObject obj) { int rewardIndex = (int)obj.parent.data; int[][] rewards = FilingRewardCfgArray.Instance.GetCfgsByid(StudioDataManager.Instance.filingChapterId)[rewardIndex].itemsArr; ItemData reward = ItemUtil.createItemData(rewards[index]);//_rewardDatas[index]; if (obj.data == null) { obj.data = new ItemView(obj as GComponent); } (obj.data as ItemView).SetData(reward); (obj.data as ItemView).GrpGotVisible = StudioDataManager.Instance.GetFilingRewardStateByIndex(StudioDataManager.Instance.filingChapterId, rewardIndex) == ConstBonusStatus.GOT ? true : false; //(obj.data as ItemView).SetComItemScale = 0.6f; //(obj.data as ItemView).SetTxtCountPos(175, 135); } private void OnBtnGetClcik() { if (!StudioDataManager.Instance.GetFilingRewardState(StudioDataManager.Instance.filingChapterId)) { PromptController.Instance.ShowFloatTextPrompt("当前无奖励可领取"); return; } StudioSProxy.ReqFilingScoreRewards(StudioDataManager.Instance.filingChapterId).Coroutine(); } } }