| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using ET;
- using FairyGUI;
- using UI.MiniGame;
- using UnityEngine;
- using System.Reflection;
- using cfg.GfgCfg;
- namespace GFGGame
- {
- public class ChallengeRewardView : BaseWindow
- {
- private UI_ChallengeRewardsUI _ui;
- private List<int> gameList = new List<int>();
- //private MiniGame[] gameNameDate;
- //由于每个游戏都有一个表
- private List<CardGameCfg> CardGameDate;
- private List<GameInfoProto> CardGameInfo = new List<GameInfoProto>();
- private List<Merge2048GameCfg> 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}星通关",
- CommonDataManager.Tables.TblMiniGameCfg.GetOrDefault(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].BonusStar3.Count;
- 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}首次通关",
- CommonDataManager.Tables.TblMiniGameCfg.GetOrDefault(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].BonusWinFirst.Count;
- 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(
- CommonDataManager.Tables.TblItemCfg.GetOrDefault(CardGameDate[0].BonusStar1[0].ItemId).Res,
- "png");
- item.m_Num.text = CardGameDate[0].BonusStar1[0].Count.ToString();
- break;
- case 2:
- item.m_icon.url = ResPathUtil.GetIconPath(
- CommonDataManager.Tables.TblItemCfg.GetOrDefault(CardGameDate[0].BonusStar2[0].ItemId).Res,
- "png");
- item.m_Num.text = CardGameDate[0].BonusStar2[0].Count.ToString();
- break;
- case 3:
- item.m_icon.url = ResPathUtil.GetIconPath(
- CommonDataManager.Tables.TblItemCfg.GetOrDefault(CardGameDate[0].BonusStar3[0].ItemId).Res,
- "png");
- item.m_Num.text = CardGameDate[0].BonusStar3[0].Count.ToString();
- break;
- default:
- break;
- }
- }
- else
- {
- switch (num)
- {
- case 1:
- item.m_icon.url = ResPathUtil.GetIconPath(
- CommonDataManager.Tables.TblItemCfg
- .GetOrDefault(Merge2048GameDate[0].BonusWinFirst[0].ItemId).Res, "png");
- item.m_Num.text = Merge2048GameDate[0].BonusWinFirst[0].Count.ToString();
- break;
- case 2:
- item.m_icon.url = ResPathUtil.GetIconPath(
- CommonDataManager.Tables.TblItemCfg
- .GetOrDefault(Merge2048GameDate[1].BonusWinFirst[0].ItemId).Res, "png");
- item.m_Num.text = Merge2048GameDate[1].BonusWinFirst[0].Count.ToString();
- break;
- case 3:
- item.m_icon.url = ResPathUtil.GetIconPath(
- CommonDataManager.Tables.TblItemCfg
- .GetOrDefault(Merge2048GameDate[2].BonusWinFirst[0].ItemId).Res, "png");
- item.m_Num.text = Merge2048GameDate[2].BonusWinFirst[0].Count.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 = CommonDataManager.Tables.TblCardGameCfg.DataList
- .Where(a => a.Type == i && a.SubType == j).ToList();
- break;
- case 2:
- Merge2048GameDate = CommonDataManager.Tables.TblMerge2048GameCfg.DataList
- .Where(a => a.Type == i && a.SubType == j).ToList();
- break;
- default:
- break;
- }
- }
- }
- }
|