Replies: 5 comments 1 reply
-
I started working on #187 when I realized it would be better to include everything. If I write such a message, it's because I would like to help implement it, and as it's a pretty big change, I prefer to ask about it before coding it. |
Beta Was this translation helpful? Give feedback.
-
As you are working on this please do not hesitate to reach out if there is anything I can add to the plugin to make it easier on you with systems like this. That could be new block types, or possibly extending the existing block behaviors. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Do you know how I could use a variable from e.g. another table in a Math formula? I would like to use the value from e.g. Str from the table to calculate a skill modifier. Example: Skill (climb) = Str + value |
Beta Was this translation helpful? Give feedback.
-
This is awesome! Have you progressed on this at all? |
Beta Was this translation helpful? Give feedback.
-
Disclaimer: English is not my primary language, I didn't use any automatic translator, and therefore the RPG vocabulary could be incorrect (among other things). All of this is only my opinion on the subject, and I have no right to decide the future implementation of the project.
How to implement other game systems (technical side)
The plugin was originally made for DnD, but as its popularity grew, other game systems came to it, and the plugin expanded to include, for example, Pathfinder, Fate Core or the 13th Age. Except that all those game systems are based on the same core game mechanic : throw a die, add a number and look if it is more than a threshold. Fantasy-statblock has been developed for those game systems, but there are others, and the modularity of the plugin hasn't been made for those radically different ones, like The Call of Cthulhu, based on percentiles without modifiers.
The purpose is to allow those other systems in fantasy-statblock.
Implementation
For the implementation, there are two choices: a visual implementation or a more structural one.
Visual
The visual implementation will be the simplest and fastest to implement. There's no deep change in the plugin, it's just the possibility of a callback to choose the display of any value. Except that these values need to be picked from a parent one, making use of serialization for saving more complex values, and these callbacks will need to be repeated by the user on every other user of the value, with dice-roller, data view or initiative-tracker.
Structural
The structural implementation is much deeper and aims at allowing any data type or structure for any value. An example will be to save the max and current value of a start or the money of a player in copper, gold, and silver. But this implementation will need a change to the API for intercommunication between plugins.
Customization
Now that we know how and what is going to change, there is still the question of where : layout wide or block wide ?
Block wide
This will allow users to fine-tune their layout with a specific selection of blocks they want to change. But for the same game system, it will be repetitive.
Layout wide
Another option would be to define these callbacks globally for the layout. This will allow an easy and user-friendly implementation without losing too many possibilities. Additionally, this will add layout-wide options that could be used later for future implementation.
I tried to be impartial. Thanks for reading all of it. Don't hesitate to give a feedback.
Beta Was this translation helpful? Give feedback.
All reactions