BUG: I got electrocuted about 30 times in a row while cutting wires. Please fix this as it is insta-death.
As I have said countless times, the fix is simply to null the mob's current machine, so that they don't auto-activate it every second after being electrocuted.
Additionally, why not create a proc to close a machine window given it's string, and at the same time null the machine?
mob.machine = null
mob << browse(null, machine name)
Rather than all of the other places where it doesn't always do both.
Or maybe simply ensure that /obj/proc/updateUsrDialog() returns early for users where stat != 0? Anything that knocks a player over or kills them would stop the dialogs from updating then.
Alternatively, edit attack_hand() to check if they can even still use things.
Then there is the root of the problem, in the player's loop:
if (src.stat != 2)
if (src.machine)
Add more than src.stat != 2. Decide if laying down is enough to prevent machine use(Then it would be stc.stat == 0), or toss in a && (Generic check for other conditions like being electrocuted)
With so many ways to fix this, why hasn't it been done? I can't because of source merging issues(I generally like to mess around with my copy
, and so do others), although long ago Johbson(Did I get it wrong?) managed code merges generally well, although some sort of source control would probably work just as well...
Basically, with no "official" central person, code changes are harder to share, so I mostly share the concept behind the change rather than changing it myself.
And I have mentioned the players update while shocked fix many times before, yet it is still unfixed...