feat(battle-engine): full-surface app-type god-object/manager stubs (1692->1586 true)

Make the minimal hand shims partial + generate full member surface for the manager/
task/controller god-objects (LoadingViewManager/DeckUpdateTask/MyPageTask/ReplayController/
PlayerControllerForWatching/WatchDataHandler/EvolutionTouchProcessor/StoryChapterSelection
Utility/NonDialogPopup). NonDialogPopup given MonoBehaviour base + hand Close() removed
(superseded by full surface). LoadTask dup deleted (already copied verbatim). RoomMatch
watch/replay closure types stubbed. Copied 8 more closure files.

CS0246-in-generated-signature masking note: 4 such errors were hiding ~1582 — generated
CS0246 masks as hard as header CS0246; the real frontier is 1586 (CS7036 base-ctor +
member-level), 0 structural.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
gamer147
2026-06-05 22:33:37 -04:00
parent fce02a6250
commit 4be630bd09
24 changed files with 2285 additions and 10 deletions

View File

@@ -0,0 +1,17 @@
// AUTO-GENERATED no-op stubs (m1_stub_gen) from Shadowverse_Code_2026-05-23\Wizard\DeckUpdateTask.cs
namespace Wizard
{
public partial class DeckUpdateTask
{
public partial class DeckUpdateTaskParam { }
public partial class DeckUpdateTaskParamWithSubClass { }
private const int IS_DECK_DELETE_OFF = 0;
private const int IS_DECK_DELETE_ON = 1;
private Format _updateDeckFormat;
public AchievedInfo AchievedInfo { get; set; }
public DeckUpdateTask() { }
public void SetParameter(int deck_no, int class_id, int leader_skin_id, bool isRandomLeaderSkin, int[] leaderSkinIdList, long sleeve_id, string deck_name, bool is_delete, int[] card_id_array, Format format, string myRotationId) { }
public void SetParameterWithSubClass(int deckNo, int classId, int subClassId, int leaderSkinId, bool isRandomLeaderSkin, int[] leaderSkinIdList, long sleeveId, string deckName, bool isDelete, int[] cardIdArray, Format format) { }
protected int Parse() => default!;
}
}

View File

@@ -0,0 +1,38 @@
// AUTO-GENERATED no-op stubs (m1_stub_gen) from Shadowverse_Code_2026-05-23\Wizard.Battle.Touch\EvolutionTouchProcessor.cs
using System;
using System.Collections.Generic;
using System.Linq;
using Cute;
using UnityEngine;
using Wizard.Battle.Resource;
using Wizard.Battle.UI;
using Wizard.Battle.View.Vfx;
namespace Wizard.Battle.Touch
{
public partial class EvolutionTouchProcessor
{
private readonly BattleManagerBase _battleMgr;
private readonly BattlePlayer _battlePlayer;
private readonly IEnumerable<BattleCardBase> _targetCards;
private GameObject _lastFocusedObject;
private BattleCardBase _lastFocusedCard;
private InputMgr _inputMgr;
private IBattleResourceMgr _resourceMgr;
private bool _isForceEnd;
private bool _isDetailPanelEvolution;
public Func<VfxBase> OnAfterEvolveDragSelect;
private bool _stopSelectFlag;
private List<SkillBase> _selectSkills;
private readonly Prediction _prediction;
private readonly Func<BattleCardBase, List<BattleCardBase>, List<SkillBase>, bool, SkillTargetSelectTouchProcessor> _getSkillTargetSelectTouchProcessorFunc;
public EvolutionTouchProcessor(BattleManagerBase battleMgr, InputMgr inputMgr, IBattleResourceMgr resourceMgr, bool inDetailPanelEvolution, Func<BattleCardBase, List<BattleCardBase>, List<SkillBase>, bool, SkillTargetSelectTouchProcessor> getSkillTargetSelectTouchProcessorFunc, Prediction prediction) { }
public VfxBase Start() => global::Wizard.Battle.View.Vfx.NullVfx.GetInstance();
public VfxBase Update(float dt, Camera camera) => global::Wizard.Battle.View.Vfx.NullVfx.GetInstance();
public VfxWith<ITouchProcessor> End() => default!;
protected VfxBase CreateEvolutionSelectEndVfx(BattleCardBase targetCard) => global::Wizard.Battle.View.Vfx.NullVfx.GetInstance();
private BattleCardBase GetBattleCardFromObject(GameObject cardObject) => default!;
public virtual VfxBase ShowEvolutionMessage() => global::Wizard.Battle.View.Vfx.NullVfx.GetInstance();
public virtual bool CheckIsEnd() => default!;
public void SetStopSelectFlag() { }
}
}

