using System.Collections; using System.Collections.Generic; using UnityEngine; /// /// 角色工具 /// public static class CharacterTool { #region 设置参数 /// 设置职业 public static void Settings(this DataCharacter character, DataRace race) { character.race = race; } /// 设置职业 public static void Settings(this DataCharacter character, DataProfession profession) { character.profession = profession; profession.character = character; } #endregion #region 属性扩展 /// 战斗等级 public static int GetLevel(this DataCharacter character) { // TODO:需要补充多职业的等级总和 return character.profession.level; } /// 生命点 public static int GetHitPoint(this DataCharacter character) { // TODO:需要补充多职业的生命值加成 return character.profession.HitPoint(); } /// 计算护甲等级(AC) public static int GetArmorClass(this DataCharacter character) { // TODO:需要补充专长,技能,熟练之类的加值 int modifier = character.DexModifier; return character.equipment.ArmorClass(modifier); } #endregion #region 创建角色 /// 创建默认角色 public static DataCharacter Create(string name) { DataCharacter character = new DataCharacter(); character.name = name; character.race = RaceTool.None(); character.basis = AttributeTool.Random(); character.profession = ProfessionTool.None(); character.profession.Initial(character); character.equipment = new DataEquipment(); return character; } /// 创建默认角色 public static DataCharacter Create(string name, DataRace race, DataProfession profession) { DataCharacter character = new DataCharacter(); character.name = name; character.race = race; character.basis = AttributeTool.Random(); character.profession = profession; character.profession.Initial(character); character.equipment = new DataEquipment(); return character; } #endregion // 打印角色卡 public static void PrintCharacterSheet(this DataCharacter character) { Debug.Log($"=== {character.name} LV{character.Level} ==="); Debug.Log($"种族: {character.race.name}"); Debug.Log($"职业: {character.profession.name}"); Debug.Log($"力量: {character.Str} ({character.StrModifier.ToString("+#;-#;+0")})"); Debug.Log($"敏捷: {character.Dex} ({character.DexModifier.ToString("+#;-#;+0")})"); Debug.Log($"体质: {character.Con} ({character.ConModifier.ToString("+#;-#;+0")})"); Debug.Log($"智力: {character.Int} ({character.IntModifier.ToString("+#;-#;+0")})"); Debug.Log($"感知: {character.Wis} ({character.WisModifier.ToString("+#;-#;+0")})"); Debug.Log($"魅力: {character.Cha} ({character.ChaModifier.ToString("+#;-#;+0")})"); Debug.Log($"经验值: {character.expPoint}"); Debug.Log($"生命值: {character.HitPoint}"); Debug.Log($"护甲等级: {character.ArmorClass})"); } }