diff --git a/code/game/atoms.dm b/code/game/atoms.dm index b1ae4c99fd7..f0443ee1683 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -395,4 +395,7 @@ var/list/blood_splatter_icons = list() return /atom/proc/emag_act() - return + return + +/atom/proc/narsie_act() + return \ No newline at end of file diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index 9e641352434..0be1070747c 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -158,3 +158,7 @@ var/list/icons_to_ignore_at_floor_init = list("damaged1","damaged2","damaged3"," make_plating() else if(prob(50)) ReplaceWithLattice() + +/turf/simulated/floor/narsie_act() + if(prob(20)) + ChangeTurf(/turf/simulated/floor/engine/cult) \ No newline at end of file diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm index fd6b3e5e452..bd74639bd6d 100644 --- a/code/game/turfs/simulated/floor/plating.dm +++ b/code/game/turfs/simulated/floor/plating.dm @@ -110,6 +110,9 @@ name = "engraved floor" icon_state = "cult" +/turf/simulated/floor/engine/cult/narsie_act() + return + /turf/simulated/floor/engine/n20/New() ..() var/datum/gas_mixture/adding = new diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index fed36f77b71..d30300fd82e 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -286,4 +286,8 @@ return if(current_size == STAGE_FOUR) if(prob(30)) - dismantle_wall() \ No newline at end of file + dismantle_wall() + +/turf/simulated/wall/narsie_act() + if(prob(20)) + ChangeTurf(/turf/simulated/wall/cult) \ No newline at end of file diff --git a/code/game/turfs/simulated/walls_misc.dm b/code/game/turfs/simulated/walls_misc.dm index 2f773d52b04..9c6b1529172 100644 --- a/code/game/turfs/simulated/walls_misc.dm +++ b/code/game/turfs/simulated/walls_misc.dm @@ -13,6 +13,9 @@ new /obj/effect/decal/cleanable/blood(src) new /obj/effect/decal/remains/human(src) +/turf/simulated/wall/cult/narsie_act() + return + /turf/simulated/wall/vault icon_state = "rockvault" diff --git a/code/modules/awaymissions/mission_code/stationCollision.dm b/code/modules/awaymissions/mission_code/stationCollision.dm index a97d1f13f30..b8cfb519a50 100644 --- a/code/modules/awaymissions/mission_code/stationCollision.dm +++ b/code/modules/awaymissions/mission_code/stationCollision.dm @@ -163,7 +163,7 @@ var/sc_safecode5 = "[rand(0,9)]" desc = "Your body becomes weak and your feel your mind slipping away as you try to comprehend what you know can't be possible." move_self = 0 //Contianed narsie does not move! grav_pull = 0 //Contained narsie does not pull stuff in! - + var/uneatable = list(/turf/space, /obj/effect/overlay, /mob/living/simple_animal/construct) //Override this to prevent no adminlog runtimes and admin warnings about a singularity without containment /obj/singularity/narsie/sc_Narsie/admin_investigate_setup() return diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index a6c371d15fe..b4d6f44b902 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -762,6 +762,13 @@ /mob/living/singularity_pull(S) step_towards(src,S) +/mob/living/narsie_act() + if(client) + makeNewConstruct(/mob/living/simple_animal/construct/harvester, src, null, 1) + spawn_dust() + gib() + return + /mob/living/proc/do_attack_animation(atom/A) var/pixel_x_diff = 0 var/pixel_y_diff = 0 diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index f52831f11af..2f515596d37 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -70,7 +70,8 @@ Proj.on_hit(src, 0) return 0 - +/mob/living/simple_animal/construct/narsie_act() + return /////////////////Juggernaut/////////////// diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm index c33bc19bff7..1ed275131b6 100644 --- a/code/modules/power/singularity/narsie.dm +++ b/code/modules/power/singularity/narsie.dm @@ -10,7 +10,6 @@ move_self = 1 //Do we move on our own? grav_pull = 5 //How many tiles out do we pull? consume_range = 6 //How many tiles out do we eat - var/uneatable = list(/turf/space, /obj/effect/overlay, /mob/living/simple_animal/construct) /obj/singularity/narsie/large name = "Nar-Sie" @@ -84,25 +83,7 @@ /obj/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 - if(C.client) - makeNewConstruct(/mob/living/simple_animal/construct/harvester, C, null, 1) - C.spawn_dust() - C.gib() - return - - 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 + A.narsie_act() /obj/singularity/narsie/ex_act() //No throwing bombs at it either. --NEO