[MIRROR] Making the fuck you coupon trigger only once, take two #2392
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Mirrored on Nova: NovaSector/NovaSector#1422
Original PR: tgstation/tgstation#81953
About The Pull Request
So a previous pr attempted to fix the fuck you coupon, by adding 1 to the arguments.
But this was setting the
vessel
rather than theincidents_left
argument to 1.Moving this argument over one fixes the issue.
However! We're now skipping over the
vessel
value, which is used to burn up a curse's vessel once the curse is expended.Setting this to
src
rather thannull
means the fuck you coupon actually gets 'expended', which I think it better than just usingnull
orincidents_left = 1
. The coupon's useless once it's done, and this way it's cooler anyway.For consistency, we then also add this behaviour to when the coupon gives you a heart attack instead.
Then! I noticed there was a second bug with fuck you coupons, where it would stop prematurely if the location wasn't a mob.
However, this also happens when you don't have a free hand for it to put the coupon in, and thus entirely negating the curse and just giving you a useless fuck you coupon.
We fix this by just adding a
user
argument togenerate
, which it prefers to use when available, and is set to the user ripping off the coupon in the first place.Why It's Good For The Game
Fixes #81946.
As fuck you coupons are pretty much useless after expending their curse, and we have to add the vessel value anyway, I thought it'd be more fitting to add the coupon as the vessel rather than just putting in null. Then, for consistency, I felt it'd be best to make them also burn when giving you a heart attack when you already have a curse.
Y'know, it's expending the coupon for it's one-time fuck you!
Also fixes fuck you coupons not actually applying their curse if you didn't have any free hands for it to put the coupon in when ripping it off.
Changelog
🆑 00-Steven
fix: Fuck you coupons ACTUALLY trigger only once again. As a consequence, they also burn up when expended for their one-time fuck you.
fix: Fuck you coupons work regardless of whether you had a free hand or not.
/:cl: