osr-generators
Version:
Generators for OSR-style tabletop roleplaying games
54 lines (51 loc) • 1.39 kB
TypeScript
type GearItem = {
count: number;
name: string;
slots: number;
type: 'food' | 'tool' | 'light' | 'armor' | 'weapon';
};
type ArmorItem = GearItem & {
quality: number;
defense: number;
type: 'armor';
};
type WeaponItem = GearItem & {
damage: string;
hand: number;
quality: number;
type: 'weapon';
};
type Noun = 'physique' | 'face' | 'skin' | 'hair' | 'clothing' | 'virtue' | 'vice' | 'speech' | 'background' | 'misfortune';
type Traits = Record<Noun, string>;
type Abilities = Record<AbilityName, Ability>;
type AbilityName = 'charisma' | 'constitution' | 'dexterity' | 'intelligence' | 'strength' | 'wisdom';
type Ability = {
bonus: number;
defense: number;
};
declare class Character {
armor: ArmorItem;
copperPieces: number;
items: GearItem[];
itemSlots: number;
level: number;
maxHp: number;
traits: Traits;
weapon: WeaponItem;
private abilities;
constructor();
generate: () => void;
get abilityScores(): Abilities;
get charisma(): Ability;
get constitution(): Ability;
get dexterity(): Ability;
get intelligence(): Ability;
get strength(): Ability;
get wisdom(): Ability;
private rollForCopperPieces;
private rollHitPoints;
private generateAbilities;
private rollAbilityScore;
private generateTraits;
}
export { Character as KnaveCharacter };