diff --git a/code/game/objects/items/devices/flash.dm b/code/game/objects/items/devices/flash.dm
index 95d379d0479..dd3e7c82d2c 100644
--- a/code/game/objects/items/devices/flash.dm
+++ b/code/game/objects/items/devices/flash.dm
@@ -105,8 +105,9 @@
if(M.flash_eyes(1, 1))
M.AdjustConfused(power)
revolution_conversion(M, user)
- M.drop_l_hand()
- M.drop_r_hand()
+ if(!M.absorb_stun(0))
+ M.drop_l_hand()
+ M.drop_r_hand()
visible_message("[user] blinds [M] with [src]!")
to_chat(user, "You blind [M] with [src]!")
to_chat(M, "[user] blinds you with [src]!")
diff --git a/code/modules/reagents/chemistry/reagents/medicine.dm b/code/modules/reagents/chemistry/reagents/medicine.dm
index e9934c85720..d67a524c7c8 100644
--- a/code/modules/reagents/chemistry/reagents/medicine.dm
+++ b/code/modules/reagents/chemistry/reagents/medicine.dm
@@ -1073,10 +1073,12 @@
M.AdjustDrowsy(-20 SECONDS)
M.SetConfused(0)
M.SetSleeping(0)
- var/status = CANSTUN | CANWEAKEN | CANPARALYSE
- M.status_flags &= ~status
+ M.add_stun_absorption("stimulants", INFINITY, 5)
+ M.status_flags &= ~CANPARALYSE
else
- M.status_flags |= CANSTUN | CANWEAKEN | CANPARALYSE
+ M.status_flags |= CANPARALYSE
+ if(islist(M.stun_absorption) && M.stun_absorption["stimulants"])
+ M.remove_stun_absorption("stimulants")
update_flags |= M.adjustToxLoss(2, FALSE)
update_flags |= M.adjustBruteLoss(1, FALSE)
if(prob(10))
@@ -1087,7 +1089,9 @@
return ..() | update_flags
/datum/reagent/medicine/stimulants/on_mob_delete(mob/living/M)
- M.status_flags |= CANSTUN | CANWEAKEN | CANPARALYSE
+ M.status_flags |= CANPARALYSE
+ if(islist(M.stun_absorption) && M.stun_absorption["stimulants"])
+ M.remove_stun_absorption("stimulants")
..()
//the highest end antistun chem, removes stun and stamina rapidly.