-
Notifications
You must be signed in to change notification settings - Fork 393
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
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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
move
ever 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.:maximum
key for:x-credits
costs 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 toX
to prevent exactlyX
damage - so we can cap credits spent atX
for similar effects nowany amount
of 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")