From 970853a7cab2c7d80d508940e475d73eec600b61 Mon Sep 17 00:00:00 2001 From: n3ophyt3 Date: Fri, 27 May 2011 00:18:02 +0000 Subject: [PATCH] Fixed Narsie Instead of being a var-edited singularity (which ends up following the normal singularity rules), narsie is now a child object of the singularity, with modified code to prevent it from doing things like changing size or getting exploded by R&D throwing a bluespace backpack into it. Unless someone beats me to it, I'll probably make it follow cultists/ghosts instead of randomwalking at some point. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1621 316c924e-a436-60f5-8080-3fe189b3f50e --- code/game/magic/cultist/runes.dm | 7 +-- code/modules/power/singularity/singularity.dm | 43 +++++++++++++++++++ 2 files changed, 44 insertions(+), 6 deletions(-) diff --git a/code/game/magic/cultist/runes.dm b/code/game/magic/cultist/runes.dm index 4bb722d7e0a..afd05fd2c8d 100644 --- a/code/game/magic/cultist/runes.dm +++ b/code/game/magic/cultist/runes.dm @@ -128,12 +128,7 @@ var/list/sacrificed = list() M.say("Tok-lyr rqa'nap g'lt-ulotf!") cultist_count += 1 if(cultist_count >= 9) - var/obj/machinery/singularity/S = new /obj/machinery/singularity/(src.loc) - S.icon = 'magic_terror.dmi' - S.name = "Tear in the Fabric of Reality" - S.desc = "Your mind begins to bubble and ooze as it tries to comprehend what it sees." - S.pixel_x = -89 - S.pixel_y = -85 + new /obj/machinery/singularity/narsie(src.loc) if(ticker.mode.name == "cult") ticker.mode:eldergod = 0 return diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index f5291048f5c..307ca4641b3 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -427,4 +427,47 @@ var/global/list/uneatable = list( for(var/obj/machinery/power/rad_collector/R in orange(15,src)) if(istype(R,/obj/machinery/power/rad_collector)) R.receive_pulse(energy) + return + + + + narsie //Moving narsie to a child object of the singularity so it can be made to function differently. --NEO + name = "Tear in the Fabric of Reality" + desc = "Your mind begins to bubble and ooze as it tries to comprehend what it sees." + icon = 'magic_terror.dmi' + pixel_x = -89 + pixel_y = -85 + current_size = 9 //It moves/eats like a max-size singulo, aside from range. --NEO + contained = 0 //Are we going to move around? + dissipate = 0 //Do we lose energy over time? + move_self = 1 //Do we move on our own? + grav_pull = 10 //How many tiles out do we pull? + consume_range = 3 //How many tiles out do we eat + + process() + eat() + move() + if(prob(25)) + mezzer() + + consume(var/atom/A) //Has its own consume proc because it doesn't need energy and I don't want BoHs to explode it. --NEO + if(is_type_in_list(A, uneatable)) + return 0 + if (istype(A,/mob/living))//Mobs get gibbed + A:gib() + else if(istype(A,/obj/)) + A:ex_act(1.0) + if(A) del(A) + else if(isturf(A)) + var/turf/T = A + if(T.intact) + for(var/obj/O in T.contents) + if(O.level != 1) + continue + if(O.invisibility == 101) + src.consume(O) + A:ReplaceWithSpace() + return + + ex_act() //No throwing bombs at it either. --NEO return \ No newline at end of file