From 1848d3cfb61875042c383831dc0bdb276de2476a Mon Sep 17 00:00:00 2001 From: Endeavorance Date: Thu, 20 Feb 2025 19:58:23 -0500 Subject: [PATCH] Add shapes to readme --- README.md | 125 ++++++++++++++++++++++++++++++++++++++--- src/playbill-schema.ts | 4 +- 2 files changed, 119 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index b09e59f..109d1ed 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,13 @@ This is a CLI tool for compiling YAML files into a validated Playbill for [Prosc ## Usage -``` +```plaintext Usage: muse [/path/to/binding.yaml] Options: - --check Only load and check the current binding and resources, but do not compile + --check Only load and check the current binding and resources, + but do not compile --write Write the output to a file. If not specified, outputs to stdout --outfile Specify the output file path [default: playbill.json] --verbose, -v Verbose output @@ -19,12 +20,12 @@ Options: ## Binding File ```yaml -$binding: playbill -id: the-playbill-id -name: My Playbill -author: My Name -version: 0.0.1 -files: # optional +$binding: playbill # Required +id: the-playbill-id # Required +name: My Playbill # Required +author: My Name # Required +version: 0.0.1 # Required +files: # Optional - "**/*.yaml" ``` @@ -61,3 +62,111 @@ banes: # Optional - Second bane ``` + +### Shape: Method + +```yaml +$define: method # Required +id: method-id # Required +name: Method Name # Required +description: Method Description # Required +curator: Method Curator Name # Required +abilities: + - [ability-id, another-ability] + - [yet-anotther, and-so-on] +``` + +### Shape: Species + +```yaml +$define: species # Required +id: species-id # Required +name: Species Name # Required +description: Species Description # Required +abilities: + - ability-id + - another-ability +bonuses: + bonusMaxHp: 1 + bonusMaxAp: 1 + bonusMaxEp: 1 + muscleProwess: adept + knowledgeProwess: adept + focusProwess: adept + charmProwess: adept + cunningProwess: adept + sparkProwess: adept +``` + +### Shape: Entity + +```yaml +$define: entity +id: entity-id # Required +name: Entity Name # Required +description: Entity Description # Required +species: species-id # Required +abilities: + - some-ability + - another-ability +stats: + hp: 1 + ap: 1 + ep: 1 + xp: 1 +talents: + muscle: adept + knowledge: adept + focus: adept + charm: adept + cunning: adept + spark: adept +damage: 0 +baggage: [] +``` + +### Shape: Item + +```yaml +$define: item +id: item-id # Required +name: Item Name # Required +description: Item Description # Required +type: wielded | worn | trinket +slots: 0 | 1 | 2 | 3 | 4 | 5 +tags: + - some-tag-id + - another-tag-id +``` + +### Shape: Item Tag + +```yaml +$define: tag +id: tag-id # Required +name: Tag Name # Required +description: Tag Description # Required +icon: https://some.url/icon.png +``` + +### Shape: Lore + +```yaml +$define: lore +id: lore-id # Required +name: Lore Entry Name # Required +description: Lore entry content # Required +categories: + - something + - another +``` + +### Shape: Rule + +```yaml +$define: rule +id: rule-id # Required +name: Rule Name # Required +description: Rule content # Required +overrule: existing-rule-id # Optional +``` diff --git a/src/playbill-schema.ts b/src/playbill-schema.ts index fd88d8c..6219fbf 100644 --- a/src/playbill-schema.ts +++ b/src/playbill-schema.ts @@ -85,6 +85,7 @@ export const PlaybillResourceSchema = z.object({ export const AbilityEffectSchema = z.object({ bonusMaxHp: z.number().optional(), bonusMaxAp: z.number().optional(), + bonusMaxEp: z.number().optional(), muscleProwess: TalentProwessSchema.optional(), knowledgeProwess: TalentProwessSchema.optional(), focusProwess: TalentProwessSchema.optional(), @@ -153,8 +154,7 @@ export const SpeciesSchema = PlaybillResourceSchema.extend({ $define: z.literal("species"), name: NameSchema.default("Unnamed Species"), abilities: z.array(IDSchema).default([]), - statMaxModifiers: StatSpreadSchema.default({}), - talentMinimums: TalentSpreadSchema.default({}), + bonuses: AbilityEffectSchema.default({}), }); export const RuleSchema = PlaybillResourceSchema.extend({