using System.Threading.Tasks; using ET; using FairyGUI; using UI.Arena; using UnityEngine; namespace GFGGame { public class ArenaRoundResultView : BaseWindow { private UI_ArenaRoundResultUI _ui; private ArenaDataManager _dataManager; private int winCount = 0; private bool isFinallyFight = false;//是否最后一场战斗 public override void Dispose() { if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_ArenaUI.PACKAGE_NAME; _ui = UI_ArenaRoundResultUI.Create(); this.viewCom = _ui.target; this.viewCom.Center(); this.modal = true; viewAnimationType = EnumViewAnimationType.ZOOM_CENTER; _ui.m_list.itemRenderer = RenderListItem; } protected override void AddEventListener() { base.AddEventListener(); } protected override void OnShown() { base.OnShown(); ViewManager.SetMaskAlpha(0); winCount = 0; _dataManager = ArenaDataManager.Instance; _ui.m_list.numItems = _dataManager.CurFightIndex; isFinallyFight = _ui.m_list.numItems == 3; _ui.m_ComResult.target.visible = isFinallyFight; this.clickBlankToClose = isFinallyFight; if (isFinallyFight) { ArenaViewManager.Instance.UpdateAllScoreResult(_ui.m_ComResult.target, _dataManager.myScore, _dataManager.targetScore); } else { Timers.inst.Add(1, 1, StartNextRound); } } protected override void OnHide() { base.OnHide(); ViewManager.SetMaskAlpha(0.6f); if (isFinallyFight) { MusicManager.Instance.PlayCroutine(ResPathUtil.GetMusicPath(ConstMusicName.DEFAULT)); FinishFight(); } } protected override void RemoveEventListener() { base.RemoveEventListener(); } private void RenderListItem(int index, GObject obj) { ArenaViewManager.Instance.UpdateFightRoundResult(obj, index, _dataManager.myScore, _dataManager.targetScore, _dataManager.LastTargets[_dataManager.SelectTargetIndex], out bool isWin); if (isWin) winCount++; } private void StartNextRound(object param) { ArenaTargetData targetData = _dataManager.LastTargets[_dataManager.SelectTargetIndex]; ViewManager.Show(new object[] { _dataManager.DressupList[_dataManager.CurFightIndex], targetData.FightDatas[_dataManager.CurFightIndex] }, true); } private void FinishFight() { ArenaDataManager dataManager = ArenaDataManager.Instance; ViewManager.Hide(); if (dataManager.Grade > dataManager.LastGrade) { BonusController.TryShowBonusList(dataManager.BonusList, () => { ViewManager.Show(new object[] { dataManager.LastGrade, ArenaDataManager.Instance.Grade, dataManager.RewardId }); }); } else if (dataManager.Rank < ArenaDataManager.Instance.LastRank) { BonusController.TryShowBonusList(dataManager.BonusList, () => { // ViewManager.Hide(); ViewManager.Show(new object[] { dataManager.LastGrade, dataManager.LastRank, dataManager.LastTargetInfo.roleName, dataManager.LastTargetInfo.headId, dataManager.LastTargetInfo.headRes }); }); } else { BonusController.TryShowBonusList(dataManager.BonusList, () => { // ViewManager.Hide(); }); } } } }