using System.Collections; using Wizard.Battle.Phase; using Wizard.DeckCardEdit; namespace Wizard; public static class FreeAndRankMatchDeckSelectConfirmDialog { public static void Create(DialogBase dialogDeckList, DeckData deck, bool isBattleEnd) { if (!deck.IsUsable()) { InCompleteDeckDecideDialog.Create(dialogDeckList, deck, null, canUseNonPossessionCard: false, ChangeViewSceneAndSetBattleRetry); return; } CompleteDeckDecideDialog.CreateForSingleDeck(dialogDeckList, deck, showSimpleStageOption: true, delegate { DecideDeck(deck, isBattleEnd); }).DecisionUI.CardListCustomize = delegate(UICardList uiCardList) { if (!deck.IsRentalDeck) { uiCardList.SetEnableBlueButton(isEnable: true, Data.SystemText.Get("Card_0007"), delegate { DeckCardEditUI.SetDeckEditParameter(deck, null); ChangeViewSceneAndSetBattleRetry(UIManager.ViewScene.DeckCardEdit); }); } }; } public static void DecideDeck(DeckData deck, bool isBattleEnd, bool notBlack = false, bool notCollider = false) { DeckListUtility.DataMgrSaveLastSelectDeckData(deck); ToolboxGame.UIManager.createInSceneLoadingMatching(notBlack, notCollider); UIManager.GetInstance().StartCoroutine(ChangeMatchingScene(isBattleEnd)); } private static IEnumerator ChangeMatchingScene(bool isBattleEnd) { yield return UIManager.GetInstance().StartCoroutine(MasterResetMonthTask.MasterReset()); // Pre-Phase-5b: gated on mgr.GetCurrentPhase() to trace + BattleControl.BattleEnd // on the way out. BattleControl is a stub (chunk 7); collapse to the else branch's // UIManager scene change, which is the only observable output. UIManager.GetInstance().ChangeViewScene(UIManager.ViewScene.RankMatch); } private static void ChangeViewSceneAndSetBattleRetry(UIManager.ViewScene viewScene) { // Pre-Phase-5b: battle-scene branch routed through GameMgr.GetBattleCtrl().BattleEnd. // BattleControl is a stub (chunk 7); collapse to the else branch. UIManager.ChangeViewSceneParam changeViewSceneParam = new UIManager.ChangeViewSceneParam(); changeViewSceneParam.OnChange = SetBattleRetryForDeckCardEdit; UIManager.GetInstance().ChangeViewScene(viewScene, changeViewSceneParam); } private static void SetBattleRetryForDeckCardEdit() { UIManager instance = UIManager.GetInstance(); if (instance.IsCurrentScene(UIManager.ViewScene.DeckCardEdit)) { (instance.GetUiBaseOfCurrentScene() as DeckCardEditUI).IsBattleRetry = true; } } }