using System.Collections.Generic; using Game; using Sirenix.OdinInspector; using UnityEngine.Serialization; namespace Game { [System.Serializable] public class CharacterConfig { [LabelText("基本属性")] public BasicStats BasicStats = new BasicStats(); [LabelText("技能")] public Ability Ability = new Ability(); [LabelText("职业/羁绊")] public List Professions = new List(); } /// /// 基本属性(Basic Stats) /// [System.Serializable] public class BasicStats { // 名称(Name):角色的名称。 [LabelText("名称")] public string Name; // 描述(Description):角色的描述信息。 [LabelText("描述")] public string Description; // 职业(Class):角色所属的职业,比如剑士、法师、刺客等。 [LabelText("职业")] public ProfessionType Profession; // 星级(Star Level):角色的星级(1星、2星、3星等)。星级影响角色的属性和技能强度,最高为3星。 [LabelText("星级")] public StarLevelType StarLevel; // 生命值(Health):角色的最大生命值。 [LabelText("生命值")] public List Health = new List(3); // 攻击力(Attack Damage):角色每次普通攻击造成的伤害。 [LabelText("攻击力")] public List AttackDamage = new List(3); // 攻击速度(Attack Speed):角色每秒能够进行多少次普通攻击。 [LabelText("攻击速度")] public List AttackSpeed = new List(3); // 法力值(Mana):角色施放技能所需要的法力值。 [LabelText("法力值")] public List Mana = new List(3); // 初始法力值(Starting Mana):角色在回合开始时已经拥有的法力值。 [LabelText("初始法力值")] public List StartingMana; // 攻击距离(AttackRange) [LabelText("攻击距离")] public List AttackRange = new List(3); // 暴击率(Critical Hit Chance) [LabelText("暴击率")] public List CriticalHitChance = new List(3); // 护甲(Armor):角色的物理防御,减少来自普通攻击的伤害。 [LabelText("护甲")] public List Armor = new List(3); // 魔抗(Magic Resistance):角色的魔法防御,减少来自技能攻击的伤害。 [LabelText("魔抗")] public List MagicResistance = new List(3); } /// /// 技能(Ability) /// [System.Serializable] public class Ability { // 技能名称(Ability Name):每个角色都有一个独特的技能名称。 [LabelText("技能名称")] public string AbilityName; // 技能描述(Ability Description):技能的具体效果,例如造成伤害、治疗、增益等。 [LabelText("技能描述")] public string AbilityDescription; // 触发方式(TriggerMode):主动、被动 [LabelText("触发方式")] public TriggerModeType TriggerMode; // 技能伤害(Ability Damage):技能造成的伤害值,通常受法术强度影响。 [LabelText("技能伤害")] public List AbilityDamage = new List(3); // 技能冷却时间(Cooldown):技能施放后的冷却时间,技能需要经过这个时间才能再次使用。 [LabelText("技能冷却时间(暂时弃用)")] public string Cooldown; // 技能目标(Target):技能攻击的目标类型,如单体目标、群体目标、指定区域等。 [LabelText("技能目标")] public TargetType Target; } /// /// 装备(Items) /// [System.Serializable] public class Items { // 装备类型(Item Type):每个装备的类别,分为防御类、攻击类、辅助类等。 public string ItemType; // 装备属性加成(Item Attributes):装备带来的属性加成,例如增加攻击力、攻击速度、生命值、护甲、法术强度等。 public string ItemAttributes; // 装备合成(Item Crafting):低级装备通过合成得到高级装备,每种装备都有不同的合成公式。 public string ItemCrafting; } /// /// 职业特性/羁绊(Traits)去掉种族 /// [System.Serializable] public class Profession { // 职业(Class): // 每个角色都属于一个或多个职业,每个职业也有独特的特性。 // 例如:剑士、刺客、法师、坦克等。 [LabelText("羁绊名字")] public string Name; // 职业描述 [LabelText("羁绊描述")] public string Description; [LabelText("增幅类型")] public AmplifyType AmplifyType; [LabelText("增幅目标类型")] public AmplifyTargetType AmplifyTargetType; [LabelText("增幅时间类型")] public AmplifyTimeType AmplifyTimeType; private bool isShowTime => AmplifyTimeType == AmplifyTimeType.持续的; [LabelText("增幅数值")] [ShowIf("isShowTime")] public List AmplifyTimes = new List(); } // 职业 public enum ProfessionType { 剑士 = 0, 法师, 刺客 } // 星级 public enum StarLevelType { 一星 = 0, 二星, 三星, 四星, 五星, } // 增幅类型 public enum AmplifyType { 血量 = 0, 法力值, 攻击力, 攻击速度, 攻击距离, 暴击率, 护甲, 魔抗, } // 增幅目标 public enum AmplifyTargetType { 单个 = 0, 所有, } // 增幅时间类型 public enum AmplifyTimeType { 一次性的 = 0, 持续的, } public enum TriggerModeType { 主动 = 0, 被动, } public enum TargetType { 单体目标 = 0, 群体目标, 指定区域, } }