04-21-2020, 07:14 AM
They instantly shatter implants, bypass sunglasses, hit everyone onscreen, and look the same as normal flashbangs. Way too much for one item.
Nerf rev flashbangs
|
04-21-2020, 07:14 AM
They instantly shatter implants, bypass sunglasses, hit everyone onscreen, and look the same as normal flashbangs. Way too much for one item.
04-21-2020, 07:21 AM
(This post was last modified: 04-21-2020, 08:13 AM by saccharineChampion.)
What would you change about it to nerf it?
For reference, I got the code for revolutionary flashbangs. code\modules\chemistry\tools\grenades.dm lines 317-350. Screenshot form: Copyable code form: Given that, a few notes: The majority of the code won't run if the victim is both blinded/sunglasses'd/welding masked, AND deafened/earmuffed. The check for conversion eligibility is performed before it breaks any loyalty implants and is not rechecked after breaking implants. Therefore, a single flashbang won't convert people with a loyalty implant; you'll need to use two of them. Unless a rev flashbang gets reagents which can boost the dispersal (unsure when/if that can occur in normal gameplay), it converts/breaks with a radius of 6 tiles. For reference, you can be up to 10 tiles away horizontally from something onscreen and still have it visible.
04-21-2020, 08:13 AM
They've got a pretty small AoE for the implant breaking/revving bit, or at least did when I last used them.
04-21-2020, 08:18 AM
Today I learned that if you doublepost on the forums, it merges your messages. Now that there's another post (Mouse's) to break such up, I'd like to mention with a separate message that I expanded upon my original post above, outlining the relevant code.
Another quick note I'd like to mention is that unlike EMP and regular flashbang grenades, the revolutionary flashbang does not come in a box of seven; you need to pay two revolution coins for each revolutionary flashbang, not for seven.
04-21-2020, 09:17 AM
I watched one convert someone with a loyalty implant today. Single flashbang, shattered the implant and converted.
04-21-2020, 10:24 AM
Are you certain there was only one flashbang? Do you have any screenshots or recordings?
I checked the github's code to make sure my code there wasn't out of date, and it is unchanged. I'll walk through the code to the best of my understanding. Hopefully if there's some mistake with the code it can be caught due to such: if not, it should demonstrate the intent of the code. When the code checking the individual M cast as human H runs, if H has an implant, line 331 will get the get_unconvertables() return list defined at code\datums\gamemodes\revolution.dm lines 312-336: Code: /datum/game_mode/revolution/proc/get_unconvertables() The person will be included in locating people with loyalty implants, so back in the grenades code they'll be stored in U. Ergo Code: else if (H.mind in U) I have attempted to replicate the issue on a personal server and have been unable to. It's possible that it did happen, but if it did, it's more of a bug to fix rather than intended behavior that should be nerfed.
04-21-2020, 11:01 AM
My best guess is that there might be a bug that makes the flashbang explode twice somehow, maybe because of lag. I think MBC has gone on to say they're not supposed to convert people with loyalty implants, but I can't find proof.
To my knowledge, it works like this: After checking if it's the revolution mode (which requires a certain amount of players, so it's rather difficult to test this bug on your own), checking if the person within a certain area of effect, and checking if the person has sufficient eye and ear protection from the flash, it checks if the person is the list of unconvertables saccharinechampion posted, among a couple other things. Having an loyalty implant (called "antirev" in the code") counts as unconvertable, so the code sets the person's can_convert to 0, meaning they can't be converted. For BYOND, 0 usually means false, while 1 thus means true. When it gets around to actually trying to add people to the list of revolutionaries, i.e. convert them, it checks if that person was NOT already a revolutionary and if their can_convert is true, meaning if their can_convert equals 1 and they can thus be converted into a rev. While a person with a loyalty implant would NOT be in the list of revs, their can_convert is 0, so the check would evaluate to false and thus not convert them.
04-21-2020, 11:06 AM
Yep, I 100% agree with that explanation of it. (As for difficulty of checking on one's own, I just tweaked a couple of checks to bypass the revolution mode requirement. I encourage anybody trying to fix it to do similar, though do note you'll need to manipulate some of the code which uses the R defined by var/datum/game_mode/revolution/R = ticker.mode.)
My main guess about how it bugged was that maybe it saw a moving person twice when it was making a list of everybody in range; however, I was unable to replicate such an occurrence. The flashbang exploding twice sounds much more likely, especially since we have/had an existing bug where guns sometimes fired projectiles twice. |
« Next Oldest | Next Newest »
|