Add shapes to readme

This commit is contained in:
Endeavorance 2025-02-20 19:58:23 -05:00
parent 29e1c3c09e
commit 1848d3cfb6
2 changed files with 119 additions and 10 deletions

125
README.md
View file

@ -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>
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
```

View file

@ -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({