using System; using Cute; using Wizard.DeckCardEdit; namespace Wizard; public static class InCompleteDeckDecideDialog { private const int DIALOG_PANEL_DEPTH = 100; public static void Create(DialogBase dialogDeckList, DeckData deck, ConventionDeckList conventionDeckList = null, bool canUseNonPossessionCard = false, Action unusableDeckChangeViewSceneAction = null) { DeckData.UnusableReason reason; if (deck.IsNoCard()) { Action onStartChangeViewScene = delegate { dialogDeckList.CloseWithoutSelect(); }; DeckCreateMenuUI.ShowDeckCreateMenu(deck, conventionDeckList, onStartChangeViewScene); } else if (!deck.IsUsable(out reason, canUseNonPossessionCard)) { CreateUnusableDeckDialog(deck, conventionDeckList, reason, unusableDeckChangeViewSceneAction, dialogDeckList); } } private static void CreateUnusableDeckDialog(DeckData deck, ConventionDeckList conventionDeckList, DeckData.UnusableReason unusableReason, Action changeViewSceneAction, DialogBase dialogDeckList) { if (unusableReason == DeckData.UnusableReason.MaintenanceCard && deck.IsRentalDeck) { DialogBase dialogBase = UIManager.GetInstance().CreateConfirmationDialog(Data.SystemText.Get("Story_0060")); dialogBase.SetButtonLayout(DialogBase.ButtonLayout.CloseBtn); dialogBase.SetTitleLabel(Data.SystemText.Get("System_0022")); dialogBase.SetPanelDepth(100); return; } (string, string) textsUnusableDeckDialog = GetTextsUnusableDeckDialog(unusableReason); DialogBase dialogBase2 = UIManager.GetInstance().CreateDialogClose(); dialogBase2.SetTitleLabel(textsUnusableDeckDialog.Item1); dialogBase2.SetText(textsUnusableDeckDialog.Item2); dialogBase2.SetButtonLayout(DialogBase.ButtonLayout.BlueBtn_CancelBtn); dialogBase2.SetButtonText(Data.SystemText.Get("Dia_DeckSelect_002_Button")); dialogBase2.onPushButton1 = delegate { if (Data.MaintenanceCodeList.Contains(NetworkDefine.MAINTENANCE_TYPE.DECK_MAINTENANCE)) { Toolbox.NetworkManager.NetworkUI.OpenEachFunctionMaintenancePopUp(2019); } else { DeckCardEditUI.SetDeckEditParameter(deck, conventionDeckList); dialogDeckList.CloseWithoutSelect(); if (changeViewSceneAction != null) { changeViewSceneAction(UIManager.ViewScene.DeckCardEdit); } else { UIManager.ChangeViewSceneParam param = new UIManager.ChangeViewSceneParam { IsUpdateFooterMenuTexture = true }; UIManager.GetInstance().ChangeViewScene(UIManager.ViewScene.DeckCardEdit, param); } } }; dialogBase2.ClickSe_Btn1 = Se.TYPE.SYS_BTN_DECIDE_TRANS; dialogBase2.SetPanelDepth(100); } private static (string title, string body) GetTextsUnusableDeckDialog(DeckData.UnusableReason unusableReason) { string item = string.Empty; string item2 = string.Empty; switch (unusableReason) { case DeckData.UnusableReason.MaintenanceCard: item = Data.SystemText.Get("System_0022"); item2 = Data.SystemText.Get("System_0039"); break; case DeckData.UnusableReason.FormatRestrictCard: item = Data.SystemText.Get("Dia_DeckSelect_004_Title"); item2 = Data.SystemText.Get("Card_0192"); break; case DeckData.UnusableReason.TooLittleCards: item = Data.SystemText.Get("Dia_DeckSelect_002_Title"); item2 = Data.SystemText.Get("Card_0069"); break; case DeckData.UnusableReason.TooMuchCards: item = Data.SystemText.Get("Dia_DeckSelect_003_Title"); item2 = Data.SystemText.Get("Card_0140"); break; case DeckData.UnusableReason.NonPossessionCard: item = Data.SystemText.Get("Dia_DeckSelect_004_Title"); item2 = Data.SystemText.Get("Card_0254"); break; case DeckData.UnusableReason.ShortageMainClassCards: item = Data.SystemText.Get("Dia_DeckSelect_005_Title"); item2 = Data.SystemText.Get("Card_0289"); break; case DeckData.UnusableReason.ShortageSubClassCards: item = Data.SystemText.Get("Dia_DeckSelect_006_Title"); item2 = Data.SystemText.Get("Card_0290"); break; case DeckData.UnusableReason.ShortageBothClassCards: item = Data.SystemText.Get("Dia_DeckSelect_007_Title"); item2 = Data.SystemText.Get("Card_0291"); break; case DeckData.UnusableReason.Unknown: Debug.LogError("unknown deck unusable reason."); break; } return (title: item, body: item2); } }