feat(battle-engine): clear header frontier (Item/ErrorDialog/SDK shims + infra copies)

Resolves the 268-error header frontier: settings Item base, ErrorDialog.Data,
RoomConnectController nested types, Unity asset/light/collider types, CriWare/
CodeStage/Spine SDK surface, and copies INetworkLogger + SingletonMonoBehaviour
verbatim. Per F3 this unmasks the type bodies (~26.5k member-level errors now
visible) -- the real M1 bulk, attacked in following waves.
This commit is contained in:
gamer147
2026-06-05 20:11:08 -04:00
parent 957af3d1ec
commit a00e90c74a
7 changed files with 300 additions and 0 deletions

View File

@@ -242,6 +242,7 @@ ICardSuperSkyboundArtCountModifier.cs ICardSuperSkyboundArtCountModifier.cs 7e68
ICardUnionBurstCountModifier.cs ICardUnionBurstCountModifier.cs ba967c6dc5d5a202fc6ded3b788b4fbd14d2a840fb2ce0858c6dc9f332a4fbfc 0
IDInput.cs IDInput.cs 6366e6c23d9c954bb08d8052040e04953528b02084c380a9f6004581758d8934 0
IDetailPanelControl.cs IDetailPanelControl.cs f705759bfd1ee67cb2fd89727c9c5bc3fa339e1a45ecdba0f1deffa5d7464e71 0
INetworkLogger.cs INetworkLogger.cs b7c350604afeec7b31078c254297785062ecdff88e65cb530d870d6b791f4a11 0
INextSceneSelector.cs INextSceneSelector.cs 52d188563368337f2653d41f54ed6ba915911929134b6bef628f6cd72c820c95 0
IPpModifier.cs IPpModifier.cs 95a83890b06528d37c73dea24b75a3dcd23dfd532508bcb90463e34a5811d19e 0
IResultAnimationHandler.cs IResultAnimationHandler.cs 0106c5eb9c8d912d47c5cc46336bffce1284cf5935088850fc0dc6c7ccfe3351 0
@@ -625,6 +626,7 @@ SimpleCardDetail.cs SimpleCardDetail.cs 9ab323d687845ca53a27651b08d9747140a1f85e
SingleBattleMgr.cs SingleBattleMgr.cs 777e5bbb7292df308fa612fed9883b4b10c24451a945e56fd741bf1fe2d9b4ad 0
SingleExecutionInfoCreator.cs SingleExecutionInfoCreator.cs 1a64285907bf4fb29138cfcabeae99834a6730d2857de0cd82efb3e0ddf52f52 0
SingleSkill_attach_skill.cs SingleSkill_attach_skill.cs 65e7581c82c4bf84cf738fbd1a605670b87f9623ad7ff561a3fc1c6713c80cb9 0
SingletonMonoBehaviour.cs SingletonMonoBehaviour.cs a69a9a5d57dbf83f6fa5c875a2788dc78b3367de0f6c81cb903f887b9a67c226 0
SkillAbilityAccelerateFilter.cs SkillAbilityAccelerateFilter.cs b13d84c14d8d8a6d3d58258b9f6c8525bf17063a7b0bdf48614c4ede1343ff91 0
SkillAbilityBurialRiteFilter.cs SkillAbilityBurialRiteFilter.cs 003b61178157d70cc51128d79e163dde19631155c2c89f6656b98f28b63f2851 0
SkillAbilityCantAttackAllFilter.cs SkillAbilityCantAttackAllFilter.cs 6998cc6f15d12ba49b5aea79d4f2e80620c998f23d82685ac7bda2164ca07ed6 0
1 # engine-relpath source-relpath sha256 patched(0|1)
242 ICardUnionBurstCountModifier.cs ICardUnionBurstCountModifier.cs ba967c6dc5d5a202fc6ded3b788b4fbd14d2a840fb2ce0858c6dc9f332a4fbfc 0
243 IDInput.cs IDInput.cs 6366e6c23d9c954bb08d8052040e04953528b02084c380a9f6004581758d8934 0
244 IDetailPanelControl.cs IDetailPanelControl.cs f705759bfd1ee67cb2fd89727c9c5bc3fa339e1a45ecdba0f1deffa5d7464e71 0
245 INetworkLogger.cs INetworkLogger.cs b7c350604afeec7b31078c254297785062ecdff88e65cb530d870d6b791f4a11 0
246 INextSceneSelector.cs INextSceneSelector.cs 52d188563368337f2653d41f54ed6ba915911929134b6bef628f6cd72c820c95 0
247 IPpModifier.cs IPpModifier.cs 95a83890b06528d37c73dea24b75a3dcd23dfd532508bcb90463e34a5811d19e 0
248 IResultAnimationHandler.cs IResultAnimationHandler.cs 0106c5eb9c8d912d47c5cc46336bffce1284cf5935088850fc0dc6c7ccfe3351 0
626 SingleBattleMgr.cs SingleBattleMgr.cs 777e5bbb7292df308fa612fed9883b4b10c24451a945e56fd741bf1fe2d9b4ad 0
627 SingleExecutionInfoCreator.cs SingleExecutionInfoCreator.cs 1a64285907bf4fb29138cfcabeae99834a6730d2857de0cd82efb3e0ddf52f52 0
628 SingleSkill_attach_skill.cs SingleSkill_attach_skill.cs 65e7581c82c4bf84cf738fbd1a605670b87f9623ad7ff561a3fc1c6713c80cb9 0
629 SingletonMonoBehaviour.cs SingletonMonoBehaviour.cs a69a9a5d57dbf83f6fa5c875a2788dc78b3367de0f6c81cb903f887b9a67c226 0
630 SkillAbilityAccelerateFilter.cs SkillAbilityAccelerateFilter.cs b13d84c14d8d8a6d3d58258b9f6c8525bf17063a7b0bdf48614c4ede1343ff91 0
631 SkillAbilityBurialRiteFilter.cs SkillAbilityBurialRiteFilter.cs 003b61178157d70cc51128d79e163dde19631155c2c89f6656b98f28b63f2851 0
632 SkillAbilityCantAttackAllFilter.cs SkillAbilityCantAttackAllFilter.cs 6998cc6f15d12ba49b5aea79d4f2e80620c998f23d82685ac7bda2164ca07ed6 0

