diff --git a/code/modules/admin/verbs/spawnfloorcluwne.dm b/code/modules/admin/verbs/spawnfloorcluwne.dm
index 094fd3399bf..6f3401d7625 100644
--- a/code/modules/admin/verbs/spawnfloorcluwne.dm
+++ b/code/modules/admin/verbs/spawnfloorcluwne.dm
@@ -9,6 +9,8 @@
var/turf/T = get_turf(usr)
target = input("Any specific target in mind? Please note only live, non cluwned, human targets are valid.", "Target", target) as null|anything in player_list
+ if(isnull(target))
+ return
if(target && ishuman(target))
var/mob/living/carbon/human/H = target
var/mob/living/simple_animal/hostile/floor_cluwne/FC = new /mob/living/simple_animal/hostile/floor_cluwne(T)
diff --git a/code/modules/mob/living/simple_animal/hostile/floorcluwne.dm b/code/modules/mob/living/simple_animal/hostile/floorcluwne.dm
index 592540dac9f..bd7c7285be5 100644
--- a/code/modules/mob/living/simple_animal/hostile/floorcluwne.dm
+++ b/code/modules/mob/living/simple_animal/hostile/floorcluwne.dm
@@ -36,6 +36,7 @@
var/target_area
var/invalid_area_typecache = list(/area/space, /area/centcom)
var/eating = FALSE
+ var/smiting = FALSE
/mob/living/simple_animal/hostile/floor_cluwne/New()
@@ -135,10 +136,12 @@
/mob/living/simple_animal/hostile/floor_cluwne/proc/Acquire_Victim(specific)
- for(var/mob/living/carbon/human/I in player_list)
- var/mob/living/carbon/human/H = pick(player_list)//so the check is fair
+ var/list/players_copy = player_list.Copy()
+ while(players_copy.len)
+ var/mob/living/carbon/human/H = pick_n_take(players_copy)
if(specific)
+ smiting = TRUE
H = specific
if(H.stat != DEAD && !H.get_int_organ(/obj/item/organ/internal/honktumor/cursed) && !is_type_in_typecache(get_area(H.loc), invalid_area_typecache))
return target = current_victim
@@ -331,8 +334,7 @@
H.density = FALSE
H.anchored = TRUE
addtimer(CALLBACK(src, /mob/living/simple_animal/hostile/floor_cluwne/.proc/Kill, H), 100)
- visible_message("[src] pulls [H] under!")
- to_chat(H, "[src] drags you underneath the floor!")
+ H.visible_message("[src] pulls [H] under the floor!")
else
eating = FALSE
@@ -376,9 +378,13 @@
eating = FALSE
switch_stage = switch_stage * 0.75 //he gets faster after each feast
- Acquire_Victim()
+ if(smiting)
+ playsound(loc, 'sound/spookoween/scary_horn2.ogg', 100, 0, -4)
+ qdel(src)
+ else
+ Acquire_Victim()
- interest = 0
+ interest = 0
//manifestation animation
/obj/effect/temp_visual/fcluwne_manifest