Files
SVSimServer/SVSim.BattleEngine/Engine/Wizard/InCompleteDeckDecideDialog.cs
gamer147 957af3d1ec feat(battle-engine): full Unity/VFX/god-object shims + expanded copy closure (2570 files)
Authored Unity primitive/object-model shim, VFX layer (control-flow-preserving, InstantVfx never invokes its action -- headless suppression), god-object stubs (GameMgr/EffectMgr/UIManager with faithfully-extracted nested enums), View/UI/Touch tree, LitJson+BetterList+Tuple copied, third-party stubs. Discovered Roslyn header-error masking: fixing class-header type errors unmasks body references, so the true copy closure is ~2570 files (was 782 under masking). Errors: masked-25720 -> 268; our shim files compile clean. Remaining: ~50 residual shim/external types, 24 NGUI UI-base overrides, static-type fixes, plus likely 1-2 more unmask waves.
2026-06-05 17:22:20 -04:00

117 lines
4.3 KiB
C#

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<UIManager.ViewScene> 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<UIManager.ViewScene> 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);
}
}