View File

@@ -0,0 +1,40 @@
// AUTO-GENERATED no-op stubs (m1_stub_gen) from Shadowverse_Code_2026-05-23\Wizard\LoadingViewManager.cs
using Cute;
using UnityEngine;
namespace Wizard
{
public partial class LoadingViewManager
{
private LoadingInScene _lodingInSceneObj;
private bool _loadingInSceneForce;
private bool _loadingInSceneCenterForce;
private LoadingInScene _lodingInSceneCenterObj;
private LoadingInScene _lodingInSceneMatchingObj;
private LoadingInScene _lodingInSceneBattleObj;
private LoadingBase _loadingInDownLoad;
private LoadingInScene _loadingInNetworkOffline;
private GameObject _bgDownloadInfo;
private int _loadingCnt;
private const float LOADINGINSCENE_ALPHA = 1f;
private const float LOADINGINSCENE_PANELFADEINDUR = 0.1f;
public bool IsLoadingScene { get; set; }
public void CreateResourceDownload(LoadingDownLoad.eType Type) { }
public void FadeOutResourceDownload() { }
public void CloseResourceDownload() { }
public bool IsOpenAny() => default!;
public bool IsEnableInSceneCenterObj() => default!;
public void CreateInScene(bool notBlack = false, bool notCollider = false, bool force = true, int playIndex = -1) { }
public void CloseInScene(bool force = true) { }
public LoadingInScene CreateInSceneMatching(bool notBlack = false, bool notCollider = false) => default!;
public LoadingInScene CloseInSceneMatching() => default!;
public LoadingInScene CreateInSceneBattle(bool notBlack = false, bool notCollider = false) => default!;
public LoadingInScene CloseInSceneBattle() => default!;
public void CreateInSceneCenter(bool notBlack = false, bool notCollider = false, bool force = true, string overrideText = null) { }
public void CloseInSceneCenter(bool force = true, bool disableCollider = false) { }
public void CreateInSceneNetworkOffline() { }
public void CloseInSceneNotNetwork() { }
public void CreateBackgroundDownloadInfo() { }
public void DestroyBackgroundDownloadInfo() { }
public void UpdateLoadingNum(int percent) { }
}
}

View File

@@ -0,0 +1,19 @@
// AUTO-GENERATED no-op stubs (m1_stub_gen) from Shadowverse_Code_2026-05-23\Wizard\MyPageTask.cs
using System;
using System.Collections.Generic;
using Cute;
using LitJson;
using UnityEngine;
using Wizard.Lottery;
namespace Wizard
{
public partial class MyPageTask
{
public partial class MyPageTaskParam { }
private const string MAINTENANCE_TIME_KEY = "maintenance_time";
public MyPageTask() { }
public void SetParameter() { }
protected int Parse() => default!;
private void ShowNotification(JsonData responseData) { }
}
}

View File

@@ -0,0 +1,12 @@
// AUTO-GENERATED no-op stubs (m1_stub_gen) from Shadowverse_Code_2026-05-23\Wizard.Battle.View\NonDialogPopup.cs
using System;
using UnityEngine;
namespace Wizard.Battle.View
{
public partial class NonDialogPopup
{
public Action OnClose;
public virtual void Close() { }
private void OnDestroy() { }
}
}

View File

