using System; using System.Collections.Generic; using System.Linq; using cfg.GfgCfg; using ET; using FairyGUI; using UI.MiniGame; using UnityEngine; namespace GFGGame { public class ResultTipsView : BaseWindow { private UI_ResultTipsUI _ui; private bool gameResult; private int timeResult; private int gameType; private int gameID; private List activityGameDate; private Dictionary viewJumpView = new Dictionary() { { 1, "FlipGameView" }, { 2, "TZFEGameView" } }; //通关评价,不同关卡不同 private List CustemsNum = new List() { 10, 30, 60, }; private EffectUI _effectUI1; private EffectUI _effectUI2; private EffectUI _effectUI3; public override void Dispose() { EffectUIPool.Recycle(_effectUI1); _effectUI1 = null; EffectUIPool.Recycle(_effectUI2); _effectUI2 = null; EffectUIPool.Recycle(_effectUI3); _effectUI3 = null; if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_ResultTipsUI.PACKAGE_NAME; _ui = UI_ResultTipsUI.Create(); this.viewCom = _ui.target; isfullScreen = true; _ui.m_exitBtn.onClick.Add(OnClickExit); _ui.m_againBtn.onClick.Add(OnClickAgain); _ui.m_rewardList.itemRenderer = RenderRewardList; EffectUIPool.CreateEffectUI(_ui.m_effectBg, "ui_Activity", "Game_Quad_Open", onComplete: (effect) => { if (effect != null) { _effectUI1 = effect; } }); EffectUIPool.CreateEffectUI(_ui.m_effectSucces, "ui_Activity", "Game_Quad_Win", onComplete: (effect) => { if (effect != null) { _effectUI2 = effect; } }); EffectUIPool.CreateEffectUI(_ui.m_effectFail, "ui_Activity", "Game_Quad_Lose", onComplete: (effect) => { if (effect != null) { _effectUI3 = effect; } }); } protected override void OnShown() { base.OnShown(); if ((this.viewData as object[]).Length >= 3) { gameResult = (bool)(this.viewData as object[])[0]; gameType = (int)(this.viewData as object[])[1]; timeResult = (int)(this.viewData as object[])[2]; gameID = (int)(this.viewData as object[])[3]; } UpdateView(); ReqResultReward(); } private void UpdateView() { ItemCfg itemCfg; string consumeText; switch (gameType) { case 1: var cardGameDate = CommonDataManager.Tables.TblCardGameCfg.GetOrDefault(gameID); CustemsNum[0] = cardGameDate.TimeStar3; CustemsNum[1] = cardGameDate.TimeStar2; CustemsNum[2] = cardGameDate.TimeStar1; if (cardGameDate.ComsumePass.Count > 0) { itemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(cardGameDate.ComsumePass[0].ItemId); consumeText = cardGameDate.ComsumePass[0].Count.ToString(); } else { itemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(3000017); consumeText = ""; } _ui.m_consumeIcon.url = ResPathUtil.GetIconPath(itemCfg.Res, "png"); _ui.m_consumeTxt.text = consumeText; break; case 2: var MergeGameDate = CommonDataManager.Tables.TblMerge2048GameCfg.GetOrDefault(gameID); CustemsNum[0] = MergeGameDate.TimeStar3; CustemsNum[1] = MergeGameDate.TimeStar2; CustemsNum[2] = MergeGameDate.TimeStar1; if (MergeGameDate.ComsumePass.Count > 0) { itemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(MergeGameDate.ComsumePass[0].ItemId); consumeText = MergeGameDate.ComsumePass[0].Count.ToString(); } else { itemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(3000017); consumeText = ""; } _ui.m_consumeIcon.url = ResPathUtil.GetIconPath(itemCfg.Res, "png"); _ui.m_consumeTxt.text = consumeText; break; case 3: break; default: break; } _ui.m_t0.Play(); if (gameResult) { _ui.m_failTxt.visible = false; _ui.m_success.visible = true; _ui.m_effectFail.visible = false; _ui.m_effectSucces.visible = true; _ui.m_resultTxt.text = "通关奖励"; _ui.m_resultTitle.url = "ui://MiniGame/shengli_bt"; UpdateStar(); } else { _ui.m_failTxt.visible = true; _ui.m_success.visible = false; _ui.m_effectSucces.visible = false; _ui.m_effectFail.visible = true; _ui.m_resultTxt.text = "失败奖励"; _ui.m_resultTitle.url = "ui://MiniGame/shibai_bt"; } _ui.m_resultTitle.visible = false; _ui.m_bg.visible = false; activityGameDate = CommonDataManager.Tables.TblActivityOpenCfg.DataList .Where(a => a.Type == ConstLimitTimeActivityType.ActLimitStlyc).ToList(); } private void UpdateStar() { int starNum = 0; for (int i = CustemsNum.Count - 1; i >= 0; i--) { if (timeResult <= CustemsNum[i]) { starNum += 1; } } switch (starNum) { case 1: _ui.m_star1.url = "ui://MiniGame/tb_zx_pt_star"; _ui.m_star2.url = "ui://MiniGame/tb_zx_pt_star_grey"; _ui.m_star3.url = "ui://MiniGame/tb_zx_pt_star_grey"; break; case 2: _ui.m_star1.url = "ui://MiniGame/tb_zx_pt_star"; _ui.m_star2.url = "ui://MiniGame/tb_zx_pt_star"; _ui.m_star3.url = "ui://MiniGame/tb_zx_pt_star_grey"; break; case 3: _ui.m_star1.url = "ui://MiniGame/tb_zx_pt_star"; _ui.m_star2.url = "ui://MiniGame/tb_zx_pt_star"; _ui.m_star3.url = "ui://MiniGame/tb_zx_pt_star"; break; default: _ui.m_star1.visible = false; _ui.m_star2.visible = false; _ui.m_star3.visible = false; break; } } protected override void OnHide() { base.OnHide(); } private void OnClickExit() { this.Hide(); ViewManager.Hide(viewJumpView[gameType]); ViewManager.Show(); EventAgent.DispatchEvent(ConstMessage.TZFE_GAME_UPDATE); } private async void OnClickAgain() { this.Hide(); var result = await MiniGameProxy.ReqMiniGameStart(gameID, gameType, activityGameDate[0].Id); if (!result) { ViewManager.Hide(viewJumpView[gameType]); return; } ViewManager.Show(viewJumpView[gameType], new object[] { gameID }); } private void RenderRewardList(int index, GObject obj) { UI_rewardItem item = UI_rewardItem.Proxy(obj); ItemCfg itemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(MiniGameDateManager.Instance.itemList[index].ConfigId); if (itemCfg != null) { item.m_icon.url = ResPathUtil.GetIconPath(itemCfg.Res, "png"); item.m_Count.text = MiniGameDateManager.Instance.itemList[index].Count.ToString(); } UI_rewardItem.ProxyEnd(); } private async void ReqResultReward() { var result = await MiniGameProxy.ReqMiniGameEnd(gameID, gameType, timeResult, gameResult, activityGameDate[0].Id, false); if (!result) { this.Hide(); ViewManager.Hide(viewJumpView[gameType]); return; } _ui.m_rewardList.numItems = MiniGameDateManager.Instance.itemList.Count; } } }