// AUTHORED SHIM (not copied). The god-object singletons the engine reaches for // presentation/scene/effects. These are the M0 "stop the bleed" types: copying // them would re-explode the closure into the whole app (audio, scene, UI, net), // so we shim a minimal surface. The nested enums below are presentation // classifiers used only inside never-run VFX actions (IsForecast suppresses VFX), // so their VALUES are immaterial to game state -- but the symbols the engine // references must exist to compile. Members listed are exactly those the compiler // demanded (extracted from the copied engine, not guessed). // (Global namespace: the decomp root files declare no namespace.) public class EffectMgr { public enum EffectType { NONE, CMN_CARD_ACCELERATE_1, CMN_CARD_CRYSTALLIZE_1, CMN_CARD_SELECT_3, CMN_CARD_SET_1, CMN_CARD_SET_2, CMN_CARD_SET_3, CMN_CARD_TARGET_1, CMN_CARD_TARGET_2, CMN_CRAFT_CARD_1, CMN_CRAFT_CARD_2, CMN_CRAFT_ICON_1, CMN_CRAFT_SPLASH_1, CMN_CRAFT_SPLASH_2, CMN_CRAFT_SPLASH_3, CMN_CRAFT_SPLASH_4, CMN_CRAFT_TRACK_1, CMN_FRAME_BTN_1, CMN_FRAME_BTN_2, CMN_GACHA_CURSOR_1, CMN_GACHA_OPEN_2, CMN_GACHA_OPEN_3, CMN_GACHA_OPEN_4, CMN_INPUT_DRAG_1, CMN_INPUT_TOUCH_1, CMN_INPUT_TOUCH_2, CMN_RESULT_BACK_1, CMN_RESULT_BACK_2, CMN_RESULT_BACK_3, CMN_RESULT_FAILED_1, CMN_RESULT_GAUGE_1, CMN_RESULT_GAUGE_2, CMN_RESULT_LVUP_1, CMN_RESULT_MATCH_1, CMN_RESULT_ORB_1, CMN_RESULT_ORB_2, CMN_RESULT_RANKDOWN_1, CMN_RESULT_RANKUP_1, CMN_RESULT_TIERUP_1, CMN_START_CARD_1, CMN_START_VS_1, CMN_START_VS_ST2, CMN_UI_TURN_1, CMN_UI_TURN_5, CMN_UI_TURN_6, } public enum MoveType { NONE, DIRECT, DIRECT_HAND, DIRECT_LEADER } public enum TargetType { NONE, NONE_WAIT, SINGLE, SINGLE_ONLY_OPPONENT, AREA_ALL, AREA_OPPONENT, AREA_SELF } public enum EngineType { NONE, SHURIKEN, SOLID } } public class UIManager { public static UIManager GetIns() => _ins ??= new UIManager(); private static UIManager _ins; public enum ViewScene { None, Battle, Bingo, BuildDeckPurchasePage, CardAllList, CardSleevePurchasePage, ClassSkinPurchasePage, Colosseum, CrossoverPortal, DeckList, Gacha, Gathering, LeaderPopularityVote, LoginBonus, LotteryPage, Mission, MyPage, NeutralPopularityVote, Profile, QuestSelectionPage, RankMatch, Room, StorySelectPage, StorySelectionWorld, TwoPick, } public class ChangeViewSceneParam { } } public class GameMgr { public static GameMgr GetIns() => _ins ??= new GameMgr(); private static GameMgr _ins; public bool IsAdminWatch => false; public bool IsWatchBattle => false; public bool IsReplayBattle => false; public EffectMgr GetEffectMgr() => _effect ??= new EffectMgr(); private EffectMgr _effect; }