diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index 307ca4641b3..97fc9da5323 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -446,6 +446,8 @@ var/global/list/uneatable = list( process() eat() + if(!target || prob(5)) + pickcultist() move() if(prob(25)) mezzer() @@ -470,4 +472,41 @@ var/global/list/uneatable = list( return ex_act() //No throwing bombs at it either. --NEO - return \ No newline at end of file + return + + proc/pickcultist() //Narsie rewards his cultists with being devoured first, then picks a ghost to follow. --NEO + var/list/cultists = list() + for(var/datum/mind/cult_nh_mind in ticker.mode.cult) + if(!cult_nh_mind.current) + continue + if(cult_nh_mind.current.stat) + continue + cultists += cult_nh_mind.current + if(cultists.len) + acquire(pick(cultists)) + return + //If there was living cultists, it picks one to follow. + for(var/mob/living/carbon/human/food in world) + if(food.stat) + continue + cultists += food + if(cultists.len) + acquire(pick(cultists)) + return + //no living cultists, pick a living human instead. + for(var/mob/dead/observer/ghost in world) + if(!ghost.client) + continue + cultists += ghost + if(cultists.len) + acquire(pick(cultists)) + return + //no living humans, follow a ghost instead. + + proc/acquire(var/mob/food) + target << "\blue NAR-SIE HAS LOST INTEREST IN YOU" + target = food + if(ishuman(target)) + target << "\red NAR-SIE HUNGERS FOR YOUR SOUL" + else + target << "\red NAR-SIE HAS CHOSEN YOU TO LEAD HIM TO HIS NEXT MEAL"