iron-vault-plugin / iron-vault

Obsidian plugin for Ironsworn/Starforged games
https://iron-vault-plugin.github.io/iron-vault/
Other
22 stars 1 forks source link

Support multi-step moves #320

Open zkat opened 4 days ago

zkat commented 4 days ago

Some moves have more complex workflows than "make the move" or "do an action roll"--some of them involve a multi-step process with optional steps and even oracle rolls.

This data is completely missing from datasworn, aside from the raw move text, but it can make it super annoying to use certain moves and still get the move blocks you want.

For example, the flow for most Suffer moves in Starforged is:

  1. Immediately suffer harm (-1, -2, -3)
  2. (optional) roll with either a meter or a stat to try to reduce or cancel the damage
  3. On a miss, either suffer an impact or roll on an oracle

I think in order to support this, we'll have to do the same thing we're doing with entities and hardcode it per known move, creating a modal- and prompt-based multi step move flow.

zkat commented 3 days ago

Here's an idea: Allow "insert this move block" and "roll this move" to be separate actions, if desired.

So, the flow for Suffer would go something like this:

  1. open up the move
  2. click on "Make this move" (some wording might be needed here)
  3. move block with no body/no roll is added to the journal
  4. open up move again
  5. click on a stat, work through adds
  6. journal entry with identical move name is updated with the roll

So, changes that would be needed:

  1. the "Make this Move" button no longer prompts for rolls: it just adds the move container
  2. An extra box needs to be added to stats to "roll custom", which will allow freeform picking of stats
  3. Rolling a move will append to a previous, existing move container if the move container's name is identical to the move being made
  4. Making the move will unconditionally create a new move container.
  5. We need to add a "Roll move oracle" button to all moves with oracle tables attached to them.
zkat commented 2 days ago

@cwegrzyn popping this over to you. From our Discord convo:

We're just gonna add a "skip roll" entry into the stat prompt for the Make a move command. That should take care of the Suffer issue just fine.

We still need to add a "Roll move oracle" button for all moves with tables, but I'll make a separate issue for that.

There's also #326 which will help with that optional roll.