parsed skills, combattechniques and improvements from the sources
This commit is contained in:
@@ -1,154 +0,0 @@
|
||||
{
|
||||
"steigerungsfaktoren": [
|
||||
{
|
||||
"aktivierung": "0",
|
||||
"faktoren": {
|
||||
"A": 1,
|
||||
"B": 2,
|
||||
"C": 3,
|
||||
"D": 4,
|
||||
"E": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"aktivierung": "1-12",
|
||||
"faktoren": {
|
||||
"A": 1,
|
||||
"B": 2,
|
||||
"C": 3,
|
||||
"D": 4,
|
||||
"E": 15
|
||||
}
|
||||
},
|
||||
{
|
||||
"aktivierung": "13",
|
||||
"faktoren": {
|
||||
"A": 2,
|
||||
"B": 4,
|
||||
"C": 6,
|
||||
"D": 8,
|
||||
"E": 15
|
||||
}
|
||||
},
|
||||
{
|
||||
"aktivierung": "14",
|
||||
"faktoren": {
|
||||
"A": 3,
|
||||
"B": 6,
|
||||
"C": 9,
|
||||
"D": 12,
|
||||
"E": 15
|
||||
}
|
||||
},
|
||||
{
|
||||
"aktivierung": "15",
|
||||
"faktoren": {
|
||||
"A": 4,
|
||||
"B": 8,
|
||||
"C": 12,
|
||||
"D": 16,
|
||||
"E": 30
|
||||
}
|
||||
},
|
||||
{
|
||||
"aktivierung": "16",
|
||||
"faktoren": {
|
||||
"A": 5,
|
||||
"B": 10,
|
||||
"C": 15,
|
||||
"D": 20,
|
||||
"E": 45
|
||||
}
|
||||
},
|
||||
{
|
||||
"aktivierung": "17",
|
||||
"faktoren": {
|
||||
"A": 6,
|
||||
"B": 12,
|
||||
"C": 18,
|
||||
"D": 24,
|
||||
"E": 60
|
||||
}
|
||||
},
|
||||
{
|
||||
"aktivierung": "18",
|
||||
"faktoren": {
|
||||
"A": 7,
|
||||
"B": 14,
|
||||
"C": 21,
|
||||
"D": 28,
|
||||
"E": 75
|
||||
}
|
||||
},
|
||||
{
|
||||
"aktivierung": "19",
|
||||
"faktoren": {
|
||||
"A": 8,
|
||||
"B": 16,
|
||||
"C": 24,
|
||||
"D": 32,
|
||||
"E": 90
|
||||
}
|
||||
},
|
||||
{
|
||||
"aktivierung": "20",
|
||||
"faktoren": {
|
||||
"A": 9,
|
||||
"B": 18,
|
||||
"C": 27,
|
||||
"D": 36,
|
||||
"E": 105
|
||||
}
|
||||
},
|
||||
{
|
||||
"aktivierung": "21",
|
||||
"faktoren": {
|
||||
"A": 10,
|
||||
"B": 20,
|
||||
"C": 30,
|
||||
"D": 40,
|
||||
"E": 120
|
||||
}
|
||||
},
|
||||
{
|
||||
"aktivierung": "22",
|
||||
"faktoren": {
|
||||
"A": 11,
|
||||
"B": 22,
|
||||
"C": 33,
|
||||
"D": 44,
|
||||
"E": 135
|
||||
}
|
||||
},
|
||||
{
|
||||
"aktivierung": "23",
|
||||
"faktoren": {
|
||||
"A": 12,
|
||||
"B": 24,
|
||||
"C": 36,
|
||||
"D": 48,
|
||||
"E": 150
|
||||
}
|
||||
},
|
||||
{
|
||||
"aktivierung": "24",
|
||||
"faktoren": {
|
||||
"A": 13,
|
||||
"B": 26,
|
||||
"C": 39,
|
||||
"D": 52,
|
||||
"E": 165
|
||||
}
|
||||
},
|
||||
{
|
||||
"aktivierung": "25",
|
||||
"faktoren": {
|
||||
"A": 14,
|
||||
"B": 28,
|
||||
"C": 42,
|
||||
"D": 56,
|
||||
"E": 180
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
@@ -1,28 +1,27 @@
|
||||
import type {DSAAttributes, DSAExperienceLevel, DSAPersonalData, DSAStats} from "../types/baseCharacter.ts";
|
||||
import type {DSACalculatedValue, DSAImprovements} from "../types/baseDSA.ts";
|
||||
import type {DSACalculatedValue} from "../types/baseDSA.ts";
|
||||
import type {DSABaseEquiment} from "../types/baseEquiment.ts";
|
||||
import type {DSAArmor, DSAMeleeWeapon, DSARangedWeapon, DSAShieldParryWeapon} from "../types/equiment.ts";
|
||||
import type {DSASpell} from "../types/character.ts";
|
||||
import Skill from "./Skill.ts";
|
||||
import Skills from "./Skills.ts";
|
||||
|
||||
// TODO
|
||||
// === LOGIC ===
|
||||
// Skillpoint <-> QualityLevel
|
||||
|
||||
export default class CharacterSheet extends Skill {
|
||||
export default class Character{
|
||||
public id: string
|
||||
|
||||
personalData: DSAPersonalData
|
||||
attributes: DSAAttributes
|
||||
stats: DSAStats
|
||||
fatePoints: DSACalculatedValue;
|
||||
fatePoints: DSACalculatedValue
|
||||
experienceLevel: DSAExperienceLevel
|
||||
advantanges: string[] // TODO
|
||||
disadvantanges: string[] // TODO
|
||||
generalSpecialAbilities: string[] // TODO
|
||||
|
||||
skills: string[] // TODO: {physical, social, nature, knowledge, craft} generated by GPT
|
||||
attributeModifiers: string[]
|
||||
skills: Skills[] // TODO: {physical, social, nature, knowledge, craft} generated by GPT
|
||||
languages: string[]
|
||||
scripts: string[]
|
||||
|
||||
@@ -80,9 +79,20 @@ export default class CharacterSheet extends Skill {
|
||||
spells?: DSASpell[]
|
||||
}
|
||||
|
||||
constructor(name: string) {
|
||||
super()
|
||||
constructor() {
|
||||
this.id = crypto.randomUUID()
|
||||
this.personalData.name = name
|
||||
this.personalData = {
|
||||
name: "", age: "", culture: "", family: "", hometown: "", profession: "", socialStanding: "", species: ""
|
||||
}
|
||||
this.attributes = {
|
||||
agility: 8,
|
||||
charisma: 8,
|
||||
cleverness: 8,
|
||||
constitution: 8,
|
||||
courage: 8,
|
||||
dexterity: 8,
|
||||
intuition: 8,
|
||||
strength: 8
|
||||
}
|
||||
}
|
||||
}
|
26
src/classes/DSAImprovementsTable.ts
Normal file
26
src/classes/DSAImprovementsTable.ts
Normal file
@@ -0,0 +1,26 @@
|
||||
import improvementCostTable from '../data/improvementcosttable.json'
|
||||
import type {DSAImprovements} from "../types/baseDSA.ts";
|
||||
|
||||
export default class DSAImprovementsTable {
|
||||
|
||||
private static readonly improvementCostTable = improvementCostTable;
|
||||
|
||||
|
||||
static getCost(improvement: DSAImprovements, level: number) : number{
|
||||
if(improvement === 'other') {
|
||||
//TODO
|
||||
return 0
|
||||
}
|
||||
else {
|
||||
return improvementCostTable[improvement][this.getKey(level)]
|
||||
}
|
||||
}
|
||||
|
||||
private static getKey(level : number) : string {
|
||||
if(level >= 1 && level <= 12) {
|
||||
return '1-12'
|
||||
} else {
|
||||
return level.toString()
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,25 +0,0 @@
|
||||
import type {DSAAttributes} from "../types/baseCharacter.ts";
|
||||
import type {DSAImprovements} from "../types/baseDSA.ts";
|
||||
|
||||
export default class Skill{
|
||||
skillName: string
|
||||
attributes: [keyof DSAAttributes, keyof DSAAttributes, keyof DSAAttributes]
|
||||
encumbrance: "YES" | "NO" | "MAYBE"
|
||||
improvement: DSAImprovements
|
||||
skillLevel: number
|
||||
comment: string
|
||||
|
||||
routineCheck() : number{
|
||||
return this.skillLevel >= 13 ? this.skillLevel/2 : 0
|
||||
}
|
||||
|
||||
improvementCost(){
|
||||
return DSAImprovementsTable.getCost(this.improvement, this.skillLevel)
|
||||
}
|
||||
|
||||
improve(){
|
||||
this.skillLevel ++
|
||||
}
|
||||
}
|
||||
|
||||
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export
|
26
src/classes/Skills.ts
Normal file
26
src/classes/Skills.ts
Normal file
@@ -0,0 +1,26 @@
|
||||
import type {DSAAttributes} from "../types/baseCharacter.ts";
|
||||
import type {DSAImprovements} from "../types/baseDSA.ts";
|
||||
import DSAImprovementsTable from "./DSAImprovementsTable.ts";
|
||||
|
||||
export default class Skills {
|
||||
skillName: string
|
||||
attributes: [keyof DSAAttributes, keyof DSAAttributes, keyof DSAAttributes]
|
||||
encumbrance: "YES" | "NO" | "MAYBE"
|
||||
improvement: DSAImprovements
|
||||
skillLevel: number
|
||||
comment: string
|
||||
|
||||
routineCheck(): number {
|
||||
return this.skillLevel >= 13 ? this.skillLevel / 2 : 0
|
||||
}
|
||||
|
||||
improvementCost() {
|
||||
return DSAImprovementsTable.getCost(this.improvement, this.skillLevel)
|
||||
}
|
||||
|
||||
improve() {
|
||||
this.skillLevel++
|
||||
}
|
||||
}
|
||||
|
||||
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export
|
91
src/data/combattechniques.json
Normal file
91
src/data/combattechniques.json
Normal file
@@ -0,0 +1,91 @@
|
||||
{
|
||||
"combat_techniques": {
|
||||
"page_ref": "p. 214-231",
|
||||
"techniques": [
|
||||
{
|
||||
"name": "Bows",
|
||||
"primary": ["DEX"],
|
||||
"improvement": "C",
|
||||
"type": "ranged"
|
||||
},
|
||||
{
|
||||
"name": "Brawling",
|
||||
"primary": ["AGI", "STR"],
|
||||
"improvement": "B",
|
||||
"type": "melee"
|
||||
},
|
||||
{
|
||||
"name": "Chain Weapons",
|
||||
"primary": ["STR"],
|
||||
"improvement": "B",
|
||||
"type": "melee"
|
||||
},
|
||||
{
|
||||
"name": "Crossbows",
|
||||
"primary": ["DEX"],
|
||||
"improvement": "B",
|
||||
"type": "ranged"
|
||||
},
|
||||
{
|
||||
"name": "Daggers",
|
||||
"primary": ["AGI"],
|
||||
"improvement": "B",
|
||||
"type": "melee"
|
||||
},
|
||||
{
|
||||
"name": "Fencing Weapons",
|
||||
"primary": ["AGI"],
|
||||
"improvement": "C",
|
||||
"type": "melee"
|
||||
},
|
||||
{
|
||||
"name": "Impact Weapons",
|
||||
"primary": ["STR"],
|
||||
"improvement": "C",
|
||||
"type": "melee"
|
||||
},
|
||||
{
|
||||
"name": "Lances",
|
||||
"primary": ["STR"],
|
||||
"improvement": "B",
|
||||
"type": "melee"
|
||||
},
|
||||
{
|
||||
"name": "Pole Weapons",
|
||||
"primary": ["AGI", "STR"],
|
||||
"improvement": "C",
|
||||
"type": "melee"
|
||||
},
|
||||
{
|
||||
"name": "Shields",
|
||||
"primary": ["STR"],
|
||||
"improvement": "C",
|
||||
"type": "defensive"
|
||||
},
|
||||
{
|
||||
"name": "Swords",
|
||||
"primary": ["AGI", "STR"],
|
||||
"improvement": "C",
|
||||
"type": "melee"
|
||||
},
|
||||
{
|
||||
"name": "Thrown Weapons",
|
||||
"primary": ["DEX"],
|
||||
"improvement": "B",
|
||||
"type": "ranged"
|
||||
},
|
||||
{
|
||||
"name": "Two-Handed Impact Weapons",
|
||||
"primary": ["STR"],
|
||||
"improvement": "C",
|
||||
"type": "melee"
|
||||
},
|
||||
{
|
||||
"name": "Two-Handed Swords",
|
||||
"primary": ["STR"],
|
||||
"improvement": "C",
|
||||
"type": "melee"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
87
src/data/improvementcosttable.json
Normal file
87
src/data/improvementcosttable.json
Normal file
@@ -0,0 +1,87 @@
|
||||
{
|
||||
"A": {
|
||||
"0": 1,
|
||||
"1-12": 1,
|
||||
"13": 2,
|
||||
"14": 3,
|
||||
"15": 4,
|
||||
"16": 5,
|
||||
"17": 6,
|
||||
"18": 7,
|
||||
"19": 8,
|
||||
"20": 9,
|
||||
"21": 10,
|
||||
"22": 11,
|
||||
"23": 12,
|
||||
"24": 13,
|
||||
"25": 14
|
||||
},
|
||||
"B": {
|
||||
"0": 2,
|
||||
"1-12": 2,
|
||||
"13": 4,
|
||||
"14": 6,
|
||||
"15": 8,
|
||||
"16": 10,
|
||||
"17": 12,
|
||||
"18": 14,
|
||||
"19": 16,
|
||||
"20": 18,
|
||||
"21": 20,
|
||||
"22": 22,
|
||||
"23": 24,
|
||||
"24": 26,
|
||||
"25": 28
|
||||
},
|
||||
"C": {
|
||||
"0": 3,
|
||||
"1-12": 3,
|
||||
"13": 6,
|
||||
"14": 9,
|
||||
"15": 12,
|
||||
"16": 15,
|
||||
"17": 18,
|
||||
"18": 21,
|
||||
"19": 24,
|
||||
"20": 27,
|
||||
"21": 30,
|
||||
"22": 33,
|
||||
"23": 36,
|
||||
"24": 39,
|
||||
"25": 42
|
||||
},
|
||||
"D": {
|
||||
"0": 4,
|
||||
"1-12": 4,
|
||||
"13": 8,
|
||||
"14": 12,
|
||||
"15": 16,
|
||||
"16": 20,
|
||||
"17": 24,
|
||||
"18": 28,
|
||||
"19": 32,
|
||||
"20": 36,
|
||||
"21": 40,
|
||||
"22": 44,
|
||||
"23": 48,
|
||||
"24": 52,
|
||||
"25": 56
|
||||
},
|
||||
"E": {
|
||||
"0": null,
|
||||
"1-12": 15,
|
||||
"13": 15,
|
||||
"14": 15,
|
||||
"15": 30,
|
||||
"16": 45,
|
||||
"17": 60,
|
||||
"18": 75,
|
||||
"19": 90,
|
||||
"20": 105,
|
||||
"21": 120,
|
||||
"22": 135,
|
||||
"23": 150,
|
||||
"24": 165,
|
||||
"25": 180
|
||||
}
|
||||
}
|
381
src/data/skills.json
Normal file
381
src/data/skills.json
Normal file
@@ -0,0 +1,381 @@
|
||||
{
|
||||
"physical_skills": {
|
||||
"page_ref": "p. 188-192",
|
||||
"skills": [
|
||||
{
|
||||
"name": "Body Control",
|
||||
"check": ["AGI", "AGI", "CON"],
|
||||
"enc": "yes",
|
||||
"improvement": "D"
|
||||
},
|
||||
{
|
||||
"name": "Carousing",
|
||||
"check": ["SGC", "CON", "STR"],
|
||||
"enc": "no",
|
||||
"improvement": "A"
|
||||
},
|
||||
{
|
||||
"name": "Climbing",
|
||||
"check": ["COU", "AGI", "STR"],
|
||||
"enc": "yes",
|
||||
"improvement": "A"
|
||||
},
|
||||
{
|
||||
"name": "Dancing",
|
||||
"check": ["SGC", "CHA", "AGI"],
|
||||
"enc": "yes",
|
||||
"improvement": "A"
|
||||
},
|
||||
{
|
||||
"name": "Feat of Strength",
|
||||
"check": ["COU", "STR", "STR"],
|
||||
"enc": "yes",
|
||||
"improvement": "B"
|
||||
},
|
||||
{
|
||||
"name": "Flying",
|
||||
"check": ["COU", "INT", "AGI"],
|
||||
"enc": "yes",
|
||||
"improvement": "B"
|
||||
},
|
||||
{
|
||||
"name": "Gaukelei",
|
||||
"check": ["COU", "CHA", "DEX"],
|
||||
"enc": "yes",
|
||||
"improvement": "A"
|
||||
},
|
||||
{
|
||||
"name": "Perception",
|
||||
"check": ["SGC", "INT", "INT"],
|
||||
"enc": "maybe",
|
||||
"improvement": "D"
|
||||
},
|
||||
{
|
||||
"name": "Pickpocket",
|
||||
"check": ["COU", "DEX", "AGI"],
|
||||
"enc": "yes",
|
||||
"improvement": "B"
|
||||
},
|
||||
{
|
||||
"name": "Riding",
|
||||
"check": ["CHA", "AGI", "STR"],
|
||||
"enc": "yes",
|
||||
"improvement": "B"
|
||||
},
|
||||
{
|
||||
"name": "Self-Control",
|
||||
"check": ["COU", "COU", "CON"],
|
||||
"enc": "no",
|
||||
"improvement": "D"
|
||||
},
|
||||
{
|
||||
"name": "Singing",
|
||||
"check": ["SGC", "CHA", "CON"],
|
||||
"enc": "maybe",
|
||||
"improvement": "A"
|
||||
},
|
||||
{
|
||||
"name": "Stealth",
|
||||
"check": ["COU", "INT", "AGI"],
|
||||
"enc": "yes",
|
||||
"improvement": "C"
|
||||
},
|
||||
{
|
||||
"name": "Swimming",
|
||||
"check": ["AGI", "CON", "STR"],
|
||||
"enc": "yes",
|
||||
"improvement": "B"
|
||||
}
|
||||
]
|
||||
},
|
||||
"social_skills": {
|
||||
"page_ref": "p. 193-197",
|
||||
"skills": [
|
||||
{
|
||||
"name": "Disguise",
|
||||
"check": ["INT", "CHA", "AGI"],
|
||||
"enc": "maybe",
|
||||
"improvement": "B"
|
||||
},
|
||||
{
|
||||
"name": "Empathy",
|
||||
"check": ["SGC", "INT", "CHA"],
|
||||
"enc": "no",
|
||||
"improvement": "C"
|
||||
},
|
||||
{
|
||||
"name": "Etiquette",
|
||||
"check": ["SGC", "INT", "CHA"],
|
||||
"enc": "maybe",
|
||||
"improvement": "B"
|
||||
},
|
||||
{
|
||||
"name": "Fast-Talk",
|
||||
"check": ["COU", "INT", "CHA"],
|
||||
"enc": "no",
|
||||
"improvement": "C"
|
||||
},
|
||||
{
|
||||
"name": "Intimidation",
|
||||
"check": ["COU", "INT", "CHA"],
|
||||
"enc": "no",
|
||||
"improvement": "B"
|
||||
},
|
||||
{
|
||||
"name": "Persuasion",
|
||||
"check": ["COU", "SGC", "CHA"],
|
||||
"enc": "no",
|
||||
"improvement": "B"
|
||||
},
|
||||
{
|
||||
"name": "Seduction",
|
||||
"check": ["COU", "CHA", "CHA"],
|
||||
"enc": "maybe",
|
||||
"improvement": "B"
|
||||
},
|
||||
{
|
||||
"name": "Streetwise",
|
||||
"check": ["SGC", "INT", "CHA"],
|
||||
"enc": "maybe",
|
||||
"improvement": "C"
|
||||
},
|
||||
{
|
||||
"name": "Willpower",
|
||||
"check": ["COU", "INT", "CHA"],
|
||||
"enc": "no",
|
||||
"improvement": "D"
|
||||
}
|
||||
]
|
||||
},
|
||||
"knowledge_skills": {
|
||||
"page_ref": "p. 201-205",
|
||||
"skills": [
|
||||
{
|
||||
"name": "Astronomy",
|
||||
"check": ["SGC", "SGC", "INT"],
|
||||
"enc": "no",
|
||||
"improvement": "A"
|
||||
},
|
||||
{
|
||||
"name": "Gambling",
|
||||
"check": ["SGC", "SGC", "INT"],
|
||||
"enc": "no",
|
||||
"improvement": "A"
|
||||
},
|
||||
{
|
||||
"name": "Geography",
|
||||
"check": ["SGC", "SGC", "INT"],
|
||||
"enc": "no",
|
||||
"improvement": "B"
|
||||
},
|
||||
{
|
||||
"name": "History",
|
||||
"check": ["SGC", "SGC", "INT"],
|
||||
"enc": "no",
|
||||
"improvement": "B"
|
||||
},
|
||||
{
|
||||
"name": "Law",
|
||||
"check": ["SGC", "SGC", "INT"],
|
||||
"enc": "no",
|
||||
"improvement": "A"
|
||||
},
|
||||
{
|
||||
"name": "Magical Lore",
|
||||
"check": ["SGC", "SGC", "INT"],
|
||||
"enc": "no",
|
||||
"improvement": "C"
|
||||
},
|
||||
{
|
||||
"name": "Math",
|
||||
"check": ["SGC", "SGC", "INT"],
|
||||
"enc": "no",
|
||||
"improvement": "A"
|
||||
},
|
||||
{
|
||||
"name": "Mechanics",
|
||||
"check": ["SGC", "SGC", "DEX"],
|
||||
"enc": "no",
|
||||
"improvement": "B"
|
||||
},
|
||||
{
|
||||
"name": "Myths & Legends",
|
||||
"check": ["SGC", "SGC", "INT"],
|
||||
"enc": "no",
|
||||
"improvement": "B"
|
||||
},
|
||||
{
|
||||
"name": "Religions",
|
||||
"check": ["SGC", "SGC", "INT"],
|
||||
"enc": "no",
|
||||
"improvement": "B"
|
||||
},
|
||||
{
|
||||
"name": "Sphere Lore",
|
||||
"check": ["SGC", "SGC", "INT"],
|
||||
"enc": "no",
|
||||
"improvement": "B"
|
||||
},
|
||||
{
|
||||
"name": "Warfare",
|
||||
"check": ["COU", "SGC", "INT"],
|
||||
"enc": "no",
|
||||
"improvement": "B"
|
||||
}
|
||||
]
|
||||
},
|
||||
"nature_skills": {
|
||||
"page_ref": "p. 198-200",
|
||||
"skills": [
|
||||
{
|
||||
"name": "Animal Lore",
|
||||
"check": ["COU", "COU", "CHA"],
|
||||
"enc": "yes",
|
||||
"improvement": "C"
|
||||
},
|
||||
{
|
||||
"name": "Fishing",
|
||||
"check": ["DEX", "AGI", "CON"],
|
||||
"enc": "maybe",
|
||||
"improvement": "A"
|
||||
},
|
||||
{
|
||||
"name": "Orienting",
|
||||
"check": ["SGC", "INT", "INT"],
|
||||
"enc": "no",
|
||||
"improvement": "B"
|
||||
},
|
||||
{
|
||||
"name": "Plant Lore",
|
||||
"check": ["SGC", "DEX", "CON"],
|
||||
"enc": "maybe",
|
||||
"improvement": "C"
|
||||
},
|
||||
{
|
||||
"name": "Ropes",
|
||||
"check": ["SGC", "DEX", "STR"],
|
||||
"enc": "maybe",
|
||||
"improvement": "A"
|
||||
},
|
||||
{
|
||||
"name": "Survival",
|
||||
"check": ["COU", "AGI", "CON"],
|
||||
"enc": "yes",
|
||||
"improvement": "C"
|
||||
},
|
||||
{
|
||||
"name": "Tracking",
|
||||
"check": ["COU", "INT", "AGI"],
|
||||
"enc": "yes",
|
||||
"improvement": "C"
|
||||
}
|
||||
]
|
||||
},
|
||||
"craft_skills": {
|
||||
"page_ref": "p. 206-213",
|
||||
"skills": [
|
||||
{
|
||||
"name": "Alchemy",
|
||||
"check": ["COU", "SGC", "DEX"],
|
||||
"enc": "yes",
|
||||
"improvement": "C"
|
||||
},
|
||||
{
|
||||
"name": "Artistic Ability",
|
||||
"check": ["INT", "DEX", "DEX"],
|
||||
"enc": "yes",
|
||||
"improvement": "A"
|
||||
},
|
||||
{
|
||||
"name": "Clothworking",
|
||||
"check": ["SGC", "DEX", "DEX"],
|
||||
"enc": "yes",
|
||||
"improvement": "B"
|
||||
},
|
||||
{
|
||||
"name": "Commerce",
|
||||
"check": ["SGC", "INT", "CHA"],
|
||||
"enc": "no",
|
||||
"improvement": "B"
|
||||
},
|
||||
{
|
||||
"name": "Driving",
|
||||
"check": ["CHA", "DEX", "CON"],
|
||||
"enc": "yes",
|
||||
"improvement": "A"
|
||||
},
|
||||
{
|
||||
"name": "Earthencraft",
|
||||
"check": ["DEX", "DEX", "STR"],
|
||||
"enc": "yes",
|
||||
"improvement": "A"
|
||||
},
|
||||
{
|
||||
"name": "Leatherworking",
|
||||
"check": ["DEX", "AGI", "CON"],
|
||||
"enc": "yes",
|
||||
"improvement": "B"
|
||||
},
|
||||
{
|
||||
"name": "Metalworking",
|
||||
"check": ["DEX", "CON", "STR"],
|
||||
"enc": "yes",
|
||||
"improvement": "C"
|
||||
},
|
||||
{
|
||||
"name": "Music",
|
||||
"check": ["CHA", "DEX", "CON"],
|
||||
"enc": "yes",
|
||||
"improvement": "A"
|
||||
},
|
||||
{
|
||||
"name": "Pick Locks",
|
||||
"check": ["INT", "DEX", "DEX"],
|
||||
"enc": "yes",
|
||||
"improvement": "C"
|
||||
},
|
||||
{
|
||||
"name": "Prepare Food",
|
||||
"check": ["INT", "DEX", "DEX"],
|
||||
"enc": "yes",
|
||||
"improvement": "A"
|
||||
},
|
||||
{
|
||||
"name": "Sailing",
|
||||
"check": ["DEX", "AGI", "STR"],
|
||||
"enc": "yes",
|
||||
"improvement": "B"
|
||||
},
|
||||
{
|
||||
"name": "Treat Disease",
|
||||
"check": ["COU", "INT", "CON"],
|
||||
"enc": "yes",
|
||||
"improvement": "B"
|
||||
},
|
||||
{
|
||||
"name": "Treat Poison",
|
||||
"check": ["COU", "SGC", "INT"],
|
||||
"enc": "yes",
|
||||
"improvement": "B"
|
||||
},
|
||||
{
|
||||
"name": "Treat Soul",
|
||||
"check": ["INT", "CHA", "CON"],
|
||||
"enc": "no",
|
||||
"improvement": "B"
|
||||
},
|
||||
{
|
||||
"name": "Treat Wounds",
|
||||
"check": ["SGC", "DEX", "DEX"],
|
||||
"enc": "yes",
|
||||
"improvement": "D"
|
||||
},
|
||||
{
|
||||
"name": "Woodworking",
|
||||
"check": ["DEX", "AGI", "STR"],
|
||||
"enc": "yes",
|
||||
"improvement": "B"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
@@ -1,19 +0,0 @@
|
||||
export interface BaseAbilities {
|
||||
str: number;
|
||||
dex: number;
|
||||
con: number;
|
||||
int: number;
|
||||
wis: number;
|
||||
cha: number;
|
||||
}
|
||||
|
||||
export interface DSAAttributes {
|
||||
courage: number;
|
||||
cleverness: number;
|
||||
intuition: number;
|
||||
charisma: number;
|
||||
dexterity: number;
|
||||
agility: number;
|
||||
constitution: number;
|
||||
strength: number;
|
||||
}
|
Reference in New Issue
Block a user