@@ -0,0 +1,126 @@
// AUTO-GENERATED no-op stubs (m1_stub_gen) from Shadowverse_Code_2026-05-23\Wizard.RoomMatch\PlayerControllerForWatching.cs
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using Cute;
using LitJson;
using UnityEngine;
using Wizard.ErrorDialog;
using Wizard.Scripts.Network.Data.TableData.Arena.TwoPick;
namespace Wizard.RoomMatch
{
public partial class PlayerControllerForWatching
{
public partial struct TwoPickChoice { }
public enum SEND_PARAMETER
{
InitWatch,
Watch,
GetDeck,
users,
wSeq,
pRSeq
}
public enum STATE
{
INIT = -1,
PREPARATION = 200,
READY = 201,
LOAD = 202,
LOADEND = 310,
BATTLE = 400,
MAX = 400
}
private const float WATCH_INTERVAL = 2f;
private const float ADMIN_WATCH_INTERVAL = 0.2f;
private const int LOADING_TIMER = 30;
protected const int ROOM_TIME_OUT = 30;
private const float INIT_WATCH_TIME_OUT_MILLI_SECOND = 15f;
public const string MULTI_DECK_KEY_REMATCH = "MultiDeckRematch";
private bool _isBattleWatchStart;
private bool isExistBattle;
private bool isEmitEnterRoom;
private NetworkWatchBattleMgr _networkBattleMgr;
private WatchDataHandler _watchDataHandler;
private Coroutine _coroutineBeforeBattle;
private float _constWaitTime;
private Coroutine _timeOutCoroutine;
private Coroutine _timeOutResultCoroutine;
private int _currentState;
private float _roomTimeOutCounter;
protected bool _isTimeOutSelf;
private float _watchEmitInterval;
private bool _receivedBattleInfo;
private bool resetSeq;
public TwoPickWatchData TwoPickData;
public bool isRoomEmitWait;
private int _leaveCountOwner;
private int _leaveCountGuest;
private List<int> _saveTwoPickDeck;
private List<TwoPickCardSelectBase.PICK_SIDE> _selectPickSide;
public bool IsReceivedInitWatch { get; set; }
public int SeqenceNo { get; set; }
public bool IsExistBattleReceiver { get; set; }
public PlayerControllerForWatching(Player target, RoomConnectController room) { }
public void ResetWatchHandler() { }
public void ResetReceiveEvent() { }
public int GetCurrentState() => default!;
private IEnumerator StartWatch() => default!;
private Dictionary<string, object> CreateInitWatchData() => default!;
public void Init(bool isRecovery) { }
public void EnterRoomBattleServer() { }
public void InitilizeRoomBattleServer(string roomId) { }
public void EnterRoomServer(string roomId) { }
private void OnSuccessWatchRoom(RoomBattleWatchTaskBase task, string roomId) { }
public void SetupUserInfo(RoomBattleWatchTaskBase.UserInfo receiveData, Player player) { }
private new void ConnectAPI(BaseTask task, Action callback) { }
private void ServerError(int in_ErrorNo) { }
public void OnGatheringError(int resultCode, UIManager.ViewScene scene) { }
public void OnGatheringError(string title, string text, UIManager.ViewScene scene) { }
private void ChangeViewScene(UIManager.ViewScene scene) { }
public void OnReceived(Dictionary<string, object> received) { }
public void ReceiveLeaveCount(Dictionary<string, object> received) { }
public void ReceiveWaitTime(float waitTime) { }
public void ReceiveBanDeckDecide(Dictionary<string, object> received, bool enableEventCall) { }
public static bool IsChangeDeckList(List<DeckData> oldDeckData, List<DeckData> newDeckData) => default!;
public void ReceiveInitWatchDeckList(Dictionary<string, object> received, bool enableEventCall) { }
private void ReceivedWatch(Dictionary<string, object> received) { }
public void ReceiveOpponentBeginCreateDeck() { }
public void ReceiveTwoPickBeginCreateDeck(Dictionary<string, object> getData) { }
public void ReceiveTwoPickSelectClass(Dictionary<string, object> getData) { }
private void ReceivedGetDeck(Dictionary<string, object> received) { }
private void StartTimeOut(int timer) { }
private void StopTimeOut() { }
private void StartResultTimeOut(int timer) { }
private void StopResultTimeOut() { }
private IEnumerator StartTimeOutCorutine(int timer) => default!;
private void ShowErrorDialog() { }
private void ReturnScene() { }
private void ChangeScene() { }
private IEnumerator BattleEndCoroutin(Action callback) => default!;
private IEnumerator WaitTillBattleCreate() => default!;
private int DecideFirstUser(int id) => default!;
private bool isOwner(int id) => default!;
private void ParseWatchData(Dictionary<string, object> received, out int state) { state = default!; }
private void ParseLeaveCount(Dictionary<string, object> received, int state, bool anyEntry) { }
public TwoPickCardSelectBase.PICK_SIDE GetTwoPickSelectSide(int pickTurn) => default!;
private void ParseTwoPickSelectCard(Dictionary<string, object> getData) { }
private void Receive2PickSelectCardInfo(Dictionary<string, object> deckInfo) { }
public void Receive2PickSelectCardSet(Dictionary<string, object> getData) { }
public void Receive2PickDeckInfo(Dictionary<string, object> deckInfo) { }
public void ReceiveDraftDeckCreate(Dictionary<string, object> draftDeck) { }
private void Convert2PickDeckData(Dictionary<string, object> draftDeck, out List<int> classId, out List<int> skinId, out List<int>[] tempCardIdList) { classId = default!; skinId = default!; tempCardIdList = default!; }
protected void TwoPickCandidateCardSet(Dictionary<string, object> inGetData) { }
public void TwoPickReset() { }
public void ReceiveTwoPickSelectedCardNumber(Dictionary<string, object> getData) { }
public void ReceiveRoomNotify(Dictionary<string, object> getData) { }
public void ReceiveChatStamp(Dictionary<string, object> getData) { }
protected void TwoPickDeckReset() { }
public void ReceiveDeckEntry(Dictionary<string, object> getData) { }
public void ReceiveRematch() { }
public void CreateRoomServer(RoomConnectController room) { }
public void EmitGetDeck(int viewerId) { }
public void OnLeaveGuest() { }
}
}

