javalent / fantasy-statblocks

Create Dungeons and Dragons style statblocks for Obsidian.md
MIT License
357 stars 69 forks source link

Feature Request: A generic table and list of strings & traits #30

Closed VeroVerro closed 2 years ago

VeroVerro commented 2 years ago

Hi!

So I'm finally trying out the beta and building a fate core layout for NPCs (since fate doesn't have monsters as such, just entities that all have basically the same properties), and I could really use a simple list of strings. It could look like spells, for example, just without any constraints about content. If it could also have a section heading, like Traits, that'd be great too :) It'd be perfect for aspects of an entity. Thank you!

Another one that'd be really appreciated is a generic list of traits. It'd look just like traits (like Actions or Legendary actions), but it'd not be tied to a dictionary (or maybe a custom dictionary could be used? that'd be awesome too, that way I could build a library of stunts, for example :D but I can do that in a separate note anyway, and just copy-paste, so that's good too). So I could write something like:

skills:
    - [Fantastic (+6), Deceive and Fight]
    - [Superb (+5), Shoot, Burglary]
stunts:
    - [Takes One to Know One, Use Deceive instead of Empathy to create an advantage in social situations.]

Same with a generic table, without the calculations - so without the stuff in parenthesis if I make my own headings:

I'm attaching a main NPC stats as an example. (This image is not exhaustive though, just fyi, by default the NPC can also have items, and fate is meant to be extensible, so they'd often have more properties, based on the game setting.)

valentine195 commented 2 years ago

I'm working on this, but this:

skills:
    - [Fantastic (+6), Deceive and Fight]
    - [Superb (+5), Shoot, Burglary]
stunts:
    - [Takes One to Know One, Use Deceive instead of Empathy to create an advantage in social situations.]

should already be possible with the existing Trait block. Just link it to the skills and stunts property here:

image

VeroVerro commented 2 years ago

Is there some kind of whitelist of allowed monster property names then, maybe? because this is what it looks like:

The one under "Traits" heading is a traits section that I copied as is from the stunts property and just renamed it to "traits", and added a Traits block linked to "traits". The block is the same as those for "stunts" and "skills", and I also tried creating one with "traits" property, checking if it shows up and then renaming the property to a random word, which is when it went back to undefined.

This is what it is in the layout builder:

(I turned off the dice parsing & conditional to keep any possible side effects minimal, but it does the same with them on.)

Does it work for you though? So we know if it's something on my computer. I also tried it on a new empty vault with no themes or anything else enabled though, and it still showed text when it was "traits" property but not when it was "stunts", all things otherwise being equal.

valentine195 commented 2 years ago

The block creator may be a little misleading, yeah. The "standard" monsters only have the 5e properties (as in, they do not have a "Stunts" property on them). You would have to create a monster JSON and add that property yourself. I will make it easier to do that - right now you either have to click the edit button on a monster in your bestiary or edit the plugin data.json file directly.

valentine195 commented 2 years ago

Once I have some more time I'll make a wiki on this repo with some steps to set up a custom layout.

VeroVerro commented 2 years ago

Thank you, I'll try it that way then :)

VeroVerro commented 2 years ago

Okay, I'm not sure if I did it right - probably not lol bc there already were stunts, but what I did was save the monster as homebrew from the note, then clicked edit on it in the ttrpg plugin homebrew section. It did already have the stunts and skills though (and still showed them as undefined in the note), but they had a different format than traits, look:

image

Edit: Could the undefined-s be a result of this format differences? If the plugin expects an object with "name" and "desc" properties and instead gets an array with two strings, that'd definitely explain it. I did try changing the format of "skills" and "stunts" in the json based on "traits", but that still didn't change the undefined though.

Also, I tried to remove the empty "actions" property and that gave me an error in the console:

image

Again, I realize that's probably not what you meant but thought you might want to know anyway :D I'm going to look at that data.json file in the plugin now.

Edit: So I edited data.json directly and it looks like it still expects the 5e properties - like, removing the empty "actions" array also gave that console error and it didn't parse. Putting them back fixed it.

valentine195 commented 2 years ago

Please update to the latest beta and try again.

VeroVerro commented 2 years ago

Thank you! And sorry that it took me so long, I lost access to my pc yesterday for half a day.

I updated and tried out the new text block, and it works nicely combined with the markdown rendering :D

What I had originally in mind was a list of strings (like spells) that would be formatted like this:

aspects: 
    - Main aspect is this
    - Trouble aspect is this
    - Third aspect is this

Which renders like this:

But since this is text and it can be set to parse markdown, I can also just write it in one line with <br> and it shows them on new lines - I like this a lot, it makes it super customizable :D I wrote my original format in the statblock block (and the results) too though, because I'd have expected it to parse the markdown list. Still, I think I prefer it this way, it has more styling options since it can parse html :D

aspects: Main aspect is this<br>Trouble aspect is this<br>Third aspect is this

For example, this also works:

aspects:
    <div>Main aspect is this</div>
    <div>Trouble aspect is this</div>
    <div>Third aspect is this</div>
valentine195 commented 2 years ago

this works

monster: Ancient Black Dragon
layout: Text
name: Paarthurnax
stunts: "
  - Test\n
  - Test 2\n
  - [[Statblock Testing]]"

image

VeroVerro commented 2 years ago

It does! Thanks for the tip <3 So yeah, I'm super happy with this update, thank you :)

valentine195 commented 2 years ago

Can this be closed?

VeroVerro commented 2 years ago

yes, thank you!