-
Notifications
You must be signed in to change notification settings - Fork 352
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add basic support for physical implement items for Thaumaturge #16759
base: master
Are you sure you want to change the base?
Conversation
I finally had a minute to pull this and look at it. I am a fan. I think it's a good start to getting implements working properly. There are some other things I would consider to make it really great (in no particular order, and some should be in a different PR(s) to not conflate this one):
From a data entry perspective, I think this is so close to being ready. 1 & 2, I think, would be the most pressing tasks to tackle. Number 3 would require a new PR with some new tech, but I think users would get frustrated without the ability to change implements, but I think it doesn't affect the Data Entry PR at all. Number 4 is purely quality of life and can be kicked down the road, I think. Someone can correct me on the analysis as well, this is just my 2 cents. |
This is fair and valid, I think. It will just need documentation and visibility.
I think that
Agreed. 100%.
I think this is a good stopgap. Looks really clean too. |
Roll options on the items are tricky, there is no great way to do it with just data entry tools. Other tags is the best way we have to get that kind of context into specific items. However, the rank of the implement could be made available via roll options set by Implement Adept et. al. when picking which implement you're upgrading (it currently only sets a flag on the item itself, but adding the roll option is trivial, and the flag could be made into an actor flag if need be). If doing math over numerical implement ranks is necessary, we could store them as actor flags too. Would those two things be sufficient for what you need? At the very least, I'm fairly certain the roll options are something we will need anyway. As far as predication is concerned, I'm envisioning mergeable suboptions as the way to actually manage implements, with the physical implements being more of an inventory tracking tool. |
The only reason that I suggested roll options on the item itself is to automate handedness on the item, which would eliminate the need for what you show in the picture. The roll option would just work:tm: when held instead of having to flip through toggleable/selectable roll options. I haven't messed with data entry tools in a while, so I wasn't sure whether the There are some cases where the implement numeric rank is useful. Here's how we set the flag for the lantern light radius And then the
Of course, as you can see, we do some wrapping of the derived actor data, but the principle stays the same. |
The issue is that we can add roll options to generic implement items in the compendium, but not to any arbitrary item the thaumaturge decides to make their implement. Of course, that's an issue if inventory handedness is the way we want to track these, which I'm not super on board with, but I'll ask about it. If that's the route we were to go on, that would need some dev work. I'm personally more of a fan of the suboptions. Thank you for the rank number examples. It doesn't seem necessary in that case, as a second predicated Token Light rule element could accomplish it too, but I can see how that could make it cleaner. I think that'll be something to consider once we get into automating this stuff! EDIT: We've decided to drop the support for picking arbitrary items as implements for now (except weapon), that way we will be able to have control over the rules on the item, at least until there is a solution for picking other items as implements. That means suboptions will not be needed either. |
6df01bf
to
1e2ac31
Compare
Alright, some updates. For weapon implement, we track it via its Grant Item resulting in the Each implement also has the This does leave the ability to make specific items into implements as a future request, which would require some way to keep track of those chosen items as roll options other rule elements could predicate off of, but this seems like a good base to start automating stuff. |
Consider |
The weapon implement roll option is created through tracking the Grant Item, which sluggifies the flag and turns it into the prefix for the weapon roll options, resulting in If there is a way we can have roll options on the chosen weapon of the form |
What's the flow like for adding a Weapon implement? Seems like it would be: Lets say we want to change the weapon used. Do this: Any time we need to re-level the character, e.g. to choose a different implement or just to fix issues, it's a very common way to solve problems, we'll have to re-create the implement weapon by copying all the data to new weapon, since it always adds a new item. |
1e2ac31
to
de5f751
Compare
The Thaumaturge module has this ability already. While it's pretty much mandatory to pick a specific item for a weapon, it also common for other items. I.e., as soon as the player acquires a wand, they'll make that the wand implement, since they might as well be holding a wand that can cast a spell vs one that can't. |
Yeah, that would be a way to do it.
That's what |
That's effectively what the thaum module does. Controls the REs on the weapon or other physical implement. Perhaps an ItemAlteration that allows adding REs would be a good way to do that? |
Even just adding roll options to the item would be enough too. Of course, adding REs accomplishes that and more, but I've no idea how stable something like that would be. |
The existing automation in the thaum module for this, "When you use Implement's Interruption and fail (but don't critically fail) the Strike, you deal 1 damage of the weapon's normal type," uses an RE on the weapon itself to add the damage of the correct type as a note to failed strikes with the weapon. If the Note RE was instead of the class feature, it wouldn't be able to reference All the other rules look like they don't need to be on the physical item itself. Of course all the REs need to gain a predicate to only be in effect when the physical item is equipped. Being on the physical item does that automatically. |
We can probably live without automating that bit on our end (or do so at a lesser extent). If we do get the ability to mark items via rule element such that other rule elements can tell if they're equipped (however that's done), at that point we can also make arbitrary implement choice work too. Until then, we're stuck going generic with all but weapon (or take a different approach entirely, such as the mergeable suboptions I toyed with earlier) EDIT: Actually, now that I think about it, it shouldn't be necessary for the Implement's Interruption adept benefit. We can do the same as the Swashbuckler's Precise Strike failure note. |
Have you thought about Dedication support? It makes a distinction between choosing an implement, when taking the dedication feat, and having support for the implement's abilities, when taking the Implement Initiate archetype feat. There are two existing PRs out to allow choosing implements for the dedication, #16265 and #14678 |
I have, though it's been a while since I looked at those specific PRs, but this shouldn't be incompatible with them. You receive the implement whether you're main class or not. The rule elements in the features will need to be appropriately predicated once we start actually adding automation, of course. |
It does interact, because #16265 chooses the implement in the dedication, but does not grant the class feature for the specific implement. That's granted when Implement Initiate is chosen, since none of the benefits tied to the implement are gained until that time. But by putting the rules to add the physical items on the implement class feature, it will be necessary to add the class feature at the same time the dedication is taken. Which means any rules added by the class feature will apply and grant the benefits of the implement, which is wrong. |
The rule elements will just need to be appropriately predicated, same way Champion causes do, for example. It's something I could've added here while I was at it, but isn't relevant yet, since Thaumaturge Dedication in the main branch doesn't interact with the implement features (yet). I didn't see that your PR grants the Implement feature with Implement Initiate, and this does mess with it. I would probably go the champ route instead. |
So that was the approach taken in #14678, but it doesn't work. The problem is GrantItem REs don't re-evaluate on adding feats. So if you predicate the GrantItem for, e.g., Implements Interruption action based on having Implement Initiate feat, it doesn't grant the action when the feat it added, because the grant item doesn't re-evaluate. It's solved in the other PR, and I have already implemented full dedication support, it's just waiting for action on the PR.
I include a screen shot that shows it, so I guess that tells me no one has even bothered to look at it. |
It just needs an update, which is admittedly awkward, but does work. I'd rather see if we can get a solution to make that workflow better, like an update when a feat is added before the Grant is reevaluated or something, than trying to get around it.
It just tells you that I hadn't looked at it or didn't remember it. I was just speaking on my own behalf. Let's not get sidetracked, please. |
96576b8
to
dbcbd0c
Compare
I still see a few major regressions over what players have now with the module.
Maybe it's not possible to re-implement this in a way that is near parity with the existing implementation using only existing rule elements? Perhaps the approach taken in the module should be used and some way to mark existing items needs to be created in the system to adequately handle the feature. |
Agreed, as I said before, once we can keep track of the carry type of specific items in some way, we get the ability to choose implements from inventory, which takes care of the weapon issue too. As for a clearer indicator on the sheet than description addenda via Item Alteration for which items are implements, I'm not certain what the best approach would be (I'm aware the module uses an icon). Perhaps a name Item Alteration? Definitely lower priority than the first part though. I personally would prefer if we could have the ability to choose implements from the inventory right out of the gate. That will mean making a feature request for the prerequisite features, but at least we have a good idea of what they are. That might take a while with how busy the devs are, but this is only a draft for a reason. |
Either grant a generic implement item, or tag an existing item as an implement. No automation yet, but the plan is to add suboptions to denote which implement is being held, and leverage that for automation from there.
Tagging @mysurvive, your input would be appreciated here! Trying to take some stuff off your plate.