View File

@@ -0,0 +1,29 @@
// AUTO-GENERATED no-op stubs (m1_stub_gen) from Shadowverse_Code_2026-05-23\Wizard.Replay\ReplayController.cs
using System.Collections;
using System.Collections.Generic;
using Wizard.RoomMatch;
namespace Wizard.Replay
{
public partial class ReplayController
{
private NetworkReplayBattleMgr _networkBattleMgr;
private float _constWaitTime;
private Player OwnTarget;
private Player OppoTarget;
private Dictionary<string, object> ReplayLog;
private Matching _matching;
public ReplayDataHandler _replayDataHandler { get; set; }
public static void StartPlayReplay(ReplayInfoItem replayInfo, UIManager.ViewScene backScene, UIManager.ChangeViewSceneParam backSceneParam = null) { }
public static void StartPlayReplay(UIManager.ViewScene backScene, UIManager.ChangeViewSceneParam backSceneParam = null, bool isNewReplay = false, string battleId = "") { }
private ReplayController(bool isNewReplay, string battleId) { }
private IEnumerator SetUpBattle(bool isNewReplay, string battleId) => default!;
private void SetupUserInfo(RoomBattleWatchTaskBase.UserInfo reveive, Player player) { }
private void SetupReplayData(bool isNewReplay, string battleId) { }
private IEnumerator WaitTillBattleCreate(bool isNewReplay, string battleId) => default!;
private void OnReplayReady() { }
private int DecideFirstUser(int id) => default!;
private bool IsOwner(int id) => default!;
private void ParseReplayData() { }
private Dictionary<string, object> ParseData(Player player) => default!;
}
}

