namespace BaseGames.Core { // ===================================================================== // GameIds —— 全局字符串 ID 常量(架构 02_CoreModule §IDs) // ===================================================================== // 目的:消除散落在配置 SO 和代码中的 magic string, // 提供编译期校验 + IDE 自动补全 + 全局唯一检索点。 // // 使用方式: // ① Inspector 侧:在 ScriptableObject 的 string 字段输入对应常量值(仅此处可见文本)。 // ② 代码侧:直接引用常量,如 GameIds.Boss.ForestBoss,避免硬编码字符串。 // // 新增规则: // - 按域划分嵌套静态类(Boss / Chain / Quest / Ability / Scene / Collectible / Npc) // - 命名风格:PascalCase,与 Unity 资产命名对齐(如 "Chain_BossForest_Defeated") // - 不要将常量值改名,只新增;如需废弃请标注 [System.Obsolete] // ===================================================================== public static class GameIds { // ── Boss IDs ─────────────────────────────────────────────────────── /// Boss 唯一标识符,对应 BossDefeatedCondition.bossId 及 BossDataSO.bossId。 public static class Boss { public const string ForestBoss = "Boss_Forest"; public const string CaveBoss = "Boss_Cave"; public const string CastleBoss = "Boss_Castle"; public const string FinalBoss = "Boss_Final"; } // ── Chain IDs ────────────────────────────────────────────────────── /// 事件链唯一标识符,对应 EventChainSO.chainId 及 ChainCompletedCondition.chainId。 public static class Chain { public const string BossForestDefeated = "Chain_BossForest_Defeated"; public const string CaveBossDefeated = "Chain_CaveBoss_Defeated"; public const string CastleBossDefeated = "Chain_CastleBoss_Defeated"; public const string FinalBossDefeated = "Chain_FinalBoss_Defeated"; public const string TutorialComplete = "Chain_Tutorial_Complete"; } // ── Quest IDs ────────────────────────────────────────────────────── /// 任务唯一标识符,对应 QuestSO.questId。 public static class Quest { public const string MainQuest_Chapter1 = "Quest_Main_Ch1"; public const string MainQuest_Chapter2 = "Quest_Main_Ch2"; public const string SideQuest_Merchant = "Quest_Side_Merchant"; } // ── Ability IDs ──────────────────────────────────────────────────── /// 能力/技能唯一标识符,对应 AbilityUnlockedCondition.abilityId。 public static class Ability { public const string DoubleJump = "Ability_DoubleJump"; public const string Dash = "Ability_Dash"; public const string WallJump = "Ability_WallJump"; public const string Parry = "Ability_Parry"; } // ── Scene / Room Names ───────────────────────────────────────────── /// 场景/房间标识符,对应 RoomEnteredCondition.sceneName。与 Unity Build Settings 场景名对齐。 public static class Scene { public const string MainMenu = "Scene_MainMenu"; // 与 AddressKeys.SceneMainMenu 对齐 public const string Forest = "Scene_Forest"; public const string Cave = "Scene_Cave"; public const string Castle = "Scene_Castle"; public const string Hub = "Scene_Hub"; public const string Tutorial = "Scene_Tutorial"; } // ── Collectible IDs ──────────────────────────────────────────────── /// 可收集物唯一标识符,对应 CollectibleCollectedCondition.itemId。 public static class Collectible { public const string AncientKey = "Item_AncientKey"; public const string MapFragment = "Item_MapFragment"; } // ── NPC IDs ──────────────────────────────────────────────────────── /// NPC 唯一标识符,对应 DialogueCompletedCondition.npcId。 public static class Npc { public const string OldMerchant = "Npc_OldMerchant"; public const string SageGuard = "Npc_SageGuard"; } // ── Flag IDs ─────────────────────────────────────────────────────── /// 全局布尔存档标记,对应 FlagSetCondition.flagId 及 SaveManager.SetFlag/GetFlag。 public static class Flag { public const string TutorialShown = "Flag_TutorialShown"; public const string FirstDeath = "Flag_FirstDeath"; public const string MerchantIntroduced = "Flag_MerchantIntroduced"; } } }