using System; using System.Collections.Generic; namespace Continentis.MainGame { /// /// 标记一个类为属性常量集合容器。 /// Mod 制作者可以在自己的 Mod 常量类打上这个标签, /// 这样编辑器工具就能自动收集它们并放入下拉菜单中。 /// [AttributeUsage(AttributeTargets.Class)] public class GameAttributeCollectionAttribute : Attribute { } /// /// 游戏通用属性名称常量。 /// 请始终使用此类中的常量而非裸字符串访问属性,以避免 typo 错误。 /// [GameAttributeCollection] public static class GameAttributes { // ── 生命值 ────────────────────────────────── public const string Health = "Health"; public const string MaximumHealth = "MaximumHealth"; // ── 资源 ──────────────────────────────────── public const string Stamina = "Stamina"; public const string MaximumStamina = "MaximumStamina"; public const string StaminaRecoverPerAction = "StaminaRecoverPerAction"; public const string Mana = "Mana"; public const string MaximumMana = "MaximumMana"; public const string ManaRecoverPerAction = "ManaRecoverPerAction"; // ── 防御 ──────────────────────────────────── public const string Block = "Block"; public const string TemporaryHealth = "TemporaryHealth"; public const string Dodge = "Dodge"; public const string BlockGainOffset = "BlockGainOffset"; public const string BlockGainMultiplier = "BlockGainMultiplier"; public const string DodgeGainOffset = "DodgeGainOffset"; public const string DodgeGainMultiplier = "DodgeGainMultiplier"; public const string TemporaryHealthGainOffset = "TemporaryHealthGainOffset"; public const string TemporaryHealthGainMultiplier = "TemporaryHealthGainMultiplier"; public const string KeepBlockOnActionStart = "KeepBlockOnActionStart"; public const string KeepDodgeOnActionStart = "KeepDodgeOnActionStart"; // ── 速度与行动 ────────────────────────────── public const string Speed = "Speed"; public const string DrawCardAmountPerAction = "DrawCardAmountPerAction"; public const string DeckCapacity = "DeckCapacity"; // ── 伤害调整(通用)────────────────────────── public const string PhysicsDamageDealtOffset = "PhysicsDamageDealtOffset"; public const string MagicDamageDealtOffset = "MagicDamageDealtOffset"; public const string FinalDamageDealtMultiplier = "FinalDamageDealtMultiplier"; public const string FinalDamageGainMultiplier = "FinalDamageGainMultiplier"; public const string MagicDamageDealtMultiplier = "MagicDamageDealtMultiplier"; public const string MagicDamageGainMultiplier = "MagicDamageGainMultiplier"; // ── 核心属性(角色创建时)────────────────────── public const string Strength = "Strength"; public const string Agility = "Agility"; public const string Intelligence = "Intelligence"; public const string Physique = "Physique"; public const string Perception = "Perception"; public const string Charisma = "Charisma"; public const string Level = "Level"; // ── 感知与闪避检测 ────────────────────────── public const string Awareness = "Awareness"; public const string DodgeCheckStartDamageMultiplier = "DodgeCheckStartDamageMultiplier"; #if UNITY_EDITOR /// /// 提供给 Odin Inspector [ValueDropdown] 使用的方法。 /// 从所有 Mod 的 EditorBaseCollection 资产中聚合角色属性(Core + General), /// 覆盖旧的反射扫描方式,天然支持多 Mod 叠加,无需关心程序集加载顺序。 /// public static IEnumerable> GetAllAvailableAttributes() { return Continentis.MainGame.Base.EditorBaseCollection.GetCharacterAttributesDropdown(null); } #endif } }