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