Files
zeling_v2/Assets/Scripts/Core/GameIds.cs
2026-05-13 09:19:54 +08:00

99 lines
5.9 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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 ───────────────────────────────────────────────────────
/// <summary>Boss 唯一标识符,对应 BossDefeatedCondition.bossId 及 BossDataSO.bossId。</summary>
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 ──────────────────────────────────────────────────────
/// <summary>事件链唯一标识符,对应 EventChainSO.chainId 及 ChainCompletedCondition.chainId。</summary>
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 ──────────────────────────────────────────────────────
/// <summary>任务唯一标识符,对应 QuestSO.questId。</summary>
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 ────────────────────────────────────────────────────
/// <summary>能力/技能唯一标识符,对应 AbilityUnlockedCondition.abilityId。</summary>
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 ─────────────────────────────────────────────
/// <summary>场景/房间标识符,对应 RoomEnteredCondition.sceneName。与 Unity Build Settings 场景名对齐。</summary>
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 ────────────────────────────────────────────────
/// <summary>可收集物唯一标识符,对应 CollectibleCollectedCondition.itemId。</summary>
public static class Collectible
{
public const string AncientKey = "Item_AncientKey";
public const string MapFragment = "Item_MapFragment";
}
// ── NPC IDs ────────────────────────────────────────────────────────
/// <summary>NPC 唯一标识符,对应 DialogueCompletedCondition.npcId。</summary>
public static class Npc
{
public const string OldMerchant = "Npc_OldMerchant";
public const string SageGuard = "Npc_SageGuard";
}
// ── Flag IDs ───────────────────────────────────────────────────────
/// <summary>全局布尔存档标记,对应 FlagSetCondition.flagId 及 SaveManager.SetFlag/GetFlag。</summary>
public static class Flag
{
public const string TutorialShown = "Flag_TutorialShown";
public const string FirstDeath = "Flag_FirstDeath";
public const string MerchantIntroduced = "Flag_MerchantIntroduced";
}
}
}