-
Notifications
You must be signed in to change notification settings - Fork 22
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
WIP: Implosion #554
base: master
Are you sure you want to change the base?
WIP: Implosion #554
Conversation
Oh, also, I've been toying with the idea that this destroys the target, similar to disintegrate, but was trying to avoid using the Animate Dead condition. Is there a way to replicate the inventory dropping that that does in python? I know you can make people drop worn items, but I don't see how to force them to drop from the rest of the inventory. |
Currently, no. |
Concentration - yeah that needs to be added to API. |
About action enum: we should coordinate which range you can use. Generally I reserve class_enum * 100 for each class, so 900 could be used by Clerics in principle. I'l get back to you on that. |
Yeah, I figured since it's a cleric spell, it might make sense to put it there. I looked at the existing actions, and some seem to be slotted into classes that don't really have other abilities. Like divine armor/vigor/... are 260x, which is Eldritch Knight. I have some other spells on my list that I think would require some custom actions, and I don't know if it makes sense to put those under Wizard/Sorcerer/etc. (as appropriate), or if you want to reserve some separate block or something. |
Hmm, about concentration - what's the reason for creating a custom handler? Usually spells add the sp-Concentrating condition. |
The reasoning goes something like this:
So, it seemed like the best way to handle a concentration-allowing-an-action spell was to make the condition that allows the action also track the concentration. One thing just occurred to me, though. Maybe it'd be better to factor out the concentration-handling stuff into a separate 'active concentration' condition, and have the implosion condition signal it. That way the hooks wouldn't have to be replicated by each spell. The above argument is the same for not using the existing |
About 4.c. This reminds me of stuff like the defensive attack feat (i forgot the name) where you could try to cheat it by switching it on after attacking. So the game keeps track of what you actually did in the arg variables, and directly prevented that sort of abuse. You could do the same here: send some signal that indicates you used up your concentration, thus disabling the option to get your standard action back. Normally I'd assume this requires adding an arg, and thus a no-no, but it looks like there are 2 unused args for sp-Concentrating, so perhaps the extension method is warranted. The other option is to add an auxiliary condition, which might as well include the whole thing I suppose. The only caveat I can think of in that regard is whether the game somehow assumes that the only concentration condition is sp-Concentration, i.e. directly checking it somewhere, but that doesn't seem to be the case. Not sure which option is preferable yet. |
It might be possible to implement both uses by extending the existing concentration condition. My concern is that I'm not sure what all the arguments are for. 0 is spell id of course, but it has two more. It doesn't have a begin round hook, so 1 isn't duration, I guess. It might just be that so many generic hooks are used, it needs to have 3 arguments to avoid crashing. But I don't know what side effects storing things in those other arguments would cause. The only concern I see with a second concentration condition is that the original responds to Q_Critter_Has_Condition for sp-Concentrating. However, I don't know whether that's checked, because there is also Q_Critter_Is_Concentrating which is less of a worry to implement. |
Oh, another side note: Some of the way
This is almost certainly worse for damage spells. It's kind of a a 'meme' that readying a scorching ray is far superior to readying a counterspell (although I'm not sure if the while-casting check is the same as sp-Concentration). But these rules make it so that instead of DC 10+(4*R)d6+N to maintain concentration on a level N spell, it's 13+N. But also, it means that e.g. curing someone who is concentrating on a spell requires them to make a concentration check. In P&P, I think certain non-damaging spells are indicated as distracting people affected by them (the example in the SRD is Storm of Vengeance), and those are the only ones that use the spell DC rules. I'm not sure how many offensive-but-non-damaging spells might not specify one way or the other, though. Edit: An example is probably stuff like Hold Person. I don't think it specifically says anything about distracting its target, but it seems fair that even if you succeed on the hold save, you need to make a concentration check due to the effort of fighting off the enchantment. So maybe any hostile spell that doesn't deal damage would be a good compromise. That'd still require some kind of list to be compiled, though, I imagine. |
I've been mostly avoiding high level spells since they don't seem like they'd get a ton of play, but I figured I'd try this one out for a few reasons:
One thing I'm missing is the ability to test if a D20Action is marked with the flag D20ADF_Breaks_Concentration. I think I need to do it in a hook. Spell casting automatically sends a signal to break concentration, but I think not every action does. Some of them might only be marked that way because they're standard actions, but it's possible to have a swift action that breaks concentration even though there is still enough time to concentrate in the round (spell casting is such an example, but I think it works fine).
Also, do I have all the files in the right spot? I was second guessing myself looking at prior stuff, and I still don't understand all the logic of which things go where. Some stuff seems to be in co8 but not kotb, but then other stuff is in both, and I'm wondering if I messed that up on e.g. Disrupting Weapon.