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})");
}
}