View File

@@ -0,0 +1,27 @@
// AUTO-GENERATED no-op stubs (m1_stub_gen) from Shadowverse_Code_2026-05-23\Wizard.Story.ChapterSelection\StoryChapterSelectionUtility.cs
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using Cute;
using UnityEngine;
namespace Wizard.Story.ChapterSelection
{
public partial class StoryChapterSelectionUtility
{
public static TopBar CreateTopBar(GameObject parent, SelectedStoryInfo storyInfo, UIManager.ChangeViewSceneParam changeViewSceneParam, int sortingOrder) => default!;
public static UIManager.ViewScene GetBackScene(SelectedStoryInfo storyInfo) => default!;
public static TitlePanelBase CreateTitlePanel(GameObject parent, CharaInfoPanel charaInfoPrefab, SectionInfoPanel sectionInfoPrefab, SelectedStoryInfo storyInfo) => default!;
private static TitlePanelBase CreateCharaInfoPanel(GameObject parent, CharaInfoPanel prefab, int charaId) => default!;
private static TitlePanelBase CreateSectionInfoPanel(GameObject parent, SectionInfoPanel prefab, string sectionName) => default!;
public static AreaSelInfo CreateChapterRewardPanel(GameObject parent, AreaSelInfo prefab) => default!;
public static IEnumerator StoryInfoTaskCoroutine(SelectedStoryInfo storyInfo) => default!;
public static IEnumerator LoadAiMasterCoroutine(IReadOnlyList<StoryChapterData> chapterDatas) => default!;
private static List<AICsvLoadingInfo> GetAiMasterLoadInfos(IReadOnlyList<StoryChapterData> chapterDatas) => default!;
public static void RegisterMaintenanceChapters(IReadOnlyList<StoryChapterData> chapterDatas) { }
private static void RegisterMaintenanceChapter(StoryChapterData chapterData) { }
private static bool IsMaintenanceChapter(StoryChapterData chapterData) => default!;
private static bool IsMaintenanceAiDeck(int aiId) => default!;
public static void RegisterStoryBattleDeck(DeckData deck) { }
public static void RegisterStoryBattleData(BattleSettingData data) { }
}
}

View File

@@ -0,0 +1,43 @@
// AUTO-GENERATED no-op stubs (m1_stub_gen) from Shadowverse_Code_2026-05-23\Wizard.RoomMatch\WatchDataHandler.cs
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Wizard.RoomMatch
{
public partial class WatchDataHandler
{
protected bool isEmitEnterRoom;
protected NetworkWatchBattleMgr _networkBattleMgr;
protected RoomConnectController _room;
private PlayerControllerForWatching _controllerForWatching;
protected StockReceiveMgr stockReceiveMessageMgr;
protected bool _isNewReplay;
protected string _battleId;
protected Coroutine _coroutineInBattle;
protected const string DATA_PARAM_VID = "vid";
protected const string DATA_PARAM_URI = "uri";
protected const string DATA_PARAM_TIME = "time";
protected const string DATA_PARAM_TYPE = "type";
protected const string DATA_PARAM_VALUE = "value";
protected const string DATA_PARAM_CHAT_STAMP = "chatStamp";
protected float ConstWaitTime;
private bool isFirstSeqSetting;
public int receivedMaxSequenceNum { get; set; }
public bool IsSetFirstCards { get; set; }
public WatchDataHandler(NetworkWatchBattleMgr nBattleMgr, RoomConnectController room, float waitTime, bool isNewReplay = false, string battleId = "") { }
protected virtual void Setup(NetworkWatchBattleMgr nBattleMgr, RoomConnectController room, float waitTime) { }
public virtual void Stop() { }
protected virtual void CheckConnection() { }
public void OnBattleReceived(Dictionary<string, object> received) { }
protected virtual void ParseBattleWatchData(Dictionary<string, object> received) { }
private void SetFirstCardsFromDeal(Dictionary<string, object> received) { }
protected bool IsBattleData(Dictionary<string, object> data) => default!;
public int GetWatchSequenceNum() => default!;
public int GetCurrentSequenceNumber() => default!;
public bool IsIncludedUri(string uri) => default!;
protected virtual IEnumerator StockDataPlayer() => default!;
protected void NextStockReceive(Dictionary<string, object> frontData, bool isUpdateSequence = true) { }
public bool isOwner(string idStr) => default!;
}
}

