#Wasp's Resting Module Testing-Preview
1 messages ยท Page 1 of 1 (latest)
thanks, this could get long so probably best to put in a thread
@thick sapphire Here ya go!
https://raw.githubusercontent.com/Haxxer/FoundryVTT-ShortRestRecovery/next/module.json
( ๐ค that next branch )
its so nice, i love it so
Huh, never thought to name a branch next. I typically camel-case a feature name as the branch name
Honeybadger has this really neat workflow that makes any pre-release deployment update the next branch's manifest
Do you have a preference if these are manually-created PCs or ones imported from D&D Beyond?
I hope it'll work either way
I only check feature names such as "Bard", "Wizard", or "Periapt of Wound Closure" kinda deal
a bit off topic, but that's the holding place for the latest "beta" manifest. If you are interested, I can link you the template repo
sure, couldn't hurt
I agree, should work for either way. Wasn't sure if you tested with one or the other. Figured I'd offer to test the one you didn't already try
https://github.com/trioderegion/fvtt-dual-track-module (I need to improve the readme, but it should be pretty simple to use -- release vs pre-release when creating a new release)
A headsup,
With 1.6.0, you won't really need to check the name of a class item against an arbitrary string, you'll be able to reliably check for the identifier field of the class item.
Neat, I'm checking for type and name at the moment
Short rest test:
- no special recharges (a barbarian)
- I put him down 1/2 HP and started the short rest
It wasn't obvious at first, but when I rolled a hit die I realized that the red slider bar at the bottom of the dialog was showing his hit points
kind of like how you can show them on the token
perhaps I could hide it until you roll?
Hmm, nah I would want it to be visible I think
I don't know how, but it would be nice to somehow label or otherwise indicate what that slider is for
If the colors followed those used on the token, that might be enough of an indicator
Make it thicker, less red and put a big ol "HP" text in there
like HP: [curr]/[max]
sure, that could work
I did a similar thing with the symbaroum 5e module releasing publicly soon
Next, if I apply healing outside rolling hit die (e.g. manually adding some HP on the token HUD or right-clicking a die roll like a Bard's Song of Rest to Apply Healing), the HP bar in the short rest dialog does not update
not nearly as fancy, but displays that status relatively clearly
Easy enough to add!
Nice touch disabling the Roll button when they're at max HP
I didn't have a Bard to test Song of Rest with, so I dragged it (from the Class Features SRD compendium) onto a Paladin and it didn't show up when I short rested him. Is it also checking for the class in addition to the feature?
How's this?
It is indeed
It's based on the bard's level
50/40? ๐
flip the numbers around
Uhhh
I swear i switched it around
Must have refreshed just before the build
Aye
very nice
I would have expected it to use whatever is in the feature. It has a damage formula
I default to RAW, but I could check the item's damage formula
See, dis is why I test things
custom classes will mess with that too
you know how dnd5e players LOVE to smash things together, lolol
The benefit of the module doing it is that the module can handle the auto-scaling based on the Bard's level. The benefit of keying off the feature is that if a player has the feature from some homebrew stuff or changed the formula because of some homebrew stuff, it'll work
Yeah - I might just default to item behavior
if it doesn't have a damage roll, fall back to RAW rolls
if it can find the bard class
sure, that's a reasonable fallback
yea...and confusing to describe
true, could be fine to just document that it looks for the feature and will roll the "damage" so you get a roll chat card to Apply Healing with
and then people will also change its feature name to match with some flavor they applied
so its a can of worms if you allow any fallbacks
I see... someone wants to rename it to Lullaby... you can't account for everything
sometimes you just have to put your foot down
lets see...lets see....there is also the idea of Special Traits -- 5e Helpers uses that instead of checking feature names (wild magic surge)
so, you could have a "rest features" config dialog that allows you to set how your features are scaled?
sure, a flag is nice but that just sounds too complicated for this
the reason i went that direction is because no matter WHAT i described, or tossed as warnings, it was a 50/50 chance that someone would realize the FEATURE name has to match the name entered in the options
my two cents: just key off feature/item names, I think it's fine
if you get enough feedback b/c people localize them or rename them for flavor, you can always revisit that
ohhhh, here we go, here we go
i homebrew the shit out of a class and give it a rest feature of some sort. I go to rest, the dialog comes up and the list of detected features it shows, doesnt include my particular rest feature. Fortunately, the dialog has a "configure rest features" button, which allows you to manually mark what features you have and what class it ties to
its a bit much, but it would make the UX make much more sense
(and no, i havent been thinking about this because i want to automate more class features in 5e helpers, not at all, why do you ask?)
I imported a PC from DDB that had a Periapt of Would Closure (equipped & attuned). I short rested but it didn't double the HP
do you need an exported JSON of that character?
Hmmm, interesting, yes please
one Barbarian, coming up
On that PC, when I clicked on the Roll button to roll a hit die, the "X Close" button in the upper-right corner of the dialog disappeared.
I can still press the Esc key to close it without finishing the rest, but odd
Yeah that was intentional - I wanted to remove it so that you can't cancel the rest once you've started it
But I might just keep it but make it finish the rest anyway
Durable: I added a new feature directly on that same barbarian. I clicked on the "+" sign in the Passive Abilities section then named it "Durable" and copy/pasted the description over, just because. I short rested and rolled a hit die and the formula didn't change. It was still rolling 1d12 + 4 instead of something like 1d12min8 + 4
here's that PC with Durable
Found the reason why, I wasn't localizing the durable and periapt
All good now
and I see it should be 8, yeah
Fixed, nice
What's the chances of a preRollHitDie hook making it into 1.6.x? ๐
I'd recommend using the min modifier instead of a dice pool with kh. I know they both do the same thing but min is a lot easier to understand
Shouldn't it be max?
confirming ...
It would be min (had to roll 6 times, kept rolling high)
1d6min2 means roll a d6 with a minimum result of 2
ohhh
I see.
1d10+4min8 won't work in any case
So in either case I'd have to encapsulate it
and max() seems me to be pretty readable
ohhh, right. It's not a minimum on the die roll, it's a minimum on the total number of HP gained
Correct.
so periapt + durable on Krall would be:
1d12+4, multiply that by two, or 8 (whichever is higher)
Nah, I think it would be durable first
then periapt
durable caps the base roll
periapt doubles the end result
okay
Hmmmm
One could argue that the rules say to double the roll
So max((1d10*2)+4, 8)
One definitely is more powerful than the other :u
I think that looks right
Durable:
When you roll a Hit Die to regain hit points, the minimum number of hit points you regain from the roll equals twice your Constitution modifier (minimum of 2).
Ie, the total number of hit points, it caps the end result
well...
Periapt:
In addition, whenever you roll a Hit Die to regain Hit Points, double the number of Hit Points it restores.
The roll itself
the number of Hit Points it restores
the roll itself?
or the total result?
who knows??
I think it refers to the die itself
that sounds right, but it is confusing
some cases "the roll" is just the die roll and in others "the roll" is the entire thing w/ modifiers
The argument can be helped by saying that there are very few instances of doubling an entire roles damage apart from resistances and such. Like a crit roll
I feel like the intention is the die value itself. When you roll a hit die to regain hit points, you then regain hit points from the die Plus your con modifier
Makes sense to me
Just tested a multiclass caster (cleric 1, wizard 16). Looks like arcane recovery works there. It only accounted for their wizard levels when computing the number of spell levels they can recover
I might play around with the text though...
You have 8 worth of spell slots left to recover.
it's the "8 worth" part that's throwing me off
maybe change to "You have 8 levels of spell slots left to recover."
i have no say on prio, but i'm guessing the odds are not good for anything not already in the 160 milestone
Just submitted a new version, you should be able to just update straight from Foundry
The Arcane Recovery feature I had on that character was also linked to the 3rd resource. When I short rested and checked boxes to regain spell slots, it consumed the limited use of the feature but not the resource.
Fixes durable and periapt, and fixes their rolls
@hybrid prawn I don't see your MR anymore, did you close it?
I did, because I fucked up, and it was also not a great implementation
gotchya
the roll hit die doesn't really use the same methods as any of the other pre hooks, so it wasn't really Foundry-esque
hence, scrapped
I enforce the limited uses, I can't guarantee that the resources isn't for some other thing
Should I reduce both? One? None?
It gets confusing. Uses is at least limited to existing in just one place.
But which one should determine whether it has uses or not?
That's the crux
If it has limited uses AND resource consumption, which one should I prioritize?
why not both if both exist?
You could even roll the item and let the core logic do it for you I think
Core logic? Arcane Recovery is a choice based thing?
Oh you mean like that
I see.
Still, determining whether it has uses or not is important
as the UI won't show the tickboxes if it has no uses
Ran a test to use the feature manually:
- With 1 limited use and 1 resource available, it works fine
- With 0 limited use and 1 resource available, it gives me a warning that "Arcane Recovery has no available uses remaining"
- With 1 limited use and 0 resource available, it gives me a warning that "Arcane Recovery has run out of its designated Attribute"
that's leaving both boxes (consume available usage & resource) checked
long way of saying it requires both
(bonus points if you use link item to resources module to fill in the gap afterwards ๐ )
_getUsageUpdates
Item5e.hasLimitedUses might only tell you if it is expected to use things, not if it currently does have charges
oh nice that doesnt' actually do the item usage only tells you what would be done, good call
if you try it, might have to play around with checking if usage/resource is configured on the item... it doesn't appear to guard for that
thaaaat's where hasLimitedUses comes in
as in, if you pass consumeResource = true but it's not configured for a resource, it might not check for that
oh gotchya
@hybrid prawn I tried updating the module and it didn't work (said it was Current). I uninstalled then installed from the link again but it had the same version number. Just tried rolling hit die and didn't see a change so I don't think I got a new version
Yeah I probably created it from the wrong branch
sec
Try again in 30 seconds
I updated and got a new version this time. When I restarted the world I was testing with, it immediately popped up a Short Rest dialog for Kral (the barbarian I shared)
I didn't click anything, as far as I know
was that just a testing thing to save you from having to click Short Rest after making a code change?
if it is, no big deal... just remember to remove it later
Yeah
I rolled a hit die and just got 20 as the roll formula. I'm sure the math is right, just can't see it.
Yeah that's a problem with the max thing
It basically breaks the formula
I might revert to the old formula
yeah, I know I knocked the dice pool w/ keep highest (but that was before I realized min wouldn't work)
but it's probably better to "show your work", as it were
I assume you're module is applying the healing when rolling hit dice. Either with a regular update or applyDamage w/ a negative number. It would be cool if the scrolling text appeared when rolling hit dice.
gonna check your code myself, take a peek ๐
ohh, I don't even think the dnd5e system does this
Does what? ๐
let me see if I can make a video of it
I'm referring to the green +7 text that scrolls up because he healed 7 hp
That's core
It shows up when I apply healing from a roll, it would be nice if rolling/applying hit dice triggered that as well
But I don't think the basic dnd5e system does that either (after I poked around in the code)
Eh, stretch goals
Sure... file this for later then. Sending the healing amount in the second argument as dhp is what triggers the scrolling text
actor.update({ "data.attributes.hp.value": 42 }, { dhp: 1 })
Cool
And I'll write a myself a note to file an issue with the dnd5e system to make the change (assuming nobody beat me to it)
Other than the formula change so we can see it, looks good
Oh, Song of Rest... was that still keyed off the Bard class or feature? Can't remember what you ended up going with
Yeah feature and class
I imported the sample heroes bard, leveled him up to level 2 which added Song of Rest. I triggered a Short Rest (was at full HP) and it didn't roll anything
I know the bard may not be spending HD since they're at full HP, but their companions might so I would have expected it to roll (or prompt me, however it works)
Are they owned by a player?
nope
huh, wouldn't have expected that
If you don't want it to trigger on an NPC, then why not check the actor type instead of player ownership?
Good point, might revisit it
Right it was a request
Because you might have multiple players in separate groups in the same world
Hence, active player characters
So short resting the bard doesn't trigger the Song of Rest die roll?
I'll think about it
I think I see how it's working. I assigned the bard to a player then logged out as the player. Back as the GM, I triggered a short rest on Kral and rolled a hit die and it rolled the bard's Song of Rest die for him
Not the way I would have done it. We usually have the Bard roll their song of rest once and everyone gets the same number
Yeah that's a conscious choice
Otherwise it's hard to know who's having a short rest or not
In fact, that's impossible unless you can somehow keep a state of every active players
If the bard is busy doing something else, not participating in a short rest, then rolling it with the other PCs wouldn't be right
You can just undo it I guess
But if the bard is short resting, they can trigger Song of Rest and everyone can "Apply Healing" if they spent a hit die
but in any case
Well, if you want to do it manually
Then i can just add a feature to disable the song of rest.
with it rolling when my barbarian short rested... I couldn't tell but does it auto-apply that Song of Rest die as healing?
Yes, every player gets their own roll
Does the numbers not add up in the final message?
So, feature to disable it?
I would prefer the Song of Rest to trigger when the PC with the feature short rests... it would require PCs who do spend hit dice to Apply Healing on the chat card, but I think that's okay.
However, it's your module and if you're not doing it that way, then the way it's working now is good
My main point of the test was that since it rolls Song of Rest when a PC spends a hit die, it should automatically apply that as healing and it does
I can just make the feature not roll if you make the name blank in the settings
no, don't think that's necessary
I think that's all from me, unless you have something new for me to check. Too bad I don't have a wizard, bard, or a PC with any of the other things in my game or I'd use this!
I like these QOL mods... we could do it manually but it's so nice for it to be handled for you
This doesn't seem to work with resource consumption?