diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index 858e2108571..3332f188f6e 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -1,7 +1,7 @@ /mob/living/simple_animal/construct name = "Construct" - real_name = "Contruct" + real_name = "Construct" desc = "" speak_emote = list("hisses") emote_hear = list("wails","screeches") @@ -25,6 +25,9 @@ minbodytemp = 0 faction = "cult" +/mob/living/simple_animal/construct/New() + name = text("[initial(name)] ([rand(1, 1000)])") + real_name = name /mob/living/simple_animal/construct/Life() ..() @@ -255,7 +258,7 @@ var/energy = 0 var/max_energy = 1000 -/mob/living/simple_animal/constructbehemoth/attackby(var/obj/item/O as obj, var/mob/user as mob) +/mob/living/simple_animal/construct/behemoth/attackby(var/obj/item/O as obj, var/mob/user as mob) if(O.force) if(O.force >= 11) var/damage = O.force diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index 1c0dc4b74bf..4c11f7d7a01 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -452,7 +452,7 @@ var/global/list/uneatable = list( /obj/machinery/singularity/narsie //Moving narsie to a child object of the singularity so it can be made to function differently. --NEO - name = "Nar-Sie" + name = "Nar-sie's Avatar" desc = "Your mind begins to bubble and ooze as it tries to comprehend what it sees." icon = 'icons/obj/magic_terror.dmi' pixel_x = -89 @@ -461,8 +461,8 @@ var/global/list/uneatable = list( 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 + grav_pull = 5 //How many tiles out do we pull? + consume_range = 6 //How many tiles out do we eat /obj/machinery/singularity/narsie/large name = "Nar-Sie" @@ -472,11 +472,12 @@ var/global/list/uneatable = list( pixel_y = -256 current_size = 12 move_self = 1 //Do we move on our own? + grav_pull = 10 consume_range = 12 //How many tiles out do we eat /obj/machinery/singularity/narsie/large/New() ..() - world << "NAR-SIE HAS RISEN" + world << "NAR-SIE HAS RISEN" if(emergency_shuttle) emergency_shuttle.incall(0.5) // Cannot recall @@ -488,23 +489,49 @@ var/global/list/uneatable = list( if(prob(25)) mezzer() -/obj/machinery/singularity/narsie/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) + +/obj/machinery/singularity/narsie/Bump(atom/A)//you dare stand before a god?! + godsmack(A) + return + +/obj/machinery/singularity/narsie/Bumped(atom/A) + godsmack(A) + return + +/obj/machinery/singularity/narsie/proc/godsmack(var/atom/A) + if(istype(A,/obj/)) + var/obj/O = A + O.ex_act(1.0) + if(O) del(O) + 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:ChangeTurf(/turf/space) + T.ChangeTurf(/turf/simulated/floor/engine/cult) + + +/obj/machinery/singularity/narsie/mezzer() + for(var/mob/living/carbon/M in oviewers(8, src)) + if(M.stat == CONSCIOUS) + if(!iscultist(M)) + M << "\red You feel your sanity crumble away in an instant as you gaze upon [src.name]..." + M.apply_effect(3, STUN) + + +/obj/machinery/singularity/narsie/consume(var/atom/A) + if(is_type_in_list(A, uneatable)) + return 0 + + if(istype(A,/mob/living/)) + var/mob/living/C = A + C.dust() + + if(isturf(A)) + var/turf/T = A + if(istype(T, /turf/simulated/floor) && !istype(T, /turf/simulated/floor/engine/cult)) + if(prob(20)) T.ChangeTurf(/turf/simulated/floor/engine/cult) + + else if(istype(T,/turf/simulated/wall) && !istype(T, /turf/simulated/wall/cult)) + if(prob(20)) T.ChangeTurf(/turf/simulated/wall/cult) return /obj/machinery/singularity/narsie/ex_act() //No throwing bombs at it either. --NEO