using System.Collections.Generic; using ET; using FairyGUI; using UI.Arena; using UnityEngine; namespace GFGGame { public class ArenaDanRewardView : BaseWindow { private UI_ArenaDanRewardUI _ui; public override void Dispose() { if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_ArenaUI.PACKAGE_NAME; _ui = UI_ArenaDanRewardUI.Create(); this.viewCom = _ui.target; this.viewCom.Center(); this.modal = true; viewAnimationType = EnumViewAnimationType.ZOOM_CENTER; _ui.m_listWeekDanReward.itemRenderer = RenderListWeekDanRewardItem; _ui.m_listUpDanReward.itemRenderer = RenderListUpDanReward; _ui.m_comMyDanReward.m_listReward.itemRenderer = RenderListRewardItem; } protected override void AddEventListener() { base.AddEventListener(); } protected override void OnShown() { base.OnShown(); _ui.m_listWeekDanReward.numItems = ArenaRewardCfgArray.Instance.dataArray.Length; _ui.m_listUpDanReward.numItems = ArenaRankCfgArray.Instance.dataArray.Length; ArenaViewManager.Instance.UpdateDanIcon(_ui.m_comMyDanReward.m_loaDanIcon, 2); UpdateMyReward(); } protected override void OnHide() { base.OnHide(); _ui.m_listUpDanReward.ScrollToView(0); _ui.m_listWeekDanReward.ScrollToView(0); } protected override void RemoveEventListener() { base.RemoveEventListener(); } private void UpdateMyReward() { UI_ComMyDanReward com = UI_ComMyDanReward.Proxy(_ui.m_comMyDanReward.target); ArenaViewManager.Instance.UpdateDanIcon(com.m_loaDanIcon, ArenaDataManager.Instance.Grade); int[][] rewards = { }; ArenaRankCfg rankCfg = ArenaRankCfgArray.Instance.GetCfg(ArenaDataManager.Instance.Grade); List rewardCfgs = ArenaRewardCfgArray.Instance.GetCfgsBygradeName(rankCfg.gradeName); for (int i = 0; i < rewardCfgs.Count; i++) { ArenaRewardCfg rewardCfg = rewardCfgs[i]; int endRank = rewardCfg.rankInGrade == 0 ? rankCfg.num * rewardCfg.rangeInGrade / 10000 : rewardCfg.rankInGrade; int startRank = 0; if (i > 0) { ArenaRewardCfg nextRewardCfg = rewardCfgs[i + 1]; startRank = nextRewardCfg.rankInGrade == 0 ? rankCfg.num * nextRewardCfg.rangeInGrade / 10000 : nextRewardCfg.rankInGrade; } if (ArenaDataManager.Instance.Rank > startRank && ArenaDataManager.Instance.Rank <= endRank) { rewards = rewardCfg.bonusWeeklyArr; break; } } if (com.m_listReward.data == null) { com.m_listReward.itemRenderer = RenderListRewardItem; } com.m_listReward.data = rewards; com.m_listReward.numItems = rewards.Length; UI_ComMyDanReward.ProxyEnd(); } private void RenderListWeekDanRewardItem(int index, GObject obj) { ArenaRewardCfg cfg = ArenaRewardCfgArray.Instance.dataArray[index]; UI_ListDanRewardItem item = UI_ListDanRewardItem.Proxy(obj); item.m_txtRank.text = cfg.showName; item.m_imgGot.visible = false; if (item.m_listReward.data == null) { item.m_listReward.itemRenderer = RenderListRewardItem; } item.m_listReward.data = cfg.bonusWeeklyArr; item.m_listReward.numItems = cfg.bonusWeeklyArr.Length; UI_ListDanRewardItem.ProxyEnd(); } private void RenderListUpDanReward(int index, GObject obj) { ArenaRankCfg cfg = ArenaRankCfgArray.Instance.dataArray[index]; UI_ListDanRewardItem item = UI_ListDanRewardItem.Proxy(obj); item.m_imgGot.visible = ArenaDataManager.Instance.HighestGrade >= cfg.id; item.m_txtRank.text = cfg.gradeName; if (item.m_listReward.data == null) { item.m_listReward.itemRenderer = RenderListRewardItem; } item.m_listReward.data = cfg.bonusUpgradeArr; item.m_listReward.numItems = cfg.bonusUpgradeArr.Length; UI_ListDanRewardItem.ProxyEnd(); } private void RenderListRewardItem(int index, GObject obj) { int[][] reward = (int[][])obj.parent.data; ItemData itemData = ItemUtil.createItemData(reward[index]); if (obj.data == null) { obj.data = new ItemView(obj as GComponent); } (obj.data as ItemView).SetData(itemData); (obj.data as ItemView).SetComItemScale = 0.7f; (obj.data as ItemView).SetTxtCountPos(185, 155); } } }