View File

@@ -0,0 +1,13 @@
using System.Collections;
using System.Collections.Generic;
public interface INetworkLogger<out T> : IEnumerable<T>, IEnumerable
{
void LogInfo(string text);
void LogWarning(string text);
void LogError(string text);
void ClearLog();
}

View File

@@ -0,0 +1,43 @@
using UnityEngine;
public class SingletonMonoBehaviour<T> : MonoBehaviour where T : MonoBehaviour
{
private static T _instance;
protected bool _isRedy;
public static T instance
{
get
{
if (_instance == null)
{
_instance = (T)Object.FindObjectOfType(typeof(T));
if (_instance == null)
{
Debug.LogError(typeof(T)?.ToString() + "is nothing");
}
}
return _instance;
}
}
public bool isRedy => _isRedy;
public static bool IsInstanceEmpty()
{
return _instance == null;
}
private void Awake()
{
if (_instance == null)
{
_instance = (T)Object.FindObjectOfType(typeof(T));
if (_instance == null)
{
Debug.LogError(typeof(T)?.ToString() + "is nothing");
}
}
}
}

View File

@@ -0,0 +1,50 @@
// AUTHORED SHIM (not copied). Third-party SDK surface swept into the copy closure by
// non-battle files (audio/movie/anti-cheat/analytics/spine). None is on the battle-
// resolution path. Namespaces must merely exist (anchors); the few types referenced
// by member get a minimal no-op surface. Members grow only as the compile loop demands.
// ---- CriWare audio + movie ----
namespace CriWare
{
public class CriAtomExAcb { }
public class CriAtomExPlayback { }
internal class _ShimAnchor { }
}
namespace CriWare.CriMana
{
public class CriManaMovieMaterial
{
public enum MaxFrameDrop { Disable, One, Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten }
}
internal class _ShimAnchor { }
}
// ---- CodeStage anti-cheat obscured prefs (static k/v facade; no persistence headless) ----
namespace CodeStage.AntiCheat.ObscuredTypes
{
public static class ObscuredPrefs
{
public static bool HasKey(string key) => false;
public static void DeleteKey(string key) { }
public static void DeleteAll() { }
public static void Save() { }
public static int GetInt(string key, int defaultValue = 0) => defaultValue;
public static float GetFloat(string key, float defaultValue = 0f) => defaultValue;
public static string GetString(string key, string defaultValue = "") => defaultValue;
public static void SetInt(string key, int value) { }
public static void SetFloat(string key, float value) { }
public static void SetString(string key, string value) { }
}
}
// ---- Spine animation ----
namespace Spine { public class Bone { } internal class _ShimAnchor { } }
namespace Spine.Unity { public class SkeletonMecanim { } internal class _ShimAnchor { } }
// ---- misc third-party namespaces (anchors) ----
namespace RedShellUnity { internal class _ShimAnchor { } }
namespace PlatformSupport.Collections.ObjectModel { internal class _ShimAnchor { } }
namespace Convention { internal class _ShimAnchor { } }
namespace com.adjust.sdk { internal class _ShimAnchor { } }
namespace BestHTTP.Decompression { internal class _ShimAnchor { } }
namespace BestHTTP.SocketIO.Transports { internal class _ShimAnchor { } }

