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
This commit is contained in:
n3ophyt3
2011-05-27 00:18:02 +00:00
parent d14603b28a
commit 970853a7ca
2 changed files with 44 additions and 6 deletions

View File

@@ -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

View File

@@ -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