diff --git a/code/game/machinery/dye_generator.dm b/code/game/machinery/dye_generator.dm
index 117a9a21671..90f73b61dd4 100644
--- a/code/game/machinery/dye_generator.dm
+++ b/code/game/machinery/dye_generator.dm
@@ -94,6 +94,9 @@
if(!(M in view(1)))
..()
return
+ if(!Adjacent(user))
+ ..()
+ return
if(ishuman(M))
var/mob/living/carbon/human/H = M
var/dye_list = list("hair", "alt. hair theme")
diff --git a/code/game/machinery/poolcontroller.dm b/code/game/machinery/poolcontroller.dm
index 01ae0546f19..ecc9ca9684f 100644
--- a/code/game/machinery/poolcontroller.dm
+++ b/code/game/machinery/poolcontroller.dm
@@ -59,11 +59,11 @@
qdel(decal)
/obj/machinery/poolcontroller/proc/handleTemp(var/mob/M)
+ M.water_act(100, 0, src)//leave temp at 0, we handle it in the switch.
if(temperature == "normal") //This setting does nothing, so let's skip the next checks since we won't be doing jack
return
if(!M || isAIEye(M) || issilicon(M) || isobserver(M) || M.stat == DEAD)
return
-
switch(temperature) //Apply different effects based on what the temperature is set to.
if("scalding") //Burn the mob.
M.bodytemperature = min(500, M.bodytemperature + 35) //heat mob at 35k(elvin) per cycle
diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm
index 2265c166461..1c1da352dbd 100644
--- a/code/game/objects/effects/spiders.dm
+++ b/code/game/objects/effects/spiders.dm
@@ -213,9 +213,10 @@
if(candidates.len)
var/mob/C = pick(candidates)
- S.key = C.key
- if(master_commander)
- to_chat(S, "You are a spider who is loyal to [master_commander], obey [master_commander]'s every order and assist them in completing their goals at any cost.")
+ if(C)
+ S.key = C.key
+ if(master_commander)
+ to_chat(S, "You are a spider who is loyal to [master_commander], obey [master_commander]'s every order and assist them in completing their goals at any cost.")
qdel(src)
/obj/effect/decal/cleanable/spiderling_remains
diff --git a/code/modules/economy/ATM.dm b/code/modules/economy/ATM.dm
index 40f258b0c2a..3470302c057 100644
--- a/code/modules/economy/ATM.dm
+++ b/code/modules/economy/ATM.dm
@@ -81,6 +81,9 @@ log transactions
/obj/machinery/atm/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/card))
+ if(!powered())
+ return
+
if(!held_card)
user.drop_item()
I.forceMove(src)
@@ -91,6 +94,8 @@ log transactions
else if(authenticated_account)
if(istype(I, /obj/item/stack/spacecash))
//consume the money
+ if(!powered())
+ return
var/obj/item/stack/spacecash/C = I
authenticated_account.money += C.amount
playsound(loc, pick('sound/items/polaroid1.ogg', 'sound/items/polaroid2.ogg'), 50, 1)
@@ -118,7 +123,7 @@ log transactions
to_chat(user, "Artificial unit recognized. Artificial units do not currently receive monetary compensation, as per Nanotrasen regulation #1005.")
return
ui_interact(user)
-
+
/obj/machinery/atm/attack_ghost(mob/user)
ui_interact(user)