Files
campaign-manager/rulesets/src/dsa5e/index.ts

63 lines
1.3 KiB
TypeScript

import type { Ruleset, SheetData, ValidationResult, StatBlock, DiceAction, VNode } from '../types';
const dsa5e: Ruleset = {
id: 'dsa5e',
name: 'Das Schwarze Auge 5e',
version: '0.1.0',
defaultSheet(): SheetData {
return {
name: '',
race: '',
culture: '',
profession: '',
attributes: {
courage: 8,
sagacity: 8,
intuition: 8,
charisma: 8,
dexterity: 8,
agility: 8,
constitution: 8,
strength: 8,
},
derivedValues: {
lifePoints: 0,
arcaneEnergy: null,
karmaPoints: null,
initiative: 0,
dodge: 0,
woundThreshold: 0,
},
talents: [],
combatTechniques: [],
specialAbilities: [],
spells: [],
liturgies: [],
equipment: [],
notes: '',
};
},
validate(_sheet: SheetData): ValidationResult {
// TODO: implement DSA5e validation rules
return { valid: true, errors: [] };
},
getStatBlocks(_sheet: SheetData): StatBlock[] {
// TODO: extract stat blocks from sheet
return [];
},
getDiceActions(_sheet: SheetData): DiceAction[] {
// TODO: derive dice actions from talents and combat techniques
return [];
},
renderSheet(_sheet: SheetData): VNode {
throw new Error('not implemented');
},
};
export default dsa5e;