using System.Collections;
using System.Collections.Generic;
using UnityEngine;
///
/// 属性 - 数据
///
public class DataAttribute {
/// 力量(strength)
public virtual int Str { get; set; }
/// 敏捷(dexterity)
public virtual int Dex { get; set; }
/// 体质(constitution)
public virtual int Con { get; set; }
/// 智力(intelligence)
public virtual int Int { get; set; }
/// 感知(wisdom)
public virtual int Wis { get; set; }
/// 魅力(charisma)
public virtual int Cha { get; set; }
/// 力量调整值(strength)
public int StrModifier => AttributeTool.Modifier(Str);
/// 敏捷调整值(dexterity)
public int DexModifier => AttributeTool.Modifier(Dex);
/// 体质调整值(constitution)
public int ConModifier => AttributeTool.Modifier(Con);
/// 智力调整值(intelligence)
public int IntModifier => AttributeTool.Modifier(Int);
/// 感知调整值(wisdom)
public int WisModifier => AttributeTool.Modifier(Wis);
/// 魅力调整值(charisma)
public int ChaModifier => AttributeTool.Modifier(Cha);
}
///
/// 角色 - 数据
///
public class DataCharacter : DataAttribute {
/// 名字
public string name;
/// 经验
public int expPoint;
/// 种族
public DataRace race;
/// 属性
public DataAttribute basis;
/// 职业
public DataProfession profession;
/// 装备
public DataEquipment equipment;
/// 战斗等级
public int Level => CharacterTool.GetLevel(this);
/// 生命点
public int HitPoint => CharacterTool.GetHitPoint(this);
/// 护甲等级
public int ArmorClass => CharacterTool.GetArmorClass(this);
/// 力量(strength) 基础值 + 种族加值
public override int Str { get => basis.Str + race.Str; }
/// 敏捷(dexterity) 基础值 + 种族加值
public override int Dex { get => basis.Dex + race.Dex; }
/// 体质(constitution) 基础值 + 种族加值
public override int Con { get => basis.Con + race.Con; }
/// 智力(intelligence) 基础值 + 种族加值
public override int Int { get => basis.Int + race.Int; }
/// 感知(wisdom) 基础值 + 种族加值
public override int Wis { get => basis.Wis + race.Wis; }
/// 魅力(charisma) 基础值 + 种族加值
public override int Cha { get => basis.Cha + race.Cha; }
}
///
/// 种族 - 数据
///
public class DataRace : DataAttribute {
/// 种族名称
public string name;
}
///
/// 职业 - 数据
///
public class DataProfession {
/// 职业名称
public string name;
/// 生命骰子
public int hitDice = 0;
/// 角色
public DataCharacter character;
/// 职业等级
public int level = 0;
/// 累计生命点
public List hitPoints = new List();
}