View File

@@ -35,6 +35,7 @@ namespace Wizard.Battle.View.Vfx { public partial class DeckOutWinVfx : Sequenti
namespace Wizard.Story.ChapterSelection.SelectionProcessing.BattleResult { public partial class DeckSelectionConfirmDialogDisplay : ProcessingBase { } }
namespace Wizard.Story.ChapterSelection.SelectionProcessing.BattleResult { public partial class DeckSelectionDialogDisplay : ProcessingBase { } }
namespace Wizard.Battle.View.Vfx { public partial class DeckSelfSummonVfx : SequentialVfxPlayer { } }
namespace Wizard { public partial class DeckUpdateTask : BaseTask { } }
namespace Wizard.Battle.View.Vfx { public partial class DefaultOpeningVfx : OpeningVfx { } }
namespace Wizard.Battle.View.Vfx { public partial class DelaySetupVfx : VfxBase { } }
namespace Wizard.Battle.View.Vfx { public partial class DestroyVfx : VfxWithLoadingSequential { } }
@@ -82,10 +83,12 @@ namespace Wizard.Battle.View.Vfx { public partial class MetamorphoseHandCardVfx
namespace Wizard.Battle.View.Vfx { public partial class MetamorphoseInPlayCardVfx : SequentialVfxPlayer { } }
namespace Wizard.Battle.View.Vfx { public partial class MoveToDeckVfx : SequentialVfxPlayer { } }
namespace Wizard.Battle.View.Vfx { public partial class MulliganEndVfx : SequentialVfxPlayer { } }
namespace Wizard { public partial class MyPageTask : BaseTask { } }
namespace Wizard.Battle.UI { public partial class MyRotationBonusItem : MonoBehaviour { } }
namespace Wizard.Battle.UI { public partial class NecromanceInfomationUI : ClassInfomationUIBase { } }
namespace Wizard.Battle.View.Vfx { public partial class NecromanceSkillActivationVfx : LoadAndPlayEffectVfx { } }
namespace Wizard.Battle.UI { public partial class NemesisInfomationUI : ClassInfomationUIBase { } }
namespace Wizard.Battle.View { public partial class NonDialogPopup : MonoBehaviour { } }
namespace Wizard.Battle.View { public partial class NullClassBattleCardView : NullBattleCardView { } }
namespace Wizard.Battle.View { public partial class NullEnemyBattleView : BattleEnemyView { } }
namespace Wizard.Battle.View { public partial class NullFieldBattleCardView : FieldBattleCardView { } }
@@ -105,6 +108,7 @@ namespace Wizard.Battle.View.Vfx { public partial class PlayerAndEnemyReadyVfx :
namespace Wizard.Battle.View { public partial class PlayerClassBattleCardView : ClassBattleCardViewBase { } }
namespace Wizard.Battle.View.Vfx { public partial class PlayerClassCardVfxCreator : ClassCardVfxCreatorBase { } }
namespace Wizard.RoomMatch { public partial class PlayerControllerForOwn : PlayerController { } }
namespace Wizard.RoomMatch { public partial class PlayerControllerForWatching : PlayerController { } }
namespace Wizard.Battle.View.Vfx { public partial class PlayerDeckOutVfx : SequentialVfxPlayer { } }
namespace Wizard.Battle.View.Vfx { public partial class PlayerDrawCardVfx : SequentialVfxPlayer { } }
namespace Wizard.Battle.View.Vfx { public partial class PlayerEndDrawVfx : SequentialVfxPlayer { } }