using System.Collections; using System.Collections.Generic; using System.Linq; using UnityEngine; /// /// 职业 - 数据 /// public class DataProfession { /// 职业名称 public readonly string name; /// 生命骰子 public readonly int hitDice = 0; /// 角色 public DataCharacter character; /// 职业等级 public int level = 0; /// 累计生命点 public List hitPoints = new List(); public DataProfession(string name, int hitDice) { this.name = name; this.hitDice = hitDice; } /// 初始:满生命骰子 + 体质调整值 public void Initial(DataCharacter character) { this.character = character; level = 1; // 初始生命 = hitPoints = new List(); hitPoints.Add(hitDice + character.ConModifier); } /// 升级:骰生命骰子 + 体质调整值 public void Upgrade() { level++; int hitPoint = Dice.Roll(hitDice) + character.ConModifier; hitPoints.Add(hitPoint); } /// 生命点:每级生命点总和 public int HitPoint() { return hitPoints.Sum(); } /// 无职业 1d4 public static DataProfession None() { return new DataProfession("无", 4); } /// 随机职业 public static DataProfession Random() { int index = Dice.Roll(5); if (index == 1) { return Warrior(); } if (index == 2) { return Wizard(); } if (index == 3) { return Cleric(); } if (index == 4) { return Ranger(); } if (index == 5) { return Chanter(); } return None(); } /// 战士 1d10 public static DataProfession Warrior() { return new DataProfession("战士", 10); } /// 法师 1d6 public static DataProfession Wizard() { return new DataProfession("法师", 6); } /// 牧师 1d8 public static DataProfession Cleric() { return new DataProfession("牧师", 8); } /// 游侠 1d8 public static DataProfession Ranger() { return new DataProfession("游侠", 8); } /// 歌者 1d6 public static DataProfession Chanter() { return new DataProfession("歌者", 6); } }