From 70a2c3e8ed7cc6686a484c7f96ac2228270b7cc8 Mon Sep 17 00:00:00 2001 From: gamer147 Date: Fri, 5 Jun 2026 21:33:00 -0400 Subject: [PATCH] feat(battle-engine): View/Room/Vfx type wave (5600->4850) Full-surface stubs for ICardVfxCreator(iface), SelectedStoryInfo, ImageSelection, IReadOnlyVoiceInfo, RoomConnectController(+InitializeParameter/enums), RoomRuleSetting, VideoHostingHUD(+HUDMode), TabList, BattleCardView.AttackTargetSelectInfo, ProtectionColorType. Wired hand shims partial + MonoBehaviour bases; let generated supersede hand-written nested enums (decomp-authoritative values). SocketManager kept as minimal SDK hand shim. ClosureStubs for ~14 referenced empties. Co-Authored-By: Claude Opus 4.8 --- ...BattleCardView_AttackTargetSelectInfo.g.cs | 26 +++ .../Shim/Generated/ICardVfxCreator.g.cs | 51 ++++++ .../Shim/Generated/IReadOnlyVoiceInfo.g.cs | 19 ++ .../Shim/Generated/ImageSelection.g.cs | 93 ++++++++++ .../Shim/Generated/ProtectionColorType.g.cs | 11 ++ .../Shim/Generated/RoomConnectController.g.cs | 162 ++++++++++++++++++ ...ConnectController_InitializeParameter.g.cs | 32 ++++ .../Shim/Generated/RoomRuleSetting.g.cs | 19 ++ .../Shim/Generated/SelectedStoryInfo.g.cs | 66 +++++++ .../Shim/Generated/TabList.g.cs | 27 +++ .../Shim/Generated/VideoHostingHUD.g.cs | 85 +++++++++ .../Shim/GodObjects/ClosureStubs.cs | 28 +++ .../Shim/GodObjects/GodObjects.cs | 5 +- .../Shim/View/SettingsUiStubs.cs | 7 +- SVSim.BattleEngine/Shim/View/VfxShim.cs | 2 +- .../Shim/View/ViewUiTouchStubs.cs | 18 +- 16 files changed, 632 insertions(+), 19 deletions(-) create mode 100644 SVSim.BattleEngine/Shim/Generated/BattleCardView_AttackTargetSelectInfo.g.cs create mode 100644 SVSim.BattleEngine/Shim/Generated/ICardVfxCreator.g.cs create mode 100644 SVSim.BattleEngine/Shim/Generated/IReadOnlyVoiceInfo.g.cs create mode 100644 SVSim.BattleEngine/Shim/Generated/ImageSelection.g.cs create mode 100644 SVSim.BattleEngine/Shim/Generated/ProtectionColorType.g.cs create mode 100644 SVSim.BattleEngine/Shim/Generated/RoomConnectController.g.cs create mode 100644 SVSim.BattleEngine/Shim/Generated/RoomConnectController_InitializeParameter.g.cs create mode 100644 SVSim.BattleEngine/Shim/Generated/RoomRuleSetting.g.cs create mode 100644 SVSim.BattleEngine/Shim/Generated/SelectedStoryInfo.g.cs create mode 100644 SVSim.BattleEngine/Shim/Generated/TabList.g.cs create mode 100644 SVSim.BattleEngine/Shim/Generated/VideoHostingHUD.g.cs diff --git a/SVSim.BattleEngine/Shim/Generated/BattleCardView_AttackTargetSelectInfo.g.cs b/SVSim.BattleEngine/Shim/Generated/BattleCardView_AttackTargetSelectInfo.g.cs new file mode 100644 index 0000000..8b8b5be --- /dev/null +++ b/SVSim.BattleEngine/Shim/Generated/BattleCardView_AttackTargetSelectInfo.g.cs @@ -0,0 +1,26 @@ +// AUTO-GENERATED no-op stubs (m1_stub_gen) from Shadowverse_Code_2026-05-23\Wizard.Battle.View\BattleCardView.cs +using System; +using System.Collections.Generic; +using System.Linq; +using CriWare; +using Cute; +using UnityEngine; +using Wizard.Battle.Resource; +using Wizard.Battle.View.Vfx; +namespace Wizard.Battle.View +{ +public partial class BattleCardView +{ +public partial class AttackTargetSelectInfo +{ + public readonly Queue _attackPairsCardIsInvolvedIn; + public bool _isBeingSelectedInAttack; + private int _uneffectedByAttackTargettingCount; + public AttackSelectControl.AttackPair CurrentAttackPairCardIsInvolvedIn { get; set; } + public bool IsCardInvolvedInAttack { get; set; } + public bool IsUneffectedByAttackTargetting { get; set; } + public AttackTargetSelectInfo() { } + public virtual Action DisableAttackTargettingMovement() => default!; +} +} +} diff --git a/SVSim.BattleEngine/Shim/Generated/ICardVfxCreator.g.cs b/SVSim.BattleEngine/Shim/Generated/ICardVfxCreator.g.cs new file mode 100644 index 0000000..4adf2f0 --- /dev/null +++ b/SVSim.BattleEngine/Shim/Generated/ICardVfxCreator.g.cs @@ -0,0 +1,51 @@ +// AUTO-GENERATED no-op stubs (m1_stub_gen) from Shadowverse_Code_2026-05-23\Wizard.Battle.View.Vfx\ICardVfxCreator.cs +using UnityEngine; +namespace Wizard.Battle.View.Vfx +{ +public partial interface ICardVfxCreator +{ + VfxBase CreateDraw(Vector3 pos, bool isCardRare); + VfxBase CreatePick(); + VfxBase CreateDestroy(BattleCardBase.DeathTypeInformation deathTypes, BattlePlayerBase battlePlayerBase); + VfxBase CreateDestroyHand(BattleCardBase.DeathTypeInformation deathTypes, BattlePlayerBase battlePlayerBase); + VfxBase CreateBanish(BattleCardBase.DeathTypeInformation deathTypes, BattlePlayerBase battlePlayerBase); + VfxWithLoading CreateBanishHand(BattleCardBase.DeathTypeInformation deathTypes, BattlePlayerBase battlePlayerBase); + VfxBase CreateGeton(Transform vehicleCardPosition, IBattleCardView vehicleCardView, BattleCardBase.DeathTypeInformation deathTypes, BattlePlayerBase battlePlayerBase); + VfxWithLoading CreateFusionHand(BattlePlayerBase battlePlayerBase, IBattleCardView fusionCard, bool isFusionMetamorphose); + VfxBase CreateParameterChange(BattleCardBase.ParameterChangeInformation parameterChangeInfo, bool isDead = false, bool isEvolve = false, bool skipWait = false); + VfxBase CreateBuffStart(BattleCardBase.ParameterChangeInformation parameterChangeInfo, bool useWait = true); + VfxBase CreateBuffStop(BattleCardBase.ParameterChangeInformation parameterChangeInfo, bool useWait = true); + VfxBase CreateDebuffStart(BattleCardBase.ParameterChangeInformation parameterChangeInfo, bool useWait = true); + VfxBase CreateDebuffStop(BattleCardBase.ParameterChangeInformation parameterChangeInfo, bool useWait = true); + VfxBase CreateBuffStartInHand(BattleCardBase.ParameterChangeInformation parameterChangeInfo, bool useWait = true, bool isDebuff = false); + VfxBase CreateGuardStart(); + VfxBase CreateGuardStop(); + VfxBase CreateKillerStart(); + VfxBase CreateKillerStop(); + VfxBase CreateProtectionStart(ProtectionColorType tyep); + VfxBase CreateProtectionStop(); + VfxBase CreateNotBeAttackedStart(); + VfxBase CreateNotBeAttackedStop(); + VfxBase CreateUntouchableStart(); + VfxBase CreateUntouchableStop(); + VfxBase CreateQuick(bool hasAttacksRemaining, bool isCardUnableToAttackClass); + VfxBase CreateSneakStart(); + VfxBase CreateSneakStop(); + VfxBase CreateForceCantAttackStart(); + VfxBase CreateForceCantAttackStop(); + VfxBase CreateDrainStart(); + VfxBase CreateDrainStop(); + VfxBase CreateAttack(IBattleCardView attackCardView, IBattleCardView attackTargetCardView); + VfxBase CreateAttackFloatUp(); + VfxBase CreateAttackFloatDown(bool isAttacker, bool isDead, int attackableCount); + VfxBase CreateMoving(Vector3 pos); + VfxBase CreateDamage(int damage, int currentHealth, int maxHealth, int baseHealth, bool isReflectedDamage, bool IsSkillDamage); + VfxBase CreateHealing(int healAmount, int currentHealth, int maxHealth, int baseHealth); + VfxBase CreateMaskCardInPlay(); + VfxBase CreateReflectionStart(); + VfxBase CreateReflectionStop(); + VfxBase CreateHeavenlyAegisStart(); + VfxBase CreateHeavenlyAegisStop(); + VfxBase CreateChangeAffiliation(BattleCardBase card, CardBasePrm.ClanType clan, bool showEffect); +} +} diff --git a/SVSim.BattleEngine/Shim/Generated/IReadOnlyVoiceInfo.g.cs b/SVSim.BattleEngine/Shim/Generated/IReadOnlyVoiceInfo.g.cs new file mode 100644 index 0000000..a6cdede --- /dev/null +++ b/SVSim.BattleEngine/Shim/Generated/IReadOnlyVoiceInfo.g.cs @@ -0,0 +1,19 @@ +// AUTO-GENERATED no-op stubs (m1_stub_gen) from Shadowverse_Code_2026-05-23\Wizard.Battle.View\IReadOnlyVoiceInfo.cs +namespace Wizard.Battle.View +{ +public partial interface IReadOnlyVoiceInfo +{ + bool HasSummonTokenVoice { get; set; } + string VoiceId { get; set; } + VoiceAndWaitTime GetPlayVoice(IReadOnlyBattleCardInfo cardInfo, BattlePlayerReadOnlyInfoPair playerPair, int executedFixedUseCostIndex, int skillVoiceIndex); + VoiceAndWaitTime GetSummonTokenVoice(); + VoiceAndWaitTime GetEvolutionVoice(); + VoiceAndWaitTime GetAttackVoice(bool isEvolution); + VoiceAndWaitTime GetDestroyVoice(bool isEvolution, bool isExecutedWhiteRitual); + VoiceAndWaitTime GetSkillVoice(bool isEvolution, int skillIndex); + int GetSkillVoiceCount(bool isEvolution); + void SetDestroyCardId(int id); + int AddAttachSkillVoice(string id); + string GetAttachSkillVoice(int index); +} +} diff --git a/SVSim.BattleEngine/Shim/Generated/ImageSelection.g.cs b/SVSim.BattleEngine/Shim/Generated/ImageSelection.g.cs new file mode 100644 index 0000000..8f8e9ee --- /dev/null +++ b/SVSim.BattleEngine/Shim/Generated/ImageSelection.g.cs @@ -0,0 +1,93 @@ +// AUTO-GENERATED no-op stubs (m1_stub_gen) from Shadowverse_Code_2026-05-23\Wizard.UI.Dialog.ImageSelection\ImageSelection.cs +using System; +using System.Collections; +using System.Collections.Generic; +using Cute; +using UnityEngine; +namespace Wizard.UI.Dialog.ImageSelection +{ +public partial class ImageSelection +{ + public partial class PageItem { } + public partial class Page { } + public partial class PageDisplayFrameItem { } + public partial class PageDisplayFrame { } + public partial class CategoryInfo { } + private delegate void OnClickPageItemDelegate(PageItem pageItem, PageDisplayFrame frame); + public delegate bool IsNewItemDelegate(); + public enum SelectType + { + SINGLE, + MULTI + } + private GameObject _partsBaseUI; + private GameObject _partsPageGrid; + private GameObject _partsMainItem; + private int _loadPageNumInAdvance; + private int _loadPageMaxNum; + private int _mainItemMaxNumPerPage; + private SelectType _selectType; + private bool _isNotSelectItemToGrey; + private ImageSelectionBaseUI _baseUI; + private PageDisplayFrame[] _pageDisplayFrameList; + private PageDisplayFrame _pageDisplayFrame_Main; + private PageDisplayFrame _pageDisplayFrame_Sub; + private Page _dummyPage; + private List _pageList; + private List _categoryInfoList; + private int _displayPageNo; + private PageItem _selectedPageItem; + private bool _isChangingDisplayPage; + private bool _isInterruptChangeDisplayPage; + private bool _isChangedPrevPageOnDrag; + private bool _isChangedNextPageOnDrag; + private bool _isChangedPrevPageOnPressBtn; + private bool _isChangedNextPageOnPressBtn; + private bool _isPressingPrevPageBtn; + private bool _isPressingNextPageBtn; + private float _timePressingPrevPageBtn; + private float _timePressingNextPageBtn; + private DialogBase _dialog; + public bool IsDuringReset { get; set; } + private void Awake() { } + public void Create(int allPanelDepthAddValue = 0, DialogBase dialog = null) { } + public List GetSelectedList() => default!; + public void SelectAll() { } + public void SelectCancelAll() { } + public void SetSelectAll(bool isSelect) { } + public IEnumerator Reset() => default!; + private void UnloadAll() { } + public void AddItem(string key, string category, bool isSelectable, IsNewItemDelegate isNewItemMethod, string loadTexPath, string fetchTexPath, bool isDisplaySprite, string name, string[] texts, Action onDisplay, Action onClick = null, Action onPress = null) { } + private void AddDummyPage() { } + private void RemoveDummyPage() { } + private void AddCategoryPage(CategoryInfo categoryInfo) { } + public void Open() { } + public void Close() { } + public void SetDisplayPage(int pageNo) { } + public void LoadDisplayPage() { } + public void UnloadAllPageExceptDisplayPage() { } + private void UnloadAllPageExceptBasePage(int basePageNo, int aroundOffset) { } + private void ToPrevPage(bool isPlaySe = false) { } + private void ToNextPage(bool isPlaySe = false) { } + private IEnumerator ChangeDisplayPage(bool isAnimate, bool isToNext = false, bool isPlaySe = false) => default!; + private void InterruptChangeDisplayPage() { } + private void SwapPageDisplayFrame() { } + private void OnClickPageItem(PageItem pageItem, PageDisplayFrame frame) { } + private void OnPressPageItem(PageItem pageItem, PageDisplayFrame frame, GameObject pressItem) { } + private void OnDragStart(GameObject g) { } + private void OnDrag(GameObject g, Vector2 delta) { } + private void OnPressToPrevBtn(GameObject g, bool state) { } + private void OnPressToNextBtn(GameObject g, bool state) { } + private void Update() { } + public string GetSelectedItemKey() => default!; + public int SelectItemWithKey(string key) => default!; + public void SelectMultiItem(List keyList) { } + private PageItem FindItemWithKey(string key, out int pageNo) { pageNo = default!; return default!; } + private void ChangeSelectItem(PageItem item) { } + private void UpdateSelectMark() { } + private void UpdateIsNewItem() { } + private int GetNormalizedPageNo(int pageNo) => default!; + private bool IsOnlyOnePage() => default!; + private void OnDestroy() { } +} +} diff --git a/SVSim.BattleEngine/Shim/Generated/ProtectionColorType.g.cs b/SVSim.BattleEngine/Shim/Generated/ProtectionColorType.g.cs new file mode 100644 index 0000000..1b2a251 --- /dev/null +++ b/SVSim.BattleEngine/Shim/Generated/ProtectionColorType.g.cs @@ -0,0 +1,11 @@ +// AUTO-GENERATED verbatim enum (m1_stub_gen) from Shadowverse_Code_2026-05-23/Wizard.Battle.View.Vfx/ProtectionColorType.cs +namespace Wizard.Battle.View.Vfx +{ +public enum ProtectionColorType +{ +DamageCut, +Indestructible, +MultiInvalid, +DamageReflection +} +} diff --git a/SVSim.BattleEngine/Shim/Generated/RoomConnectController.g.cs b/SVSim.BattleEngine/Shim/Generated/RoomConnectController.g.cs new file mode 100644 index 0000000..9a34d2e --- /dev/null +++ b/SVSim.BattleEngine/Shim/Generated/RoomConnectController.g.cs @@ -0,0 +1,162 @@ +// AUTO-GENERATED no-op stubs (m1_stub_gen) from Shadowverse_Code_2026-05-23\Wizard.RoomMatch\RoomConnectController.cs +using System; +using System.Collections; +using System.Collections.Generic; +using System.Diagnostics; +using Convention; +using Cute; +using LitJson; +using UnityEngine; +using Wizard.ErrorDialog; +namespace Wizard.RoomMatch +{ +public partial class RoomConnectController +{ + public partial class InitializeParameter { } + public partial class RoomUserData { } + public enum PositionMode + { + OWNER, + VISITOR, + WATCHER + } + public enum BattleRule + { + None, + Bo1, + Bo3, + Bo5, + Bo3Ban, + Bo5Ban + } + public enum FirstTurn + { + INVALID, + RANDOM, + OWNER_FIRST_TURN, + OWNER_SECOND_TURN, + MAX + } + public enum ConnectRoomResult + { + IDLE = -1, + TIMEOUT = -2, + ERROR = -3, + CONNECT_ERROR = -4, + SUCCESS = 0 + } + private enum RoomSetupErrorAction + { + CALL_ACTION, + GO_HOME, + GO_TITLE + } + private const float TIMEOUT_SEC = 10f; + public const int SERVER_ROOM_TYPE_NORMAL = 1; + public const int SERVER_ROOM_TYPE_TWOPICK = 2; + public const int SERVER_ROOM_TYPE_TWOPICK_BACK_DRAFT = 3; + public const int SERVER_ROOM_TYPE_BO3 = 4; + public const int SERVER_ROOM_TYPE_BO5 = 5; + public const int SERVER_ROOM_TYPE_TWOPICK_QUBE = 6; + public const int SERVER_ROOM_TYPE_HOF = 7; + public const int SERVER_ROOM_TYPE_TWOPICK_BO3 = 8; + public const int SERVER_ROOM_TYPE_TWOPICK_BO5 = 9; + public const int SERVER_ROOM_TYPE_WINDFALL = 10; + public const int SERVER_ROOM_TYPE_AVATAR = 11; + public const int ID_NUMBER_OF_DIGIT = 5; + public const int CONVENTION_ID_NUMBER_OF_DIGIT = 5; + private string _roomId; + private DialogBase _nodeErrorDialog; + public int TotalBattleNum; + public int TotalWatchBattleNum; + public bool IsRelease; + private Coroutine _timeOutCoroutine; + private RoomWatchEventDispatch _watchEventDispatch; + public bool IsWatchBattleLoadStart; + public ConnectRoomResult ConnectRoomResultType { get; set; } + public bool IsEnterErrorDeckCount { get; set; } + public bool IsTournament { get; set; } + public bool IsTournamentSettled { get; set; } + public bool IsTournamentTimeOutCheack { get; set; } + public string RoomID { get; set; } + public bool IsEnableGuildInviteButton { get; set; } + public bool IsJoinGuild { get; set; } + public string DisplayRoomID { get; set; } + public bool CanUseNonPossessionCard { get; set; } + public RoomBase RoomUIClass { get; set; } + public Matching MatchingClass { get; set; } + public static RoomDialog RoomDialog { get; set; } + public bool IsDisconnectSelf { get; set; } + public RealTimeNetworkAgent NetworkAgent { get; set; } + public RoomFormatEventHandler FormatEventHandler { get; set; } + public PlayerController OwnCtrl { get; set; } + public PlayerController OppoCtrl { get; set; } + public OpenRoomBattleGetRecoveryParamTask RecoveryTask { get; set; } + public PositionMode PositionModeValue { get; set; } + public BattleParameter BattleParameterInstance { get; set; } + public static bool IsAlreadyStartBattle { get; set; } + public FirstTurn FirstTurnType { get; set; } + public bool IsRoomRecovery { get; set; } + public bool IsConvention { get; set; } + public bool IsGuildChatPost { get; set; } + public ConventionInfo ConventionInfo { get; set; } + public long SelfSleeveIdForTwoPick { get; set; } + public bool IsGathering { get; set; } + public GatheringAutoJoinTaskInfo GatheringAutoJoinTaskInfo { get; set; } + private bool _isAutoJoinEntry { get; set; } + public bool IsReceivedInitWatch { get; set; } + public bool IsConnect { get; set; } + public bool IsAvatar { get; set; } + public bool IsMultiDeckHistoryClearSoon { get; set; } + public bool IsMultiDeckRule { get; set; } + public int SelectDeckCount { get; set; } + public int BattleUseDeckCount { get; set; } + public bool IsShowHighRankFormat { get; set; } + public bool IsTwoPick { get; set; } + public bool IsChaosFormat { get; set; } + public bool IsTwoPickDraftAPI { get; set; } + public bool IsWatch { get; set; } + public bool IsPlayer { get; set; } + public bool IsPermitFriendWatch { get; set; } + public bool IsPermitGuildWatch { get; set; } + public bool IsConventionRematchEnable { get; set; } + public bool IsEnableTurnSelect { get; set; } + public static bool IsDeckBanRule(BattleRule rule) => default!; + public static bool IsMultiDeck(BattleRule rule) => default!; + public static bool IsTwoPickFormat(NetworkDefine.ServerBattleType type) => default!; + public static bool IsShowHighRankRoomRuleFormat(BattleParameter battleFormatBase) => default!; + public static int RuleBattleDeckCount(BattleRule rule) => default!; + public static int RuleSelectDeckCount(BattleRule rule) => default!; + public static bool IsTwoPickDraftMatchingAPI(TwoPickFormat rule) => default!; + public static bool IsNormalMatchingAPI(BattleParameter rule) => default!; + public static DataMgr.BattleType RoomRuleToBattleType(BattleParameter battleParameter) => default!; + public void SetConventionInfo(ConventionRoomBattleWatchTask watchTask) { } + public RoomConnectController(InitializeParameter param) { } + public void InitializeWatchEventDispatch() { } + public void RemoveWatchEventDispath(bool isOwn) { } + public Matching_Room CreateMatchingRoom(bool isConvention, bool isGathering, BattleParameter battleParameter) => default!; + public void InitPlayerController() { } + public void InitializeOwnPlayer() { } + public void InitializeOpponentPlayer() { } + public IEnumerator StartConnect(string battleId = "") => default!; + private void InitTimeout() { } + private void StartTimeout() { } + public IEnumerator ConnectRecoveryRoom(OpenRoomBattleGetRecoveryParamTask task) => default!; + public IEnumerator ReSetConnectCoroutine(Matching matching) => default!; + private IEnumerator TimeMeasurement(float timeout) => default!; + public void DestroyRealTimeNetwork() { } + private void ExitRoomTask() { } + private IEnumerator ConnectRealTimeNetworkAgent(bool isFirstConnect) => default!; + private void TimeoutInitNetwork() { } + private void ConnectError() { } + private bool IsCheckConnectResultType() => default!; + private bool _ResultCheck(ConnectRoomResult result, RoomSetupErrorAction errorActionType, Action inDialogCloseAction = null) => default!; + public bool IsExistNodeErrorDialog() => default!; + private void _GoHome() { } + private void _MoveView(NetworkTask.ResultCode in_ResultCode) { } + public void ClearRoomRecoveryInfo() { } + public void CommonResultCodeError(int code) { } + private bool ResultCodeError(int code) => default!; + private bool ResultCodeErrorForWatcher(int code) => default!; +} +} diff --git a/SVSim.BattleEngine/Shim/Generated/RoomConnectController_InitializeParameter.g.cs b/SVSim.BattleEngine/Shim/Generated/RoomConnectController_InitializeParameter.g.cs new file mode 100644 index 0000000..5ff7572 --- /dev/null +++ b/SVSim.BattleEngine/Shim/Generated/RoomConnectController_InitializeParameter.g.cs @@ -0,0 +1,32 @@ +// AUTO-GENERATED no-op stubs (m1_stub_gen) from Shadowverse_Code_2026-05-23\Wizard.RoomMatch\RoomConnectController.cs +using System; +using System.Collections; +using System.Collections.Generic; +using System.Diagnostics; +using Convention; +using Cute; +using LitJson; +using UnityEngine; +using Wizard.ErrorDialog; +namespace Wizard.RoomMatch +{ +public partial class RoomConnectController +{ +public partial class InitializeParameter +{ + public string RoomId { get; set; } + public PositionMode PositionModeType { get; set; } + public BattleParameter BattleParameterInstance { get; set; } + public ConventionInfo ConventionInfo { get; set; } + public bool IsPermitFriendWatch { get; set; } + public bool IsPermitGuildWatch { get; set; } + public bool IsConvention { get; set; } + public bool IsEnableConventionRematch { get; set; } + public bool IsEnableTurnSelect { get; set; } + public bool IsGuildChatPost { get; set; } + public bool IsGathering { get; set; } + public GatheringAutoJoinTaskInfo GatheringAutoJoinTaskInfo { get; set; } + public InitializeParameter(PositionMode positionMode, BattleParameter battleParameter, string roomId) { } +} +} +} diff --git a/SVSim.BattleEngine/Shim/Generated/RoomRuleSetting.g.cs b/SVSim.BattleEngine/Shim/Generated/RoomRuleSetting.g.cs new file mode 100644 index 0000000..05063ad --- /dev/null +++ b/SVSim.BattleEngine/Shim/Generated/RoomRuleSetting.g.cs @@ -0,0 +1,19 @@ +// AUTO-GENERATED no-op stubs (m1_stub_gen) from Shadowverse_Code_2026-05-23\Wizard.RoomMatch\RoomRuleSetting.cs +using System; +namespace Wizard.RoomMatch +{ +public partial class RoomRuleSetting +{ + public Action OnDecide; + public Action OnCancel; + public BattleParameter BattleParameterInstance { get; set; } + public bool EnableFriendWatch { get; set; } + public bool EnableGuildWatch { get; set; } + public bool Is2Pick { get; set; } + public RoomRuleSetting() { } + public void CopyFrom(RoomRuleSetting src) { } + public static string GetTopBarString(BattleParameter battleParameter, bool isTournament) => default!; + public static string GetBattleTypeString(BattleParameter battleParameter) => default!; + public static string GetWinTypeString(RoomConnectController.BattleRule rule) => default!; +} +} diff --git a/SVSim.BattleEngine/Shim/Generated/SelectedStoryInfo.g.cs b/SVSim.BattleEngine/Shim/Generated/SelectedStoryInfo.g.cs new file mode 100644 index 0000000..45f2320 --- /dev/null +++ b/SVSim.BattleEngine/Shim/Generated/SelectedStoryInfo.g.cs @@ -0,0 +1,66 @@ +// AUTO-GENERATED no-op stubs (m1_stub_gen) from Shadowverse_Code_2026-05-23\Wizard.Story\SelectedStoryInfo.cs +namespace Wizard.Story +{ +public partial class SelectedStoryInfo +{ + public StoryEntranceType StoryEntranceType { get; set; } + public StorySectionData SectionData { get; set; } + public ClassCharacterMasterData SectionCharaData { get; set; } + public ClassCharacterMasterData ChapterCharaData { get; set; } + public StoryChapterData ChapterData { get; set; } + public int? SubChapterId { get; set; } + public ScenarioPart Part { get; set; } + public ScenarioOption Option { get; set; } + public ScenarioTemporaryVoice.DownloadInfo TemporaryVoiceDownloadInfo { get; set; } + public int? ReleasedChapterNum { get; set; } + public int? ReplayChapterIndex { get; set; } + public string[] UnlockedSelections { get; set; } + public string ChosenUnlockChapterId { get; set; } + public bool IsFailure { get; set; } + public bool IsRetire { get; set; } + public bool IsGoBadEnd { get; set; } + public int StoryId { get; set; } + public int SectionId { get; set; } + public int? SectionCharaId { get; set; } + public int? SectionClassId { get; set; } + public int? ChapterCharaId { get; set; } + public int? ChapterClassId { get; set; } + public string ChapterId { get; set; } + public UIManager.ViewScene ChapterSelectionView { get; set; } + public bool IsTutorialCategory { get; set; } + public bool IsTutorial { get; set; } + public bool IsTutorialReplay { get; set; } + public StoryApiType StoryApiType { get; set; } + public string NextChapterId { get; set; } + public StoryChapterData.ChapterClearStatus ClearStatus { get; set; } + public string LastChapterClearTextId { get; set; } + public bool ExistsSecondHalfStory { get; set; } + public bool ExistsBattle { get; set; } + public bool IsSkipBattle { get; set; } + public bool IsDoBattle { get; set; } + public bool IsFixedDeck { get; set; } + public bool IsClassTutorial { get; set; } + public bool IsReleasedAnotherEnding { get; set; } + public string RouteName { get; set; } + public bool IsFirstHalf { get; set; } + public bool IsSecondHalf { get; set; } + public bool IsPlayVoice { get; set; } + public int[] StartStoryIds { get; set; } + public int FinishStoryId { get; set; } + public int[] AllSubStoryIds { get; set; } + public SelectedStoryInfo(StoryEntranceType type) { } + public void ClearInfoForSectionSelectionScene() { } + public void ClearInfoForLeaderSelectionScene() { } + public void ClearInfoForChapterSelectionScene() { } + public void SetSection(int sectionId) { } + public void SetSection(StorySectionData sectionData) { } + public void SetSectionChara(int? charaId) { } + public void SetSectionChara(ClassCharacterMasterData charaData) { } + public void SetChapterChara(int? charaId) { } + public void SetChapterChara(ClassCharacterMasterData charaData) { } + public void SetChapter(string chapterId, int? subChapterId) { } + public void SetChapter(StoryChapterData chapterData, int? subChapterId) { } + public void SetPart(ScenarioPart part) { } + public void SetOtherInfo(int releasedChapterNum, int? replayChapterIndex, string[] unlockedSelections) { } +} +} diff --git a/SVSim.BattleEngine/Shim/Generated/TabList.g.cs b/SVSim.BattleEngine/Shim/Generated/TabList.g.cs new file mode 100644 index 0000000..3337af6 --- /dev/null +++ b/SVSim.BattleEngine/Shim/Generated/TabList.g.cs @@ -0,0 +1,27 @@ +// AUTO-GENERATED no-op stubs (m1_stub_gen) from Shadowverse_Code_2026-05-23\Wizard.UI.Common\TabList.cs +using System; +using System.Collections.Generic; +using UnityEngine; +namespace Wizard.UI.Common +{ +public partial class TabList +{ + private UIGrid _grid; + private Tab _partsTab; + private Transform _transform_tabOff; + private Transform _transform_tabOn; + private List _tabList; + private float _posY_tabOff; + private float _posY_tabOn; + private bool _isEnableSe; + private void Awake() { } + public Tab AddTab(UIEventListener.VoidDelegate onClick, string spriteBaseName) => default!; + public void Reset() { } + public void Reset(bool notSelectTab) { } + private void SetGrid() { } + public void SelectTabByIndex(int index, bool isForceSet) { } + private void SelectTab(Tab target, bool isForceSet) { } + private void SetTabListSprites() { } + public void SetTabToGrayByIndex(int index, bool disable) { } +} +} diff --git a/SVSim.BattleEngine/Shim/Generated/VideoHostingHUD.g.cs b/SVSim.BattleEngine/Shim/Generated/VideoHostingHUD.g.cs new file mode 100644 index 0000000..44e1798 --- /dev/null +++ b/SVSim.BattleEngine/Shim/Generated/VideoHostingHUD.g.cs @@ -0,0 +1,85 @@ +// AUTO-GENERATED no-op stubs (m1_stub_gen) from Shadowverse_Code_2026-05-23\VideoHostingHUD.cs +using System; +using UnityEngine; +using Wizard; +using Wizard.Dialog.Setting; +public partial class VideoHostingHUD +{ + public enum HUDMode + { + Null, + Recording, + Publishing + } + public enum HUDStatus + { + Idle, + Playing, + Pause + } + private static readonly string SETTING_BUTTON_SPRITENAME_PUB_OFF; + private static readonly string SETTING_BUTTON_SPRITENAME_PUB_ON; + private static readonly string SETTING_BUTTON_SPRITENAME_REC_OFF; + private static readonly string SETTING_BUTTON_SPRITENAME_REC_ON; + private const float DELAY_PLAY_SEC = 0.3f; + private const float STATUSPOPUP_ALPHA_MIN = 0f; + private const float STATUSPOPUP_ALPHA_MAX = 1f; + private const float STATUSPOPUP_ALPHA_SPEED = 1f; + private static readonly Vector3 STATUSPOPUP_LABEL_POS_PUBLISHING; + private static readonly Vector3 STATUSPOPUP_LABEL_POS_RECORDING; + public static int CONTROLBUTTON_LAYER_DEFAULT; + public static int CONTROLBUTTON_LAYER_BATTLE; + private UIPanel _statusPopupPanel; + private UILabel _statusPopupLabel; + private UISprite _statusPopupRecSprite; + private float _statusPopupAlpha; + private bool _statusPopupAlphaDown; + private GameObject _controlButtonRoot; + private UIButton _playButton; + private UILabel _playButtonLabel; + private UIButton _settingButton; + private UISprite _settingButtonSprite; + private HUDMode _mode; + private HUDStatus _status; + private Coroutine _coroutine; + private DialogBase _menuDialog; + private VideoHostingHUDFaceCamera _faceCamera; + private bool _isInitialized; + private bool _isReqInitFromSystem; + private void Awake() { } + private void Start() { } + private void OnDestroy() { } + private void Update() { } + public bool GetInitialized() => default!; + public void SetReqInitFromSystem(bool isReq) { } + private void _InitStatusFromSystem() { } + public void Init(HUDMode mode) { } + private void _SetStatus(HUDStatus status) { } + public bool IsSettingMenuDialogOpen() => default!; + public void CloseSettingMenuDialog() { } + private void ChangeControlPopupStatus(HUDMode mode, HUDStatus status) { } + private void ChangeControlButtonStatus(HUDMode mode, HUDStatus status) { } + public void SetControlButtonLayer(int layer) { } + public void SetPushEnablePlay(bool isEnable) { } + public void SetPushEnableSetting(bool isEnable) { } + private void UpdatePopup() { } + private static bool UpdatePingPongByDeltaTime(ref float val, float min, float max, float speed, bool isdown) => default!; + public void InitFaceCameraAdjust() { } + public void EndFaceCameraAdjust() { } + public void SetFaceCameraAdjustSwitchEnable(bool isEnable) { } + public bool GetFaceCameraAdjustSwitchEnable() => default!; + public Transform GetFaceCameraWindowLocator() => default!; + private void OnClickButtonPlay() { } + private void _DelayPlay() { } + private void OnClickButtonSetting() { } + private void OnCloseRecordingMenu() { } + private void OnStartAdjustFaceCameraWindow() { } + private void OnEndAdjustFaceCameraWindow() { } + public void OnStartRecording() { } + public void OnFinishRecording() { } + public void OnPauseRecording() { } + public void OnResumeRecording() { } + public void OnStartPublishing() { } + public void OnFinishPublishing() { } + public void OnPausePublishing() { } +} diff --git a/SVSim.BattleEngine/Shim/GodObjects/ClosureStubs.cs b/SVSim.BattleEngine/Shim/GodObjects/ClosureStubs.cs index 38d2bcc..60220df 100644 --- a/SVSim.BattleEngine/Shim/GodObjects/ClosureStubs.cs +++ b/SVSim.BattleEngine/Shim/GodObjects/ClosureStubs.cs @@ -3,6 +3,34 @@ // later frontier wave and can be filled by m1_stub_gen --type . public partial class FadeManager { } public partial class FriendBase { } +public partial class RoomDialog { } +public partial class VideoHostingHUDFaceCamera { } + +namespace Wizard +{ + public partial class ConventionRoomBattleWatchTask { } + public partial class OpenRoomBattleGetRecoveryParamTask { } + public partial class ScenarioOption { } + public partial class ScenarioTemporaryVoice { public partial class DownloadInfo { } } +} + +namespace Wizard.RoomMatch +{ + public partial class PlayerController { } + public partial class RoomBase { } + public partial class RoomFormatEventHandler { } + public partial class RoomWatchEventDispatch { } +} + +namespace Wizard.UI.Common +{ + public partial class Tab { } +} + +namespace Wizard.UI.Dialog.ImageSelection +{ + public partial class ImageSelectionBaseUI { } +} namespace Wizard.Battle.UI { diff --git a/SVSim.BattleEngine/Shim/GodObjects/GodObjects.cs b/SVSim.BattleEngine/Shim/GodObjects/GodObjects.cs index 90c920e..4129f35 100644 --- a/SVSim.BattleEngine/Shim/GodObjects/GodObjects.cs +++ b/SVSim.BattleEngine/Shim/GodObjects/GodObjects.cs @@ -135,10 +135,7 @@ public partial class UIManager : UnityEngine.MonoBehaviour public static UIManager GetIns() => GetInstance(); } -public class VideoHostingHUD -{ - public enum HUDMode { Null, Recording, Publishing } -} +// VideoHostingHUD (members + HUDMode enum) provided by Generated/VideoHostingHUD.g.cs namespace Wizard { diff --git a/SVSim.BattleEngine/Shim/View/SettingsUiStubs.cs b/SVSim.BattleEngine/Shim/View/SettingsUiStubs.cs index 5b28f7e..378be57 100644 --- a/SVSim.BattleEngine/Shim/View/SettingsUiStubs.cs +++ b/SVSim.BattleEngine/Shim/View/SettingsUiStubs.cs @@ -89,7 +89,7 @@ namespace Wizard.Story.ChapterSelection.SelectionProcessing.BattleResult namespace Wizard.RoomMatch { public class PlayerControllerForWatching { } - public class RoomRuleSetting { } + public partial class RoomRuleSetting { } } namespace Cute @@ -100,7 +100,7 @@ namespace Cute namespace Wizard.Story { public enum StoryApiType { None, MainStory, LimitedStory, EventStory } - public class SelectedStoryInfo { } + public partial class SelectedStoryInfo { } public sealed class StoryWorldDataManager { } } @@ -108,9 +108,10 @@ namespace BestHTTP.SocketIO { public sealed class Packet { } public sealed class Socket { } + // SocketManager is a BestHTTP SDK type — minimal hand shim (full-surface would pull + // the whole SocketIO SDK closure). Members filled on demand as the frontier needs them. public sealed class SocketManager { - // Connection state enum the network agent polls (Initial/Open referenced). public enum States { Initial, Opening, Open, Paused, Reconnecting, Closed } } } diff --git a/SVSim.BattleEngine/Shim/View/VfxShim.cs b/SVSim.BattleEngine/Shim/View/VfxShim.cs index dfe36c8..f45f6b4 100644 --- a/SVSim.BattleEngine/Shim/View/VfxShim.cs +++ b/SVSim.BattleEngine/Shim/View/VfxShim.cs @@ -107,7 +107,7 @@ namespace Wizard.Battle.View.Vfx public class EvolveVfxBase : VfxBase { } public class CanNotTouchCardVfx : VfxBase { } - public interface ICardVfxCreator { } + public partial interface ICardVfxCreator { } public interface IBattleCardVfxCreator { } // The VFX manager: headless, registration is suppressed (real VfxMgr early-returns diff --git a/SVSim.BattleEngine/Shim/View/ViewUiTouchStubs.cs b/SVSim.BattleEngine/Shim/View/ViewUiTouchStubs.cs index b00c48d..16bada7 100644 --- a/SVSim.BattleEngine/Shim/View/ViewUiTouchStubs.cs +++ b/SVSim.BattleEngine/Shim/View/ViewUiTouchStubs.cs @@ -7,11 +7,11 @@ namespace Wizard.Battle.View { - public interface IReadOnlyVoiceInfo { } - public class BattleCardView + public partial interface IReadOnlyVoiceInfo { } + public partial class BattleCardView { public class BuildInfo { } - public class AttackTargetSelectInfo { } + // AttackTargetSelectInfo provided by Generated/BattleCardView_AttackTargetSelectInfo.g.cs } public class NonDialogPopup { public virtual void Close() { } } public abstract class BattlePlayerViewBase @@ -65,12 +65,8 @@ namespace Wizard.Replay namespace Wizard.RoomMatch { public class WatchDataHandler { } - public class RoomConnectController - { - public enum BattleRule { None, Bo1 } - public enum PositionMode { OWNER, VISITOR, WATCHER } - public class InitializeParameter { } - } + // RoomConnectController (members + BattleRule/PositionMode enums + InitializeParameter) + // provided by Generated/RoomConnectController*.g.cs } namespace Wizard.Story @@ -80,10 +76,10 @@ namespace Wizard.Story namespace Wizard.UI.Common { - public class TabList { } + public partial class TabList : UnityEngine.MonoBehaviour { } } namespace Wizard.UI.Dialog.ImageSelection { - public class ImageSelection { } + public partial class ImageSelection : UnityEngine.MonoBehaviour { } }