View File

@@ -0,0 +1,68 @@
// AUTHORED SHIM (not copied). Second UnityEngine batch surfaced by the M1 compile
// loop (wave after the 2,570-file copy closure). Same rules as UnityShim.cs: no-op
// presentation/IO surface; add only what the compiler demands. Asset/light/collider
// types are referenced only as field/parameter types or via suppressed-IO calls.
using System;
namespace UnityEngine
{
public class TextAsset : Object
{
public string text => "";
public byte[] bytes => new byte[0];
}
public class AsyncOperation
{
public bool isDone => true;
public float progress => 1f;
public int priority { get; set; }
public bool allowSceneActivation { get; set; }
}
public class AssetBundle : Object
{
public static AssetBundle LoadFromFile(string path) => null;
public static AssetBundleCreateRequest LoadFromFileAsync(string path) => null;
public string[] GetAllAssetNames() => new string[0];
public T LoadAsset<T>(string name) where T : Object => null;
public Object LoadAsset(string name) => null;
public Object[] LoadAllAssets() => new Object[0];
public AssetBundleRequest LoadAllAssetsAsync() => null;
public void Unload(bool unloadAllLoadedObjects) { }
}
public class AssetBundleCreateRequest : AsyncOperation { public AssetBundle assetBundle => null; }
public class AssetBundleRequest : AsyncOperation { public Object asset => null; public Object[] allAssets => new Object[0]; }
public class Collider2D : Component { public bool enabled { get; set; } }
public class BoxCollider2D : Collider2D { }
public class Light : Behaviour { }
public class AudioListener : Behaviour { }
public enum RenderTextureFormat { ARGB32, Depth, ARGBHalf, ARGB64, Default }
public enum RuntimeInitializeLoadType
{
AfterSceneLoad, BeforeSceneLoad, AfterAssembliesLoaded,
BeforeSplashScreen, SubsystemRegistration
}
public sealed class RuntimeInitializeOnLoadMethodAttribute : Attribute
{
public RuntimeInitializeOnLoadMethodAttribute() { }
public RuntimeInitializeOnLoadMethodAttribute(RuntimeInitializeLoadType loadType) { }
}
}
// Sub-namespace anchors (referenced via `using`; types unmask in later waves if used).
namespace UnityEngine.Experimental { internal class _ShimAnchor { } }
namespace UnityEngine.Experimental.Rendering { internal class _ShimAnchor { } }
namespace UnityEngine.SceneManagement { internal class _ShimAnchor { } }
namespace UnityEngine.SocialPlatforms
{
// NOTE: no IAchievementCallback here -- the engine's AchievementImpl uses
// Cute.IAchievementCallback; adding one here makes the unqualified name ambiguous.
public interface IAchievement { }
public interface IAchievementDescription { }
}

View File

