using System; using System.Collections.Generic; using ET; using FairyGUI; using UI.MiniGame; using UnityEngine; using System.Reflection; namespace GFGGame { public class ChallengeRewardView : BaseWindow { private UI_ChallengeRewardsUI _ui; private List gameList = new List(); private MiniGame[] gameNameDate; //由于每个游戏都有一个表 private List CardGameDate; private List Merge2048GameDate; private List HuarongRoadGameDate; public override void Dispose() { if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_ChallengeRewardsUI.PACKAGE_NAME; _ui = UI_ChallengeRewardsUI.Create(); this.viewCom = _ui.target; isfullScreen = true; _ui.m_exit.onClick.Add(Hide); _ui.m_reward.m_rewardOneList.itemRenderer = RenderListOne; _ui.m_reward.m_rewardTwoList.itemRenderer = RenderListTwo; } protected override void OnShown() { base.OnShown(); gameList = (this.viewData as object[])[0] as List; for(int i= 0;i< gameList.Count; i+=2) { GetGameArray(gameList[i], gameList[i + 1],i); } switch(gameList.Count) { case 0: _ui.m_reward.m_rewardOneList.numItems = 0; _ui.m_reward.m_rewardTwoList.numItems = 0; break; case 2: _ui.m_reward.m_rewardOneList.numItems = 3; _ui.m_reward.m_rewardTwoList.numItems = 0; break; case 4: _ui.m_reward.m_rewardOneList.numItems = 3; _ui.m_reward.m_rewardTwoList.numItems = 3; break; default: _ui.m_reward.m_rewardOneList.numItems = 0; _ui.m_reward.m_rewardTwoList.numItems = 0; break; } } protected override void OnHide() { base.OnHide(); } private void RenderListOne(int index ,GObject obj) { UI_ChallengeRewardItemUI item = UI_ChallengeRewardItemUI.Proxy(obj); int starNum = 3 - index; item.m_rewardDesc.text = string.Format("{0}游戏首次{1}星通关",MiniGameArray.Instance.GetCfg(gameList[0]).typeName, starNum); item.m_rewardList.itemRenderer = RenditemReward; //var reward; item.m_rewardList.data = 1; item.m_rewardList.numItems = CardGameDate[0].bonusStar3Arr.Length; if (item.m_getBtn.target.data == null) { item.m_getBtn.target.onClick.Add(OnBtnGoClick); } item.m_getBtn.target.data = 1; UI_ChallengeRewardItemUI.ProxyEnd(); } private void RenderListTwo(int index , GObject obj) { UI_ChallengeRewardItemUI item = UI_ChallengeRewardItemUI.Proxy(obj); int starNum = 3 - index; item.m_rewardDesc.text = string.Format("{0}游戏首次{1}星通关", MiniGameArray.Instance.GetCfg(gameList[2]).typeName, starNum); item.m_rewardList.itemRenderer = RenditemReward; //读表 //var reward; item.m_rewardList.data = 2; item.m_rewardList.numItems = Merge2048GameDate[0].bonusStar3Arr.Length; if (item.m_getBtn.target.data == null) { item.m_getBtn.target.onClick.Add(OnBtnGoClick); } item.m_getBtn.target.data = 1; UI_ChallengeRewardItemUI.ProxyEnd(); } private void RenditemReward(int index, GObject obj) { UI_ChallengeRewardItem item = UI_ChallengeRewardItem.Proxy(obj); int num = 3 - index; if((int)item.target.parent.data == 1) { switch (num) { case 1: item.m_icon.url = ResPathUtil.GetCommonGameResPath(ItemCfgArray.Instance.GetCfg(CardGameDate[0].bonusStar1Arr[0][0]).res); item.m_Num.text = CardGameDate[0].bonusStar1Arr[0][1].ToString(); break; case 2: item.m_icon.url = ResPathUtil.GetCommonGameResPath(ItemCfgArray.Instance.GetCfg(CardGameDate[0].bonusStar2Arr[0][0]).res); item.m_Num.text = CardGameDate[0].bonusStar2Arr[0][1].ToString(); break; case 3: item.m_icon.url = ResPathUtil.GetCommonGameResPath(ItemCfgArray.Instance.GetCfg(CardGameDate[0].bonusStar3Arr[0][0]).res); item.m_Num.text = CardGameDate[0].bonusStar3Arr[0][1].ToString(); break; default: break; } } else { switch (num) { case 1: item.m_icon.url = ResPathUtil.GetCommonGameResPath(ItemCfgArray.Instance.GetCfg(Merge2048GameDate[0].bonusStar1Arr[0][0]).res); item.m_Num.text = Merge2048GameDate[0].bonusStar1Arr[0][1].ToString(); break; case 2: item.m_icon.url = ResPathUtil.GetCommonGameResPath(ItemCfgArray.Instance.GetCfg(Merge2048GameDate[0].bonusStar3Arr[0][0]).res); item.m_Num.text = Merge2048GameDate[0].bonusStar2Arr[0][1].ToString(); break; case 3: item.m_icon.url = ResPathUtil.GetCommonGameResPath(ItemCfgArray.Instance.GetCfg(Merge2048GameDate[0].bonusStar3Arr[0][0]).res); item.m_Num.text = Merge2048GameDate[0].bonusStar3Arr[0][1].ToString(); break; default: break; } } UI_ChallengeRewardItem.ProxyEnd(); } private void OnBtnGoClick() { //读表和后台协议 } private void GetGameArray(int i,int j,int index) { switch(i) { case 1: CardGameDate = CardGameArray.Instance.GetCfgsBytypeAndsubType(i,j); break; case 2: Merge2048GameDate = Merge2048GameArray.Instance.GetCfgsBytypeAndsubType(i,j); break; case 3: HuarongRoadGameDate = HuarongRoadGameArray.Instance.GetCfgsBytypeAndsubType(i, j); break; } } } }