| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234 | 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<int> gameList = new List<int>();        private MiniGame[] gameNameDate;        //由于每个游戏都有一个表        private List<CardGame> CardGameDate;        private List<GameInfoProto> CardGameInfo = new List<GameInfoProto>();        private List<Merge2048Game> Merge2048GameDate;        private List<GameInfoProto> Merge2048GameInfo = new List<GameInfoProto>();        private int oneNumItems;        private int twoNumItems;        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<int>;            for(int i= 0;i< gameList.Count; i+=2)            {                GetGameArray(gameList[i], gameList[i + 1],i);            }            switch(gameList.Count)            {                case 0:                    oneNumItems = 0;                    break;                case 2:                    oneNumItems = 3;                    break;                case 4:                    oneNumItems = 3;                    break;                default:                    oneNumItems = 0;                    break;            }            foreach(GameInfoProto t in MiniGameDateManager.Instance.gameinfoList)            {                if(t.GameType == 1)                {                    CardGameInfo.Add(t);                }                if(t.GameType == 2)                {                    Merge2048GameInfo.Add(t);                }            }            _ui.m_reward.m_rewardOneList.numItems = CardGameInfo[0].StarRewardStatus.Count == 0? CardGameInfo.Count : CardGameInfo[0].StarRewardStatus.Count;            oneNumItems = CardGameInfo[0].StarRewardStatus.Count == 0 ? CardGameInfo.Count : CardGameInfo[0].StarRewardStatus.Count;            _ui.m_reward.m_rewardTwoList.numItems = Merge2048GameInfo[0].StarRewardStatus.Count == 0 ? Merge2048GameInfo.Count : Merge2048GameInfo[0].StarRewardStatus.Count;            twoNumItems = Merge2048GameInfo[0].StarRewardStatus.Count == 0 ? Merge2048GameInfo.Count : Merge2048GameInfo[0].StarRewardStatus.Count;        }        protected override void OnHide()        {            CardGameInfo.Clear();            Merge2048GameInfo.Clear();            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_getBtn.m_c1.selectedIndex = MiniGameDateManager.Instance.gameinfoList[0].StarRewardStatus[2 - index];            item.m_rewardList.data = gameList[0];            item.m_rewardList.numItems = CardGameDate[0].bonusStar3Arr.Length;            if (item.m_getBtn.target.data == null)            {                item.m_getBtn.target.onClick.Add(OnBtnGoClick);            }            List<int> rewardList = new List<int>();            List<int> starList = new List<int>() { CardGameDate[0].timeStar3, CardGameDate[0].timeStar2, CardGameDate[0].timeStar1 };            rewardList.Add(CardGameDate[0].id);            rewardList.Add(CardGameDate[0].type);            rewardList.Add(1);            rewardList.Add(3-index);            rewardList.Add(MiniGameDateManager.Instance.gameinfoList[0].StarRewardStatus[2 - index]);            item.m_getBtn.target.data = rewardList;            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,index+1);            item.m_rewardList.itemRenderer = RenditemReward;            //读表            //var reward;            item.m_getBtn.m_c1.selectedIndex = MiniGameDateManager.Instance.gameinfoList[index + CardGameInfo.Count].FirstPassRewardStatus;            item.m_rewardList.data = gameList[2];            item.m_rewardList.numItems = Merge2048GameDate[index].bonusWinFirstArr.Length;            if (item.m_getBtn.target.data == null)            {                item.m_getBtn.target.onClick.Add(OnBtnGoClick);            }            List<int> rewardList = new List<int>();            List<int> starList = new List<int>() { Merge2048GameDate[0].timeStar3, Merge2048GameDate[0].timeStar2, Merge2048GameDate[0].timeStar1 };            rewardList.Add(Merge2048GameDate[index].id);            rewardList.Add(Merge2048GameDate[index].type);            rewardList.Add(1);            rewardList.Add(3 - index);            rewardList.Add(MiniGameDateManager.Instance.gameinfoList[index + 1].FirstPassRewardStatus);            item.m_getBtn.target.data = rewardList;            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.GetIconPath(ItemCfgArray.Instance.GetCfg(CardGameDate[0].bonusStar1Arr[0][0]).res, "png");                              item.m_Num.text = CardGameDate[0].bonusStar1Arr[0][1].ToString();                        break;                    case 2:                        item.m_icon.url = ResPathUtil.GetIconPath(ItemCfgArray.Instance.GetCfg(CardGameDate[0].bonusStar2Arr[0][0]).res, "png");                        item.m_Num.text = CardGameDate[0].bonusStar2Arr[0][1].ToString();                        break;                    case 3:                        item.m_icon.url = ResPathUtil.GetIconPath(ItemCfgArray.Instance.GetCfg(CardGameDate[0].bonusStar3Arr[0][0]).res, "png");                        item.m_Num.text = CardGameDate[0].bonusStar3Arr[0][1].ToString();                        break;                    default:                        break;                }            }            else            {                switch (num)                {                    case 1:                        item.m_icon.url = ResPathUtil.GetIconPath(ItemCfgArray.Instance.GetCfg(Merge2048GameDate[0].bonusWinFirstArr[0][0]).res, "png");                        item.m_Num.text = Merge2048GameDate[0].bonusWinFirstArr[0][1].ToString();                        break;                    case 2:                        item.m_icon.url = ResPathUtil.GetIconPath(ItemCfgArray.Instance.GetCfg(Merge2048GameDate[1].bonusWinFirstArr[0][0]).res, "png");                        item.m_Num.text = Merge2048GameDate[1].bonusWinFirstArr[0][1].ToString();                        break;                    case 3:                        item.m_icon.url = ResPathUtil.GetIconPath(ItemCfgArray.Instance.GetCfg(Merge2048GameDate[2].bonusWinFirstArr[0][0]).res, "png");                        item.m_Num.text = Merge2048GameDate[2].bonusWinFirstArr[0][1].ToString();                        break;                    default:                        break;                }            }            UI_ChallengeRewardItem.ProxyEnd();        }        private async void OnBtnGoClick(EventContext context)        {            if (!(context.sender is GObject btnGet)) return;            List<int> itemList = btnGet.data as List<int>;            if (itemList[4] != 1)            {                return;            }            if (itemList[1] == 1)            {                 var result = await MiniGameProxy.ReqGetReward(itemList[0], itemList[1], itemList[2], itemList[3]);                if (!result) return;            }            else if(itemList[1] == 2)            {                var result = await MiniGameProxy.ReqGetFirstPassReward(itemList[0], itemList[1], itemList[2]);                if (!result) return;            }            _ui.m_reward.m_rewardOneList.numItems = oneNumItems;            _ui.m_reward.m_rewardTwoList.numItems = twoNumItems;            EventAgent.DispatchEvent(ConstMessage.MINI_GAME_UPDATE);        }        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;                default:                    break;            }        }    }}
 |