diff --git a/code/game/objects/items/trash_material.dm b/code/game/objects/items/trash_material.dm new file mode 100644 index 0000000000..6ba36565d6 --- /dev/null +++ b/code/game/objects/items/trash_material.dm @@ -0,0 +1,72 @@ +/obj/item/trash/material + icon = 'icons/obj/material_trash.dmi' + matter = list() + var/matter_chances = list() //List of lists: list(mat_name, chance, amount) + + +/obj/item/trash/material/Initialize() + . = ..() + if(!matter) + matter = list() + + for(var/list/L in matter_chances) + if(prob(L[2])) + matter |= L[1] + matter[L[1]] += max(0, L[3] + rand(-2,2)) + + + + +/obj/item/trash/material/metal + name = "scrap metal" + desc = "A piece of metal that can be recycled in an autolathe." + icon_state = "metal0" + matter_chances = list( + list(MAT_STEEL, 100, 15), + list(MAT_STEEL, 50, 10), + list(MAT_STEEL, 10, 20), + list(MAT_PLASTEEL, 10, 5), + list(MAT_PLASTEEL, 5, 10) + ) + +/obj/item/trash/material/metal/Initialize() + . = ..() + icon_state = "metal[rand(4)]" + + +/obj/item/trash/material/circuit + name = "burnt circuit" + desc = "A burnt circuit that can be recycled in an autolathe." + w_class = ITEMSIZE_SMALL + icon_state = "circuit0" + matter_chances = list( + list(MAT_GLASS, 100, 4), + list(MAT_GLASS, 50, 3), + list(MAT_PLASTIC, 40, 3), + list(MAT_SILVER, 18, 3), + list(MAT_GOLD, 17, 3), + list(MAT_DIAMOND, 4, 2), + ) + +/obj/item/trash/material/circuit/Initialize() + . = ..() + icon_state = "circuit[rand(3)]" + + +/obj/item/trash/material/device + name = "broken device" + desc = "A broken device that can be recycled in an autolathe." + w_class = ITEMSIZE_SMALL + icon_state = "device0" + matter_chances = list( + list(MAT_STEEL, 100, 10), + list(MAT_GLASS, 90, 7), + list(MAT_PLASTIC, 100, 10), + list(MAT_SILVER, 16, 7), + list(MAT_GOLD, 15, 5), + list(MAT_DIAMOND, 5, 2), + ) + +/obj/item/trash/material/device/Initialize() + . = ..() + icon_state = "device[rand(3)]" diff --git a/code/game/objects/structures/salvageable.dm b/code/game/objects/structures/salvageable.dm new file mode 100644 index 0000000000..2703a7eed6 --- /dev/null +++ b/code/game/objects/structures/salvageable.dm @@ -0,0 +1,366 @@ +/obj/structure/salvageable + name = "broken macninery" + desc = "Broken beyond repair, but looks like you can still salvage something from this if you had a prying implement." + icon = 'icons/obj/salvageable.dmi' + density = 1 + anchored = 1 + var/salvageable_parts = list() + +/obj/structure/salvageable/proc/dismantle() + new /obj/structure/frame (src.loc) + for(var/path in salvageable_parts) + if(prob(salvageable_parts[path])) + new path (loc) + return + +/obj/structure/salvageable/attackby(obj/item/I, mob/user) + if(I.is_crowbar()) + playsound(loc, I.usesound, 50, 1) + var/actual_time = I.toolspeed * 170 + user.visible_message( \ + "\The [user] begins salvaging from \the [src].", \ + "You start salvaging from \the [src].") + if(do_after(user, actual_time, target = src)) + user.visible_message( \ + "\The [user] has salvaged \the [src].", \ + "You salvage \the [src].") + dismantle() + qdel(src) + return TRUE + return ..() + +//Types themself, use them, but not the parent object + +/obj/structure/salvageable/machine + name = "broken machine" + icon_state = "machine1" + salvageable_parts = list( + /obj/item/weapon/stock_parts/console_screen = 80, + /obj/item/stack/cable_coil{amount = 5} = 80, + /obj/item/trash/material/circuit = 60, + /obj/item/trash/material/metal = 60, + /obj/item/weapon/stock_parts/capacitor = 40, + /obj/item/weapon/stock_parts/capacitor = 40, + /obj/item/weapon/stock_parts/scanning_module = 40, + /obj/item/weapon/stock_parts/scanning_module = 40, + /obj/item/weapon/stock_parts/manipulator = 40, + /obj/item/weapon/stock_parts/manipulator = 40, + /obj/item/weapon/stock_parts/micro_laser = 40, + /obj/item/weapon/stock_parts/micro_laser = 40, + /obj/item/weapon/stock_parts/matter_bin = 40, + /obj/item/weapon/stock_parts/matter_bin = 40, + /obj/item/weapon/stock_parts/capacitor/adv = 20, + /obj/item/weapon/stock_parts/scanning_module/adv = 20, + /obj/item/weapon/stock_parts/manipulator/nano = 20, + /obj/item/weapon/stock_parts/micro_laser/high = 20, + /obj/item/weapon/stock_parts/matter_bin/adv = 20 + ) + +/obj/structure/salvageable/machine/Initialize() + . = ..() + icon_state = "machine[rand(0,6)]" + +/obj/structure/salvageable/computer + name = "broken computer" + icon_state = "computer0" + salvageable_parts = list( + /obj/item/weapon/stock_parts/console_screen = 80, + /obj/item/stack/cable_coil{amount = 5} = 90, + /obj/item/stack/material/glass{amount = 5} = 90, + /obj/item/trash/material/circuit = 60, + /obj/item/trash/material/metal = 60, + /obj/item/weapon/stock_parts/capacitor = 60, + /obj/item/weapon/stock_parts/capacitor = 60, + /obj/item/weapon/computer_hardware/network_card = 40, + /obj/item/weapon/computer_hardware/network_card = 40, + /obj/item/weapon/computer_hardware/processor_unit = 40, + /obj/item/weapon/computer_hardware/processor_unit = 40, + /obj/item/weapon/computer_hardware/card_slot = 40, + /obj/item/weapon/computer_hardware/card_slot = 40, + /obj/item/weapon/stock_parts/capacitor/adv = 30, + /obj/item/weapon/computer_hardware/network_card/advanced = 20 + ) +obj/structure/salvageable/computer/Initialize() + . = ..() + icon_state = "computer[rand(0,7)]" + +/obj/structure/salvageable/autolathe + name = "broken autolathe" + icon_state = "autolathe" + salvageable_parts = list( + /obj/item/weapon/stock_parts/console_screen = 80, + /obj/item/stack/cable_coil{amount = 5} = 80, + /obj/item/trash/material/circuit = 60, + /obj/item/trash/material/metal = 60, + /obj/item/weapon/stock_parts/capacitor = 40, + /obj/item/weapon/stock_parts/scanning_module = 40, + /obj/item/weapon/stock_parts/manipulator = 40, + /obj/item/weapon/stock_parts/micro_laser = 40, + /obj/item/weapon/stock_parts/micro_laser = 40, + /obj/item/weapon/stock_parts/micro_laser = 40, + /obj/item/weapon/stock_parts/matter_bin = 40, + /obj/item/weapon/stock_parts/matter_bin = 40, + /obj/item/weapon/stock_parts/matter_bin = 40, + /obj/item/weapon/stock_parts/matter_bin = 40, + /obj/item/weapon/stock_parts/capacitor/adv = 20, + /obj/item/weapon/stock_parts/micro_laser/high = 20, + /obj/item/weapon/stock_parts/micro_laser/high = 20, + /obj/item/weapon/stock_parts/matter_bin/adv = 20, + /obj/item/weapon/stock_parts/matter_bin/adv = 20, + /obj/item/stack/material/steel{amount = 20} = 40, + /obj/item/stack/material/glass{amount = 20} = 40, + /obj/item/stack/material/plastic{amount = 20} = 40, + /obj/item/stack/material/plasteel{amount = 10} = 40, + /obj/item/stack/material/silver{amount = 10} = 20, + /obj/item/stack/material/gold{amount = 10} = 20, + /obj/item/stack/material/phoron{amount = 10} = 20 + ) + +/obj/structure/salvageable/implant_container + name = "old container" + icon_state = "implant_container0" + salvageable_parts = list( + /obj/item/weapon/stock_parts/console_screen = 80, + /obj/item/stack/cable_coil{amount = 5} = 80, + /obj/item/trash/material/circuit = 60, + /obj/item/trash/material/metal = 60, + /obj/item/weapon/implant/death_alarm = 15, + /obj/item/weapon/implant/explosive = 10, + /obj/item/weapon/implant/freedom = 5, + /obj/item/weapon/implant/tracking = 10, + /obj/item/weapon/implant/chem = 10, + /obj/item/weapon/implantcase = 30, + /obj/item/weapon/implanter = 30, + /obj/item/stack/material/steel{amount = 10} = 30, + /obj/item/stack/material/glass{amount = 10} = 30, + /obj/item/stack/material/silver{amount = 10} = 30 + ) + +obj/structure/salvageable/implant_container/Initialize() + . = ..() + icon_state = "implant_container[rand(0,1)]" + +/obj/structure/salvageable/data + name = "broken data storage" + icon_state = "data0" + salvageable_parts = list( + /obj/item/weapon/stock_parts/console_screen = 80, + /obj/item/stack/cable_coil{amount = 5} = 90, + /obj/item/stack/material/glass{amount = 5} = 90, + /obj/item/trash/material/circuit = 60, + /obj/item/trash/material/metal = 60, + /obj/item/weapon/computer_hardware/network_card = 40, + /obj/item/weapon/computer_hardware/network_card = 40, + /obj/item/weapon/computer_hardware/processor_unit = 40, + /obj/item/weapon/computer_hardware/processor_unit = 40, + /obj/item/weapon/computer_hardware/hard_drive = 50, + /obj/item/weapon/computer_hardware/hard_drive = 50, + /obj/item/weapon/computer_hardware/hard_drive = 50, + /obj/item/weapon/computer_hardware/hard_drive = 50, + /obj/item/weapon/computer_hardware/hard_drive = 50, + /obj/item/weapon/computer_hardware/hard_drive = 50, + /obj/item/weapon/computer_hardware/hard_drive/advanced = 30, + /obj/item/weapon/computer_hardware/hard_drive/advanced = 30, + /obj/item/weapon/computer_hardware/network_card/advanced = 20 + ) + +obj/structure/salvageable/data/Initialize() + . = ..() + icon_state = "data[rand(0,1)]" + +/obj/structure/salvageable/server + name = "broken server" + icon_state = "server0" + salvageable_parts = list( + /obj/item/weapon/stock_parts/console_screen = 80, + /obj/item/stack/cable_coil{amount = 5} = 90, + /obj/item/stack/material/glass{amount = 5} = 90, + /obj/item/trash/material/circuit = 60, + /obj/item/trash/material/metal = 60, + /obj/item/weapon/computer_hardware/network_card = 40, + /obj/item/weapon/computer_hardware/network_card = 40, + /obj/item/weapon/computer_hardware/processor_unit = 40, + /obj/item/weapon/computer_hardware/processor_unit = 40, + /obj/item/weapon/stock_parts/subspace/amplifier = 40, + /obj/item/weapon/stock_parts/subspace/amplifier = 40, + /obj/item/weapon/stock_parts/subspace/analyzer = 40, + /obj/item/weapon/stock_parts/subspace/analyzer = 40, + /obj/item/weapon/stock_parts/subspace/ansible = 40, + /obj/item/weapon/stock_parts/subspace/ansible = 40, + /obj/item/weapon/stock_parts/subspace/transmitter = 40, + /obj/item/weapon/stock_parts/subspace/transmitter = 40, + /obj/item/weapon/stock_parts/subspace/crystal = 30, + /obj/item/weapon/stock_parts/subspace/crystal = 30, + /obj/item/weapon/computer_hardware/network_card/advanced = 20 + ) + +obj/structure/salvageable/server/Initialize() + . = ..() + icon_state = "server[rand(0,1)]" + +/obj/structure/salvageable/personal + name = "personal terminal" + icon_state = "personal0" + salvageable_parts = list( + /obj/item/weapon/stock_parts/console_screen = 90, + /obj/item/stack/cable_coil{amount = 5} = 90, + /obj/item/stack/material/glass{amount = 5} = 70, + /obj/item/trash/material/circuit = 60, + /obj/item/trash/material/metal = 60, + /obj/item/weapon/computer_hardware/network_card = 60, + /obj/item/weapon/computer_hardware/network_card/advanced = 40, + /obj/item/weapon/computer_hardware/network_card/wired = 40, + /obj/item/weapon/computer_hardware/card_slot = 40, + /obj/item/weapon/computer_hardware/processor_unit = 60, + /obj/item/weapon/computer_hardware/processor_unit/small = 50, + /obj/item/weapon/computer_hardware/processor_unit/photonic = 40, + /obj/item/weapon/computer_hardware/processor_unit/photonic/small = 30, + /obj/item/weapon/computer_hardware/hard_drive = 60, + /obj/item/weapon/computer_hardware/hard_drive/advanced = 40 + ) + +obj/structure/salvageable/personal/Initialize() + . = ..() + icon_state = "personal[rand(0,12)]" + new /obj/structure/table/reinforced (loc) + +/obj/structure/salvageable/bliss + name = "strange terminal" + icon_state = "bliss0" + salvageable_parts = list( + /obj/item/weapon/stock_parts/console_screen = 90, + /obj/item/stack/cable_coil{amount = 5} = 90, + /obj/item/weapon/computer_hardware/processor_unit/photonic = 60, + /obj/item/weapon/computer_hardware/hard_drive/cluster = 50 + ) + +obj/structure/salvageable/bliss/Initialize() + . = ..() + icon_state = "bliss[rand(0,1)]" + +/obj/structure/salvageable/bliss/attackby(obj/item/I, mob/user) + if((. = ..())) + playsound(user, 'sound/machines/shutdown.ogg', 60, 1) + +////////////////// +//// ONE STAR //// +////////////////// + +/obj/structure/salvageable/machine_os + name = "broken machine" + icon_state = "os-machine" + salvageable_parts = list( + /obj/item/weapon/stock_parts/console_screen = 80, + /obj/item/stack/cable_coil{amount = 5} = 80, + /obj/item/weapon/stock_parts/capacitor = 40, + /obj/item/weapon/stock_parts/capacitor = 40, + /obj/item/weapon/stock_parts/scanning_module = 40, + /obj/item/weapon/stock_parts/scanning_module = 40, + /obj/item/weapon/stock_parts/manipulator = 40, + /obj/item/weapon/stock_parts/manipulator = 40, + /obj/item/weapon/stock_parts/micro_laser = 40, + /obj/item/weapon/stock_parts/micro_laser = 40, + /obj/item/weapon/stock_parts/matter_bin = 40, + /obj/item/weapon/stock_parts/matter_bin = 40 + ) + +/obj/structure/salvageable/computer_os + name = "broken computer" + icon_state = "os-computer" + salvageable_parts = list( + /obj/item/weapon/stock_parts/console_screen = 80, + /obj/item/stack/cable_coil{amount = 5} = 90, + /obj/item/stack/material/glass{amount = 5} = 90, + /obj/item/weapon/stock_parts/capacitor = 60, + /obj/item/weapon/stock_parts/capacitor = 60, + /obj/item/weapon/computer_hardware/processor_unit/photonic = 40, + /obj/item/weapon/computer_hardware/processor_unit/photonic = 40, + /obj/item/weapon/computer_hardware/card_slot = 40, + /obj/item/weapon/computer_hardware/card_slot = 40, + /obj/item/weapon/computer_hardware/network_card/advanced = 40 + ) + +/obj/structure/salvageable/implant_container_os + name = "old container" + icon_state = "os-container" + salvageable_parts = list( + /obj/item/weapon/stock_parts/console_screen = 80, + /obj/item/stack/cable_coil{amount = 5} = 80, + /obj/item/weapon/implant/death_alarm = 30, + /obj/item/weapon/implant/explosive = 20, + /obj/item/weapon/implant/freedom = 20, + /obj/item/weapon/implant/tracking = 30, + /obj/item/weapon/implant/chem = 30, + /obj/item/weapon/implantcase = 30, + /obj/item/weapon/implanter = 30 + ) + +/obj/structure/salvageable/data_os + name = "broken data storage" + icon_state = "os-data" + salvageable_parts = list( + /obj/item/weapon/stock_parts/console_screen = 90, + /obj/item/stack/cable_coil{amount = 5} = 90, + /obj/item/stack/material/glass{amount = 5} = 90, + /obj/item/weapon/computer_hardware/processor_unit/small = 60, + /obj/item/weapon/computer_hardware/processor_unit/photonic = 50, + /obj/item/weapon/computer_hardware/hard_drive/super = 50, + /obj/item/weapon/computer_hardware/hard_drive/super = 50, + /obj/item/weapon/computer_hardware/hard_drive/cluster = 50, + /obj/item/weapon/computer_hardware/network_card/wired = 40 + ) + +/obj/structure/salvageable/server_os + name = "broken server" + icon_state = "os-server" + salvageable_parts = list( + /obj/item/weapon/stock_parts/console_screen = 80, + /obj/item/stack/cable_coil{amount = 5} = 90, + /obj/item/stack/material/glass{amount = 5} = 90, + /obj/item/weapon/computer_hardware/network_card/wired = 40, + /obj/item/weapon/computer_hardware/network_card/wired = 40, + /obj/item/weapon/computer_hardware/processor_unit = 40, + /obj/item/weapon/computer_hardware/processor_unit/photonic = 40, + /obj/item/weapon/stock_parts/subspace/amplifier = 40, + /obj/item/weapon/stock_parts/subspace/amplifier = 40, + /obj/item/weapon/stock_parts/subspace/analyzer = 40, + /obj/item/weapon/stock_parts/subspace/analyzer = 40, + /obj/item/weapon/stock_parts/subspace/ansible = 40, + /obj/item/weapon/stock_parts/subspace/ansible = 40, + /obj/item/weapon/stock_parts/subspace/transmitter = 40, + /obj/item/weapon/stock_parts/subspace/transmitter = 40, + /obj/item/weapon/stock_parts/subspace/crystal = 30, + /obj/item/weapon/stock_parts/subspace/crystal = 30, + /obj/item/weapon/computer_hardware/network_card/wired = 20 + ) + +/obj/structure/salvageable/console_os + name = "pristine console" + desc = "Despite being in pristine condition this console doesn't respond to anything, but looks like you can still salvage something from this." + icon_state = "os_console" + salvageable_parts = list( + /obj/item/stack/cable_coil{amount = 5} = 90, + /obj/item/weapon/stock_parts/console_screen = 80, + /obj/item/weapon/stock_parts/capacitor = 60, + /obj/item/weapon/stock_parts/capacitor = 60, + /obj/item/weapon/computer_hardware/processor_unit/small = 40, + /obj/item/weapon/computer_hardware/processor_unit/photonic = 40, + /obj/item/weapon/computer_hardware/card_slot = 40, + /obj/item/weapon/computer_hardware/card_slot = 40, + /obj/item/weapon/computer_hardware/network_card/advanced = 40 + ) + +/obj/structure/salvageable/console_broken_os + name = "broken console" + icon_state = "os_console_broken" + salvageable_parts = list( + /obj/item/stack/cable_coil{amount = 5} = 90, + /obj/item/weapon/stock_parts/console_screen = 80, + /obj/item/weapon/stock_parts/capacitor = 60, + /obj/item/weapon/stock_parts/capacitor = 60, + /obj/item/weapon/computer_hardware/processor_unit = 40, + /obj/item/weapon/computer_hardware/processor_unit/photonic = 40, + /obj/item/weapon/computer_hardware/card_slot = 40, + /obj/item/weapon/computer_hardware/card_slot = 40, + /obj/item/weapon/computer_hardware/network_card/advanced = 40 + ) diff --git a/icons/obj/material_trash.dmi b/icons/obj/material_trash.dmi new file mode 100644 index 0000000000..8d4d08ec8d Binary files /dev/null and b/icons/obj/material_trash.dmi differ diff --git a/icons/obj/salvageable.dmi b/icons/obj/salvageable.dmi new file mode 100644 index 0000000000..ea2004324a Binary files /dev/null and b/icons/obj/salvageable.dmi differ diff --git a/maps/tether/submaps/aerostat/aerostat.dmm b/maps/tether/submaps/aerostat/aerostat.dmm index f7c9403135..b4d3c0d046 100644 --- a/maps/tether/submaps/aerostat/aerostat.dmm +++ b/maps/tether/submaps/aerostat/aerostat.dmm @@ -1630,10 +1630,18 @@ /obj/random/contraband, /turf/simulated/floor/plating/virgo2, /area/tether_away/aerostat/inside) +"fH" = ( +/obj/structure/salvageable/implant_container, +/turf/simulated/floor/tiled/techfloor/virgo2, +/area/tether_away/aerostat/inside) "gD" = ( /obj/tether_away_spawner/aerostat_inside, /turf/simulated/floor/plating/virgo2, /area/tether_away/aerostat/inside) +"gX" = ( +/obj/structure/salvageable/data, +/turf/simulated/floor/tiled/techfloor/virgo2, +/area/tether_away/aerostat/inside) "hd" = ( /obj/random/contraband, /turf/simulated/floor/tiled/techfloor/virgo2, @@ -1658,6 +1666,10 @@ /obj/random/firstaid, /turf/simulated/floor/tiled/techfloor/virgo2, /area/tether_away/aerostat/inside) +"yy" = ( +/obj/structure/salvageable/autolathe, +/turf/simulated/floor/tiled/techfloor/virgo2, +/area/tether_away/aerostat/inside) "AS" = ( /obj/effect/floor_decal/industrial/warning/dust{ dir = 4 @@ -1716,6 +1728,14 @@ /obj/random/contraband, /turf/simulated/floor/tiled/techfloor/virgo2, /area/tether_away/aerostat/inside) +"QE" = ( +/obj/structure/salvageable/machine, +/turf/simulated/floor/tiled/techfloor/virgo2, +/area/tether_away/aerostat/inside) +"TR" = ( +/obj/structure/salvageable/computer, +/turf/simulated/floor/tiled/techfloor/virgo2, +/area/tether_away/aerostat/inside) "UC" = ( /obj/structure/table/standard, /obj/random/powercell, @@ -9480,7 +9500,7 @@ ci bv at bK -bK +QE bK au bv @@ -11483,7 +11503,7 @@ bv cD cB bK -bK +yy bv bj aw @@ -11585,7 +11605,7 @@ aw aw bq bv -bK +gX bK cz cD @@ -11727,7 +11747,7 @@ aw aw bq bv -bK +fH bK cz cD @@ -11767,7 +11787,7 @@ bv cD cB bK -bK +TR bv bj aw @@ -11909,7 +11929,7 @@ bv cD cB bK -bK +TR bv bj aw @@ -13882,7 +13902,7 @@ ci bv Gs bK -bK +QE bK Lw bv diff --git a/maps/tether/submaps/aerostat/submaps/DecoupledEngine.dmm b/maps/tether/submaps/aerostat/submaps/DecoupledEngine.dmm index 853351c02e..322dbbf62e 100644 --- a/maps/tether/submaps/aerostat/submaps/DecoupledEngine.dmm +++ b/maps/tether/submaps/aerostat/submaps/DecoupledEngine.dmm @@ -516,6 +516,15 @@ /obj/tether_away_spawner/aerostat_surface, /turf/simulated/mineral/floor/ignore_mapgen/virgo2, /area/submap/virgo2/DecoupledEngine) +"SB" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + icon_state = "intact"; + dir = 6 + }, +/obj/effect/floor_decal/rust, +/obj/structure/salvageable/server, +/turf/simulated/floor, +/area/submap/virgo2/DecoupledEngine) (1,1,1) = {" aa @@ -1045,7 +1054,7 @@ ad ad ad aq -az +SB aM aW az diff --git a/maps/tether/submaps/aerostat/submaps/Lab1.dmm b/maps/tether/submaps/aerostat/submaps/Lab1.dmm index b0c984387e..0371b584a8 100644 --- a/maps/tether/submaps/aerostat/submaps/Lab1.dmm +++ b/maps/tether/submaps/aerostat/submaps/Lab1.dmm @@ -285,6 +285,10 @@ /obj/structure/ghost_pod/manual/lost_drone/dogborg, /turf/simulated/floor/tiled/steel_dirty, /area/submap/virgo2/Lab1) +"Z" = ( +/obj/structure/salvageable/data, +/turf/simulated/floor/tiled/steel_dirty, +/area/submap/virgo2/Lab1) (1,1,1) = {" a @@ -343,7 +347,7 @@ d V V d -h +Z F K F @@ -631,7 +635,7 @@ V d C H -h +Z h S d diff --git a/maps/tether/submaps/aerostat/submaps/Manor1.dmm b/maps/tether/submaps/aerostat/submaps/Manor1.dmm index 6d3c998571..b981549289 100644 --- a/maps/tether/submaps/aerostat/submaps/Manor1.dmm +++ b/maps/tether/submaps/aerostat/submaps/Manor1.dmm @@ -280,6 +280,7 @@ /area/submap/virgo2/Manor1) "bj" = ( /obj/effect/decal/cleanable/cobweb, +/obj/structure/salvageable/personal, /turf/simulated/floor/holofloor/wood, /area/submap/virgo2/Manor1) "bk" = ( @@ -725,6 +726,10 @@ /obj/tether_away_spawner/aerostat_surface, /turf/simulated/floor/carpet/purcarpet, /area/submap/virgo2/Manor1) +"Yk" = ( +/obj/structure/salvageable/personal, +/turf/simulated/floor/holofloor/wood, +/area/submap/virgo2/Manor1) (1,1,1) = {" cN @@ -2802,7 +2807,7 @@ ab ab ab ab -ag +Yk br bx bC @@ -2812,7 +2817,7 @@ ab ab ab ab -ag +Yk bx cm cp diff --git a/maps/tether/submaps/aerostat/submaps/Shack1.dmm b/maps/tether/submaps/aerostat/submaps/Shack1.dmm index 0921bbcb9b..9849ce8405 100644 --- a/maps/tether/submaps/aerostat/submaps/Shack1.dmm +++ b/maps/tether/submaps/aerostat/submaps/Shack1.dmm @@ -45,6 +45,12 @@ icon_state = "wood_broken5" }, /area/submap/virgo2/Shack1) +"l" = ( +/obj/effect/decal/cleanable/dirt, +/obj/random/multiple/voidsuit, +/obj/structure/salvageable/personal, +/turf/simulated/floor/wood, +/area/submap/virgo2/Shack1) "m" = ( /obj/machinery/door/airlock/external, /turf/simulated/floor/wood, @@ -157,7 +163,7 @@ a (6,1,1) = {" a b -O +l h i i diff --git a/maps/tether/submaps/aerostat/surface.dmm b/maps/tether/submaps/aerostat/surface.dmm index 9c80bcc8a9..16b987a562 100644 --- a/maps/tether/submaps/aerostat/surface.dmm +++ b/maps/tether/submaps/aerostat/surface.dmm @@ -21,6 +21,10 @@ /obj/structure/metal_edge, /turf/simulated/mineral/floor/ignore_mapgen/virgo2, /area/tether_away/aerostat/surface/explored) +"q" = ( +/obj/structure/salvageable/personal, +/turf/simulated/mineral/floor/ignore_mapgen/virgo2, +/area/tether_away/aerostat/surface/explored) "A" = ( /obj/structure/railing{ icon_state = "railing0"; @@ -8640,7 +8644,7 @@ i i i i -i +q i i i diff --git a/maps/tether/submaps/space/pois/derelict.dmm b/maps/tether/submaps/space/pois/derelict.dmm index 1c06b2c694..800bef624f 100644 --- a/maps/tether/submaps/space/pois/derelict.dmm +++ b/maps/tether/submaps/space/pois/derelict.dmm @@ -1133,6 +1133,30 @@ /obj/structure/ghost_pod/manual/lost_drone/dogborg, /turf/simulated/floor/tiled/dark, /area/tether_away/debrisfield/derelict/ai_access_port) +"dF" = ( +/obj/structure/salvageable/server, +/turf/simulated/floor/greengrid, +/area/tether_away/debrisfield/derelict/ai_chamber) +"oS" = ( +/obj/structure/salvageable/server, +/turf/simulated/floor/tiled/monotile, +/area/tether_away/debrisfield/derelict/interior) +"tR" = ( +/obj/structure/salvageable/computer, +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/derelict/interior) +"HB" = ( +/obj/structure/salvageable/implant_container, +/turf/simulated/floor/tiled/white, +/area/tether_away/debrisfield/derelict/interior) +"QE" = ( +/obj/structure/salvageable/autolathe, +/turf/simulated/floor/tiled/steel_grid, +/area/tether_away/debrisfield/derelict/interior) +"ZJ" = ( +/obj/structure/salvageable/personal, +/turf/simulated/floor/tiled/monotile, +/area/tether_away/debrisfield/derelict/interior) (1,1,1) = {" bR @@ -2217,7 +2241,7 @@ av bX aF av -aF +tR aF aF av @@ -2333,7 +2357,7 @@ av aF aF av -at +ZJ at ao aa @@ -2400,7 +2424,7 @@ aa aa aa ao -at +oS az au av @@ -2752,7 +2776,7 @@ cB cB cA dk -do +dF do dt dt @@ -2826,7 +2850,7 @@ cB cB cA dk -do +dF do du dw @@ -2900,7 +2924,7 @@ cB cB cA dk -do +dF do du dw @@ -2974,7 +2998,7 @@ cB cB cA dk -do +dF do dt dt @@ -3216,7 +3240,7 @@ aa ao au at -at +oS av aF aF @@ -3536,7 +3560,7 @@ av bk bk bk -bk +QE bk bu av @@ -3623,7 +3647,7 @@ av cc cj cb -cb +HB cb ci av diff --git a/maps/tether/submaps/space/pois/ship_med_crashed.dmm b/maps/tether/submaps/space/pois/ship_med_crashed.dmm index 5343ec1ac9..203f3b63e5 100644 --- a/maps/tether/submaps/space/pois/ship_med_crashed.dmm +++ b/maps/tether/submaps/space/pois/ship_med_crashed.dmm @@ -25,11 +25,11 @@ /area/tether_away/debrisfield/explored) "h" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/frame, +/obj/structure/salvageable/personal, /turf/simulated/shuttle/plating/airless, /area/tether_away/debrisfield/explored) "i" = ( -/obj/structure/frame, +/obj/structure/salvageable/implant_container, /turf/simulated/shuttle/floor/airless, /area/tether_away/debrisfield/explored) "j" = ( @@ -117,9 +117,7 @@ /turf/simulated/shuttle/floor/airless, /area/tether_away/debrisfield/explored) "z" = ( -/obj/structure/frame/computer{ - dir = 1 - }, +/obj/structure/salvageable/data, /turf/simulated/shuttle/floor/airless, /area/tether_away/debrisfield/explored) "A" = ( diff --git a/maps/tether/submaps/space/pois/ship_sci_overrun.dmm b/maps/tether/submaps/space/pois/ship_sci_overrun.dmm index a486f58303..9d0965fe15 100644 --- a/maps/tether/submaps/space/pois/ship_sci_overrun.dmm +++ b/maps/tether/submaps/space/pois/ship_sci_overrun.dmm @@ -388,6 +388,18 @@ /mob/living/simple_mob/slime/feral/dark_blue, /turf/simulated/floor/airless, /area/tether_away/debrisfield/explored) +"rR" = ( +/obj/structure/salvageable/autolathe, +/turf/simulated/floor/airless, +/area/tether_away/debrisfield/explored) +"Hf" = ( +/obj/structure/salvageable/machine, +/turf/simulated/floor/tiled/white/airless, +/area/tether_away/debrisfield/explored) +"Ow" = ( +/obj/structure/salvageable/implant_container, +/turf/simulated/floor/tiled/white/airless, +/area/tether_away/debrisfield/explored) (1,1,1) = {" aa @@ -531,7 +543,7 @@ aa ab as as -ac +rR ac bi bj @@ -837,7 +849,7 @@ ad ad ad ab -ad +Hf ad ad ab @@ -864,7 +876,7 @@ ad ad ad ab -ad +Hf ad aX ab @@ -1004,7 +1016,7 @@ ad ad ad ad -ad +Ow ab aa aa diff --git a/maps/tether/submaps/space/pois/ship_sup_exploded.dmm b/maps/tether/submaps/space/pois/ship_sup_exploded.dmm index 5b29b4a663..21b9216c43 100644 --- a/maps/tether/submaps/space/pois/ship_sup_exploded.dmm +++ b/maps/tether/submaps/space/pois/ship_sup_exploded.dmm @@ -261,6 +261,18 @@ "bd" = ( /turf/simulated/shuttle/wall/hard_corner, /area/tether_away/debrisfield/explored) +"jq" = ( +/obj/structure/salvageable/data, +/turf/simulated/shuttle/floor/airless, +/area/tether_away/debrisfield/explored) +"KY" = ( +/obj/structure/salvageable/server, +/turf/simulated/shuttle/floor/white/airless, +/area/tether_away/debrisfield/explored) +"Mm" = ( +/obj/structure/salvageable/bliss, +/turf/simulated/shuttle/floor/airless, +/area/tether_away/debrisfield/explored) (1,1,1) = {" aa @@ -370,11 +382,11 @@ ah ah ai aj -aj +KY ab aQ aQ -aA +jq ab ab aa @@ -405,7 +417,7 @@ ab aj aj aj -aA +jq ab as ab @@ -585,7 +597,7 @@ ab aj aj aj -aA +jq ab as ab @@ -614,7 +626,7 @@ aj ab aU aU -aA +jq ab ab aa @@ -627,7 +639,7 @@ aa aa ac ab -aA +Mm aA ag ag diff --git a/maps/tether/submaps/underdark_pois/abandonded_outpost.dmm b/maps/tether/submaps/underdark_pois/abandonded_outpost.dmm index 81eb5b5d65..bdff135e98 100644 --- a/maps/tether/submaps/underdark_pois/abandonded_outpost.dmm +++ b/maps/tether/submaps/underdark_pois/abandonded_outpost.dmm @@ -371,6 +371,14 @@ /obj/item/device/geiger, /turf/simulated/mineral/floor/ignore_cavegen/virgo3b, /area/mine/explored/underdark) +"DS" = ( +/obj/structure/salvageable/autolathe, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"Vo" = ( +/obj/structure/salvageable/computer, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) (1,1,1) = {" aa @@ -563,7 +571,7 @@ ad am ad ab -ae +DS ae ae av @@ -830,7 +838,7 @@ aC ab as ae -ae +Vo ae as aE @@ -856,7 +864,7 @@ aH ab ae ae -ae +Vo ae ae af diff --git a/maps/tether/submaps/underdark_pois/broken_engine.dmm b/maps/tether/submaps/underdark_pois/broken_engine.dmm index 7d966db623..17280d9195 100644 --- a/maps/tether/submaps/underdark_pois/broken_engine.dmm +++ b/maps/tether/submaps/underdark_pois/broken_engine.dmm @@ -34,6 +34,10 @@ /obj/effect/map_effect/interval/sound_emitter/geiger/ext, /turf/simulated/floor/tiled/steel_dirty/virgo3b, /area/mine/explored/underdark) +"I" = ( +/obj/structure/salvageable/server, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) (1,1,1) = {" a @@ -61,7 +65,7 @@ a a e d -d +I d d d @@ -105,7 +109,7 @@ a a e d -d +I d d d diff --git a/maps/tether/submaps/underdark_pois/testsite.dmm b/maps/tether/submaps/underdark_pois/testsite.dmm index 12dba62540..0598b9c133 100644 --- a/maps/tether/submaps/underdark_pois/testsite.dmm +++ b/maps/tether/submaps/underdark_pois/testsite.dmm @@ -60,6 +60,10 @@ /obj/effect/decal/remains, /turf/simulated/mineral/floor/ignore_cavegen/virgo3b, /area/mine/explored/underdark) +"B" = ( +/obj/structure/salvageable/data, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) (1,1,1) = {" a @@ -148,7 +152,7 @@ b (8,1,1) = {" b d -b +B b b b diff --git a/sound/machines/shutdown.ogg b/sound/machines/shutdown.ogg new file mode 100644 index 0000000000..c0e24827e4 Binary files /dev/null and b/sound/machines/shutdown.ogg differ diff --git a/vorestation.dme b/vorestation.dme index c5ecc958d8..3e3fe1401e 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1033,6 +1033,7 @@ #include "code\game\objects\items\tailoring.dm" #include "code\game\objects\items\toys.dm" #include "code\game\objects\items\trash.dm" +#include "code\game\objects\items\trash_material.dm" #include "code\game\objects\items\trash_vr.dm" #include "code\game\objects\items\devices\advnifrepair.dm" #include "code\game\objects\items\devices\ai_detector.dm" @@ -1316,6 +1317,7 @@ #include "code\game\objects\structures\plasticflaps.dm" #include "code\game\objects\structures\railing.dm" #include "code\game\objects\structures\safe.dm" +#include "code\game\objects\structures\salvageable.dm" #include "code\game\objects\structures\signs.dm" #include "code\game\objects\structures\simple_doors.dm" #include "code\game\objects\structures\snowman.dm"