Files
SVSimServer/SVSim.BattleEngine/Shim/View/ClosureStubs.cs
gamer147 4b9a603cd4 feat(battle-engine): full View/VFX/UI/Touch/Story type closure (4254->3916, unmasked)
Generate no-op shells for the entire stop-listed View/Vfx/UI/Touch/Story missing-
type closure (~180 types) + 5 copyable engine files. Net-new shells emitted base-less,
so override members are stripped via the new --no-override generator flag. SDK/BCL
over-reach (Adjust/GZipStream/Socket*) and non-battle Story-world clusters reduced to
minimal/empty stubs instead of full-surface. Nested-type closure (BuildInfo/BattleDialog/
ROOM_URI/FuncGetCantAttackText) placed top-level in their decomp namespaces.

Clearing the last View CS0115 unmasked the true member-level frontier: 3916 errors,
0 generated/structural errors, now dominated by Unity-type + god-object members.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-05 22:01:37 -04:00

36 lines
1.5 KiB
C#

// AUTHORED SHIM (not copied). Closure stubs for NESTED types whose unqualified
// references survive in net-new generated no-op shells. The generator emits each
// shell as a base-less `partial class` (it never re-emits the decomp base clause),
// so a derived view that referenced an inherited nested type (e.g. UnitBattleCardView
// using BattleCardView.BuildInfo) loses the inheritance path and the name resolves
// only at NAMESPACE scope. Declaring these top-level in the decomp namespace lets the
// shell's signatures resolve. Safe because nothing crosses the engine boundary with
// these types (zero CS0029 mismatches) — they exist purely so the no-op shells compile.
namespace Wizard.Battle.View
{
// nested in BattlePlayerViewBase (decomp); referenced unqualified by BattlePlayerView shell.
public class BattleDialog { }
public enum BattleDialogItem { Menu, Retire }
// nested in BattleCardView/BattleCardBase (decomp); referenced unqualified by *BattleCardView shells.
public class BuildInfo { }
}
namespace Wizard.Battle.UI
{
// private delegate nested in BattleLogUtility (decomp); referenced by its generated partial.
public delegate string FuncGetCantAttackText();
}
namespace Wizard.RoomMatch
{
// nested enum in PlayerController (decomp); referenced by PlayerControllerForOwn shell.
public enum ROOM_URI { }
}
namespace Wizard.Battle.View.Vfx
{
// VfxBase subclass declared in StartPickCardVfx.cs (decomp); referenced as a type by StartSummonCardVfx shell.
public class WaitUntilCardIsQueuedToBePlayedVfx { }
}