diff --git a/code/game/objects/effects/chem/water.dm b/code/game/objects/effects/chem/water.dm
index 9b154645443..1b4d7450019 100644
--- a/code/game/objects/effects/chem/water.dm
+++ b/code/game/objects/effects/chem/water.dm
@@ -23,30 +23,53 @@
step_towards(src, target)
var/turf/T = get_turf(src)
if(T && reagents)
- reagents.touch_turf(T)
- var/mob/M
- for(var/atom/A in T)
- if(!ismob(A) && A.simulated) // Mobs are handled differently
- reagents.touch(A)
- else if(ismob(A) && !M)
- M = A
- if(M)
- reagents.splash(M, reagents.total_volume)
+
+ if (wet_things(T))
break
+
if(T == get_turf(target))
break
sleep(delay)
sleep(10)
qdel(src)
+//Wets everything in the tile
+//A return value of 1 means that the wetting should stop. Either the water ran out or some error ocurred
+/obj/effect/effect/water/proc/wet_things(var/turf/T)
+
+ if (!reagents || reagents.total_volume <= 0)
+ return 1
+
+
+ reagents.touch_turf(T)
+ var/list/mobshere = list()
+ for (var/mob/living/L in T)
+ mobshere.Add(L)
+
+
+ for (var/atom/B in T)
+ if (!ismob(B))
+ reagents.touch(B)
+
+ if (mobshere.len)
+ var/portion = 1 / mobshere.len
+ var/total = reagents.total_volume
+ for (var/mob/living/L in mobshere)
+ reagents.splash(L, total * portion)
+ return 1
+
+ return 0
+
+
+
/obj/effect/effect/water/Move(turf/newloc)
if(newloc.density)
return 0
. = ..()
/obj/effect/effect/water/Bump(atom/A)
- if(reagents)
- reagents.touch(A)
+ var/turf/T = get_turf(A)
+ wet_things(T)
return ..()
//Used by spraybottles.
diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm
index cf102c40950..27287825849 100644
--- a/code/modules/mob/new_player/new_player.dm
+++ b/code/modules/mob/new_player/new_player.dm
@@ -404,8 +404,9 @@
if(job && IsJobAvailable(job.title))
var/active = 0
// Only players with the job assigned and AFK for less than 10 minutes count as active
- for(var/mob/M in player_list) if(M.mind && M.client && M.mind.assigned_role == job.title && M.client.inactivity <= 10 * 60 * 10)
- active++
+ for(var/mob/M in player_list) //Added isliving check here, so it won't check ghosts and qualify them as active
+ if(isliving(M) && M.mind && M.client && M.mind.assigned_role == job.title && M.client.inactivity <= 10 * 60 * 10)
+ active++
dat += "[job.title] ([job.current_positions]) (Active: [active])
"
dat += ""
diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm
index 87685a0d2f6..3a1a33260fd 100644
--- a/code/modules/power/power.dm
+++ b/code/modules/power/power.dm
@@ -313,8 +313,10 @@
//No animations will be performed by this proc.
/proc/electrocute_mob(mob/living/carbon/M as mob, var/power_source, var/obj/source, var/siemens_coeff = 1.0)
if(istype(M.loc,/obj/mecha)) return 0 //feckin mechs are dumb
- var/mob/living/carbon/human/H = M //20/1/16 Insulation (vaurca)
- if(H.species.name == "Vaurca") return 0
+ var/mob/living/carbon/human/H = null
+ if (ishuman(M))
+ H = M //20/1/16 Insulation (vaurca)
+ if(H.species.name == "Vaurca") return 0
var/area/source_area
if(istype(power_source,/area))
source_area = power_source
@@ -344,8 +346,7 @@
//If following checks determine user is protected we won't alarm for long.
if(PN)
PN.trigger_warning(5)
- if(istype(M,/mob/living/carbon/human))
- //var/mob/living/carbon/human/H = M
+ if(H)
if(H.species.siemens_coefficient == 0)
return
if(H.gloves)
diff --git a/html/changelogs/Nanako-slimespray.yml b/html/changelogs/Nanako-slimespray.yml
new file mode 100644
index 00000000000..269dbbba4a4
--- /dev/null
+++ b/html/changelogs/Nanako-slimespray.yml
@@ -0,0 +1,38 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# wip (For works in progress)
+# tweak
+# soundadd
+# sounddel
+# rscadd (general adding of nice things)
+# rscdel (general deleting of nice things)
+# imageadd
+# imagedel
+# maptweak
+# spellcheck (typo fixes)
+# experiment
+#################################
+
+# Your name.
+author: Nanako
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
+# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - bugfix: "Spraying water will now wet all mobs in the tile, dividing reagents amongst them. This fixes some issues where slimes would be unsprayable."
+
+
\ No newline at end of file