using System.Collections.Generic; using ET; using FairyGUI; using UI.Task; namespace GFGGame { public class BattlePassTaskView : BaseView { private UI_BattlePassRewardUI _ui; private List _rewardCfgs; public override void Dispose() { if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_BattlePassRewardUI.PACKAGE_NAME; _ui = UI_BattlePassRewardUI.Create(); viewCom = _ui.target; isfullScreen = true; _ui.m_btnOpen.onClick.Add(OnBtnOpenClick); // _ui.m_btnGet.onClick.Add(OnBtnGetClick); // _ui.m_btnContinue.onClick.Add(OnBtnContinueClick); // _ui.m_btnGetAll.onClick.Add(OnBtnGetAllClick); // _ui.m_btnGo.onClick.Add(OnBtnGoClick); _ui.m_btnGetAll.onClick.Add(OnBtnGetAllClick); _ui.m_RewardList.itemRenderer = ListBoxRewardItemRender; } protected override void OnShown() { base.OnShown(); _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("scsc_bjbj"); //获取通行证奖励配置 //TODO 获取赛季id var SeaseonId = 1; _rewardCfgs = new List(BattlePassCfgArray.Instance.GetCfgsByid(SeaseonId)); _ui.m_RewardList.numItems = _rewardCfgs.Count; _ui.m_RewardList.ScrollToView(0); } //开启通行证 private void OnBtnOpenClick() { //TODO Log.Debug("开启通行证"); } //领取奖励 private void OnBtnGetClick() { //TODO Log.Debug("领取奖励"); } //继续领取 private void OnBtnContinueClick() { //TODO Log.Debug("继续领取"); } //领取全部奖励 private void OnBtnGetAllClick() { //TODO Log.Debug("领取全部奖励"); } //前往 private void OnBtnGoClick() { //TODO Log.Debug("前往"); } private void ListBoxRewardItemRender(int index, GObject obj) { var item = UI_BattlePassRewardItem.Proxy(obj); var battlePassCfg = _rewardCfgs[index]; //设置等级 item.m_Level.text = battlePassCfg.level.ToString(); //设置奖励 var bonusNormalArr = battlePassCfg.bonusNormalArr; if (bonusNormalArr != null && bonusNormalArr.Length > 0) { var itemCfg = ItemCfgArray.Instance.GetCfg(bonusNormalArr[0][0]); if (itemCfg != null) { item.m_NormalReward.m_loaIcon.url = ResPathUtil.GetCommonGameResPath(itemCfg.res); item.m_NormalReward.m_num.text = bonusNormalArr[0][1].ToString(); } } if (item.m_RewardList.data == null) { item.m_RewardList.itemRenderer = SpecialRewardRender; } item.m_RewardList.data = battlePassCfg.bonusSpecialArr; item.m_RewardList.numItems = battlePassCfg.bonusSpecialArr.Length; //TODO 设置按钮状态 var state = 1; //设置按钮状态 SetBtnState(item, battlePassCfg.id, state); item.target.data = battlePassCfg; UI_BattlePassRewardItem.ProxyEnd(); } //SpecialRewardRender private static void SpecialRewardRender(int index, GObject obj) { var item = UI_RewardIconYellow.Proxy(obj); var parentData = (int[][])obj.parent.data; // if (!(obj.parent.data is int[][] parentData)) // { // UI_RewardIconYellow.ClearProxy(); // return; // } var itemInfo = parentData[index]; var itemId = itemInfo[0]; var num = itemInfo[1]; var itemCfg = ItemCfgArray.Instance.GetCfg(itemId); if (itemCfg != null) { item.m_loaIcon.url = ResPathUtil.GetCommonGameResPath(itemCfg.res); item.m_num.text = num.ToString(); } UI_RewardIconYellow.ProxyEnd(); } //根据状态设置按钮 private void SetBtnState(UI_BattlePassRewardItem item, int id, int state) { item.m_c1.selectedIndex = state; if (item.m_GetRewardBt.data == null) { item.m_GetRewardBt.onClick.Add(OnBtnGetClick); } item.m_GetRewardBt.data = id; //继续领取 if (item.m_ContinueBt.data == null) { item.m_ContinueBt.onClick.Add(OnBtnContinueClick); } //前往 if (item.m_ComeBt.data == null) { item.m_ComeBt.onClick.Add(OnBtnGoClick); } item.m_GetRewardBt.data = id; item.m_GetRewardBt.data = id; } } }