From 4b9ff275b8447293b716a8b68d4a9de4fedf4d82 Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 24 Mar 2017 13:25:04 +0000 Subject: [PATCH 1/2] Adds additional mapping tools --- .../effects/spawners/random_barrier.dm | 28 +++++++---- .../effects/spawners/random_spawners.dm | 50 +++++++++++++++++++ paradise.dme | 1 + 3 files changed, 70 insertions(+), 9 deletions(-) create mode 100644 code/game/objects/effects/spawners/random_spawners.dm diff --git a/code/game/objects/effects/spawners/random_barrier.dm b/code/game/objects/effects/spawners/random_barrier.dm index ff165fff38a..3fd81bcf9b0 100644 --- a/code/game/objects/effects/spawners/random_barrier.dm +++ b/code/game/objects/effects/spawners/random_barrier.dm @@ -28,15 +28,13 @@ name = "probably a wall" result = list( /turf/simulated/wall = 9, - /obj/structure/falsewall = 1 - ) + /obj/structure/falsewall = 1) /obj/effect/spawner/random_barrier/floor_probably name = "probably a floor" result = list( /turf/simulated/floor/plasteel = 3, - /turf/simulated/wall = 1 - ) + /turf/simulated/wall = 1) /obj/effect/spawner/random_barrier/obstruction name = "obstruction" @@ -44,12 +42,24 @@ /turf/simulated/wall = 1, /obj/structure/falsewall = 1, /obj/structure/barricade/wooden = 1, - /obj/machinery/door/airlock/welded = 1 - ) + /obj/machinery/door/airlock/welded = 1) -/obj/effect/spawner/random_barrier/possibly_welded_airlock +/obj/effect/spawner/random_barrier/possibly_welded_airlock // these have no access restrictions, so for internal maintenance only name = "possibly welded airlock" result = list( /obj/machinery/door/airlock = 3, - /obj/machinery/door/airlock/welded = 1 - ) + /obj/machinery/door/airlock/welded = 1) + +/obj/effect/spawner/random_spawners/grille_often + name = "grille often" + result = list( + /obj/structure/grille = 8, + /obj/structure/grille/broken = 4, + /turf/simulated/floor/plating = 2) + +/obj/effect/spawner/random_spawners/grille_maybe + name = "grille maybe" + result = list( + /obj/structure/grille = 2, + /obj/structure/grille/broken = 2, + /turf/simulated/floor/plating = 5) diff --git a/code/game/objects/effects/spawners/random_spawners.dm b/code/game/objects/effects/spawners/random_spawners.dm new file mode 100644 index 00000000000..1c004d4e7ff --- /dev/null +++ b/code/game/objects/effects/spawners/random_spawners.dm @@ -0,0 +1,50 @@ +/obj/effect/spawner/random_spawners + name = "random spawners" + icon = 'icons/mob/screen_gen.dmi' + icon_state = "x2" + color = "#00FF00" + var/list/result = list( + /turf/simulated/floor/plasteel = 1, + /turf/simulated/wall = 1, + /obj/structure/falsewall = 1, + /obj/effect/decal/cleanable/blood/splatter = 1, + /obj/structure/barricade/wooden = 1) + +// This needs to come before the initialization wave because +// the thing it creates might need to be initialized too +/obj/effect/spawner/random_spawners/New() + . = ..() + var/turf/T = get_turf(src) + if(!T) + log_runtime(EXCEPTION("Spawner placed in nullspace!"), src) + return + var/thing_to_place = pickweight(result) + if(ispath(thing_to_place, /turf)) + T.ChangeTurf(thing_to_place) + else + new thing_to_place(T) + qdel(src) + +/obj/effect/spawner/random_spawners/blood_maybe + name = "blood maybe" + result = list( + /turf/simulated/floor/plating = 20, + /obj/effect/decal/cleanable/blood/splatter = 1) + +/obj/effect/spawner/random_spawners/blood_often + name = "blood often" + result = list( + /turf/simulated/floor/plating = 5, + /obj/effect/decal/cleanable/blood/splatter = 1) + +/obj/effect/spawner/random_spawners/wall_rusted_probably + name = "rusted wall probably" + result = list( + /turf/simulated/wall = 2, + /turf/simulated/wall/rust = 7) + +/obj/effect/spawner/random_spawners/wall_rusted_maybe + name = "rusted wall maybe" + result = list( + /turf/simulated/wall = 7, + /turf/simulated/wall/rust = 1) \ No newline at end of file diff --git a/paradise.dme b/paradise.dme index 0598ff2bb4f..a9595ca5b15 100644 --- a/paradise.dme +++ b/paradise.dme @@ -693,6 +693,7 @@ #include "code\game\objects\effects\spawners\gibspawner.dm" #include "code\game\objects\effects\spawners\lootdrop.dm" #include "code\game\objects\effects\spawners\random_barrier.dm" +#include "code\game\objects\effects\spawners\random_spawners.dm" #include "code\game\objects\effects\spawners\vaultspawner.dm" #include "code\game\objects\effects\spawners\windowspawner.dm" #include "code\game\objects\items\ashtray.dm" From 04e6cd55bc8c1c58809cfc005944d8c94e31c3ed Mon Sep 17 00:00:00 2001 From: Sam Date: Mon, 27 Mar 2017 22:12:13 +0100 Subject: [PATCH 2/2] Adds fungus, oil, cobweb, dirt spawners --- .../effects/spawners/random_spawners.dm | 68 +++++++++++++++++-- 1 file changed, 64 insertions(+), 4 deletions(-) diff --git a/code/game/objects/effects/spawners/random_spawners.dm b/code/game/objects/effects/spawners/random_spawners.dm index 1c004d4e7ff..621c8799cc2 100644 --- a/code/game/objects/effects/spawners/random_spawners.dm +++ b/code/game/objects/effects/spawners/random_spawners.dm @@ -5,10 +5,10 @@ color = "#00FF00" var/list/result = list( /turf/simulated/floor/plasteel = 1, - /turf/simulated/wall = 1, - /obj/structure/falsewall = 1, + /turf/simulated/floor/plating = 1, /obj/effect/decal/cleanable/blood/splatter = 1, - /obj/structure/barricade/wooden = 1) + /obj/effect/decal/cleanable/blood/oil = 1, + /obj/effect/decal/cleanable/fungus = 1) // This needs to come before the initialization wave because // the thing it creates might need to be initialized too @@ -37,6 +37,18 @@ /turf/simulated/floor/plating = 5, /obj/effect/decal/cleanable/blood/splatter = 1) +/obj/effect/spawner/random_spawners/oil_maybe + name = "oil maybe" + result = list( + /turf/simulated/floor/plating = 20, + /obj/effect/decal/cleanable/blood/oil = 1) + +/obj/effect/spawner/random_spawners/oil_maybe + name = "oil often" + result = list( + /turf/simulated/floor/plating = 5, + /obj/effect/decal/cleanable/blood/oil = 1) + /obj/effect/spawner/random_spawners/wall_rusted_probably name = "rusted wall probably" result = list( @@ -47,4 +59,52 @@ name = "rusted wall maybe" result = list( /turf/simulated/wall = 7, - /turf/simulated/wall/rust = 1) \ No newline at end of file + /turf/simulated/wall/rust = 1) + +/obj/effect/spawner/random_spawners/cobweb_left_frequent + name = "cobweb left frequent" + result = list( + /turf/simulated/floor/plating = 1, + /obj/effect/decal/cleanable/cobweb = 1) + +/obj/effect/spawner/random_spawners/cobweb_right_frequent + name = "cobweb right frequent" + result = list( + /turf/simulated/floor/plating = 1, + /obj/effect/decal/cleanable/cobweb2 = 1) + +/obj/effect/spawner/random_spawners/cobweb_left_rare + name = "cobweb left rare" + result = list( + /turf/simulated/floor/plating = 10, + /obj/effect/decal/cleanable/cobweb = 1) + +/obj/effect/spawner/random_spawners/cobweb_right_rare + name = "cobweb right rare" + result = list( + /turf/simulated/floor/plating = 10, + /obj/effect/decal/cleanable/cobweb2 = 1) + +/obj/effect/spawner/random_spawners/dirt_frequent + name = "dirt frequent" + result = list( + /turf/simulated/floor/plating = 1, + /obj/effect/decal/cleanable/dirt = 1) + +/obj/effect/spawner/random_spawners/dirt_rare + name = "dirt rare" + result = list( + /turf/simulated/floor/plating = 10, + /obj/effect/decal/cleanable/dirt = 1) + +/obj/effect/spawner/random_spawners/fungus_maybe + name = "rusted wall maybe" + result = list( + /turf/simulated/wall = 7, + /obj/effect/decal/cleanable/fungus = 1) + +/obj/effect/spawner/random_spawners/fungus_probably + name = "rusted wall maybe" + result = list( + /turf/simulated/wall = 1, + /obj/effect/decal/cleanable/fungus = 7)