63 lines
1.3 KiB
TypeScript
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;
|