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."