diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm
index 860fa19cb23..58f94a88569 100644
--- a/code/_onclick/hud/alert.dm
+++ b/code/_onclick/hud/alert.dm
@@ -236,10 +236,10 @@ or something covering your eyes."
var/command
/atom/movable/screen/alert/mind_control/Click()
- var/mob/living/L = usr
- if(L != owner)
+ . = ..()
+ if(!.)
return
- to_chat(L, "[command]")
+ to_chat(owner, "[command]")
/atom/movable/screen/alert/drunk
name = "Drunk"
@@ -253,9 +253,13 @@ If you're feeling frisky, examine yourself and click the underlined item to pull
icon_state = "embeddedobject"
/atom/movable/screen/alert/embeddedobject/Click()
- if(isliving(usr) && usr == owner)
- var/mob/living/carbon/M = usr
- return M.help_shake_act(M)
+ . = ..()
+ if(!.)
+ return
+
+ var/mob/living/carbon/carbon_owner = owner
+
+ return carbon_owner.help_shake_act(carbon_owner)
/atom/movable/screen/alert/weightless
name = "Weightless"
@@ -281,12 +285,15 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
icon_state = "fire"
/atom/movable/screen/alert/fire/Click()
- var/mob/living/L = usr
- if(!istype(L) || !L.can_resist() || L != owner)
+ . = ..()
+ if(!.)
return
- L.changeNext_move(CLICK_CD_RESIST)
- if(L.mobility_flags & MOBILITY_MOVE)
- return L.resist_fire() //I just want to start a flame in your hearrrrrrtttttt.
+
+ var/mob/living/living_owner = owner
+
+ living_owner.changeNext_move(CLICK_CD_RESIST)
+ if(living_owner.mobility_flags & MOBILITY_MOVE)
+ return living_owner.resist_fire()
/atom/movable/screen/alert/give // information set when the give alert is made
icon_state = "default"
@@ -322,6 +329,12 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
/atom/movable/screen/alert/give/Click(location, control, params)
. = ..()
+ if(!.)
+ return
+
+ if(!iscarbon(usr))
+ CRASH("User for [src] is of type \[[usr.type]\]. This should never happen.")
+
var/mob/living/carbon/C = owner
C.take(giver, receiving)
@@ -341,6 +354,9 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
/atom/movable/screen/alert/highfive/Click(location, control, params)
. = ..()
+ if(!.)
+ return
+
var/datum/status_effect/high_fiving/high_five_effect = giver.has_status_effect(STATUS_EFFECT_HIGHFIVE)
if(high_five_effect)
high_five_effect.we_did_it(owner)
@@ -352,7 +368,8 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
icon_state = "succumb"
/atom/movable/screen/alert/succumb/Click()
- if (isobserver(usr))
+ . = ..()
+ if(!.)
return
var/mob/living/living_owner = owner
@@ -582,14 +599,14 @@ so as to remain in compliance with the most up-to-date laws."
var/atom/target = null
/atom/movable/screen/alert/hackingapc/Click()
- if(!usr || !usr.client || usr != owner)
+ . = ..()
+ if(!.)
return
- if(!target)
- return
- var/mob/living/silicon/ai/AI = usr
- var/turf/T = get_turf(target)
- if(T)
- AI.eyeobj.setLoc(T)
+
+ var/mob/living/silicon/ai/ai_owner = owner
+ var/turf/target_turf = get_turf(target)
+ if(target_turf)
+ ai_owner.eyeobj.setLoc(target_turf)
//MECHS
@@ -608,10 +625,11 @@ so as to remain in compliance with the most up-to-date laws."
timeout = 300
/atom/movable/screen/alert/notify_cloning/Click()
- if(!usr || !usr.client || usr != owner)
+ . = ..()
+ if(!.)
return
- var/mob/dead/observer/G = usr
- G.reenter_corpse()
+ var/mob/dead/observer/dead_owner = owner
+ dead_owner.reenter_corpse()
/atom/movable/screen/alert/notify_action
name = "Body created"
@@ -622,22 +640,23 @@ so as to remain in compliance with the most up-to-date laws."
var/action = NOTIFY_JUMP
/atom/movable/screen/alert/notify_action/Click()
- if(!usr || !usr.client || usr != owner)
+ . = ..()
+ if(!.)
return
if(!target)
return
- var/mob/dead/observer/G = usr
- if(!istype(G))
+ var/mob/dead/observer/dead_owner = owner
+ if(!istype(dead_owner))
return
switch(action)
if(NOTIFY_ATTACK)
- target.attack_ghost(G)
+ target.attack_ghost(dead_owner)
if(NOTIFY_JUMP)
- var/turf/T = get_turf(target)
- if(T && isturf(T))
- G.forceMove(T)
+ var/turf/target_turf = get_turf(target)
+ if(target_turf && isturf(target_turf))
+ dead_owner.forceMove(target_turf)
if(NOTIFY_ORBIT)
- G.ManualFollow(target)
+ dead_owner.ManualFollow(target)
//OBJECT-BASED
@@ -655,20 +674,31 @@ so as to remain in compliance with the most up-to-date laws."
desc = "You're legcuffed, which slows you down considerably. Click the alert to free yourself."
/atom/movable/screen/alert/restrained/Click()
- var/mob/living/L = usr
- if(!istype(L) || !L.can_resist() || L != owner)
+ . = ..()
+ if(!.)
return
- L.changeNext_move(CLICK_CD_RESIST)
- if((L.mobility_flags & MOBILITY_MOVE) && (L.last_special <= world.time))
- return L.resist_restraints()
+
+ var/mob/living/living_owner = owner
+
+ if(!living_owner.can_resist())
+ return
+
+ living_owner.changeNext_move(CLICK_CD_RESIST)
+ if((living_owner.mobility_flags & MOBILITY_MOVE) && (living_owner.last_special <= world.time))
+ return living_owner.resist_restraints()
/atom/movable/screen/alert/restrained/buckled/Click()
- var/mob/living/L = usr
- if(!istype(L) || !L.can_resist() || L != owner)
+ . = ..()
+ if(!.)
return
- L.changeNext_move(CLICK_CD_RESIST)
- if(L.last_special <= world.time)
- return L.resist_buckle()
+
+ var/mob/living/living_owner = owner
+
+ if(!living_owner.can_resist())
+ return
+ living_owner.changeNext_move(CLICK_CD_RESIST)
+ if(living_owner.last_special <= world.time)
+ return living_owner.resist_buckle()
/atom/movable/screen/alert/shoes/untied
name = "Untied Shoes"
@@ -681,11 +711,17 @@ so as to remain in compliance with the most up-to-date laws."
icon_state = "shoealert"
/atom/movable/screen/alert/shoes/Click()
- var/mob/living/carbon/C = usr
- if(!istype(C) || !C.can_resist() || C != owner || !C.shoes)
+ . = ..()
+ if(!.)
return
- C.changeNext_move(CLICK_CD_RESIST)
- C.shoes.handle_tying(C)
+
+ var/mob/living/carbon/carbon_owner = owner
+
+ if(!carbon_owner.can_resist() || !carbon_owner.shoes)
+ return
+
+ carbon_owner.changeNext_move(CLICK_CD_RESIST)
+ carbon_owner.shoes.handle_tying(carbon_owner)
// PRIVATE = only edit, use, or override these if you're editing the system as a whole
@@ -725,16 +761,18 @@ so as to remain in compliance with the most up-to-date laws."
/atom/movable/screen/alert/Click(location, control, params)
if(!usr || !usr.client)
- return
+ return FALSE
+ if(usr != owner)
+ return FALSE
var/list/modifiers = params2list(params)
if(LAZYACCESS(modifiers, SHIFT_CLICK)) // screen objects don't do the normal Click() stuff so we'll cheat
to_chat(usr, "[name] - [desc]")
- return
- if(usr != owner)
- return
+ return FALSE
if(master)
return usr.client.Click(master, location, control, params)
+ return TRUE
+
/atom/movable/screen/alert/Destroy()
. = ..()
severity = 0
diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm
index fc73b6102fd..f41a99c7c6a 100644
--- a/code/datums/status_effects/debuffs.dm
+++ b/code/datums/status_effects/debuffs.dm
@@ -268,14 +268,15 @@
/atom/movable/screen/alert/status_effect/strandling/Click(location, control, params)
. = ..()
- if(usr != owner)
+ if(!.)
return
+
to_chat(owner, "You attempt to remove the durathread strand from around your neck.")
if(do_after(owner, 3.5 SECONDS, owner))
if(isliving(owner))
- var/mob/living/L = owner
- to_chat(owner, "You succesfuly remove the durathread strand.")
- L.remove_status_effect(STATUS_EFFECT_CHOKINGSTRAND)
+ var/mob/living/living_owner = owner
+ to_chat(living_owner, "You succesfuly remove the durathread strand.")
+ living_owner.remove_status_effect(STATUS_EFFECT_CHOKINGSTRAND)
//OTHER DEBUFFS
/datum/status_effect/pacify
diff --git a/code/datums/status_effects/neutral.dm b/code/datums/status_effects/neutral.dm
index 065acb9a81a..c47158f74d4 100644
--- a/code/datums/status_effects/neutral.dm
+++ b/code/datums/status_effects/neutral.dm
@@ -322,6 +322,9 @@
/atom/movable/screen/alert/status_effect/surrender/Click(location, control, params)
. = ..()
+ if(!.)
+ return
+
owner.emote("surrender")
/*
diff --git a/code/datums/status_effects/wound_effects.dm b/code/datums/status_effects/wound_effects.dm
index 662b0f528cf..21a792ef60c 100644
--- a/code/datums/status_effects/wound_effects.dm
+++ b/code/datums/status_effects/wound_effects.dm
@@ -114,8 +114,12 @@
desc = "Your body has sustained serious damage, click here to inspect yourself."
/atom/movable/screen/alert/status_effect/wound/Click()
- var/mob/living/carbon/C = usr
- C.check_self_for_injuries()
+ . = ..()
+ if(!.)
+ return
+
+ var/mob/living/carbon/carbon_owner = owner
+ carbon_owner.check_self_for_injuries()
// wound status effect base
/datum/status_effect/wound