From 5b148e13e8c88727b4ed9d0a62ff66b192e69be4 Mon Sep 17 00:00:00 2001 From: Crazylemon64 Date: Fri, 24 Feb 2017 15:55:28 -0800 Subject: [PATCH] Adds a random barrier for use in mapping --- code/game/machinery/doors/airlock.dm | 25 +++++---- .../effects/spawners/random_barrier.dm | 55 +++++++++++++++++++ paradise.dme | 1 + 3 files changed, 70 insertions(+), 11 deletions(-) create mode 100644 code/game/objects/effects/spawners/random_barrier.dm diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 549c99dfbd1..032760fdd65 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -34,7 +34,7 @@ var/main_power_timer = null var/backup_power_timer = null var/spawnPowerRestoreRunning = 0 - var/welded = null + var/welded = FALSE var/locked = 0 var/lights = 1 // bolt lights show by default var/datum/wires/airlock/wires = null @@ -90,6 +90,9 @@ icon = 'icons/obj/doors/Doorext.dmi' assembly_type = /obj/structure/door_assembly/door_assembly_ext +/obj/machinery/door/airlock/welded + welded = 1 + /obj/machinery/door/airlock/glass name = "Glass Airlock" icon = 'icons/obj/doors/Doorglass.dmi' @@ -557,8 +560,8 @@ About the new airlock wires panel: return /obj/machinery/door/airlock/attack_ghost(mob/user) - ui_interact(user) - + ui_interact(user) + /obj/machinery/door/airlock/attack_ai(mob/user) ui_interact(user) @@ -987,17 +990,17 @@ About the new airlock wires panel: update_icon() return 1 -/obj/machinery/door/airlock/New() - ..() +/obj/machinery/door/airlock/initialize() + . = ..() wires = new(src) if(closeOtherId != null) - spawn (5) - for(var/obj/machinery/door/airlock/A in airlocks) - if(A.closeOtherId == closeOtherId && A != src) - closeOther = A - break + for(var/obj/machinery/door/airlock/A in airlocks) + if(A.closeOtherId == closeOtherId && A != src) + closeOther = A + break if(frozen) - welded = 1 + welded = TRUE + if(welded) update_icon() /obj/machinery/door/airlock/hatch/gamma/attackby(C as obj, mob/user as mob, params) diff --git a/code/game/objects/effects/spawners/random_barrier.dm b/code/game/objects/effects/spawners/random_barrier.dm new file mode 100644 index 00000000000..ff165fff38a --- /dev/null +++ b/code/game/objects/effects/spawners/random_barrier.dm @@ -0,0 +1,55 @@ +/obj/effect/spawner/random_barrier + name = "random tile" + var/list/result = list( + /turf/simulated/floor/plasteel = 1, + /turf/simulated/wall = 1, + /obj/structure/falsewall = 1, + /obj/effect/spawner/window/reinforced = 1, + /obj/machinery/door/airlock = 1, + /obj/machinery/door/airlock/welded = 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_barrier/New() + . = ..() + var/turf/T = get_turf(src) + if(!T) + log_runtime(EXCEPTION("Barrier 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_barrier/wall_probably + name = "probably a wall" + result = list( + /turf/simulated/wall = 9, + /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 + ) + +/obj/effect/spawner/random_barrier/obstruction + name = "obstruction" + result = list( + /turf/simulated/wall = 1, + /obj/structure/falsewall = 1, + /obj/structure/barricade/wooden = 1, + /obj/machinery/door/airlock/welded = 1 + ) + +/obj/effect/spawner/random_barrier/possibly_welded_airlock + name = "possibly welded airlock" + result = list( + /obj/machinery/door/airlock = 3, + /obj/machinery/door/airlock/welded = 1 + ) diff --git a/paradise.dme b/paradise.dme index 566614547bc..a9d330f883e 100644 --- a/paradise.dme +++ b/paradise.dme @@ -690,6 +690,7 @@ #include "code\game\objects\effects\spawners\bombspawner.dm" #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\vaultspawner.dm" #include "code\game\objects\effects\spawners\windowspawner.dm" #include "code\game\objects\items\ashtray.dm"