Prevention rework (tags, and maybe some others)#7973
Conversation
…y, this WILL fail every test
|
Holy moly, it's actually done (I think) |
|
I updated this a little as per discussions with Jamie. The current plan is that all damage manipulation is being moved to interrupts on the same timing, but we're keeping specifically the cleaners and brainchips on the pre-damage interrupt so we can keep from needing the runner to anticipate negative damage values. It's currently good to go again :) |
|
This is a monumental amount of work. Thank you for it. A couple broad notes/thoughts (instead of doing them inline in the diffs):
|
|
Hmm. For the costs/labels one, I'm (mostly) only putting the costs in when the cards can do multiple different things (ie for zaibatsu loyalty, or to help with clarity for feedback filter). I'll run through the rest of those after work 💯 |
|
I future-proofed the has-trash-icon for access abilities (you'll see why in a few months 😂) |
|
i can't get over how good this is lol. i did many PRs that felt this big and it's very cool to be on the other side. can't wait to see what our players think |
NoahTheDuke
left a comment
There was a problem hiding this comment.
merge when you think it's good!
Here's my draft of a reworked prevention/interrupt system, starting with just the tag cards for now and then I'll add some of the other systems later.
These all being:
I'm leaving the trace/subroutine ones out because I don't think they're work touching (they hit exactly two cards, tyr's hand and disrupter, and both of them work well enough for now. I might change my mind later).
Then we can forget that the prevent-type prompts exist in our code, and no longer need to design things around them.
There's a video in slack showing how it works, I think it's pretty slick, and it avoids having our weird fake checkpoint thing.
This should deal with the following issues (once done):
And I guess if
moveever gets reworked, then we have a basis for doing replacement abilities like nanuqSome notes:
A few extra things I hit:
I'll apply this to klevetnik later.I fixed klevetnik 🎉. Basically, it's just avoiding the case where we need special handlers for events that make events that make events.:maximumkey for:x-creditscosts now, which is the maximum amount you can spend. It isn't really compatible with stealth, but it is what it is. This is for things like recon drone, where you pay up toXto prevent exactlyXdamage - so we can cap credits spent atXfor similar effects nowany amountof something now actually let you do soenumerate-str, which is the terminal seperator to be used: default isand, but if you want something like 'x, y OR z', you can do(enumerate-str [x y z] "or")