muse/README.md

172 lines
3.1 KiB
Markdown

# Playbill Builder CLI
This is a CLI tool for compiling YAML files into a validated Playbill for [Proscenium](https://proscenium.game)
## Usage
```plaintext
Usage:
muse [/path/to/binding.yaml] <options>
Options:
--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
--help, -h Show this help message
```
## Binding File
```yaml
$binding: playbill # Required
id: the-playbill-id # Required
name: My Playbill # Required
author: My Name # Required
version: 0.0.1 # Required
files: # Optional
- "**/*.yaml"
```
## Definable Playbill Resources
- ability
- species
- entity
- item
- tag
- lore
- method
- rule
### Shape: Ability
```yaml
$define: ability # Required
id: ability-id # Required
name: Ability Name # Required
description: Some description # Required
type: action | cue | trait # Required
costs: # Optional, and each subfield is optional
ap: 1
hp: 1
xp: 1
ep: 1
roll: none (default), fate or a talent # Optional
boons: # Optional
- First boon
- Second boon
banes: # Optional
- First bane
- 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
```