
I'm making a system that uses d100s measured against a character's skills to determine level of success (where 1 is the best you can roll and 100 is the worst):
- Roll result is 1/5 of skill or lower = Critical Success
- Roll result is 1/2 of skill or lower = Success
- Roll result is lower than skill = Partial Success
- Roll result is 50 + (Skill/2) or lower = Complication
- Roll result is lower than 95 = Failure
- Roll result is 95 or higher = Critical Failure
The intent is that the highest degree of success to be satisfied is used as the outcome. So, for example, if you had a Bowcraft skill of 50:
- Rolling a 10 or lower = Critical Success
- Rolling a 25 or lower = Success
- Rolling a 50 or lower = Partial Success
- Rolling a 75 or lower = Complication
- Rolling a 76 - 95 = Failure
- Rolling a 96 - 100 = Critical Failure
If this were a non-digital game, each skill would need a matrix that you'd need to look up every time to see what degree of success you got. With a virtual table top, however, I hope to make all of that happen in the background when a player clicks to roll on their sheet so it can immediately calculate and tell you what the degree of success is.
My question is, if I were to create my own custom character sheet, how would I go about implementing the "if the roll is not this, then check if it is this" framework? I've been looking at the documentation and between Macros, Roll Templates, Custom Sheets, Sheetworkers, HTML, CSS, and Javascript, I'm not sure how to accomplish this the most efficiently. Where can I put the logic of "if the die roll satisfies this parameter, then this is the degree of success that will be posted in chat." Ideally I want to make it pretty too, but that can wait.
Thanks for the help.