diff --git a/_maps/map_files/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/map_files/RandomRuins/SpaceRuins/oldstation.dmm index 8906385eba1..d43d55fb9b9 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/oldstation.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/oldstation.dmm @@ -594,17 +594,7 @@ /area/ruin/ancientstation/thetacorridor) "bT" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, -/obj/item/circular_saw, -/obj/item/retractor, -/obj/item/hemostat, -/obj/item/scalpel, -/obj/item/cautery, -/obj/item/FixOVein, -/obj/item/surgicaldrill, -/obj/item/bonegel, -/obj/item/bonesetter, -/obj/item/stack/medical/bruise_pack/advanced, +/obj/structure/closet/crate/secure/oldstation/surgery, /turf/simulated/floor/plating, /area/ruin/ancientstation/thetacorridor) "bU" = ( @@ -1266,7 +1256,6 @@ "dL" = ( /obj/structure/table, /obj/effect/decal/cleanable/dirt, -/obj/machinery/recharger, /turf/simulated/floor/plasteel{ dir = 10; icon_state = "blue" @@ -1372,6 +1361,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/power/apc/off_station/empty_charge/directional/east, +/obj/structure/closet/crate/secure/oldstation/rechargers, /turf/simulated/floor/plating, /area/ruin/ancientstation/comm) "dY" = ( @@ -1408,16 +1398,6 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel/white, /area/ruin/ancientstation/rnd) -"ec" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/computer/rdconsole/public, -/turf/simulated/floor/plasteel/white, -/area/ruin/ancientstation/rnd) -"ed" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/r_n_d/destructive_analyzer, -/turf/simulated/floor/plasteel/white, -/area/ruin/ancientstation/rnd) "ee" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/mecha_part_fabricator, @@ -1470,7 +1450,6 @@ /area/ruin/ancientstation/betanorth) "el" = ( /obj/structure/table, -/obj/machinery/recharger, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ dir = 5; @@ -1755,17 +1734,6 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, /area/ruin/ancientstation/thetacorridor) -"eT" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/r_n_d/protolathe, -/turf/simulated/floor/plasteel/white, -/area/ruin/ancientstation/rnd) -"eU" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/r_n_d/circuit_imprinter, -/obj/item/reagent_containers/dropper, -/turf/simulated/floor/plasteel/white, -/area/ruin/ancientstation/rnd) "eV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, @@ -2022,7 +1990,7 @@ }, /obj/machinery/door/airlock/external{ name = "Engineering External Access"; - req_one_access_txt = "271" + req_one_access_txt = "301" }, /turf/simulated/floor/plating, /area/ruin/ancientstation/engi) @@ -2431,6 +2399,7 @@ pixel_x = 2; pixel_y = -2 }, +/obj/item/reagent_containers/dropper, /turf/simulated/floor/plasteel, /area/ruin/ancientstation/rnd) "gh" = ( @@ -3077,7 +3046,7 @@ icon_state = "4-8" }, /obj/machinery/door/airlock/maintenance_hatch{ - req_one_access_txt = "271" + req_one_access_txt = "301" }, /turf/simulated/floor/plating, /area/ruin/ancientstation/thetacorridor) @@ -3155,7 +3124,7 @@ }, /obj/machinery/door/airlock/external{ name = "Engineering External Access"; - req_one_access_txt = "271" + req_one_access_txt = "301" }, /turf/simulated/floor/plating/airless, /area/ruin/ancientstation/engi) @@ -3873,7 +3842,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/highsecurity{ name = "Prototype Laboratory"; - req_access_txt = "271" + req_access_txt = "301" }, /turf/simulated/floor/plasteel{ icon_state = "whitehall" @@ -3884,7 +3853,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/highsecurity{ name = "Prototype Laboratory"; - req_access_txt = "271" + req_access_txt = "301" }, /turf/simulated/floor/plasteel{ icon_state = "whitehall" @@ -4343,7 +4312,9 @@ /turf/simulated/floor/plasteel/white, /area/ruin/ancientstation/proto) "kA" = ( -/obj/machinery/computer/nonfunctional, +/obj/machinery/computer/nonfunctional{ + dir = 1 + }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel/white, /area/ruin/ancientstation/proto) @@ -4796,13 +4767,8 @@ /obj/machinery/alarm/all_access/directional/west{ report_danger_level = 0 }, -/obj/structure/rack, -/obj/item/gun/energy/laser/retro/old{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/item/gun/energy/laser/retro/old, /obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/secure/oldstation/security, /turf/simulated/floor/plasteel{ dir = 10; icon_state = "red" @@ -4893,17 +4859,20 @@ /turf/simulated/floor/plasteel, /area/ruin/ancientstation/thetacorridor) "lL" = ( -/obj/structure/rack, -/obj/item/clothing/suit/armor/vest/old, /obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/deck/cards{ + pixel_y = 5 + }, /turf/simulated/floor/plasteel{ icon_state = "red" }, /area/ruin/ancientstation/sec) "lM" = ( -/obj/structure/rack, -/obj/item/clothing/head/helmet/old, /obj/effect/decal/cleanable/dirt, +/obj/structure/chair{ + dir = 8 + }, /turf/simulated/floor/plasteel{ dir = 6; icon_state = "red" @@ -4959,6 +4928,11 @@ icon_state = "red" }, /area/ruin/ancientstation/sec) +"JF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/secure/oldstation/research, +/turf/simulated/floor/plasteel, +/area/ruin/ancientstation/rnd) "Lu" = ( /obj/structure/transit_tube/horizontal{ dir = 4 @@ -7989,7 +7963,7 @@ eb ex dE fm -gf +JF gy dG hg @@ -8033,9 +8007,9 @@ cp cN dj dE -ec dE -eT +dE +dE dE gg gy @@ -8081,9 +8055,9 @@ ev fz dj dE -ed dE -eU +dE +dE dE gh gy diff --git a/code/__DEFINES/access_defines.dm b/code/__DEFINES/access_defines.dm index 4043b927049..10443a7316c 100644 --- a/code/__DEFINES/access_defines.dm +++ b/code/__DEFINES/access_defines.dm @@ -110,3 +110,4 @@ //Ghost roles #define ACCESS_FREE_GOLEMS 300 +#define ACCESS_THETA_STATION 301 diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index d3876da9b1a..5c066edcbb1 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -159,6 +159,9 @@ GLOBAL_LIST_INIT(metal_recipes, list( /obj/item/stack/sheet/metal/cyborg/drone energy_type = /datum/robot_storage/energy/metal +/obj/item/stack/sheet/metal/ten + amount = 10 + /obj/item/stack/sheet/metal/fifty amount = 50 diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index 56e0c837004..d2d6a69bca2 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -216,16 +216,18 @@ /obj/structure/closet/crate/secure/proc/togglelock(mob/user) if(opened) to_chat(user, "Close the crate first.") - return + return FALSE if(broken) to_chat(user, "The crate appears to be broken.") - return + return FALSE if(allowed(user)) locked = !locked visible_message("The crate has been [locked ? null : "un"]locked by [user].") update_icon() + return TRUE else to_chat(user, "Access Denied.") + return FALSE /obj/structure/closet/crate/secure/AltClick(mob/user) if(Adjacent(user) && !opened) diff --git a/code/modules/awaymissions/mission_code/ruins/oldstation.dm b/code/modules/awaymissions/mission_code/ruins/oldstation.dm index 2384a3668a9..48dfa356f44 100644 --- a/code/modules/awaymissions/mission_code/ruins/oldstation.dm +++ b/code/modules/awaymissions/mission_code/ruins/oldstation.dm @@ -15,7 +15,7 @@ desc = "A perfectly retrograde identification card. Looks like it could use some flavor." icon = 'icons/obj/card.dmi' icon_state = "retro" - access = list(ACCESS_AWAY01) + access = list(ACCESS_THETA_STATION) /obj/item/card/id/away/old/sec name = "Security Officer ID" @@ -329,6 +329,103 @@ name = "bromine bottle" list_reagents = list("bromine" = 30) +/// Secure Crates: Access locked to Theta crew. Cannot be moved, destroyed, +/// emagged or EMPed because gamers can't be trusted not to game. +/obj/structure/closet/crate/secure/oldstation + anchored = TRUE + resistance_flags = INDESTRUCTIBLE + req_access = list(ACCESS_THETA_STATION) + +/// Allow Theta crew to move the crates once unlocked so they don't get in the way +/obj/structure/closet/crate/secure/oldstation/togglelock(mob/user) + if(!..()) + return + + anchored = locked + + if(anchored) + to_chat(user, "The crate reanchors itself to the ground.") + else + to_chat(user, "The crate unanchors itself from the ground.") + +/obj/structure/closet/crate/secure/oldstation/emag_act(mob/user) + // var/can_be_emaged works in mysterious ways so screw it + return + +/obj/structure/closet/crate/secure/oldstation/emp_act(severity) + return + +/obj/structure/closet/crate/secure/oldstation/security + name = "security equipment crate" + desc = "A crate containing various security equipment." + icon_state = "secgearcrate" + icon_opened = "secgearcrate_open" + icon_closed = "secgearcrate" + +/obj/structure/closet/crate/secure/oldstation/security/populate_contents() + new /obj/item/gun/energy/laser/retro/old(src) + new /obj/item/gun/energy/laser/retro/old(src) + new /obj/item/clothing/suit/armor/vest/old(src) + new /obj/item/clothing/head/helmet/old(src) + +/obj/structure/closet/crate/secure/oldstation/rechargers + name = "recharger crate" + desc = "A crate containing the components to build weapon rechargers." + +/obj/structure/closet/crate/secure/oldstation/rechargers/populate_contents() + new /obj/item/circuitboard/recharger(src) + new /obj/item/circuitboard/recharger(src) + new /obj/item/stock_parts/capacitor(src) + new /obj/item/stock_parts/capacitor(src) + new /obj/item/stack/cable_coil/ten(src) + new /obj/item/stack/sheet/metal/ten(src) + new /obj/item/screwdriver(src) + +/obj/structure/closet/crate/secure/oldstation/research + name = "research crate" + desc = "A crate containing the components necessary to perform research." + icon_state = "scisecurecrate" + icon_opened = "scisecurecrate_open" + icon_closed = "scisecurecrate" + +/obj/structure/closet/crate/secure/oldstation/research/populate_contents() + new /obj/item/circuitboard/circuit_imprinter(src) + new /obj/item/circuitboard/destructive_analyzer(src) + new /obj/item/circuitboard/protolathe(src) + new /obj/item/circuitboard/rdconsole/public(src) + new /obj/item/reagent_containers/glass/beaker(src) + new /obj/item/reagent_containers/glass/beaker(src) + new /obj/item/reagent_containers/glass/beaker(src) + new /obj/item/reagent_containers/glass/beaker(src) + new /obj/item/stock_parts/manipulator(src) + new /obj/item/stock_parts/manipulator(src) + new /obj/item/stock_parts/manipulator(src) + new /obj/item/stock_parts/manipulator(src) + new /obj/item/stock_parts/matter_bin(src) + new /obj/item/stock_parts/matter_bin(src) + new /obj/item/stock_parts/matter_bin(src) + new /obj/item/stock_parts/micro_laser(src) + new /obj/item/stock_parts/scanning_module(src) + +/obj/structure/closet/crate/secure/oldstation/surgery + name = "surgery crate" + desc = "A crate containing surgical tools and equipment." + icon_state = "medicalsecurecrate" + icon_opened = "medicalsecurecrate_open" + icon_closed = "medicalsecurecrate" + +/obj/structure/closet/crate/secure/oldstation/surgery/populate_contents() + new /obj/item/circular_saw(src) + new /obj/item/retractor(src) + new /obj/item/hemostat(src) + new /obj/item/scalpel(src) + new /obj/item/cautery(src) + new /obj/item/FixOVein(src) + new /obj/item/surgicaldrill(src) + new /obj/item/bonegel(src) + new /obj/item/bonesetter(src) + new /obj/item/stack/medical/bruise_pack/advanced(src) + ////////////////////////////// // MARK: ENGINES ////////////////////////////// diff --git a/code/modules/power/cables/cable_coil.dm b/code/modules/power/cables/cable_coil.dm index 0396b5075c4..00d9767cea9 100644 --- a/code/modules/power/cables/cable_coil.dm +++ b/code/modules/power/cables/cable_coil.dm @@ -28,7 +28,7 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe/cable_restrain usesound = 'sound/items/deconstruct.ogg' toolspeed = 1 -/obj/item/stack/cable_coil/New(location, length = MAXCOIL, paramcolor = null) +/obj/item/stack/cable_coil/New(location, length, paramcolor) . = ..() if(paramcolor) color = paramcolor @@ -351,8 +351,11 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe/cable_restrain color = pick(COLOR_RED, COLOR_BLUE, COLOR_GREEN, COLOR_PINK, COLOR_YELLOW, COLOR_CYAN) return color -/obj/item/stack/cable_coil/five/New(loc, new_amount = 5, merge = TRUE, paramcolor = null) - ..() +/obj/item/stack/cable_coil/five + amount = 5 + +/obj/item/stack/cable_coil/ten + amount = 10 /obj/item/stack/cable_coil/yellow color = COLOR_YELLOW diff --git a/icons/obj/crates.dmi b/icons/obj/crates.dmi index 73b3af8ee83..55f02e33917 100644 Binary files a/icons/obj/crates.dmi and b/icons/obj/crates.dmi differ