Files
MuHua-UIElements/Assets/ModuleCore/Module/DataCharacter.cs
T
MuHua-123 b6adf24ff1 1
2025-07-25 17:46:56 +08:00

121 lines
4.1 KiB
C#

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