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.
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.