diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm
index 5b5a532efdb..55bfd7f2900 100644
--- a/code/game/machinery/rechargestation.dm
+++ b/code/game/machinery/rechargestation.dm
@@ -210,7 +210,7 @@
/obj/machinery/recharge_station/verb/move_inside(var/mob/user = usr)
set category = "Object"
set src in oview(1)
- if(!user)
+ if(!user || !usr)
return
if (usr.stat != CONSCIOUS)
diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm
index 8f1dded0a6e..7f4ac1704d9 100644
--- a/code/game/turfs/simulated/walls.dm
+++ b/code/game/turfs/simulated/walls.dm
@@ -66,8 +66,9 @@
smooth_icon(src)
if(!damage)
- overlays -= damage_overlays[damage_overlay]
- damage_overlay = 0
+ if(damage_overlay)
+ overlays -= damage_overlays[damage_overlay]
+ damage_overlay = 0
return
var/overlay = round(damage / damage_cap * damage_overlays.len) + 1
@@ -76,12 +77,11 @@
if(damage_overlay && overlay == damage_overlay) //No need to update.
return
- overlays -= damage_overlays[damage_overlay]
+ if(damage_overlay)
+ overlays -= damage_overlays[damage_overlay]
overlays += damage_overlays[overlay]
damage_overlay = overlay
- return
-
/turf/simulated/wall/proc/generate_overlays()
var/alpha_inc = 256 / damage_overlays.len
diff --git a/code/game/verbs/suicide.dm b/code/game/verbs/suicide.dm
index 5d91c835ea0..857fcadb48a 100644
--- a/code/game/verbs/suicide.dm
+++ b/code/game/verbs/suicide.dm
@@ -3,7 +3,7 @@
/mob/living/carbon/human/proc/do_suicide(damagetype, byitem)
var/threshold = (config.health_threshold_crit + config.health_threshold_dead) / 2
var/dmgamt = maxHealth - threshold
-
+
var/damage_mod = 1
switch(damagetype) //Sorry about the magic numbers.
//brute = 1, burn = 2, tox = 4, oxy = 8
@@ -163,7 +163,7 @@
var/turf/T = get_turf_or_move(card.loc)
for (var/mob/M in viewers(T))
M.show_message("\blue [src] flashes a message across its screen, \"Wiping core files. Please acquire a new personality to continue using pAI device functions.\"", 3, "\blue [src] bleeps electronically.", 2)
- death(0)
+ death(0, 1)
else
to_chat(src, "Aborting suicide attempt.")
diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm
index 844e66cd68c..6797ba8f340 100644
--- a/code/modules/assembly/timer.dm
+++ b/code/modules/assembly/timer.dm
@@ -43,7 +43,8 @@
timer_end()
if((!secured)||(cooldown > 0)) return 0
pulse(0)
- loc.visible_message("\icon[src] *beep* *beep*", "*beep* *beep*")
+ if(loc)
+ loc.visible_message("\icon[src] *beep* *beep*", "*beep* *beep*")
cooldown = 2
spawn(10)
process_cooldown()
diff --git a/code/modules/mob/living/silicon/pai/death.dm b/code/modules/mob/living/silicon/pai/death.dm
index 6ad793fff88..0f938ab31b0 100644
--- a/code/modules/mob/living/silicon/pai/death.dm
+++ b/code/modules/mob/living/silicon/pai/death.dm
@@ -1,12 +1,13 @@
-/mob/living/silicon/pai/death(gibbed)
+/mob/living/silicon/pai/death(gibbed, cleanWipe)
if(stat == DEAD)
return
- force_fold_out()
+ if(!cleanWipe)
+ force_fold_out()
var/turf/T = get_turf_or_move(loc)
for (var/mob/M in viewers(T))
- M.show_message("\red [src] emits a dull beep before it loses power and collapses.", 3, "\red You hear a dull beep followed by the sound of glass crunching.", 2)
+ M.show_message("[src] emits a dull beep before it loses power and collapses.", 3, "You hear a dull beep followed by the sound of glass crunching.", 2)
name = "pAI debris"
desc = "The unfortunate remains of some poor personal AI device."
icon_state = "[chassis]_dead"
@@ -24,5 +25,5 @@
if(mind) qdel(mind)
living_mob_list -= src
ghostize()
- if(icon_state != "[chassis]_dead")
+ if(icon_state != "[chassis]_dead" || cleanWipe)
qdel(src)
diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm
index 54b0d10608a..5ba9e62fa9c 100644
--- a/code/modules/mob/living/simple_animal/hostile/bees.dm
+++ b/code/modules/mob/living/simple_animal/hostile/bees.dm
@@ -140,13 +140,15 @@
/mob/living/simple_animal/hostile/poison/bees/worker/Destroy()
if(beehome)
- beehome.bees.Remove(src)
+ if(beehome.bees)
+ beehome.bees.Remove(src)
beehome = null
..()
/mob/living/simple_animal/hostile/poison/bees/worker/death(gibbed)
if(beehome)
- beehome.bees.Remove(src)
+ if(beehome.bees)
+ beehome.bees.Remove(src)
beehome = null
..()
diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm
index e5b12ed022b..e3e8d4620be 100644
--- a/code/modules/mob/say.dm
+++ b/code/modules/mob/say.dm
@@ -40,7 +40,7 @@
usr.emote(message)
/mob/proc/say_dead(var/message)
- if(!src.client.holder)
+ if(!(client && client.holder))
if(!config.dsay_allowed)
to_chat(src, "Deadchat is globally muted.")
return
diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm
index e5c6292fa56..8f7ed0e6d67 100644
--- a/code/modules/surgery/organs_internal.dm
+++ b/code/modules/surgery/organs_internal.dm
@@ -31,7 +31,7 @@
return 0
if(target.get_species() == "Machine")//i know organ robot might be enough but i am not taking chances...
return 0
- if(!affected.encased)//no bone, problem.
+ if(affected && !affected.encased) //no bone, problem.
return 0
return 1
@@ -43,9 +43,9 @@
if(affected && (affected.status & ORGAN_ROBOT))
return 0//no operating on robotic limbs in an organic surgery
- if(!affected.encased)//no bones no problem.
- return 1
- return 0
+ if(affected && affected.encased) //no bones no problem.
+ return 0
+ return 1
/datum/surgery/organ_manipulation/alien/can_start(mob/user, mob/living/carbon/target)
if(istype(target,/mob/living/carbon/alien/humanoid))
diff --git a/interface/interface.dm b/interface/interface.dm
index 44f74a20e59..8dfb29a5f43 100644
--- a/interface/interface.dm
+++ b/interface/interface.dm
@@ -221,7 +221,10 @@ Any-Mode: (hotkey doesn't need to be on)
set name = "Set Hotkey Mode"
set category = "Preferences"
- hotkeytype = input("Choose hotkey mode", "Hotkey mode") as null|anything in hotkeylist//ask the user for the hotkey type
+ var/hkt = input("Choose hotkey mode", "Hotkey mode") as null|anything in hotkeylist//ask the user for the hotkey type
+ if(!hkt)
+ return
+ hotkeytype = hkt
var/hotkeys = hotkeylist[hotkeytype]//get the list containing the hotkey names
var/hotkeyname = hotkeys[hotkeyon ? "on" : "off"]//get the name of the hotkey, to not clutter winset() to much