diff --git a/code/game/gamemodes/clock_cult/clock_ratvar.dm b/code/game/gamemodes/clock_cult/clock_ratvar.dm
index 03ca2c2436d..4e30b55e366 100644
--- a/code/game/gamemodes/clock_cult/clock_ratvar.dm
+++ b/code/game/gamemodes/clock_cult/clock_ratvar.dm
@@ -122,10 +122,10 @@
clockwork_desc = "Ratvar, the Clockwork Justiciar, your master eternal."
icon = 'icons/effects/512x512.dmi'
icon_state = "ratvar"
- pixel_x = -248
- pixel_y = -248
+ pixel_x = -235
+ pixel_y = -235
takes_damage = FALSE
- var/mob/living/prey //Whoever Ratvar is chasing
+ var/atom/prey //Whatever Ratvar is chasing
var/clashing = FALSE //If Ratvar is FUCKING FIGHTING WITH NAR-SIE
/obj/structure/clockwork/massive/ratvar/New()
@@ -143,22 +143,27 @@
..()
/obj/structure/clockwork/massive/ratvar/process()
+ if(clashing) //I'm a bit occupied right now, thanks
+ return 0
for(var/atom/A in range(7, src))
A.ratvar_act()
- if(clashing) //Doesn't move during a clash
- return 0
var/dir_to_step_in = pick(cardinal)
if(!prey)
- var/list/meals = list()
- for(var/mob/living/L in living_mob_list)
- if(L.z == z && !is_servant_of_ratvar(L) && L.mind)
- meals += L
- if(meals.len)
- prey = pick(meals)
- prey << "\"You will do.\"\n\
- Something very large and very malevolent begins lumbering its way towards you..."
+ for(var/obj/singularity/narsie/N in poi_list)
+ if(N.z == z)
+ prey = N
+ break
+ if(!prey) //In case there's a Nar-Sie
+ var/list/meals = list()
+ for(var/mob/living/L in living_mob_list)
+ if(L.z == z && !is_servant_of_ratvar(L) && L.mind)
+ meals += L
+ if(meals.len)
+ prey = pick(meals)
+ prey << "\"You will do.\"\n\
+ Something very large and very malevolent begins lumbering its way towards you..."
else
- if(prob(10) || prey.stat == DEAD || is_servant_of_ratvar(prey) || prey.z != z)
+ if(prob(10) || is_servant_of_ratvar(prey) || prey.z != z)
prey << "\"How dull. Leave me.\"\n\
You feel tremendous relief as a set of horrible eyes loses sight of you..."
prey = null
diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm
index 8658fe0b341..ff0c800f549 100644
--- a/code/modules/power/singularity/narsie.dm
+++ b/code/modules/power/singularity/narsie.dm
@@ -46,9 +46,9 @@
/obj/singularity/narsie/process()
- eat()
if(clashing)
return 0
+ eat()
if(!target || prob(5))
pickcultist()
move()
@@ -80,6 +80,12 @@
/obj/singularity/narsie/proc/pickcultist() //Narsie rewards her cultists with being devoured first, then picks a ghost to follow.
var/list/cultists = list()
var/list/noncultists = list()
+ for(var/obj/structure/clockwork/massive/ratvar/enemy in poi_list) //Prioritize killing Ratvar
+ if(enemy.z != z)
+ continue
+ acquire(enemy)
+ return
+
for(var/mob/living/carbon/food in living_mob_list) //we don't care about constructs or cult-Ians or whatever. cult-monkeys are fair game i guess
var/turf/pos = get_turf(food)
if(pos.z != src.z)
@@ -111,7 +117,7 @@
return
-/obj/singularity/narsie/proc/acquire(mob/food)
+/obj/singularity/narsie/proc/acquire(atom/food)
if(food == target)
return
target << "NAR-SIE HAS LOST INTEREST IN YOU."