@@ -0,0 +1,122 @@
// AUTHORED SHIM (not copied). Non-battle game types (settings widgets, error-dialog
// data, login-bonus, deck-builder, story chapter-selection, room-match, socket.io)
// swept into the copy closure but never driven headless. Stubbed in their ORIGINAL
// namespaces so the copied engine resolves their type references. Enums are replicated
// VERBATIM from decomp (integer values can be cast); classes are empty until the loop
// demands a member.
using UnityEngine;
namespace Wizard.Dialog.Setting
{
// Real base of ItemButton/ItemToggle/... (copied). Abstract methods the copied
// subclasses override -- without this base they fall back to the unrelated
// Wizard.Item data class and CS0115 ("no method to override").
public abstract class Item : MonoBehaviour
{
public abstract void AddChangeCallback(EventDelegate.Callback callback);
public abstract void SetActive_SeparatorLine(bool isActive);
}
}
namespace Wizard.ErrorDialog
{
// Real Wizard.ErrorDialog.Data; without it Dialog.cs's unqualified `Data` falls
// back to the static Wizard.Data god-object (CS0718/0722/0723 + missing ButtonType).
public class Data
{
public enum ContactDisplayType { _NONE_, , MAX }
public enum ButtonType { _NONE_, OK, , , , , , , MAX }
public string TitleId { get; private set; }
public string BodyId { get; private set; }
public bool IsDisplayContact { get; private set; }
public ButtonType MainButton { get; private set; }
public ButtonType SubButton { get; private set; }
public int PanelDepth { get; private set; }
public Data(string id, string titleId, string bodyId, string contactDisplay,
string mainButton, string subButton, string panelDepth) { }
}
}
namespace Wizard.Battle.UI
{
public enum CantAttackType { Null, All, Class, NotHasGuard, Unit, Max }
}
namespace Wizard.Battle.View
{
public abstract class ClassBattleCardViewBase { }
public class NullBattleCardView { }
}
namespace Wizard.Battle.View.Vfx
{
// Base of the copied PuzzleBattleManager.PuzzleOpeningVfx (ctor + abstract override).
public abstract class OpeningVfx : SequentialVfxPlayer
{
protected OpeningVfx(BackGroundBase backGround) { }
public abstract void RegisterOpeningVfx(ClassBattleCardBase playerClass, ClassBattleCardBase enemyClass);
}
}
namespace AnimationOrTween
{
public enum DisableCondition { DisableAfterReverse = -1, DoNotDisable, DisableAfterForward }
public enum EnableCondition { DoNothing, EnableThenPlay, IgnoreDisabledState }
}
namespace Wizard.UI.LoginBonus
{
public class ContinuousData { }
public class NormalData { }
public class SpecialData { }
public class FreeCardPackBoxData { }
}
namespace DeckBuilder
{
public class GenerateDeckCode { }
public class GetDeckDataFromCode { }
}
namespace Wizard.Story.ChapterSelection.SelectionProcessing.BattleResult
{
public interface IProcessing { }
public class Parameter { }
}
namespace Wizard.RoomMatch
{
public class PlayerControllerForWatching { }
public class RoomRuleSetting { }
}
namespace Cute
{
public class SceneManager { }
}
namespace Wizard.Story
{
public enum StoryApiType { None, MainStory, LimitedStory, EventStory }
public class SelectedStoryInfo { }
public sealed class StoryWorldDataManager { }
}
namespace BestHTTP.SocketIO
{
public sealed class Packet { }
public sealed class Socket { }
public sealed class SocketManager
{
// Connection state enum the network agent polls (Initial/Open referenced).
public enum States { Initial, Opening, Open, Paused, Reconnecting, Closed }
}
}
// ---- namespace anchors (referenced via `using`/qualified path; no type used yet) ----
namespace Wizard.Scripts.Network.Task { internal class _ShimAnchor { } }
namespace Wizard.Scripts.Network.Task.Arena { internal class _ShimAnchor { } }
namespace Wizard.Scripts.Network.Task.Arena.TwoPick { internal class _ShimAnchor { } }
namespace BestHTTP.Decompression.Zlib { internal class _ShimAnchor { } }

View File

@@ -67,6 +67,8 @@ namespace Wizard.RoomMatch
public class RoomConnectController
{
public enum BattleRule { None, Bo1 }
public enum PositionMode { OWNER, VISITOR, WATCHER }
public class InitializeParameter { }
}
}