using cfg; using Cysharp.Threading.Tasks; using Framework; using Gameplay; using Gameplay.Level; using System.Linq; using TMPro; using UnityEngine.UI; using Button = UnityEngine.UI.Button; using Image = UnityEngine.UI.Image; public class UIDefeatGameController : UIWindow{ //UI GameObj ///Auto Gen Start/// public Image Image_FailedBG; public Image Image_Tip; public TMP_Text Text_Failed; public TMP_Text Text_FightTime; public Image Image_Clock; public TMP_Text Text_Time; public Image Image_PhysicalPower; public TMP_Text Text_PPNum; public TMP_Text Text_PhysicalPowerBack; public TMP_Text Text_FailedDescribe0; public TMP_Text Text_FailedDescribe1; public TMP_Text Text_FailedDescribe2; public Image Image_AccountLogo; public Button Button_Continue; public TMP_Text Text_Continue; ///Auto Gen End/// public static async UniTask Open() { CommonUtils.CaptureScreenshot(); return await UIManager.Instance.CreateAndOpenWindow(UINameConst.UIDefeatGame); } /// /// 高斯模糊背景遮罩 /// private RawImage rawImageGaussianBlurMask; // Use this for initialization public override void OnInit() { //bind UI GameObj UIDefeatGameBinder.GetComponents(this); rawImageGaussianBlurMask = GetComponent("GaussianBlurMask"); rawImageGaussianBlurMask.texture = CommonUtils.screenTexture; BindButton(Button_Continue, () => { LevelManager.Instance.ExitLevelDirectly(); }); } //invoke when open window protected override void OnShowWindow(object data = null) { _Refresh(); } protected override void OnHideWindow() { AudioManager.Instance.AudioMgrObj.StopAllSounds(); base.OnHideWindow(); } #region RefreshWindow private async void _Refresh() { _RefreshTime(); _RefreshPhysical(); Team team = TeamEditManager.Instance.GetSelectTeam(); uint[] ids = team.GetCharacterIDs(); if (ids.Count() > 0) await DialogueManager.Instance.PlayDiaogue((int)ids[0], cfg.DialogueCfg.E_DialogueType.LevelFailure); } private void _RefreshTime() { var minutes = TeamManager.Instance.GetFightPastMinute(); var seconds = TeamManager.Instance.GetFightPastSecond(); var timeStr = ""; if (minutes < 10) { timeStr += minutes; } else { timeStr += "0"; timeStr += minutes; } timeStr += ":"; if (minutes < 10) { timeStr += seconds; } else { timeStr += "0"; timeStr += seconds; } Text_Time.text = timeStr; } private void _RefreshPhysical() { var levelID = LevelManager.Instance.CurrentLevel.ID; var levelCfg = TableManager.Instance.Tables.Level.GetOrDefault(levelID); int count; if (levelCfg != null) { var costPhysicals = levelCfg.CostItems; count = costPhysicals.Count; Text_PPNum.text = "x" + count; } } #endregion }