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