diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 1e27229709..c00e2688f1 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -266,6 +266,8 @@ This prevents nesting levels from getting deeper then they need to be. * Changes to the `/config` tree must be made in a way that allows for updating server deployments while preserving previous behaviour. This is due to the fact that the config tree is to be considered owned by the user and not necessarily updated alongside the remainder of the code. The code to preserve previous behaviour may be removed at some point in the future given the OK by maintainers. +* The dlls section of tgs3.json is not designed for dlls that are purely `call()()`ed since those handles are closed between world reboots. Only put in dlls that may have to exist between world reboots. + #### Enforced not enforced The following coding styles are not only not enforced at all, but are generally frowned upon to change for little to no reason: diff --git a/.gitignore b/.gitignore index b1cb02811c..60e485675c 100644 --- a/.gitignore +++ b/.gitignore @@ -194,7 +194,8 @@ Temporary Items #Visual studio stuff *.vscode/* -tools/MapAtmosFixer/MapAtmosFixer/obj/x86/Debug/MapAtmosFixer.csproj.CoreCompileInputs.cache +tools/MapAtmosFixer/MapAtmosFixer/obj/* +tools/MapAtmosFixer/MapAtmosFixer/bin/* #GitHub Atom .atom-build.json diff --git a/.travis.yml b/.travis.yml index 60a2a7e7b4..6581931961 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,8 +21,6 @@ cache: directories: - $HOME/BYOND-${BYOND_MAJOR}.${BYOND_MINOR} - tgui/node_modules - - $HOME/.rustup - - $HOME/.cargo addons: diff --git a/TGS3.json b/TGS3.json index 9b7aef9599..2a2b80cf95 100644 --- a/TGS3.json +++ b/TGS3.json @@ -17,7 +17,6 @@ "data" ], "dlls": [ - "libmariadb.dll", - "rust_g.dll" + "libmariadb.dll" ] } diff --git a/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm b/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm index 56bc9a0548..e08776fd4a 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm @@ -54,7 +54,7 @@ /turf/open/floor/plating, /area/ruin/powered/beach) "an" = ( -/obj/item/device/flashlight/lantern, +/obj/item/flashlight/lantern, /obj/machinery/light/small{ dir = 1 }, @@ -207,7 +207,7 @@ /area/ruin/powered/beach) "aQ" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/wood, /area/ruin/powered/beach) "aR" = ( @@ -341,7 +341,7 @@ dir = 8 }, /obj/structure/window/reinforced, -/obj/item/device/megaphone, +/obj/item/megaphone, /turf/open/floor/wood, /area/ruin/powered/beach) "bH" = ( @@ -382,7 +382,7 @@ /turf/open/floor/plating/beach/sand, /area/ruin/powered/beach) "bO" = ( -/obj/item/device/camera, +/obj/item/camera, /turf/open/floor/plating/beach/sand, /area/ruin/powered/beach) "bP" = ( diff --git a/_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm b/_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm index 7890b3b258..c9712b6164 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm @@ -358,7 +358,7 @@ invisibility = 101 }, /obj/structure/table, -/obj/item/device/flashlight/lamp/bananalamp, +/obj/item/flashlight/lamp/bananalamp, /turf/open/indestructible{ icon_state = "white" }, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm index b75d7c5233..73f7a7729a 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm @@ -37,12 +37,12 @@ /area/ruin/powered/animal_hospital) "aj" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/cmo, /area/ruin/powered/animal_hospital) "ak" = ( /obj/structure/table/wood, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/item/pen/blue, /turf/open/floor/plasteel/cmo, /area/ruin/powered/animal_hospital) @@ -281,7 +281,7 @@ /area/ruin/powered/animal_hospital) "bb" = ( /obj/structure/table/reinforced, -/obj/item/device/laser_pointer, +/obj/item/laser_pointer, /obj/machinery/light{ dir = 4 }, @@ -335,9 +335,9 @@ /area/ruin/powered/animal_hospital) "bk" = ( /obj/structure/reagent_dispensers/fueltank, -/obj/item/device/flashlight/glowstick/blue, -/obj/item/device/flashlight/glowstick/blue, -/obj/item/device/flashlight/glowstick/blue, +/obj/item/flashlight/glowstick/blue, +/obj/item/flashlight/glowstick/blue, +/obj/item/flashlight/glowstick/blue, /turf/open/floor/plating, /area/ruin/powered/animal_hospital) "bl" = ( @@ -435,7 +435,7 @@ /area/ruin/powered/animal_hospital) "by" = ( /obj/structure/table/reinforced, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/blue/side{ dir = 8 }, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm index b1830b2ad4..0bcddfcbe7 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm @@ -107,7 +107,7 @@ /obj/structure/stone_tile/cracked{ dir = 1 }, -/obj/item/device/flashlight/lantern, +/obj/item/flashlight/lantern, /turf/open/indestructible/boss/air, /area/ruin/unpowered/ash_walkers) "av" = ( @@ -152,7 +152,7 @@ /obj/structure/stone_tile/cracked{ dir = 8 }, -/obj/item/device/flashlight/lantern, +/obj/item/flashlight/lantern, /turf/open/indestructible/boss/air, /area/ruin/unpowered/ash_walkers) "az" = ( @@ -165,7 +165,7 @@ /obj/structure/stone_tile/cracked{ dir = 8 }, -/obj/item/device/malf_upgrade, +/obj/item/malf_upgrade, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) "aB" = ( @@ -479,10 +479,10 @@ /area/ruin/unpowered/ash_walkers) "bn" = ( /obj/structure/closet/crate/radiation, -/obj/item/device/flashlight/lantern, -/obj/item/device/flashlight/lantern, -/obj/item/device/flashlight/lantern, -/obj/item/device/flashlight/flare, +/obj/item/flashlight/lantern, +/obj/item/flashlight/lantern, +/obj/item/flashlight/lantern, +/obj/item/flashlight/flare, /obj/structure/stone_tile/block/cracked{ dir = 8 }, @@ -510,7 +510,7 @@ /obj/structure/stone_tile{ dir = 4 }, -/obj/item/device/flashlight/lantern, +/obj/item/flashlight/lantern, /turf/open/indestructible/boss/air, /area/ruin/unpowered/ash_walkers) "bq" = ( @@ -549,7 +549,7 @@ /obj/structure/stone_tile/cracked{ dir = 4 }, -/obj/item/device/flashlight/lantern, +/obj/item/flashlight/lantern, /turf/open/indestructible/boss/air, /area/ruin/unpowered/ash_walkers) "bv" = ( @@ -557,9 +557,9 @@ dir = 8 }, /obj/structure/closet/crate, -/obj/item/device/flashlight/lantern, -/obj/item/device/flashlight/lantern, -/obj/item/device/flashlight/lantern, +/obj/item/flashlight/lantern, +/obj/item/flashlight/lantern, +/obj/item/flashlight/lantern, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) "bw" = ( @@ -591,9 +591,9 @@ dir = 8 }, /obj/structure/stone_tile/cracked, -/obj/item/device/flashlight/lantern, -/obj/item/device/flashlight/lantern, -/obj/item/device/flashlight/lantern, +/obj/item/flashlight/lantern, +/obj/item/flashlight/lantern, +/obj/item/flashlight/lantern, /turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) "bz" = ( @@ -1015,7 +1015,7 @@ /obj/structure/stone_tile/block/cracked{ dir = 4 }, -/obj/item/device/flashlight/lantern, +/obj/item/flashlight/lantern, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) "cE" = ( @@ -1033,7 +1033,7 @@ /obj/structure/table/wood, /obj/item/twohanded/spear, /obj/item/storage/belt, -/turf/open/indestructible/boss/air, +/turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) "cI" = ( /obj/structure/stone_tile/cracked{ @@ -1075,7 +1075,7 @@ /obj/structure/table/wood, /obj/item/twohanded/spear, /obj/item/scythe, -/turf/open/indestructible/boss/air, +/turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) "cM" = ( /obj/structure/stone_tile/block{ @@ -1329,7 +1329,7 @@ /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "dx" = ( -/obj/item/device/flashlight/lantern, +/obj/item/flashlight/lantern, /obj/structure/stone_tile/center, /obj/effect/mapping_helpers/no_lava, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm index eee442825e..7c166a1a56 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm @@ -60,7 +60,7 @@ color = "#ff0000"; used = 1 }, -/obj/item/device/cult_shift, +/obj/item/cult_shift, /obj/effect/decal/remains/human, /obj/item/melee/cultblade/dagger, /obj/effect/step_trigger/sound_effect{ diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm index 7c1bda845e..a87bdf704b 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm @@ -15,8 +15,8 @@ /obj/item/pickaxe, /obj/item/storage/bag/ore, /obj/item/storage/bag/ore, -/obj/item/device/mining_scanner, -/obj/item/device/flashlight/lantern, +/obj/item/mining_scanner, +/obj/item/flashlight/lantern, /obj/item/card/id/mining, /turf/open/floor/plating, /area/ruin/powered/golem_ship) @@ -28,8 +28,8 @@ /obj/item/pickaxe, /obj/item/storage/bag/ore, /obj/item/storage/bag/ore, -/obj/item/device/mining_scanner, -/obj/item/device/flashlight/lantern, +/obj/item/mining_scanner, +/obj/item/flashlight/lantern, /obj/item/card/id/mining, /turf/open/floor/plating, /area/ruin/powered/golem_ship) diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_survivalpod.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_survivalpod.dmm index 22f1de575e..7ea0145f94 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_survivalpod.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_survivalpod.dmm @@ -30,7 +30,7 @@ /turf/open/floor/pod/dark, /area/ruin/powered) "h" = ( -/obj/item/device/gps/computer, +/obj/item/gps/computer, /obj/structure/tubes, /turf/open/floor/pod/dark, /area/ruin/powered) diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_swarmer_crash.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_swarmer_crash.dmm index 513605014d..e04a7106d5 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_swarmer_crash.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_swarmer_crash.dmm @@ -9,7 +9,9 @@ /turf/closed/wall/mineral/plastitanium, /area/ruin/unpowered) "d" = ( -/turf/open/floor/mineral/plastitanium, +/turf/open/floor/mineral/plastitanium{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, /area/ruin/unpowered) "e" = ( /obj/structure/shuttle/engine/propulsion{ @@ -19,7 +21,9 @@ /area/ruin/unpowered) "f" = ( /mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon, -/turf/open/floor/mineral/plastitanium, +/turf/open/floor/mineral/plastitanium{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, /area/ruin/unpowered) (1,1,1) = {" diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm index 8fbe0f7803..13ee4fa135 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm @@ -305,24 +305,24 @@ pixel_x = 1; pixel_y = -1 }, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = -5; pixel_y = 5 }, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = -2; pixel_y = 2 }, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = 1; pixel_y = -1 }, -/obj/item/device/radio/headset/syndicate/alt{ +/obj/item/radio/headset/syndicate/alt{ pixel_x = -3; pixel_y = 3 }, -/obj/item/device/radio/headset/syndicate/alt, -/obj/item/device/radio/headset/syndicate/alt{ +/obj/item/radio/headset/syndicate/alt, +/obj/item/radio/headset/syndicate/alt{ pixel_x = 3; pixel_y = -3 }, @@ -512,11 +512,11 @@ /area/ruin/unpowered/syndicate_lava_base/cargo) "ee" = ( /obj/structure/rack, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = -3; pixel_y = 3 }, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/brown{ dir = 1 @@ -649,27 +649,27 @@ /area/ruin/unpowered/syndicate_lava_base/testlab) "eq" = ( /obj/structure/table/reinforced, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/voice, -/obj/item/device/assembly/voice, -/obj/item/device/assembly/voice, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/signaler, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/voice, +/obj/item/assembly/voice, +/obj/item/assembly/voice, +/obj/item/assembly/signaler, +/obj/item/assembly/signaler, +/obj/item/assembly/signaler, /obj/item/screwdriver/nuke, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -730,27 +730,27 @@ pixel_y = 3 }, /obj/item/stack/cable_coil/white, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = -3; pixel_y = -3 }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = -3; pixel_y = -3 }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = -3; pixel_y = -3 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = 3; pixel_y = 3 }, @@ -1018,7 +1018,7 @@ /obj/machinery/light/small, /obj/structure/table/reinforced, /obj/item/restraints/handcuffs, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/effect/decal/cleanable/dirt, /obj/item/storage/box/monkeycubes{ pixel_x = 4; @@ -1244,7 +1244,7 @@ pixel_y = 28 }, /obj/item/clothing/gloves/color/latex, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /obj/item/clothing/glasses/hud/health, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, @@ -1443,10 +1443,10 @@ /obj/item/clothing/head/soft{ pixel_x = -8 }, -/obj/item/device/radio{ +/obj/item/radio{ pixel_x = 5 }, -/obj/item/device/radio{ +/obj/item/radio{ pixel_x = 5 }, /turf/open/floor/plasteel/brown{ @@ -2480,7 +2480,7 @@ }, /obj/structure/closet/emcloset/anchored, /obj/item/tank/internals/emergency_oxygen/engi, -/obj/item/device/flashlight/seclite, +/obj/item/flashlight/seclite, /obj/item/clothing/mask/gas, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -4910,7 +4910,7 @@ }, /obj/structure/closet/emcloset/anchored, /obj/item/tank/internals/emergency_oxygen/engi, -/obj/item/device/flashlight/seclite, +/obj/item/flashlight/seclite, /obj/item/clothing/mask/gas, /turf/open/floor/plating, /area/ruin/unpowered/syndicate_lava_base/arrivals) @@ -5096,7 +5096,7 @@ "mR" = ( /obj/structure/table, /obj/item/storage/toolbox/syndicate, -/obj/item/device/multitool, +/obj/item/multitool, /obj/machinery/button/door{ id = "lavalandsyndi_telecomms"; name = "Telecomms Blast Door Control"; @@ -5133,7 +5133,7 @@ pixel_x = 2; pixel_y = -3 }, -/obj/item/device/multitool, +/obj/item/multitool, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/red/side{ dir = 8 @@ -5895,7 +5895,7 @@ /area/ruin/unpowered/syndicate_lava_base/telecomms) "oj" = ( /obj/structure/table/reinforced, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 1; name = "Syndicate Radio Intercom" }, @@ -5929,7 +5929,7 @@ /obj/item/clothing/suit/space/syndicate, /obj/item/clothing/mask/gas/syndicate, /obj/item/clothing/head/helmet/space/syndicate, -/obj/item/device/mining_scanner, +/obj/item/mining_scanner, /obj/item/pickaxe, /turf/open/floor/mineral/plastitanium, /area/ruin/unpowered/syndicate_lava_base/arrivals) diff --git a/_maps/RandomRuins/SpaceRuins/DJstation.dmm b/_maps/RandomRuins/SpaceRuins/DJstation.dmm index d66c98156d..e1f451df09 100644 --- a/_maps/RandomRuins/SpaceRuins/DJstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/DJstation.dmm @@ -39,7 +39,7 @@ /turf/open/floor/plating, /area/ruin/space/djstation) "ak" = ( -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plating, /area/ruin/space/djstation) "al" = ( @@ -158,7 +158,7 @@ /area/ruin/space/djstation) "aE" = ( /obj/structure/table, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/grimy, /area/ruin/space/djstation) "aF" = ( @@ -176,7 +176,7 @@ /area/ruin/space/djstation) "aH" = ( /obj/structure/table, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; dir = 8; freerange = 1; @@ -226,7 +226,7 @@ /area/ruin/space/djstation) "aQ" = ( /obj/structure/table, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; dir = 8; freerange = 1; diff --git a/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm b/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm index 2f16ae49c5..2ccc6969bd 100644 --- a/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm +++ b/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm @@ -561,7 +561,7 @@ /turf/open/floor/plasteel/airless, /area/ruin/space/derelict/bridge/ai_upload) "bQ" = ( -/obj/item/device/aicard, +/obj/item/aicard, /turf/open/floor/plasteel/airless{ icon_state = "damaged2" }, @@ -1386,7 +1386,7 @@ /area/ruin/space/derelict/bridge/access) "eC" = ( /obj/structure/table, -/obj/item/device/paicard, +/obj/item/paicard, /turf/open/floor/plasteel, /area/ruin/space/derelict/bridge) "eD" = ( @@ -1677,7 +1677,7 @@ /area/ruin/space/derelict/bridge/access) "fy" = ( /obj/structure/table, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel/airless, /area/ruin/space/derelict/bridge/access) "fz" = ( @@ -3121,7 +3121,7 @@ /turf/open/floor/plasteel/airless, /area/ruin/space/derelict/hallway/primary) "kq" = ( -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, @@ -3494,7 +3494,7 @@ /area/ruin/space/derelict/hallway/primary) "lI" = ( /obj/structure/table, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /turf/open/floor/plasteel/airless, /area/ruin/space/derelict/hallway/primary) "lJ" = ( diff --git a/_maps/RandomRuins/SpaceRuins/abandonedteleporter.dmm b/_maps/RandomRuins/SpaceRuins/abandonedteleporter.dmm index c8e9d3bb87..1681cf1e55 100644 --- a/_maps/RandomRuins/SpaceRuins/abandonedteleporter.dmm +++ b/_maps/RandomRuins/SpaceRuins/abandonedteleporter.dmm @@ -72,12 +72,12 @@ /area/ruin/space/abandoned_tele) "q" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/device/flashlight, +/obj/item/flashlight, /turf/open/floor/plating/airless, /area/ruin/space/abandoned_tele) "r" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plating/airless, /area/ruin/space/abandoned_tele) "s" = ( @@ -110,8 +110,8 @@ /area/ruin/space/abandoned_tele) "z" = ( /obj/structure/closet/crate, -/obj/item/device/aicard, -/obj/item/device/multitool, +/obj/item/aicard, +/obj/item/multitool, /obj/item/weldingtool, /obj/item/wrench, /obj/item/circuitboard/computer/teleporter, diff --git a/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm b/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm index 956664da1e..5348f3f385 100644 --- a/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm +++ b/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm @@ -394,7 +394,7 @@ "aY" = ( /obj/structure/table/reinforced, /obj/item/gun/energy/temperature{ - pin = /obj/item/device/firing_pin + pin = /obj/item/firing_pin }, /turf/open/floor/plasteel{ icon_state = "dark" diff --git a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm index 17f44e4dee..037b961591 100644 --- a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm +++ b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm @@ -232,7 +232,7 @@ /obj/structure/closet/crate/radiation, /obj/item/clothing/head/radiation, /obj/item/clothing/suit/radiation, -/obj/item/device/geiger_counter, +/obj/item/geiger_counter, /turf/open/floor/mineral/titanium/yellow, /area/ruin/space/has_grav/derelictoutpost/dockedship) "aR" = ( @@ -717,7 +717,7 @@ /turf/open/floor/plasteel, /area/ruin/space/has_grav/derelictoutpost) "bY" = ( -/obj/item/device/gps{ +/obj/item/gps{ gpstag = "Distress Signal" }, /turf/open/floor/plasteel, @@ -2045,14 +2045,14 @@ /obj/structure/closet/crate{ icon_state = "crateopen" }, -/obj/item/device/paicard, +/obj/item/paicard, /obj/machinery/light, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/ruin/space/has_grav/derelictoutpost/cargostorage) "eC" = ( /obj/structure/closet/crate, -/obj/item/device/pda/clear, +/obj/item/pda/clear, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/ruin/space/has_grav/derelictoutpost/cargostorage) @@ -2082,7 +2082,7 @@ /area/ruin/space/has_grav/derelictoutpost/cargostorage) "eH" = ( /obj/structure/closet/crate/engineering, -/obj/item/device/multitool, +/obj/item/multitool, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/ruin/space/has_grav/derelictoutpost/cargostorage) diff --git a/_maps/RandomRuins/SpaceRuins/bus.dmm b/_maps/RandomRuins/SpaceRuins/bus.dmm index 43c6f283f3..be05a8d1d6 100644 --- a/_maps/RandomRuins/SpaceRuins/bus.dmm +++ b/_maps/RandomRuins/SpaceRuins/bus.dmm @@ -128,7 +128,7 @@ /area/ruin/unpowered/no_grav) "av" = ( /obj/structure/table, -/obj/item/device/paicard, +/obj/item/paicard, /turf/open/floor/plating/asteroid/airless, /area/ruin/unpowered/no_grav) "aw" = ( diff --git a/_maps/RandomRuins/SpaceRuins/caravanambush.dmm b/_maps/RandomRuins/SpaceRuins/caravanambush.dmm index 750287f3a2..da34a5bf3b 100644 --- a/_maps/RandomRuins/SpaceRuins/caravanambush.dmm +++ b/_maps/RandomRuins/SpaceRuins/caravanambush.dmm @@ -165,7 +165,7 @@ "aw" = ( /obj/structure/rack, /obj/item/storage/toolbox/mechanical, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/darkblue/side{ dir = 4; @@ -1351,7 +1351,7 @@ amount = 10 }, /obj/item/storage/toolbox/mechanical, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = 3; pixel_y = 3 }, @@ -1840,7 +1840,7 @@ /obj/item/folder/yellow{ pixel_x = -6 }, -/obj/item/device/gps{ +/obj/item/gps{ gpstag = "Distress Signal" }, /turf/open/floor/plasteel/darkblue/side{ @@ -1872,8 +1872,8 @@ /obj/item/storage/toolbox/electrical, /obj/item/clothing/gloves/color/yellow, /obj/item/clothing/gloves/color/yellow, -/obj/item/device/multitool, -/obj/item/device/multitool, +/obj/item/multitool, +/obj/item/multitool, /turf/open/floor/plasteel/airless/dark, /area/shuttle/caravan/freighter3) "gw" = ( @@ -2279,7 +2279,7 @@ /obj/structure/table, /obj/item/stack/packageWrap, /obj/item/crowbar, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = 1; pixel_y = 5 }, @@ -2305,7 +2305,7 @@ "hK" = ( /obj/structure/table, /obj/item/storage/toolbox/mechanical, -/obj/item/device/multitool, +/obj/item/multitool, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/airless, @@ -2318,7 +2318,7 @@ "hN" = ( /obj/structure/rack, /obj/item/tank/internals/oxygen, -/obj/item/device/radio, +/obj/item/radio, /obj/item/clothing/mask/gas, /turf/open/floor/plasteel/blue/corner{ dir = 4; @@ -3171,7 +3171,7 @@ /obj/structure/rack, /obj/effect/decal/cleanable/dirt, /obj/item/tank/internals/oxygen, -/obj/item/device/radio, +/obj/item/radio, /obj/item/clothing/mask/gas, /turf/open/floor/plasteel/airless{ icon_state = "damaged5" @@ -3869,7 +3869,7 @@ "lx" = ( /obj/structure/table/reinforced, /obj/item/storage/firstaid/regular, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/darkred/side{ dir = 5 diff --git a/_maps/RandomRuins/SpaceRuins/cloning_facility.dmm b/_maps/RandomRuins/SpaceRuins/cloning_facility.dmm index 87f890e0d5..285f4b3f98 100644 --- a/_maps/RandomRuins/SpaceRuins/cloning_facility.dmm +++ b/_maps/RandomRuins/SpaceRuins/cloning_facility.dmm @@ -24,7 +24,7 @@ /area/ruin/space/has_grav/powered/ancient_shuttle) "g" = ( /obj/structure/table, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/effect/decal/cleanable/cobweb, /turf/open/floor/plasteel/whiteblue, /area/ruin/space/has_grav/powered/ancient_shuttle) @@ -225,7 +225,7 @@ "R" = ( /obj/structure/table/glass, /obj/item/storage/firstaid/regular, -/obj/item/device/healthanalyzer{ +/obj/item/healthanalyzer{ desc = "A prototype hand-held body scanner able to distinguish vital signs of the subject."; name = "prototype health analyzer" }, diff --git a/_maps/RandomRuins/SpaceRuins/crashedship.dmm b/_maps/RandomRuins/SpaceRuins/crashedship.dmm index 788c925772..c6bda02835 100644 --- a/_maps/RandomRuins/SpaceRuins/crashedship.dmm +++ b/_maps/RandomRuins/SpaceRuins/crashedship.dmm @@ -456,7 +456,7 @@ /area/awaymission/BMPship/Aft) "bP" = ( /obj/structure/closet/crate, -/obj/item/device/analyzer, +/obj/item/analyzer, /obj/item/stack/spacecash/c10, /obj/effect/turf_decal/stripes/line{ dir = 2 @@ -905,7 +905,7 @@ /turf/open/floor/plasteel, /area/awaymission/BMPship/Aft) "dq" = ( -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/engine, /area/awaymission/BMPship/Aft) "dr" = ( @@ -1803,7 +1803,7 @@ /turf/closed/mineral/random, /area/awaymission/BMPship) "gc" = ( -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plating/airless{ icon_state = "platingdmg2" }, diff --git a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm index 20f28906e1..e3317ad64e 100644 --- a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm +++ b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm @@ -49,9 +49,8 @@ /area/ruin/space/has_grav/deepstorage/crusher) "an" = ( /obj/machinery/conveyor{ - dir = 1; - id = "bunkerrecycle"; - movedir = 2 + dir = 2; + id = "bunkerrecycle" }, /turf/open/floor/plating, /area/ruin/space/has_grav/deepstorage/crusher) @@ -194,7 +193,7 @@ /obj/item/storage/box/zipties, /obj/item/switchblade, /obj/effect/turf_decal/delivery, -/obj/item/device/gps{ +/obj/item/gps{ gpstag = "DEEP" }, /turf/open/floor/plasteel/floorgrime, @@ -283,15 +282,15 @@ /area/ruin/space/has_grav/deepstorage/hydroponics) "aR" = ( /obj/structure/closet/cardboard, -/obj/item/device/flashlight/flare, -/obj/item/device/flashlight/flare, -/obj/item/device/flashlight/flare, -/obj/item/device/flashlight/flare, -/obj/item/device/flashlight/flare, -/obj/item/device/flashlight/flare, -/obj/item/device/flashlight, -/obj/item/device/flashlight, -/obj/item/device/flashlight, +/obj/item/flashlight/flare, +/obj/item/flashlight/flare, +/obj/item/flashlight/flare, +/obj/item/flashlight/flare, +/obj/item/flashlight/flare, +/obj/item/flashlight/flare, +/obj/item/flashlight, +/obj/item/flashlight, +/obj/item/flashlight, /obj/item/shovel, /obj/item/pickaxe/drill, /obj/item/pickaxe/drill, @@ -301,12 +300,12 @@ /area/ruin/space/has_grav/deepstorage/storage) "aS" = ( /obj/structure/closet/cardboard, -/obj/item/device/flashlight/lantern, -/obj/item/device/flashlight/lantern, -/obj/item/device/flashlight/lantern, -/obj/item/device/tape/random, -/obj/item/device/tape/random, -/obj/item/device/tape/random, +/obj/item/flashlight/lantern, +/obj/item/flashlight/lantern, +/obj/item/flashlight/lantern, +/obj/item/tape/random, +/obj/item/tape/random, +/obj/item/tape/random, /obj/item/storage/box/rxglasses, /obj/item/extinguisher, /obj/item/extinguisher, @@ -1163,8 +1162,8 @@ /area/ruin/space/has_grav/deepstorage/armory) "db" = ( /obj/structure/table, -/obj/item/device/healthanalyzer, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, +/obj/item/healthanalyzer, /obj/item/stack/medical/gauze, /obj/item/stack/medical/gauze, /turf/open/floor/plasteel/dark, @@ -1476,11 +1475,11 @@ /area/ruin/space/has_grav/deepstorage/armory) "dP" = ( /obj/structure/table, -/obj/item/device/radio{ +/obj/item/radio{ pixel_x = -4 }, -/obj/item/device/radio, -/obj/item/device/radio{ +/obj/item/radio, +/obj/item/radio{ pixel_x = 4 }, /obj/machinery/airalarm{ @@ -1669,7 +1668,7 @@ /area/ruin/space/has_grav/deepstorage/dorm) "ej" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, @@ -1972,18 +1971,18 @@ "eP" = ( /obj/structure/table, /obj/item/storage/toolbox/drone, -/obj/item/device/flashlight, -/obj/item/device/flashlight, -/obj/item/device/flashlight/flare, -/obj/item/device/flashlight/flare, -/obj/item/device/flashlight/flare, -/obj/item/device/flashlight/flare{ +/obj/item/flashlight, +/obj/item/flashlight, +/obj/item/flashlight/flare, +/obj/item/flashlight/flare, +/obj/item/flashlight/flare, +/obj/item/flashlight/flare{ pixel_y = 6 }, -/obj/item/device/flashlight/flare{ +/obj/item/flashlight/flare{ pixel_y = 6 }, -/obj/item/device/flashlight/flare{ +/obj/item/flashlight/flare{ pixel_y = 6 }, /turf/open/floor/plasteel/dark, @@ -2985,6 +2984,20 @@ /obj/effect/baseturf_helper/asteroid/airless, /turf/closed/wall/mineral/iron, /area/ruin/space/has_grav/deepstorage/power) +"rz" = ( +/obj/machinery/conveyor{ + dir = 6; + id = "bunkerrecycle" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/deepstorage/crusher) +"Bb" = ( +/obj/machinery/conveyor{ + dir = 10; + id = "bunkerrecycle" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/deepstorage/crusher) (1,1,1) = {" aa @@ -4610,9 +4623,9 @@ ab ab ab ag +rz an -an -an +Bb aQ bh bB diff --git a/_maps/RandomRuins/SpaceRuins/intactemptyship.dmm b/_maps/RandomRuins/SpaceRuins/intactemptyship.dmm index c2996c55e6..9bb394663a 100644 --- a/_maps/RandomRuins/SpaceRuins/intactemptyship.dmm +++ b/_maps/RandomRuins/SpaceRuins/intactemptyship.dmm @@ -42,7 +42,7 @@ /area/ruin/space/has_grav/powered/authorship) "i" = ( /obj/structure/table, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/light{ dir = 1 }, diff --git a/_maps/RandomRuins/SpaceRuins/listeningstation.dmm b/_maps/RandomRuins/SpaceRuins/listeningstation.dmm index 6850cc2515..b172e24f29 100644 --- a/_maps/RandomRuins/SpaceRuins/listeningstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/listeningstation.dmm @@ -55,7 +55,7 @@ /obj/machinery/newscaster{ pixel_y = 32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 1; name = "Syndicate Radio Intercom"; pixel_x = -30 @@ -87,7 +87,7 @@ "al" = ( /obj/structure/table, /obj/item/storage/toolbox/syndicate, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_y = -12 }, /obj/effect/decal/cleanable/dirt, @@ -278,8 +278,8 @@ /obj/structure/rack{ dir = 8 }, -/obj/item/device/multitool, -/obj/item/device/radio/headset/syndicate/alt, +/obj/item/multitool, +/obj/item/radio/headset/syndicate/alt, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/listeningstation) @@ -288,7 +288,7 @@ dir = 8; layer = 2.9 }, -/obj/item/device/mining_scanner, +/obj/item/mining_scanner, /obj/item/pickaxe, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, diff --git a/_maps/RandomRuins/SpaceRuins/mrow_thats_right.dmm b/_maps/RandomRuins/SpaceRuins/mrow_thats_right.dmm index e59f36a033..4ed628e2b8 100644 --- a/_maps/RandomRuins/SpaceRuins/mrow_thats_right.dmm +++ b/_maps/RandomRuins/SpaceRuins/mrow_thats_right.dmm @@ -309,7 +309,7 @@ /area/ruin/space/has_grav/powered/cat_man) "ba" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/carpet, /area/ruin/space/has_grav/powered/cat_man) "bb" = ( @@ -317,7 +317,7 @@ dir = 4 }, /obj/structure/closet/cabinet, -/obj/item/device/gps{ +/obj/item/gps{ gpstag = "kitty" }, /turf/open/floor/carpet, diff --git a/_maps/RandomRuins/SpaceRuins/oldAIsat.dmm b/_maps/RandomRuins/SpaceRuins/oldAIsat.dmm index eff006f061..299d1769b0 100644 --- a/_maps/RandomRuins/SpaceRuins/oldAIsat.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldAIsat.dmm @@ -411,7 +411,7 @@ /area/template_noop) "bt" = ( /obj/structure/table, -/obj/item/device/radio/off, +/obj/item/radio/off, /turf/open/floor/plasteel/airless, /area/tcommsat/chamber) "bu" = ( @@ -556,7 +556,7 @@ /turf/open/floor/plasteel/airless, /area/tcommsat/chamber) "bR" = ( -/obj/item/device/radio/off, +/obj/item/radio/off, /turf/open/floor/plasteel/airless/dark, /area/tcommsat/chamber) "bS" = ( @@ -580,7 +580,7 @@ /area/tcommsat/chamber) "bV" = ( /obj/structure/table, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plating/airless, /area/tcommsat/chamber) "bW" = ( @@ -606,7 +606,7 @@ /area/tcommsat/chamber) "ca" = ( /obj/effect/decal/cleanable/blood, -/obj/item/device/assembly/signaler, +/obj/item/assembly/signaler, /turf/open/floor/plasteel/airless/dark, /area/tcommsat/chamber) "cb" = ( @@ -629,7 +629,7 @@ /area/tcommsat/chamber) "ce" = ( /obj/structure/table, -/obj/item/device/electropack, +/obj/item/electropack, /turf/open/floor/plating/airless, /area/tcommsat/chamber) "cf" = ( diff --git a/_maps/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/RandomRuins/SpaceRuins/oldstation.dmm index 4052676a3b..2690a58816 100644 --- a/_maps/RandomRuins/SpaceRuins/oldstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldstation.dmm @@ -284,7 +284,7 @@ "aW" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, -/obj/item/device/megaphone, +/obj/item/megaphone, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/ancientstation/comm) "aX" = ( @@ -1648,7 +1648,7 @@ "eV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel/red/side{ dir = 4 }, @@ -3191,7 +3191,7 @@ /obj/effect/decal/cleanable/dirt, /obj/item/clothing/gloves/color/fyellow/old, /obj/item/clothing/gloves/color/fyellow/old, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plasteel/yellow/side{ dir = 10 }, @@ -3648,8 +3648,8 @@ dir = 4 }, /obj/structure/closet/crate, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/item/storage/box/firingpins, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/deltacorridor) @@ -4039,7 +4039,7 @@ "kD" = ( /obj/structure/table, /obj/item/crowbar, -/obj/item/device/flashlight/glowstick, +/obj/item/flashlight/glowstick, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/ancientstation) @@ -4110,7 +4110,7 @@ "kN" = ( /obj/structure/table, /obj/item/crowbar, -/obj/item/device/flashlight/glowstick, +/obj/item/flashlight/glowstick, /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small{ dir = 8 @@ -4225,7 +4225,7 @@ /area/ruin/space/has_grav/ancientstation) "kZ" = ( /obj/structure/table/reinforced, -/obj/item/device/healthanalyzer{ +/obj/item/healthanalyzer{ desc = "A prototype hand-held body scanner able to distinguish vital signs of the subject."; name = "prototype health analyzer" }, diff --git a/_maps/RandomRuins/SpaceRuins/onehalf.dmm b/_maps/RandomRuins/SpaceRuins/onehalf.dmm index b90f2e6780..f5439940ee 100644 --- a/_maps/RandomRuins/SpaceRuins/onehalf.dmm +++ b/_maps/RandomRuins/SpaceRuins/onehalf.dmm @@ -227,7 +227,7 @@ }, /obj/structure/closet/crate/medical, /obj/item/clothing/neck/stethoscope, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /obj/item/reagent_containers/blood/OMinus, /obj/item/reagent_containers/blood/OMinus, /obj/machinery/power/apc{ @@ -755,7 +755,7 @@ /area/ruin/space/has_grav/onehalf/bridge) "ca" = ( /obj/structure/table/reinforced, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel, /area/ruin/space/has_grav/onehalf/bridge) "cb" = ( @@ -990,7 +990,7 @@ /area/ruin/space/has_grav/onehalf/bridge) "cH" = ( /obj/item/crowbar/red, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plating, /area/ruin/space/has_grav/onehalf/bridge) "cI" = ( @@ -1095,7 +1095,7 @@ /area/ruin/space/has_grav/onehalf/hallway) "cY" = ( /obj/structure/table/reinforced, -/obj/item/device/flashlight, +/obj/item/flashlight, /turf/open/floor/plasteel, /area/ruin/space/has_grav/onehalf/bridge) "cZ" = ( diff --git a/_maps/RandomRuins/SpaceRuins/originalcontent.dmm b/_maps/RandomRuins/SpaceRuins/originalcontent.dmm index eccc2efada..624aa03d7c 100644 --- a/_maps/RandomRuins/SpaceRuins/originalcontent.dmm +++ b/_maps/RandomRuins/SpaceRuins/originalcontent.dmm @@ -537,7 +537,7 @@ /turf/open/indestructible/paper, /area/ruin/powered) "bA" = ( -/obj/item/device/toner, +/obj/item/toner, /turf/open/indestructible/paper, /area/ruin/powered) "bB" = ( @@ -595,7 +595,7 @@ /obj/item/paper/crumpled/ruins/originalcontent, /obj/item/paper/crumpled/ruins/originalcontent, /obj/item/paper/crumpled/ruins/originalcontent, -/obj/item/device/gps{ +/obj/item/gps{ gpstag = "Pulpy Signal" }, /turf/open/indestructible/paper, diff --git a/_maps/RandomRuins/SpaceRuins/scp_294.dmm b/_maps/RandomRuins/SpaceRuins/scp_294.dmm deleted file mode 100644 index 358c1800e6..0000000000 --- a/_maps/RandomRuins/SpaceRuins/scp_294.dmm +++ /dev/null @@ -1,668 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( -/turf/template_noop, -/area/template_noop) -"ab" = ( -/turf/closed/wall/r_wall, -/area/ruin/space/has_grav/powered/scp_294) -"ac" = ( -/obj/structure/lattice, -/turf/template_noop, -/area/space/nearstation) -"ad" = ( -/turf/open/floor/plating/airless{ - icon_state = "platingdmg2" - }, -/area/ruin/space/has_grav/powered/scp_294) -"ae" = ( -/obj/structure/lattice, -/obj/item/soap, -/turf/template_noop, -/area/space/nearstation) -"af" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 14 - }, -/obj/structure/mirror{ - pixel_x = 24 - }, -/turf/open/floor/plasteel/freezer/airless, -/area/ruin/space/has_grav/powered/scp_294) -"ag" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel/freezer/airless, -/area/ruin/space/has_grav/powered/scp_294) -"ah" = ( -/turf/open/floor/plasteel/freezer/airless, -/area/ruin/space/has_grav/powered/scp_294) -"ai" = ( -/obj/machinery/door/airlock{ - name = "Bathroom" - }, -/turf/open/floor/plasteel/freezer/airless, -/area/ruin/space/has_grav/powered/scp_294) -"aj" = ( -/obj/machinery/porta_turret/syndicate/energy/heavy{ - desc = "An energy blaster auto-turret designed to contain and terminate in case of a breach in security."; - faction = list("scp"); - mode = 1; - name = "emergency containment breach turret" - }, -/obj/effect/turf_decal/box, -/turf/open/floor/plasteel/dark/airless, -/area/ruin/space/has_grav/powered/scp_294) -"ak" = ( -/obj/effect/turf_decal/tile/beige/corner{ - dir = 9 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/spawner/trap, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) -"al" = ( -/obj/structure/table, -/obj/machinery/microwave, -/obj/effect/turf_decal/tile/beige/side{ - dir = 1 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) -"am" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/beige/side{ - dir = 1 - }, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) -"an" = ( -/obj/effect/turf_decal/tile/beige/side{ - dir = 1 - }, -/obj/machinery/chem_dispenser/scp_294, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) -"ao" = ( -/obj/effect/turf_decal/tile/beige/side{ - dir = 1 - }, -/obj/machinery/vending/snack, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) -"ap" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/beige/side{ - dir = 1 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) -"aq" = ( -/obj/effect/turf_decal/tile/beige/corner{ - dir = 5 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/spawner/trap, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) -"ar" = ( -/obj/effect/turf_decal/tile/beige/corner{ - dir = 9 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) -"as" = ( -/obj/effect/decal/cleanable/blood/old, -/obj/effect/turf_decal/tile/beige/corner{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) -"at" = ( -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) -"au" = ( -/obj/effect/mob_spawn/human/corpse/nanotrasensoldier{ - id_job = "Level Three Clearance Guard"; - name = "Clearance Level Three Officer"; - oxy_damage = 136 - }, -/obj/effect/decal/cleanable/blood/old, -/obj/effect/turf_decal/tile/beige/corner{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) -"av" = ( -/obj/effect/turf_decal/tile/beige/corner{ - dir = 5 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) -"aw" = ( -/obj/structure/lattice, -/obj/item/shard, -/turf/template_noop, -/area/space/nearstation) -"ax" = ( -/obj/effect/turf_decal/tile/beige/side{ - dir = 8 - }, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) -"ay" = ( -/obj/effect/mob_spawn/human/corpse/nanotrasensoldier{ - id_job = "Level Three Clearance Guard"; - name = "Clearance Level Three Officer"; - oxy_damage = 136 - }, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) -"az" = ( -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) -"aA" = ( -/obj/effect/turf_decal/tile/beige/corner{ - dir = 9 - }, -/mob/living/simple_animal/hostile/mimic{ - faction = list("mimic","scp") - }, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) -"aB" = ( -/obj/effect/turf_decal/tile/beige/side{ - dir = 1 - }, -/obj/effect/spawner/trap, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) -"aC" = ( -/obj/effect/turf_decal/tile/beige/corner{ - dir = 5 - }, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) -"aD" = ( -/obj/item/trash/plate, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) -"aE" = ( -/obj/effect/turf_decal/tile/beige/side{ - dir = 4 - }, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) -"aF" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav/powered/scp_294) -"aG" = ( -/obj/structure/girder, -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav/powered/scp_294) -"aH" = ( -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav/powered/scp_294) -"aI" = ( -/obj/structure/fluff/broken_flooring{ - icon_state = "corner"; - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav/powered/scp_294) -"aJ" = ( -/obj/structure/table, -/obj/item/trash/sosjerky, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) -"aK" = ( -/obj/item/chair, -/obj/effect/turf_decal/tile/beige/side{ - dir = 8 - }, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) -"aL" = ( -/obj/structure/chair/office{ - dir = 4 - }, -/obj/effect/turf_decal/tile/beige/side{ - dir = 4 - }, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) -"aM" = ( -/obj/structure/table, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) -"aN" = ( -/obj/effect/turf_decal/tile/beige/side{ - dir = 4 - }, -/obj/structure/chair/office{ - dir = 8 - }, -/obj/item/shard, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) -"aO" = ( -/obj/item/stack/rods, -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav/powered/scp_294) -"aP" = ( -/obj/structure/fluff/broken_flooring{ - icon_state = "plating"; - name = "broken plating" - }, -/obj/structure/lattice, -/turf/template_noop, -/area/space/nearstation) -"aQ" = ( -/obj/structure/table_frame, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) -"aR" = ( -/turf/open/floor/plating/airless{ - icon_state = "platingdmg1" - }, -/area/ruin/space/has_grav/powered/scp_294) -"aS" = ( -/obj/item/stack/tile/plasteel, -/mob/living/simple_animal/hostile/mimic{ - faction = list("mimic","scp") - }, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) -"aT" = ( -/obj/structure/grille/broken, -/obj/item/stack/rods, -/turf/open/floor/plating/airless{ - icon_state = "platingdmg1" - }, -/area/ruin/space/has_grav/powered/scp_294) -"aU" = ( -/obj/item/shard, -/turf/open/floor/plating/airless{ - icon_state = "platingdmg1" - }, -/area/ruin/space/has_grav/powered/scp_294) -"aV" = ( -/obj/structure/lattice, -/obj/structure/fluff/broken_flooring{ - icon_state = "singular" - }, -/turf/template_noop, -/area/space/nearstation) -"aW" = ( -/obj/item/trash/cheesie, -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav/powered/scp_294) -"aX" = ( -/obj/effect/turf_decal/tile/beige/side{ - dir = 4 - }, -/obj/item/chair, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) -"aY" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) -"aZ" = ( -/obj/effect/mob_spawn/human/corpse/assistant, -/obj/structure/table_frame, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) -"ba" = ( -/obj/structure/grille/broken, -/obj/item/shard, -/obj/item/stack/rods, -/turf/open/floor/plating/airless{ - icon_state = "platingdmg1" - }, -/area/ruin/space/has_grav/powered/scp_294) -"bb" = ( -/obj/item/stack/rods, -/turf/open/floor/plating/airless{ - icon_state = "platingdmg1" - }, -/area/ruin/space/has_grav/powered/scp_294) -"bc" = ( -/obj/item/stack/tile/plasteel, -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav/powered/scp_294) -"bd" = ( -/obj/structure/lattice, -/obj/structure/fluff/broken_flooring{ - icon_state = "singular"; - dir = 4 - }, -/turf/template_noop, -/area/space/nearstation) -"be" = ( -/obj/structure/fluff/broken_flooring{ - icon_state = "pile"; - dir = 4 - }, -/turf/template_noop, -/area/template_noop) -"bf" = ( -/obj/item/trash/chips, -/turf/template_noop, -/area/template_noop) -"bg" = ( -/obj/effect/spawner/trap, -/turf/open/floor/plating/airless{ - icon_state = "platingdmg2" - }, -/area/ruin/space/has_grav/powered/scp_294) -"bi" = ( -/obj/effect/spawner/trap, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) -"bj" = ( -/obj/effect/spawner/trap, -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav/powered/scp_294) -"bk" = ( -/obj/structure/table_frame, -/obj/effect/spawner/trap, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/scp_294) - -(1,1,1) = {" -aa -aa -aa -aa -aa -ac -aa -aa -aa -aa -aa -aa -aa -aa -"} -(2,1,1) = {" -aa -aa -aa -aa -aa -ac -ac -aa -aa -aa -aa -aa -aa -aa -"} -(3,1,1) = {" -aa -aa -aa -ab -ab -ab -ab -aG -ac -aV -aa -aa -aa -aa -"} -(4,1,1) = {" -aa -aa -aa -ab -aj -ar -ax -bj -aP -ac -aa -aa -aa -be -"} -(5,1,1) = {" -aa -aa -ac -ab -ak -as -ay -aI -aH -ac -ac -ac -aa -aa -"} -(6,1,1) = {" -aa -ac -ac -ab -al -at -az -aJ -aQ -bj -ad -aa -aa -bf -"} -(7,1,1) = {" -ab -ab -ab -ab -am -at -aA -aK -aR -aR -ac -ac -aa -aa -"} -(8,1,1) = {" -ac -ac -ad -ab -an -at -aB -at -aS -aW -aH -aP -aa -aa -"} -(9,1,1) = {" -aa -ae -ac -ab -ao -at -aC -aL -aE -aX -aE -ad -bg -aa -"} -(10,1,1) = {" -ac -bg -ag -ab -ap -bi -az -aM -bk -aY -bc -aR -bd -ac -"} -(11,1,1) = {" -bg -af -ah -ai -aq -au -aD -aM -aM -aZ -aR -ad -aa -aa -"} -(12,1,1) = {" -ab -ab -ab -ab -aj -av -aE -aN -aH -ad -aH -ac -aa -aa -"} -(13,1,1) = {" -aa -aa -aa -ab -ab -ab -aF -aO -aT -ba -ab -ab -aa -aa -"} -(14,1,1) = {" -aa -aa -aa -aa -ac -ac -ac -ad -aU -bb -ac -ac -aa -aa -"} -(15,1,1) = {" -aa -aa -aa -aa -aa -aw -ac -ac -bg -ac -aa -ac -aa -aa -"} -(16,1,1) = {" -aa -aa -aa -aa -aa -aa -ac -aa -aa -aw -aa -aa -aa -aa -"} -(17,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -aa -aa -aa -aa -"} diff --git a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm index f6f090e807..b56ba3107f 100644 --- a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm @@ -2081,7 +2081,7 @@ dir = 1; layer = 2.9 }, -/obj/item/device/gps{ +/obj/item/gps{ gpstag = "Twin-Nexus Hotel Retreat"; name = "hotel gps" }, @@ -2093,7 +2093,7 @@ "gx" = ( /obj/structure/table, /obj/item/screwdriver, -/obj/item/device/multitool, +/obj/item/multitool, /obj/item/wirecutters, /obj/machinery/light{ dir = 1 @@ -2375,7 +2375,7 @@ /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/hotel/workroom) "hr" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/hotel/dock) "hs" = ( @@ -2606,7 +2606,7 @@ /area/ruin/space/has_grav/hotel/bar) "hV" = ( /obj/structure/table/wood, -/obj/item/device/instrument/guitar, +/obj/item/instrument/guitar, /obj/structure/window/reinforced{ dir = 1 }, @@ -2687,7 +2687,7 @@ /area/ruin/space/has_grav/hotel/bar) "ig" = ( /obj/structure/table/wood, -/obj/item/device/instrument/violin, +/obj/item/instrument/violin, /turf/open/floor/plasteel/grimy, /area/ruin/space/has_grav/hotel/bar) "ih" = ( @@ -4097,7 +4097,7 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/item/device/lightreplacer, +/obj/item/lightreplacer, /turf/open/floor/plasteel/neutral, /area/ruin/space/has_grav/hotel/custodial) "ml" = ( diff --git a/_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm b/_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm index 3e729c6c4b..c9b6eb9e7c 100644 --- a/_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm +++ b/_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm @@ -53,7 +53,7 @@ "am" = ( /obj/structure/table/reinforced, /obj/item/folder, -/obj/item/device/radio, +/obj/item/radio, /turf/open/floor/plasteel, /area/ruin/space/has_grav/turretedoutpost) "an" = ( @@ -105,7 +105,7 @@ /area/ruin/space/has_grav/turretedoutpost) "av" = ( /obj/structure/rack, -/obj/item/device/firing_pin, +/obj/item/firing_pin, /turf/open/floor/plasteel/vault/side{ dir = 1 }, @@ -152,7 +152,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/device/radio, +/obj/item/radio, /turf/open/floor/plasteel, /area/ruin/space/has_grav/turretedoutpost) "aE" = ( @@ -236,7 +236,7 @@ "aS" = ( /obj/structure/table/reinforced, /obj/machinery/light, -/obj/item/device/camera_bug, +/obj/item/camera_bug, /turf/open/floor/plasteel, /area/ruin/space/has_grav/turretedoutpost) "aT" = ( diff --git a/_maps/RandomRuins/SpaceRuins/vaporwave.dmm b/_maps/RandomRuins/SpaceRuins/vaporwave.dmm index 502c677325..ab51f68741 100644 --- a/_maps/RandomRuins/SpaceRuins/vaporwave.dmm +++ b/_maps/RandomRuins/SpaceRuins/vaporwave.dmm @@ -52,7 +52,7 @@ /area/ruin/space/has_grav/powered/aesthetic) "m" = ( /obj/structure/table/reinforced, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /turf/open/floor/plasteel/vaporwave, /area/ruin/space/has_grav/powered/aesthetic) "n" = ( @@ -88,7 +88,7 @@ /turf/open/floor/plasteel/vaporwave, /area/ruin/space/has_grav/powered/aesthetic) "t" = ( -/obj/item/device/instrument/eguitar, +/obj/item/instrument/eguitar, /turf/open/floor/holofloor/beach, /area/ruin/space/has_grav/powered/aesthetic) "u" = ( @@ -104,7 +104,7 @@ /area/ruin/space/has_grav/powered/aesthetic) "x" = ( /obj/structure/closet/crate/bin, -/obj/item/device/tape/random, +/obj/item/tape/random, /turf/open/floor/plating/asteroid/airless, /area/ruin/unpowered/no_grav) "y" = ( diff --git a/_maps/RandomRuins/SpaceRuins/whiteshipruin_box.dmm b/_maps/RandomRuins/SpaceRuins/whiteshipruin_box.dmm index 8660ae3dea..51f551fe51 100644 --- a/_maps/RandomRuins/SpaceRuins/whiteshipruin_box.dmm +++ b/_maps/RandomRuins/SpaceRuins/whiteshipruin_box.dmm @@ -20,7 +20,7 @@ /area/ruin/space/has_grav/whiteship/box) "af" = ( /obj/structure/table, -/obj/item/device/radio/off, +/obj/item/radio/off, /turf/open/floor/mineral/titanium, /area/ruin/space/has_grav/whiteship/box) "ag" = ( @@ -254,7 +254,7 @@ /turf/open/floor/plating, /area/ruin/space/has_grav/whiteship/box) "aU" = ( -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/mineral/titanium, /area/ruin/space/has_grav/whiteship/box) "aV" = ( diff --git a/_maps/RandomZLevels/Academy.dmm b/_maps/RandomZLevels/Academy.dmm index e29fcb26cf..e83daecd38 100644 --- a/_maps/RandomZLevels/Academy.dmm +++ b/_maps/RandomZLevels/Academy.dmm @@ -194,7 +194,7 @@ /area/awaymission/academy/headmaster) "aI" = ( /obj/structure/table/reinforced, -/obj/item/device/laser_pointer/upgraded, +/obj/item/laser_pointer/upgraded, /turf/open/floor/carpet, /area/awaymission/academy/headmaster) "aJ" = ( @@ -2624,7 +2624,7 @@ /turf/open/floor/plating, /area/awaymission/academy/academyaft) "iK" = ( -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/engine, /area/awaymission/academy/academyaft) "iL" = ( @@ -2729,7 +2729,7 @@ dir = 1 }, /obj/structure/table, -/obj/item/device/soulstone, +/obj/item/soulstone, /turf/open/floor/plasteel/airless{ icon_state = "whitered"; dir = 4 @@ -2930,7 +2930,7 @@ "jA" = ( /obj/structure/table, /obj/structure/window/reinforced, -/obj/item/device/batterer, +/obj/item/batterer, /turf/open/floor/plasteel/airless{ icon_state = "whitered"; dir = 4 diff --git a/_maps/RandomZLevels/Cabin.dmm b/_maps/RandomZLevels/Cabin.dmm index d95b84f299..f4a18fd87c 100644 --- a/_maps/RandomZLevels/Cabin.dmm +++ b/_maps/RandomZLevels/Cabin.dmm @@ -527,7 +527,7 @@ /area/awaymission/snowforest) "bT" = ( /obj/structure/table/wood, -/obj/item/device/instrument/violin, +/obj/item/instrument/violin, /turf/open/floor/wood, /area/awaymission/cabin) "bU" = ( @@ -620,7 +620,7 @@ dir = 8 }, /obj/structure/table/wood, -/obj/item/device/instrument/guitar, +/obj/item/instrument/guitar, /turf/open/floor/wood, /area/awaymission/cabin) "ci" = ( @@ -952,7 +952,7 @@ /area/awaymission/snowforest) "du" = ( /obj/structure/closet/toolcloset, -/obj/item/device/lightreplacer, +/obj/item/lightreplacer, /obj/item/storage/toolbox/mechanical, /turf/open/floor/plating, /area/awaymission/cabin) diff --git a/_maps/RandomZLevels/caves.dmm b/_maps/RandomZLevels/caves.dmm index ddd441486b..a656e5cd0d 100644 --- a/_maps/RandomZLevels/caves.dmm +++ b/_maps/RandomZLevels/caves.dmm @@ -447,7 +447,7 @@ /area/awaymission/caves/BMP_asteroid/level_four) "bo" = ( /obj/structure/flora/rock, -/obj/item/device/soulstone/anybody, +/obj/item/soulstone/anybody, /turf/open/floor/plating/asteroid/basalt{ initial_gas_mix = "n2=23;o2=14" }, @@ -531,7 +531,7 @@ /area/awaymission/caves/BMP_asteroid/level_four) "bA" = ( /obj/structure/destructible/cult/tome, -/obj/item/device/necromantic_stone, +/obj/item/necromantic_stone, /obj/effect/decal/cleanable/blood, /turf/open/floor/engine/cult{ initial_gas_mix = "n2=23;o2=14" @@ -1379,8 +1379,8 @@ /area/awaymission/caves/BMP_asteroid) "eh" = ( /obj/structure/table, -/obj/item/device/radio, -/obj/item/device/radio, +/obj/item/radio, +/obj/item/radio, /turf/open/floor/plasteel, /area/awaymission/caves/BMP_asteroid) "ei" = ( @@ -1464,8 +1464,8 @@ /area/awaymission/caves/BMP_asteroid) "ew" = ( /obj/structure/table, -/obj/item/device/mining_scanner, -/obj/item/device/mining_scanner, +/obj/item/mining_scanner, +/obj/item/mining_scanner, /turf/open/floor/plasteel, /area/awaymission/caves/BMP_asteroid) "ex" = ( @@ -1500,8 +1500,8 @@ /area/awaymission/caves/BMP_asteroid) "eC" = ( /obj/structure/table, -/obj/item/device/gps/mining, -/obj/item/device/gps/mining, +/obj/item/gps/mining, +/obj/item/gps/mining, /obj/item/clothing/glasses/meson, /obj/item/clothing/glasses/meson, /obj/item/clothing/glasses/meson, @@ -1553,7 +1553,7 @@ }, /obj/structure/table, /obj/item/storage/toolbox/electrical, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plasteel, /area/awaymission/caves/listeningpost) "eN" = ( @@ -2076,7 +2076,7 @@ /turf/open/floor/plasteel, /area/awaymission/caves/BMP_asteroid) "gs" = ( -/obj/item/device/assembly/igniter, +/obj/item/assembly/igniter, /turf/open/floor/plating/asteroid/basalt{ initial_gas_mix = "n2=23;o2=14" }, diff --git a/_maps/RandomZLevels/centcomAway.dmm b/_maps/RandomZLevels/centcomAway.dmm index 5f73f18c35..12861c3b9c 100644 --- a/_maps/RandomZLevels/centcomAway.dmm +++ b/_maps/RandomZLevels/centcomAway.dmm @@ -281,7 +281,7 @@ /turf/open/floor/plating, /area/awaymission/centcomAway/cafe) "bb" = ( -/obj/item/device/radio, +/obj/item/radio, /turf/open/floor/plating, /area/awaymission/centcomAway/maint) "bc" = ( @@ -743,7 +743,7 @@ /area/awaymission/centcomAway/maint) "da" = ( /obj/structure/table, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/mineral/titanium/yellow, /area/awaymission/centcomAway/hangar) "db" = ( @@ -832,7 +832,7 @@ /area/awaymission/centcomAway/cafe) "dr" = ( /obj/structure/table/reinforced, -/obj/item/device/t_scanner, +/obj/item/t_scanner, /turf/open/floor/plasteel/yellow/side, /area/awaymission/centcomAway/general) "ds" = ( @@ -1116,7 +1116,7 @@ /area/awaymission/centcomAway/maint) "ez" = ( /obj/structure/table, -/obj/item/device/radio/off, +/obj/item/radio/off, /turf/open/floor/mineral/titanium/blue, /area/awaymission/centcomAway/hangar) "eA" = ( @@ -1839,7 +1839,7 @@ /obj/structure/chair{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = 25 }, /turf/open/floor/mineral/titanium/blue, @@ -2473,8 +2473,8 @@ /area/awaymission/centcomAway/hangar) "js" = ( /obj/structure/table, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel/vault, /area/awaymission/centcomAway/hangar) "jt" = ( @@ -2485,7 +2485,7 @@ /area/awaymission/centcomAway/hangar) "ju" = ( /obj/structure/table, -/obj/item/device/mmi, +/obj/item/mmi, /turf/open/floor/plasteel/vault, /area/awaymission/centcomAway/hangar) "jv" = ( @@ -2762,17 +2762,17 @@ /area/awaymission/centcomAway/general) "kn" = ( /obj/structure/table, -/obj/item/device/flashlight/flare, +/obj/item/flashlight/flare, /turf/open/floor/plasteel/dark, /area/awaymission/centcomAway/hangar) "ko" = ( /obj/structure/table, -/obj/item/device/flashlight/flare, +/obj/item/flashlight/flare, /turf/open/floor/plating, /area/awaymission/centcomAway/hangar) "kp" = ( /obj/structure/table, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plating, /area/awaymission/centcomAway/hangar) "kq" = ( @@ -2863,7 +2863,7 @@ "kC" = ( /obj/item/clipboard, /obj/structure/table, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/item/stamp, /turf/open/floor/plasteel/vault{ dir = 1 @@ -2972,14 +2972,14 @@ /area/space/nearstation) "kW" = ( /obj/structure/table, -/obj/item/device/paicard, +/obj/item/paicard, /turf/open/floor/plasteel/vault{ dir = 5 }, /area/awaymission/centcomAway/thunderdome) "kX" = ( /obj/structure/table, -/obj/item/device/camera, +/obj/item/camera, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -3088,7 +3088,7 @@ /area/awaymission/centcomAway/thunderdome) "lq" = ( /obj/structure/table/wood, -/obj/item/device/radio/off, +/obj/item/radio/off, /turf/open/floor/plasteel/redyellow{ dir = 5 }, @@ -3226,8 +3226,8 @@ /area/awaymission/centcomAway/thunderdome) "lM" = ( /obj/structure/table/reinforced, -/obj/item/device/taperecorder, -/obj/item/device/tape/random, +/obj/item/taperecorder, +/obj/item/tape/random, /turf/open/floor/plasteel{ icon_state = "floor" }, diff --git a/_maps/RandomZLevels/challenge.dmm b/_maps/RandomZLevels/challenge.dmm index 8f454aedc9..0ed12617b2 100644 --- a/_maps/RandomZLevels/challenge.dmm +++ b/_maps/RandomZLevels/challenge.dmm @@ -35,7 +35,7 @@ /turf/open/floor/plasteel/airless, /area/awaymission/challenge/start) "ai" = ( -/obj/item/device/flashlight{ +/obj/item/flashlight{ icon_state = "flashlight-on"; item_state = "flashlight"; on = 1 @@ -266,7 +266,7 @@ /turf/open/floor/plasteel, /area/awaymission/challenge/main) "bb" = ( -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plasteel/airless, /area/awaymission/challenge/main) "bc" = ( @@ -655,7 +655,7 @@ /obj/structure/chair{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 28 @@ -680,7 +680,7 @@ /turf/open/floor/plating, /area/awaymission/challenge/end) "cg" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = -27 @@ -747,7 +747,7 @@ /area/awaymission/challenge/end) "cs" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm index 4ec51aef62..49929e67f1 100644 --- a/_maps/RandomZLevels/moonoutpost19.dmm +++ b/_maps/RandomZLevels/moonoutpost19.dmm @@ -454,11 +454,11 @@ dir = 1 }, /obj/structure/table, -/obj/item/device/radio/off{ +/obj/item/radio/off{ pixel_x = -4; pixel_y = 4 }, -/obj/item/device/radio/off{ +/obj/item/radio/off{ pixel_x = 2 }, /obj/effect/turf_decal/stripes/line, @@ -713,7 +713,7 @@ pixel_y = -1 }, /obj/item/clothing/gloves/color/yellow, -/obj/item/device/multitool, +/obj/item/multitool, /obj/effect/turf_decal/stripes/line{ dir = 9 }, @@ -1568,7 +1568,7 @@ /obj/structure/closet/crate, /obj/item/storage/bag/ore, /obj/structure/alien/weeds, -/obj/item/device/mining_scanner, +/obj/item/mining_scanner, /obj/item/shovel, /obj/item/pickaxe, /turf/open/floor/plating{ @@ -1775,14 +1775,14 @@ dir = 8; icon_state = "ltrails_1" }, -/obj/item/device/mining_scanner, +/obj/item/mining_scanner, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; heat_capacity = 1e+006 }, /area/awaymission/moonoutpost19/main) "dH" = ( -/obj/item/device/flashlight/lantern{ +/obj/item/flashlight/lantern{ icon_state = "lantern-on"; on = 1 }, @@ -2820,7 +2820,7 @@ }, /area/awaymission/moonoutpost19/research) "fU" = ( -/obj/item/device/radio/off, +/obj/item/radio/off, /obj/item/screwdriver{ pixel_y = 10 }, @@ -3020,9 +3020,9 @@ /area/awaymission/moonoutpost19/research) "gq" = ( /obj/structure/table, -/obj/item/device/mmi, -/obj/item/device/mmi, -/obj/item/device/mmi, +/obj/item/mmi, +/obj/item/mmi, +/obj/item/mmi, /obj/structure/alien/weeds, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -3098,7 +3098,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/cell_charger, /obj/item/stock_parts/cell/high, -/obj/item/device/radio/off, +/obj/item/radio/off, /turf/open/floor/plating{ heat_capacity = 1e+006 }, @@ -3245,7 +3245,7 @@ pixel_y = 9 }, /obj/item/pen, -/obj/item/device/radio/off, +/obj/item/radio/off, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -3661,11 +3661,11 @@ empty = 1; name = "First-Aid (empty)" }, -/obj/item/device/healthanalyzer{ +/obj/item/healthanalyzer{ pixel_x = 6; pixel_y = -5 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -5; pixel_y = -2 }, @@ -3952,7 +3952,7 @@ /area/awaymission/moonoutpost19/research) "ic" = ( /obj/structure/rack, -/obj/item/device/paicard{ +/obj/item/paicard{ pixel_x = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -4283,8 +4283,8 @@ /area/awaymission/moonoutpost19/research) "iJ" = ( /obj/structure/table, -/obj/item/device/radio/off, -/obj/item/device/laser_pointer, +/obj/item/radio/off, +/obj/item/laser_pointer, /turf/open/floor/plasteel/cafeteria{ dir = 5 }, @@ -4312,7 +4312,7 @@ "iM" = ( /obj/structure/table, /obj/item/storage/secure/briefcase, -/obj/item/device/taperecorder{ +/obj/item/taperecorder{ pixel_x = -3 }, /obj/effect/turf_decal/stripes/line{ @@ -5358,7 +5358,7 @@ pixel_x = -2; pixel_y = -1 }, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plasteel/blue/side{ dir = 0; heat_capacity = 1e+006 @@ -5742,7 +5742,7 @@ /area/awaymission/moonoutpost19/arrivals) "lX" = ( /obj/structure/table, -/obj/item/device/radio/off, +/obj/item/radio/off, /turf/open/floor/mineral/titanium/yellow, /area/awaymission/moonoutpost19/arrivals) "lZ" = ( diff --git a/_maps/RandomZLevels/research.dmm b/_maps/RandomZLevels/research.dmm index fe9080c8d5..7be855dde9 100644 --- a/_maps/RandomZLevels/research.dmm +++ b/_maps/RandomZLevels/research.dmm @@ -827,8 +827,8 @@ /area/awaymission/research/interior) "cD" = ( /obj/structure/table, -/obj/item/device/radio, -/obj/item/device/radio, +/obj/item/radio, +/obj/item/radio, /turf/open/floor/plasteel/dark, /area/awaymission/research/interior/gateway) "cE" = ( @@ -999,7 +999,7 @@ name = "encrypted genetic data disk"; read_only = 1 }, -/obj/item/device/firing_pin/dna, +/obj/item/firing_pin/dna, /turf/open/floor/plasteel/dark, /area/awaymission/research/interior/secure) "de" = ( @@ -1223,7 +1223,7 @@ name = "encrypted genetic data disk"; read_only = 1 }, -/obj/item/device/firing_pin/dna, +/obj/item/firing_pin/dna, /obj/item/dnainjector/dwarf, /obj/item/dnainjector/dwarf, /turf/open/floor/plasteel/dark, @@ -2599,7 +2599,7 @@ /obj/item/clothing/head/collectable/petehat{ name = "dusty hat" }, -/obj/item/device/firing_pin/dna, +/obj/item/firing_pin/dna, /turf/open/floor/plasteel/dark, /area/awaymission/research/interior/secure) "hT" = ( @@ -2614,7 +2614,7 @@ name = "encrypted genetic data disk"; read_only = 1 }, -/obj/item/device/firing_pin/dna, +/obj/item/firing_pin/dna, /obj/item/dnainjector/hulkmut, /turf/open/floor/plasteel/dark, /area/awaymission/research/interior/secure) @@ -2732,8 +2732,8 @@ name = "encrypted genetic data disk"; read_only = 1 }, -/obj/item/device/firing_pin/dna/dredd, -/obj/item/device/firing_pin/dna/dredd, +/obj/item/firing_pin/dna/dredd, +/obj/item/firing_pin/dna/dredd, /obj/item/dnainjector/lasereyesmut, /obj/item/dnainjector/lasereyesmut, /turf/open/floor/plasteel/dark, diff --git a/_maps/RandomZLevels/snowdin.dmm b/_maps/RandomZLevels/snowdin.dmm index 2d88ed442d..63255686d8 100644 --- a/_maps/RandomZLevels/snowdin.dmm +++ b/_maps/RandomZLevels/snowdin.dmm @@ -102,7 +102,7 @@ /area/awaymission/snowdin/post/research) "ay" = ( /obj/structure/table, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/dark, /area/awaymission/snowdin/post/research) "az" = ( @@ -126,7 +126,7 @@ /area/awaymission/snowdin/post/research) "aD" = ( /obj/structure/table, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/item/pen, /turf/open/floor/plasteel/dark, /area/awaymission/snowdin/post/research) @@ -304,7 +304,7 @@ /area/awaymission/snowdin/post/research) "bd" = ( /obj/structure/window, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/dark, /area/awaymission/snowdin/post/research) "be" = ( @@ -2168,7 +2168,7 @@ /turf/open/floor/plasteel/cmo, /area/awaymission/snowdin/post) "fz" = ( -/obj/item/device/flashlight/pen, +/obj/item/flashlight/pen, /turf/open/floor/plasteel/cmo, /area/awaymission/snowdin/post) "fA" = ( @@ -5944,7 +5944,7 @@ req_access_txt = "201" }, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash, +/obj/item/assembly/flash, /obj/item/storage/box/rubbershot, /obj/structure/fireaxecabinet{ pixel_y = 32 @@ -6341,7 +6341,7 @@ /area/awaymission/snowdin/post/cavern2) "pb" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp{ +/obj/item/flashlight/lamp{ pixel_x = -5; pixel_y = 5 }, @@ -9441,13 +9441,11 @@ width = 6 }, /obj/docking_port/stationary{ - baseturf_type = /turf/open/floor/engine; dir = 4; dwidth = 3; height = 6; id = "snowdin_excavation_top"; name = "snowdin excavation top"; - turf_type = /turf/open/floor/engine; width = 6 }, /turf/open/floor/plating, @@ -9478,13 +9476,11 @@ /area/awaymission/snowdin/post/mining_dock) "xP" = ( /obj/docking_port/stationary{ - baseturf_type = /turf/open/floor/plating/snowed; dir = 4; dwidth = 3; height = 6; id = "snowdin_excavation_down"; name = "snowdin excavation down"; - turf_type = /turf/open/floor/plating/snowed; width = 6 }, /turf/open/floor/plating, @@ -10487,7 +10483,7 @@ /area/awaymission/snowdin/post/minipost) "AF" = ( /obj/structure/table, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/neutral/side{ dir = 4 }, @@ -11273,7 +11269,7 @@ }, /area/awaymission/snowdin/cave) "CY" = ( -/obj/item/device/aicard, +/obj/item/aicard, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -13821,13 +13817,11 @@ width = 5 }, /obj/docking_port/stationary{ - baseturf_type = /turf/open/floor/engine; dir = 4; dwidth = 2; height = 5; id = "snowdin_mining_top"; name = "snowdin mining top"; - turf_type = /turf/open/floor/engine; width = 5 }, /turf/open/floor/plating, @@ -13874,13 +13868,11 @@ "Kt" = ( /obj/docking_port/stationary{ area_type = /area/awaymission/snowdin/post/mining_dock; - baseturf_type = /turf/open/floor/engine; dir = 4; dwidth = 2; height = 5; id = "snowdin_mining_down"; name = "snowdin mining bottom"; - turf_type = /turf/open/floor/engine; width = 5 }, /turf/open/floor/plating, diff --git a/_maps/RandomZLevels/spacebattle.dmm b/_maps/RandomZLevels/spacebattle.dmm index f5a2565677..845238dafd 100644 --- a/_maps/RandomZLevels/spacebattle.dmm +++ b/_maps/RandomZLevels/spacebattle.dmm @@ -1694,7 +1694,7 @@ /area/awaymission/spacebattle/cruiser) "gL" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, +/obj/item/flashlight/lamp/green, /turf/open/floor/wood, /area/awaymission/spacebattle/cruiser) "gM" = ( @@ -1925,7 +1925,7 @@ /area/awaymission/spacebattle/cruiser) "hE" = ( /obj/structure/table/wood, -/obj/item/device/instrument/violin, +/obj/item/instrument/violin, /turf/open/floor/wood, /area/awaymission/spacebattle/cruiser) "hF" = ( diff --git a/_maps/RandomZLevels/undergroundoutpost45.dmm b/_maps/RandomZLevels/undergroundoutpost45.dmm index c965a22a1f..2e1d6377ac 100644 --- a/_maps/RandomZLevels/undergroundoutpost45.dmm +++ b/_maps/RandomZLevels/undergroundoutpost45.dmm @@ -388,7 +388,7 @@ req_access_txt = "201" }, /obj/item/storage/bag/plants/portaseeder, -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /obj/item/clothing/mask/bandana, /obj/item/hatchet, /turf/open/floor/plasteel/vault{ @@ -398,7 +398,7 @@ /area/awaymission/undergroundoutpost45/central) "bf" = ( /obj/item/storage/belt/security, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/effect/decal/cleanable/dirt, /obj/structure/closet/secure_closet{ icon_state = "sec"; @@ -467,7 +467,7 @@ /area/awaymission/undergroundoutpost45/central) "bn" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -2166,7 +2166,7 @@ "eX" = ( /obj/structure/table, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/off, +/obj/item/radio/off, /obj/item/screwdriver{ pixel_y = 10 }, @@ -3927,8 +3927,8 @@ /area/awaymission/undergroundoutpost45/gateway) "iO" = ( /obj/structure/table, -/obj/item/device/radio/off, -/obj/item/device/radio/off, +/obj/item/radio/off, +/obj/item/radio/off, /turf/open/floor/plasteel{ dir = 8; heat_capacity = 1e+006; @@ -4787,7 +4787,7 @@ pixel_x = -2; pixel_y = -1 }, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plating{ heat_capacity = 1e+006 }, @@ -4799,8 +4799,8 @@ /obj/structure/sign/warning/biohazard{ pixel_y = 32 }, -/obj/item/device/assembly/prox_sensor, -/obj/item/device/assembly/prox_sensor, +/obj/item/assembly/prox_sensor, +/obj/item/assembly/prox_sensor, /obj/effect/turf_decal/stripes/line{ dir = 4 }, @@ -5230,7 +5230,7 @@ pixel_x = -2; pixel_y = -1 }, -/obj/item/device/multitool, +/obj/item/multitool, /obj/structure/sign/warning/nosmoking{ pixel_x = -32 }, @@ -5308,7 +5308,7 @@ "lu" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/item/reagent_containers/spray/pepper, /obj/structure/closet/secure_closet{ icon_state = "sec"; @@ -5989,9 +5989,9 @@ "mB" = ( /obj/structure/table, /obj/item/hand_labeler, -/obj/item/device/flashlight, -/obj/item/device/flashlight, -/obj/item/device/flashlight, +/obj/item/flashlight, +/obj/item/flashlight, +/obj/item/flashlight, /obj/effect/turf_decal/stripes/corner{ dir = 8 }, @@ -6653,8 +6653,8 @@ dir = 8 }, /obj/structure/table, -/obj/item/device/radio/off, -/obj/item/device/laser_pointer, +/obj/item/radio/off, +/obj/item/laser_pointer, /turf/open/floor/plasteel/cafeteria{ dir = 5; heat_capacity = 1e+006 @@ -6715,10 +6715,10 @@ dir = 1 }, /obj/structure/table/reinforced, -/obj/item/device/taperecorder{ +/obj/item/taperecorder{ pixel_x = -3 }, -/obj/item/device/paicard{ +/obj/item/paicard{ pixel_x = 4 }, /turf/open/floor/plasteel/cafeteria{ @@ -6734,7 +6734,7 @@ /obj/machinery/light{ dir = 8 }, -/obj/item/device/radio/off, +/obj/item/radio/off, /obj/item/screwdriver{ pixel_y = 10 }, @@ -8324,7 +8324,7 @@ dir = 2; pixel_y = 24 }, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plasteel/yellow/corner{ dir = 1; heat_capacity = 1e+006 @@ -9987,7 +9987,7 @@ /obj/item/screwdriver{ pixel_y = 10 }, -/obj/item/device/radio/off, +/obj/item/radio/off, /turf/open/floor/plasteel/red/side{ dir = 4; heat_capacity = 1e+006 @@ -12034,7 +12034,7 @@ "xv" = ( /obj/structure/table, /obj/item/pickaxe, -/obj/item/device/radio/off, +/obj/item/radio/off, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel{ heat_capacity = 1e+006 diff --git a/_maps/RandomZLevels/wildwest.dmm b/_maps/RandomZLevels/wildwest.dmm index 5eb0f5f2c8..896f874960 100644 --- a/_maps/RandomZLevels/wildwest.dmm +++ b/_maps/RandomZLevels/wildwest.dmm @@ -700,7 +700,7 @@ "cD" = ( /obj/structure/table/wood, /obj/item/clothing/gloves/color/yellow, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/wood, /area/awaymission/wildwest/gov) "cE" = ( diff --git a/_maps/cit_map_files/BoxStation/BoxStation.dmm b/_maps/cit_map_files/BoxStation/BoxStation.dmm index 91d975de6f..1e179288f8 100644 --- a/_maps/cit_map_files/BoxStation/BoxStation.dmm +++ b/_maps/cit_map_files/BoxStation/BoxStation.dmm @@ -11,7 +11,7 @@ /obj/machinery/chem_dispenser/drinks/beer{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = 25 }, /turf/open/floor/plasteel/bar, @@ -53,6 +53,9 @@ /turf/open/space, /area/space/nearstation) "aah" = ( +/obj/structure/sign/warning/securearea{ + pixel_y = -32 + }, /turf/open/space, /area/space/nearstation) "aai" = ( @@ -113,7 +116,7 @@ /area/security/prison) "aaq" = ( /obj/machinery/hydroponics/soil, -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /obj/machinery/camera{ c_tag = "Prison Common Room"; network = list("ss13","prison") @@ -277,11 +280,6 @@ /obj/structure/lattice, /turf/open/space, /area/space/nearstation) -"aaT" = ( -/obj/machinery/flasher/portable, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/plasteel/dark, -/area/security/armory) "aaU" = ( /obj/machinery/computer/arcade, /turf/open/floor/plasteel/floorgrime, @@ -377,8 +375,8 @@ pixel_y = 10 }, /obj/structure/table/wood, -/obj/item/device/radio/off, -/obj/item/device/taperecorder, +/obj/item/radio/off, +/obj/item/taperecorder, /turf/open/floor/carpet, /area/crew_quarters/heads/hos) "abl" = ( @@ -600,7 +598,7 @@ name = "Head of Security RC"; pixel_y = 30 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = -31 @@ -856,7 +854,7 @@ c_tag = "Prison Cell 3"; network = list("ss13","prison") }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; @@ -887,7 +885,7 @@ c_tag = "Prison Cell 2"; network = list("ss13","prison") }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; @@ -909,7 +907,7 @@ c_tag = "Prison Cell 1"; network = list("ss13","prison") }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; @@ -1005,7 +1003,7 @@ /area/crew_quarters/heads/hos) "acR" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ on = 0; pixel_x = -3; pixel_y = 8 @@ -1233,10 +1231,10 @@ /area/crew_quarters/heads/hos) "adq" = ( /obj/structure/table/wood, -/obj/item/device/instrument/guitar{ +/obj/item/instrument/guitar{ pixel_x = -7 }, -/obj/item/device/instrument/eguitar{ +/obj/item/instrument/eguitar{ pixel_x = 5 }, /turf/open/floor/wood, @@ -1366,10 +1364,10 @@ /obj/item/folder/red{ pixel_x = 3 }, -/obj/item/device/taperecorder{ +/obj/item/taperecorder{ pixel_x = -3 }, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/item/reagent_containers/spray/pepper, /turf/open/floor/plasteel/dark, /area/security/execution/transfer) @@ -1554,7 +1552,7 @@ /area/security/execution/transfer) "aeb" = ( /obj/structure/table, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/dark, /area/security/execution/transfer) @@ -1847,15 +1845,6 @@ }, /turf/open/floor/plating, /area/security/main) -"aeD" = ( -/obj/structure/shuttle/engine/propulsion/burst{ - dir = 8 - }, -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_3) -"aeE" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_3) "aeG" = ( /obj/structure/cable, /obj/machinery/power/solar{ @@ -1882,7 +1871,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = 1; pixel_y = 5 }, @@ -2086,7 +2075,6 @@ height = 18; id = "emergency_home"; name = "BoxStation emergency evac bay"; - turf_type = /turf/open/space; width = 32 }, /turf/open/space/basic, @@ -2102,7 +2090,7 @@ /turf/open/floor/plasteel/showroomfloor, /area/security/main) "afd" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -2192,51 +2180,15 @@ /turf/open/floor/plating, /area/security/main) "afp" = ( -/obj/machinery/door/airlock/titanium{ - name = "Escape Pod Airlock" - }, -/obj/docking_port/mobile/pod{ +/obj/docking_port/stationary{ dir = 4; - id = "pod3"; - name = "escape pod 3"; - port_direction = 2; - preferred_direction = 4; - timid = 0 + dwidth = 1; + height = 4; + roundstart_template = /datum/map_template/shuttle/escape_pod/default; + width = 3 }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_3) -"afq" = ( -/obj/machinery/computer/shuttle/pod{ - pixel_y = -32; - possible_destinations = "pod_lavaland3"; - shuttleId = "pod3" - }, -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/status_display{ - pixel_y = 32 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_3) -"afr" = ( -/obj/item/device/radio/intercom{ - pixel_y = 25 - }, -/obj/item/storage/pod{ - pixel_x = 6; - pixel_y = -32 - }, -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/light/small, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_3) -"afs" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/pod_3) +/turf/open/space/basic, +/area/space) "aft" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 5 @@ -2303,7 +2255,7 @@ /turf/closed/wall/r_wall, /area/security/execution/transfer) "afB" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 @@ -2330,7 +2282,7 @@ /area/security/prison) "afD" = ( /obj/structure/table, -/obj/item/device/electropack, +/obj/item/electropack, /turf/open/floor/plasteel/red/side, /area/security/prison) "afE" = ( @@ -2339,7 +2291,7 @@ /area/hallway/secondary/exit) "afF" = ( /obj/structure/table, -/obj/item/device/assembly/signaler, +/obj/item/assembly/signaler, /obj/item/clothing/suit/straight_jacket, /turf/open/floor/plasteel/red/side, /area/security/prison) @@ -2431,7 +2383,7 @@ "afV" = ( /obj/structure/table, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/timer, +/obj/item/assembly/timer, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/security/main) @@ -2455,7 +2407,7 @@ /area/security/main) "afZ" = ( /obj/structure/table, -/obj/item/device/radio/off, +/obj/item/radio/off, /obj/item/screwdriver{ pixel_y = 10 }, @@ -2504,11 +2456,11 @@ /area/security/execution/transfer) "agh" = ( /obj/structure/table, -/obj/item/device/electropack, +/obj/item/electropack, /obj/item/screwdriver, /obj/item/wrench, /obj/item/clothing/head/helmet, -/obj/item/device/assembly/signaler, +/obj/item/assembly/signaler, /obj/machinery/light/small, /obj/machinery/airalarm{ dir = 1; @@ -2668,7 +2620,7 @@ /area/security/main) "agB" = ( /obj/structure/table, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/security/main) @@ -2997,7 +2949,7 @@ /area/security/prison) "ahq" = ( /obj/structure/table, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/dark, /area/security/prison) "ahr" = ( @@ -3009,7 +2961,7 @@ }, /area/security/brig) "ahs" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -3300,7 +3252,7 @@ "ahV" = ( /obj/structure/table, /obj/item/folder/red, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /turf/open/floor/plasteel/dark, /area/security/prison) "ahW" = ( @@ -3502,7 +3454,7 @@ /turf/open/floor/plasteel/red/side, /area/security/main) "ait" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -3821,7 +3773,7 @@ }, /area/security/courtroom) "ajj" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -4052,7 +4004,7 @@ /area/security/brig) "ajO" = ( /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; dir = 8; listening = 1; @@ -4652,7 +4604,7 @@ }, /area/ai_monitored/nuke_storage) "alw" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; @@ -4674,7 +4626,7 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; @@ -4765,7 +4717,7 @@ }, /area/security/courtroom) "alJ" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/neutral/side, /area/security/courtroom) "alK" = ( @@ -4946,7 +4898,7 @@ req_access_txt = "2" }, /obj/item/restraints/handcuffs, -/obj/item/device/radio/off, +/obj/item/radio/off, /turf/open/floor/plasteel/dark, /area/security/brig) "amn" = ( @@ -5515,7 +5467,7 @@ /obj/machinery/light_switch{ pixel_x = -20 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = 25 }, /turf/open/floor/wood, @@ -5567,7 +5519,7 @@ /obj/structure/sign/warning/vacuum/external{ pixel_y = 32 }, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plating, /area/maintenance/solars/starboard/fore) "aoj" = ( @@ -5693,7 +5645,7 @@ /obj/structure/chair{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -5939,8 +5891,14 @@ dir = 4 }, /area/hallway/primary/fore) +"apn" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/closed/wall, +/area/maintenance/fore/secondary) "apo" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, /turf/closed/wall, /area/maintenance/fore/secondary) "app" = ( @@ -6022,10 +5980,9 @@ /turf/open/floor/plating, /area/maintenance/fore/secondary) "apw" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; - name = "Air In"; - on = 1 + name = "Air In" }, /obj/effect/landmark/blobstart, /obj/effect/turf_decal/stripes/line{ @@ -6107,10 +6064,6 @@ /obj/machinery/portable_atmospherics/canister/water_vapor, /turf/open/floor/plasteel, /area/janitor) -"apH" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/pod_1) "apI" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/on{ dir = 1; @@ -6124,10 +6077,6 @@ "apJ" = ( /turf/closed/wall, /area/construction/mining/aux_base) -"apK" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/pod_2) "apL" = ( /obj/structure/table, /obj/effect/spawner/lootdrop/maintenance{ @@ -6144,11 +6093,8 @@ /turf/open/floor/plasteel/floorgrime, /area/maintenance/port/fore) "apN" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, /turf/open/floor/plating, -/area/shuttle/auxillary_base) +/area/construction/mining/aux_base) "apO" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 1 @@ -6220,9 +6166,6 @@ dir = 8; pixel_x = 24 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /turf/open/floor/plasteel/red/corner{ dir = 4 }, @@ -6456,9 +6399,6 @@ /obj/effect/landmark/xeno_spawn, /turf/open/floor/plating, /area/maintenance/starboard/fore) -"aqF" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_1) "aqG" = ( /obj/docking_port/stationary/random{ dir = 4; @@ -6467,15 +6407,6 @@ }, /turf/open/space, /area/space/nearstation) -"aqH" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_2) -"aqI" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "aqJ" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/machinery/door/airlock/external{ @@ -6501,13 +6432,6 @@ /obj/machinery/meter, /turf/open/floor/plating, /area/maintenance/port/fore) -"aqN" = ( -/obj/structure/closet/secure_closet/miner/unlocked, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "aqO" = ( /obj/structure/closet, /obj/effect/spawner/lootdrop/maintenance{ @@ -6622,7 +6546,7 @@ /area/lawoffice) "are" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -6776,15 +6700,6 @@ "arB" = ( /turf/closed/wall/r_wall, /area/hallway/secondary/entry) -"arC" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"arD" = ( -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "arE" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/yellow/side{ @@ -6879,7 +6794,7 @@ "arR" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plating, /area/security/vacantoffice/b) "arS" = ( @@ -7161,12 +7076,6 @@ "asC" = ( /turf/open/floor/plasteel/airless, /area/space/nearstation) -"asD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "asE" = ( /turf/closed/wall, /area/hallway/secondary/entry) @@ -7174,10 +7083,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/construction/mining/aux_base) -"asG" = ( -/obj/machinery/light, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "asH" = ( /obj/structure/closet/toolcloset, /turf/open/floor/plasteel/yellow/side{ @@ -7380,27 +7285,6 @@ dir = 8 }, /area/crew_quarters/dorms) -"atk" = ( -/obj/machinery/camera{ - c_tag = "Auxillary Mining Base"; - dir = 8; - network = list("ss13","auxbase") - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"atl" = ( -/obj/docking_port/mobile/auxillary_base{ - dheight = 4; - dir = 4; - dwidth = 4; - height = 9; - width = 9; - timid = 0 - }, -/obj/machinery/bluespace_beacon, -/obj/machinery/computer/auxillary_base, -/turf/closed/wall, -/area/shuttle/auxillary_base) "atm" = ( /turf/open/floor/wood, /area/crew_quarters/dorms) @@ -7683,7 +7567,7 @@ /area/lawoffice) "auh" = ( /obj/structure/table/wood, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/item/cartridge/lawyer, /turf/open/floor/wood, /area/lawoffice) @@ -7930,10 +7814,6 @@ }, /turf/open/floor/plasteel/floorgrime, /area/maintenance/department/electrical) -"auN" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "auO" = ( /obj/structure/closet/emcloset, /turf/open/floor/plating, @@ -8330,8 +8210,8 @@ pixel_x = 1; pixel_y = -1 }, -/obj/item/device/multitool, -/obj/item/device/radio/intercom{ +/obj/item/multitool, +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -8380,7 +8260,6 @@ height = 17; id = "syndicate_ne"; name = "northeast of station"; - turf_type = /turf/open/space; width = 23 }, /turf/open/space, @@ -8829,7 +8708,7 @@ dir = 8; pixel_x = 24 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, @@ -8845,12 +8724,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/hallway/secondary/entry) -"awX" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "awY" = ( /obj/machinery/light{ dir = 1 @@ -8896,7 +8769,7 @@ /obj/item/wallframe/camera, /obj/item/wallframe/camera, /obj/item/wallframe/camera, -/obj/item/device/assault_pod/mining, +/obj/item/assault_pod/mining, /obj/machinery/computer/security/telescreen{ desc = "Used for the Auxillary Mining Base."; dir = 8; @@ -9171,7 +9044,7 @@ /area/crew_quarters/dorms) "axM" = ( /obj/structure/table/wood, -/obj/item/device/paicard, +/obj/item/paicard, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "axN" = ( @@ -9421,8 +9294,8 @@ /obj/machinery/airalarm{ pixel_y = 23 }, -/obj/item/device/radio/off, -/obj/item/device/assembly/timer, +/obj/item/radio/off, +/obj/item/assembly/timer, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "ayw" = ( @@ -9523,8 +9396,7 @@ "ayK" = ( /obj/structure/closet/crate/rcd, /obj/machinery/camera/motion{ - c_tag = "EVA Motion Sensor"; - name = "motion-sensitive security camera" + c_tag = "EVA Motion Sensor" }, /turf/open/floor/plasteel/dark, /area/ai_monitored/storage/eva) @@ -9545,10 +9417,10 @@ dir = 1 }, /obj/item/hand_labeler, -/obj/item/device/flashlight, -/obj/item/device/flashlight, -/obj/item/device/flashlight, -/obj/item/device/flashlight, +/obj/item/flashlight, +/obj/item/flashlight, +/obj/item/flashlight, +/obj/item/flashlight, /turf/open/floor/plasteel/dark, /area/ai_monitored/storage/eva) "ayO" = ( @@ -9590,7 +9462,7 @@ pixel_x = -2; pixel_y = -1 }, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "ayS" = ( @@ -9608,8 +9480,8 @@ dir = 1 }, /obj/structure/table, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/signaler, +/obj/item/assembly/signaler, +/obj/item/assembly/signaler, /obj/item/stock_parts/cell/high/plus, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) @@ -9729,7 +9601,7 @@ /obj/structure/disposalpipe/segment{ dir = 5 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -9858,7 +9730,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "azC" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -10027,10 +9899,10 @@ /area/crew_quarters/toilet) "azY" = ( /obj/structure/table, -/obj/item/device/radio/off, -/obj/item/device/radio/off, -/obj/item/device/assembly/prox_sensor, -/obj/item/device/assembly/prox_sensor, +/obj/item/radio/off, +/obj/item/radio/off, +/obj/item/assembly/prox_sensor, +/obj/item/assembly/prox_sensor, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "azZ" = ( @@ -10074,7 +9946,7 @@ /turf/open/floor/plasteel/neutral/side, /area/crew_quarters/dorms) "aAg" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -11181,13 +11053,6 @@ dir = 4 }, /area/construction/mining/aux_base) -"aCU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/security/armory) "aCW" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/spawner/lootdrop/maintenance, @@ -11220,7 +11085,7 @@ "aDb" = ( /obj/structure/table, /obj/item/wirecutters, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = 1; pixel_y = 5 }, @@ -11235,7 +11100,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20 @@ -11285,11 +11150,11 @@ /area/gateway) "aDk" = ( /obj/structure/table, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = -8; pixel_y = -4 }, -/obj/item/device/assembly/igniter, +/obj/item/assembly/igniter, /obj/item/screwdriver{ pixel_y = 16 }, @@ -11305,7 +11170,7 @@ /area/storage/primary) "aDl" = ( /obj/structure/table, -/obj/item/device/t_scanner, +/obj/item/t_scanner, /obj/machinery/airalarm{ pixel_y = 23 }, @@ -11322,15 +11187,15 @@ /area/storage/primary) "aDn" = ( /obj/structure/table, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/signaler, -/obj/item/device/radio/intercom{ +/obj/item/assembly/signaler, +/obj/item/assembly/signaler, +/obj/item/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20 }, -/obj/item/device/multitool, -/obj/item/device/multitool{ +/obj/item/multitool, +/obj/item/multitool{ pixel_x = 4 }, /turf/open/floor/plasteel, @@ -11761,19 +11626,16 @@ /obj/structure/fans/tiny, /turf/open/floor/plating, /area/chapel/main) -"aEp" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 +"aEs" = ( +/obj/structure/window/reinforced, +/obj/vehicle/ridden/secway, +/obj/item/key/security, +/obj/machinery/door/window/eastleft{ + name = "Secway Docking Port" }, -/obj/structure/ore_box, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"aEt" = ( -/obj/item/restraints/handcuffs/fake, -/obj/effect/decal/cleanable/blood/old, -/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears, -/turf/open/floor/plating, -/area/maintenance/bar) +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/showroomfloor, +/area/space) "aEz" = ( /obj/machinery/power/apc{ dir = 4; @@ -11967,18 +11829,18 @@ /area/gateway) "aES" = ( /obj/structure/table, -/obj/item/device/radio/off{ +/obj/item/radio/off{ pixel_y = 6 }, -/obj/item/device/radio/off{ +/obj/item/radio/off{ pixel_x = 6; pixel_y = 4 }, -/obj/item/device/radio/off{ +/obj/item/radio/off{ pixel_x = -6; pixel_y = 4 }, -/obj/item/device/radio/off, +/obj/item/radio/off, /turf/open/floor/plasteel, /area/gateway) "aET" = ( @@ -12224,13 +12086,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/dark, /area/chapel/main) -"aFD" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "aFG" = ( /turf/open/floor/plasteel/arrival{ dir = 4 @@ -12280,9 +12135,9 @@ /turf/open/floor/plasteel/red/side, /area/security/checkpoint/auxiliary) "aFL" = ( -/obj/item/device/radio/off, +/obj/item/radio/off, /obj/item/crowbar, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/structure/table, /turf/open/floor/plasteel/red/side{ dir = 6 @@ -12300,7 +12155,7 @@ /obj/item/cultivator, /obj/item/hatchet, /obj/item/crowbar, -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /obj/item/reagent_containers/glass/bucket, /turf/open/floor/plasteel/green/side{ dir = 4 @@ -12381,7 +12236,7 @@ /turf/open/floor/plasteel, /area/gateway) "aFX" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -12656,7 +12511,7 @@ /obj/structure/mirror{ pixel_x = -28 }, -/obj/item/device/flashlight/lamp/bananalamp{ +/obj/item/flashlight/lamp/bananalamp{ pixel_y = 3 }, /turf/open/floor/plasteel/redblue, @@ -12910,7 +12765,7 @@ /area/storage/primary) "aHf" = ( /obj/structure/closet/wardrobe/chaplain_black, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = 25 }, /turf/open/floor/plasteel/grimy, @@ -13547,7 +13402,7 @@ "aIN" = ( /obj/structure/table, /obj/item/wrench, -/obj/item/device/analyzer, +/obj/item/analyzer, /turf/open/floor/plasteel, /area/storage/primary) "aIO" = ( @@ -13585,7 +13440,7 @@ /obj/item/cultivator, /obj/item/crowbar, /obj/item/reagent_containers/glass/bucket, -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /obj/machinery/firealarm{ dir = 8; pixel_x = -24 @@ -13597,8 +13452,8 @@ "aIT" = ( /obj/item/storage/bag/plants/portaseeder, /obj/structure/table/glass, -/obj/item/device/plant_analyzer, -/obj/item/device/radio/intercom{ +/obj/item/plant_analyzer, +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -13635,7 +13490,7 @@ "aIW" = ( /obj/structure/table, /obj/item/crowbar, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, @@ -13972,7 +13827,7 @@ /area/hydroponics) "aJM" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp{ +/obj/item/flashlight/lamp{ pixel_y = 10 }, /obj/structure/disposalpipe/segment, @@ -14166,7 +14021,7 @@ /turf/open/floor/plating, /area/storage/primary) "aKq" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = 25 }, /obj/machinery/camera{ @@ -14315,8 +14170,8 @@ /turf/open/floor/wood, /area/crew_quarters/theatre) "aKK" = ( -/obj/structure/closet/wardrobe/botanist, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/closet/secure_closet/hydroponics, /turf/open/floor/plasteel/hydrofloor, /area/hydroponics) "aKL" = ( @@ -14618,7 +14473,7 @@ /area/hallway/secondary/entry) "aLA" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -15037,6 +14892,7 @@ /area/library) "aMI" = ( /obj/machinery/light/small, +/obj/structure/closet/wardrobe/botanist, /turf/open/floor/plasteel/hydrofloor, /area/hydroponics) "aMJ" = ( @@ -15315,8 +15171,8 @@ /obj/item/stack/sheet/metal/fifty, /obj/item/stack/sheet/glass/fifty, /obj/item/stack/cable_coil, -/obj/item/device/flashlight/lamp, -/obj/item/device/flashlight/lamp/green, +/obj/item/flashlight/lamp, +/obj/item/flashlight/lamp/green, /turf/open/floor/wood, /area/crew_quarters/bar) "aNE" = ( @@ -15465,7 +15321,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/office) "aNX" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1480; name = "Confessional Intercom"; @@ -15517,7 +15373,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit) "aOe" = ( -/obj/item/device/beacon, +/obj/item/beacon, /obj/machinery/camera{ c_tag = "Arrivals Bay 1 South" }, @@ -15939,9 +15795,9 @@ /area/library) "aPi" = ( /obj/structure/table/wood, -/obj/item/device/taperecorder, -/obj/item/device/camera, -/obj/item/device/radio/intercom{ +/obj/item/taperecorder, +/obj/item/camera, +/obj/item/radio/intercom{ pixel_y = 25 }, /turf/open/floor/engine/cult, @@ -15983,7 +15839,7 @@ c_tag = "Escape Arm Holding Area"; dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_x = -28 @@ -16018,7 +15874,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "aPv" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20 @@ -16247,7 +16103,7 @@ "aQb" = ( /obj/structure/window/reinforced, /obj/structure/table/wood, -/obj/item/device/instrument/violin, +/obj/item/instrument/violin, /turf/open/floor/wood, /area/crew_quarters/theatre) "aQc" = ( @@ -16384,7 +16240,7 @@ }, /area/chapel/main) "aQz" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1480; name = "Confessional Intercom"; @@ -16666,9 +16522,9 @@ /obj/structure/table/reinforced, /obj/item/storage/toolbox/emergency, /obj/item/wrench, -/obj/item/device/assembly/timer, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/signaler, +/obj/item/assembly/timer, +/obj/item/assembly/signaler, +/obj/item/assembly/signaler, /turf/open/floor/plasteel, /area/bridge) "aRt" = ( @@ -16721,7 +16577,7 @@ /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) "aRB" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = 25 }, /obj/machinery/camera{ @@ -16947,7 +16803,7 @@ /area/maintenance/port) "aSh" = ( /obj/structure/closet/wardrobe/mixed, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = -27 @@ -17020,8 +16876,8 @@ /area/bridge) "aSv" = ( /obj/structure/table/reinforced, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel, /area/bridge) "aSw" = ( @@ -17059,8 +16915,8 @@ /area/bridge) "aSz" = ( /obj/structure/table/reinforced, -/obj/item/device/aicard, -/obj/item/device/multitool, +/obj/item/aicard, +/obj/item/multitool, /turf/open/floor/plasteel/blue/side{ dir = 8 }, @@ -17429,8 +17285,8 @@ "aTF" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/table, -/obj/item/device/camera_film, -/obj/item/device/camera, +/obj/item/camera_film, +/obj/item/camera, /turf/open/floor/plasteel, /area/storage/art) "aTG" = ( @@ -17484,7 +17340,7 @@ /obj/structure/rack, /obj/item/clothing/gloves/color/fyellow, /obj/item/clothing/suit/hazardvest, -/obj/item/device/multitool, +/obj/item/multitool, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plasteel, /area/storage/tools) @@ -17717,7 +17573,7 @@ /area/hydroponics) "aUA" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/wood, /area/security/vacantoffice) "aUB" = ( @@ -17731,7 +17587,7 @@ /area/library) "aUD" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -17850,7 +17706,7 @@ /area/crew_quarters/locker) "aUW" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, +/obj/item/flashlight/lamp/green, /turf/open/floor/wood, /area/security/vacantoffice) "aUX" = ( @@ -18030,7 +17886,7 @@ /turf/open/floor/plasteel, /area/bridge) "aVp" = ( -/obj/item/device/beacon, +/obj/item/beacon, /obj/structure/cable{ icon_state = "4-8" }, @@ -18258,8 +18114,8 @@ /area/library) "aVS" = ( /obj/structure/table/wood, -/obj/item/device/camera_film, -/obj/item/device/camera_film, +/obj/item/camera_film, +/obj/item/camera_film, /turf/open/floor/wood, /area/library) "aVT" = ( @@ -18285,7 +18141,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/main) "aVW" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_x = -25 }, /turf/open/floor/plasteel/escape{ @@ -19275,7 +19131,7 @@ /area/security/detectives_office) "aYj" = ( /obj/structure/table/wood, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/structure/disposalpipe/segment{ dir = 10 }, @@ -19332,7 +19188,7 @@ }, /area/bridge) "aYr" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -19834,7 +19690,7 @@ /area/quartermaster/warehouse) "aZJ" = ( /obj/structure/table/wood, -/obj/item/device/camera/detective, +/obj/item/camera/detective, /turf/open/floor/carpet, /area/security/detectives_office) "aZK" = ( @@ -20184,7 +20040,7 @@ /turf/open/floor/carpet, /area/bridge/meeting_room) "baJ" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -20611,7 +20467,7 @@ /area/quartermaster/warehouse) "bbT" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, +/obj/item/flashlight/lamp/green, /turf/open/floor/carpet, /area/security/detectives_office) "bbU" = ( @@ -20980,13 +20836,13 @@ /area/bridge/meeting_room) "bcY" = ( /obj/item/hand_labeler, -/obj/item/device/assembly/timer, +/obj/item/assembly/timer, /obj/structure/table, /turf/open/floor/wood, /area/bridge/meeting_room) "bcZ" = ( /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; freerange = 1; name = "Station Intercom (Command)" @@ -21439,7 +21295,7 @@ /obj/machinery/computer/upload/borg{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; listening = 0; @@ -21714,7 +21570,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "beN" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -21729,7 +21585,7 @@ /area/maintenance/disposal) "beP" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "garbage" }, /turf/open/floor/plating, @@ -21748,7 +21604,7 @@ /area/maintenance/disposal) "beR" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "garbage" }, /obj/machinery/recycler, @@ -21760,7 +21616,7 @@ /area/maintenance/disposal) "beS" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "garbage" }, /obj/machinery/light/small{ @@ -21775,8 +21631,7 @@ "beU" = ( /obj/machinery/conveyor{ dir = 6; - id = "garbage"; - verted = -1 + id = "garbage" }, /turf/open/floor/plating, /area/maintenance/disposal) @@ -22030,7 +21885,7 @@ /area/crew_quarters/heads/captain) "bfC" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, +/obj/item/flashlight/lamp/green, /turf/open/floor/wood, /area/crew_quarters/heads/captain) "bfD" = ( @@ -22151,7 +22006,7 @@ }, /area/hallway/primary/starboard) "bfY" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -22230,23 +22085,15 @@ /area/hallway/secondary/entry) "bgj" = ( /obj/machinery/conveyor{ - dir = 4; + dir = 8; id = "garbage" }, /turf/open/floor/plating, /area/maintenance/disposal) "bgk" = ( -/obj/machinery/conveyor{ - dir = 5; - id = "garbage" - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bgl" = ( /obj/machinery/conveyor{ dir = 10; - id = "garbage"; - verted = -1 + id = "garbage" }, /turf/open/floor/plating, /area/maintenance/disposal) @@ -22518,7 +22365,7 @@ dir = 8; pixel_x = 24 }, -/obj/item/device/camera, +/obj/item/camera, /obj/item/storage/photo_album{ pixel_y = -10 }, @@ -22835,7 +22682,6 @@ /area/maintenance/starboard) "bhI" = ( /obj/machinery/conveyor{ - dir = 1; id = "garbage" }, /turf/open/floor/plating, @@ -22894,13 +22740,6 @@ }, /turf/open/floor/plating, /area/maintenance/port) -"bhP" = ( -/obj/machinery/flasher{ - id = "Cell 2"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) "bhQ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -22990,7 +22829,7 @@ /obj/structure/disposalpipe/trunk{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -23051,7 +22890,7 @@ /turf/closed/wall/r_wall, /area/engine/gravity_generator) "bik" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; freerange = 1; name = "Station Intercom (Command)"; @@ -23155,7 +22994,7 @@ /obj/machinery/computer/secure_data{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_x = 25 }, /turf/open/floor/plasteel/red/side{ @@ -23376,7 +23215,6 @@ /area/maintenance/disposal) "bjb" = ( /obj/machinery/conveyor{ - dir = 1; id = "garbage" }, /obj/structure/sign/warning/vacuum{ @@ -23510,7 +23348,7 @@ "bjp" = ( /obj/structure/table, /obj/machinery/cell_charger, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -23551,7 +23389,7 @@ /area/quartermaster/storage) "bju" = ( /obj/machinery/photocopier, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -23963,9 +23801,7 @@ /area/maintenance/starboard) "bkz" = ( /obj/machinery/conveyor{ - dir = 1; - id = "garbage"; - layer = 2.5 + id = "garbage" }, /obj/machinery/door/poddoor/preopen{ id = "Disposal Exit"; @@ -24067,7 +23903,7 @@ /obj/item/screwdriver{ pixel_y = 10 }, -/obj/item/device/radio/off, +/obj/item/radio/off, /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/red/side{ dir = 6 @@ -24240,7 +24076,7 @@ pixel_y = 4 }, /obj/item/clothing/glasses/science, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_x = -28 @@ -24482,10 +24318,10 @@ empty = 1; name = "First-Aid (empty)" }, -/obj/item/device/healthanalyzer, -/obj/item/device/healthanalyzer, -/obj/item/device/healthanalyzer, -/obj/item/device/radio/intercom{ +/obj/item/healthanalyzer, +/obj/item/healthanalyzer, +/obj/item/healthanalyzer, +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -24906,7 +24742,7 @@ }, /area/medical/chemistry) "bmJ" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; freerange = 0; frequency = 1485; @@ -25096,7 +24932,7 @@ pixel_y = 5 }, /obj/item/clothing/glasses/welding, -/obj/item/device/multitool{ +/obj/item/multitool{ pixel_x = 3 }, /turf/open/floor/plasteel, @@ -25107,12 +24943,12 @@ amount = 10 }, /obj/item/stack/cable_coil, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/machinery/firealarm{ dir = 4; pixel_x = 24 @@ -25486,7 +25322,7 @@ /area/crew_quarters/heads/captain) "bnZ" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, +/obj/item/flashlight/lamp/green, /turf/open/floor/carpet, /area/crew_quarters/heads/captain) "boa" = ( @@ -25523,7 +25359,7 @@ "bod" = ( /obj/structure/table, /obj/item/folder/white, -/obj/item/device/radio/headset/headset_med, +/obj/item/radio/headset/headset_med, /turf/open/floor/plasteel/white, /area/medical/chemistry) "boe" = ( @@ -25650,19 +25486,19 @@ /area/science/robotics/lab) "bov" = ( /obj/structure/table, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, @@ -25755,9 +25591,9 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/item/device/mmi, -/obj/item/device/mmi, -/obj/item/device/mmi, +/obj/item/mmi, +/obj/item/mmi, +/obj/item/mmi, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "boH" = ( @@ -26200,7 +26036,7 @@ "bpH" = ( /obj/structure/table/glass, /obj/item/folder/white, -/obj/item/device/radio/headset/headset_medsci, +/obj/item/radio/headset/headset_medsci, /obj/machinery/requests_console{ department = "Genetics"; departmentType = 0; @@ -26467,8 +26303,8 @@ layer = 2.9 }, /obj/structure/table/reinforced, -/obj/item/device/destTagger, -/obj/item/device/destTagger, +/obj/item/destTagger, +/obj/item/destTagger, /turf/open/floor/plasteel/brown{ dir = 1 }, @@ -26565,7 +26401,7 @@ layer = 3 }, /obj/item/pen/blue, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -35 }, @@ -27015,7 +26851,7 @@ /obj/machinery/airalarm{ pixel_y = 23 }, -/obj/item/device/radio/off, +/obj/item/radio/off, /turf/open/floor/plasteel/white/side{ dir = 2 }, @@ -27110,7 +26946,7 @@ departmentType = 2; pixel_x = -30 }, -/obj/item/device/multitool, +/obj/item/multitool, /obj/machinery/camera{ c_tag = "Cargo Office"; dir = 4 @@ -27279,7 +27115,7 @@ pixel_y = 1 }, /obj/structure/table, -/obj/item/device/beacon, +/obj/item/beacon, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, @@ -27299,7 +27135,7 @@ /turf/open/floor/plasteel, /area/teleporter) "bsl" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -27349,7 +27185,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 0; frequency = 1485; @@ -27380,7 +27216,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bst" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 0; frequency = 1485; @@ -27595,7 +27431,7 @@ /area/quartermaster/office) "bsW" = ( /obj/structure/closet/wardrobe/robotics_black, -/obj/item/device/radio/headset/headset_sci{ +/obj/item/radio/headset/headset_sci{ pixel_x = -3 }, /turf/open/floor/plasteel/white, @@ -28070,7 +27906,7 @@ /area/medical/genetics) "bub" = ( /obj/machinery/light, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -35 }, @@ -28298,8 +28134,8 @@ /area/maintenance/starboard) "buB" = ( /obj/machinery/conveyor_switch/oneway{ - convdir = -1; - id = "QMLoad" + id = "QMLoad"; + dir = 8 }, /turf/open/floor/plasteel, /area/quartermaster/storage) @@ -28866,7 +28702,7 @@ /area/maintenance/starboard) "bvS" = ( /obj/machinery/conveyor{ - dir = 4; + dir = 8; id = "QMLoad" }, /obj/machinery/door/poddoor{ @@ -28878,14 +28714,14 @@ "bvT" = ( /obj/structure/plasticflaps, /obj/machinery/conveyor{ - dir = 4; + dir = 8; id = "QMLoad" }, /turf/open/floor/plating, /area/quartermaster/storage) "bvU" = ( /obj/machinery/conveyor{ - dir = 4; + dir = 8; id = "QMLoad" }, /obj/machinery/light, @@ -28900,7 +28736,7 @@ /area/quartermaster/storage) "bvV" = ( /obj/machinery/conveyor{ - dir = 4; + dir = 8; id = "QMLoad" }, /obj/effect/turf_decal/stripes/line{ @@ -29015,7 +28851,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bwi" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_x = -28 @@ -29962,7 +29798,7 @@ /area/crew_quarters/heads/hor) "bys" = ( /obj/structure/rack, -/obj/item/device/aicard, +/obj/item/aicard, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -30113,7 +29949,7 @@ /turf/open/floor/plasteel, /area/security/checkpoint/supply) "byM" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 @@ -30359,7 +30195,7 @@ /area/medical/genetics) "bzr" = ( /obj/structure/closet/wardrobe/genetics_white, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -30403,11 +30239,7 @@ /turf/open/floor/plating, /area/science/server) "bzx" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - target_temperature = 80; - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on, /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plasteel/dark, /area/science/server) @@ -30540,10 +30372,10 @@ /area/crew_quarters/heads/hor) "bzM" = ( /obj/structure/rack, -/obj/item/device/taperecorder{ +/obj/item/taperecorder{ pixel_x = -3 }, -/obj/item/device/paicard{ +/obj/item/paicard{ pixel_x = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -30667,7 +30499,7 @@ /obj/machinery/light{ dir = 4 }, -/obj/item/device/radio/off, +/obj/item/radio/off, /turf/open/floor/plasteel/red/side{ dir = 4 }, @@ -30967,14 +30799,14 @@ /area/maintenance/port/aft) "bAL" = ( /obj/structure/table, -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /obj/item/stock_parts/cell/high/plus, /turf/open/floor/plating, /area/storage/tech) "bAM" = ( /obj/structure/table, -/obj/item/device/analyzer, -/obj/item/device/healthanalyzer, +/obj/item/analyzer, +/obj/item/healthanalyzer, /obj/machinery/light/small{ dir = 1 }, @@ -31017,7 +30849,7 @@ c_tag = "Quartermaster's Office"; dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -35 }, @@ -31488,7 +31320,7 @@ /turf/open/floor/plasteel/dark, /area/science/server) "bBY" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_x = -25 }, /obj/structure/filingcabinet, @@ -31500,7 +31332,7 @@ /obj/item/screwdriver{ pixel_y = 10 }, -/obj/item/device/radio/off, +/obj/item/radio/off, /turf/open/floor/plasteel/red/side, /area/security/checkpoint/science) "bCa" = ( @@ -31584,7 +31416,7 @@ dir = 1; network = list("ss13","rd") }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -31898,7 +31730,7 @@ /turf/open/floor/plasteel/white, /area/medical/sleeper) "bCU" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 0; frequency = 1485; @@ -32099,16 +31931,16 @@ /area/maintenance/aft) "bDv" = ( /obj/structure/table, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = 1; pixel_y = 5 }, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = 1; pixel_y = 5 }, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/machinery/ai_status_display{ pixel_x = -32 }, @@ -32438,7 +32270,7 @@ /area/crew_quarters/heads/cmo) "bEl" = ( /obj/structure/disposalpipe/segment, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_x = 25 }, /obj/machinery/camera{ @@ -32526,7 +32358,7 @@ /area/science/mixing) "bEw" = ( /obj/machinery/portable_atmospherics/canister, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = 25 }, /obj/effect/turf_decal/stripes/line{ @@ -32767,7 +32599,7 @@ /area/storage/tech) "bEX" = ( /obj/structure/table, -/obj/item/device/aicard, +/obj/item/aicard, /obj/item/aiModule/reset, /turf/open/floor/plating, /area/storage/tech) @@ -33231,19 +33063,19 @@ /turf/open/floor/plasteel/white, /area/science/mixing) "bGl" = ( -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -4; pixel_y = 1 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = 8; pixel_y = 9 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = 9; pixel_y = -2 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_y = 2 }, /obj/structure/table/reinforced, @@ -33318,7 +33150,7 @@ /obj/machinery/cell_charger{ pixel_y = 5 }, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plating, /area/storage/tech) "bGw" = ( @@ -33759,7 +33591,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = 25 }, /obj/machinery/light/small{ @@ -33794,7 +33626,7 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 @@ -33918,7 +33750,7 @@ pixel_x = 1; pixel_y = -1 }, -/obj/item/device/multitool, +/obj/item/multitool, /obj/item/clothing/glasses/meson, /obj/machinery/light/small, /turf/open/floor/plating, @@ -34502,7 +34334,7 @@ /turf/open/floor/plating/airless, /area/science/test_area) "bJa" = ( -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -34909,18 +34741,18 @@ /turf/open/floor/plasteel/white, /area/science/mixing) "bJW" = ( -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve{ pixel_x = -5 }, -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve{ pixel_x = -5 }, -/obj/item/device/transfer_valve, -/obj/item/device/transfer_valve, -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve, +/obj/item/transfer_valve, +/obj/item/transfer_valve{ pixel_x = 5 }, -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve{ pixel_x = 5 }, /obj/machinery/requests_console{ @@ -34934,18 +34766,18 @@ /turf/open/floor/plasteel/white, /area/science/mixing) "bJX" = ( -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_y = 8 }, -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_x = -8; pixel_y = 5 }, -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_x = 6; pixel_y = 5 }, -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_x = -2; pixel_y = -2 }, @@ -34957,19 +34789,19 @@ /turf/open/floor/plasteel/white, /area/science/mixing) "bJZ" = ( -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = 5; pixel_y = 4 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = -4; pixel_y = 2 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = 6; pixel_y = -4 }, -/obj/item/device/assembly/timer, +/obj/item/assembly/timer, /obj/structure/table/reinforced, /turf/open/floor/plasteel/white, /area/science/mixing) @@ -35567,7 +35399,7 @@ /turf/open/floor/plating/airless, /area/science/test_area) "bLp" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plating/airless, /area/science/test_area) "bLq" = ( @@ -35651,8 +35483,8 @@ pixel_y = -1 }, /obj/item/clothing/gloves/color/yellow, -/obj/item/device/t_scanner, -/obj/item/device/multitool, +/obj/item/t_scanner, +/obj/item/multitool, /turf/open/floor/plating, /area/storage/tech) "bLB" = ( @@ -35880,7 +35712,7 @@ pixel_y = 5 }, /obj/item/stack/cable_coil, -/obj/item/device/multitool, +/obj/item/multitool, /obj/item/stock_parts/cell/high/plus, /obj/structure/window/reinforced{ dir = 4 @@ -36005,7 +35837,7 @@ id = "mixingsparker"; pixel_x = 25 }, -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxins_mixing_output{ dir = 4 }, /turf/open/floor/engine/vacuum, @@ -36016,9 +35848,8 @@ master_tag = "tox_airlock_control"; pixel_y = 24 }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/engine, @@ -36479,7 +36310,7 @@ /turf/open/floor/plating/airless, /area/science/test_area) "bNF" = ( -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/effect/turf_decal/stripes/line{ dir = 2 }, @@ -36491,7 +36322,7 @@ /area/science/test_area) "bNH" = ( /obj/structure/table/reinforced, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -26 }, @@ -36542,7 +36373,7 @@ /obj/structure/disposalpipe/segment{ dir = 6 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -36722,7 +36553,7 @@ /turf/open/floor/plasteel/white, /area/medical/virology) "bOo" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; freerange = 1; name = "Station Intercom (Telecomms)"; @@ -36850,10 +36681,8 @@ id = "mixingsparker"; pixel_x = 25 }, -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4; - frequency = 1441; - id = "air_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxins_mixing_input{ + dir = 4 }, /turf/open/floor/engine/vacuum, /area/science/mixing) @@ -36861,9 +36690,8 @@ /obj/structure/sign/warning/fire{ pixel_y = -32 }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/engine, @@ -37347,7 +37175,7 @@ /area/science/xenobiology) "bPE" = ( /obj/structure/table/reinforced, -/obj/item/device/slime_scanner, +/obj/item/slime_scanner, /obj/effect/turf_decal/stripes/line{ dir = 9 }, @@ -37370,7 +37198,7 @@ /area/science/circuit) "bPG" = ( /obj/machinery/chem_master, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -37564,7 +37392,7 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/item/device/radio/off, +/obj/item/radio/off, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/light_switch{ pixel_x = -27; @@ -37654,7 +37482,7 @@ c_tag = "Security Post - Engineering"; dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 @@ -37913,7 +37741,7 @@ network = list("rd"); pixel_y = 28 }, -/obj/item/device/integrated_circuit_printer, +/obj/item/integrated_circuit_printer, /turf/open/floor/plasteel/white, /area/science/circuit) "bQZ" = ( @@ -38376,9 +38204,9 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/item/device/electropack, -/obj/item/device/healthanalyzer, -/obj/item/device/assembly/signaler, +/obj/item/electropack, +/obj/item/healthanalyzer, +/obj/item/assembly/signaler, /turf/open/floor/plasteel, /area/science/misc_lab) "bSf" = ( @@ -38570,7 +38398,7 @@ /obj/machinery/light{ dir = 8 }, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plasteel, /area/engine/atmos) "bSG" = ( @@ -38586,9 +38414,9 @@ /obj/structure/table, /obj/item/stack/sheet/glass/fifty, /obj/item/storage/belt/utility, -/obj/item/device/t_scanner, -/obj/item/device/t_scanner, -/obj/item/device/t_scanner, +/obj/item/t_scanner, +/obj/item/t_scanner, +/obj/item/t_scanner, /turf/open/floor/plasteel, /area/engine/atmos) "bSI" = ( @@ -38852,38 +38680,38 @@ /area/science/misc_lab) "bTn" = ( /obj/structure/table, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = -5; pixel_y = 3 }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = 5; pixel_y = -4 }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = 2; pixel_y = 6 }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = 2; pixel_y = -1 }, /obj/machinery/light{ dir = 4 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = -3; pixel_y = 3 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = -3; pixel_y = 3 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = -3; pixel_y = 3 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = -3; pixel_y = 3 }, @@ -39483,7 +39311,7 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bUN" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel, /area/engine/atmos) "bUO" = ( @@ -39626,7 +39454,7 @@ }, /area/hallway/primary/aft) "bVg" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20 @@ -39975,7 +39803,7 @@ name = "Virology Requests Console"; pixel_x = -32 }, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /obj/item/clothing/glasses/hud/health, /turf/open/floor/plasteel/whitegreen/side{ dir = 8 @@ -39984,7 +39812,7 @@ "bWg" = ( /obj/structure/table, /obj/item/hand_labeler, -/obj/item/device/radio/headset/headset_med, +/obj/item/radio/headset/headset_med, /turf/open/floor/plasteel/whitegreen/side{ dir = 4 }, @@ -40055,7 +39883,7 @@ /turf/open/floor/engine, /area/science/xenobiology) "bWo" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_x = -25 }, /turf/open/floor/plasteel/floorgrime, @@ -40247,7 +40075,7 @@ /turf/closed/wall/r_wall, /area/security/checkpoint/engineering) "bWR" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -40304,7 +40132,7 @@ /area/medical/virology) "bWX" = ( /obj/structure/table/glass, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_x = -25 }, /obj/machinery/light{ @@ -40415,7 +40243,7 @@ /obj/item/folder/white, /obj/item/folder/white, /obj/item/pen, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /turf/open/floor/plasteel/floorgrime, /area/science/misc_lab) "bXj" = ( @@ -40926,8 +40754,7 @@ "bYv" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "Mix to Space"; - on = 0 + name = "Mix to Space" }, /turf/open/floor/plasteel/floorgrime, /area/maintenance/port/aft) @@ -41186,8 +41013,7 @@ "bZl" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "Mix to Port"; - on = 0 + name = "Mix to Port" }, /obj/machinery/light/small, /turf/open/floor/plating, @@ -41525,7 +41351,7 @@ /turf/open/floor/engine, /area/science/xenobiology) "bZY" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_x = -25 }, /turf/open/floor/engine, @@ -41551,7 +41377,7 @@ /area/maintenance/starboard/aft) "cad" = ( /obj/structure/table, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plating, /area/maintenance/starboard/aft) "cae" = ( @@ -41964,7 +41790,7 @@ /turf/open/floor/engine, /area/science/misc_lab) "caY" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/engine, /area/science/misc_lab) "caZ" = ( @@ -42009,9 +41835,9 @@ /area/science/misc_lab) "cbe" = ( /obj/structure/table/reinforced, -/obj/item/device/integrated_electronics/analyzer, -/obj/item/device/integrated_electronics/debugger, -/obj/item/device/integrated_electronics/wirer, +/obj/item/integrated_electronics/analyzer, +/obj/item/integrated_electronics/debugger, +/obj/item/integrated_electronics/wirer, /turf/open/floor/plasteel/white, /area/science/circuit) "cbf" = ( @@ -42056,10 +41882,9 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 8; - name = "Mix to Space"; - on = 1 + name = "Mix to Space" }, /turf/open/floor/plating/airless, /area/maintenance/port/aft) @@ -42400,7 +42225,7 @@ /area/science/misc_lab) "cbY" = ( /obj/structure/table/reinforced, -/obj/item/device/multitool, +/obj/item/multitool, /obj/item/screwdriver, /obj/machinery/requests_console{ department = "Science"; @@ -42420,7 +42245,7 @@ network = list("rd"); pixel_y = -28 }, -/obj/item/device/integrated_circuit_printer, +/obj/item/integrated_circuit_printer, /turf/open/floor/plasteel/white, /area/science/circuit) "cca" = ( @@ -42488,7 +42313,7 @@ /area/tcommsat/server) "cci" = ( /obj/structure/table, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plasteel/yellow/side{ dir = 9 }, @@ -43224,7 +43049,7 @@ /area/tcommsat/server) "cee" = ( /obj/structure/table, -/obj/item/device/radio/off, +/obj/item/radio/off, /turf/open/floor/plasteel/yellow/side{ dir = 10 }, @@ -43990,11 +43815,7 @@ /turf/open/floor/plating, /area/maintenance/starboard/aft) "cgn" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - target_temperature = 80; - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on, /obj/effect/turf_decal/stripes/line{ dir = 9 }, @@ -45104,7 +44925,7 @@ /obj/machinery/light{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 @@ -45180,8 +45001,7 @@ "cju" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 1; - name = "Incinerator to Output"; - on = 0 + name = "Incinerator to Output" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -45544,12 +45364,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"ckq" = ( -/obj/structure/shuttle/engine/propulsion/burst{ - dir = 4 - }, -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_2) "ckr" = ( /obj/structure/reagent_dispensers/fueltank, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -45832,8 +45646,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/components/binary/pump{ dir = 4; - name = "Mix to Incinerator"; - on = 0 + name = "Mix to Incinerator" }, /turf/open/floor/plasteel/floorgrime, /area/maintenance/disposal/incinerator) @@ -45851,7 +45664,7 @@ /turf/open/floor/plasteel/floorgrime, /area/maintenance/disposal/incinerator) "clg" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -46187,6 +46000,18 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, +/obj/machinery/embedded_controller/radio/airlock_controller{ + airpump_tag = "incinerator_airlock_pump"; + exterior_door_tag = "incinerator_airlock_exterior"; + id_tag = "incinerator_airlock_control"; + interior_door_tag = "incinerator_airlock_interior"; + name = "Incinerator Access Console"; + pixel_x = 38; + pixel_y = 6; + req_access_txt = "12"; + sanitize_external = 1; + sensor_tag = "incinerator_airlock_sensor" + }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "cmg" = ( @@ -46412,9 +46237,8 @@ /turf/open/floor/plasteel, /area/construction) "cmY" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 2; - on = 1 +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 2 }, /obj/machinery/light/small{ dir = 8 @@ -46434,9 +46258,8 @@ /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "cmZ" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1 }, /obj/structure/sign/warning/fire{ pixel_x = 32 @@ -46674,10 +46497,9 @@ /turf/open/floor/plating, /area/maintenance/aft) "cnF" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 2; - name = "Waste Out"; - on = 1 + name = "Waste Out" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -46893,15 +46715,13 @@ /turf/open/floor/plasteel, /area/engine/engineering) "cop" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - frequency = 1441; - id = "inc_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/incinerator_input{ + dir = 1 }, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "coq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/incinerator_output{ dir = 1 }, /obj/structure/sign/warning/vacuum/external{ @@ -46911,14 +46731,15 @@ /area/maintenance/disposal/incinerator) "cor" = ( /obj/machinery/igniter{ - icon_state = "igniter0"; - id = "Incinerator"; - luminosity = 2; - on = 0 + id = "Incinerator" }, /obj/structure/cable/yellow{ icon_state = "1-2" }, +/obj/machinery/air_sensor{ + pixel_x = -32; + pixel_y = -32 + }, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "cos" = ( @@ -47132,15 +46953,6 @@ }, /turf/open/floor/plating, /area/engine/engineering) -"cpc" = ( -/obj/structure/shuttle/engine/propulsion/burst{ - dir = 8 - }, -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_4) -"cpd" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_4) "cpe" = ( /obj/docking_port/stationary/random{ dir = 8; @@ -47260,7 +47072,7 @@ icon_state = "1-2" }, /obj/structure/table/glass, -/obj/item/device/flashlight, +/obj/item/flashlight, /turf/open/floor/plasteel, /area/engine/engineering) "cpx" = ( @@ -47294,6 +47106,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/light{ + dir = 8 + }, /turf/open/floor/plasteel, /area/engine/engineering) "cpE" = ( @@ -47318,52 +47133,6 @@ }, /turf/open/floor/plating, /area/engine/engineering) -"cpJ" = ( -/obj/machinery/door/airlock/titanium{ - name = "Escape Pod Airlock" - }, -/obj/docking_port/mobile/pod{ - dir = 4; - id = "pod4"; - name = "escape pod 4"; - port_direction = 2; - preferred_direction = 4; - timid = 0 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_4) -"cpK" = ( -/obj/machinery/computer/shuttle/pod{ - pixel_y = -32; - possible_destinations = "pod_lavaland2"; - shuttleId = "pod2" - }, -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/status_display{ - pixel_y = 32 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_2) -"cpL" = ( -/obj/item/storage/pod{ - pixel_x = 6; - pixel_y = -28 - }, -/obj/item/device/radio/intercom{ - pixel_y = 25 - }, -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/light/small, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_2) -"cpM" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/pod_4) "cpN" = ( /obj/machinery/power/turbine{ luminosity = 2 @@ -47410,7 +47179,7 @@ /area/engine/engine_smes) "cpT" = ( /obj/structure/table, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -35 }, @@ -47544,18 +47313,16 @@ /turf/open/floor/plating, /area/engine/engineering) "cqq" = ( -/obj/machinery/door/airlock/titanium{ - name = "Escape Pod Airlock" - }, -/obj/docking_port/mobile/pod{ +/obj/docking_port/stationary{ dir = 8; - id = "pod2"; - name = "escape pod 2"; - port_direction = 2; - timid = 0 + dwidth = 1; + height = 4; + name = "escape pod loader"; + roundstart_template = /datum/map_template/shuttle/escape_pod/default; + width = 3 }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_2) +/turf/open/space/basic, +/area/space) "cqr" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 @@ -47798,7 +47565,7 @@ /area/solar/starboard/aft) "crl" = ( /obj/structure/table, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /turf/open/floor/plating, /area/maintenance/port/aft) "crm" = ( @@ -47960,13 +47727,13 @@ /obj/structure/lattice/catwalk, /turf/open/space, /area/solar/starboard/aft) +"crH" = ( +/turf/open/space/basic, +/area/space/nearstation) "crI" = ( /obj/structure/chair/stool, /turf/open/floor/plating, /area/engine/engineering) -"crJ" = ( -/turf/open/space/basic, -/area/space/nearstation) "crK" = ( /obj/structure/cable{ icon_state = "1-2" @@ -48026,13 +47793,6 @@ }, /turf/open/floor/plating/airless, /area/engine/engineering) -"csb" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "csc" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, @@ -48100,18 +47860,6 @@ /turf/open/floor/plasteel/floorgrime, /area/maintenance/disposal/incinerator) "csr" = ( -/obj/machinery/embedded_controller/radio/airlock_controller{ - name = "Incinerator Access Console"; - airpump_tag = "incinerator_airlock_pump"; - exterior_door_tag = "incinerator_airlock_exterior"; - id_tag = "incinerator_access_control"; - interior_door_tag = "incinerator_airlock_interior"; - pixel_x = 6; - pixel_y = -26; - sanitize_external = 1; - sensor_tag = "incinerator_airlock_sensor"; - req_access_txt = "12" - }, /obj/machinery/button/ignition{ id = "Incinerator"; pixel_x = -6; @@ -48123,23 +47871,6 @@ /obj/machinery/meter, /turf/open/floor/plasteel/floorgrime, /area/maintenance/disposal/incinerator) -"css" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"csx" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/grille, -/turf/open/floor/plating/airless, -/area/engine/engineering) "csy" = ( /obj/structure/table, /obj/item/weldingtool, @@ -48256,7 +47987,7 @@ /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) "cth" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -48333,7 +48064,7 @@ pixel_y = 28 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/off{ +/obj/item/radio/off{ pixel_y = 4 }, /obj/item/screwdriver{ @@ -48579,7 +48310,7 @@ /turf/closed/wall, /area/ai_monitored/turret_protected/aisat_interior) "cub" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -48704,8 +48435,7 @@ "cuq" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 0; - name = "Air Out"; - on = 0 + name = "Air Out" }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, @@ -48808,7 +48538,7 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_x = 28 }, @@ -48889,7 +48619,7 @@ /obj/machinery/light/small{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_x = -28 }, @@ -48933,7 +48663,7 @@ pixel_y = 3 }, /obj/item/storage/toolbox/mechanical, -/obj/item/device/multitool, +/obj/item/multitool, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -49119,7 +48849,7 @@ /obj/machinery/porta_turret/ai{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; listening = 0; @@ -49261,14 +48991,14 @@ /area/ai_monitored/turret_protected/aisat/hallway) "cvx" = ( /obj/effect/landmark/start/ai/secondary, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_y = 28 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 1; listening = 1; @@ -49276,7 +49006,7 @@ pixel_x = -27; pixel_y = 5 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; broadcasting = 0; freerange = 1; @@ -49300,14 +49030,14 @@ /area/ai_monitored/turret_protected/aisat/hallway) "cvA" = ( /obj/effect/landmark/start/ai/secondary, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_y = 28 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 1; listening = 1; @@ -49315,7 +49045,7 @@ pixel_x = 27; pixel_y = 5 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; broadcasting = 0; freerange = 1; @@ -49542,7 +49272,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; listening = 0; @@ -49824,12 +49554,6 @@ /obj/machinery/light/small, /turf/open/floor/plating, /area/hallway/secondary/entry) -"cwU" = ( -/obj/structure/shuttle/engine/propulsion/burst{ - dir = 4 - }, -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_1) "cwV" = ( /obj/docking_port/stationary/random{ dir = 8; @@ -49848,39 +49572,11 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) -"cxl" = ( -/obj/machinery/computer/shuttle/pod{ - pixel_y = -32; - possible_destinations = "pod_lavaland1"; - shuttleId = "pod1" - }, -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/status_display{ - pixel_y = 32 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) "cxn" = ( /obj/structure/lattice, /obj/effect/landmark/carpspawn, /turf/open/space, /area/space/nearstation) -"cxx" = ( -/obj/item/storage/pod{ - pixel_x = 6; - pixel_y = -28 - }, -/obj/item/device/radio/intercom{ - pixel_y = 25 - }, -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/light/small, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) "cxA" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -49894,24 +49590,10 @@ height = 13; id = "ferry_home"; name = "port bay 2"; - turf_type = /turf/open/space; width = 5 }, /turf/open/space/basic, /area/space) -"cxF" = ( -/obj/machinery/door/airlock/titanium{ - name = "Escape Pod Airlock" - }, -/obj/docking_port/mobile/pod{ - dir = 8; - id = "pod1"; - name = "escape pod 1"; - port_direction = 2; - timid = 0 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) "cxG" = ( /obj/machinery/door/airlock/external{ cyclelinkeddir = 0; @@ -50221,34 +49903,6 @@ "czK" = ( /turf/closed/wall, /area/security/vacantoffice) -"czL" = ( -/obj/machinery/computer/shuttle/pod{ - pixel_y = -32; - possible_destinations = "pod_lavaland4"; - shuttleId = "pod4" - }, -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/status_display{ - pixel_y = 32 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_4) -"czM" = ( -/obj/item/device/radio/intercom{ - pixel_y = 25 - }, -/obj/item/storage/pod{ - pixel_x = 6; - pixel_y = -32 - }, -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/light/small, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_4) "czN" = ( /obj/docking_port/stationary/random{ dir = 4; @@ -50531,7 +50185,7 @@ /area/maintenance/port/aft) "cAI" = ( /obj/machinery/conveyor_switch/oneway{ - convdir = -1; + dir = 8; id = "garbage"; name = "disposal conveyor" }, @@ -50598,7 +50252,7 @@ /area/ai_monitored/turret_protected/ai) "cAS" = ( /obj/effect/landmark/start/ai, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 1; listening = 1; @@ -50606,14 +50260,14 @@ pixel_x = -27; pixel_y = -9 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_y = -31 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; broadcasting = 0; freerange = 1; @@ -50908,6 +50562,7 @@ /area/maintenance/aft) "cBE" = ( /obj/effect/landmark/event_spawn, +/obj/machinery/air_sensor/atmos/toxins_mixing_tank, /turf/open/floor/engine/vacuum, /area/science/mixing) "cBF" = ( @@ -50947,7 +50602,7 @@ /turf/open/floor/plasteel, /area/engine/atmos) "cBK" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -35 }, @@ -51048,7 +50703,7 @@ /obj/item/stack/cable_coil{ amount = 5 }, -/obj/item/device/flashlight, +/obj/item/flashlight, /turf/open/floor/plating, /area/construction) "cCc" = ( @@ -51155,21 +50810,9 @@ /obj/machinery/deepfryer, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) -"cCs" = ( -/obj/structure/mining_shuttle_beacon{ - dir = 4 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"cCt" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/docking_port/stationary/public_mining_dock{ - dir = 8 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) +"cCS" = ( +/turf/open/space, +/area/space/nearstation) "cCT" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 @@ -51351,13 +50994,6 @@ }, /turf/open/floor/plating/airless, /area/engine/engineering) -"cFn" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "cFI" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -51373,7 +51009,7 @@ state = 2 }, /turf/open/floor/plating/airless, -/area/space/nearstation) +/area/space) "cFU" = ( /obj/machinery/power/emitter/anchored{ dir = 8; @@ -51412,11 +51048,11 @@ dir = 8 }, /turf/open/floor/plating/airless, -/area/space/nearstation) +/area/space) "cGV" = ( /obj/machinery/the_singularitygen/tesla, /turf/open/floor/plating/airless, -/area/space/nearstation) +/area/space) "cGZ" = ( /obj/machinery/light{ dir = 4 @@ -51660,7 +51296,7 @@ pixel_y = 5 }, /obj/item/clothing/glasses/welding, -/obj/item/device/multitool{ +/obj/item/multitool{ pixel_x = 3 }, /turf/open/floor/plasteel, @@ -51732,15 +51368,6 @@ }, /turf/open/floor/plating, /area/hallway/secondary/entry) -"cIK" = ( -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/maintenance/bar) -"cKY" = ( -/obj/structure/table/wood/poker, -/obj/item/coin/iron, -/turf/open/floor/wood, -/area/maintenance/bar) "cMm" = ( /obj/structure/cable{ icon_state = "1-2" @@ -51803,6 +51430,13 @@ }, /turf/open/floor/plasteel/airless/solarpanel, /area/solar/starboard/aft) +"cNt" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) "cNE" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall, @@ -51990,10 +51624,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"cQG" = ( -/obj/structure/lattice, -/turf/open/space, -/area/space) "cSz" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -52029,6 +51659,10 @@ /obj/machinery/power/tesla_coil, /turf/open/floor/plating/airless, /area/space) +"cSI" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) "cSK" = ( /obj/structure/cable/yellow{ icon_state = "0-4" @@ -52065,7 +51699,7 @@ /area/crew_quarters/heads/chief) "cSM" = ( /obj/machinery/computer/station_alert, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20 @@ -52360,10 +51994,17 @@ "cVb" = ( /turf/closed/wall, /area/hallway/secondary/service) -"dcQ" = ( -/obj/effect/spawner/structure/window/reinforced, +"cXd" = ( +/obj/structure/falsewall, +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"cZO" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/decal/cleanable/blood/old, +/obj/item/assembly/signaler, /turf/open/floor/plating, -/area/space/nearstation) +/area/maintenance/bar) "dfh" = ( /obj/machinery/power/apc{ areastring = "/area/science/circuit"; @@ -52378,21 +52019,9 @@ }, /turf/open/floor/plasteel, /area/science/circuit) -"diu" = ( -/obj/structure/chair/stool, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/maintenance/bar) -"dlj" = ( -/turf/open/floor/plating/airless, -/area/engine/engineering) -"dnc" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - req_access_txt = "0" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, +"dpp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, /area/maintenance/bar) "dqu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -52404,87 +52033,102 @@ }, /turf/closed/wall, /area/science/circuit) -"dxw" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "Singularity"; - name = "radiation shutters" +"dwQ" = ( +/obj/structure/grille, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"dKf" = ( +/turf/closed/wall/r_wall, +/area/security/armory) +"dMY" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"dAs" = ( -/obj/structure/sign/poster/random{ - pixel_y = -32 +/obj/structure/cable{ + icon_state = "1-2" }, /turf/open/floor/wood, /area/maintenance/bar) -"dCs" = ( -/obj/machinery/button/door{ - id = "Singularity"; - name = "Shutters Control"; - pixel_x = -25; - req_access_txt = "11" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"dFc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/maintenance/bar) -"dFm" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) "dMZ" = ( /obj/structure/sign/poster/official/random{ pixel_y = 32 }, /turf/open/floor/plasteel/white, /area/science/circuit) -"dVC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +"dPI" = ( +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"dTy" = ( +/obj/effect/spawner/lootdrop/keg, +/turf/open/floor/wood{ + icon_state = "wood-broken7" }, -/obj/machinery/light, -/turf/open/floor/plasteel/red/side, -/area/security/brig) +/area/maintenance/bar) +"dUz" = ( +/obj/structure/table/wood, +/obj/item/storage/box/drinkingglasses, +/turf/open/floor/wood, +/area/maintenance/bar) "eaI" = ( /obj/structure/table/reinforced, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_x = -30 }, /turf/open/floor/plasteel/white, /area/science/circuit) -"erb" = ( +"ebz" = ( +/obj/structure/window/reinforced, +/obj/vehicle/ridden/secway, +/obj/item/key/security, +/obj/machinery/door/window/eastleft{ + name = "Secway Docking Port" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/showroomfloor, +/area/space/nearstation) +"eeA" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 + dir = 4 }, -/turf/open/floor/plasteel/red/side{ - dir = 1 +/turf/closed/wall, +/area/maintenance/bar) +"eeO" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 }, +/turf/open/floor/plating/airless, +/area/space) +"ejP" = ( +/obj/machinery/suit_storage_unit/security, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"ekX" = ( +/obj/machinery/flasher{ + id = "Cell 4"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/floorgrime, /area/security/brig) -"erH" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable{ - icon_state = "4-8" +"enX" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, +/area/security/armory) +"exs" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/space/nearstation) +"exQ" = ( +/obj/structure/table, +/obj/item/storage/toolbox/drone, +/turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) "eyM" = ( /obj/machinery/mineral/ore_redemption{ @@ -52494,41 +52138,12 @@ /obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/quartermaster/miningdock) -"eyV" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "seclobby"; - name = "security shutters" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/security/brig) -"eCQ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/maintenance/bar) "eHI" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, /turf/open/floor/plasteel/floorgrime, /area/maintenance/disposal/incinerator) -"eLY" = ( -/obj/effect/turf_decal/stripes/white/line, -/obj/effect/turf_decal/stripes/white/corner{ - dir = 1 - }, -/obj/machinery/door_timer{ - id = "Secure Cell"; - name = "Secure Cell"; - pixel_y = -32 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) "eRz" = ( /obj/structure/lattice, /obj/structure/grille, @@ -52544,42 +52159,39 @@ }, /turf/open/floor/plasteel, /area/quartermaster/miningdock) -"eXc" = ( -/obj/structure/window/reinforced, -/obj/vehicle/ridden/secway, -/obj/item/key/security, -/obj/machinery/door/window/eastleft{ - name = "Secway Docking Port" +"faG" = ( +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (NORTH)"; + icon_state = "purple"; + dir = 1 }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/showroomfloor, -/area/space) -"eXD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/tank_dispenser/oxygen, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"eYQ" = ( -/obj/machinery/vending/kink, -/turf/open/floor/wood, -/area/maintenance/bar) -"fbL" = ( -/obj/structure/table, -/obj/item/storage/toolbox/drone, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) +/area/crew_quarters/cryopod) "fcG" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, /turf/closed/wall/r_wall, /area/science/mixing) +"fev" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "seclobby"; + name = "security shutters" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/security/brig) "flc" = ( /obj/machinery/bookbinder, /turf/open/floor/plasteel/white, /area/science/circuit) +"flZ" = ( +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/brig) "fnC" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 @@ -52593,87 +52205,88 @@ }, /turf/open/floor/plasteel/hydrofloor, /area/hallway/secondary/service) -"fnP" = ( -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/decal/cleanable/blood/old, -/obj/item/device/assembly/signaler, -/turf/open/floor/plating, -/area/maintenance/bar) -"fpI" = ( -/turf/open/floor/plasteel/red/side{ - dir = 8 +"fvg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/area/security/brig) -"fAn" = ( +/turf/open/floor/plating/airless, +/area/space) +"fBa" = ( /obj/structure/grille, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plating/airless, /area/engine/engineering) -"fAq" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/red/side{ - dir = 4 +"fBP" = ( +/obj/machinery/power/emitter/anchored{ + dir = 4; + state = 2 }, -/area/security/brig) -"fDs" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 +/obj/structure/cable{ + icon_state = "0-8" }, -/turf/open/floor/wood, -/area/maintenance/bar) +/turf/open/floor/plating/airless, +/area/engine/engineering) +"fGf" = ( +/obj/machinery/smartfridge/disks, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"fGu" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space, +/area/space) +"fJG" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/white/corner, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) "fKl" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, /area/science/circuit) -"fPq" = ( -/obj/item/device/radio/intercom{ - freerange = 0; - frequency = 1459; - name = "Station Intercom (General)"; - pixel_x = -30 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/maintenance/bar) -"fPE" = ( -/obj/structure/table, -/obj/item/grenade/barrier{ - pixel_x = 4 - }, -/obj/item/grenade/barrier, -/obj/item/grenade/barrier{ - pixel_x = -4 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/armory) -"fSk" = ( +"fVA" = ( /obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/rack, +/obj/item/clothing/mask/gas/sechailer{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/mask/gas/sechailer, +/obj/item/clothing/mask/gas/sechailer{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"fVS" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ icon_state = "1-2" }, -/turf/open/floor/wood{ - icon_state = "wood-broken7" +/turf/open/floor/plating, +/area/engine/engineering) +"fXl" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Singularity"; + name = "radiation shutters" }, -/area/maintenance/bar) -"fVu" = ( -/obj/machinery/camera/motion{ - c_tag = "Non-Lethal Armory Motion Sensor"; - dir = 4 +/obj/effect/turf_decal/bot{ + dir = 2 }, -/obj/effect/turf_decal/stripes/end{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/armory) -"fWC" = ( -/obj/machinery/chem_dispenser/drinks/beer, -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/maintenance/bar) +/turf/open/floor/plating, +/area/engine/engineering) +"fZs" = ( +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/engine/engineering) "gbq" = ( /obj/structure/cable{ icon_state = "4-8" @@ -52686,93 +52299,47 @@ /obj/item/stack/sheet/glass/fifty, /turf/open/floor/plating, /area/maintenance/department/medical/morgue) -"get" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 +"gcN" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/turf/open/floor/wood, -/area/maintenance/bar) -"ghy" = ( -/obj/machinery/light/small{ - dir = 8; - light_color = "#fff4bc" +/turf/open/floor/plasteel, +/area/security/armory) +"gjf" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/red/side{ + dir = 4 }, -/obj/structure/closet/emcloset/anchored, -/turf/open/floor/plating, -/area/engine/engineering) +/area/security/brig) "gjl" = ( /turf/closed/wall, /area/quartermaster/warehouse) -"gmz" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"gva" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"gvi" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 +"gqU" = ( +/obj/machinery/door/window/brigdoor/security/cell{ + id = "Cell 3"; + name = "Cell 3" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"gvx" = ( -/turf/open/floor/plasteel, -/area/security/execution/transfer) +/turf/open/floor/plasteel/red/side, +/area/security/brig) "gwd" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 }, /turf/open/floor/plasteel, /area/science/circuit) -"gAl" = ( -/turf/open/floor/plasteel/red/side{ - dir = 10 +"gKO" = ( +/obj/structure/cable{ + icon_state = "0-8" }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, /area/security/brig) -"gGR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/bar) -"gKN" = ( -/obj/structure/bed, -/obj/item/clothing/suit/straight_jacket, -/obj/item/clothing/mask/muzzle, -/turf/open/floor/plasteel, -/area/security/execution/transfer) -"gLD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/maintenance/fore/secondary) "gLH" = ( /obj/machinery/door/airlock/external{ name = "External Access"; @@ -52783,17 +52350,31 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) -"gMx" = ( -/obj/effect/landmark/start/atmospheric_technician, -/turf/open/floor/plasteel, -/area/engine/atmos) -"gQx" = ( -/turf/open/floor/plasteel/purple/side{ - tag = "icon-purple (NORTH)"; - icon_state = "purple"; - dir = 1 +"gMt" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/effect/turf_decal/bot{ + dir = 2 }, -/area/crew_quarters/cryopod) +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"gMI" = ( +/obj/structure/sign/poster/random{ + pixel_y = -32 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/bar) +"gUa" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"gVz" = ( +/obj/structure/table/wood/poker, +/turf/open/floor/wood, +/area/maintenance/bar) "gWd" = ( /obj/structure/cable{ icon_state = "1-4" @@ -52804,18 +52385,6 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) -"gZp" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - cyclelinkeddir = 1; - id_tag = "lobbyairlock"; - name = "Security Lobby"; - req_access_txt = "0" - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) "gZG" = ( /obj/structure/closet/crate/freezer/surplus_limbs, /obj/item/reagent_containers/glass/beaker/synthflesh, @@ -52840,59 +52409,37 @@ }, /turf/open/floor/plating, /area/maintenance/port) -"hfY" = ( -/obj/machinery/flasher{ - id = "brigentry"; - pixel_y = -28 +"hcV" = ( +/obj/structure/chair/stool/bar, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"hik" = ( -/obj/structure/table/wood, -/obj/item/storage/box/drinkingglasses, /turf/open/floor/wood, /area/maintenance/bar) -"hjI" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, +"heb" = ( +/turf/open/floor/plasteel/red/side, /area/security/brig) -"hnm" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "briggate"; - name = "security shutters" +"heG" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/machinery/door/window/eastright{ - name = "Brig Desk"; - req_access_txt = "2" +/turf/open/floor/wood, +/area/maintenance/bar) +"hkC" = ( +/obj/machinery/flasher{ + id = "Cell 3"; + pixel_x = -28 }, -/turf/open/floor/plasteel/dark, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, /area/security/brig) -"hpY" = ( -/obj/effect/spawner/lootdrop/keg, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, +"hpF" = ( +/obj/machinery/vending/kink, +/turf/open/floor/wood, /area/maintenance/bar) -"htN" = ( -/obj/structure/sign/poster/random{ - pixel_y = -32 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) -"hBF" = ( +"hrd" = ( /obj/machinery/door_timer{ id = "Cell 2"; name = "Cell 2"; @@ -52902,7 +52449,1361 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel/red/corner, /area/security/brig) -"hHa" = ( +"hrv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"hse" = ( +/obj/structure/closet/l3closet/security, +/turf/open/floor/plasteel/showroomfloor, +/area/space/nearstation) +"hsU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"htj" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/security/armory) +"hyb" = ( +/obj/structure/table, +/obj/item/storage/box/firingpins, +/obj/item/storage/box/firingpins, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"hHu" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + name = "Incinerator Access"; + req_access_txt = "12" + }, +/obj/structure/barricade/wooden{ + name = "wooden barricade (CLOSED)" + }, +/turf/open/floor/plating, +/area/maintenance/bar) +"hNR" = ( +/obj/structure/table/wood/poker, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"hPY" = ( +/obj/structure/bed, +/obj/item/bedsheet/grey, +/obj/effect/decal/cleanable/semen{ + desc = "Blech."; + name = "dried semen" + }, +/obj/effect/spawner/lootdrop/costume, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/bar) +"hQe" = ( +/obj/machinery/light/small{ + dir = 8; + light_color = "#fff4bc" + }, +/obj/structure/closet/emcloset/anchored, +/turf/open/floor/plating, +/area/engine/engineering) +"hSf" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space/basic, +/area/space) +"hYu" = ( +/obj/structure/table, +/obj/item/storage/toolbox/electrical{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/storage/toolbox/electrical{ + pixel_x = -2 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"hZr" = ( +/obj/machinery/door_timer{ + id = "Cell 3"; + name = "Cell 3"; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner, +/area/security/brig) +"iaO" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"iei" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"iex" = ( +/turf/open/space/basic, +/area/engine/engineering) +"ifj" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + req_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/maintenance/bar) +"ilR" = ( +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/cryopod"; + dir = 4; + name = "Cryogenics APC"; + pixel_x = 24 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/crew_quarters/cryopod) +"iob" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"ipA" = ( +/obj/machinery/droneDispenser, +/turf/open/floor/plating, +/area/maintenance/department/medical/morgue) +"itG" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"iCL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"iEJ" = ( +/obj/machinery/door/airlock/external{ + name = "Escape Pod One" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"iNn" = ( +/obj/machinery/camera{ + c_tag = "Kitchen Cold Room" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/reagent_dispensers/cooking_oil, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"iPE" = ( +/obj/structure/bed, +/obj/item/clothing/suit/straight_jacket, +/obj/item/clothing/mask/muzzle, +/turf/open/floor/plasteel, +/area/security/execution/transfer) +"iWy" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"iWK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/maintenance/bar) +"iWM" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/maintenance/bar) +"iXO" = ( +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen, +/obj/machinery/newscaster{ + pixel_x = 30 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/maintenance/bar) +"jbf" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/hallway/secondary/service"; + dir = 1; + name = "Service Hall APC"; + pixel_y = 25 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hallway/secondary/service) +"jbA" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"jbT" = ( +/obj/structure/chair/stool/bar, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/maintenance/bar) +"jcS" = ( +/obj/machinery/light, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"jgm" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/camera{ + c_tag = "Circuitry Lab"; + dir = 8; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"jlm" = ( +/obj/machinery/rnd/production/techfab/department/cargo, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"jnp" = ( +/turf/open/floor/plasteel/dark, +/area/security/processing) +"jrE" = ( +/obj/machinery/rnd/production/protolathe/department/science, +/obj/structure/sign/poster/official/random{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"jrX" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/bar) +"jsN" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"juA" = ( +/obj/machinery/flasher/portable, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/security/armory) +"jAD" = ( +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"jAM" = ( +/obj/machinery/suit_storage_unit/security, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"jCq" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"jHt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"jMF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/science/circuit) +"jOb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance/abandoned{ + req_access_txt = "0" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/bar) +"jSO" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"jTA" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Engine Containment Starboard Aft"; + dir = 1; + network = list("engine") + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"jUO" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/armory) +"jVl" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"jZP" = ( +/obj/item/radio/intercom{ + freerange = 0; + frequency = 1459; + name = "Station Intercom (General)"; + pixel_x = -30 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/maintenance/bar) +"kbh" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"kbA" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"kcH" = ( +/obj/machinery/cryopod{ + tag = "icon-cryopod-open (EAST)"; + icon_state = "cryopod-open"; + dir = 4 + }, +/turf/open/floor/noslip, +/area/crew_quarters/cryopod) +"kdx" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/closet/secure_closet/brig{ + id = "Secure Cell"; + name = "Secure Cell Locker" + }, +/obj/effect/turf_decal/stripes/white/end{ + dir = 4 + }, +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"khb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/structure/table, +/obj/item/kitchen/rollingpin, +/turf/open/floor/plasteel/hydrofloor, +/area/hallway/secondary/service) +"khB" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"kjK" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"klO" = ( +/obj/effect/landmark/secequipment, +/obj/effect/turf_decal/bot{ + dir = 2 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"knx" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Gravity Generator"; + req_access_txt = "11" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"kob" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"kso" = ( +/obj/machinery/button/door{ + id = "Singularity"; + name = "Shutters Control"; + pixel_x = -25; + req_access_txt = "11" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"ksW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + cyclelinkeddir = 2; + id_tag = "innerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/brig) +"ktN" = ( +/obj/effect/turf_decal/loading_area/white, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/corner, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"kwo" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/armory) +"kzT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/science/mixing) +"kBh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/brig) +"kNF" = ( +/obj/structure/closet/bombcloset/security, +/turf/open/floor/plasteel/showroomfloor, +/area/space) +"kOw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"kOO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/bar) +"kPd" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hallway/secondary/service) +"kQk" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/department/medical/morgue) +"kRe" = ( +/obj/item/restraints/handcuffs/fake, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears, +/turf/open/floor/plating, +/area/maintenance/bar) +"kSb" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"kTZ" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Singularity"; + name = "radiation shutters" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"kUh" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"kXH" = ( +/obj/structure/falsewall, +/turf/open/floor/plating, +/area/maintenance/bar) +"leL" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/brig) +"lnm" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/item/crowbar, +/obj/item/electropack/shockcollar, +/turf/open/floor/plating, +/area/maintenance/bar) +"lyP" = ( +/obj/machinery/flasher{ + id = "Cell 2"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"lAB" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall, +/area/science/circuit) +"lCe" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"lMg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"lNf" = ( +/obj/machinery/door/window/brigdoor/security/cell{ + dir = 4; + id = "Secure Cell"; + name = "Secure Cell" + }, +/obj/machinery/door/window/brigdoor/security/cell{ + dir = 8; + id = "Secure Cell"; + name = "Secure Cell" + }, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 8 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, +/area/security/execution/transfer) +"lQG" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/science/circuit) +"lSn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/engineering) +"lUX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"lWf" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"mjp" = ( +/obj/machinery/chem_dispenser/drinks/beer, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/maintenance/bar) +"mtP" = ( +/obj/machinery/vending/autodrobe, +/turf/open/floor/wood, +/area/maintenance/bar) +"mDn" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/brigdoor{ + dir = 1; + name = "Armory Desk"; + req_access_txt = "3" + }, +/obj/machinery/door/window/southleft{ + name = "Reception Desk"; + req_access_txt = "63" + }, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"mES" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/maintenance/bar) +"mNi" = ( +/obj/machinery/light_switch{ + pixel_x = -20 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"mOo" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"mOS" = ( +/obj/structure/sign/poster/official/no_erp, +/turf/closed/wall, +/area/maintenance/bar) +"mQL" = ( +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 1 + }, +/obj/machinery/door_timer{ + id = "Secure Cell"; + name = "Secure Cell"; + pixel_y = -32 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"mRe" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"mTp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/security/brig) +"mZB" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"nfW" = ( +/turf/open/floor/plasteel, +/area/security/execution/transfer) +"nip" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/space) +"nlM" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/brig) +"noe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"nok" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"nvz" = ( +/obj/structure/table, +/obj/item/grenade/barrier{ + pixel_x = 4 + }, +/obj/item/grenade/barrier, +/obj/item/grenade/barrier{ + pixel_x = -4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/armory) +"nxv" = ( +/obj/machinery/power/apc{ + name = "Construction Area APC"; + areastring = "/area/construction"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/construction) +"nzk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Singularity"; + name = "radiation shutters" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/bot{ + dir = 2 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"nzm" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating/airless, +/area/space) +"nDS" = ( +/obj/structure/rack, +/obj/item/gun/energy/e_gun/dragnet, +/obj/item/gun/energy/e_gun/dragnet, +/obj/effect/turf_decal/bot_white, +/obj/item/gun/energy/pumpaction/blaster, +/obj/item/gun/energy/pumpaction/blaster, +/turf/open/floor/plasteel/dark, +/area/security/armory) +"nGt" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"nRG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"nZe" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + req_access_txt = "0" + }, +/turf/open/floor/plating, +/area/maintenance/bar) +"oce" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"ohN" = ( +/turf/closed/wall, +/area/space) +"oEn" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/camera/motion{ + c_tag = "Armory Motion Sensor"; + dir = 2; + name = "motion-sensitive security camera" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"oFD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + cyclelinkeddir = 2; + id_tag = "innerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/brig) +"oFM" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/security/glass{ + cyclelinkeddir = 1; + id_tag = "outerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/brig) +"oHU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"oLO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"oUh" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"oUp" = ( +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"pjh" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/bar) +"pvY" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"pye" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/newscaster{ + pixel_x = 30 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/bar) +"pyu" = ( +/obj/structure/window/reinforced, +/obj/machinery/door/window/eastleft{ + name = "Cyborg Docking Port" + }, +/obj/machinery/recharge_station, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"pzB" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"pGb" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/security/brig) +"pHl" = ( +/obj/structure/table, +/obj/item/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/storage/box/syringes, +/obj/item/reagent_containers/glass/bottle/epinephrine{ + pixel_x = 7; + pixel_y = -3 + }, +/obj/item/reagent_containers/glass/bottle/morphine{ + pixel_x = 8; + pixel_y = -3 + }, +/obj/item/reagent_containers/syringe{ + pixel_x = 6; + pixel_y = -3 + }, +/obj/item/radio/intercom{ + freerange = 0; + frequency = 1485; + listening = 1; + name = "Station Intercom (Medbay)"; + pixel_x = 30 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"pLn" = ( +/obj/machinery/conveyor/inverted{ + dir = 5; + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"pLx" = ( +/obj/structure/chair/stool/bar, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/bar) +"pNk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"pNx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/science/misc_lab) +"pRH" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"qeQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"qne" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/bar) +"qpv" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/autolathe, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"quT" = ( +/obj/structure/lattice, +/obj/structure/grille/broken, +/turf/open/space/basic, +/area/space/nearstation) +"qyv" = ( +/obj/machinery/door/poddoor/shutters{ + id = "lowsecarmory"; + name = "Non-Lethal Armoury Shutter" + }, +/obj/machinery/button/door{ + id = "lowsecarmory"; + name = "Non-Lethal Armory Shutters"; + pixel_y = 26; + req_access_txt = "3" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/security/main) +"qyS" = ( +/obj/effect/landmark/start/atmospheric_technician, +/turf/open/floor/plasteel, +/area/engine/atmos) +"qCO" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"qLG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/security/brig) +"qRE" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"rcD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/science/circuit) +"rez" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + cyclelinkeddir = 1; + id_tag = "lobbyairlock"; + name = "Security Lobby"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"rfW" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) +"rkz" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/bar"; + dir = 2; + name = "Maintenance Bar APC"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/structure/cable, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/bar) +"rmR" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/engine/engineering) +"rmX" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/beer, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"rrQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating/airless, +/area/space) +"rth" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"rtI" = ( +/turf/open/floor/plasteel/purple/side, +/area/crew_quarters/cryopod) +"rwa" = ( +/turf/closed/wall, +/area/crew_quarters/cryopod) +"rzC" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) +"rKP" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/construction) +"rQi" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"rVy" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"rXD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"rYO" = ( +/turf/closed/wall, +/area/maintenance/bar) +"rZN" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/reagent_containers/spray/cleaner, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/maintenance/bar) +"saK" = ( +/obj/structure/closet/crate, +/obj/item/target/alien, +/obj/item/target/alien, +/obj/item/target/clown, +/obj/item/target/clown, +/obj/item/target/syndicate, +/obj/item/target/syndicate, +/obj/item/gun/energy/laser/practice, +/obj/item/gun/energy/laser/practice, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"sfz" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Engine Containment Port Aft"; + dir = 1; + network = list("engine") + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"sfS" = ( +/obj/structure/chair/stool/bar, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"siw" = ( +/obj/structure/table/glass, +/obj/item/paper_bin, +/obj/item/pen/blue, +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (NORTH)"; + icon_state = "purple"; + dir = 1 + }, +/area/crew_quarters/cryopod) +"slk" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/maintenance/department/medical/morgue) +"soh" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/space) +"svF" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Brig Control"; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"swV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access = null; + req_access_txt = "10;13" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"sxs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/table, +/obj/item/shovel/spade, +/turf/open/floor/plasteel/hydrofloor, +/area/hallway/secondary/service) +"sxZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/brig) +"sCb" = ( /obj/structure/table/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ id = "briggate"; @@ -52919,133 +53820,181 @@ }, /turf/open/floor/plasteel/dark, /area/security/brig) -"hNj" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - req_access_txt = "0" +"sHb" = ( +/turf/closed/wall/r_wall, +/area/space) +"sHe" = ( +/obj/machinery/computer/cryopod{ + pixel_y = 25 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"sIS" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" }, /turf/open/floor/plating, -/area/maintenance/bar) -"hXw" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, -/area/maintenance/bar) -"iev" = ( +/area/security/warden) +"sLb" = ( /obj/effect/turf_decal/stripes/line{ - dir = 1 + dir = 2 + }, +/turf/open/floor/plating/airless, +/area/space) +"sLv" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"sOa" = ( +/turf/open/floor/plating/airless, +/area/engine/engineering) +"sOs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance/abandoned, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"sPd" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/security/brig) +"sQG" = ( +/obj/machinery/camera/motion{ + c_tag = "Non-Lethal Armory Motion Sensor"; + dir = 4 + }, +/obj/effect/turf_decal/stripes/end{ + dir = 8 }, /turf/open/floor/plasteel, /area/security/armory) -"imZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, +"sRl" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/maintenance/bar) +"sSO" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"sSW" = ( +/obj/structure/chair/office/light, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"sTB" = ( +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/brig) +"sXy" = ( +/obj/machinery/door/airlock/external{ + name = "Security External Airlock"; + req_access_txt = "63" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/security/main) +"tal" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/hallway/secondary/service) +"tdg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/security/brig) +"tgb" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"tDm" = ( +/obj/structure/table/wood, /turf/open/floor/wood{ icon_state = "wood-broken5" }, /area/maintenance/bar) -"inb" = ( -/obj/structure/rack, -/obj/item/gun/energy/e_gun/dragnet, -/obj/item/gun/energy/e_gun/dragnet, -/obj/effect/turf_decal/bot_white, -/obj/item/gun/energy/pumpaction/blaster, -/obj/item/gun/energy/pumpaction/blaster, -/turf/open/floor/plasteel/dark, -/area/security/armory) -"ipA" = ( -/obj/machinery/droneDispenser, -/turf/open/floor/plating, -/area/maintenance/department/medical/morgue) -"itG" = ( -/obj/structure/table/reinforced, -/obj/item/paper_bin, -/obj/item/pen, +"tII" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"tMl" = ( +/obj/effect/turf_decal/loading_area, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"tNR" = ( +/obj/structure/sign/poster/random{ + pixel_x = -32 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/bar) +"tOq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, /turf/open/floor/plasteel/white, -/area/science/circuit) -"ivo" = ( +/area/science/mixing) +"tPI" = ( +/obj/structure/table/wood/poker, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - cyclelinkeddir = 2; - id_tag = "innerbrig"; - name = "Brig"; - req_access_txt = "63" - }, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/brig) -"iyf" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"iyX" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/brig) -"iDC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/storage/pill_bottle/dice, /turf/open/floor/wood, /area/maintenance/bar) -"iEJ" = ( -/obj/machinery/door/airlock/external{ - name = "Escape Pod One" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ +"tRB" = ( +/obj/machinery/light/small{ dir = 8 }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"iFU" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/space) -"iNn" = ( +/obj/machinery/cryopod{ + tag = "icon-cryopod-open (EAST)"; + icon_state = "cryopod-open"; + dir = 4 + }, +/turf/open/floor/noslip, +/area/crew_quarters/cryopod) +"tXL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"uoB" = ( +/obj/structure/table/reinforced, +/obj/item/multitool, +/obj/item/screwdriver, /obj/machinery/camera{ - c_tag = "Kitchen Cold Room" + c_tag = "Circuitry Lab North"; + network = list("ss13","rd") }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/reagent_dispensers/cooking_oil, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"iUe" = ( -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/security/brig) -"iVO" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Engine Containment Port Aft"; - dir = 1; - network = list("engine") - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"iWY" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/grille, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"jbf" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/apc{ - areastring = "/area/hallway/secondary/service"; - dir = 1; - name = "Service Hall APC"; - pixel_y = 25 - }, -/turf/open/floor/plasteel/hydrofloor, -/area/hallway/secondary/service) -"jcD" = ( +/turf/open/floor/plasteel/white, +/area/science/circuit) +"uqz" = ( /obj/structure/rack, /obj/item/clothing/suit/armor/bulletproof{ pixel_x = -3; @@ -53072,1071 +54021,7 @@ /obj/effect/turf_decal/bot_white, /turf/open/floor/plasteel/dark, /area/security/armory) -"jgm" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/camera{ - c_tag = "Circuitry Lab"; - dir = 8; - network = list("ss13","rd") - }, -/turf/open/floor/plasteel, -/area/science/circuit) -"jlm" = ( -/obj/machinery/rnd/production/techfab/department/cargo, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"jlZ" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, -/area/maintenance/bar) -"jrE" = ( -/obj/machinery/rnd/production/protolathe/department/science, -/obj/structure/sign/poster/official/random{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"jrJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/security/brig) -"jyK" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Brig Control"; - req_access_txt = "3" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/brig) -"jAD" = ( -/obj/structure/grille, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"jCq" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"jCY" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/fore/secondary) -"jEl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"jFG" = ( -/obj/structure/table, -/obj/item/storage/box/firingpins, -/obj/item/storage/box/firingpins, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"jHt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"jKG" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - cyclelinkeddir = 1; - id_tag = "lobbyairlock"; - name = "Security Lobby"; - req_access_txt = "0" - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"jMi" = ( -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"jMF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/closed/wall, -/area/science/circuit) -"jSO" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/circuit) -"jVl" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"jWi" = ( -/turf/open/floor/plasteel/showroomfloor, -/area/space/nearstation) -"jXD" = ( -/obj/machinery/flasher{ - id = "Cell 3"; - pixel_x = -28 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"kbf" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "Singularity"; - name = "radiation shutters" - }, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"kgu" = ( -/turf/open/space/basic, -/area/engine/engineering) -"khb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/structure/table, -/obj/item/kitchen/rollingpin, -/turf/open/floor/plasteel/hydrofloor, -/area/hallway/secondary/service) -"khB" = ( -/obj/machinery/door/airlock/external{ - req_access_txt = "13" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"knx" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering{ - name = "Gravity Generator"; - req_access_txt = "11" - }, -/obj/effect/turf_decal/delivery, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"kob" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"kqE" = ( -/obj/structure/table/wood/poker, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"ksK" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - name = "Incinerator Access"; - req_access_txt = "12" - }, -/obj/structure/barricade/wooden{ - name = "wooden barricade (CLOSED)" - }, -/turf/open/floor/plating, -/area/maintenance/bar) -"kuC" = ( -/obj/item/shard, -/obj/item/wirecutters, -/obj/item/wallframe/camera, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/bar) -"kvn" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"kwU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 8 - }, -/area/security/brig) -"kyp" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/security/glass{ - cyclelinkeddir = 1; - id_tag = "outerbrig"; - name = "Brig"; - req_access_txt = "63" - }, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/brig) -"kzT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/closed/wall/r_wall, -/area/science/mixing) -"kEw" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"kIZ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/security/warden) -"kOs" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/grille, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"kOw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"kPd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/hydrofloor, -/area/hallway/secondary/service) -"kPh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/maintenance/bar) -"kPB" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"kQk" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/department/medical/morgue) -"kSb" = ( -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"ldw" = ( -/obj/structure/lattice, -/obj/structure/grille, -/turf/open/space, -/area/space) -"ldy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/security/brig) -"lgs" = ( -/obj/structure/table/wood/poker, -/turf/open/floor/wood, -/area/maintenance/bar) -"lkm" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space) -"lkA" = ( -/obj/machinery/power/apc{ - areastring = "/area/maintenance/bar"; - dir = 2; - name = "Maintenance Bar APC"; - pixel_x = 1; - pixel_y = -24 - }, -/obj/structure/cable, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) -"lkC" = ( -/obj/structure/sign/poster/official/no_erp, -/turf/closed/wall, -/area/maintenance/bar) -"lmZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"lou" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"lAB" = ( -/obj/structure/sign/nanotrasen, -/turf/closed/wall, -/area/science/circuit) -"lJX" = ( -/obj/structure/closet/secure_closet/security/sec, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"lMg" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/science/circuit) -"lQG" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/science/circuit) -"lTm" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/engine/engineering) -"lXp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/brig) -"maf" = ( -/obj/structure/sign/warning/securearea, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"mdX" = ( -/obj/structure/chair/stool/bar, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) -"mkG" = ( -/obj/structure/chair/stool/bar, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"mlj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/airlock/maintenance/abandoned{ - req_access_txt = "0" - }, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/maintenance/bar) -"msk" = ( -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"mtY" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"mwi" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/armory) -"mxQ" = ( -/obj/machinery/door/poddoor/shutters{ - id = "lowsecarmory"; - name = "Non-Lethal Armoury Shutter" - }, -/obj/machinery/button/door{ - id = "lowsecarmory"; - name = "Non-Lethal Armory Shutters"; - pixel_y = 26; - req_access_txt = "3" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/security/main) -"myR" = ( -/obj/structure/table/glass, -/obj/item/paper_bin, -/obj/item/pen/blue, -/turf/open/floor/plasteel/purple/side{ - tag = "icon-purple (NORTH)"; - icon_state = "purple"; - dir = 1 - }, -/area/crew_quarters/cryopod) -"mAD" = ( -/obj/machinery/door_timer{ - id = "Cell 3"; - name = "Cell 3"; - pixel_y = -32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/corner, -/area/security/brig) -"mDW" = ( -/obj/machinery/flasher{ - id = "Cell 4"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"mFn" = ( -/obj/structure/lattice, -/obj/structure/grille, -/turf/open/space/basic, -/area/space) -"mGv" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"mNi" = ( -/obj/machinery/light_switch{ - pixel_x = -20 - }, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"mRe" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"mTC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/maintenance/bar) -"mUH" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/white/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"ndn" = ( -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/security/brig) -"nrJ" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/hallway/primary/fore) -"nrT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/bar) -"nvm" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"nxv" = ( -/obj/machinery/power/apc{ - name = "Construction Area APC"; - areastring = "/area/construction"; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/construction) -"nyw" = ( -/turf/closed/wall/r_wall, -/area/space) -"nAW" = ( -/turf/open/floor/wood, -/area/maintenance/bar) -"nBt" = ( -/obj/machinery/vending/games{ - name = "\improper Good 'Clean' Fun" - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"nGt" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"nNQ" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/white/corner, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"nQE" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"nRD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"nRG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"nYB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/maintenance/fore/secondary) -"oaS" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/armory) -"oce" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"odi" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/armory) -"ofH" = ( -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"ouy" = ( -/obj/structure/table/wood/poker, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/item/storage/pill_bottle/dice, -/turf/open/floor/wood, -/area/maintenance/bar) -"oyk" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"oFD" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/table/wood, -/obj/item/reagent_containers/spray/cleaner, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, -/area/maintenance/bar) -"oHs" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/security/brig) -"oHU" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/science/circuit) -"oUh" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal/bin, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"oWs" = ( -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"pfR" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"piG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/security/armory) -"pmD" = ( -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"pvp" = ( -/obj/structure/chair/stool/bar, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"pAL" = ( -/obj/machinery/door/window/brigdoor/security/cell{ - dir = 4; - id = "Secure Cell"; - name = "Secure Cell" - }, -/obj/machinery/door/window/brigdoor/security/cell{ - dir = 8; - id = "Secure Cell"; - name = "Secure Cell" - }, -/obj/effect/turf_decal/stripes/white/corner{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/white/corner{ - dir = 8 - }, -/obj/machinery/light/small, -/turf/open/floor/plasteel/dark/side{ - dir = 8 - }, -/area/security/execution/transfer) -"pHl" = ( -/obj/structure/table, -/obj/item/storage/box/beakers{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/storage/box/syringes, -/obj/item/reagent_containers/glass/bottle/epinephrine{ - pixel_x = 7; - pixel_y = -3 - }, -/obj/item/reagent_containers/glass/bottle/morphine{ - pixel_x = 8; - pixel_y = -3 - }, -/obj/item/reagent_containers/syringe{ - pixel_x = 6; - pixel_y = -3 - }, -/obj/item/device/radio/intercom{ - freerange = 0; - frequency = 1485; - listening = 1; - name = "Station Intercom (Medbay)"; - pixel_x = 30 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"pNx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/science/misc_lab) -"pPZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/security/brig) -"pSC" = ( -/obj/machinery/door/window/brigdoor/security/cell{ - id = "Cell 3"; - name = "Cell 3" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"pYB" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/external{ - name = "Engineering External Access"; - req_access = null; - req_access_txt = "10;13" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"qeQ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/science/circuit) -"qpv" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/autolathe, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"qtN" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"quT" = ( -/obj/structure/lattice, -/obj/structure/grille/broken, -/turf/open/space/basic, -/area/space/nearstation) -"qzP" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/engine/engineering) -"qAQ" = ( -/obj/structure/falsewall, -/obj/effect/turf_decal/delivery/white, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"qDH" = ( -/obj/structure/bed, -/obj/item/bedsheet/grey, -/obj/effect/decal/cleanable/semen{ - desc = "Blech."; - name = "dried semen" - }, -/obj/effect/spawner/lootdrop/costume, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/bar) -"qIa" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/brig) -"qVU" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "Singularity"; - name = "radiation shutters" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"qYL" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"rcD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/science/circuit) -"rfW" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"rjW" = ( -/obj/effect/landmark/secequipment, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"rmX" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/drinks/beer, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"rre" = ( -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"rDl" = ( -/obj/structure/table/wood, -/turf/open/floor/wood{ - icon_state = "wood-broken5" - }, -/area/maintenance/bar) -"rKP" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/construction) -"rRb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken5" - }, -/area/maintenance/bar) -"rRI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/engineering) -"rUB" = ( -/obj/structure/grille, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space) -"rVc" = ( -/obj/structure/window/reinforced, -/obj/machinery/door/window/eastleft{ - name = "Cyborg Docking Port" - }, -/obj/machinery/recharge_station, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"rWi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"rYe" = ( -/obj/structure/table, -/obj/item/storage/toolbox/electrical{ - pixel_x = 2; - pixel_y = 4 - }, -/obj/item/storage/toolbox/electrical{ - pixel_x = -2 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"saK" = ( -/obj/structure/closet/crate, -/obj/item/target/alien, -/obj/item/target/alien, -/obj/item/target/clown, -/obj/item/target/clown, -/obj/item/target/syndicate, -/obj/item/target/syndicate, -/obj/item/gun/energy/laser/practice, -/obj/item/gun/energy/laser/practice, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"siI" = ( -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/obj/machinery/newscaster{ - pixel_x = 30 - }, -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/maintenance/bar) -"slk" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plating, -/area/maintenance/department/medical/morgue) -"soK" = ( -/obj/effect/turf_decal/loading_area/white, -/obj/effect/turf_decal/stripes/white/corner{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/white/corner, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"ssC" = ( -/turf/open/floor/plasteel/purple/side, -/area/crew_quarters/cryopod) -"stI" = ( -/obj/item/lighter/greyscale, -/obj/effect/decal/cleanable/semen{ - desc = "Blech."; - name = "dried semen" - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/bar) -"stR" = ( -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/cryopod"; - dir = 4; - name = "Cryogenics APC"; - pixel_x = 24 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/crew_quarters/cryopod) -"sxs" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/table, -/obj/item/shovel/spade, -/turf/open/floor/plasteel/hydrofloor, -/area/hallway/secondary/service) -"sxz" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"szF" = ( +"uuU" = ( /obj/structure/rack, /obj/item/clothing/suit/armor/riot{ pixel_x = -3; @@ -54168,333 +54053,24 @@ /obj/effect/turf_decal/bot_white, /turf/open/floor/plasteel/dark, /area/security/armory) -"sCR" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"sDk" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/grille, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"sFW" = ( -/turf/closed/wall, -/area/maintenance/bar) -"sJQ" = ( -/obj/structure/closet/bombcloset/security, -/turf/open/floor/plasteel/showroomfloor, -/area/space) -"sLv" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"sOs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance/abandoned, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"sOy" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" +"uCa" = ( +/obj/structure/chair/stool, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -35 }, /turf/open/floor/wood, /area/maintenance/bar) -"sPM" = ( -/turf/closed/wall, -/area/crew_quarters/cryopod) -"sSW" = ( -/obj/structure/chair/office/light, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"sXy" = ( -/obj/machinery/door/airlock/external{ - name = "Security External Airlock"; - req_access_txt = "63" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plating, -/area/security/main) -"tal" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/hallway/secondary/service) -"tgx" = ( -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/structure/closet/secure_closet/brig{ - id = "Secure Cell"; - name = "Secure Cell Locker" - }, -/obj/effect/turf_decal/stripes/white/end{ - dir = 4 - }, -/obj/effect/turf_decal/delivery/white, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"tmi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/security/brig) -"tof" = ( -/obj/machinery/power/emitter/anchored{ - dir = 4; - state = 2 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"toZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"tyq" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/rack, -/obj/item/clothing/mask/gas/sechailer{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/mask/gas/sechailer, -/obj/item/clothing/mask/gas/sechailer{ - pixel_x = 3; - pixel_y = -3 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"tMh" = ( -/turf/closed/wall/r_wall, -/area/security/armory) -"tMl" = ( -/obj/effect/turf_decal/loading_area, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"tNC" = ( +"uCz" = ( /turf/open/floor/wood{ - icon_state = "wood-broken5" + icon_state = "wood-broken6" }, /area/maintenance/bar) -"tNK" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"tOq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"tQO" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/cryopod{ - tag = "icon-cryopod-open (EAST)"; - icon_state = "cryopod-open"; - dir = 4 - }, -/turf/open/floor/noslip, -/area/crew_quarters/cryopod) -"tRc" = ( -/obj/structure/sign/poster/random{ - pixel_x = -32 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) -"tSN" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Engine Containment Starboard Aft"; - dir = 1; - network = list("engine") - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"tVF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance/abandoned{ - req_access_txt = "0" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/bar) -"tXL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) -"uaf" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 5 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"ujA" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"umb" = ( -/obj/machinery/suit_storage_unit/security, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"uow" = ( -/turf/closed/wall, -/area/space) -"uoB" = ( -/obj/structure/table/reinforced, -/obj/item/device/multitool, -/obj/item/screwdriver, -/obj/machinery/camera{ - c_tag = "Circuitry Lab North"; - network = list("ss13","rd") - }, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"utg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - cyclelinkeddir = 2; - id_tag = "innerbrig"; - name = "Brig"; - req_access_txt = "63" - }, +"uJC" = ( +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/security/brig) -"utm" = ( -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/newscaster{ - pixel_x = 30 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) -"utC" = ( -/obj/machinery/suit_storage_unit/security, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"uut" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) -"uwV" = ( -/obj/machinery/vending/clothing, -/turf/open/floor/wood, -/area/maintenance/bar) -"uze" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/bar) -"uAb" = ( -/obj/effect/spawner/lootdrop/keg, -/turf/open/floor/wood, -/area/maintenance/bar) -"uAc" = ( -/obj/structure/window/reinforced, -/obj/vehicle/ridden/secway, -/obj/item/key/security, -/obj/machinery/door/window/eastleft{ - name = "Secway Docking Port" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/showroomfloor, -/area/space/nearstation) -"uDn" = ( -/obj/machinery/vending/autodrobe, -/turf/open/floor/wood, -/area/maintenance/bar) -"uER" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/brigdoor{ - dir = 1; - name = "Armory Desk"; - req_access_txt = "3" - }, -/obj/machinery/door/window/southleft{ - name = "Reception Desk"; - req_access_txt = "63" - }, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel/showroomfloor, /area/security/brig) "uNu" = ( /obj/structure/disposalpipe/segment{ @@ -54527,14 +54103,14 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"uYC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 +"uXp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/maintenance/abandoned{ + req_access_txt = "0" }, -/obj/machinery/light{ - dir = 8 +/turf/open/floor/wood{ + icon_state = "wood-broken" }, -/turf/open/floor/wood, /area/maintenance/bar) "vbD" = ( /obj/machinery/door/firedoor, @@ -54547,10 +54123,30 @@ }, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) -"vmf" = ( -/obj/structure/falsewall, -/turf/open/floor/plating, +"vnJ" = ( +/obj/machinery/vending/games{ + name = "\improper Good 'Clean' Fun" + }, +/turf/open/floor/wood, /area/maintenance/bar) +"vob" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"vrL" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/engine/engineering) +"vvD" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "vxh" = ( /obj/structure/table, /obj/effect/spawner/lootdrop/maintenance{ @@ -54567,11 +54163,6 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) -"vzq" = ( -/obj/structure/chair/stool/bar, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/maintenance/bar) "vCb" = ( /obj/machinery/rnd/production/techfab/department/service, /turf/open/floor/plasteel/hydrofloor, @@ -54580,25 +54171,47 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white, /area/science/circuit) -"vMV" = ( +"vDk" = ( +/obj/machinery/flasher{ + id = "brigentry"; + pixel_y = -28 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"vEf" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"vEr" = ( +/obj/structure/grille, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"vPg" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, /obj/structure/cable{ - icon_state = "2-4" + icon_state = "1-4" }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) +/turf/open/floor/plating/airless, +/area/engine/engineering) +"vHG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/bar) +"vMr" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) "vPE" = ( /obj/machinery/light{ dir = 4 @@ -54606,34 +54219,48 @@ /obj/machinery/libraryscanner, /turf/open/floor/plasteel/white, /area/science/circuit) -"vPG" = ( +"vSg" = ( +/turf/open/floor/wood, +/area/maintenance/bar) +"weO" = ( /obj/structure/table/wood, /obj/machinery/chem_dispenser/drinks, /turf/open/floor/wood, /area/maintenance/bar) -"waV" = ( -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" +"whD" = ( +/obj/structure/chair/stool, +/turf/open/floor/wood{ + icon_state = "wood-broken7" }, -/obj/item/crowbar, -/obj/item/device/electropack/shockcollar, -/turf/open/floor/plating, /area/maintenance/bar) -"wdZ" = ( -/turf/open/floor/plasteel/dark, -/area/security/processing) +"wjY" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/space/nearstation) "wkN" = ( /turf/closed/wall, /area/science/circuit) -"wom" = ( -/obj/machinery/cryopod{ - tag = "icon-cryopod-open (EAST)"; - icon_state = "cryopod-open"; - dir = 4 +"wph" = ( +/obj/docking_port/stationary{ + area_type = /area/construction/mining/aux_base; + dheight = 4; + dir = 8; + dwidth = 4; + height = 9; + id = "aux_base_zone"; + name = "aux base zone"; + roundstart_template = /datum/map_template/shuttle/aux_base/default; + width = 9 }, -/turf/open/floor/noslip, -/area/crew_quarters/cryopod) +/turf/open/floor/plating, +/area/construction/mining/aux_base) +"wpT" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "wrp" = ( /obj/machinery/light{ dir = 8 @@ -54657,54 +54284,62 @@ }, /turf/closed/wall, /area/hallway/secondary/service) -"wEi" = ( -/obj/machinery/computer/cryopod{ - pixel_y = 25 +"wCj" = ( +/obj/item/lighter/greyscale, +/obj/effect/decal/cleanable/semen{ + desc = "Blech."; + name = "dried semen" }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"wFC" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/bar) "wHz" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) -"wRi" = ( -/turf/open/floor/plasteel/showroomfloor, -/area/space) -"wTe" = ( -/obj/structure/chair/stool, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) -"wUk" = ( -/turf/open/floor/plasteel/red/corner{ - dir = 4 +"wJD" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + cyclelinkeddir = 1; + id_tag = "lobbyairlock"; + name = "Security Lobby"; + req_access_txt = "0" }, +/turf/open/floor/plasteel/red/side, /area/security/brig) +"wUX" = ( +/obj/structure/table/wood/poker, +/obj/item/coin/iron, +/turf/open/floor/wood, +/area/maintenance/bar) "wUY" = ( /obj/structure/table, /obj/item/reagent_containers/glass/bucket, /turf/open/floor/plasteel/hydrofloor, /area/hallway/secondary/service) -"wWq" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"wZZ" = ( +"wWN" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/turf_decal/stripes/line{ - dir = 9 + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/armory) +"wXT" = ( +/obj/structure/chair/stool, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/maintenance/bar) +"wZS" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 }, /turf/open/floor/plating/airless, -/area/space/nearstation) +/area/space) "xhV" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -54725,31 +54360,36 @@ }, /turf/open/floor/plating, /area/hallway/secondary/service) -"xiB" = ( -/obj/effect/landmark/start/station_engineer, -/obj/structure/chair/office/dark{ - dir = 1 +"xjt" = ( +/obj/effect/spawner/lootdrop/keg, +/turf/open/floor/wood, +/area/maintenance/bar) +"xte" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/maintenance/bar) +"xvH" = ( +/obj/machinery/vending/clothing, +/turf/open/floor/wood, +/area/maintenance/bar) +"xxh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"xlB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/turf/closed/wall, +/area/maintenance/bar) +"xCS" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "briggate"; + name = "security shutters" }, -/obj/machinery/camera/motion{ - c_tag = "Armory Motion Sensor"; - dir = 2; - name = "motion-sensitive security camera" +/obj/machinery/door/window/eastright{ + name = "Brig Desk"; + req_access_txt = "2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"xDv" = ( -/obj/structure/closet/l3closet/security, -/turf/open/floor/plasteel/showroomfloor, -/area/space/nearstation) +/turf/open/floor/plasteel/dark, +/area/security/brig) "xEu" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 @@ -54761,27 +54401,60 @@ /obj/effect/spawner/lootdrop/grille_or_trash, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"xSp" = ( +"xMc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /obj/structure/cable{ - icon_state = "0-8" + icon_state = "4-8" }, -/obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/security/brig) -"xYs" = ( -/obj/structure/chair/stool, -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -35 - }, -/turf/open/floor/wood, /area/maintenance/bar) +"xOe" = ( +/obj/item/shard, +/obj/item/wirecutters, +/obj/item/wallframe/camera, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/bar) +"xWy" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"ycr" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating, +/area/engine/engineering) "ycu" = ( /obj/structure/cable{ icon_state = "2-4" }, /turf/open/floor/plasteel, /area/science/circuit) +"yeG" = ( +/obj/structure/sign/poster/random{ + pixel_y = -32 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"ylH" = ( +/obj/effect/landmark/start/station_engineer, +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) (1,1,1) = {" aaa @@ -62339,9 +62012,9 @@ aaa aae aaf aaa -aqH -apK -aqH +aaa +aaa +aaa aaa aaa aae @@ -62353,9 +62026,9 @@ aaa aaa aaa aaa -aqF -apH -aqF +aaa +aaa +aaa aaa aaa aaa @@ -62596,9 +62269,6 @@ aaa aaa aaf aaa -aqH -cpK -aqH aaa aaa aaa @@ -62610,9 +62280,12 @@ aaa aaa aaa aaa -aqF -cxl -aqF +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -62853,9 +62526,6 @@ aaa aaa aaf aaa -aqH -cpL -aqH aaa aaa aaa @@ -62867,9 +62537,12 @@ aaa aaa aaa aaa -aqF -cxx -aqF +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -63110,9 +62783,8 @@ aaa aaa aaf aaa -ckq +aaa cqq -ckq aaa aaa aaa @@ -63124,9 +62796,10 @@ aaa aaa aaa aaa -cwU -cxF -cwU +aaa +aaa +cqq +aaa aaa aaa aaa @@ -63872,14 +63545,14 @@ aaa aaa apJ apN -arC -arC -arC -arC -arC -arC -arC -aEp +apN +apN +apN +apN +apN +apN +apN +apN apJ avP iEJ @@ -64128,15 +63801,15 @@ aaa aaa aaf apJ -aqI -arD -arD -arD -arD -arD -arD -arD -auN +apN +apN +apN +apN +apN +apN +apN +apN +apN apJ awY ayk @@ -64385,15 +64058,15 @@ aaa aaa aaf apJ -aqI -arD -arD -arD -arD -arD -arD -arD -auN +apN +apN +apN +apN +apN +apN +apN +apN +apN apJ awZ ayl @@ -64642,15 +64315,15 @@ aaa aaa aaf apJ -aqI -arD -arD -arD -atk -arD -arD -arD -auN +apN +apN +apN +apN +apN +apN +apN +apN +apN apJ awZ ayk @@ -64899,15 +64572,15 @@ aaa aaa aaa apJ -aqI -arD -arD -asG -atl -awX -arD -arD -auN +apN +apN +apN +apN +wph +apN +apN +apN +apN apJ awZ cqr @@ -65156,15 +64829,15 @@ aaa aaa aaa apJ -aqI -arD -arD -arD -cCs -arD -arD -arD -auN +apN +apN +apN +apN +apN +apN +apN +apN +apN apJ awZ aIK @@ -65413,15 +65086,15 @@ aaa aaa aaa apJ -aqI -arD -arD -arD -arD -arD -arD -arD -auN +apN +apN +apN +apN +apN +apN +apN +apN +apN apJ awZ aIK @@ -65670,15 +65343,15 @@ aaa aaa aaf apJ -aqI -arD -arD -arD -arD -arD -arD -arD -auN +apN +apN +apN +apN +apN +apN +apN +apN +apN apJ awZ cry @@ -65927,15 +65600,15 @@ aaa aaa aaa apJ -aqN -asD -asD -asD -cCt -asD -asD -asD -aFD +apN +apN +apN +apN +apN +apN +apN +apN +apN apJ awZ crz @@ -68020,7 +67693,7 @@ czK bhN bcl beQ -bgk +pLn bhI bjb bkz @@ -69048,7 +68721,7 @@ czK bbe beO beU -bgl +bgk bhL bjc cAF @@ -76274,20 +75947,20 @@ bCq bPY cOw bCq -sFW -sFW -sFW -sFW -sFW -ksK -sFW -sFW -sFW -sFW -sFW -sFW -sFW -sFW +rYO +rYO +rYO +rYO +rYO +hHu +rYO +rYO +rYO +rYO +rYO +rYO +rYO +rYO bUs bLv aaa @@ -76531,20 +76204,20 @@ bCq bPX bRg bRg -sFW -nAW +rYO +vSg bVG -uYC -fPq -nAW -uAb -sFW -nAW -tRc +lWf +jZP +vSg +xjt +rYO +vSg +tNR bVG -nAW -hpY -sFW +vSg +dTy +rYO bUs bLv aaa @@ -76788,20 +76461,20 @@ bLv bQa bHE bHE -sFW -get -uut -jlZ -iDC -imZ -iDC -dnc -iDC -iDC -toZ -tNC -dAs -sFW +rYO +hsU +vHG +iWM +xte +kOO +xte +ifj +xte +xte +vEf +jrX +yeG +rYO bUs bLv aaf @@ -77045,20 +76718,20 @@ bLv bPZ bHE bHE -hNj -rWi -mkG -vzq -mdX -pvp -mTC -mlj -mTC -dFc -fDs +nZe +noe +sfS +jbT +pLx +hcV +iWK +uXp +iWK +mES +iWy cCa -nAW -sFW +vSg +rYO bUs bLv aaa @@ -77302,20 +76975,20 @@ bLv bHE bHE bSs -sFW -rRb -ofH -rDl -cIK -ofH -nAW -lkC -hXw +rYO +qne +nok +tDm +sRl +nok +vSg +mOS +uCz cCa -kqE -lgs -diu -sFW +hNR +gVz +wXT +rYO bUs bLv aaa @@ -77559,20 +77232,20 @@ bCq bHE bRh bLu -sFW -jEl -utm -eCQ -fSk -sOy -lkA -sFW -nAW -wTe -kqE -lgs -xYs -sFW +rYO +rXD +pye +heG +pjh +dMY +rkz +rYO +vSg +whD +hNR +gVz +uCa +rYO bUs bLv aaf @@ -77737,10 +77410,10 @@ abc abc afu abc -abc -abc -abc -abc +aaa +aaa +aaa +aaa aaa aaa aaa @@ -77816,20 +77489,20 @@ bCq bOK bCq bCq -sFW -tVF -gGR -fWC -vPG -hik -sFW -sFW -nAW +rYO +jOb +xxh +mjp +weO +dUz +rYO +rYO +vSg cCa -ouy -cKY +tPI +wUX cCa -sFW +rYO bUs bLv aaa @@ -77993,13 +77666,13 @@ abc aea aeH aft -qAQ -soK -mUH -uaf +cXd +ktN +sSO +rVy abc -lkm -lkm +pzB +pzB aaa aiU aln @@ -78074,19 +77747,19 @@ bHE bLv aaa bLv -nrT -gGR -sFW -sFW -sFW -sFW -nAW -nAW -nAW -nQE +xMc +xxh +rYO +rYO +rYO +rYO +vSg +vSg +vSg +kjK cCa -htN -sFW +gMI +rYO bUs bLv aaa @@ -78252,18 +77925,18 @@ aeJ afw abc abc -nNQ -eLY +fJG +mQL abc aaf aaf aaf aiU -wdZ +jnp aiU aaa aiU -wdZ +jnp aiU aaf aaf @@ -78331,19 +78004,19 @@ bHE bLv aaf bLv -nrT -gGR -aEt -waV -stI -vmf -nAW -hXw -tNC -nvm -nAW -nAW -sFW +xMc +xxh +kRe +lnm +wCj +kXH +vSg +uCz +jrX +oLO +vSg +vSg +rYO bUs bLv aaf @@ -78509,8 +78182,8 @@ aeI afv agf abc -tgx -pAL +kdx +lNf abc aiT aiT @@ -78588,19 +78261,19 @@ bLv bCq aaa bLv -nrT -gGR -kuC -qDH -fnP -sFW -uwV -uDn -siI -oFD -nBt -eYQ -sFW +xMc +xxh +xOe +hPY +cZO +rYO +xvH +mtP +iXO +rZN +vnJ +hpF +rYO bUs bCq aaa @@ -78766,9 +78439,9 @@ aeL afy agh abc -gvx -gvx -gvx +nfW +nfW +nfW aiV ajs akb @@ -78846,17 +78519,17 @@ aaa aaa bTB bUv -uze -kPh -kPh -kPh -kPh -kPh -kPh -kPh -kPh -kPh -kPh +eeA +dpp +dpp +dpp +dpp +dpp +dpp +dpp +dpp +dpp +dpp car bUs bCq @@ -79023,9 +78696,9 @@ aeK afx agg abc -gvx -gKN -gvx +nfW +iPE +nfW aiV ajr aka @@ -79280,9 +78953,9 @@ aeN afA afA afA -gvx -gvx -gvx +nfW +nfW +nfW aiV aju akd @@ -79901,7 +79574,7 @@ ciN cji cDZ crr -crJ +aaa aaa aaa aaa @@ -80154,11 +79827,11 @@ ccw cfL coH cBO -cnv +cgR cDB cqP crq -crJ +aaa aaa aaa aaa @@ -80429,7 +80102,7 @@ gXs gXs gXs gXs -lkm +pzB aaa aaa aaa @@ -80672,22 +80345,22 @@ cpX cqz cqQ ccw -crJ +crH aaa aaa -nyw -nyw -nyw +sHb +sHb +sHb aaa aaa aaa aaa aaa -nyw -nyw -nyw -lkm -lkm +sHb +sHb +sHb +pzB +pzB aaa aaa aaa @@ -80929,24 +80602,24 @@ clJ cig cig ccw -crJ -crJ -nyw -nyw -nyw -nyw -nyw +crH +crH +sHb +sHb +sHb +sHb +sHb aaa aaa aaa -nyw -nyw -nyw -nyw -nyw -lkm -lkm -lkm +sHb +sHb +sHb +sHb +sHb +pzB +pzB +pzB aaa aaa aaa @@ -81180,7 +80853,7 @@ ccw ccw ccw cnZ -lmZ +pNk cpt cpt cpt @@ -81202,8 +80875,8 @@ ccw ccw ccw ccw -nyw -lkm +sHb +pzB aaa aaa aaa @@ -81344,7 +81017,7 @@ auj akl akO alx -pfR +tII amg aiX anw @@ -81439,28 +81112,28 @@ cnt cob coL cDo -xiB +ylH cgR cqT ccw -ghy +hQe ccw -csb -cFn -css -cFn -csx +wpT +fBa +vEr +fBa +qRE ccw ccw ccw cGE -cFn -mGv -fAn -fAn +fBa +pRH +dPI +dPI ccw -nyw -cQG +sHb +cSI aaa aaa aaa @@ -81698,26 +81371,26 @@ coK cpu cMm ckH -wWq -pYB +qCO +swV crK cEK csa -dlj -tof -dlj +sOa +fBP +sOa cGr -sDk -kOs -sDk -iWY -dlj -tof -dlj -dlj +vob +kbh +vob +cNt +sOa +fBP +sOa +sOa ccw -nyw -lkm +sHb +pzB aaa aaa aaa @@ -81856,9 +81529,9 @@ aiF agj ajD akm -jrJ +mTp aly -bhP +lyP amQ aiX anw @@ -81953,28 +81626,28 @@ cgR cnZ chF ciO -xiB +ylH cgR cqT ccw cig ccw cFb -dlj +sOa cFI -dlj -dlj -dlj -dlj -dlj -dlj -dlj +sOa +sOa +sOa +sOa +sOa +sOa +sOa cFI -dlj -iVO +sOa +sfz ccw -nyw -mFn +sHb +hSf aaa aaa aaa @@ -82090,7 +81763,7 @@ aaa aag aaf aai -wEi +sHe aaA aaG aaK @@ -82115,7 +81788,7 @@ aja akl akP alx -pfR +tII ami aiX anw @@ -82208,30 +81881,30 @@ ceZ clQ cgR cnZ -lmZ +pNk cgR cgR cgR cqT -dxw +kTZ cEs -dlj -oWs +sOa +fZs cAp -qtN +tgb cAo -qtN +tgb cAo -qtN +tgb cAo -qtN -jMi -dlj -dlj -dlj +tgb +lCe +sOa +sOa +sOa ccw -nyw -ldw +sHb +fGu aaa aaa aaa @@ -82369,7 +82042,7 @@ agP agP aiz ajg -hBF +hrd akQ agj agj @@ -82465,15 +82138,15 @@ cTd ckF ckF cgK -lmZ +pNk cgR cgR cgR cqT -dxw +kTZ csP -dlj -dlj +sOa +sOa cAq cFJ cSH @@ -82484,11 +82157,11 @@ cSH cFJ cSH cFJ -dlj -dlj +sOa +sOa ccw -nyw -ldw +sHb +fGu aaa aaa aaa @@ -82607,7 +82280,7 @@ aaa aaa aaf aaf -rUB +dwQ aaf aai abi @@ -82629,7 +82302,7 @@ ajb ajF akN alw -jXD +hkC amQ aiX anw @@ -82727,25 +82400,25 @@ cpx cqd cjc cqU -dxw +kTZ csP -dlj -oWs +sOa +fZs cAq cFK aoV aoV cFK -gXs +pzB aaa aoV aoV cFK cFJ -dlj +sOa ccw -nyw -ldw +sHb +fGu aaf aaa aaa @@ -82880,16 +82553,16 @@ agn agR agn agR -kIZ +sIS aiX -kvn +kUh akv -pSC -lou +gqU +xWy aww amk aiX -nrJ +rQi aov aph aqb @@ -82982,7 +82655,7 @@ cnZ cDh cpy ccw -kbf +fXl ccw ccw cqY @@ -82992,17 +82665,17 @@ cAq aoV aoV aoV -lkm -aaf +pzB +cSI aaa aoV aoV aoV cFJ -dlj +sOa ccw -nyw -ldw +sHb +fGu aaa aaa aaa @@ -83121,26 +82794,26 @@ aaa aaa aaa aaf -rUB +dwQ aaf -tMh -aaT -fVu -umb +dKf +juA +sQG +jAM aaZ cpg acv adi -jFG +hyb aaZ aeW -tyq +fVA ahv ahQ aiI aiH ajI -mAD +hZr akQ agj agj @@ -83240,26 +82913,26 @@ cDh ccw cqf cqD -dCs +kso crs cEv -msk +ycr cqY cAq aoV aoV aaa aaa -aaf +pzB aaa aaa aoV aoV cFJ -dlj +sOa ccw -nyw -ldw +sHb +fGu aaa aaa aaa @@ -83378,29 +83051,29 @@ aaa aaa aaa aaf -rUB +dwQ aaf -tMh -aaT -oaS -umb +dKf +juA +gcN +jAM aaZ acl cxA acL -fbL +exQ aaZ agp agT ahx ahS aiK -uER -kvn +mDn +kUh akm akT aly -mDW +ekX amQ aiX anw @@ -83494,29 +83167,29 @@ cmL cgR cnZ chX -qVU +nzk cqh cqF cra crI cEw -qzP +rmR cqY cAq aaa aaa aaa -wZZ +rrQ cGU -iyf +eeO aaa -lkm +pzB cFK cFJ -dlj +sOa ccw -nyw -ldw +sHb +fGu aaa aaa aae @@ -83635,12 +83308,12 @@ aaa aaa aaa aaf -rUB +dwQ aaf -tMh -aaT -odi -eXD +dKf +juA +wWN +iCL aaZ ack adk @@ -83657,13 +83330,13 @@ ajI akl akS alx -pfR +tII amp aiX anS aoy -wFC -nRD +apj +anz anz anz anz @@ -83750,7 +83423,7 @@ clJ cmL cnv cnZ -rRI +lSn ccw cqg cqE @@ -83758,22 +83431,22 @@ cqZ crt cMH cAm -tNK +fVS cMN -gXs -aaf -aaf -sCR +pzB +cSI +cSI +fvg cGV -gmz -aaf -aaf -gXs +sLb +cSI +cSI +pzB cFJ -dlj +jcS ccw -nyw -ldw +sHb +fGu aaa aaa aaa @@ -83892,14 +83565,14 @@ aaa aaa aaa aaf -rUB +dwQ aaf -tMh -aaT -oaS -utC +dKf +juA +gcN +ejP aaZ -xlB +oEn acM adQ cwM @@ -83909,8 +83582,8 @@ agU ahy ahX aiL -xSp -pPZ +gKO +tdg akq akQ agj @@ -84007,30 +83680,30 @@ ccw cmN cgR cnZ -rRI -kbf +lSn +fXl cqj cSG crb cru cEx -lTm +vrL cqY cAq cFK -lkm +pzB aaa -sxz -oyk -mtY +wZS +rzC +nzm aaa aaa aaa cFJ -dlj +sOa ccw -nyw -ldw +sHb +fGu aaa aaa aaa @@ -84149,14 +83822,14 @@ aaa aaa aaa aaf -rUB +dwQ aaf -tMh -fPE -piG -utC +dKf +nvz +htj +ejP aaZ -gva +pvY coS aet cxA @@ -84166,18 +83839,18 @@ agt ahz aie agt -jyK -erb +svF +vMr akp akU alz aml amT aiX -gZp -jKG +rez +wJD apl -jCY +aqc aqc aqc aqc @@ -84264,7 +83937,7 @@ clM cfz cgR cnZ -rRI +lSn ccw cqi cMD @@ -84278,16 +83951,16 @@ aoV aoV aaa aaa -aaf +cSI aaa aaa aoV aoV cFJ -dlj +sOa ccw -nyw -ldw +sHb +fGu aaa aaa aaa @@ -84406,14 +84079,14 @@ aaa aaa aaa aaf -rUB +dwQ aaf -tMh -inb -mwi -vPg +dKf +nDS +jUO +iaO abQ -gvi +mZB adj arc blT @@ -84424,15 +84097,15 @@ cxk aig aiM aiX -tmi -kwU -hjI +kBh +qLG +pGb alB amn amV -hHa +sCb aiG -ndn +flZ aod aqf ahT @@ -84442,11 +84115,11 @@ ahT ahT awn axF -vMV -vMV -vMV -vMV -stR +hrv +hrv +hrv +hrv +ilR anF anF aoa @@ -84521,10 +84194,10 @@ cfa cje cgR cnZ -rRI +lSn cpy ccw -kbf +fXl ccw ccw cqY @@ -84535,16 +84208,16 @@ aoV aoV aaa aaa -aaf -lkm +cSI +pzB aaa aoV aoV cFJ -dlj +sOa ccw -nyw -ldw +sHb +fGu aaa aaa aaa @@ -84663,14 +84336,14 @@ aaa aaa aaa aaf -rUB +dwQ aaf -tMh -jcD -iev -erH +dKf +uqz +kwo +mOo abN -dFm +rth acF acF aes @@ -84681,16 +84354,16 @@ ahB aHp agn aiX -ivo -utg +oFD +ksW amS alA -hnm +xCS amm -eyV +fev anT anT -aod +apn aqe arf arf @@ -84701,10 +84374,10 @@ arf arf arf arf -sPM -sPM -sPM -sPM +rwa +rwa +rwa +rwa anF ahn aJn @@ -84783,25 +84456,25 @@ cpD cDw cDF cEa -dxw +kTZ csP -dlj -oWs +sOa +fZs cAq cFK aoV aaa aaa -gXs +pzB cFK aoV aoV cFK cFJ -dlj +sOa ccw -nyw -ldw +sHb +fGu aaf aaa aaa @@ -84920,12 +84593,12 @@ aaa aaa aaa aaf -rUB +dwQ aaf -tMh -szF -aCU -kEw +dKf +uuU +enX +jsN aci acm cpA @@ -84942,10 +84615,10 @@ ajJ akr akX aje -fpI -fpI -fpI -fpI +oUp +oUp +oUp +oUp aoB aod aqe @@ -84958,10 +84631,10 @@ atf arf aqa atf -sPM -tQO -wom -sPM +rwa +tRB +kcH +rwa anF ahn aaa @@ -85040,10 +84713,10 @@ cgR cgR cgR cqT -dxw +kTZ csP -dlj -dlj +sOa +sOa cAq cFJ cSK @@ -85054,11 +84727,11 @@ cSK cFJ cSK cFJ -dlj -dlj +sOa +sOa ccw -nyw -ldw +sHb +fGu aaa aaa aaa @@ -85179,9 +84852,9 @@ aaf aaf ctv ctv -nyw +sHb adR -mxQ +qyv avB aaZ aaZ @@ -85200,12 +84873,12 @@ ahY akX ajc alC -fpI -fpI -oHs -hfY -nYB -ujA +oUp +oUp +leL +vDk +aod +aqe arf apY ate @@ -85215,10 +84888,10 @@ ath arf apY ath -sPM -gQx -ssC -sPM +rwa +faG +rtI +rwa anF ahn aaa @@ -85297,25 +84970,25 @@ cnx cDx cqb cqT -dxw +kTZ cEs -dlj -oWs +sOa +fZs cAr -qtN +tgb cGh -qtN +tgb cGh -qtN +tgb cGh -qtN -rre -dlj -dlj -dlj +tgb +gUa +sOa +sOa +sOa ccw -nyw -ldw +sHb +fGu aaa aaa aaa @@ -85435,9 +85108,9 @@ aaa aaa aaa atS -uAc -eXc -rVc +ebz +aEs +pyu abO abO acO @@ -85452,14 +85125,14 @@ ahA ahZ adR aiQ -kvn +kUh akt -kyp -iUe +oFM +nlM ajc -ndn +flZ aiG -pmD +heb aoD aod aqe @@ -85472,10 +85145,10 @@ ath arf ayV ath -sPM +rwa aCd -ssC -sPM +rtI +rwa anF ahn aJw @@ -85558,21 +85231,21 @@ ccw ccw ccw crc -dlj +sOa cBR -dlj -dlj -dlj -dlj -dlj -dlj -dlj +sOa +sOa +sOa +sOa +sOa +sOa +sOa cBR -dlj -tSN +sOa +jTA ccw -nyw -ldw +sHb +fGu aaa aaa aaa @@ -85691,9 +85364,9 @@ aaa aaa aaa aaa -iFU -jWi -wRi +nip +exs +soh abO abO abO @@ -85712,11 +85385,11 @@ ajf ajK aks akY -wUk +sPd ajc -gAl +sTB alC -pmD +heb aoC aod aqe @@ -85729,10 +85402,10 @@ awo arf asd aAb -sPM -myR -ssC -sPM +rwa +siw +rtI +rwa aoa ahn aJv @@ -85809,27 +85482,27 @@ cDe cDk coc cqa -rYe -wWq -pYB +hYu +qCO +swV czF cEK csd -dlj +sOa cFU -dlj +sOa cGE -sDk +vob cGZ -sDk -csx -dlj +vob +qRE +sOa cFU -dlj -dlj +sOa +sOa ccw -nyw -lkm +sHb +pzB aaa aaa aaa @@ -85948,14 +85621,14 @@ aaa aaa aaa aaa -uow -jWi -wRi -rjW -rjW -rjW -rjW -rjW +ohN +exs +soh +klO +klO +klO +klO +klO abO aew afe @@ -85967,13 +85640,13 @@ aia aiP aiR ajB -dVC +lUX aiX akz alf -lXp -lXp -ldy +iei +iei +sxZ aoF apo aqh @@ -86072,21 +85745,21 @@ ccw crM ccw crV -cFn -qYL -cFn -iWY +fBa +kbA +fBa +cNt ccw ccw ccw cGr -cFn -kPB -fAn -fAn +fBa +vvD +dPI +dPI ccw -nyw -cQG +sHb +cSI aaf aaa aaa @@ -86205,9 +85878,9 @@ aaa aaa aaa aaf -dcQ -jWi -jWi +wjY +exs +exs abO abO acp @@ -86228,11 +85901,11 @@ aku aiX alE amq -iyX -qIa -fAq +iob +gjf +uJC aoE -gLD +aod aqg aun asf @@ -86341,9 +86014,9 @@ ccw ccw ccw ccw -maf -nyw -lkm +jbA +sHb +pzB aaa aaa aaa @@ -86462,14 +86135,14 @@ aaa aaa aaa aaa -uow -sJQ -xDv -lJX +ohN +kNF +hse +gMt abR -lJX -lJX -lJX +gMt +gMt +gMt abl abp abp @@ -86589,18 +86262,18 @@ ccw ccw ccw ccw -kgu -crJ -crJ -crJ -nyw -nyw -nyw -nyw -nyw +iex +crH +crH +crH +sHb +sHb +sHb +sHb +sHb aaa -cQG -lkm +cSI +pzB aaa aaa aaa @@ -86850,13 +86523,13 @@ aaa aaa aaa aaa -crJ -nyw -nyw -nyw -lkm -lkm -lkm +crH +sHb +sHb +sHb +pzB +pzB +pzB aaa aaa aaa @@ -87079,7 +86752,7 @@ caE cbA ccy bOd -gMx +qyS bQu cfO cgW @@ -87101,17 +86774,17 @@ ccw crX cfK aag -lkm -lkm -lkm -lkm -lkm -lkm +pzB +pzB +pzB +pzB +pzB +pzB gXs gXs gXs gXs -lkm +pzB aaa aaa aae @@ -87324,7 +86997,7 @@ bIF bOZ bQp bRA -gMx +qyS bTO bUL bVU @@ -88376,9 +88049,9 @@ clV cmV bOh cig -cpc -cpJ -cpc +aaa +afp +aaa cig cqY cqY @@ -88633,9 +88306,9 @@ clW clW bOh cig -cpd -czM -cpd +aaa +aaa +aaa cig aaa aaa @@ -88890,9 +88563,9 @@ bOh bOh bOh ccw -cpd -czL -cpd +aaa +aaa +aaa ccw aaf aaa @@ -89147,9 +88820,9 @@ clY clZ bOh aaa -cpd -cpM -cpd +aaa +aaa +aaa aaf aaf aaa @@ -89812,9 +89485,9 @@ aaf aaf aaf abp -aeD +aaa afp -aeD +aaa abp aaa aaa @@ -90069,9 +89742,9 @@ aaf aaa aaa adR -aeE -afr -aeE +aaa +aaa +aaa adR aaa aaa @@ -90326,9 +89999,9 @@ aaa aaa aaa aaa -aeE -afq -aeE +aaa +aaa +aaa aaa aaa aaa @@ -90583,9 +90256,9 @@ aaa aaa aaa aaa -aeE -afs -aeE +aaa +aaa +aaa aaa aaa aaa @@ -90679,19 +90352,19 @@ ccC cdD bOh aaf -aah -aah +cCS +cCS aaf aaf aaf aaf aaf -aah -aah -aah -aah -aah -aah +cCS +cCS +cCS +cCS +cCS +cCS aaf aaf aaf @@ -95759,7 +95432,7 @@ aFp aGW anf aIp -aKI +fGf aMA aIp aOX diff --git a/_maps/cit_map_files/Deltastation/DeltaStation2.dmm b/_maps/cit_map_files/Deltastation/DeltaStation2.dmm index 26ad2b8e78..848b11f0e3 100644 --- a/_maps/cit_map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/cit_map_files/Deltastation/DeltaStation2.dmm @@ -124,27 +124,6 @@ }, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) -"aaq" = ( -/obj/structure/cable/white{ - icon_state = "0-8" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/security/prison) -"aar" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/cryopod, -/obj/machinery/computer/cryopod{ - pixel_y = 28 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/security/prison) "aas" = ( /obj/docking_port/stationary/random{ id = "pod_lavaland1"; @@ -164,116 +143,10 @@ /obj/effect/landmark/xeno_spawn, /turf/open/space, /area/solar/starboard/fore) -"aav" = ( -/obj/structure/cable/white, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/power/emitter{ - anchored = 1; - state = 2 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"aaw" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Containment - Fore Starboard"; - dir = 8; - network = list("singularity") - }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"aax" = ( -/turf/open/floor/plating/airless, -/area/space) -"aay" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/engine/engineering) -"aaz" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/space, -/area/space) -"aaA" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_1) -"aaB" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/pod_1) -"aaC" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_2) -"aaD" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/pod_2) "aaE" = ( /obj/structure/lattice/catwalk, /turf/open/space, /area/solar/starboard/fore) -"aaF" = ( -/turf/open/floor/plating/airless, -/area/space/nearstation) -"aaG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"aaH" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/space, -/area/space) -"aaI" = ( -/obj/effect/decal/cleanable/oil, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engpa"; - name = "Engineering Chamber Shutters" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"aaJ" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/space, -/area/space) -"aaK" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/space, -/area/space) -"aaL" = ( -/turf/open/space/basic, -/area/space/nearstation) -"aaM" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/space, -/area/space) -"aaN" = ( -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/engineering) "aaO" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -281,123 +154,9 @@ "aaP" = ( /turf/closed/wall/mineral/plastitanium, /area/hallway/secondary/entry) -"aaQ" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/status_display{ - pixel_x = 32 - }, -/obj/machinery/computer/shuttle/pod{ - pixel_x = -32; - possible_destinations = "pod_lavaland1"; - shuttleId = "pod1" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/shuttle/pod_1) -"aaR" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/status_display{ - pixel_x = 32 - }, -/obj/machinery/computer/shuttle/pod{ - pixel_x = -32; - possible_destinations = "pod_lavaland2"; - shuttleId = "pod2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/shuttle/pod_2) "aaS" = ( /turf/closed/wall/mineral/plastitanium, /area/construction/mining/aux_base) -"aaT" = ( -/turf/open/space, -/area/space) -"aaU" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) -"aaV" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engpa"; - name = "Engineering Chamber Shutters" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aaW" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"aaX" = ( -/obj/structure/particle_accelerator/particle_emitter/left{ - icon_state = "emitter_left"; - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"aaY" = ( -/obj/structure/cable, -/obj/machinery/particle_accelerator/control_box, -/turf/open/floor/plating, -/area/engine/engineering) -"aaZ" = ( -/obj/machinery/vending/kink, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/locker) -"aba" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space) -"abb" = ( -/obj/structure/particle_accelerator/particle_emitter/center{ - icon_state = "emitter_center"; - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"abc" = ( -/obj/structure/particle_accelerator/power_box{ - icon_state = "power_box"; - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"abd" = ( -/obj/structure/particle_accelerator/fuel_chamber{ - icon_state = "fuel_chamber"; - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) "abe" = ( /obj/effect/turf_decal/delivery, /obj/item/twohanded/required/kirbyplants/random, @@ -406,48 +165,6 @@ "abf" = ( /turf/closed/wall, /area/hallway/secondary/entry) -"abg" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/item/device/radio/intercom{ - pixel_x = 25 - }, -/obj/item/storage/pod{ - pixel_x = -26 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/shuttle/pod_1) -"abh" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/item/device/radio/intercom{ - pixel_x = 25 - }, -/obj/item/storage/pod{ - pixel_x = -26 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/shuttle/pod_2) "abi" = ( /turf/closed/wall, /area/construction/mining/aux_base) @@ -455,44 +172,6 @@ /obj/structure/lattice/catwalk, /turf/open/space, /area/space/nearstation) -"abk" = ( -/obj/structure/particle_accelerator/end_cap{ - icon_state = "end_cap"; - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"abl" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space) -"abm" = ( -/obj/structure/particle_accelerator/particle_emitter/right{ - icon_state = "emitter_right"; - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"abn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/computer/cryopod{ - pixel_x = 28 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 4 - }, -/area/crew_quarters/locker) -"abo" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/engine/engineering) "abp" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small{ @@ -516,98 +195,22 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) -"abr" = ( -/obj/structure/shuttle/engine/propulsion/burst, -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_1) "abs" = ( -/obj/machinery/door/airlock/shuttle{ - name = "Escape Pod Airlock" +/obj/docking_port/stationary{ + dir = 1; + dwidth = 1; + height = 4; + name = "escape pod loader"; + roundstart_template = /datum/map_template/shuttle/escape_pod/default; + width = 3 }, -/obj/docking_port/mobile/pod{ - id = "pod1"; - name = "escape pod 1"; - port_direction = 2 - }, -/obj/effect/turf_decal/stripes/end, -/turf/open/floor/plasteel/white, -/area/shuttle/pod_1) -"abt" = ( -/obj/structure/shuttle/engine/propulsion/burst, -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_2) -"abu" = ( -/obj/machinery/door/airlock/shuttle{ - name = "Escape Pod Airlock" - }, -/obj/docking_port/mobile/pod{ - id = "pod2"; - name = "escape pod 2"; - port_direction = 2 - }, -/obj/effect/turf_decal/stripes/end, -/turf/open/floor/plasteel/white, -/area/shuttle/pod_2) +/turf/open/space/basic, +/area/space) "abv" = ( /obj/item/stack/cable_coil, /obj/structure/lattice/catwalk, /turf/open/space, /area/solar/starboard/fore) -"abw" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/cryopod, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/locker) -"abx" = ( -/obj/machinery/status_display{ - pixel_x = 32 - }, -/obj/machinery/cryopod, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/locker) -"aby" = ( -/obj/structure/cable, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/power/tesla_coil, -/turf/open/floor/plating/airless, -/area/space) -"abz" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/space) -"abA" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"abB" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Containment - Aft Starboard"; - dir = 8; - network = list("singularity") - }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/engine/engineering) "abC" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -660,66 +263,6 @@ }, /turf/open/floor/plasteel, /area/construction/mining/aux_base) -"abI" = ( -/obj/structure/cable/white{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/power/emitter{ - anchored = 1; - dir = 1; - icon_state = "emitter"; - state = 2 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"abJ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/space) -"abK" = ( -/obj/machinery/field/generator{ - anchored = 1; - state = 2 - }, -/turf/open/floor/plating/airless, -/area/space) -"abL" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space) -"abM" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/space, -/area/space) -"abN" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/space) -"abO" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating/airless, -/area/space) "abP" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/external{ @@ -768,44 +311,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/construction/mining/aux_base) -"abU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating/airless, -/area/space) -"abV" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/power/tesla_coil, -/turf/open/floor/plating/airless, -/area/space) -"abW" = ( -/obj/machinery/the_singularitygen/tesla, -/turf/open/floor/plating/airless, -/area/space) -"abX" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space) -"abY" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space) "abZ" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/line{ @@ -869,57 +374,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/maintenance/solars/starboard/fore) -"acg" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating/airless, -/area/space) -"ach" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plating/airless, -/area/space) -"aci" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating/airless, -/area/space) -"acj" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space) -"ack" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating/airless, -/area/space) -"acl" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/power/tesla_coil, -/turf/open/floor/plating/airless, -/area/space) -"acm" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/space) -"acn" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/space, -/area/space) "aco" = ( /turf/open/floor/plasteel/neutral, /area/hallway/secondary/entry) @@ -968,7 +422,7 @@ /turf/open/floor/plating, /area/maintenance/solars/starboard/fore) "acv" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -981,23 +435,6 @@ }, /turf/open/floor/plating, /area/maintenance/solars/starboard/fore) -"acw" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/space, -/area/space) -"acx" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/space, -/area/space) "acF" = ( /obj/docking_port/stationary{ dir = 2; @@ -1345,7 +782,7 @@ /area/hallway/secondary/entry) "adx" = ( /obj/structure/table/reinforced, -/obj/item/device/analyzer{ +/obj/item/analyzer{ pixel_x = 7; pixel_y = 3 }, @@ -1518,7 +955,7 @@ /obj/item/stack/cable_coil/white, /obj/item/stock_parts/cell/high, /obj/effect/decal/cleanable/dirt, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -1527,24 +964,8 @@ }, /area/construction/mining/aux_base) "aeF" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, -/area/shuttle/auxillary_base) -"aeG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"aeH" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) +/area/construction/mining/aux_base) "aeR" = ( /obj/structure/closet/emcloset, /obj/effect/decal/cleanable/dirt, @@ -1633,36 +1054,11 @@ /obj/structure/table/reinforced, /obj/item/clipboard, /obj/item/folder/yellow, -/obj/item/device/assault_pod/mining, +/obj/item/assault_pod/mining, /turf/open/floor/plasteel/yellow/side{ dir = 4 }, /area/construction/mining/aux_base) -"afg" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"afh" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"afi" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"afj" = ( -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"afk" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "aft" = ( /obj/structure/closet/emcloset, /obj/effect/turf_decal/delivery, @@ -1768,7 +1164,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "afV" = ( -/obj/item/device/beacon, +/obj/item/beacon, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/hallway/secondary/entry) @@ -1807,10 +1203,6 @@ dir = 4 }, /area/construction/mining/aux_base) -"afZ" = ( -/obj/structure/mining_shuttle_beacon, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "agj" = ( /obj/structure/closet/firecloset, /obj/effect/decal/cleanable/dirt, @@ -1878,45 +1270,6 @@ }, /turf/open/floor/plating, /area/construction/mining/aux_base) -"agq" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/docking_port/stationary/public_mining_dock{ - dir = 4 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"agr" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"ags" = ( -/obj/docking_port/mobile/auxillary_base{ - dheight = 4; - dir = 2; - dwidth = 4; - height = 9; - width = 9 - }, -/obj/machinery/bluespace_beacon, -/obj/docking_port/mobile/auxillary_base, -/obj/machinery/computer/auxillary_base, -/turf/closed/wall, -/area/shuttle/auxillary_base) -"agt" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Auxillary Base"; - dir = 4; - name = "engineering camera" - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "agB" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -1973,7 +1326,6 @@ height = 17; id = "syndicate_ne"; name = "northeast of station"; - turf_type = /turf/open/space; width = 23 }, /turf/open/space, @@ -2087,18 +1439,6 @@ dir = 4 }, /area/construction/mining/aux_base) -"ahw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"ahx" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "ahz" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -2149,17 +1489,6 @@ dir = 6 }, /area/construction/mining/aux_base) -"ahG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/structure/ore_box, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"ahH" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "ahO" = ( /obj/machinery/status_display{ pixel_x = -32 @@ -2278,7 +1607,6 @@ height = 13; id = "ferry_home"; name = "port bay 2"; - turf_type = /turf/open/space; width = 5 }, /turf/open/space/basic, @@ -2710,7 +2038,7 @@ dir = 4 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -2807,7 +2135,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -3456,12 +2784,12 @@ /area/security/vacantoffice) "alq" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/grimy, /area/security/vacantoffice) "alr" = ( /obj/structure/table/wood, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/machinery/light/small{ dir = 1 }, @@ -3545,7 +2873,7 @@ "alB" = ( /obj/structure/table/reinforced, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/radio, +/obj/item/radio, /obj/structure/reagent_dispensers/peppertank{ pixel_x = 32 }, @@ -3867,7 +3195,7 @@ /area/hallway/secondary/entry) "amo" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/camera{ c_tag = "Arrivals - Center"; dir = 2; @@ -3997,7 +3325,7 @@ /obj/structure/closet/crate{ icon_state = "crateopen" }, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plasteel/neutral/side{ dir = 6 @@ -4115,7 +3443,7 @@ "amS" = ( /obj/structure/table/wood, /obj/item/storage/briefcase, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /turf/open/floor/wood{ icon_state = "wood-broken4" }, @@ -4195,7 +3523,7 @@ /area/security/vacantoffice) "ane" = ( /obj/structure/table/wood, -/obj/item/device/paicard, +/obj/item/paicard, /turf/open/floor/plasteel/grimy, /area/security/vacantoffice) "anf" = ( @@ -4542,7 +3870,7 @@ /area/security/vacantoffice) "aoa" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/carpet, /area/security/vacantoffice) "aob" = ( @@ -4621,7 +3949,7 @@ /obj/machinery/light{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -4744,7 +4072,7 @@ /obj/machinery/light{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -4984,11 +4312,11 @@ /area/security/vacantoffice) "apc" = ( /obj/structure/table/wood, -/obj/item/device/camera_film{ +/obj/item/camera_film{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/camera_film, +/obj/item/camera_film, /turf/open/floor/wood, /area/security/vacantoffice) "apd" = ( @@ -5169,20 +4497,19 @@ /obj/machinery/light/small{ dir = 8 }, -/obj/machinery/conveyor{ - dir = 5; - id = "garbage"; - verted = -1 - }, /obj/effect/turf_decal/stripes/line{ dir = 9 }, /obj/effect/turf_decal/stripes/corner, +/obj/machinery/conveyor{ + dir = 5; + id = "garbage" + }, /turf/open/floor/plating, /area/maintenance/disposal) "apD" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "garbage" }, /obj/structure/disposalpipe/segment{ @@ -5201,7 +4528,7 @@ /area/maintenance/disposal) "apE" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "garbage" }, /obj/structure/disposalpipe/segment{ @@ -5456,7 +4783,7 @@ /area/security/vacantoffice) "aqh" = ( /obj/structure/table/wood, -/obj/item/device/camera, +/obj/item/camera, /obj/machinery/light/small, /obj/structure/sign/nanotrasen{ pixel_y = -32 @@ -5465,7 +4792,7 @@ /area/security/vacantoffice) "aqi" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/structure/sign/warning/nosmoking{ pixel_x = 32 }, @@ -5672,7 +4999,7 @@ /area/maintenance/disposal) "aqE" = ( /obj/machinery/conveyor{ - dir = 2; + dir = 1; id = "garbage" }, /obj/effect/decal/cleanable/dirt, @@ -5711,7 +5038,7 @@ /area/maintenance/disposal) "aqG" = ( /obj/machinery/conveyor_switch/oneway{ - convdir = -1; + dir = 8; id = "garbage"; name = "disposal conveyor" }, @@ -5966,7 +5293,7 @@ /area/maintenance/disposal) "arg" = ( /obj/machinery/conveyor{ - dir = 4; + dir = 8; id = "garbage" }, /obj/machinery/door/window/eastright{ @@ -6297,7 +5624,7 @@ /area/hallway/secondary/entry) "arP" = ( /obj/machinery/vending/snack/random, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -6413,22 +5740,21 @@ /obj/machinery/light/small{ dir = 8 }, -/obj/machinery/conveyor{ - dir = 9; - id = "garbage"; - verted = -1 - }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, /obj/effect/turf_decal/stripes/corner{ dir = 8 }, +/obj/machinery/conveyor{ + dir = 9; + id = "garbage" + }, /turf/open/floor/plating, /area/maintenance/disposal) "asf" = ( /obj/machinery/conveyor{ - dir = 4; + dir = 8; id = "garbage" }, /obj/effect/turf_decal/stripes/line{ @@ -6438,7 +5764,7 @@ /area/maintenance/disposal) "asg" = ( /obj/machinery/conveyor{ - dir = 4; + dir = 8; id = "garbage" }, /obj/effect/decal/cleanable/blood/splatter, @@ -6448,10 +5774,6 @@ /turf/open/floor/plating, /area/maintenance/disposal) "ash" = ( -/obj/machinery/conveyor{ - dir = 6; - id = "garbage" - }, /obj/machinery/door/window/eastright{ base_state = "left"; dir = 4; @@ -6464,6 +5786,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 5 }, +/obj/machinery/conveyor/inverted{ + dir = 6; + id = "garbage" + }, /turf/open/floor/plating, /area/maintenance/disposal) "asi" = ( @@ -7150,7 +6476,7 @@ /obj/structure/rack, /obj/effect/decal/cleanable/dirt, /obj/item/weldingtool, -/obj/item/device/assembly/voice, +/obj/item/assembly/voice, /obj/item/clothing/head/welding, /obj/effect/spawner/lootdrop/maintenance, /obj/structure/disposalpipe/segment{ @@ -7184,10 +6510,6 @@ /turf/open/floor/plating, /area/maintenance/disposal) "atB" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "garbage" - }, /obj/structure/disposaloutlet{ dir = 4 }, @@ -7201,7 +6523,7 @@ /area/maintenance/disposal) "atC" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "garbage" }, /obj/structure/disposalpipe/segment{ @@ -7213,7 +6535,7 @@ /area/maintenance/disposal) "atD" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "garbage" }, /obj/machinery/atmospherics/components/unary/vent_pump/on, @@ -7224,7 +6546,7 @@ /area/maintenance/disposal) "atE" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "garbage" }, /obj/machinery/recycler, @@ -7238,14 +6560,14 @@ name = "Danger: Conveyor Access"; req_access_txt = "12" }, -/obj/machinery/conveyor{ - dir = 10; - id = "garbage" - }, /obj/effect/decal/cleanable/blood/splatter, /obj/effect/turf_decal/stripes/line{ dir = 6 }, +/obj/machinery/conveyor/inverted{ + dir = 10; + id = "garbage" + }, /turf/open/floor/plating, /area/maintenance/disposal) "atG" = ( @@ -7276,7 +6598,7 @@ /area/space/nearstation) "atK" = ( /obj/structure/table/reinforced, -/obj/item/device/analyzer{ +/obj/item/analyzer{ pixel_x = 7; pixel_y = 3 }, @@ -7460,8 +6782,8 @@ /obj/item/tank/internals/emergency_oxygen/engi{ pixel_x = 5 }, -/obj/item/device/geiger_counter, -/obj/item/device/geiger_counter, +/obj/item/geiger_counter, +/obj/item/geiger_counter, /obj/machinery/airalarm{ dir = 8; pixel_x = 24 @@ -7957,10 +7279,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; - name = "Cooling to Unfiltered"; - on = 1 + name = "Cooling to Unfiltered" }, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) @@ -8037,7 +7358,7 @@ /area/engine/atmospherics_engine) "ave" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -8187,7 +7508,7 @@ /area/maintenance/port/fore) "avx" = ( /obj/structure/table/wood, -/obj/item/device/camera_film, +/obj/item/camera_film, /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/machinery/airalarm{ pixel_y = 23 @@ -8792,7 +8113,7 @@ /area/crew_quarters/toilet/auxiliary) "awN" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -8940,7 +8261,7 @@ "axh" = ( /obj/structure/table/reinforced, /obj/item/storage/box/lights/mixed, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -9192,7 +8513,7 @@ /area/maintenance/port/fore) "axO" = ( /obj/structure/table/wood, -/obj/item/device/camera, +/obj/item/camera, /turf/open/floor/wood{ icon_state = "wood-broken3" }, @@ -9246,7 +8567,7 @@ pixel_y = 3 }, /obj/item/storage/box/lights/mixed, -/obj/item/device/lightreplacer, +/obj/item/lightreplacer, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -9627,7 +8948,7 @@ /turf/open/floor/circuit/green, /area/engine/supermatter) "ayK" = ( -/obj/machinery/power/supermatter_shard/crystal/engine, +/obj/machinery/power/supermatter_crystal/engine, /turf/open/floor/engine, /area/engine/supermatter) "ayL" = ( @@ -9798,7 +9119,7 @@ /obj/effect/decal/cleanable/dirt, /obj/item/mop, /obj/item/mop, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -10093,9 +9414,8 @@ network = list("ss13","engine") }, /obj/effect/turf_decal/bot, -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) @@ -10481,7 +9801,8 @@ /area/quartermaster/storage) "aAH" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/conveyor_switch{ +/obj/machinery/conveyor_switch/oneway{ + dir = 8; id = "cargounload" }, /turf/open/floor/plasteel/brown{ @@ -10528,7 +9849,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/bot, /obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - icon_state = "freezer"; dir = 4 }, /turf/open/floor/plasteel, @@ -10573,7 +9893,7 @@ /turf/closed/wall/r_wall, /area/engine/supermatter) "aAW" = ( -/obj/machinery/door/airlock/atmos/glass{ +/obj/machinery/door/airlock/atmos/glass/critical{ heat_proof = 1; name = "Supermatter Chamber"; req_one_access_txt = "24;10" @@ -12034,10 +11354,9 @@ /turf/open/floor/plating, /area/quartermaster/storage) "aEl" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 8; - name = "Gas to Cooling Loop"; - on = 1 + name = "Gas to Cooling Loop" }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -12106,10 +11425,9 @@ /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "aEr" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 8; - name = "Gas to Filter"; - on = 1 + name = "Gas to Filter" }, /obj/structure/cable{ icon_state = "4-8" @@ -12335,7 +11653,7 @@ "aEO" = ( /obj/structure/table/wood, /obj/structure/reagent_dispensers/beerkeg, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -12461,7 +11779,7 @@ pixel_y = 3 }, /obj/item/storage/fancy/cigarettes/cigars/havana, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -12623,7 +11941,7 @@ /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "aFv" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -28; pixel_y = -28 @@ -12774,7 +12092,7 @@ /area/hydroponics/garden/abandoned) "aFN" = ( /obj/structure/table, -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /obj/item/hatchet, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/bot, @@ -12820,7 +12138,7 @@ /area/maintenance/port/fore) "aFT" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/button/door{ id = "AuxCabinA"; name = "Dormitory Door Lock"; @@ -12833,7 +12151,7 @@ /area/hallway/secondary/service) "aFU" = ( /obj/structure/table/wood, -/obj/item/device/paicard, +/obj/item/paicard, /turf/open/floor/plasteel/grimy, /area/hallway/secondary/service) "aFV" = ( @@ -13040,11 +12358,11 @@ /turf/open/floor/plating, /area/quartermaster/sorting) "aGp" = ( +/obj/effect/decal/cleanable/dirt, /obj/machinery/conveyor{ - dir = 2; + dir = 6; id = "cargodeliver" }, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/quartermaster/sorting) "aGq" = ( @@ -13104,7 +12422,7 @@ }, /obj/structure/table/reinforced, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/radio, +/obj/item/radio, /obj/machinery/button/door{ desc = "A remote control switch."; id = "cardoor"; @@ -13123,7 +12441,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -13375,7 +12693,7 @@ /turf/open/floor/plating, /area/security/prison) "aGM" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -13972,7 +13290,7 @@ /area/quartermaster/storage) "aHU" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/conveyor_switch{ +/obj/machinery/conveyor_switch/oneway{ id = "cargoload" }, /turf/open/floor/plasteel/brown{ @@ -14443,7 +13761,7 @@ "aIN" = ( /obj/structure/table/wood, /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/wood, /area/hallway/secondary/service) "aIO" = ( @@ -14592,7 +13910,7 @@ "aJg" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/conveyor_switch/oneway{ - convdir = -1; + dir = 8; id = "cargodeliver"; name = "delivery conveyor"; pixel_x = -12 @@ -14744,7 +14062,7 @@ /turf/open/floor/plasteel, /area/security/prison) "aJB" = ( -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral/corner, @@ -15096,7 +14414,7 @@ /area/maintenance/port/fore) "aKm" = ( /obj/structure/table/wood, -/obj/item/device/camera, +/obj/item/camera, /obj/machinery/newscaster{ pixel_x = -32 }, @@ -15207,7 +14525,7 @@ /area/crew_quarters/bar/atrium) "aKB" = ( /obj/structure/chair/stool/bar, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -15395,6 +14713,14 @@ }, /turf/open/floor/plasteel, /area/security/prison) +"aKY" = ( +/obj/structure/cable/white{ + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/prison) "aKZ" = ( /turf/closed/wall/r_wall, /area/security/execution/education) @@ -15630,7 +14956,7 @@ /obj/structure/cable/white{ icon_state = "0-8" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -24 }, @@ -15852,14 +15178,14 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "aLY" = ( -/obj/machinery/conveyor{ - dir = 1; - id = "cargoload" - }, /obj/effect/decal/cleanable/dirt, /obj/machinery/light{ dir = 4 }, +/obj/machinery/conveyor/inverted{ + dir = 10; + id = "cargoload" + }, /turf/open/floor/plating, /area/quartermaster/storage) "aMc" = ( @@ -15951,6 +15277,19 @@ dir = 4 }, /area/security/prison) +"aMk" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/cryopod, +/obj/machinery/computer/cryopod{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/prison) "aMl" = ( /obj/structure/table, /obj/structure/cable/white{ @@ -16294,11 +15633,11 @@ /obj/machinery/status_display{ pixel_x = -32 }, -/obj/item/device/camera_film{ +/obj/item/camera_film{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/camera_film, +/obj/item/camera_film, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -16372,7 +15711,7 @@ /area/crew_quarters/bar/atrium) "aNk" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -16448,7 +15787,7 @@ dir = 8 }, /obj/structure/disposalpipe/segment, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -16663,10 +16002,7 @@ /area/maintenance/disposal/incinerator) "aNR" = ( /obj/machinery/igniter{ - icon_state = "igniter0"; - id = "Incinerator"; - luminosity = 2; - on = 0 + id = "Incinerator" }, /obj/structure/cable{ icon_state = "4-8" @@ -16725,6 +16061,17 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, +/obj/machinery/embedded_controller/radio/airlock_controller{ + airpump_tag = "incinerator_airlock_pump"; + exterior_door_tag = "incinerator_airlock_exterior"; + id_tag = "incinerator_airlock_control"; + interior_door_tag = "incinerator_airlock_interior"; + name = "Incinerator Access Console"; + pixel_y = 27; + req_access_txt = "12"; + sanitize_external = 1; + sensor_tag = "incinerator_airlock_sensor" + }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "aNV" = ( @@ -16801,7 +16148,7 @@ /turf/open/floor/plasteel/vault, /area/engine/atmos) "aOd" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -16958,7 +16305,7 @@ /area/crew_quarters/theatre) "aOw" = ( /obj/structure/table/wood, -/obj/item/device/instrument/eguitar, +/obj/item/instrument/eguitar, /obj/item/toy/crayon/spraycan/lubecan{ charges = 5 }, @@ -16997,10 +16344,10 @@ }, /obj/item/storage/crayons, /obj/item/storage/crayons, -/obj/item/device/flashlight/lamp/bananalamp{ +/obj/item/flashlight/lamp/bananalamp{ pixel_y = 5 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -17029,7 +16376,7 @@ /area/crew_quarters/bar/atrium) "aOD" = ( /obj/structure/table/wood, -/obj/item/device/instrument/guitar, +/obj/item/instrument/guitar, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -17392,18 +16739,6 @@ /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "aPA" = ( -/obj/machinery/embedded_controller/radio/airlock_controller{ - name = "Incinerator Access Console"; - airpump_tag = "incinerator_airlock_pump"; - exterior_door_tag = "incinerator_airlock_exterior"; - id_tag = "incinerator_access_control"; - interior_door_tag = "incinerator_airlock_interior"; - pixel_x = 8; - pixel_y = -24; - sanitize_external = 1; - sensor_tag = "incinerator_airlock_sensor"; - req_access_txt = "12" - }, /obj/machinery/button/ignition{ id = "Incinerator"; pixel_x = 8; @@ -17813,7 +17148,7 @@ dir = 8; pixel_x = -24 }, -/obj/item/device/camera, +/obj/item/camera, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -17965,7 +17300,7 @@ "aQC" = ( /obj/structure/table, /obj/item/folder/yellow, -/obj/item/device/destTagger, +/obj/item/destTagger, /turf/open/floor/plasteel/brown, /area/quartermaster/sorting) "aQD" = ( @@ -18131,7 +17466,7 @@ "aQX" = ( /obj/structure/table/glass, /obj/item/folder/blue, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /obj/machinery/light{ dir = 1 }, @@ -18193,7 +17528,7 @@ /area/security/prison) "aRf" = ( /obj/machinery/holopad, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom"; @@ -18934,7 +18269,7 @@ pixel_x = 26; pixel_y = 32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_x = 28 @@ -18955,7 +18290,7 @@ /area/quartermaster/qm) "aSA" = ( /obj/structure/table/reinforced, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/brown{ dir = 5 }, @@ -19110,7 +18445,7 @@ pixel_x = 3 }, /obj/item/restraints/handcuffs, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 }, @@ -19596,7 +18931,7 @@ /area/crew_quarters/bar/atrium) "aTI" = ( /obj/structure/table/wood, -/obj/item/device/paicard, +/obj/item/paicard, /turf/open/floor/plasteel/redyellow, /area/crew_quarters/bar/atrium) "aTJ" = ( @@ -19659,7 +18994,7 @@ "aTQ" = ( /obj/structure/table/reinforced, /obj/item/folder/yellow, -/obj/item/device/multitool, +/obj/item/multitool, /obj/item/pen/red, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 @@ -19885,7 +19220,7 @@ /area/quartermaster/qm) "aUm" = ( /obj/structure/table/reinforced, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -20070,8 +19405,8 @@ /obj/structure/reagent_dispensers/peppertank{ pixel_x = -32 }, -/obj/item/device/electropack, -/obj/item/device/assembly/signaler, +/obj/item/electropack, +/obj/item/assembly/signaler, /obj/machinery/light{ dir = 8 }, @@ -20415,7 +19750,7 @@ /area/hallway/secondary/service) "aVn" = ( /obj/structure/table/wood, -/obj/item/device/instrument/violin, +/obj/item/instrument/violin, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -20949,8 +20284,8 @@ pixel_x = -7; pixel_y = -26 }, -/obj/item/device/flashlight/lamp, -/obj/item/device/radio/intercom{ +/obj/item/flashlight/lamp, +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -21005,8 +20340,7 @@ "aWq" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "Justice gas pump"; - on = 0 + name = "Justice gas pump" }, /obj/machinery/door/window/westleft, /turf/open/floor/plasteel/vault{ @@ -21091,8 +20425,7 @@ /obj/machinery/atmospherics/pipe/simple/green/visible, /obj/machinery/atmospherics/components/binary/pump{ dir = 4; - name = "CO2 to Pure"; - on = 0 + name = "CO2 to Pure" }, /turf/open/floor/plasteel/vault, /area/engine/atmos) @@ -21325,7 +20658,7 @@ }, /area/crew_quarters/bar/atrium) "aXb" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26; pixel_y = -26 @@ -21542,7 +20875,7 @@ /obj/item/cartridge/quartermaster{ pixel_y = 6 }, -/obj/item/device/gps/mining, +/obj/item/gps/mining, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -21588,7 +20921,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -21778,9 +21111,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "aYb" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ + dir = 4 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, @@ -21807,7 +21139,7 @@ "aYf" = ( /obj/structure/table/reinforced, /obj/item/folder/yellow, -/obj/item/device/lightreplacer, +/obj/item/lightreplacer, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -22732,15 +22064,6 @@ temperature = 2.7 }, /area/security/prison) -"aZN" = ( -/obj/structure/shuttle/engine/propulsion/burst{ - dir = 8 - }, -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_3) -"aZO" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_3) "aZP" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/atmos/carbon_input{ dir = 4 @@ -22783,12 +22106,7 @@ dir = 8 }, /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 2; - filter_type = "co2"; - name = "co2 filter"; - on = 1 - }, +/obj/machinery/atmospherics/components/trinary/filter/atmos/co2, /turf/open/floor/plasteel/vault, /area/engine/atmos) "aZV" = ( @@ -22872,13 +22190,8 @@ /turf/open/floor/plasteel/neutral, /area/engine/atmos) "bag" = ( -/obj/machinery/atmospherics/components/trinary/mixer{ - dir = 1; - name = "air mixer"; - node1_concentration = 0.8; - node2_concentration = 0.2; - on = 1; - target_pressure = 4500 +/obj/machinery/atmospherics/components/trinary/mixer/airmix{ + dir = 1 }, /turf/open/floor/plasteel/neutral, /area/engine/atmos) @@ -22891,10 +22204,9 @@ pixel_y = 1 }, /obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 8; - name = "O2 to Airmix"; - on = 1 + name = "O2 to Airmix" }, /turf/open/floor/plasteel/blue/side{ dir = 5 @@ -22986,7 +22298,7 @@ /turf/closed/wall, /area/hydroponics) "baw" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -23149,7 +22461,7 @@ /obj/machinery/newscaster{ pixel_y = -32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_x = 28 @@ -23360,7 +22672,7 @@ /area/security/prison) "bbl" = ( /obj/machinery/light, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -23460,65 +22772,16 @@ /turf/open/floor/plasteel, /area/security/prison) "bbv" = ( -/obj/machinery/door/airlock/shuttle{ - name = "Escape Pod Airlock" - }, -/obj/docking_port/mobile/pod{ +/obj/docking_port/stationary{ dir = 4; - id = "pod3"; - name = "escape pod 3"; - port_direction = 2; - preferred_direction = 4 + dwidth = 1; + height = 4; + name = "escape pod loader"; + roundstart_template = /datum/map_template/shuttle/escape_pod/default; + width = 3 }, -/obj/effect/turf_decal/stripes/end{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/shuttle/pod_3) -"bbw" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/item/device/radio/intercom{ - pixel_y = 24 - }, -/obj/item/storage/pod{ - pixel_x = 6; - pixel_y = -32 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/obj/machinery/light/small, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/shuttle/pod_3) -"bbx" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/status_display{ - pixel_y = 32 - }, -/obj/machinery/computer/shuttle/pod{ - pixel_y = -32; - possible_destinations = "pod_lavaland3"; - shuttleId = "pod3" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/shuttle/pod_3) -"bby" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/pod_3) +/turf/open/space/basic, +/area/space) "bbz" = ( /obj/docking_port/stationary/random{ dir = 4; @@ -23705,7 +22968,7 @@ /area/hydroponics) "bbX" = ( /obj/structure/closet/wardrobe/botanist, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -23926,7 +23189,7 @@ /obj/machinery/light{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -24109,7 +23372,7 @@ /obj/item/restraints/handcuffs, /obj/item/restraints/handcuffs, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel/vault, /area/security/prison) "bcQ" = ( @@ -24219,8 +23482,7 @@ /obj/machinery/atmospherics/pipe/simple/green/visible, /obj/machinery/atmospherics/components/binary/pump{ dir = 4; - name = "Plasma to Pure"; - on = 0 + name = "Plasma to Pure" }, /turf/open/floor/plasteel/purple/side{ dir = 9 @@ -24283,11 +23545,8 @@ dir = 4 }, /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 1; - filter_type = "o2"; - name = "oxygen filter"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ + dir = 1 }, /turf/open/floor/plasteel/blue/side{ dir = 6 @@ -24594,7 +23853,7 @@ /obj/machinery/light{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -24802,7 +24061,7 @@ /turf/open/floor/plasteel, /area/security/prison) "bes" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -24860,7 +24119,7 @@ /area/engine/atmos) "beA" = ( /obj/structure/table/reinforced, -/obj/item/device/analyzer{ +/obj/item/analyzer{ pixel_x = 7; pixel_y = 3 }, @@ -25079,7 +24338,7 @@ dir = 1; pixel_y = -22 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26; pixel_y = -26 @@ -25431,12 +24690,7 @@ dir = 8 }, /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 2; - filter_type = "plasma"; - name = "waste filter"; - on = 1 - }, +/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma, /turf/open/floor/plasteel/purple/side{ dir = 10 }, @@ -25444,8 +24698,7 @@ "bfW" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 1; - name = "Port Mix to Port Ports"; - on = 0 + name = "Port Mix to Port Ports" }, /turf/open/floor/plasteel/neutral, /area/engine/atmos) @@ -25460,8 +24713,7 @@ }, /obj/machinery/atmospherics/components/binary/pump{ dir = 1; - name = "Port Mix to Starboard Ports"; - on = 0 + name = "Port Mix to Starboard Ports" }, /turf/open/floor/plasteel/neutral, /area/engine/atmos) @@ -25511,10 +24763,9 @@ pixel_y = 1 }, /obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 8; - name = "N2 to Airmix"; - on = 1 + name = "N2 to Airmix" }, /turf/open/floor/plasteel/red/side{ dir = 5 @@ -26150,7 +25401,7 @@ /area/hydroponics) "bhC" = ( /obj/structure/table/glass, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -26213,7 +25464,7 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -26254,7 +25505,7 @@ /turf/open/floor/plasteel/red, /area/crew_quarters/kitchen) "bhO" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -26509,7 +25760,7 @@ "bir" = ( /obj/structure/table/reinforced, /obj/effect/decal/cleanable/dirt, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/purple/side{ dir = 4 }, @@ -26708,7 +25959,7 @@ /obj/structure/chair/office/dark{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; pixel_y = 26 @@ -26798,8 +26049,7 @@ /obj/machinery/atmospherics/pipe/simple/green/visible, /obj/machinery/atmospherics/components/binary/pump{ dir = 4; - name = "N2O to Pure"; - on = 0 + name = "N2O to Pure" }, /turf/open/floor/plasteel/escape{ dir = 9 @@ -26823,8 +26073,7 @@ "biZ" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 1; - name = "Pure to Ports"; - on = 0 + name = "Pure to Ports" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -26834,8 +26083,7 @@ "bja" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 1; - name = "Mix to Ports"; - on = 0 + name = "Mix to Ports" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -26845,8 +26093,7 @@ "bjb" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 1; - name = "Air to Ports"; - on = 0 + name = "Air to Ports" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -26953,11 +26200,8 @@ dir = 4 }, /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 1; - filter_type = "n2"; - name = "nitrogen filter"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ + dir = 1 }, /turf/open/floor/plasteel/red/side{ dir = 6 @@ -26974,7 +26218,7 @@ /obj/structure/closet/crate{ icon_state = "crateopen" }, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/spawner/lootdrop/maintenance, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -27335,7 +26579,7 @@ icon_state = "4-8" }, /obj/item/folder/yellow, -/obj/item/device/gps/mining, +/obj/item/gps/mining, /turf/open/floor/plasteel/brown{ dir = 6 }, @@ -27378,7 +26622,7 @@ icon_state = "4-8" }, /obj/item/clothing/gloves/color/latex, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /obj/item/reagent_containers/spray/cleaner{ pixel_x = -3; pixel_y = 2 @@ -27524,11 +26768,11 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/item/device/taperecorder{ +/obj/item/taperecorder{ pixel_x = 3 }, /obj/item/storage/box/deputy, -/obj/item/device/flashlight/seclite, +/obj/item/flashlight/seclite, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -28115,6 +27359,7 @@ /obj/structure/cable/white{ icon_state = "1-4" }, +/obj/effect/turf_decal/loading_area, /turf/open/floor/plasteel, /area/quartermaster/miningoffice) "blS" = ( @@ -28176,7 +27421,7 @@ /obj/structure/closet/wardrobe/miner, /obj/effect/decal/cleanable/dirt, /obj/machinery/light, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_y = -26 @@ -28240,7 +27485,7 @@ /area/security/brig) "bmf" = ( /obj/structure/bed/roller, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -28377,7 +27622,7 @@ pixel_x = 32; pixel_y = 32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; pixel_y = 58 @@ -28440,7 +27685,7 @@ /obj/item/storage/secure/safe/HoS{ pixel_x = 32 }, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/hos) "bmD" = ( @@ -28501,12 +27746,7 @@ dir = 8 }, /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 2; - filter_type = "n2o"; - name = "n2o filter"; - on = 1 - }, +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/escape{ dir = 10 @@ -29032,7 +28272,7 @@ "bnN" = ( /obj/structure/table/reinforced, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -29127,7 +28367,7 @@ /area/crew_quarters/heads/hos) "bnX" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" @@ -29283,7 +28523,7 @@ "bop" = ( /obj/structure/table/reinforced, /obj/item/storage/toolbox/mechanical, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/turf_decal/bot, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ @@ -29338,7 +28578,7 @@ /obj/machinery/light{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 28 }, @@ -29683,7 +28923,7 @@ name = "Labor Camp Monitoring"; network = list("labor") }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -30048,10 +29288,9 @@ /area/engine/atmos) "bpR" = ( /obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 8; - name = "Unfiltered & Air to Mix"; - on = 1 + name = "Unfiltered & Air to Mix" }, /turf/open/floor/plasteel/caution{ dir = 1 @@ -30069,8 +29308,7 @@ "bpT" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 2; - name = "Pure to Mix"; - on = 0 + name = "Pure to Mix" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/caution{ @@ -30172,10 +29410,9 @@ /turf/open/floor/plasteel/neutral, /area/engine/atmos) "bqe" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; - name = "Air to External Air Ports"; - on = 1 + name = "Air to External Air Ports" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ @@ -30832,7 +30069,7 @@ "brr" = ( /obj/structure/table/reinforced, /obj/item/folder/red, -/obj/item/device/flashlight/seclite, +/obj/item/flashlight/seclite, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -30857,7 +30094,7 @@ "bru" = ( /obj/structure/table/reinforced, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 }, @@ -31167,10 +30404,9 @@ /area/engine/atmos) "bsa" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; - name = "Mix to Filter"; - on = 1 + name = "Mix to Filter" }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -31208,7 +30444,7 @@ "bse" = ( /obj/structure/table/reinforced, /obj/item/storage/belt/utility, -/obj/item/device/t_scanner, +/obj/item/t_scanner, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 2 }, @@ -31237,10 +30473,9 @@ /area/engine/atmos) "bsh" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 8; - name = "External Waste Ports to Filter"; - on = 1 + name = "External Waste Ports to Filter" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ @@ -31556,7 +30791,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -32028,7 +31263,7 @@ /obj/machinery/ai_status_display{ pixel_y = -32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; pixel_y = -26 @@ -32137,10 +31372,9 @@ /obj/machinery/light{ dir = 4 }, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 1; - name = "Waste to Filter"; - on = 1 + name = "Waste to Filter" }, /turf/open/floor/plasteel/caution{ dir = 4 @@ -32688,8 +31922,7 @@ "bva" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 2; - name = "Mix to Distro"; - on = 0 + name = "Mix to Distro" }, /turf/open/floor/plasteel/neutral, /area/engine/atmos) @@ -32700,7 +31933,6 @@ /area/engine/atmos) "bvc" = ( /obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - icon_state = "freezer"; dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -33275,9 +32507,8 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) "bwr" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ + dir = 1 }, /turf/open/floor/plasteel/arrival{ dir = 10 @@ -33294,10 +32525,9 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bwt" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; name = "Air to Distro"; - on = 1; target_pressure = 101 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -33325,14 +32555,13 @@ "bww" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 4; - name = "Distro to Waste"; - on = 0 + name = "Distro to Waste" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/caution, /area/engine/atmos) "bwx" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -33565,7 +32794,7 @@ /area/hydroponics) "bwO" = ( /obj/machinery/hydroponics/constructable, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -34043,7 +33272,7 @@ /obj/structure/table/reinforced, /obj/item/crowbar/red, /obj/item/wrench, -/obj/item/device/analyzer{ +/obj/item/analyzer{ pixel_x = 7; pixel_y = 3 }, @@ -34208,7 +33437,7 @@ pixel_y = 32 }, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel/dark, /area/bridge) "byk" = ( @@ -34625,7 +33854,7 @@ /area/ai_monitored/turret_protected/ai) "bzc" = ( /obj/structure/table/reinforced, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -35025,7 +34254,7 @@ dir = 4 }, /obj/structure/disposalpipe/segment, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -35100,8 +34329,8 @@ dir = 4 }, /obj/item/wrench, -/obj/item/device/assembly/timer, -/obj/item/device/assembly/signaler, +/obj/item/assembly/timer, +/obj/item/assembly/signaler, /turf/open/floor/plasteel/darkyellow/corner{ dir = 4 }, @@ -35323,7 +34552,7 @@ /obj/structure/cable/white{ icon_state = "1-8" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; broadcasting = 0; freerange = 1; @@ -35513,7 +34742,7 @@ /obj/machinery/power/terminal{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -35752,25 +34981,25 @@ /area/hallway/primary/port) "bBj" = ( /obj/structure/table/reinforced, -/obj/item/device/plant_analyzer, -/obj/item/device/plant_analyzer, -/obj/item/device/radio, +/obj/item/plant_analyzer, +/obj/item/plant_analyzer, +/obj/item/radio, /turf/open/floor/plasteel/vault{ dir = 5 }, /area/storage/tech) "bBk" = ( /obj/structure/table/reinforced, -/obj/item/device/analyzer{ +/obj/item/analyzer{ pixel_x = 7; pixel_y = 3 }, -/obj/item/device/analyzer{ +/obj/item/analyzer{ pixel_x = 7; pixel_y = 3 }, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/signaler, +/obj/item/assembly/signaler, +/obj/item/assembly/signaler, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/storage/tech) @@ -35790,16 +35019,16 @@ "bBn" = ( /obj/structure/table/reinforced, /obj/item/aiModule/reset, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/storage/tech) "bBo" = ( /obj/structure/table/reinforced, /obj/item/bodypart/chest/robot, -/obj/item/device/mmi, -/obj/item/device/mmi, +/obj/item/mmi, +/obj/item/mmi, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -35957,7 +35186,7 @@ /turf/open/floor/plasteel/dark, /area/bridge) "bBG" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26; pixel_y = 26 @@ -35979,7 +35208,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -36000,7 +35229,7 @@ }, /area/bridge) "bBL" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; pixel_y = 26 @@ -36140,7 +35369,7 @@ /turf/open/floor/plasteel/neutral, /area/security/execution/transfer) "bCc" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -36178,7 +35407,7 @@ /turf/open/floor/plasteel, /area/security/brig) "bCg" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -36217,8 +35446,8 @@ /area/security/main) "bCk" = ( /obj/structure/table/reinforced, -/obj/item/device/flashlight/lamp, -/obj/item/device/radio/intercom{ +/obj/item/flashlight/lamp, +/obj/item/radio/intercom{ anyai = 1; broadcasting = 1; freerange = 1; @@ -36637,7 +35866,7 @@ /area/engine/break_room) "bCY" = ( /obj/structure/table/reinforced, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/caution{ dir = 10 }, @@ -36667,7 +35896,7 @@ /obj/structure/table/reinforced, /obj/item/folder/yellow, /obj/item/pen, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -36703,13 +35932,13 @@ /area/hallway/primary/port) "bDe" = ( /obj/structure/table/reinforced, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /obj/item/stack/cable_coil/white{ pixel_x = 3; pixel_y = 3 }, /obj/item/stack/cable_coil/white, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /obj/machinery/light{ dir = 8 }, @@ -36743,7 +35972,7 @@ /area/storage/tech) "bDk" = ( /obj/structure/table/reinforced, -/obj/item/device/aicard, +/obj/item/aicard, /obj/machinery/light{ dir = 4 }, @@ -36757,16 +35986,16 @@ /area/storage/primary) "bDm" = ( /obj/structure/table/reinforced, -/obj/item/device/analyzer{ +/obj/item/analyzer{ pixel_x = 7; pixel_y = 3 }, -/obj/item/device/analyzer{ +/obj/item/analyzer{ pixel_x = 7; pixel_y = 3 }, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/signaler, +/obj/item/assembly/signaler, +/obj/item/assembly/signaler, /obj/machinery/light{ dir = 8 }, @@ -36900,9 +36129,9 @@ /area/storage/primary) "bDt" = ( /obj/structure/table/reinforced, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, /obj/effect/spawner/lootdrop/maintenance, /obj/machinery/light{ dir = 1 @@ -37412,7 +36641,7 @@ /turf/closed/wall, /area/security/brig) "bEf" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; freerange = 1; listening = 0; @@ -37420,14 +36649,14 @@ pixel_x = -10; pixel_y = 22 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 1; listening = 1; name = "Common Channel"; pixel_x = -27 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; broadcasting = 0; freerange = 1; @@ -37526,7 +36755,7 @@ /turf/open/floor/circuit/green, /area/ai_monitored/turret_protected/ai) "bEm" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; freerange = 1; listening = 0; @@ -37534,14 +36763,14 @@ pixel_x = 10; pixel_y = 22 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 1; listening = 1; name = "Common Channel"; pixel_x = 27 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; broadcasting = 0; freerange = 1; @@ -38050,7 +37279,7 @@ /obj/structure/table/reinforced, /obj/item/crowbar, /obj/item/wrench, -/obj/item/device/gps, +/obj/item/gps, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/storage/primary) @@ -38217,7 +37446,7 @@ }, /obj/structure/table/wood, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -38253,7 +37482,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -38439,7 +37668,7 @@ /turf/open/floor/plating, /area/security/warden) "bFQ" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -38463,7 +37692,7 @@ }, /area/ai_monitored/turret_protected/ai) "bFT" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 1; listening = 1; @@ -38471,14 +37700,14 @@ pixel_x = -27; pixel_y = -7 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_y = -27 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; broadcasting = 0; freerange = 1; @@ -38879,7 +38108,7 @@ }, /obj/item/stock_parts/matter_bin, /obj/item/stock_parts/micro_laser, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -38890,7 +38119,7 @@ "bGG" = ( /obj/structure/rack, /obj/item/airlock_painter, -/obj/item/device/toner, +/obj/item/toner, /obj/machinery/status_display{ pixel_x = -32 }, @@ -39040,7 +38269,7 @@ "bHb" = ( /obj/structure/rack, /obj/machinery/light/small, -/obj/item/device/aicard, +/obj/item/aicard, /obj/item/storage/secure/briefcase, /turf/open/floor/plasteel/vault{ dir = 8 @@ -39051,7 +38280,7 @@ dir = 8 }, /obj/structure/table/wood, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 }, @@ -39389,7 +38618,7 @@ /obj/structure/table/reinforced, /obj/item/crowbar, /obj/item/wrench, -/obj/item/device/mmi, +/obj/item/mmi, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -39552,7 +38781,7 @@ "bIc" = ( /obj/structure/table/reinforced, /obj/item/folder/yellow, -/obj/item/device/lightreplacer, +/obj/item/lightreplacer, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -39804,7 +39033,7 @@ "bIA" = ( /obj/structure/table/reinforced, /obj/item/storage/toolbox/mechanical, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/storage/primary) @@ -39965,7 +39194,7 @@ pixel_x = -7; pixel_y = -26 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; pixel_y = -26 @@ -40124,7 +39353,7 @@ icon_state = "1-8" }, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/camera/detective, +/obj/item/camera/detective, /turf/open/floor/plasteel/vault, /area/security/detectives_office) "bJj" = ( @@ -40138,7 +39367,7 @@ areastring = "/area/security/detectives_office"; pixel_y = 24 }, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/item/restraints/handcuffs, /turf/open/floor/plasteel/vault, /area/security/detectives_office) @@ -40413,7 +39642,7 @@ "bJN" = ( /obj/structure/table/reinforced, /obj/item/folder/blue, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -40471,7 +39700,7 @@ "bJT" = ( /obj/structure/table/reinforced, /obj/item/clipboard, -/obj/item/device/gps/engineering{ +/obj/item/gps/engineering{ gpstag = "CE0" }, /obj/machinery/newscaster{ @@ -40730,7 +39959,7 @@ /area/storage/tech) "bKs" = ( /obj/machinery/vending/tool, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -40776,7 +40005,7 @@ pixel_y = 32 }, /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/wood, /area/bridge/meeting_room/council) "bKz" = ( @@ -40837,7 +40066,7 @@ /area/bridge/meeting_room/council) "bKG" = ( /obj/structure/table/wood, -/obj/item/device/paicard, +/obj/item/paicard, /turf/open/floor/wood, /area/bridge/meeting_room/council) "bKH" = ( @@ -40936,7 +40165,7 @@ "bKV" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -41773,7 +41002,7 @@ /area/tcommsat/computer) "bMy" = ( /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -41837,11 +41066,11 @@ /area/tcommsat/computer) "bME" = ( /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, -/obj/item/device/radio{ +/obj/item/radio{ pixel_y = 5 }, /turf/open/floor/plasteel/grimy, @@ -41851,7 +41080,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -42169,14 +41398,14 @@ pixel_x = 3; pixel_y = -3 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, /obj/item/clothing/mask/gas/sechailer, /obj/item/clothing/mask/gas/sechailer, -/obj/item/device/flashlight/seclite, -/obj/item/device/flashlight/seclite, +/obj/item/flashlight/seclite, +/obj/item/flashlight/seclite, /turf/open/floor/plasteel/red/side{ dir = 5 }, @@ -42202,7 +41431,7 @@ pixel_y = -2 }, /obj/structure/table/reinforced, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -42488,7 +41717,7 @@ /area/crew_quarters/heads/chief) "bNR" = ( /obj/structure/table/reinforced, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/neutral, /area/crew_quarters/heads/chief) "bNS" = ( @@ -42526,7 +41755,7 @@ /turf/open/floor/plasteel, /area/engine/break_room) "bNW" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -42638,7 +41867,7 @@ /obj/structure/table/reinforced, /obj/item/clothing/gloves/color/yellow, /obj/item/storage/toolbox/electrical, -/obj/item/device/multitool, +/obj/item/multitool, /obj/machinery/light{ dir = 8 }, @@ -42964,7 +42193,7 @@ /obj/structure/rack, /obj/item/clothing/gloves/color/fyellow, /obj/item/clothing/suit/hazardvest, -/obj/item/device/multitool, +/obj/item/multitool, /obj/structure/extinguisher_cabinet{ pixel_x = -26 }, @@ -42995,7 +42224,7 @@ /turf/open/floor/plasteel/neutral, /area/storage/tools) "bPb" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -43263,7 +42492,7 @@ id = "AI"; pixel_x = -26 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; listening = 0; @@ -43536,10 +42765,10 @@ /area/storage/tech) "bQl" = ( /obj/structure/table/reinforced, -/obj/item/device/assembly/timer, -/obj/item/device/assembly/timer, -/obj/item/device/assembly/voice, -/obj/item/device/assembly/voice, +/obj/item/assembly/timer, +/obj/item/assembly/timer, +/obj/item/assembly/voice, +/obj/item/assembly/voice, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/storage/tech) @@ -43565,7 +42794,7 @@ /obj/structure/table/reinforced, /obj/item/wrench, /obj/item/crowbar, -/obj/item/device/paicard, +/obj/item/paicard, /obj/machinery/newscaster{ pixel_y = -32 }, @@ -43575,18 +42804,18 @@ "bQp" = ( /obj/structure/table/reinforced, /obj/item/storage/toolbox/mechanical, -/obj/item/device/flashlight, -/obj/item/device/flashlight, +/obj/item/flashlight, +/obj/item/flashlight, /turf/open/floor/plasteel/vault{ dir = 5 }, /area/storage/tech) "bQq" = ( /obj/structure/table/reinforced, -/obj/item/device/assembly/timer, -/obj/item/device/assembly/timer, -/obj/item/device/multitool, -/obj/item/device/multitool, +/obj/item/assembly/timer, +/obj/item/assembly/timer, +/obj/item/multitool, +/obj/item/multitool, /obj/machinery/light, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -43611,15 +42840,15 @@ /area/storage/primary) "bQu" = ( /obj/structure/table/reinforced, -/obj/item/device/radio{ +/obj/item/radio{ pixel_x = 5; pixel_y = 5 }, -/obj/item/device/radio{ +/obj/item/radio{ pixel_x = -5; pixel_y = 5 }, -/obj/item/device/radio, +/obj/item/radio, /obj/machinery/firealarm{ dir = 1; pixel_y = -24 @@ -43777,7 +43006,7 @@ pixel_x = -32; pixel_y = -32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = -26 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -43974,7 +43203,7 @@ pixel_y = -26 }, /obj/structure/disposalpipe/segment, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/item/reagent_containers/food/drinks/flask/det, /turf/open/floor/carpet, /area/security/detectives_office) @@ -44401,7 +43630,7 @@ /area/crew_quarters/heads/chief) "bSe" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/ai_status_display{ pixel_y = 32 }, @@ -44621,7 +43850,7 @@ pixel_x = -26; pixel_y = -26 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -44722,7 +43951,7 @@ /obj/machinery/light{ dir = 8 }, -/obj/item/device/flashlight/lamp/green, +/obj/item/flashlight/lamp/green, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/camera{ c_tag = "Bridge - Captain's Office"; @@ -44783,7 +44012,7 @@ "bSQ" = ( /obj/structure/table/wood, /obj/item/storage/photo_album, -/obj/item/device/camera, +/obj/item/camera, /turf/open/floor/wood, /area/crew_quarters/heads/captain) "bSR" = ( @@ -45525,7 +44754,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/item/device/beacon, +/obj/item/beacon, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, @@ -45616,7 +44845,7 @@ pixel_x = 32; pixel_y = 32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -46233,7 +45462,7 @@ /obj/item/screwdriver{ pixel_y = 5 }, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plasteel/red/side{ dir = 4 }, @@ -46401,7 +45630,7 @@ name = "MiniSat Antechamber"; req_access_txt = "16" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -46574,7 +45803,7 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -46897,7 +46126,7 @@ pixel_x = 24 }, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/radio, +/obj/item/radio, /turf/open/floor/plasteel/red/side{ dir = 4 }, @@ -47036,7 +46265,7 @@ pixel_x = -38; pixel_y = 7 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -47120,7 +46349,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/structure/fans/tiny, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -47163,7 +46391,7 @@ /turf/open/floor/carpet, /area/crew_quarters/heads/captain) "bXf" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = -26 }, /turf/open/floor/plasteel/grimy, @@ -47359,7 +46587,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bXz" = ( -/obj/item/device/beacon, +/obj/item/beacon, /obj/structure/cable/white{ icon_state = "4-8" }, @@ -47648,8 +46876,6 @@ /obj/item/gun/energy/ionrifle, /obj/item/clothing/suit/armor/laserproof, /obj/item/gun/energy/temperature/security, -/obj/item/gun/energy/pumpaction/blaster, -/obj/item/gun/energy/pumpaction/blaster, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -48810,7 +48036,7 @@ dir = 1 }, /obj/machinery/light, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; listening = 0; @@ -48916,7 +48142,7 @@ /obj/item/clipboard, /obj/item/toy/figure/borg, /obj/machinery/light, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; listening = 0; @@ -48937,7 +48163,7 @@ /obj/machinery/ai_status_display{ pixel_y = -32 }, -/obj/item/device/aicard, +/obj/item/aicard, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -49602,9 +48828,9 @@ pixel_x = 3; pixel_y = -3 }, -/obj/item/device/flashlight/seclite, -/obj/item/device/flashlight/seclite, -/obj/item/device/flashlight/seclite, +/obj/item/flashlight/seclite, +/obj/item/flashlight/seclite, +/obj/item/flashlight/seclite, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -49912,7 +49138,7 @@ /area/library) "cco" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -49941,11 +49167,11 @@ /area/library) "cct" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/computer/security/telescreen/entertainment{ pixel_x = -32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -49974,7 +49200,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -50117,7 +49343,7 @@ /obj/structure/table/wood, /obj/item/pinpointer/nuke, /obj/item/disk/nuclear, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -50148,7 +49374,7 @@ /area/crew_quarters/heads/captain/private) "ccQ" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, +/obj/item/flashlight/lamp/green, /obj/structure/window/reinforced{ dir = 8 }, @@ -50276,7 +49502,7 @@ /obj/structure/table/wood, /obj/item/book/manual/wiki/security_space_law, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/taperecorder{ +/obj/item/taperecorder{ pixel_x = 3 }, /obj/item/clothing/glasses/sunglasses, @@ -50366,7 +49592,7 @@ /turf/open/floor/plasteel/neutral, /area/security/brig) "cdp" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; pixel_y = -7 @@ -50495,6 +49721,17 @@ "cdC" = ( /turf/open/floor/plating/airless, /area/engine/engineering) +"cdD" = ( +/obj/structure/cable/white, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/power/emitter{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "cdE" = ( /obj/structure/cable/white{ icon_state = "1-4" @@ -51432,7 +50669,7 @@ }, /area/security/brig) "cfn" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -51554,6 +50791,15 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/engine/engineering) +"cfB" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Fore Starboard"; + dir = 8; + network = list("singularity") + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/engine/engineering) "cfC" = ( /obj/structure/sign/warning/vacuum, /turf/closed/wall/r_wall, @@ -51706,7 +50952,7 @@ /obj/structure/sign/warning/electricshock{ pixel_x = 32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; pixel_y = -26 @@ -51910,7 +51156,7 @@ /area/tcommsat/server) "cgr" = ( /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; freerange = 1; name = "Captain's Intercom"; @@ -52042,7 +51288,7 @@ /area/security/courtroom) "cgE" = ( /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom" }, /turf/open/floor/plasteel/neutral/side{ @@ -52265,7 +51511,7 @@ "cgZ" = ( /obj/structure/table/reinforced, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -52525,6 +51771,10 @@ }, /turf/open/space, /area/space/nearstation) +"chu" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/engine/engineering) "chv" = ( /obj/machinery/door/poddoor/shutters/preopen{ id = "engpa"; @@ -52730,7 +51980,7 @@ /area/library) "chW" = ( /obj/structure/chair/comfy/brown, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -53104,15 +52354,15 @@ dir = 4; pixel_x = -23 }, -/obj/item/device/radio{ +/obj/item/radio{ pixel_x = 5; pixel_y = 5 }, -/obj/item/device/radio{ +/obj/item/radio{ pixel_x = -5; pixel_y = 5 }, -/obj/item/device/radio, +/obj/item/radio, /turf/open/floor/plasteel/red/side{ dir = 10 }, @@ -53265,11 +52515,48 @@ network = list("singularity") }, /turf/open/space, -/area/space/nearstation) +/area/engine/engineering) +"ciZ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/space, +/area/space) +"cja" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space, +/area/space) +"cjb" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/space, +/area/space) +"cjc" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/space, +/area/space) "cjd" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/engine/engineering) +"cje" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) "cjg" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ @@ -53346,7 +52633,7 @@ /area/maintenance/port) "cjr" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/newscaster{ pixel_x = -32 }, @@ -53413,7 +52700,7 @@ /obj/machinery/keycard_auth{ pixel_x = -26 }, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -53600,7 +52887,7 @@ /turf/open/floor/plasteel, /area/security/courtroom) "cjY" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/neutral/side{ dir = 8 }, @@ -53619,7 +52906,7 @@ /area/security/courtroom) "ckb" = ( /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -32 }, @@ -53654,8 +52941,8 @@ /area/security/courtroom) "cke" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, -/obj/item/device/radio/intercom{ +/obj/item/flashlight/lamp, +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -53753,7 +53040,7 @@ "ckn" = ( /obj/structure/table/reinforced, /obj/item/aiModule/reset, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -53802,7 +53089,7 @@ "ckt" = ( /obj/structure/table/reinforced, /obj/item/aiModule/supplied/quarantine, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; listening = 0; @@ -53813,6 +53100,54 @@ dir = 8 }, /area/ai_monitored/turret_protected/ai_upload) +"cku" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space, +/area/space) +"ckv" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) +"ckw" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/space) +"ckx" = ( +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, +/area/space) +"ckz" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/space) +"ckA" = ( +/obj/effect/decal/cleanable/oil, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engpa"; + name = "Engineering Chamber Shutters" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) "ckD" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/neutral, @@ -54179,7 +53514,7 @@ icon_state = "crateopen" }, /obj/effect/decal/cleanable/dirt, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/starboard) @@ -54376,6 +53711,28 @@ dir = 8 }, /area/ai_monitored/turret_protected/ai_upload) +"clR" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/space) +"clS" = ( +/obj/machinery/field/generator{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/space) +"clU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) "clW" = ( /obj/structure/rack, /obj/item/crowbar, @@ -54384,6 +53741,10 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/engineering) +"clX" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/engineering) "clY" = ( /obj/structure/rack, /obj/machinery/button/door{ @@ -54825,7 +54186,7 @@ /area/security/courtroom) "cmU" = ( /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom" }, /turf/open/floor/plasteel/neutral/side, @@ -55213,6 +54574,25 @@ dir = 5 }, /area/aisat) +"cnA" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space, +/area/space) +"cnB" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/space) "cnC" = ( /obj/structure/sign/warning/radiation, /turf/closed/wall/r_wall, @@ -55221,6 +54601,19 @@ /obj/machinery/status_display, /turf/closed/wall/r_wall, /area/engine/engineering) +"cnE" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engpa"; + name = "Engineering Chamber Shutters" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "cnF" = ( /obj/machinery/requests_console{ department = "Chapel Office"; @@ -55232,12 +54625,12 @@ "cnG" = ( /obj/structure/table/reinforced, /obj/item/storage/toolbox/mechanical, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/decal/cleanable/dirt, /obj/machinery/light{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -55308,7 +54701,7 @@ /area/library) "cnR" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/structure/window/reinforced{ dir = 8 }, @@ -55332,11 +54725,11 @@ /area/library) "cnV" = ( /obj/structure/table/wood, -/obj/item/device/camera_film{ +/obj/item/camera_film{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/camera_film, +/obj/item/camera_film, /obj/machinery/firealarm{ dir = 4; pixel_x = 24 @@ -55406,7 +54799,7 @@ /area/crew_quarters/heads/hop) "cod" = ( /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -55423,11 +54816,8 @@ /turf/closed/wall, /area/tcommsat/server) "cof" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1; - min_temperature = 80; - on = 1; - target_temperature = 80 +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ + dir = 1 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, @@ -55464,11 +54854,8 @@ /turf/open/floor/plasteel, /area/tcommsat/server) "coj" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1; - min_temperature = 80; - on = 1; - target_temperature = 80 +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ + dir = 1 }, /obj/machinery/camera{ c_tag = "Telecomms - Cooling Room"; @@ -55576,7 +54963,7 @@ /area/hallway/primary/central) "cot" = ( /obj/item/twohanded/required/kirbyplants/random, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -55892,6 +55279,15 @@ }, /turf/open/floor/plating, /area/engine/engineering) +"cpc" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/engineering) "cpd" = ( /obj/machinery/button/door{ id = "engpa"; @@ -55939,7 +55335,7 @@ /obj/item/stack/sheet/mineral/plasma{ amount = 20 }, -/obj/item/device/gps/engineering{ +/obj/item/gps/engineering{ gpstag = "ENG0" }, /obj/effect/turf_decal/bot, @@ -55980,7 +55376,7 @@ "cpo" = ( /obj/structure/tank_dispenser, /obj/effect/decal/cleanable/dirt, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -56076,11 +55472,11 @@ /area/library) "cpA" = ( /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, -/obj/item/device/flashlight/lamp/green, +/obj/item/flashlight/lamp/green, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/hop) "cpB" = ( @@ -56188,7 +55584,7 @@ "cpN" = ( /obj/structure/rack, /obj/item/tank/internals/oxygen, -/obj/item/device/radio, +/obj/item/radio, /obj/machinery/firealarm{ dir = 1; pixel_y = -26 @@ -56423,6 +55819,18 @@ /obj/structure/lattice, /turf/open/space, /area/space/nearstation) +"cqo" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating/airless, +/area/space) +"cqp" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating/airless, +/area/space) "cqq" = ( /obj/structure/cable{ icon_state = "1-2" @@ -56432,10 +55840,22 @@ }, /turf/open/floor/plating, /area/engine/engineering) +"cqr" = ( +/obj/structure/particle_accelerator/particle_emitter/left{ + icon_state = "emitter_left"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) "cqs" = ( /obj/item/stack/cable_coil/red, /turf/open/floor/plating, /area/engine/engineering) +"cqt" = ( +/obj/structure/cable, +/obj/machinery/particle_accelerator/control_box, +/turf/open/floor/plating, +/area/engine/engineering) "cqu" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ @@ -56812,7 +56232,7 @@ /area/security/courtroom) "crm" = ( /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom" }, /turf/open/floor/plasteel/vault, @@ -56981,6 +56401,38 @@ dir = 5 }, /area/aisat) +"crI" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, +/area/space) +"crJ" = ( +/obj/machinery/the_singularitygen/tesla, +/turf/open/floor/plating/airless, +/area/space) +"crK" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) +"crL" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) "crM" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -57000,6 +56452,13 @@ }, /turf/open/floor/plating, /area/engine/engineering) +"crO" = ( +/obj/structure/particle_accelerator/fuel_chamber{ + icon_state = "fuel_chamber"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) "crP" = ( /obj/machinery/light{ dir = 4 @@ -57225,7 +56684,7 @@ "csl" = ( /obj/structure/table/wood, /obj/item/storage/bag/books, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/structure/noticeboard{ dir = 8; pixel_x = 32 @@ -57381,7 +56840,7 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -57757,6 +57216,31 @@ dir = 5 }, /area/aisat) +"ctm" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating/airless, +/area/space) +"ctn" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/turf/open/floor/plating/airless, +/area/space) +"cto" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating/airless, +/area/space) +"ctp" = ( +/obj/structure/particle_accelerator/particle_emitter/right{ + icon_state = "emitter_right"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) "ctq" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -57955,7 +57439,7 @@ dir = 8; pixel_x = 24 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -58196,7 +57680,7 @@ /obj/structure/cable/white{ icon_state = "1-8" }, -/obj/item/device/beacon, +/obj/item/beacon, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -58412,6 +57896,17 @@ }, /turf/open/floor/plasteel/neutral, /area/crew_quarters/locker) +"cuB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/computer/cryopod{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/locker) "cuC" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -58460,7 +57955,7 @@ icon_state = "crateopen" }, /obj/item/clothing/shoes/jackboots, -/obj/item/device/radio, +/obj/item/radio, /obj/item/storage/secure/briefcase, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -58552,6 +58047,13 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/engine/engineering) +"cuT" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/engine/engineering) "cuU" = ( /obj/machinery/button/door{ id = "engpa"; @@ -59061,11 +58563,11 @@ /area/crew_quarters/locker) "cvV" = ( /obj/structure/table, -/obj/item/device/camera_film{ +/obj/item/camera_film{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/camera_film, +/obj/item/camera_film, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -59073,7 +58575,7 @@ /area/crew_quarters/locker) "cvW" = ( /obj/structure/table, -/obj/item/device/camera, +/obj/item/camera, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, @@ -59308,7 +58810,7 @@ /area/hallway/primary/central) "cwB" = ( /obj/item/stack/cable_coil, -/obj/item/device/multitool, +/obj/item/multitool, /obj/structure/table/reinforced, /turf/open/floor/plasteel/vault{ dir = 8 @@ -59520,7 +59022,7 @@ amount = 25 }, /obj/item/storage/toolbox/emergency, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/structure/extinguisher_cabinet{ pixel_x = 26 }, @@ -59649,6 +59151,15 @@ }, /turf/open/floor/plasteel/neutral/corner, /area/crew_quarters/locker) +"cxr" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/cryopod, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/locker) "cxs" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ @@ -59825,7 +59336,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -60416,6 +59927,15 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral/corner, /area/crew_quarters/locker) +"cyW" = ( +/obj/machinery/status_display{ + pixel_x = 32 + }, +/obj/machinery/cryopod, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/locker) "cyX" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -60553,6 +60073,28 @@ dir = 4 }, /area/crew_quarters/fitness/recreation) +"czo" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/space) +"czp" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, +/area/space) +"czr" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/space) "czu" = ( /obj/structure/cable/white{ icon_state = "0-2" @@ -60655,7 +60197,7 @@ /area/library) "czE" = ( /obj/structure/table/wood, -/obj/item/device/paicard, +/obj/item/paicard, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment{ dir = 4 @@ -60726,10 +60268,10 @@ /obj/machinery/light, /obj/structure/table/wood, /obj/item/folder, -/obj/item/device/laser_pointer{ +/obj/item/laser_pointer{ pixel_x = 3 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -60737,8 +60279,8 @@ /area/library) "czN" = ( /obj/structure/table/wood, -/obj/item/device/taperecorder, -/obj/item/device/camera, +/obj/item/taperecorder, +/obj/item/camera, /obj/machinery/ai_status_display{ pixel_y = -32 }, @@ -60805,7 +60347,7 @@ /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "czU" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/neutral, /area/ai_monitored/storage/eva) "czV" = ( @@ -61141,7 +60683,41 @@ network = list("singularity") }, /turf/open/space, -/area/space/nearstation) +/area/engine/engineering) +"cAH" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/space, +/area/space) +"cAI" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/space, +/area/space) +"cAJ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/space, +/area/space) +"cAK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) "cAL" = ( /obj/machinery/rnd/production/protolathe/department/engineering, /obj/effect/turf_decal/stripes/line{ @@ -61245,7 +60821,7 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/table/reinforced, /obj/item/storage/toolbox/mechanical, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/maintenance/port) @@ -61511,7 +61087,7 @@ /obj/machinery/light{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -61566,7 +61142,7 @@ /area/gateway) "cBG" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -61754,7 +61330,7 @@ /area/crew_quarters/locker) "cBW" = ( /obj/structure/table, -/obj/item/device/paicard, +/obj/item/paicard, /obj/structure/cable/white{ icon_state = "4-8" }, @@ -61833,7 +61409,7 @@ /area/crew_quarters/dorms) "cCe" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/structure/sign/nanotrasen{ pixel_x = -32 }, @@ -61855,7 +61431,7 @@ /obj/structure/closet/secure_closet/personal/cabinet, /obj/item/clothing/suit/jacket/letterman_nanotrasen, /obj/item/clothing/suit/toggle/lawyer, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; pixel_y = 26 @@ -61890,7 +61466,7 @@ name = "trenchcoat" }, /obj/item/clothing/suit/toggle/lawyer/purple, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; pixel_y = 26 @@ -62601,7 +62177,7 @@ /turf/open/floor/wood, /area/crew_quarters/dorms) "cDD" = ( -/obj/item/device/flashlight/seclite, +/obj/item/flashlight/seclite, /turf/open/floor/wood{ icon_state = "wood-broken3" }, @@ -62714,6 +62290,15 @@ }, /turf/open/floor/plating/airless, /area/engine/engineering) +"cDV" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Aft Starboard"; + dir = 8; + network = list("singularity") + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/engine/engineering) "cDW" = ( /obj/machinery/light{ dir = 8 @@ -62906,7 +62491,7 @@ /area/maintenance/port) "cEp" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/dark, /area/library) "cEq" = ( @@ -62922,7 +62507,7 @@ /area/library) "cEr" = ( /obj/item/twohanded/required/kirbyplants/random, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -63168,9 +62753,9 @@ "cES" = ( /obj/structure/table, /obj/item/storage/belt, -/obj/item/device/radio, -/obj/item/device/radio, -/obj/item/device/radio, +/obj/item/radio, +/obj/item/radio, +/obj/item/radio, /obj/machinery/firealarm{ dir = 8; pixel_x = -24 @@ -63537,7 +63122,7 @@ /area/crew_quarters/dorms) "cFA" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, +/obj/item/flashlight/lamp/green, /obj/machinery/newscaster{ pixel_x = -32 }, @@ -63590,6 +63175,19 @@ name = "Holodeck Projector Floor" }, /area/holodeck/rec_center) +"cFH" = ( +/obj/structure/cable/white{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/power/emitter{ + anchored = 1; + dir = 1; + icon_state = "emitter"; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "cFI" = ( /obj/structure/cable/white{ icon_state = "2-4" @@ -63816,8 +63414,8 @@ /obj/item/folder/yellow, /obj/machinery/light, /obj/structure/table/reinforced, -/obj/item/device/gps, -/obj/item/device/gps, +/obj/item/gps, +/obj/item/gps, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -63837,7 +63435,7 @@ /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "cGh" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -63877,7 +63475,7 @@ /area/ai_monitored/storage/eva) "cGn" = ( /obj/item/storage/belt, -/obj/item/device/radio, +/obj/item/radio, /obj/machinery/light, /obj/structure/table/reinforced, /turf/open/floor/plasteel/vault{ @@ -63960,7 +63558,7 @@ /area/bridge/showroom/corporate) "cGv" = ( /obj/structure/table/wood, -/obj/item/device/paicard, +/obj/item/paicard, /turf/open/floor/plasteel/grimy, /area/bridge/showroom/corporate) "cGw" = ( @@ -63975,7 +63573,7 @@ desc = "A replica beret resembling that of a special operations officer under Nanotrasen."; name = "replica officer's beret" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -64961,7 +64559,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -65636,7 +65234,7 @@ /obj/structure/closet/crate{ icon_state = "crateopen" }, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/spawner/lootdrop/maintenance, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -67408,7 +67006,7 @@ /obj/structure/closet/crate{ icon_state = "crateopen" }, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port) @@ -67627,7 +67225,7 @@ /area/medical/storage) "cNN" = ( /obj/structure/closet/secure_closet/medical3, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -67991,7 +67589,7 @@ pixel_y = 3 }, /obj/item/stack/cable_coil/white, -/obj/item/device/multitool, +/obj/item/multitool, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/maintenance/department/electrical) @@ -68202,7 +67800,7 @@ "cPa" = ( /obj/structure/table, /obj/item/folder/white, -/obj/item/device/paicard, +/obj/item/paicard, /turf/open/floor/plasteel/whitepurple/corner{ dir = 1 }, @@ -68219,8 +67817,8 @@ "cPc" = ( /obj/structure/table, /obj/item/stack/cable_coil/white, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/timer{ +/obj/item/assembly/igniter, +/obj/item/assembly/timer{ pixel_x = 3; pixel_y = 3 }, @@ -68364,7 +67962,7 @@ "cPx" = ( /obj/structure/table, /obj/item/storage/firstaid/regular, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_x = 28 @@ -68604,7 +68202,7 @@ /area/crew_quarters/dorms) "cPR" = ( /obj/structure/dresser, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; pixel_y = 26 @@ -68630,7 +68228,7 @@ /area/crew_quarters/dorms) "cPT" = ( /obj/item/twohanded/required/kirbyplants/random, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; pixel_y = 26 @@ -68662,8 +68260,8 @@ /area/crew_quarters/dorms) "cPW" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, -/obj/item/device/radio/intercom{ +/obj/item/flashlight/lamp, +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; pixel_y = 26 @@ -68966,7 +68564,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -68977,7 +68575,7 @@ "cQG" = ( /obj/structure/table/reinforced, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/radio, +/obj/item/radio, /obj/machinery/ai_status_display{ pixel_y = 32 }, @@ -68991,7 +68589,7 @@ "cQH" = ( /obj/structure/table, /obj/item/folder/white, -/obj/item/device/assembly/infra, +/obj/item/assembly/infra, /turf/open/floor/plasteel/whitepurple/corner{ dir = 1 }, @@ -69467,7 +69065,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -69873,7 +69471,7 @@ }, /obj/structure/table/reinforced, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/radio, +/obj/item/radio, /obj/machinery/button/door{ desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; @@ -69900,7 +69498,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -69949,7 +69547,7 @@ pixel_y = 3 }, /obj/item/storage/box/beakers, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -70182,7 +69780,7 @@ /area/maintenance/department/electrical) "cTq" = ( /obj/structure/table/reinforced, -/obj/item/device/analyzer{ +/obj/item/analyzer{ pixel_x = 7; pixel_y = 3 }, @@ -70411,11 +70009,8 @@ /turf/open/floor/plasteel, /area/science/xenobiology) "cTR" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1; - min_temperature = 80; - on = 1; - target_temperature = 80 +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ + dir = 1 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -70443,7 +70038,7 @@ pixel_y = 3 }, /obj/item/storage/box/syringes, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 32 }, @@ -70992,7 +70587,7 @@ /obj/machinery/status_display{ pixel_y = -32 }, -/obj/item/device/paicard, +/obj/item/paicard, /turf/open/floor/wood, /area/crew_quarters/dorms) "cUW" = ( @@ -71302,7 +70897,7 @@ pixel_y = -3; req_access_txt = "55" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 5 }, @@ -72196,7 +71791,7 @@ /obj/item/clipboard, /obj/item/electronics/airlock, /obj/item/stack/sheet/glass, -/obj/item/device/assembly/signaler, +/obj/item/assembly/signaler, /obj/machinery/airalarm{ dir = 1; pixel_y = -22 @@ -72244,8 +71839,8 @@ /area/science/research) "cXw" = ( /obj/structure/table, -/obj/item/device/gps, -/obj/item/device/assembly/flash/handheld, +/obj/item/gps, +/obj/item/assembly/flash/handheld, /obj/machinery/status_display{ pixel_y = -32 }, @@ -74188,11 +73783,11 @@ /area/crew_quarters/fitness/recreation) "dbI" = ( /obj/structure/table, -/obj/item/device/camera_film{ +/obj/item/camera_film{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/camera_film, +/obj/item/camera_film, /turf/open/floor/plasteel/neutral, /area/crew_quarters/fitness/recreation) "dbJ" = ( @@ -74761,18 +74356,18 @@ /area/medical/chemistry) "dcN" = ( /obj/structure/table/glass, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/timer{ +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/timer{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = 3; pixel_y = 3 }, @@ -74825,7 +74420,7 @@ /obj/machinery/computer/crew{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -75092,7 +74687,7 @@ /area/crew_quarters/fitness/recreation) "ddA" = ( /obj/structure/table/wood, -/obj/item/device/camera, +/obj/item/camera, /obj/structure/sign/nanotrasen{ pixel_x = 32; pixel_y = -32 @@ -75265,7 +74860,7 @@ "ddV" = ( /obj/structure/table/reinforced, /obj/item/clothing/gloves/color/latex, -/obj/item/device/slime_scanner, +/obj/item/slime_scanner, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/science/xenobiology) @@ -75290,7 +74885,7 @@ /turf/open/floor/plating, /area/security/checkpoint/science/research) "ddY" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -32 }, @@ -75355,7 +74950,7 @@ /obj/item/stock_parts/capacitor, /obj/item/stock_parts/manipulator, /obj/item/stock_parts/manipulator, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -76458,7 +76053,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -77133,7 +76728,7 @@ /turf/open/floor/plasteel/neutral, /area/science/research) "dhZ" = ( -/obj/item/device/beacon, +/obj/item/beacon, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -77369,7 +76964,7 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/item/device/beacon, +/obj/item/beacon, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/whiteblue, /area/medical/medbay/central) @@ -77678,7 +77273,7 @@ /area/crew_quarters/abandoned_gambling_den) "djn" = ( /obj/structure/table/reinforced, -/obj/item/device/multitool, +/obj/item/multitool, /obj/item/screwdriver, /obj/machinery/computer/security/telescreen{ desc = "Used for watching the RD's goons from the safety of his office."; @@ -77794,7 +77389,7 @@ "djB" = ( /obj/structure/table/reinforced, /obj/item/storage/toolbox/mechanical, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/turf_decal/bot, /obj/structure/sign/poster/official/science{ pixel_x = -32 @@ -78136,7 +77731,7 @@ /obj/structure/cable/white{ icon_state = "1-4" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -78475,7 +78070,7 @@ "dkT" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table/wood, -/obj/item/device/modular_computer/tablet/preset/cheap, +/obj/item/modular_computer/tablet/preset/cheap, /turf/open/floor/plating, /area/maintenance/starboard/aft) "dkU" = ( @@ -78694,7 +78289,7 @@ pixel_y = 3 }, /obj/item/stack/cable_coil/white, -/obj/item/device/geiger_counter, +/obj/item/geiger_counter, /obj/effect/turf_decal/bot, /obj/structure/sign/poster/official/cleanliness{ pixel_x = 32 @@ -79318,7 +78913,7 @@ "dmS" = ( /obj/structure/table/reinforced, /obj/item/folder/white, -/obj/item/device/paicard, +/obj/item/paicard, /obj/machinery/airalarm{ dir = 4; pixel_x = -23 @@ -79388,7 +78983,7 @@ dir = 4; pixel_x = -23 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -79734,7 +79329,7 @@ "dnN" = ( /obj/structure/table, /obj/item/storage/toolbox/mechanical, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/hallway/secondary/construction) @@ -79879,7 +79474,7 @@ /area/crew_quarters/abandoned_gambling_den) "dog" = ( /obj/structure/table/reinforced, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -80071,7 +79666,7 @@ /obj/item/stack/sheet/mineral/plasma{ amount = 5 }, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -80269,7 +79864,7 @@ /area/crew_quarters/heads/hor) "doM" = ( /obj/structure/table/reinforced, -/obj/item/device/aicard, +/obj/item/aicard, /obj/item/circuitboard/aicore, /obj/structure/disposalpipe/sorting/mail{ dir = 4; @@ -80978,7 +80573,7 @@ "dqn" = ( /obj/structure/table/reinforced, /obj/item/book/manual/experimentor, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -81366,7 +80961,7 @@ /area/maintenance/department/medical) "dqY" = ( /obj/structure/rack, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /obj/item/clothing/glasses/eyepatch, /turf/open/floor/plating{ icon_state = "panelscorched" @@ -81577,7 +81172,7 @@ /area/crew_quarters/abandoned_gambling_den) "drz" = ( /obj/structure/table/reinforced, -/obj/item/device/multitool, +/obj/item/multitool, /obj/item/screwdriver, /obj/machinery/computer/security/telescreen{ desc = "Used for watching the RD's goons from the safety of his office."; @@ -81958,7 +81553,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -82426,7 +82021,7 @@ "dtz" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -82755,9 +82350,9 @@ /area/crew_quarters/abandoned_gambling_den) "duk" = ( /obj/structure/table/wood, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/timer{ +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/timer{ pixel_x = 3; pixel_y = 3 }, @@ -82785,8 +82380,8 @@ /area/science/research/abandoned) "duo" = ( /obj/structure/table/reinforced, -/obj/item/device/mmi, -/obj/item/device/assembly/prox_sensor, +/obj/item/mmi, +/obj/item/assembly/prox_sensor, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/science/research/abandoned) @@ -82825,7 +82420,7 @@ /obj/structure/table/reinforced, /obj/item/stack/sheet/metal/fifty, /obj/item/stack/sheet/glass/fifty, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/science/research/abandoned) @@ -82919,7 +82514,7 @@ /turf/open/floor/plasteel/neutral, /area/science/mixing) "duH" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; pixel_y = 26 @@ -83176,7 +82771,7 @@ /area/medical/genetics) "dvj" = ( /obj/structure/table/reinforced, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -83302,7 +82897,7 @@ "dvu" = ( /obj/structure/table/glass, /obj/item/folder/white, -/obj/item/device/flashlight/pen, +/obj/item/flashlight/pen, /obj/item/clothing/neck/stethoscope, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) @@ -83315,7 +82910,7 @@ /obj/structure/table/glass, /obj/item/folder/blue, /obj/item/clothing/glasses/hud/health, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -83534,7 +83129,7 @@ /area/hallway/secondary/construction) "dvO" = ( /obj/structure/table, -/obj/item/device/analyzer{ +/obj/item/analyzer{ pixel_x = 7; pixel_y = 3 }, @@ -83554,7 +83149,7 @@ /obj/structure/rack, /obj/effect/decal/cleanable/dirt, /obj/item/weldingtool, -/obj/item/device/assembly/voice, +/obj/item/assembly/voice, /obj/item/clothing/head/welding, /obj/effect/spawner/lootdrop/maintenance, /obj/effect/turf_decal/stripes/line{ @@ -83723,9 +83318,8 @@ }, /area/science/mixing) "dwk" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -83768,11 +83362,11 @@ icon_state = "4-8" }, /obj/item/storage/secure/briefcase, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/machinery/newscaster{ pixel_y = -32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26; pixel_y = -26 @@ -84333,7 +83927,7 @@ /obj/machinery/light{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -84967,7 +84561,7 @@ /obj/machinery/computer/med_data{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -85092,7 +84686,7 @@ /area/hallway/secondary/construction) "dyR" = ( /obj/structure/table, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -85137,7 +84731,7 @@ /area/crew_quarters/abandoned_gambling_den) "dyY" = ( /obj/structure/table/wood/poker, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) "dyZ" = ( @@ -85447,15 +85041,15 @@ /area/science/robotics/lab) "dzG" = ( /obj/item/paper_bin, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = 5; pixel_y = 7 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = 5; pixel_y = 7 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = 5; pixel_y = 7 }, @@ -85588,7 +85182,7 @@ /obj/structure/table/reinforced, /obj/item/storage/box/monkeycubes, /obj/item/storage/box/monkeycubes, -/obj/item/device/radio/headset/headset_medsci, +/obj/item/radio/headset/headset_medsci, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -85642,7 +85236,7 @@ name = "medbay camera" }, /obj/item/clipboard, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /obj/structure/table, /turf/open/floor/plasteel/whiteblue/corner, /area/medical/medbay/central) @@ -85705,7 +85299,7 @@ }, /area/crew_quarters/heads/cmo) "dAg" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -85762,7 +85356,7 @@ /obj/structure/cable/white{ icon_state = "2-4" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -86090,7 +85684,7 @@ }, /area/medical/genetics) "dAT" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -86336,7 +85930,7 @@ /area/medical/medbay/central) "dBr" = ( /obj/item/folder/white, -/obj/item/device/flashlight/pen, +/obj/item/flashlight/pen, /obj/item/clothing/neck/stethoscope, /obj/structure/table, /turf/open/floor/plasteel/vault, @@ -86687,16 +86281,16 @@ /area/maintenance/port) "dCa" = ( /obj/structure/table/reinforced, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -32 }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = 6; pixel_y = 6 }, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter, +/obj/item/assembly/igniter{ pixel_x = -6; pixel_y = -6 }, @@ -86795,11 +86389,11 @@ /area/crew_quarters/heads/hor) "dCm" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/newscaster{ pixel_y = -32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -86827,8 +86421,8 @@ /obj/item/bodypart/l_arm/robot{ pixel_x = -3 }, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/structure/table/reinforced, /obj/machinery/light_switch{ pixel_x = -38; @@ -86837,10 +86431,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/science/robotics/lab) @@ -86912,7 +86506,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Morgue"; req_access_txt = "9" }, @@ -87080,7 +86674,7 @@ /obj/structure/closet/crate{ icon_state = "crateopen" }, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/spawner/lootdrop/maintenance, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -87212,7 +86806,7 @@ amount = 23 }, /obj/item/stack/cable_coil/white, -/obj/item/device/flashlight/seclite, +/obj/item/flashlight/seclite, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/science/research/abandoned) @@ -87264,19 +86858,19 @@ /turf/open/floor/plasteel/neutral, /area/maintenance/port) "dDn" = ( -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -4; pixel_y = 1 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = 8; pixel_y = 9 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = 9; pixel_y = -2 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_y = 2 }, /obj/structure/table/reinforced, @@ -87289,19 +86883,19 @@ /turf/open/floor/plasteel, /area/science/mixing) "dDo" = ( -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = 5; pixel_y = 4 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = -4; pixel_y = 2 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = 6; pixel_y = -4 }, -/obj/item/device/assembly/timer, +/obj/item/assembly/timer, /obj/structure/table/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/stripes/line{ @@ -87324,7 +86918,6 @@ /area/science/mixing) "dDr" = ( /obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - icon_state = "freezer"; dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -87378,7 +86971,7 @@ /obj/machinery/light{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -87701,7 +87294,7 @@ /area/medical/medbay/central) "dEe" = ( /obj/item/twohanded/required/kirbyplants/random, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -87782,18 +87375,18 @@ }, /area/maintenance/port) "dEq" = ( -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve{ pixel_x = -5 }, -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve{ pixel_x = -5 }, -/obj/item/device/transfer_valve, -/obj/item/device/transfer_valve, -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve, +/obj/item/transfer_valve, +/obj/item/transfer_valve{ pixel_x = 5 }, -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve{ pixel_x = 5 }, /obj/structure/table/reinforced, @@ -87874,7 +87467,7 @@ /turf/open/floor/plasteel, /area/science/storage) "dEy" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -87927,11 +87520,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - min_temperature = 80; - on = 1; - target_temperature = 80 - }, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -87961,9 +87550,9 @@ /obj/item/storage/firstaid, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/bot, -/obj/item/device/healthanalyzer, -/obj/item/device/healthanalyzer, -/obj/item/device/paicard, +/obj/item/healthanalyzer, +/obj/item/healthanalyzer, +/obj/item/paicard, /turf/open/floor/plasteel, /area/science/robotics/lab) "dEI" = ( @@ -88097,7 +87686,7 @@ /obj/structure/table, /obj/effect/decal/cleanable/dirt, /obj/item/storage/backpack/duffelbag/med, -/obj/item/device/flashlight/pen, +/obj/item/flashlight/pen, /turf/open/floor/plating, /area/maintenance/department/medical/morgue) "dFe" = ( @@ -88216,7 +87805,7 @@ /area/crew_quarters/theatre/abandoned) "dFs" = ( /obj/structure/table/wood, -/obj/item/device/instrument/guitar, +/obj/item/instrument/guitar, /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plasteel/vault{ dir = 5 @@ -88264,7 +87853,7 @@ pixel_y = 3 }, /obj/item/book/manual/detective, -/obj/item/device/camera/detective, +/obj/item/camera/detective, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -88283,7 +87872,7 @@ /obj/structure/chair/office/dark{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26; pixel_y = 32 @@ -88374,18 +87963,18 @@ /turf/closed/wall, /area/science/mixing) "dFI" = ( -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_y = 8 }, -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_x = -8; pixel_y = 5 }, -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_x = 6; pixel_y = 5 }, -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_x = -2; pixel_y = -2 }, @@ -88643,7 +88232,7 @@ /area/hallway/primary/aft) "dGg" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Morgue"; req_access_txt = "6" }, @@ -88770,7 +88359,7 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Morgue"; req_access_txt = "5" }, @@ -89250,7 +88839,7 @@ /obj/item/screwdriver{ pixel_y = 5 }, -/obj/item/device/multitool, +/obj/item/multitool, /obj/item/clothing/head/welding, /obj/machinery/light{ dir = 8 @@ -89680,7 +89269,7 @@ icon_state = "1-2" }, /obj/effect/landmark/blobstart, -/obj/item/device/beacon, +/obj/item/beacon, /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -89935,7 +89524,7 @@ /obj/item/stock_parts/cell/high, /obj/item/stock_parts/cell/high, /obj/machinery/cell_charger, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -89970,9 +89559,9 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/item/device/mmi, -/obj/item/device/mmi, -/obj/item/device/mmi, +/obj/item/mmi, +/obj/item/mmi, +/obj/item/mmi, /obj/structure/sign/departments/medbay/alt{ pixel_y = -32 }, @@ -90153,7 +89742,7 @@ /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "dJj" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -90172,7 +89761,7 @@ /area/crew_quarters/heads/cmo) "dJl" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/structure/sign/nanotrasen{ pixel_x = 32 }, @@ -90513,7 +90102,7 @@ "dJW" = ( /obj/machinery/disposal/bin, /obj/effect/decal/cleanable/dirt, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -32 }, @@ -90737,7 +90326,7 @@ /area/crew_quarters/theatre/abandoned) "dKs" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/airalarm{ dir = 4; pixel_x = -23 @@ -90766,7 +90355,7 @@ /obj/structure/table/wood, /obj/item/clothing/gloves/color/black, /obj/item/storage/box/evidence, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/machinery/airalarm{ dir = 8; pixel_x = 24 @@ -91370,7 +90959,7 @@ /turf/open/floor/plating/airless, /area/science/test_area) "dLF" = ( -/obj/item/device/beacon, +/obj/item/beacon, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/airless, /area/science/test_area) @@ -91557,7 +91146,7 @@ /area/science/research) "dMe" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -92119,7 +91708,7 @@ /turf/open/floor/plating, /area/crew_quarters/theatre/abandoned) "dNh" = ( -/obj/item/device/instrument/violin, +/obj/item/instrument/violin, /obj/structure/table/wood, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -92733,7 +92322,7 @@ /obj/machinery/light{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -93498,7 +93087,7 @@ pixel_x = -32 }, /obj/item/paper_bin, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -93581,7 +93170,7 @@ "dQw" = ( /obj/structure/table/wood, /obj/effect/decal/cleanable/dirt, -/obj/item/device/paicard, +/obj/item/paicard, /turf/open/floor/carpet, /area/library/abandoned) "dQx" = ( @@ -93740,7 +93329,7 @@ /turf/open/floor/plasteel/neutral, /area/hallway/primary/aft) "dQR" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/neutral, /area/hallway/primary/aft) "dQU" = ( @@ -93991,7 +93580,7 @@ pixel_y = 32 }, /obj/structure/table/glass, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -94014,7 +93603,7 @@ dir = 8; pixel_y = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -94296,7 +93885,7 @@ dir = 8 }, /obj/item/crowbar, -/obj/item/device/radio, +/obj/item/radio, /obj/structure/sign/poster/official/do_not_question{ pixel_y = -32 }, @@ -94961,7 +94550,7 @@ /obj/structure/table/wood, /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/effect/decal/cleanable/dirt, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plating, /area/library/abandoned) "dTv" = ( @@ -95295,7 +94884,7 @@ /area/chapel/main) "dUq" = ( /obj/item/twohanded/required/kirbyplants/random, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -95503,7 +95092,7 @@ /obj/structure/closet/crate{ icon_state = "crateopen" }, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/spawner/lootdrop/maintenance, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, @@ -95537,7 +95126,7 @@ }, /area/chapel/office) "dVb" = ( -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Chapel Morgue"; req_access_txt = "27" }, @@ -95573,7 +95162,7 @@ /area/chapel/main) "dVh" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Chapel Hall" }, /obj/structure/disposalpipe/segment{ @@ -95616,7 +95205,7 @@ icon_state = "1-2" }, /obj/item/clothing/gloves/color/latex, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /obj/item/clothing/glasses/hud/health, /obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel, @@ -95673,7 +95262,7 @@ /area/medical/virology) "dVz" = ( /obj/structure/closet/crate/freezer/blood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -95691,7 +95280,7 @@ }, /area/medical/virology) "dVC" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -95780,7 +95369,7 @@ /obj/structure/table, /obj/item/wrench, /obj/item/crowbar, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -95845,7 +95434,7 @@ /area/chapel/main) "dVW" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Chapel Hall" }, /obj/effect/turf_decal/stripes/line{ @@ -96762,7 +96351,7 @@ }, /obj/item/stack/packageWrap, /obj/item/hand_labeler, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -96776,7 +96365,7 @@ "dYj" = ( /obj/structure/table/wood, /obj/effect/decal/cleanable/dirt, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plating, /area/library/abandoned) "dYk" = ( @@ -96845,7 +96434,7 @@ /obj/structure/table/wood, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /turf/open/floor/plasteel/dark, /area/library/abandoned) "dYu" = ( @@ -97206,7 +96795,7 @@ /turf/closed/wall, /area/chapel/office) "dZi" = ( -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Crematorium"; req_access_txt = "27" }, @@ -97588,7 +97177,6 @@ height = 18; id = "emergency_home"; name = "DeltaStation emergency evac bay"; - turf_type = /turf/open/space; width = 30 }, /turf/open/space/basic, @@ -97737,7 +97325,7 @@ }, /area/chapel/office) "eav" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -97872,7 +97460,7 @@ }, /area/medical/virology) "eaR" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -98387,7 +97975,7 @@ /area/chapel/main) "ebW" = ( /obj/structure/table/wood/fancy, -/obj/item/device/flashlight/lantern, +/obj/item/flashlight/lantern, /turf/open/floor/plasteel/grimy, /area/chapel/main) "ebX" = ( @@ -98517,7 +98105,7 @@ }, /obj/item/stack/cable_coil/white, /obj/item/stack/cable_coil/white, -/obj/item/device/multitool, +/obj/item/multitool, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/vault{ dir = 5 @@ -98725,7 +98313,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/item/tank/internals/oxygen, -/obj/item/device/radio, +/obj/item/radio, /obj/item/clothing/mask/breath, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -98779,7 +98367,7 @@ /turf/closed/wall, /area/chapel/main) "ecU" = ( -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Chapel Office"; req_access_txt = "27" }, @@ -98942,7 +98530,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/item/tank/internals/oxygen, -/obj/item/device/radio, +/obj/item/radio, /obj/item/clothing/mask/breath, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -99295,11 +98883,11 @@ pixel_x = 26 }, /obj/item/storage/toolbox/mechanical, -/obj/item/device/flashlight, +/obj/item/flashlight, /turf/open/floor/plating, /area/maintenance/port/aft) "edS" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -99540,8 +99128,8 @@ /area/maintenance/port/aft) "eev" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, -/obj/item/device/radio/intercom{ +/obj/item/flashlight/lamp, +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -99581,11 +99169,11 @@ /area/chapel/office) "eez" = ( /obj/structure/table/wood, -/obj/item/device/camera_film{ +/obj/item/camera_film{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/camera_film, +/obj/item/camera_film, /obj/machinery/firealarm{ dir = 4; pixel_x = 24 @@ -99625,7 +99213,7 @@ /area/chapel/office) "eeD" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -99853,7 +99441,7 @@ }, /area/chapel/office) "efm" = ( -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Chapel Quarters"; req_access_txt = "27" }, @@ -99954,7 +99542,7 @@ }, /obj/item/crowbar, /obj/item/wrench, -/obj/item/device/radio, +/obj/item/radio, /turf/open/floor/plasteel/red/side{ dir = 8 }, @@ -100333,7 +99921,7 @@ }, /obj/item/restraints/handcuffs, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel/red/side, /area/security/checkpoint/escape) "egq" = ( @@ -100486,7 +100074,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "ehG" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -100524,15 +100112,6 @@ /obj/machinery/rnd/production/techfab/department/cargo, /turf/open/floor/plasteel/brown, /area/quartermaster/office) -"ehK" = ( -/obj/machinery/mineral/ore_redemption{ - input_dir = 4; - output_dir = 8 - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/box, -/turf/open/floor/plasteel/neutral, -/area/quartermaster/miningoffice) "ehL" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -100599,6 +100178,13 @@ }, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) +"fNi" = ( +/obj/structure/particle_accelerator/end_cap{ + icon_state = "end_cap"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) "fRT" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -100609,6 +100195,10 @@ }, /turf/open/floor/plating, /area/maintenance/port) +"fRV" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) "gmj" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall/r_wall, @@ -100642,11 +100232,19 @@ dir = 1 }, /area/science/circuit) +"hdH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/conveyor{ + dir = 9; + id = "cargoload" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) "hic" = ( /obj/structure/table/reinforced, -/obj/item/device/integrated_electronics/analyzer, -/obj/item/device/integrated_electronics/debugger, -/obj/item/device/integrated_electronics/wirer, +/obj/item/integrated_electronics/analyzer, +/obj/item/integrated_electronics/debugger, +/obj/item/integrated_electronics/wirer, /turf/open/floor/plasteel/white/side{ dir = 10 }, @@ -100711,6 +100309,16 @@ dir = 9 }, /area/science/circuit) +"hQY" = ( +/turf/open/space, +/area/space) +"iuy" = ( +/obj/structure/particle_accelerator/power_box{ + icon_state = "power_box"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) "iQh" = ( /obj/structure/bodycontainer/morgue{ dir = 1 @@ -100745,7 +100353,7 @@ pixel_y = 32; receive_ore_updates = 1 }, -/obj/item/device/integrated_circuit_printer, +/obj/item/integrated_circuit_printer, /turf/open/floor/plasteel/white/side, /area/science/circuit) "jqM" = ( @@ -100769,6 +100377,18 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/neutral, /area/medical/morgue) +"jRi" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/space) +"kam" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/conveyor{ + dir = 5; + id = "cargoload" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) "kwx" = ( /obj/effect/turf_decal/loading_area, /turf/open/floor/plasteel/whitepurple/corner, @@ -100783,6 +100403,17 @@ dir = 8 }, /area/maintenance/port) +"kLU" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "lak" = ( /turf/open/floor/plasteel/white/side{ dir = 10 @@ -100841,6 +100472,20 @@ dir = 6 }, /area/science/circuit) +"lTo" = ( +/obj/docking_port/stationary{ + area_type = /area/construction/mining/aux_base; + dheight = 4; + dir = 4; + dwidth = 4; + height = 9; + id = "aux_base_zone"; + name = "aux base zone"; + roundstart_template = /datum/map_template/shuttle/aux_base/default; + width = 9 + }, +/turf/open/floor/plating, +/area/construction/mining/aux_base) "lXM" = ( /obj/structure/target_stake, /turf/open/floor/plasteel/white/side{ @@ -100858,10 +100503,25 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/circuit/green, /area/science/research/abandoned) +"nES" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) "nSh" = ( /obj/machinery/atmospherics/pipe/simple/general/hidden, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) +"obr" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light, +/turf/open/floor/plating/airless, +/area/engine/engineering) "oZC" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command{ @@ -100879,7 +100539,7 @@ /obj/machinery/newscaster{ pixel_y = -32 }, -/obj/item/device/integrated_circuit_printer, +/obj/item/integrated_circuit_printer, /turf/open/floor/plasteel/white/side{ dir = 1 }, @@ -100909,9 +100569,9 @@ /area/science/research/abandoned) "qhc" = ( /obj/structure/table/reinforced, -/obj/item/device/integrated_electronics/analyzer, -/obj/item/device/integrated_electronics/debugger, -/obj/item/device/integrated_electronics/wirer, +/obj/item/integrated_electronics/analyzer, +/obj/item/integrated_electronics/debugger, +/obj/item/integrated_electronics/wirer, /turf/open/floor/plasteel/white/side{ dir = 9 }, @@ -100929,11 +100589,24 @@ dir = 9 }, /area/science/circuit) +"riX" = ( +/turf/open/floor/plating/airless, +/area/space) "rCv" = ( /turf/open/floor/plasteel/white/side{ dir = 6 }, /area/science/circuit) +"rUL" = ( +/obj/machinery/mineral/ore_redemption, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/box, +/turf/open/floor/plasteel/neutral, +/area/quartermaster/miningoffice) +"rYN" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space) "saw" = ( /turf/closed/wall, /area/science/circuit) @@ -100943,6 +100616,13 @@ }, /turf/open/floor/plasteel, /area/science/circuit) +"tnQ" = ( +/obj/structure/particle_accelerator/particle_emitter/center{ + icon_state = "emitter_center"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) "tCh" = ( /turf/closed/wall, /area/science/misc_lab) @@ -100975,8 +100655,15 @@ /obj/structure/reagent_dispensers/water_cooler, /turf/open/floor/plasteel/whitepurple/side, /area/science/misc_lab) +"uHq" = ( +/obj/structure/lattice, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/space, +/area/engine/engineering) "uYS" = ( -/obj/machinery/door/airlock/atmos/glass{ +/obj/machinery/door/airlock/atmos/glass/critical{ heat_proof = 1; name = "Supermatter Chamber"; req_one_access_txt = "24;10" @@ -100986,6 +100673,12 @@ }, /turf/open/floor/engine, /area/engine/supermatter) +"vjF" = ( +/obj/machinery/vending/kink, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/locker) "vqd" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bodycontainer/morgue{ @@ -120747,17 +120440,17 @@ aaa car car car -aad +fRV aaa ciY aaa aaa aaa -aad +uHq aaa aaa aaa -aad +uHq aaa aaa aaa @@ -121006,19 +120699,19 @@ cbN cdC cdC aaa -aaz -aaM -aaM -abM -aaM -aaM -abM -aaM -aaM -abM -aaM -aaM -acn +ciZ +cku +cku +cnA +cku +cku +cnA +cku +cku +cnA +cku +cku +cAH aaa cdC cdC @@ -121262,21 +120955,21 @@ car cbN cdC cfA -aad -aaH -aba -abJ -abN -abJ -abJ -abV -abJ -abJ -abN -abJ -acj -aaH -aad +fRV +cja +ckv +clR +cnB +clR +clR +crI +clR +clR +cnB +clR +czo +cja +fRV cDT cdC cHb @@ -121517,25 +121210,25 @@ bVZ aad car cbO -aav +cdD cfA aaa -aaH -abl -abK -aaT -aaT -abK -aaU +cja +ckw +clS +hQY +hQY +clS +nES aaa -aaT -aaT -abK -ack -aaH +hQY +hQY +clS +jRi +cja aaa cDT -abI +cFH cHc car ceb @@ -121776,21 +121469,21 @@ car cbP cdC cfA -aad -aaJ -aby -aaT -aaT -aaT -aaU -aad +fRV +cjb +ckx +hQY +hQY +hQY +nES +fRV aaa -aaT -aaT -aaT -acl -acw -aad +hQY +hQY +hQY +czp +cAI +fRV cDT cdC cFJ @@ -122034,19 +121727,19 @@ cbQ cdE cfA aaa -aaH -abl -aaT -aaT +cja +ckw +hQY +hQY aaa -aaL -aad -aaL aaa -aaT -aaT -ack -aaH +fRV +aaa +aaa +hQY +hQY +jRi +cja aaa cDT cFI @@ -122290,21 +121983,21 @@ car car cbP cfA -abj -aaJ -aby +rYN +cjb +ckx aaa aaa -aaL -abO -abJ -acg -aaL -aaU -abK -acl -acw -abj +aaa +cqo +clR +ctm +aaa +nES +clS +czp +cAI +rYN cDT cFJ car @@ -122545,25 +122238,25 @@ bWd bYp car car -cbP +kLU cdC -aad -aaH -abl -aaU -aad -aad -abl -abW -ach -aad -aad -aaU -ack -aaH -aad +fRV +cja +ckw +nES +fRV +fRV +ckw +crJ +ctn +fRV +fRV +nES +jRi +cja +fRV cdC -cFJ +obr car car cJL @@ -122804,21 +122497,21 @@ car car cbP cfA -abj -aaJ -aby -abK -aaU -aaL -abU -abX -aci -aaL +rYN +cjb +ckx +clS +nES +aaa +cqp +crK +cto aaa aaa -acl -acw -abj +aaa +czp +cAI +rYN cDT cFJ car @@ -123062,19 +122755,19 @@ cbR cdF cfA aaa -aaH -abl -aaT -aaT +cja +ckw +hQY +hQY aaa -aaL -aad -aaL aaa -aaT -aaT -ack -aaH +fRV +aaa +aaa +hQY +hQY +jRi +cja aaa cDT cFK @@ -123318,21 +123011,21 @@ car cbP cdC cfA -aad -aaJ -aby -aaT -aaT +fRV +cjb +ckx +hQY +hQY aaa aaa -aad -aaU +fRV +nES aaa -aaT -aaT -acl -acw -aad +hQY +hQY +czp +cAI +fRV cDU cdC cFJ @@ -123573,25 +123266,25 @@ bWg bYs car cbS -aav +cdD cfA aaa -aaH -abl -abK -aaT +cja +ckw +clS +hQY aaa aaa -aaU -abK -aaT -aaT -abK -ack -aaH +nES +clS +hQY +hQY +clS +jRi +cja aaa cDT -abI +cFH cHf car cJO @@ -123832,21 +123525,21 @@ car cbP cdC cfA -aad -aaK -abz -abL -abL -abL -abL -abY -abL -abL -abL -abL -acm -acx -aad +fRV +cjc +ckz +clU +clU +clU +clU +crL +clU +clU +clU +clU +czr +cAJ +fRV cDT cdC cFJ @@ -124088,11 +123781,11 @@ bYu car cbT cdG -aaw -aax -aaF +cfB +riX +riX aaa -aad +fRV cjd cjd cjd @@ -124100,11 +123793,11 @@ crM cjd cjd cjd -aad +fRV aaa -aaF -aax -abB +riX +riX +cDV cFL cHg car @@ -124603,20 +124296,20 @@ car cbU cdI cfC -aay -aaG -aaG -aaG +chu +cje +cje +cje cjd cpa -aaX -abb -abm +cqr +tnQ +ctp cuQ cjd -aaG -aaG -abA +cje +cje +cAK cCr cfC cFN @@ -124862,12 +124555,12 @@ cdJ car chv chv -aaI +ckA chv cnC cpa cqs -abc +iuy ctq cuR cnC @@ -125123,8 +124816,8 @@ chw clW cnD cpb -aaY -abd +cqt +crO ctr cuS cnD @@ -125377,15 +125070,15 @@ cfE chx cjh cjn -aaN -aaV -aaW +clX +cnE +cpc cqu -abk +fNi cts -abo -aaV -aaN +cuT +cnE +clX cjn cAL cCs @@ -137357,10 +137050,10 @@ aaa aaa aaa aaa -aaA -aaA -aaA -abr +aaa +aaa +aaa +aaa abE aaO aca @@ -137614,9 +137307,9 @@ aaa aaa aaa aas -aaB -aaQ -abg +aaa +aaa +aaa abs abF abP @@ -137871,10 +137564,10 @@ aaa aaa aaa aaa -aaA -aaA -aaA -abr +aaa +aaa +aaa +aaa abG aaO acc @@ -141983,10 +141676,10 @@ aaa aaa aaa aaa -aaC -aaC -aaC -abt +aaa +aaa +aaa +aaa abE aaO aca @@ -142240,10 +141933,10 @@ aaa aaa aaa aat -aaD -aaR -abh -abu +aaa +aaa +aaa +abs abF abQ acb @@ -142497,10 +142190,10 @@ aaa aaa aaa aaa -aaC -aaC -aaC -abt +aaa +aaa +aaa +aaa abG aaO acc @@ -144053,14 +143746,14 @@ ace aad abi aeF -afg -afg -afg -agq -afg -afg -afg -ahG +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF abi ail aiG @@ -144309,15 +144002,15 @@ adi ace aaa abi -aeG -afh -afi -afj -afj -afj -afj -ahw -ahH +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF abi aim aiH @@ -144366,7 +144059,7 @@ bgK bii bjU blR -baU +rUL boO bqZ bsT @@ -144566,15 +144259,15 @@ adj ace aad abi -aeG -afi -afj -afj -afj -afj -afj -afj -ahH +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF abi ain aiI @@ -144823,15 +144516,15 @@ acf acf aad abi -aeG -afj -afj -afj -agr -afj -afi -afj -ahH +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF abi aio aiI @@ -144878,7 +144571,7 @@ baU bfw bgG bik -ehK +baU baQ baQ boW @@ -145080,15 +144773,15 @@ acf aad aad abi -aeG -afj -afj -afZ -ags -afj -afj -afj -ahH +aeF +aeF +aeF +aeF +lTo +aeF +aeF +aeF +aeF abi aip aiH @@ -145337,15 +145030,15 @@ acf aad aad abi -aeG -afj -afi -afj -agt -afj -afj -afj -ahH +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF abi aiq aiI @@ -145594,15 +145287,15 @@ aad aad aaa abi -aeG -afi -afj -afj -afj -afi -afj -afj -ahH +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF abi air aiI @@ -145851,15 +145544,15 @@ aad aac aad abi -aeG -aeH -afj -afi -afj -afj -afj -ahx -ahH +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF abi ais aiI @@ -146108,15 +145801,15 @@ aaa aac aad abi -aeH -afk -afk -afk -afk -afk -afk -afk -ahx +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF abi aig aiJ @@ -146654,11 +146347,11 @@ axm ayD ayD ayD -ayD +hdH azD aEg azD -aGC +kam aHV aHV aHV @@ -149538,7 +149231,7 @@ clt cnc coE cqd -aaZ +vjF csT cuy cvU @@ -150825,7 +150518,7 @@ coI cqd crv csY -abn +cuB cvZ cxq cyV @@ -151084,8 +150777,8 @@ cqd csZ cuC cwa -abw -abx +cxr +cyW cqd cCb cDB @@ -154628,7 +154321,7 @@ aFn aGK aIg aJB -aaq +aKY aMj aNF aPn @@ -154886,7 +154579,7 @@ aGL aIh aJC aKV -aar +aMk aNG aPo aRf @@ -159263,9 +158956,9 @@ aaa ajr aad aKV -aZN +aaa bbv -aZN +aaa aKV aad aad @@ -159520,9 +159213,9 @@ aaa aaa aad aKV -aZO -bbw -aZO +aaa +aaa +aaa aKV aaa aaa @@ -159777,9 +159470,9 @@ aaa aaa aaa aXU -aZO -bbx -aZO +aaa +aaa +aaa aXU aaa aaa @@ -160034,9 +159727,9 @@ aaa aaa aaa aaa -aZO -bby -aZO +aaa +aaa +aaa aaa aaa aaa diff --git a/_maps/cit_map_files/MetaStation/MetaStation.dmm b/_maps/cit_map_files/MetaStation/MetaStation.dmm index 77546c544e..75a2b92364 100644 --- a/_maps/cit_map_files/MetaStation/MetaStation.dmm +++ b/_maps/cit_map_files/MetaStation/MetaStation.dmm @@ -2,35 +2,10 @@ "aaa" = ( /turf/open/space/basic, /area/space) -"aab" = ( -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/obj/machinery/vending/sustenance{ - desc = "A vending machine normally reserved for work camps."; - name = "\improper sustenance vendor"; - product_slogans = "Enjoy your meal.;Enough calories to support any worker." - }, -/turf/open/floor/plasteel, -/area/security/prison) "aac" = ( /obj/effect/landmark/carpspawn, /turf/open/space, /area/space) -"aad" = ( -/obj/machinery/computer/cryopod{ - pixel_x = 28; - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"aae" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/machinery/cryopod, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) "aaf" = ( /obj/structure/lattice, /turf/open/space, @@ -277,10 +252,6 @@ }, /turf/open/floor/plating, /area/security/prison) -"aaM" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/pod_2) "aaN" = ( /obj/structure/cable{ icon_state = "0-2" @@ -316,52 +287,13 @@ /area/security/prison) "aaT" = ( /obj/machinery/hydroponics/constructable, -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /obj/machinery/airalarm{ dir = 8; pixel_x = 24 }, /turf/open/floor/plasteel/floorgrime, /area/security/prison) -"aaU" = ( -/obj/machinery/door/window/southright{ - dir = 4; - name = "Engineering Deliveries"; - req_access_txt = "10"; - req_one_access_txt = "0" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/yellow/side{ - dir = 9 - }, -/area/engine/engineering) -"aaV" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_2) -"aaW" = ( -/obj/structure/sign/warning/securearea{ - pixel_y = 32 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) -"aaX" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) "aaY" = ( /obj/structure/cable{ icon_state = "1-2" @@ -396,24 +328,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/security/prison) -"abd" = ( -/obj/machinery/light_switch{ - pixel_x = 23 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/machinery/shower{ - dir = 8; - name = "emergency shower" - }, -/obj/structure/sign/warning/securearea{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 5 - }, -/area/engine/engineering) "abe" = ( /turf/closed/wall, /area/security/prison) @@ -496,11 +410,11 @@ /turf/open/floor/plasteel/floorgrime, /area/security/prison) "abn" = ( -/obj/machinery/light/small{ - dir = 1 +/obj/machinery/newscaster{ + pixel_y = 32 }, -/turf/open/floor/plating, -/area/engine/engineering) +/turf/open/floor/plasteel, +/area/security/prison) "abo" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -544,21 +458,16 @@ dir = 8 }, /area/security/prison) -"abt" = ( -/obj/structure/shuttle/engine/propulsion/burst, -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_2) "abu" = ( -/obj/machinery/door/airlock/titanium{ - name = "Escape Pod Airlock" +/obj/docking_port/stationary{ + dir = 1; + dwidth = 1; + height = 4; + roundstart_template = /datum/map_template/shuttle/escape_pod/default; + width = 3 }, -/obj/docking_port/mobile/pod{ - id = "pod2"; - name = "escape pod 2"; - port_direction = 2 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_2) +/turf/open/space/basic, +/area/space) "abv" = ( /obj/structure/cable{ icon_state = "0-2" @@ -779,7 +688,7 @@ /obj/item/clothing/glasses/sunglasses/blindfold, /obj/item/clothing/mask/muzzle, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/electropack, +/obj/item/electropack, /turf/open/floor/plasteel/dark, /area/security/execution/education) "abX" = ( @@ -828,22 +737,14 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/security/prison) -"acd" = ( -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable/white{ - icon_state = "2-4" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "ace" = ( -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable/white{ - icon_state = "4-8" +/obj/machinery/vending/sustenance{ + desc = "A vending machine normally reserved for work camps."; + name = "\improper sustenance vendor"; + product_slogans = "Enjoy your meal.;Enough calories to support any worker." }, -/turf/open/floor/plating/airless, -/area/engine/engineering) +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) "acf" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, @@ -997,16 +898,17 @@ /turf/open/floor/plasteel/floorgrime, /area/security/prison) "acx" = ( -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable/white{ - icon_state = "2-8" +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 }, -/obj/structure/cable/white{ - icon_state = "4-8" +/obj/machinery/cryopod{ + tag = "icon-cryopod-open (WEST)"; + icon_state = "cryopod-open"; + dir = 8 }, -/turf/open/floor/plating/airless, -/area/engine/engineering) +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) "acy" = ( /obj/machinery/door/airlock/external{ name = "Escape Pod Two" @@ -1110,7 +1012,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; @@ -1159,6 +1061,9 @@ pixel_y = 7 }, /obj/item/pen, +/obj/machinery/computer/cryopod{ + pixel_x = 28 + }, /turf/open/floor/plasteel/floorgrime, /area/security/prison) "acN" = ( @@ -1276,7 +1181,7 @@ pixel_y = 26; req_access_txt = "2" }, -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_x = -3; pixel_y = 2 }, @@ -1308,11 +1213,11 @@ /obj/item/folder/red{ pixel_x = 3 }, -/obj/item/device/taperecorder{ +/obj/item/taperecorder{ pixel_x = -3 }, /obj/item/storage/fancy/cigarettes, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/item/reagent_containers/spray/pepper, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -1451,18 +1356,9 @@ }, /turf/open/floor/plating, /area/crew_quarters/fitness/recreation) -"adk" = ( -/obj/structure/shuttle/engine/propulsion/burst{ - dir = 8 - }, -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_3) -"adl" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_3) "adm" = ( /obj/structure/table, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/structure/reagent_dispensers/peppertank{ pixel_x = -29 }, @@ -1623,18 +1519,15 @@ /turf/open/floor/plating, /area/crew_quarters/fitness/recreation) "adF" = ( -/obj/machinery/door/airlock/titanium{ - name = "Escape Pod Airlock" - }, -/obj/docking_port/mobile/pod{ +/obj/docking_port/stationary{ dir = 4; - id = "pod3"; - name = "escape pod 3"; - port_direction = 2; - preferred_direction = 4 + dwidth = 1; + height = 4; + roundstart_template = /datum/map_template/shuttle/escape_pod/default; + width = 3 }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_3) +/turf/open/space/basic, +/area/space) "adG" = ( /obj/docking_port/stationary/random{ id = "pod_lavaland2"; @@ -1642,26 +1535,8 @@ }, /turf/open/space, /area/space/nearstation) -"adH" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/status_display{ - pixel_x = 32 - }, -/obj/machinery/computer/shuttle/pod{ - pixel_x = -32; - possible_destinations = "pod_lavaland2"; - shuttleId = "pod2" - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_2) -"adI" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/pod_3) "adJ" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -1990,7 +1865,7 @@ "aer" = ( /obj/structure/rack, /obj/item/gun/energy/ionrifle{ - pin = /obj/item/device/firing_pin + pin = /obj/item/firing_pin }, /obj/machinery/light{ dir = 1 @@ -2083,14 +1958,6 @@ }, /turf/open/floor/plating, /area/crew_quarters/fitness/recreation) -"aeD" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating/airless, -/area/engine/engineering) "aeE" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -2516,7 +2383,7 @@ dir = 4; pixel_x = -22 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -2794,7 +2661,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -2816,16 +2683,6 @@ dir = 1 }, /area/security/prison) -"afQ" = ( -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) "afR" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 @@ -2892,7 +2749,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) "afZ" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -2998,7 +2855,7 @@ /area/crew_quarters/heads/hos) "agh" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/carpet, /area/crew_quarters/heads/hos) @@ -3216,7 +3073,7 @@ "agF" = ( /obj/structure/rack, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/structure/cable/yellow{ icon_state = "1-2" }, @@ -3320,8 +3177,6 @@ /obj/item/storage/fancy/donut_box, /obj/item/gun/energy/e_gun/dragnet, /obj/item/gun/energy/e_gun/dragnet, -/obj/item/gun/energy/pumpaction/blaster, -/obj/item/gun/energy/pumpaction/blaster, /turf/open/floor/plasteel/vault{ dir = 1 }, @@ -3426,10 +3281,10 @@ /area/crew_quarters/heads/hos) "ahb" = ( /obj/structure/table/wood, -/obj/item/device/taperecorder{ +/obj/item/taperecorder{ pixel_x = -4 }, -/obj/item/device/radio/off{ +/obj/item/radio/off{ pixel_y = 3 }, /turf/open/floor/plasteel/dark, @@ -3531,7 +3386,7 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -3791,14 +3646,6 @@ icon_state = "platingdmg1" }, /area/maintenance/fore) -"ahT" = ( -/obj/structure/cable/white{ - icon_state = "2-4" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plating/airless, -/area/engine/engineering) "ahU" = ( /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/table, @@ -3929,7 +3776,7 @@ /area/maintenance/disposal) "aih" = ( /obj/machinery/conveyor_switch/oneway{ - convdir = -1; + dir = 8; id = "garbage"; name = "disposal conveyor" }, @@ -4319,9 +4166,8 @@ /area/engine/gravity_generator) "ajc" = ( /obj/machinery/conveyor{ - dir = 2; - id = "garbage"; - layer = 2.7 + dir = 1; + id = "garbage" }, /obj/machinery/door/poddoor/preopen{ id = "Disposal Exit"; @@ -4393,14 +4239,6 @@ /obj/item/restraints/handcuffs/cable/pink, /turf/open/floor/plating, /area/maintenance/port/fore) -"ajk" = ( -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "ajl" = ( /obj/item/soap/deluxe, /obj/item/storage/secure/safe{ @@ -4489,9 +4327,6 @@ dir = 4 }, /area/security/warden) -"aju" = ( -/turf/open/space/basic, -/area/space/nearstation) "ajv" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 @@ -4764,7 +4599,7 @@ /area/maintenance/solars/starboard/fore) "akf" = ( /obj/machinery/conveyor{ - dir = 2; + dir = 1; id = "garbage" }, /turf/open/floor/plating, @@ -4913,7 +4748,7 @@ pixel_y = -2 }, /obj/item/dice/d8, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port/fore) @@ -4928,7 +4763,7 @@ /area/security/brig) "aku" = ( /obj/structure/table, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -4944,7 +4779,7 @@ pixel_x = -4; pixel_y = 2 }, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /turf/open/floor/plasteel/whitered/side{ dir = 1 }, @@ -5115,7 +4950,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -5404,7 +5239,7 @@ c_tag = "Holodeck"; dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -5422,20 +5257,6 @@ "alq" = ( /turf/closed/wall, /area/maintenance/starboard) -"alr" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 2 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/engineering) "als" = ( /obj/machinery/light{ dir = 8 @@ -5471,7 +5292,7 @@ /area/maintenance/solars/starboard/fore) "alx" = ( /obj/machinery/conveyor{ - dir = 2; + dir = 1; id = "garbage" }, /obj/structure/sign/warning/vacuum{ @@ -5506,7 +5327,7 @@ /area/maintenance/disposal) "alz" = ( /obj/machinery/conveyor{ - dir = 4; + dir = 8; id = "garbage" }, /obj/machinery/door/window/eastright{ @@ -6173,23 +5994,18 @@ }, /obj/machinery/conveyor{ dir = 9; - id = "garbage"; - verted = -1 + id = "garbage" }, /turf/open/floor/plating, /area/maintenance/disposal) "amP" = ( /obj/machinery/conveyor{ - dir = 4; + dir = 8; id = "garbage" }, /turf/open/floor/plating, /area/maintenance/disposal) "amQ" = ( -/obj/machinery/conveyor{ - dir = 6; - id = "garbage" - }, /obj/machinery/door/window/eastright{ base_state = "left"; dir = 4; @@ -6197,6 +6013,10 @@ name = "Danger: Conveyor Access"; req_access_txt = "12" }, +/obj/machinery/conveyor/inverted{ + dir = 6; + id = "garbage" + }, /turf/open/floor/plating, /area/maintenance/disposal) "amR" = ( @@ -6233,13 +6053,6 @@ icon_state = "platingdmg2" }, /area/maintenance/port) -"amV" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) "amW" = ( /obj/structure/table/reinforced, /obj/item/folder, @@ -6251,7 +6064,7 @@ name = "windoor" }, /obj/item/book/manual/wiki/engineering_hacking, -/obj/item/device/tape/random, +/obj/item/tape/random, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port/fore) @@ -6483,19 +6296,6 @@ /obj/item/paper, /turf/open/floor/plasteel, /area/security/main) -"anz" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/sorting/mail{ - sortType = 4 - }, -/obj/effect/landmark/start/station_engineer, -/obj/structure/cable/white{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "anA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, @@ -6639,10 +6439,6 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, -/obj/machinery/conveyor{ - dir = 8; - id = "garbage" - }, /obj/structure/disposaloutlet{ dir = 4 }, @@ -6653,7 +6449,7 @@ /area/maintenance/disposal) "anV" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "garbage" }, /obj/structure/disposalpipe/segment{ @@ -6663,7 +6459,7 @@ /area/maintenance/disposal) "anW" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "garbage" }, /obj/machinery/atmospherics/components/unary/vent_pump/on, @@ -6671,7 +6467,7 @@ /area/maintenance/disposal) "anX" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "garbage" }, /obj/machinery/recycler, @@ -6683,7 +6479,7 @@ name = "Danger: Conveyor Access"; req_access_txt = "12" }, -/obj/machinery/conveyor{ +/obj/machinery/conveyor/inverted{ dir = 10; id = "garbage" }, @@ -6859,7 +6655,7 @@ }, /obj/structure/rack, /obj/item/storage/firstaid/regular, -/obj/item/device/healthanalyzer{ +/obj/item/healthanalyzer{ pixel_y = -2 }, /obj/machinery/camera{ @@ -6928,15 +6724,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/security/warden) -"aov" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "aow" = ( /obj/machinery/door/firedoor, /obj/structure/cable/yellow{ @@ -6997,7 +6784,7 @@ "aoC" = ( /obj/structure/table, /obj/item/restraints/handcuffs, -/obj/item/device/radio/off, +/obj/item/radio/off, /turf/open/floor/plasteel, /area/security/main) "aoD" = ( @@ -7392,16 +7179,16 @@ /obj/structure/plasticflaps{ opacity = 0 }, -/obj/machinery/conveyor{ - dir = 2; - id = "garbage" - }, /obj/machinery/door/window/northright{ dir = 2; name = "delivery door"; req_access_txt = "31" }, /obj/structure/disposalpipe/segment, +/obj/machinery/conveyor{ + dir = 1; + id = "garbage" + }, /turf/open/floor/plating, /area/maintenance/disposal) "aps" = ( @@ -7507,7 +7294,7 @@ /area/maintenance/port/fore) "apD" = ( /obj/item/storage/box/lights/mixed, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = 1; pixel_y = 5 }, @@ -7620,15 +7407,6 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) -"apP" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "apQ" = ( /obj/structure/reagent_dispensers/peppertank{ pixel_x = 32 @@ -7678,29 +7456,9 @@ "apW" = ( /obj/structure/table, /obj/item/folder/red, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel, /area/security/main) -"apX" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - name = "External Containment Access"; - req_access_txt = "10; 13" - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) "apY" = ( /obj/structure/table, /obj/item/folder/red, @@ -7744,14 +7502,6 @@ /obj/item/clothing/head/soft/red, /turf/open/floor/plasteel/vault, /area/crew_quarters/fitness/recreation) -"aqe" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plating, -/area/engine/engineering) "aqf" = ( /obj/structure/closet/lasertag/blue, /turf/open/floor/plasteel/vault, @@ -7799,7 +7549,7 @@ /area/crew_quarters/fitness/recreation) "aqk" = ( /obj/machinery/vending/coffee, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -7847,7 +7597,7 @@ }, /area/maintenance/starboard) "aqs" = ( -/obj/item/device/mmi{ +/obj/item/mmi{ name = "man-machine interface" }, /obj/structure/rack, @@ -7950,7 +7700,7 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -8111,7 +7861,7 @@ /obj/structure/closet/crate, /obj/item/restraints/handcuffs, /obj/item/bodybag, -/obj/item/device/radio, +/obj/item/radio, /obj/effect/spawner/lootdrop/maintenance{ lootcount = 3; name = "3maintenance loot spawner" @@ -8210,25 +7960,6 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) -"arh" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - name = "External Containment Access"; - req_access_txt = "10; 13" - }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) "ari" = ( /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -8417,12 +8148,6 @@ dir = 4 }, /area/crew_quarters/dorms) -"arF" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "arG" = ( /obj/structure/closet, /obj/item/storage/box/lights/mixed, @@ -8898,7 +8623,7 @@ /obj/structure/cable/yellow{ icon_state = "2-8" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 29; @@ -9094,7 +8819,7 @@ pixel_y = 7 }, /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; broadcasting = 0; freerange = 1; @@ -9474,12 +9199,6 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) -"atC" = ( -/obj/structure/cable/white{ - icon_state = "1-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "atD" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -9502,9 +9221,6 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) -"atF" = ( -/turf/open/floor/plating/airless, -/area/engine/engineering) "atG" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -9548,17 +9264,6 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) -"atJ" = ( -/obj/structure/cable/white, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/power/emitter{ - anchored = 1; - state = 2 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "atK" = ( /obj/machinery/computer/gulag_teleporter_computer{ dir = 1 @@ -9889,7 +9594,7 @@ /area/maintenance/starboard/fore) "auy" = ( /obj/item/stack/sheet/cardboard, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, @@ -10024,44 +9729,6 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) -"auQ" = ( -/obj/structure/cable/white{ - icon_state = "1-4" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"auR" = ( -/obj/structure/cable/white{ - icon_state = "1-8" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"auS" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/yellow/side{ - dir = 9 - }, -/area/engine/engineering) -"auT" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/item/clothing/suit/hooded/wintercoat/engineering, -/obj/effect/turf_decal/delivery, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) "auU" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -10174,7 +9841,7 @@ }, /area/security/brig) "avd" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -10634,38 +10301,6 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) -"avU" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) -"avV" = ( -/obj/item/device/radio/intercom{ - freerange = 0; - frequency = 1459; - name = "Station Intercom (General)"; - pixel_y = 21 - }, -/obj/machinery/camera{ - c_tag = "Engineering - Fore"; - dir = 2 - }, -/obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) -"avW" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/engine/engineering) -"avX" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "avY" = ( /obj/machinery/door/airlock/external{ name = "Labor Camp Shuttle Airlock"; @@ -10919,7 +10554,7 @@ /area/security/brig) "awx" = ( /obj/structure/table, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/dark, /area/security/brig) "awy" = ( @@ -11067,23 +10702,6 @@ /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port/fore) -"awN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"awO" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "awP" = ( /obj/item/clothing/gloves/color/rainbow, /obj/item/clothing/shoes/sneakers/rainbow, @@ -11140,22 +10758,6 @@ "awW" = ( /turf/closed/wall/r_wall, /area/security/nuke_storage) -"awX" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"awY" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/engineering) "awZ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 @@ -11424,8 +11026,8 @@ "axz" = ( /obj/structure/table, /obj/item/folder/red, -/obj/item/device/taperecorder, -/obj/item/device/radio/intercom{ +/obj/item/taperecorder, +/obj/item/radio/intercom{ anyai = 1; broadcasting = 1; freerange = 1; @@ -11489,12 +11091,6 @@ dir = 1 }, /area/crew_quarters/dorms) -"axH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "axI" = ( /obj/machinery/door/airlock{ id_tag = "Cabin5"; @@ -11633,75 +11229,69 @@ /turf/open/floor/plasteel, /area/engine/engineering) "axU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/machinery/door/window/southright{ + dir = 4; + name = "Engineering Deliveries"; + req_access_txt = "10"; + req_one_access_txt = "0" }, -/obj/structure/cable/yellow{ - icon_state = "2-4" +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/yellow/side{ + dir = 9 }, -/turf/open/floor/plasteel, /area/engine/engineering) "axV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/structure/sign/warning/securearea{ + pixel_y = 32 }, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 }, -/turf/open/floor/plasteel, /area/engine/engineering) "axW" = ( -/obj/machinery/light{ - dir = 4 +/obj/structure/disposalpipe/segment, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 }, -/turf/open/floor/plasteel, /area/engine/engineering) "axX" = ( -/obj/structure/lattice, -/turf/open/space, -/area/space) +/obj/machinery/light_switch{ + pixel_x = 23 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/shower{ + dir = 8; + name = "emergency shower" + }, +/obj/structure/sign/warning/securearea{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 5 + }, +/area/engine/engineering) "axY" = ( /turf/closed/wall/r_wall, /area/engine/engineering) -"axZ" = ( -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"aya" = ( -/turf/open/floor/plating/airless, -/area/space) -"ayb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/engineering) "ayc" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable/white{ + icon_state = "2-4" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ayd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aye" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plating/airless, /area/engine/engineering) "ayf" = ( /obj/structure/closet/crate, @@ -11711,15 +11301,6 @@ /obj/item/stack/rods, /turf/open/floor/plating/airless, /area/space/nearstation) -"ayg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ayh" = ( -/turf/open/floor/plasteel, -/area/engine/engineering) "ayi" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -11807,28 +11388,6 @@ dir = 8 }, /area/security/nuke_storage) -"ayt" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24; - pixel_y = -26 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ayu" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/space) -"ayv" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/space, -/area/space) "ayw" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/yellow{ @@ -12063,83 +11622,69 @@ /turf/open/floor/plating, /area/maintenance/starboard/fore) "ayS" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/space, -/area/space) -"ayT" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/space, -/area/space) -"ayU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ dir = 4 }, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/effect/turf_decal/delivery, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 2 }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) +"ayT" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/yellow/side{ dir = 8 }, /area/engine/engineering) "ayV" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 + dir = 8 }, -/obj/structure/cable/yellow{ - icon_state = "2-8" +/obj/structure/cable/white{ + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/engine/engineering) "ayW" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Containment - Fore Port"; - dir = 4; - network = list("singularity") +/obj/structure/cable/white{ + icon_state = "4-8" }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, /area/engine/engineering) "ayX" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/space, -/area/space) -"ayY" = ( -/obj/effect/turf_decal/stripes/corner{ +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, -/turf/open/floor/plating/airless, -/area/space) -"ayZ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock/external{ + name = "External Containment Access"; + req_access_txt = "10; 13" }, -/turf/open/floor/plating/airless, -/area/space) +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) "aza" = ( -/obj/structure/cable, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/structure/cable/white{ + icon_state = "1-8" }, -/obj/machinery/power/tesla_coil, /turf/open/floor/plating/airless, -/area/space) +/area/engine/engineering) "azb" = ( /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/structure/cable/yellow{ @@ -12149,21 +11694,18 @@ dir = 4 }, /area/security/brig) -"azc" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Containment - Fore Starboard"; - dir = 8; - network = list("singularity") +"azd" = ( +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/obj/structure/cable/white{ + icon_state = "4-8" }, /turf/open/floor/plating/airless, -/area/space) -"azd" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, /area/engine/engineering) "aze" = ( /obj/item/twohanded/required/kirbyplants{ @@ -12172,31 +11714,10 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/wood, /area/library) -"azf" = ( -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) "azg" = ( /obj/item/stack/cable_coil, /turf/open/floor/plating/airless, /area/space/nearstation) -"azh" = ( -/obj/structure/rack, -/obj/machinery/button/door{ - id = "engpa"; - name = "Engineering Chamber Shutters Control"; - pixel_y = -26; - req_access_txt = "11" - }, -/obj/item/clothing/gloves/color/black, -/obj/item/wrench, -/obj/item/clothing/glasses/meson/engine, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"azi" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) "azj" = ( /obj/item/stack/ore/iron, /obj/effect/turf_decal/stripes/line{ @@ -12209,7 +11730,7 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 @@ -12231,11 +11752,11 @@ /area/quartermaster/miningoffice) "azm" = ( /obj/structure/closet/crate, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = 1; pixel_y = 5 }, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = 1; pixel_y = 5 }, @@ -12392,16 +11913,6 @@ dir = 1 }, /area/security/nuke_storage) -"azA" = ( -/obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"azB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/space) "azC" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -12582,7 +12093,7 @@ network = list("prison"); pixel_y = 30 }, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -12686,7 +12197,7 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -12819,107 +12330,72 @@ /turf/open/floor/plating, /area/maintenance/starboard/fore) "aAo" = ( -/obj/machinery/field/generator{ - anchored = 1; - state = 2 - }, -/turf/open/floor/plating/airless, -/area/space) -"aAp" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -27 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/engineering) -"aAq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aAr" = ( -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/suit/hazardvest, -/obj/item/clothing/suit/hazardvest, -/obj/item/tank/internals/emergency_oxygen/engi, -/obj/item/tank/internals/emergency_oxygen/engi, +/obj/structure/closet/secure_closet/engineering_personal, /obj/effect/turf_decal/delivery, -/obj/structure/table, /turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) -"aAs" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engpa"; - name = "Engineering Chamber Shutters" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aAt" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"aAu" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating/airless, -/area/space) -"aAv" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/engineering) -"aAw" = ( -/obj/structure/table, -/obj/effect/turf_decal/delivery, -/obj/item/clothing/glasses/meson/engine, -/obj/item/clothing/glasses/meson/engine, -/obj/item/clothing/glasses/meson/engine, -/obj/machinery/light{ - dir = 4 - }, -/obj/item/pipe_dispenser, -/obj/item/pipe_dispenser, -/obj/item/pipe_dispenser, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) -"aAx" = ( -/obj/machinery/button/door{ - id = "engpa"; - name = "Engineering Chamber Shutters Control"; - pixel_y = 26; - req_access_txt = "11" - }, -/obj/effect/turf_decal/stripes/line{ dir = 9 }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plating, /area/engine/engineering) -"aAy" = ( -/obj/effect/turf_decal/stripes/line{ +"aAp" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/item/clothing/suit/hooded/wintercoat/engineering, +/obj/effect/turf_decal/delivery, +/obj/machinery/light{ dir = 1 }, -/turf/open/floor/plating, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"aAr" = ( +/obj/item/radio/intercom{ + freerange = 0; + frequency = 1459; + name = "Station Intercom (General)"; + pixel_y = 21 + }, +/obj/machinery/camera{ + c_tag = "Engineering - Fore"; + dir = 2 + }, +/obj/structure/closet/secure_closet/engineering_personal, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"aAt" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aAu" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/sorting/mail{ + sortType = 4 + }, +/obj/effect/landmark/start/station_engineer, +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aAv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aAx" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, /area/engine/engineering) "aAz" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -13132,14 +12608,6 @@ dir = 1 }, /area/security/nuke_storage) -"aAU" = ( -/obj/structure/table, -/obj/item/airlock_painter, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/yellow/side{ - dir = 9 - }, -/area/engine/engineering) "aAV" = ( /obj/docking_port/stationary{ dir = 8; @@ -13532,19 +13000,19 @@ /turf/closed/wall, /area/engine/engineering) "aBJ" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, /turf/open/floor/plasteel/yellow/side{ - dir = 4 + dir = 8 }, /area/engine/engineering) "aBK" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engpa"; - name = "Engineering Chamber Shutters" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel, @@ -13587,30 +13055,11 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aBO" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"aBP" = ( -/obj/structure/particle_accelerator/particle_emitter/right{ - icon_state = "emitter_right"; +/obj/machinery/light{ dir = 4 }, -/turf/open/floor/plating, +/turf/open/floor/plasteel, /area/engine/engineering) -"aBQ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating/airless, -/area/space) -"aBR" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating/airless, -/area/space) "aBS" = ( /obj/item/stack/ore/silver, /obj/item/stack/ore/silver, @@ -13644,7 +13093,7 @@ /turf/open/floor/plasteel, /area/quartermaster/miningoffice) "aBX" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 @@ -13759,11 +13208,6 @@ dir = 1 }, /area/security/nuke_storage) -"aCi" = ( -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/engineering) "aCj" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security/glass{ @@ -13895,11 +13339,11 @@ /obj/structure/cable/yellow{ icon_state = "0-4" }, -/obj/item/device/taperecorder{ +/obj/item/taperecorder{ pixel_x = 3 }, /obj/item/storage/box/evidence, -/obj/item/device/flashlight/seclite, +/obj/item/flashlight/seclite, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "aCt" = ( @@ -14055,22 +13499,6 @@ /obj/item/clothing/under/suit_jacket/navy, /turf/open/floor/carpet, /area/crew_quarters/dorms) -"aCL" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the Engine."; - dir = 8; - layer = 4; - name = "Engine Monitor"; - network = list("singularity"); - pixel_x = 30 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) "aCM" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -14080,7 +13508,7 @@ /area/maintenance/starboard/fore) "aCN" = ( /obj/structure/reagent_dispensers/fueltank, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_x = -30 }, @@ -14133,55 +13561,51 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aCU" = ( -/obj/structure/particle_accelerator/end_cap{ - icon_state = "end_cap"; +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plating, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, /area/engine/engineering) "aCV" = ( -/obj/structure/particle_accelerator/fuel_chamber{ - icon_state = "fuel_chamber"; +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/plating, +/turf/open/floor/plasteel, /area/engine/engineering) "aCW" = ( -/obj/structure/particle_accelerator/power_box{ - icon_state = "power_box"; - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 }, -/turf/open/floor/plating, +/turf/open/floor/plasteel, /area/engine/engineering) "aCX" = ( -/obj/structure/particle_accelerator/particle_emitter/center{ - icon_state = "emitter_center"; - dir = 4 - }, -/turf/open/floor/plating, +/turf/open/floor/plasteel, /area/engine/engineering) "aCY" = ( -/obj/structure/cable{ - icon_state = "2-4" +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24; + pixel_y = -26 }, -/turf/open/floor/plating, +/turf/open/floor/plasteel, /area/engine/engineering) "aCZ" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "2-8" +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, +/obj/machinery/power/tesla_coil, /turf/open/floor/plating/airless, /area/space) "aDa" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/structure/ore_box, /turf/open/floor/plating, -/area/shuttle/auxillary_base) +/area/construction/mining/aux_base) "aDb" = ( /turf/closed/wall, /area/construction/mining/aux_base) @@ -14191,30 +13615,6 @@ /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port/fore) -"aDd" = ( -/obj/machinery/the_singularitygen/tesla, -/turf/open/floor/plating/airless, -/area/space) -"aDe" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space) -"aDf" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aDg" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) "aDh" = ( /obj/machinery/firealarm{ dir = 8; @@ -14320,22 +13720,6 @@ /obj/structure/sign/warning/securearea, /turf/closed/wall/r_wall, /area/security/nuke_storage) -"aDt" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engpa"; - name = "Engineering Chamber Shutters" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "aDu" = ( /turf/closed/wall, /area/hallway/primary/fore) @@ -14494,7 +13878,7 @@ c_tag = "Brig - Desk"; dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -14513,7 +13897,7 @@ dir = 8 }, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/camera/detective, +/obj/item/camera/detective, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "aDJ" = ( @@ -14533,7 +13917,7 @@ /area/security/detectives_office) "aDL" = ( /obj/machinery/light/small, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -14805,13 +14189,16 @@ }, /area/engine/engineering) "aEn" = ( -/obj/structure/cable{ - icon_state = "2-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/obj/effect/turf_decal/stripes/line{ +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/yellow/side{ dir = 8 }, -/turf/open/floor/plating, /area/engine/engineering) "aEo" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -14824,29 +14211,26 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aEp" = ( -/obj/machinery/particle_accelerator/control_box, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"aEq" = ( -/obj/item/wrench, -/turf/open/floor/plating, -/area/engine/engineering) -"aEr" = ( -/obj/structure/particle_accelerator/particle_emitter/left{ - icon_state = "emitter_left"; - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"aEs" = ( -/obj/structure/cable{ +/obj/structure/cable/yellow{ icon_state = "1-2" }, -/turf/open/floor/plating, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aEr" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Fore Port"; + dir = 4; + network = list("singularity") + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, /area/engine/engineering) "aEt" = ( /obj/structure/table, @@ -14862,12 +14246,6 @@ }, /turf/open/floor/plasteel/floorgrime, /area/quartermaster/warehouse) -"aEu" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating/airless, -/area/space) "aEv" = ( /obj/machinery/computer/security/mining{ dir = 4; @@ -14932,12 +14310,6 @@ }, /turf/open/floor/plasteel/floorgrime, /area/quartermaster/warehouse) -"aEC" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plating/airless, -/area/space) "aED" = ( /obj/structure/closet/crate/internals, /obj/structure/cable/yellow{ @@ -15130,7 +14502,7 @@ /obj/structure/cable/yellow{ icon_state = "2-4" }, -/obj/item/device/radio/off, +/obj/item/radio/off, /obj/machinery/door/poddoor/shutters/preopen{ id = "briglockdown"; name = "brig shutters" @@ -15389,11 +14761,13 @@ /turf/open/floor/plating, /area/engine/engineering) "aFv" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 2 }, -/turf/open/floor/plating/airless, -/area/space) +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) "aFw" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 @@ -15410,73 +14784,26 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"aFy" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high{ - charge = 100; - maxcharge = 15000 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/yellow/side{ - dir = 10 - }, -/area/engine/engineering) -"aFz" = ( -/obj/structure/closet/firecloset, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) "aFA" = ( +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"aFB" = ( +/obj/structure/rack, /obj/machinery/button/door{ id = "engpa"; name = "Engineering Chamber Shutters Control"; pixel_y = -26; req_access_txt = "11" }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"aFB" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, +/obj/item/clothing/gloves/color/black, +/obj/item/wrench, +/obj/item/clothing/glasses/meson/engine, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/yellow/side, /area/engine/engineering) "aFC" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/camera/emp_proof{ - c_tag = "Containment - Particle Accelerator"; - dir = 1; - network = list("singularity") - }, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"aFD" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/yellow/side, /area/engine/engineering) "aFE" = ( /obj/structure/table/wood, @@ -15796,7 +15123,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -15860,7 +15187,7 @@ }, /area/hallway/primary/fore) "aGo" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/red/corner{ dir = 2 }, @@ -16217,14 +15544,8 @@ }, /area/engine/engineering) "aGV" = ( -/obj/machinery/power/apc/highcap/ten_k{ - dir = 8; - name = "Engine Room APC"; - areastring = "/area/engine/engineering"; - pixel_x = -26 - }, -/obj/structure/cable/yellow{ - icon_state = "0-4" +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 }, /turf/open/floor/plasteel/yellow/side{ dir = 8 @@ -16236,56 +15557,18 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aGX" = ( -/obj/structure/table, -/obj/item/clothing/glasses/meson, -/obj/item/clothing/glasses/meson, -/obj/item/clothing/glasses/meson, -/obj/item/storage/belt/utility, -/obj/item/storage/belt/utility, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = 10 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) -"aGY" = ( -/obj/machinery/vending/tool, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, +/turf/open/floor/plasteel, /area/engine/engineering) "aGZ" = ( -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) -"aHa" = ( -/obj/structure/rack, -/obj/machinery/button/door{ +/obj/machinery/door/poddoor/shutters/preopen{ id = "engpa"; - name = "Engineering Chamber Shutters Control"; - pixel_y = 26; - req_access_txt = "11" - }, -/obj/item/storage/belt/utility, -/obj/item/weldingtool, -/obj/item/clothing/head/welding, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 + name = "Engineering Chamber Shutters" }, +/turf/open/floor/plasteel, /area/engine/engineering) -"aHb" = ( -/obj/machinery/camera{ - c_tag = "Auxillary Mining Base"; - dir = 1 - }, -/obj/structure/mining_shuttle_beacon, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "aHc" = ( /obj/effect/spawner/structure/window, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -16620,12 +15903,6 @@ dir = 2 }, /area/crew_quarters/dorms) -"aHP" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) "aHQ" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -16695,60 +15972,24 @@ }, /area/maintenance/starboard/fore) "aHX" = ( -/obj/structure/closet/secure_closet/engineering_electrical, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, /turf/open/floor/plasteel/yellow/side{ - dir = 1 + dir = 8 }, /area/engine/engineering) "aHY" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/engine/engineering) -"aHZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, +"aIe" = ( +/obj/structure/lattice/catwalk, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aIa" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aIb" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Containment - Aft Port"; - dir = 4; - network = list("singularity") - }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"aIc" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space) -"aId" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating/airless, -/area/space) -"aIe" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/power/tesla_coil, -/turf/open/floor/plating/airless, +/turf/open/space, /area/space) "aIf" = ( /obj/machinery/camera{ @@ -16768,7 +16009,7 @@ /turf/open/floor/plating, /area/quartermaster/storage) "aIh" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = -28; @@ -16779,9 +16020,8 @@ supply_display = 1 }, /obj/machinery/conveyor{ - dir = 1; - id = "QMLoad2"; - movedir = 2 + dir = 5; + id = "QMLoad2" }, /turf/open/floor/plating, /area/quartermaster/storage) @@ -17005,7 +16245,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 2 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -17184,7 +16424,7 @@ /turf/open/floor/plasteel, /area/security/courtroom) "aIN" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -17240,7 +16480,7 @@ /area/security/courtroom) "aIU" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -17418,138 +16658,14 @@ /turf/open/floor/plating, /area/engine/engineering) "aJn" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Containment - Aft Starboard"; - dir = 8; - network = list("singularity") - }, -/turf/open/floor/plating/airless, -/area/space) -"aJo" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/table, +/obj/item/airlock_painter, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engine/engineering) -"aJp" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aJq" = ( -/obj/item/pen, -/obj/item/storage/belt/utility, -/obj/item/clothing/glasses/meson, -/obj/item/paper_bin{ - layer = 2.9 - }, -/obj/structure/table/glass, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aJr" = ( -/obj/item/book/manual/wiki/engineering_hacking{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/book/manual/wiki/engineering_construction, -/obj/item/clothing/gloves/color/yellow, -/obj/structure/table/glass, -/obj/item/device/flashlight, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aJs" = ( -/obj/item/book/manual/engineering_singularity_safety{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/book/manual/wiki/engineering_guide, -/obj/item/book/manual/engineering_particle_accelerator{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/item/clothing/gloves/color/yellow, -/obj/structure/table/glass, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aJt" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/space) "aJu" = ( /turf/open/floor/plating, /area/engine/engineering) -"aJv" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/space, -/area/space) -"aJw" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/space, -/area/space) -"aJx" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aJy" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/machinery/light, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"aJz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aJA" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/structure/cable/white{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "aJB" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/sign/warning/vacuum/external, @@ -17561,14 +16677,12 @@ }, /obj/machinery/conveyor{ dir = 1; - id = "QMLoad2"; - movedir = 2 + id = "QMLoad2" }, /turf/open/floor/plating, /area/quartermaster/storage) "aJD" = ( /obj/machinery/conveyor_switch/oneway{ - convdir = 1; id = "QMLoad2"; pixel_x = 6 }, @@ -17753,7 +16867,7 @@ /area/security/courtroom) "aJZ" = ( /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; dir = 8; listening = 0; @@ -17807,7 +16921,7 @@ /obj/structure/chair/office/dark{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_x = -28 @@ -17928,7 +17042,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /obj/item/reagent_containers/glass/bucket, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, @@ -17982,12 +17096,6 @@ /obj/machinery/portable_atmospherics/canister/toxins, /turf/open/floor/plating, /area/engine/engineering) -"aKy" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "aKz" = ( /obj/machinery/door/poddoor{ id = "Secure Storage"; @@ -17995,13 +17103,6 @@ }, /turf/open/floor/plating, /area/engine/engineering) -"aKA" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/engine/engineering) "aKB" = ( /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -18015,75 +17116,35 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/engine/engineering) -"aKD" = ( -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aKE" = ( -/obj/machinery/cryopod{ - tag = "icon-cryopod-open (EAST)"; - icon_state = "cryopod-open"; - dir = 4 - }, -/turf/open/floor/plasteel/vault, -/area/crew_quarters/locker) "aKF" = ( -/obj/machinery/computer/cryopod{ - pixel_y = -24 - }, -/turf/open/floor/plasteel/vault, -/area/crew_quarters/locker) -"aKG" = ( -/obj/machinery/cryopod, -/turf/open/floor/plasteel/vault, -/area/crew_quarters/locker) -"aKH" = ( -/obj/machinery/light, -/obj/machinery/vending/kink, -/turf/open/floor/plasteel/neutral/corner{ - dir = 2 - }, -/area/crew_quarters/locker) -"aKI" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 6 - }, -/area/engine/engineering) -"aKJ" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"aKK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/engine/engineering) -"aKL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"aKM" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ +/obj/effect/turf_decal/stripes/line{ dir = 8 }, -/turf/open/floor/plasteel/yellow/side, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aKG" = ( +/obj/structure/particle_accelerator/end_cap{ + icon_state = "end_cap"; + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aKH" = ( +/obj/structure/particle_accelerator/fuel_chamber{ + icon_state = "fuel_chamber"; + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aKI" = ( +/obj/structure/particle_accelerator/power_box{ + icon_state = "power_box"; + dir = 4 + }, +/turf/open/floor/plating, /area/engine/engineering) "aKN" = ( /obj/machinery/door/poddoor{ @@ -18093,8 +17154,7 @@ }, /obj/machinery/conveyor{ dir = 4; - id = "QMLoad2"; - movedir = 8 + id = "QMLoad2" }, /turf/open/floor/plating, /area/quartermaster/storage) @@ -18102,16 +17162,14 @@ /obj/structure/plasticflaps, /obj/machinery/conveyor{ dir = 4; - id = "QMLoad2"; - movedir = 8 + id = "QMLoad2" }, /turf/open/floor/plating, /area/quartermaster/storage) "aKP" = ( -/obj/machinery/conveyor{ - dir = 1; - id = "QMLoad2"; - movedir = 2 +/obj/machinery/conveyor/inverted{ + dir = 10; + id = "QMLoad2" }, /turf/open/floor/plating, /area/quartermaster/storage) @@ -18249,7 +17307,7 @@ "aLf" = ( /obj/structure/table, /obj/item/clothing/gloves/color/fyellow, -/obj/item/device/gps{ +/obj/item/gps{ gpstag = "AUX0" }, /turf/open/floor/plasteel/brown{ @@ -18320,10 +17378,10 @@ /area/storage/primary) "aLm" = ( /obj/structure/table, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/signaler, -/obj/item/device/multitool, -/obj/item/device/multitool{ +/obj/item/assembly/signaler, +/obj/item/assembly/signaler, +/obj/item/multitool, +/obj/item/multitool{ pixel_x = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -18487,16 +17545,6 @@ }, /turf/open/floor/plasteel/vault, /area/crew_quarters/locker) -"aLI" = ( -/obj/structure/cable/white{ - icon_state = "1-4" - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) "aLJ" = ( /obj/structure/rack, /obj/item/stock_parts/matter_bin, @@ -18514,26 +17562,6 @@ dir = 4 }, /area/crew_quarters/locker) -"aLM" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - name = "External Containment Access"; - req_access_txt = "10; 13" - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) "aLN" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/machinery/portable_atmospherics/pump, @@ -18558,7 +17586,7 @@ "aLP" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/machinery/portable_atmospherics/scrubber, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -18662,12 +17690,6 @@ /obj/effect/landmark/blobstart, /turf/open/floor/plating, /area/engine/engineering) -"aMc" = ( -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "aMd" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable{ @@ -18687,93 +17709,53 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/engine/engineering) -"aMf" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "aMg" = ( -/obj/effect/decal/cleanable/oil, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 }, -/turf/open/floor/plating/airless, /area/engine/engineering) "aMh" = ( -/obj/machinery/light/small, -/turf/open/floor/plating, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engpa"; + name = "Engineering Chamber Shutters" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, /area/engine/engineering) "aMi" = ( -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"aMj" = ( -/obj/structure/cable/white{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/power/emitter{ - anchored = 1; - dir = 1; - icon_state = "emitter"; - state = 2 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"aMk" = ( -/obj/structure/cable/white{ - icon_state = "2-4" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"aMl" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"aMm" = ( -/obj/structure/cable/white{ +/obj/structure/cable{ icon_state = "2-8" }, -/obj/structure/grille, /obj/effect/turf_decal/stripes/line{ - dir = 5 + dir = 8 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/engine/engineering) -"aMn" = ( -/obj/structure/lattice, -/turf/open/space, +"aMk" = ( +/obj/machinery/particle_accelerator/control_box, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/turf/open/floor/plating, /area/engine/engineering) "aMo" = ( -/obj/structure/grille, -/obj/structure/cable/white{ - icon_state = "1-4" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"aMp" = ( -/obj/structure/grille, /obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable/white{ - icon_state = "4-8" + dir = 2 }, /turf/open/floor/plating/airless, -/area/engine/engineering) +/area/space) "aMq" = ( /obj/structure/window/reinforced, /turf/open/space, @@ -18933,7 +17915,7 @@ /area/ai_monitored/turret_protected/ai_upload) "aMJ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -19209,31 +18191,18 @@ /obj/item/stack/sheet/mineral/plasma{ amount = 30 }, -/obj/item/device/gps, +/obj/item/gps, /turf/open/floor/plating, /area/engine/engineering) -"aNp" = ( -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable/white{ - icon_state = "1-8" - }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "aNq" = ( -/obj/structure/cable/white{ - icon_state = "1-8" +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plating/airless, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, /area/engine/engineering) "aNr" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -19242,37 +18211,28 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"aNs" = ( -/obj/structure/cable/white{ - icon_state = "1-4" +"aNu" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Particle Accelerator"; + dir = 1; + network = list("singularity") }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"aNt" = ( -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable/white{ +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable{ icon_state = "1-8" }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"aNu" = ( -/turf/closed/wall/r_wall, -/area/space) -"aNv" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/effect/spawner/lootdrop/maintenance, -/obj/structure/window/reinforced{ - dir = 4 - }, /turf/open/floor/plating, -/area/maintenance/starboard) +/area/engine/engineering) +"aNv" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/engine/engineering) "aNw" = ( /obj/structure/window/reinforced{ dir = 4 @@ -19330,10 +18290,6 @@ /obj/structure/lattice, /turf/open/space, /area/space/nearstation) -"aND" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/pod_1) "aNE" = ( /obj/machinery/button/door{ id = "QMLoaddoor"; @@ -19530,11 +18486,11 @@ /area/storage/primary) "aNY" = ( /obj/structure/table, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = -4; pixel_y = -4 }, -/obj/item/device/assembly/igniter, +/obj/item/assembly/igniter, /obj/item/screwdriver{ pixel_y = 16 }, @@ -19633,7 +18589,7 @@ /turf/open/floor/plasteel/neutral/side, /area/security/courtroom) "aOj" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/neutral/side, /area/security/courtroom) "aOk" = ( @@ -19664,7 +18620,7 @@ /turf/open/floor/plasteel, /area/security/courtroom) "aOn" = ( -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/item/cartridge/lawyer, /obj/structure/table/wood, /obj/machinery/button/door{ @@ -19926,8 +18882,19 @@ }, /area/hydroponics/garden) "aOO" = ( -/turf/open/space, -/area/space/nearstation) +/obj/machinery/power/apc/highcap/ten_k{ + dir = 8; + name = "Engine Room APC"; + areastring = "/area/engine/engineering"; + pixel_x = -26 + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) "aOP" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable{ @@ -19949,13 +18916,12 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"aOR" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/purple/visible{ +"aOS" = ( +/obj/effect/turf_decal/stripes/corner{ dir = 4 }, -/turf/open/space, -/area/space/nearstation) +/turf/open/floor/plating/airless, +/area/space) "aOT" = ( /obj/structure/window/reinforced{ dir = 4 @@ -20003,31 +18969,6 @@ }, /turf/open/space, /area/space/nearstation) -"aOZ" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_1) -"aPa" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/item/device/radio/intercom{ - pixel_x = 25 - }, -/obj/item/storage/pod{ - pixel_x = -26 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_2) -"aPb" = ( -/obj/structure/closet/secure_closet/miner/unlocked, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "aPd" = ( /obj/machinery/light/small{ dir = 1 @@ -20187,7 +19128,7 @@ "aPr" = ( /obj/structure/table, /obj/item/wirecutters, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = 1; pixel_y = 5 }, @@ -20424,7 +19365,7 @@ /turf/open/floor/grass, /area/hydroponics/garden) "aPR" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -20501,20 +19442,27 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engine/engineering) -"aQf" = ( -/obj/structure/chair{ - dir = 4 +"aPZ" = ( +/obj/machinery/vending/tool, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aQd" = ( +/obj/structure/rack, +/obj/machinery/button/door{ + id = "engpa"; + name = "Engineering Chamber Shutters Control"; + pixel_y = 26; + req_access_txt = "11" }, -/obj/machinery/status_display{ - pixel_y = 32 +/obj/item/storage/belt/utility, +/obj/item/weldingtool, +/obj/item/clothing/head/welding, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 }, -/obj/machinery/computer/shuttle/pod{ - pixel_y = -32; - possible_destinations = "pod_lavaland3"; - shuttleId = "pod3" - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_3) +/area/engine/engineering) "aQg" = ( /obj/machinery/door/poddoor{ density = 1; @@ -20536,8 +19484,8 @@ /turf/open/floor/plating, /area/quartermaster/storage) "aQi" = ( -/obj/machinery/conveyor{ - dir = 8; +/obj/machinery/conveyor/inverted{ + dir = 6; id = "QMLoad" }, /turf/open/floor/plating, @@ -20636,7 +19584,7 @@ pixel_x = -4; pixel_y = 7 }, -/obj/item/device/gps{ +/obj/item/gps{ gpstag = "QM0" }, /turf/open/floor/plasteel, @@ -20677,13 +19625,13 @@ /area/storage/primary) "aQy" = ( /obj/structure/table, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 }, /obj/item/clothing/gloves/color/yellow, -/obj/item/device/t_scanner, +/obj/item/t_scanner, /turf/open/floor/plasteel/brown{ dir = 4 }, @@ -20730,7 +19678,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload) "aQC" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; name = "Private AI Channel"; @@ -20958,7 +19906,7 @@ /area/crew_quarters/locker) "aQY" = ( /obj/structure/table, -/obj/item/device/paicard, +/obj/item/paicard, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -21106,6 +20054,27 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) +"aRo" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aRp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "aRq" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -21140,21 +20109,6 @@ "aRA" = ( /turf/closed/wall, /area/hallway/secondary/entry) -"aRB" = ( -/obj/structure/shuttle/engine/propulsion/burst, -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_1) -"aRC" = ( -/obj/machinery/door/airlock/titanium{ - name = "Escape Pod Airlock" - }, -/obj/docking_port/mobile/pod{ - id = "pod1"; - name = "escape pod 1"; - port_direction = 2 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) "aRD" = ( /obj/machinery/light{ dir = 8 @@ -21188,8 +20142,7 @@ "aRH" = ( /obj/machinery/conveyor{ dir = 1; - id = "QMLoad"; - movedir = 2 + id = "QMLoad" }, /turf/open/floor/plating, /area/quartermaster/storage) @@ -21204,7 +20157,7 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 @@ -21234,7 +20187,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -21345,7 +20298,7 @@ /area/hallway/primary/fore) "aRX" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Courtroom"; opacity = 1 }, @@ -21440,7 +20393,7 @@ /obj/item/cultivator, /obj/item/crowbar, /obj/item/reagent_containers/glass/bucket, -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -21476,7 +20429,7 @@ /obj/item/storage/bag/plants/portaseeder, /obj/structure/table, /obj/machinery/light, -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -21572,6 +20525,56 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) +"aSw" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aSx" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aSz" = ( +/obj/item/pen, +/obj/item/storage/belt/utility, +/obj/item/clothing/glasses/meson, +/obj/item/paper_bin{ + layer = 2.9 + }, +/obj/structure/table/glass, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aSA" = ( +/obj/item/book/manual/wiki/engineering_hacking{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/book/manual/wiki/engineering_construction, +/obj/item/clothing/gloves/color/yellow, +/obj/structure/table/glass, +/obj/item/flashlight, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aSB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "aSD" = ( /obj/structure/window/reinforced, /obj/structure/window/reinforced{ @@ -21670,7 +20673,7 @@ /area/maintenance/port/fore) "aSQ" = ( /obj/machinery/conveyor_switch/oneway{ - convdir = 1; + dir = 8; id = "QMLoad"; pixel_x = 6 }, @@ -21871,7 +20874,7 @@ /turf/open/floor/plasteel/dark, /area/security/courtroom) "aTm" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -21968,7 +20971,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -22057,6 +21060,55 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) +"aTG" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aTH" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/light, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"aTI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aTJ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aTK" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "aTQ" = ( /obj/structure/window/reinforced{ dir = 4 @@ -22194,8 +21246,7 @@ }, /obj/machinery/conveyor{ dir = 1; - id = "QMLoad"; - movedir = 2 + id = "QMLoad" }, /turf/open/floor/plating, /area/quartermaster/storage) @@ -22257,7 +21308,7 @@ /obj/item/screwdriver{ pixel_y = 10 }, -/obj/item/device/radio/off, +/obj/item/radio/off, /obj/machinery/light{ dir = 1 }, @@ -22316,7 +21367,7 @@ "aUs" = ( /obj/structure/table, /obj/item/crowbar, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, @@ -22365,7 +21416,7 @@ name = "AI Upload turret control"; pixel_y = 28 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; name = "Private AI Channel"; @@ -22576,6 +21627,28 @@ "aUM" = ( /turf/closed/wall, /area/crew_quarters/locker) +"aUN" = ( +/obj/machinery/cryopod{ + tag = "icon-cryopod-open (EAST)"; + icon_state = "cryopod-open"; + dir = 4 + }, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/locker) +"aUO" = ( +/obj/machinery/computer/cryopod{ + pixel_y = -26 + }, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/locker) +"aUP" = ( +/obj/machinery/cryopod{ + tag = "icon-cryopod-open (WEST)"; + icon_state = "cryopod-open"; + dir = 8 + }, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/locker) "aUQ" = ( /turf/open/floor/plasteel/vault, /area/crew_quarters/locker) @@ -22641,6 +21714,19 @@ /obj/structure/closet/wardrobe/engineering_yellow, /turf/open/floor/plasteel, /area/engine/engineering) +"aUZ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/plasteel{ + dir = 1 + }, +/area/engine/engineering) "aVa" = ( /obj/machinery/requests_console{ announcementConsole = 0; @@ -22669,6 +21755,26 @@ dir = 1 }, /area/engine/engineering) +"aVd" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/closet/secure_closet/engineering_electrical, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"aVe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/engine/engineering) +"aVh" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "aVk" = ( /obj/structure/window/reinforced{ dir = 1; @@ -22748,7 +21854,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "aVv" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -22945,7 +22051,7 @@ /turf/open/floor/plasteel, /area/security/checkpoint/supply) "aVQ" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 @@ -23115,7 +22221,7 @@ /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-16" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -23131,7 +22237,7 @@ icon_state = "1-2" }, /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Courtroom"; opacity = 1 }, @@ -23295,6 +22401,16 @@ dir = 1 }, /area/engine/engineering) +"aWK" = ( +/obj/structure/cable/white{ + icon_state = "2-4" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "aWL" = ( /obj/machinery/ai_status_display{ pixel_x = -32 @@ -23736,7 +22852,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -24036,8 +23152,8 @@ pixel_y = -1 }, /obj/item/clothing/gloves/color/yellow, -/obj/item/device/t_scanner, -/obj/item/device/multitool, +/obj/item/t_scanner, +/obj/item/multitool, /turf/open/floor/plasteel/dark, /area/storage/tech) "aYj" = ( @@ -24085,20 +23201,20 @@ /area/storage/tech) "aYm" = ( /obj/structure/table, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = 1; pixel_y = 5 }, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = 1; pixel_y = 5 }, /obj/machinery/light/small{ dir = 1 }, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/radio/intercom{ +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -24108,12 +23224,12 @@ /area/storage/tech) "aYn" = ( /obj/structure/table, -/obj/item/device/aicard, +/obj/item/aicard, /obj/item/aiModule/reset, /turf/open/floor/plasteel/dark, /area/storage/tech) "aYo" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -24175,7 +23291,7 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aYt" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -24189,6 +23305,16 @@ "aYu" = ( /turf/closed/wall, /area/security/checkpoint/engineering) +"aYx" = ( +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "aYy" = ( /obj/machinery/camera{ c_tag = "AI Chamber - Port"; @@ -24704,7 +23830,7 @@ /area/crew_quarters/heads/chief) "aZD" = ( /obj/structure/table/reinforced, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/neutral/corner{ dir = 2 }, @@ -24797,7 +23923,7 @@ /area/security/checkpoint/engineering) "aZM" = ( /obj/structure/table, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_y = 29 @@ -24832,7 +23958,7 @@ /area/library) "aZQ" = ( /obj/effect/landmark/start/ai/secondary, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; freerange = 1; listening = 0; @@ -24840,14 +23966,14 @@ pixel_x = -10; pixel_y = 22 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 1; listening = 1; name = "Common Channel"; pixel_x = -27 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; broadcasting = 0; freerange = 1; @@ -24934,7 +24060,7 @@ /area/ai_monitored/turret_protected/ai) "aZY" = ( /obj/effect/landmark/start/ai/secondary, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; freerange = 1; listening = 0; @@ -24942,14 +24068,14 @@ pixel_x = 10; pixel_y = 22 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 1; listening = 1; name = "Common Channel"; pixel_x = 27 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; broadcasting = 0; freerange = 1; @@ -25068,7 +24194,7 @@ /turf/open/floor/plating, /area/maintenance/port/fore) "bal" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -25131,7 +24257,7 @@ }, /obj/item/stack/wrapping_paper, /obj/item/stack/wrapping_paper, -/obj/item/device/destTagger{ +/obj/item/destTagger{ pixel_x = 4; pixel_y = 3 }, @@ -25528,7 +24654,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -25592,7 +24718,7 @@ /area/storage/tools) "bbf" = ( /obj/structure/closet/toolcloset, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -25652,7 +24778,7 @@ c_tag = "Secure Tech Storage"; dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -25847,7 +24973,7 @@ /obj/item/screwdriver{ pixel_y = 10 }, -/obj/item/device/radio/off, +/obj/item/radio/off, /obj/machinery/computer/security/telescreen{ dir = 4; name = "MiniSat Monitor"; @@ -26071,7 +25197,7 @@ /area/hallway/primary/port) "bcb" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -26151,7 +25277,7 @@ }, /obj/item/clothing/gloves/color/fyellow, /obj/item/clothing/suit/hazardvest, -/obj/item/device/multitool, +/obj/item/multitool, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plasteel/yellow/side{ dir = 8 @@ -26278,7 +25404,7 @@ pixel_y = 16 }, /obj/item/wirecutters, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -26473,7 +25599,7 @@ }, /area/security/checkpoint/customs) "bcZ" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20 @@ -26766,11 +25892,11 @@ /area/maintenance/central) "bdH" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = -27 @@ -26932,7 +26058,7 @@ /area/storage/tech) "bea" = ( /obj/structure/table, -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /obj/machinery/firealarm{ dir = 1; pixel_y = -24 @@ -26941,8 +26067,8 @@ /area/storage/tech) "beb" = ( /obj/structure/table, -/obj/item/device/analyzer, -/obj/item/device/healthanalyzer, +/obj/item/analyzer, +/obj/item/healthanalyzer, /obj/machinery/camera/autoname{ dir = 1 }, @@ -26954,7 +26080,7 @@ pixel_x = 1; pixel_y = -1 }, -/obj/item/device/multitool, +/obj/item/multitool, /obj/item/clothing/glasses/meson, /obj/machinery/light_switch{ pixel_y = -28 @@ -26989,7 +26115,7 @@ /obj/structure/disposalpipe/trunk{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -27506,7 +26632,7 @@ /turf/open/floor/plating, /area/maintenance/central) "bfp" = ( -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = 1; pixel_y = 5 }, @@ -27835,15 +26961,6 @@ }, /turf/open/floor/plating, /area/engine/break_room) -"bga" = ( -/obj/structure/shuttle/engine/propulsion/burst{ - dir = 8 - }, -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_4) -"bgb" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_4) "bgc" = ( /obj/machinery/door/airlock/hatch{ name = "MiniSat Space Access Airlock"; @@ -27937,7 +27054,7 @@ pixel_x = 5; pixel_y = -1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; listening = 0; @@ -27983,8 +27100,8 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/closet, /obj/item/crowbar, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/radio, +/obj/item/assembly/flash/handheld, +/obj/item/radio, /turf/open/floor/plasteel/red/side{ dir = 10 }, @@ -28505,10 +27622,10 @@ /obj/item/storage/photo_album{ pixel_y = -4 }, -/obj/item/device/camera{ +/obj/item/camera{ pixel_y = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; freerange = 1; name = "Station Intercom (Captain)"; @@ -28845,7 +27962,7 @@ }, /area/engine/break_room) "bia" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -28898,33 +28015,6 @@ "bif" = ( /turf/open/floor/plating, /area/engine/break_room) -"big" = ( -/obj/machinery/door/airlock/titanium{ - name = "Escape Pod Airlock" - }, -/obj/docking_port/mobile/pod{ - dir = 4; - id = "pod4"; - name = "escape pod 4"; - port_direction = 2; - preferred_direction = 4 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_4) -"bih" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/item/device/radio/intercom{ - pixel_y = 25 - }, -/obj/item/storage/pod{ - pixel_x = 6; - pixel_y = -32 - }, -/obj/machinery/light/small, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_3) "bii" = ( /obj/docking_port/stationary/random{ dir = 4; @@ -28933,10 +28023,6 @@ }, /turf/open/space, /area/space/nearstation) -"bij" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/pod_4) "bik" = ( /obj/machinery/light/small, /obj/machinery/camera{ @@ -29107,7 +28193,7 @@ /area/quartermaster/sorting) "biE" = ( /obj/machinery/conveyor_switch/oneway{ - convdir = -1; + dir = 8; id = "packageExternal"; pixel_y = 18 }, @@ -29141,7 +28227,7 @@ /area/quartermaster/sorting) "biJ" = ( /obj/structure/table, -/obj/item/device/destTagger{ +/obj/item/destTagger{ pixel_x = 4; pixel_y = 3 }, @@ -29157,7 +28243,7 @@ /obj/item/clipboard, /obj/item/folder/yellow, /obj/item/folder/yellow, -/obj/item/device/multitool, +/obj/item/multitool, /obj/item/pen/red, /turf/open/floor/plasteel/brown{ dir = 8 @@ -29239,7 +28325,7 @@ dir = 1 }, /obj/machinery/light/small, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = -28 @@ -29347,7 +28433,7 @@ /area/crew_quarters/heads/captain/private) "bjh" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -29774,7 +28860,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -29873,7 +28959,7 @@ /area/quartermaster/sorting) "bkk" = ( /obj/structure/filingcabinet/filingcabinet, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -29993,7 +29079,7 @@ /obj/machinery/newscaster{ pixel_x = 28 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -30066,8 +29152,8 @@ /area/hallway/primary/port) "bkw" = ( /obj/structure/table, -/obj/item/device/toner, -/obj/item/device/radio/intercom{ +/obj/item/toner, +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -30117,7 +29203,7 @@ }, /area/bridge) "bkD" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 29 @@ -30141,7 +29227,7 @@ }, /area/bridge) "bkF" = ( -/obj/item/device/beacon, +/obj/item/beacon, /obj/structure/cable/yellow{ icon_state = "1-2" }, @@ -30334,7 +29420,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -30633,7 +29719,7 @@ pixel_x = -26; pixel_y = 3 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; listening = 0; @@ -30896,7 +29982,7 @@ }, /area/hallway/primary/central) "bmo" = ( -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -30943,7 +30029,7 @@ /turf/open/floor/plating, /area/maintenance/central) "bmt" = ( -/obj/item/device/radio/off, +/obj/item/radio/off, /obj/effect/turf_decal/stripes/line{ dir = 4 }, @@ -31302,7 +30388,7 @@ /area/engine/break_room) "bnd" = ( /obj/structure/table/glass, -/obj/item/device/lightreplacer{ +/obj/item/lightreplacer{ pixel_y = 7 }, /obj/item/storage/belt/utility, @@ -31341,7 +30427,7 @@ pixel_x = -3; pixel_y = 5 }, -/obj/item/device/taperecorder{ +/obj/item/taperecorder{ pixel_x = -4 }, /turf/open/floor/plasteel, @@ -31672,7 +30758,7 @@ /area/hallway/secondary/entry) "bnN" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -31819,7 +30905,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -31914,7 +31000,7 @@ icon_state = "4-8" }, /obj/structure/table/wood, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/wood, /area/crew_quarters/heads/hop) "bon" = ( @@ -32074,7 +31160,7 @@ /obj/machinery/computer/communications{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; freerange = 1; name = "Station Intercom (Captain)"; @@ -32097,7 +31183,7 @@ /area/crew_quarters/heads/captain/private) "boJ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_x = -28 @@ -32573,7 +31659,7 @@ icon_state = "4-8" }, /obj/machinery/holopad, -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat/foyer) "bpL" = ( @@ -33048,7 +32134,7 @@ /obj/machinery/vending/cart{ req_access_txt = "57" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -33101,8 +32187,8 @@ /area/bridge) "bqK" = ( /obj/structure/rack, -/obj/item/device/aicard, -/obj/item/device/radio/off, +/obj/item/aicard, +/obj/item/radio/off, /obj/machinery/computer/security/telescreen{ dir = 1; name = "MiniSat Monitor"; @@ -33148,16 +32234,16 @@ /turf/open/floor/plasteel/dark, /area/bridge) "bqP" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_y = -29 }, /obj/structure/rack, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/timer, +/obj/item/assembly/signaler, +/obj/item/assembly/signaler, +/obj/item/assembly/timer, /turf/open/floor/plasteel/darkblue/side{ dir = 1 }, @@ -33171,7 +32257,7 @@ pixel_y = -3 }, /obj/item/wrench, -/obj/item/device/multitool, +/obj/item/multitool, /obj/machinery/newscaster{ pixel_y = -30 }, @@ -33368,7 +32454,7 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -33463,7 +32549,7 @@ }, /area/maintenance/starboard) "brs" = ( -/obj/item/device/assembly/prox_sensor, +/obj/item/assembly/prox_sensor, /obj/structure/cable/yellow{ icon_state = "4-8" }, @@ -33813,7 +32899,7 @@ /area/aisat) "brW" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -28 }, @@ -33946,7 +33032,7 @@ /area/ai_monitored/storage/satellite) "bsh" = ( /obj/structure/table, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -28 }, @@ -33974,7 +33060,7 @@ pixel_y = 3 }, /obj/item/storage/toolbox/mechanical, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plasteel/dark, /area/ai_monitored/storage/satellite) "bsj" = ( @@ -33999,7 +33085,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bsm" = ( -/obj/item/device/beacon, +/obj/item/beacon, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/hallway/secondary/entry) @@ -34080,7 +33166,7 @@ }, /area/hallway/primary/port) "bsw" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -34441,7 +33527,7 @@ /obj/structure/table/wood, /obj/item/hand_tele, /obj/structure/window/reinforced, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = 27 @@ -34521,12 +33607,12 @@ /area/storage/art) "btm" = ( /obj/structure/table, -/obj/item/device/camera, +/obj/item/camera, /turf/open/floor/plasteel, /area/storage/art) "btn" = ( /obj/structure/table, -/obj/item/device/camera_film, +/obj/item/camera_film, /obj/machinery/firealarm{ dir = 4; pixel_x = 28 @@ -34670,7 +33756,7 @@ /turf/open/floor/plasteel, /area/engine/break_room) "btE" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -35106,7 +34192,7 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = -26 @@ -35325,7 +34411,7 @@ }, /area/maintenance/starboard) "bvf" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 1; listening = 1; @@ -35333,14 +34419,14 @@ pixel_x = -27; pixel_y = -7 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_y = -27 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; broadcasting = 0; freerange = 1; @@ -35435,7 +34521,7 @@ /obj/structure/table/glass, /obj/item/wrench, /obj/item/crowbar, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = 1; pixel_y = 5 }, @@ -35494,7 +34580,7 @@ /obj/machinery/light/small{ dir = 8 }, -/obj/item/device/radio/off{ +/obj/item/radio/off{ pixel_y = 4 }, /obj/item/screwdriver{ @@ -35542,14 +34628,14 @@ /obj/machinery/ai_status_display{ pixel_y = 31 }, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/grimy, /area/tcommsat/computer) "bvA" = ( /obj/machinery/light/small{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; freerange = 1; name = "Station Intercom (Telecomms)"; @@ -35773,7 +34859,7 @@ pixel_x = -32 }, /obj/effect/decal/cleanable/cobweb, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -35799,7 +34885,7 @@ /area/library) "bwf" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -35938,7 +35024,7 @@ /area/bridge) "bws" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -35949,7 +35035,7 @@ /obj/item/book/manual/wiki/security_space_law{ pixel_y = 3 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 28 @@ -36237,7 +35323,7 @@ /turf/open/floor/wood, /area/crew_quarters/bar) "bwU" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -36546,7 +35632,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -36789,7 +35875,7 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = -26 @@ -37094,7 +36180,7 @@ /area/ai_monitored/storage/satellite) "byP" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/caution{ dir = 8 }, @@ -37105,7 +36191,7 @@ }, /area/hallway/primary/starboard) "byR" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -37255,8 +36341,7 @@ }, /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "Distro to Waste"; - on = 0 + name = "Distro to Waste" }, /turf/open/floor/plasteel/caution{ dir = 1 @@ -37479,7 +36564,7 @@ /area/security/vacantoffice) "bzz" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/centcom/abandoned{ +/obj/machinery/door/airlock/grunge/abandoned{ name = "Vacant Office"; opacity = 1; req_access_txt = "32" @@ -37569,7 +36654,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/command) "bzM" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -37589,7 +36674,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/command) "bzO" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -37744,7 +36829,7 @@ /turf/open/floor/carpet, /area/crew_quarters/heads/captain/private) "bAf" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = -26 @@ -38180,7 +37265,7 @@ /area/security/vacantoffice) "bBi" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/wood, /area/security/vacantoffice) "bBj" = ( @@ -38191,10 +37276,10 @@ /area/maintenance/starboard) "bBk" = ( /obj/structure/table/wood, -/obj/item/device/camera_film{ +/obj/item/camera_film{ pixel_y = 9 }, -/obj/item/device/camera_film{ +/obj/item/camera_film{ pixel_x = -3; pixel_y = 5 }, @@ -38244,7 +37329,7 @@ /area/crew_quarters/toilet/auxiliary) "bBq" = ( /obj/structure/rack, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port) @@ -38710,9 +37795,9 @@ "bCn" = ( /obj/structure/table, /obj/item/storage/belt/utility, -/obj/item/device/t_scanner, -/obj/item/device/t_scanner, -/obj/item/device/t_scanner, +/obj/item/t_scanner, +/obj/item/t_scanner, +/obj/item/t_scanner, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -38748,10 +37833,9 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bCr" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 0; - name = "Waste to Filter"; - on = 1 + name = "Waste to Filter" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -38799,6 +37883,13 @@ }, /turf/open/floor/plating, /area/engine/atmos) +"bCz" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 4 + }, +/turf/open/space, +/area/space/nearstation) "bCA" = ( /obj/machinery/meter, /obj/machinery/atmospherics/pipe/simple/yellow/visible{ @@ -39045,7 +38136,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -39167,7 +38258,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -39286,7 +38377,7 @@ /area/crew_quarters/bar) "bDG" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Club"; opacity = 1 }, @@ -39407,10 +38498,9 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bDX" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 8; - name = "Mix to Filter"; - on = 1 + name = "Mix to Filter" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -40147,7 +39237,7 @@ dir = 4 }, /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Club"; opacity = 1 }, @@ -40630,7 +39720,7 @@ /turf/open/floor/wood, /area/library) "bGv" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)" }, @@ -41258,7 +40348,7 @@ /area/library) "bHT" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -41340,7 +40430,7 @@ "bIe" = ( /obj/structure/table, /obj/item/hand_tele, -/obj/item/device/beacon, +/obj/item/beacon, /obj/machinery/airalarm{ dir = 4; pixel_x = -23 @@ -41489,7 +40579,7 @@ /obj/item/stack/sheet/metal/fifty, /obj/item/stack/rods/fifty, /obj/item/storage/toolbox/emergency, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/machinery/power/apc/highcap/five_k{ dir = 4; name = "Gateway APC"; @@ -41543,7 +40633,7 @@ /turf/open/floor/plasteel/bar, /area/crew_quarters/bar) "bIu" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -41696,10 +40786,9 @@ }, /area/engine/atmos) "bIO" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 8; - name = "Air to External Air Ports"; - on = 1 + name = "Air to External Air Ports" }, /turf/open/floor/plasteel/caution{ dir = 8 @@ -41927,7 +41016,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -42024,11 +41113,11 @@ /obj/structure/table, /obj/item/storage/belt/utility, /obj/item/storage/belt/utility, -/obj/item/device/radio/off, -/obj/item/device/radio/off, -/obj/item/device/radio/off, -/obj/item/device/radio/off, -/obj/item/device/multitool, +/obj/item/radio/off, +/obj/item/radio/off, +/obj/item/radio/off, +/obj/item/radio/off, +/obj/item/multitool, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "bJG" = ( @@ -42096,7 +41185,7 @@ }, /obj/item/stack/sheet/metal/fifty, /obj/item/storage/toolbox/emergency, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/structure/window/reinforced, /obj/structure/cable/yellow{ icon_state = "4-8" @@ -42146,7 +41235,7 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/neutral/side{ dir = 2 }, @@ -42430,10 +41519,9 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "bKv" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; - name = "External Waste Ports to Filter"; - on = 1 + name = "External Waste Ports to Filter" }, /obj/machinery/airalarm{ dir = 4; @@ -42459,7 +41547,7 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bKy" = ( -/obj/item/device/beacon, +/obj/item/beacon, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 }, @@ -42474,16 +41562,14 @@ "bKA" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 0; - name = "Air to Ports"; - on = 0 + name = "Air to Ports" }, /turf/open/floor/plasteel, /area/engine/atmos) "bKB" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 0; - name = "Mix to Ports"; - on = 0 + name = "Mix to Ports" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -43176,7 +42262,7 @@ /area/engine/atmos) "bMe" = ( /obj/structure/reagent_dispensers/fueltank, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -43335,7 +42421,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -43500,8 +42586,8 @@ dir = 1 }, /obj/structure/table/wood, -/obj/item/device/taperecorder, -/obj/item/device/tape, +/obj/item/taperecorder, +/obj/item/tape, /turf/open/floor/wood, /area/library) "bMN" = ( @@ -43674,7 +42760,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -43784,7 +42870,7 @@ /obj/machinery/light{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = 29 @@ -43832,7 +42918,7 @@ /area/maintenance/central) "bNt" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_x = -28 @@ -44050,8 +43136,7 @@ }, /obj/machinery/atmospherics/components/binary/pump{ dir = 0; - name = "Port Mix to West Ports"; - on = 0 + name = "Port Mix to West Ports" }, /obj/machinery/light/small{ dir = 8 @@ -44175,7 +43260,7 @@ /area/maintenance/port) "bOk" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Quiet Room"; opacity = 1 }, @@ -44184,7 +43269,7 @@ /area/library) "bOl" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Quiet Room"; opacity = 1 }, @@ -44895,7 +43980,7 @@ /area/library) "bPT" = ( /obj/structure/table/wood, -/obj/item/device/paicard, +/obj/item/paicard, /turf/open/floor/wood, /area/library) "bPU" = ( @@ -45343,10 +44428,7 @@ /turf/closed/wall, /area/engine/atmos) "bQU" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - filter_type = -1; - on = 1 - }, +/obj/machinery/atmospherics/components/trinary/filter/atmos, /turf/open/floor/plasteel, /area/engine/atmos) "bQV" = ( @@ -45454,9 +44536,9 @@ /turf/open/floor/engine/cult, /area/library) "bRm" = ( -/obj/item/device/taperecorder, -/obj/item/device/camera, -/obj/item/device/radio/intercom{ +/obj/item/taperecorder, +/obj/item/camera, +/obj/item/radio/intercom{ pixel_y = -25 }, /obj/structure/table/wood, @@ -45470,7 +44552,7 @@ /area/library) "bRo" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 @@ -45729,9 +44811,9 @@ /area/gateway) "bRK" = ( /obj/item/storage/belt/utility, -/obj/item/device/radio/off, -/obj/item/device/radio/off, -/obj/item/device/radio/off, +/obj/item/radio/off, +/obj/item/radio/off, +/obj/item/radio/off, /obj/structure/rack, /obj/machinery/button/door{ id = "gateshutter"; @@ -45903,7 +44985,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -46190,7 +45272,7 @@ "bSC" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 @@ -46500,8 +45582,7 @@ "bTk" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 0; - name = "Port to Filter"; - on = 0 + name = "Port to Filter" }, /obj/machinery/light/small{ dir = 8 @@ -46542,6 +45623,9 @@ /obj/structure/sign/warning/electricshock, /turf/closed/wall, /area/maintenance/solars/port/aft) +"bTq" = ( +/turf/open/floor/plating/airless, +/area/engine/engineering) "bTr" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/airlock/maintenance/abandoned{ @@ -46725,7 +45809,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -46852,7 +45936,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -47114,6 +46198,14 @@ icon_state = "panelscorched" }, /area/maintenance/starboard) +"bUw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/engine/engineering) "bUx" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 @@ -47153,7 +46245,7 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bUC" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -47168,8 +46260,7 @@ "bUD" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "Port to Filter"; - on = 0 + name = "Port to Filter" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -47759,7 +46850,7 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 @@ -48426,8 +47517,7 @@ }, /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "Fuel Pipe to Filter"; - on = 0 + name = "Fuel Pipe to Filter" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -48553,7 +47643,7 @@ /area/maintenance/port) "bXy" = ( /obj/structure/closet, -/obj/item/device/flashlight, +/obj/item/flashlight, /turf/open/floor/plating, /area/maintenance/port/aft) "bXz" = ( @@ -48568,7 +47658,7 @@ /area/maintenance/port/aft) "bXA" = ( /obj/structure/table, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plating, /area/maintenance/port/aft) "bXB" = ( @@ -48611,7 +47701,7 @@ "bXH" = ( /obj/structure/closet/crate, /obj/item/coin/silver, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port) @@ -48889,9 +47979,9 @@ /obj/structure/rack, /obj/item/tank/internals/oxygen, /obj/item/tank/internals/oxygen, -/obj/item/device/radio/off, -/obj/item/device/radio/off, -/obj/item/device/radio/intercom{ +/obj/item/radio/off, +/obj/item/radio/off, +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = 27 @@ -48962,20 +48052,15 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bYy" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; - name = "N2 to Airmix"; - on = 1 + name = "N2 to Airmix" }, /turf/open/floor/plasteel, /area/engine/atmos) "bYz" = ( -/obj/machinery/atmospherics/components/trinary/mixer{ - dir = 4; - node1_concentration = 0.8; - node2_concentration = 0.2; - on = 1; - target_pressure = 4500 +/obj/machinery/atmospherics/components/trinary/mixer/airmix{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -49158,7 +48243,7 @@ }, /area/medical/storage) "bYV" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; freerange = 0; frequency = 1485; @@ -49247,7 +48332,7 @@ /obj/item/screwdriver{ pixel_y = 10 }, -/obj/item/device/radio/off, +/obj/item/radio/off, /turf/open/floor/plasteel/red/side{ dir = 5 }, @@ -49402,7 +48487,7 @@ "bZs" = ( /obj/item/cultivator, /obj/item/crowbar, -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /obj/item/reagent_containers/glass/bucket, /obj/structure/table/glass, /turf/open/floor/plasteel/hydrofloor, @@ -49496,7 +48581,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 5 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -49884,14 +48969,14 @@ "caz" = ( /obj/structure/table, /obj/item/stack/cable_coil, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = -4; pixel_y = -4 }, /obj/item/screwdriver{ pixel_y = 16 }, -/obj/item/device/gps{ +/obj/item/gps{ gpstag = "RD0" }, /turf/open/floor/plasteel/whitepurple/side{ @@ -49902,7 +48987,7 @@ /obj/structure/table, /obj/item/stack/sheet/glass, /obj/item/electronics/airlock, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = -4; pixel_y = 2 }, @@ -50255,10 +49340,8 @@ /turf/open/floor/plasteel/dark, /area/engine/atmos) "cbd" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4; - filter_type = "n2"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ + dir = 4 }, /obj/structure/window/reinforced, /turf/open/floor/plasteel/red, @@ -50276,10 +49359,9 @@ /area/engine/atmos) "cbf" = ( /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 1; - name = "Nitrogen Outlet"; - on = 1 + name = "Nitrogen Outlet" }, /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 @@ -50306,10 +49388,8 @@ /area/engine/atmos) "cbh" = ( /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4; - filter_type = "o2"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ + dir = 4 }, /turf/open/floor/plasteel/blue, /area/engine/atmos) @@ -50325,10 +49405,9 @@ /area/engine/atmos) "cbj" = ( /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 1; - name = "O2 to Airmix"; - on = 1 + name = "O2 to Airmix" }, /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 @@ -50478,7 +49557,7 @@ "cbz" = ( /obj/structure/rack, /obj/item/stack/sheet/cardboard, -/obj/item/device/radio/off, +/obj/item/radio/off, /obj/structure/light_construct{ dir = 1 }, @@ -50662,7 +49741,7 @@ network = list("medbay"); pixel_y = -29 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = -27; @@ -50816,7 +49895,7 @@ /obj/item/screwdriver{ pixel_y = 10 }, -/obj/item/device/radio/off, +/obj/item/radio/off, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 }, @@ -50856,7 +49935,7 @@ pixel_y = 12 }, /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -50877,7 +49956,7 @@ c_tag = "Hydroponics - Foyer"; dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = -25 }, /turf/open/floor/plasteel/vault, @@ -50910,7 +49989,7 @@ /area/hydroponics) "ccu" = ( /obj/machinery/hydroponics/constructable, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -50964,13 +50043,10 @@ /turf/open/floor/plasteel, /area/hydroponics) "ccz" = ( -/obj/item/wrench, -/obj/item/clothing/suit/apron, -/obj/item/clothing/accessory/armband/hydro, -/obj/structure/table/glass, /obj/effect/turf_decal/stripes/line{ - dir = 9 + dir = 1 }, +/obj/machinery/smartfridge/disks, /turf/open/floor/plasteel, /area/hydroponics) "ccA" = ( @@ -51646,7 +50722,7 @@ }, /area/maintenance/starboard) "cdW" = ( -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/machinery/light/small{ dir = 4 }, @@ -51731,8 +50807,7 @@ }, /obj/machinery/atmospherics/components/binary/pump{ dir = 2; - name = "Fuel Pipe to Incinerator"; - on = 0 + name = "Fuel Pipe to Incinerator" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -51823,7 +50898,7 @@ pixel_y = -3 }, /obj/item/wrench, -/obj/item/device/flashlight/seclite, +/obj/item/flashlight/seclite, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -51979,7 +51054,7 @@ /area/medical/medbay/central) "ceF" = ( /obj/structure/bed/roller, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 0; frequency = 1485; @@ -52087,7 +51162,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -52144,7 +51219,7 @@ /turf/open/floor/plasteel, /area/security/checkpoint/science/research) "ceX" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 @@ -53245,7 +52320,7 @@ /obj/item/crowbar, /obj/item/wrench, /obj/item/clothing/mask/gas, -/obj/item/device/multitool{ +/obj/item/multitool{ pixel_x = 3 }, /obj/effect/turf_decal/stripes/line{ @@ -53338,7 +52413,7 @@ pixel_y = 32 }, /obj/structure/table/glass, -/obj/item/device/radio/off, +/obj/item/radio/off, /turf/open/floor/plasteel/cafeteria{ dir = 5 }, @@ -53387,7 +52462,7 @@ /turf/open/floor/plasteel/dark, /area/aisat) "chA" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = 25 }, /turf/open/floor/engine, @@ -53430,7 +52505,7 @@ /area/maintenance/starboard) "chF" = ( /obj/structure/closet, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/spawner/lootdrop/maintenance, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -53440,7 +52515,7 @@ "chG" = ( /obj/structure/reagent_dispensers/fueltank, /obj/item/storage/toolbox/emergency, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -54022,7 +53097,7 @@ /turf/open/floor/engine, /area/science/explab) "ciT" = ( -/obj/item/device/beacon, +/obj/item/beacon, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, @@ -54079,6 +53154,18 @@ icon_state = "1-2" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/embedded_controller/radio/airlock_controller{ + airpump_tag = "incinerator_airlock_pump"; + exterior_door_tag = "incinerator_airlock_exterior"; + id_tag = "incinerator_airlock_control"; + interior_door_tag = "incinerator_airlock_interior"; + name = "Incinerator Access Console"; + pixel_x = 40; + pixel_y = 8; + req_access_txt = "12"; + sanitize_external = 1; + sensor_tag = "incinerator_airlock_sensor" + }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "cjb" = ( @@ -54271,7 +53358,7 @@ /area/medical/surgery) "cjE" = ( /obj/structure/bed/roller, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; freerange = 0; frequency = 1485; @@ -54452,35 +53539,35 @@ }, /area/medical/chemistry) "cjW" = ( -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = -3; pixel_y = 3 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = -3; pixel_y = 3 }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = 3; pixel_y = -7 }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = 3; pixel_y = -7 }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = 3; pixel_y = -7 }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = 3; pixel_y = -7 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = -3; pixel_y = 3 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = -3; pixel_y = 3 }, @@ -54615,7 +53702,7 @@ }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/landmark/blobstart, /turf/open/floor/plating, /area/maintenance/starboard/aft) @@ -54661,7 +53748,7 @@ /area/science/research) "ckq" = ( /obj/machinery/vending/coffee, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -54700,7 +53787,7 @@ "ckv" = ( /obj/structure/closet/crate, /obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/item/device/assembly/infra, +/obj/item/assembly/infra, /obj/effect/spawner/lootdrop/maintenance, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, @@ -54782,9 +53869,8 @@ /obj/structure/sign/warning/fire{ pixel_x = -32 }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1 }, /obj/machinery/airlock_sensor{ id_tag = "incinerator_airlock_sensor"; @@ -54815,9 +53901,8 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 2; - on = 1 +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 2 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -55034,7 +54119,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "clm" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; freerange = 0; frequency = 1485; @@ -55140,7 +54225,7 @@ pixel_x = -2; pixel_y = 6 }, -/obj/item/device/radio/headset/headset_med, +/obj/item/radio/headset/headset_med, /obj/structure/extinguisher_cabinet{ pixel_x = 24 }, @@ -55254,7 +54339,7 @@ /obj/machinery/shower{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_y = -28 @@ -55665,7 +54750,7 @@ }, /area/hallway/primary/aft) "cmF" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_x = -28 @@ -55809,7 +54894,7 @@ /obj/item/stack/packageWrap, /obj/item/stack/packageWrap, /obj/item/stack/packageWrap, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 2 @@ -55856,7 +54941,7 @@ pixel_y = 6 }, /obj/item/stack/medical/ointment, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /obj/effect/turf_decal/stripes/line{ dir = 2 }, @@ -55920,10 +55005,7 @@ /area/maintenance/disposal/incinerator) "cne" = ( /obj/machinery/igniter{ - icon_state = "igniter0"; - id = "Incinerator"; - luminosity = 2; - on = 0 + id = "Incinerator" }, /obj/structure/cable{ icon_state = "1-2" @@ -55951,7 +55033,7 @@ /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "cnh" = ( -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/structure/table/wood, /turf/open/floor/wood, /area/maintenance/port/aft) @@ -56039,7 +55121,7 @@ /area/medical/surgery) "cnt" = ( /obj/structure/table/reinforced, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; freerange = 0; frequency = 1485; @@ -56229,7 +55311,7 @@ pixel_y = 4 }, /obj/item/clothing/glasses/science, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_x = -28 @@ -56472,7 +55554,7 @@ }, /area/science/research) "cog" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -56558,7 +55640,7 @@ /obj/item/clothing/mask/gas, /obj/item/clothing/mask/gas, /obj/item/clothing/glasses/science, -/obj/item/device/multitool{ +/obj/item/multitool{ pixel_x = 3 }, /turf/open/floor/plasteel/white, @@ -57346,6 +56428,24 @@ icon_state = "wood-broken7" }, /area/maintenance/port/aft) +"cpR" = ( +/obj/machinery/button/door{ + id = "engpa"; + name = "Engineering Chamber Shutters Control"; + pixel_y = -26; + req_access_txt = "11" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) "cpS" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -57916,7 +57016,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -58127,7 +57227,7 @@ /obj/machinery/atmospherics/components/unary/thermomachine/freezer{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; freerange = 0; frequency = 1485; @@ -58263,7 +57363,7 @@ /area/maintenance/aft) "crF" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -58560,7 +57660,7 @@ }, /area/medical/surgery) "csn" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; freerange = 0; frequency = 1485; @@ -58759,7 +57859,7 @@ network = list("medbay"); pixel_x = 29 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 1; name = "Station Intercom (General)"; pixel_y = -29 @@ -59540,7 +58640,7 @@ /obj/structure/closet, /obj/item/extinguisher, /obj/effect/decal/cleanable/cobweb, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -59558,7 +58658,7 @@ /obj/structure/closet/crate, /obj/item/stack/cable_coil, /obj/item/grenade/chem_grenade, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/spawner/lootdrop/maintenance{ lootcount = 2; name = "2maintenance loot spawner" @@ -59681,7 +58781,7 @@ pixel_y = 3 }, /obj/item/storage/box/bodybags, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -59711,12 +58811,12 @@ dir = 1 }, /obj/item/storage/box/monkeycubes, -/obj/item/device/radio/headset/headset_medsci, -/obj/item/device/flashlight/pen{ +/obj/item/radio/headset/headset_medsci, +/obj/item/flashlight/pen{ pixel_x = 4; pixel_y = 3 }, -/obj/item/device/flashlight/pen{ +/obj/item/flashlight/pen{ pixel_x = 4; pixel_y = 3 }, @@ -59920,7 +59020,7 @@ /area/crew_quarters/heads/hor) "cuP" = ( /obj/structure/table, -/obj/item/device/aicard, +/obj/item/aicard, /obj/item/circuitboard/aicore{ pixel_x = -2; pixel_y = 4 @@ -59936,10 +59036,10 @@ /area/crew_quarters/heads/hor) "cuR" = ( /obj/structure/table, -/obj/item/device/taperecorder{ +/obj/item/taperecorder{ pixel_x = -3 }, -/obj/item/device/paicard{ +/obj/item/paicard{ pixel_x = 4 }, /obj/item/storage/secure/briefcase, @@ -60074,7 +59174,7 @@ /obj/structure/closet/crate, /obj/item/crowbar/red, /obj/item/pen, -/obj/item/device/flashlight/pen{ +/obj/item/flashlight/pen{ pixel_x = 4; pixel_y = 3 }, @@ -60176,7 +59276,7 @@ /obj/machinery/clonepod{ pixel_y = 2 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -60458,7 +59558,7 @@ /area/science/storage) "cvY" = ( /obj/machinery/portable_atmospherics/canister/toxins, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -60549,7 +59649,7 @@ "cwn" = ( /obj/structure/rack, /obj/item/clothing/glasses/sunglasses, -/obj/item/device/flashlight/pen, +/obj/item/flashlight/pen, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -60722,7 +59822,7 @@ pixel_x = 2; pixel_y = 2 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -60788,7 +59888,7 @@ /area/science/robotics/mechbay) "cwJ" = ( /obj/machinery/computer/mech_bay_power_console, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -60927,7 +60027,7 @@ dir = 8; pixel_x = 24 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -61277,7 +60377,7 @@ /turf/open/floor/plating, /area/science/misc_lab/range) "cxJ" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -61656,7 +60756,7 @@ /turf/open/floor/plasteel, /area/science/mixing) "cyC" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = 25 }, /obj/machinery/atmospherics/components/unary/portables_connector/visible, @@ -61928,7 +61028,7 @@ /area/medical/genetics) "czf" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -62824,7 +61924,7 @@ /area/science/test_area) "cAS" = ( /obj/structure/chair/stool, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; freerange = 0; frequency = 1485; @@ -62896,7 +61996,7 @@ "cBa" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; freerange = 0; frequency = 1485; @@ -62913,7 +62013,7 @@ /area/medical/genetics/cloning) "cBc" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Genetics"; opacity = 1; req_access_txt = "9" @@ -62959,7 +62059,7 @@ /area/science/robotics/mechbay) "cBj" = ( /obj/structure/table, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -63067,19 +62167,19 @@ /turf/open/floor/plasteel/white, /area/science/mixing) "cBt" = ( -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -4; pixel_y = 1 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = 8; pixel_y = 9 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = 9; pixel_y = -2 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_y = 2 }, /obj/structure/table/reinforced, @@ -63262,7 +62362,7 @@ /turf/open/floor/plating/airless, /area/science/test_area) "cBO" = ( -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -63433,7 +62533,7 @@ /area/hallway/primary/aft) "cCm" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -63487,18 +62587,18 @@ /turf/open/floor/plasteel, /area/science/mixing) "cCu" = ( -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_y = 8 }, -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_x = -8; pixel_y = 5 }, -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_x = 6; pixel_y = 5 }, -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_x = -2; pixel_y = -2 }, @@ -63509,18 +62609,18 @@ /turf/open/floor/plasteel, /area/science/mixing) "cCv" = ( -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve{ pixel_x = -5 }, -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve{ pixel_x = -5 }, -/obj/item/device/transfer_valve, -/obj/item/device/transfer_valve, -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve, +/obj/item/transfer_valve, +/obj/item/transfer_valve{ pixel_x = 5 }, -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve{ pixel_x = 5 }, /obj/machinery/requests_console{ @@ -63535,19 +62635,19 @@ /turf/open/floor/plasteel, /area/science/mixing) "cCw" = ( -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = 5; pixel_y = 4 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = -4; pixel_y = 2 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = 6; pixel_y = -4 }, -/obj/item/device/assembly/timer, +/obj/item/assembly/timer, /obj/structure/table/reinforced, /obj/effect/turf_decal/stripes/corner{ dir = 8 @@ -63556,7 +62656,7 @@ /area/science/mixing) "cCx" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -63610,19 +62710,19 @@ /area/science/mixing) "cCC" = ( /obj/structure/table, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = -5; pixel_y = 3 }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = 5; pixel_y = -4 }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = 2; pixel_y = 6 }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = 2; pixel_y = -1 }, @@ -63821,7 +62921,7 @@ /obj/structure/table, /obj/item/storage/box/bodybags, /obj/item/pen, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -63868,7 +62968,7 @@ /obj/machinery/mecha_part_fabricator{ dir = 2 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -63921,11 +63021,11 @@ pixel_x = -2; pixel_y = 4 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, @@ -63993,7 +63093,7 @@ /obj/structure/table, /obj/item/clothing/glasses/science, /obj/item/clothing/glasses/science, -/obj/item/device/multitool{ +/obj/item/multitool{ pixel_x = 3 }, /obj/effect/turf_decal/stripes/corner{ @@ -64048,7 +63148,7 @@ /turf/open/floor/plating/airless, /area/science/test_area) "cDx" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plating/airless, /area/science/test_area) "cDy" = ( @@ -64169,7 +63269,7 @@ /area/medical/virology) "cDJ" = ( /obj/item/clothing/gloves/color/latex, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /obj/item/clothing/glasses/hud/health, /obj/structure/reagent_dispensers/virusfood{ pixel_y = 30 @@ -64322,7 +63422,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Morgue"; opacity = 1; req_access_txt = "5" @@ -64529,13 +63629,13 @@ /obj/item/stack/sheet/plasteel{ amount = 10 }, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/machinery/ai_status_display{ pixel_x = 32 }, @@ -64592,9 +63692,8 @@ pixel_y = 24 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4 }, /turf/open/floor/engine, /area/science/mixing) @@ -64828,7 +63927,7 @@ }, /area/medical/medbay/aft) "cES" = ( -/obj/item/device/healthanalyzer{ +/obj/item/healthanalyzer{ pixel_x = 1; pixel_y = 4 }, @@ -64874,7 +63973,7 @@ /area/medical/morgue) "cEY" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Morgue"; opacity = 1; req_access_txt = "6" @@ -64964,7 +64063,7 @@ /obj/item/screwdriver{ pixel_y = 10 }, -/obj/item/device/multitool{ +/obj/item/multitool{ pixel_x = 3 }, /obj/item/stack/cable_coil, @@ -65056,11 +64155,11 @@ /area/science/mixing) "cFu" = ( /obj/structure/closet, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = 2; pixel_y = -2 }, -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_x = -2; pixel_y = 5 }, @@ -65076,7 +64175,7 @@ /turf/open/floor/plating/airless, /area/science/test_area) "cFw" = ( -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/effect/turf_decal/stripes/line{ dir = 2 }, @@ -65092,12 +64191,12 @@ /turf/open/floor/plating/airless, /area/science/test_area) "cFy" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_x = -28 }, /obj/structure/table/glass, /obj/item/hand_labeler, -/obj/item/device/radio/headset/headset_med, +/obj/item/radio/headset/headset_med, /obj/machinery/airalarm{ pixel_y = 23 }, @@ -65209,7 +64308,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_x = 28 }, /turf/open/floor/plasteel/whitegreen/side{ @@ -65290,7 +64389,7 @@ }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -65469,9 +64568,8 @@ /obj/structure/sign/warning/fire{ pixel_y = -32 }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8 }, /turf/open/floor/engine, /area/science/mixing) @@ -65871,7 +64969,7 @@ dir = 1 }, /obj/item/storage/backpack/duffelbag/med, -/obj/item/device/flashlight/pen{ +/obj/item/flashlight/pen{ pixel_x = 4; pixel_y = 3 }, @@ -65881,7 +64979,7 @@ /obj/structure/table, /obj/item/retractor, /obj/item/hemostat, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /obj/item/clothing/glasses/eyepatch, /obj/item/reagent_containers/food/drinks/bottle/vodka{ pixel_x = 3; @@ -65958,19 +65056,19 @@ empty = 1; name = "First-Aid (empty)" }, -/obj/item/device/healthanalyzer{ +/obj/item/healthanalyzer{ pixel_x = 4; pixel_y = -4 }, -/obj/item/device/healthanalyzer{ +/obj/item/healthanalyzer{ pixel_x = 4; pixel_y = -4 }, -/obj/item/device/healthanalyzer{ +/obj/item/healthanalyzer{ pixel_x = 4; pixel_y = -4 }, -/obj/item/device/radio/headset/headset_sci{ +/obj/item/radio/headset/headset_sci{ pixel_x = -3 }, /obj/effect/turf_decal/delivery, @@ -66187,7 +65285,7 @@ /area/medical/virology) "cHw" = ( /obj/structure/closet/emcloset, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_x = -28 }, /obj/effect/turf_decal/stripes/line{ @@ -66541,11 +65639,7 @@ /turf/open/floor/plasteel/dark, /area/science/server) "cIc" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - target_temperature = 80; - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on, /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plasteel/dark, /area/science/server) @@ -66576,7 +65670,7 @@ "cIh" = ( /obj/structure/closet, /obj/item/storage/box/lights/mixed, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/decal/cleanable/cobweb, /turf/open/floor/plating, /area/maintenance/starboard/aft) @@ -66906,7 +66000,7 @@ pixel_y = 5 }, /obj/item/clothing/glasses/welding, -/obj/item/device/multitool{ +/obj/item/multitool{ pixel_x = 3 }, /obj/effect/turf_decal/delivery, @@ -66935,7 +66029,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -67288,7 +66382,7 @@ /obj/structure/table, /obj/item/retractor, /obj/item/hemostat, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -67309,9 +66403,9 @@ /area/science/robotics/lab) "cJK" = ( /obj/structure/table, -/obj/item/device/mmi, -/obj/item/device/mmi, -/obj/item/device/mmi, +/obj/item/mmi, +/obj/item/mmi, +/obj/item/mmi, /obj/structure/window/reinforced{ dir = 4 }, @@ -67354,11 +66448,11 @@ maxcharge = 15000 }, /obj/item/crowbar, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, @@ -67401,7 +66495,7 @@ /turf/open/floor/plasteel/dark, /area/science/server) "cJS" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -67582,7 +66676,7 @@ }, /area/medical/virology) "cKm" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -67729,7 +66823,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = 25 }, /obj/effect/turf_decal/stripes/line{ @@ -68245,18 +67339,6 @@ /turf/open/floor/plating, /area/maintenance/aft) "cLC" = ( -/obj/machinery/embedded_controller/radio/airlock_controller{ - name = "Incinerator Access Console"; - airpump_tag = "incinerator_airlock_pump"; - exterior_door_tag = "incinerator_airlock_exterior"; - id_tag = "incinerator_access_control"; - interior_door_tag = "incinerator_airlock_interior"; - pixel_x = 8; - pixel_y = -24; - sanitize_external = 1; - sensor_tag = "incinerator_airlock_sensor"; - req_access_txt = "12" - }, /obj/machinery/button/ignition{ id = "Incinerator"; pixel_x = 8; @@ -68297,11 +67379,9 @@ /turf/open/floor/plating, /area/maintenance/aft) "cLE" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ dir = 1; - name = "euthanization chamber freezer"; - on = 1; - target_temperature = 80 + name = "euthanization chamber freezer" }, /turf/open/floor/plating, /area/science/xenobiology) @@ -68424,7 +67504,7 @@ /turf/open/floor/engine, /area/science/explab) "cLV" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = 25 }, /obj/machinery/firealarm{ @@ -68492,7 +67572,7 @@ pixel_x = 4 }, /obj/item/organ/heart, -/obj/item/device/soulstone/anybody/chaplain, +/obj/item/soulstone/anybody/chaplain, /turf/open/floor/plasteel/cult{ dir = 2 }, @@ -68737,7 +67817,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/office) "cME" = ( -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/newscaster{ pixel_x = -30 }, @@ -69031,7 +68111,7 @@ /area/maintenance/port/aft) "cNg" = ( /obj/structure/rack, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/spawner/lootdrop/maintenance, /obj/machinery/light/small, /turf/open/floor/plating, @@ -69075,7 +68155,7 @@ "cNk" = ( /obj/item/storage/bag/plants/portaseeder, /obj/item/storage/bag/plants/portaseeder, -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /obj/item/cultivator, /obj/item/reagent_containers/glass/bucket, /obj/structure/rack, @@ -69115,7 +68195,7 @@ /obj/machinery/hydroponics/soil{ pixel_y = 8 }, -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/starboard/aft) @@ -69174,7 +68254,7 @@ c_tag = "Chapel Office - Backroom"; dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 @@ -69216,7 +68296,7 @@ /turf/open/floor/plasteel/grimy, /area/chapel/office) "cNz" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1480; name = "Confessional Intercom"; @@ -69383,7 +68463,7 @@ /obj/machinery/light{ dir = 4 }, -/obj/item/device/radio/off, +/obj/item/radio/off, /obj/machinery/requests_console{ department = "Security"; departmentType = 5; @@ -69680,10 +68760,10 @@ pixel_x = -4; pixel_y = 4 }, -/obj/item/device/taperecorder{ +/obj/item/taperecorder{ pixel_x = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -69775,7 +68855,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/office) "cOL" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1480; name = "Confessional Intercom"; @@ -70068,7 +69148,7 @@ /area/maintenance/starboard/aft) "cPz" = ( /obj/structure/closet, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/spawner/lootdrop/maintenance{ lootcount = 3; name = "3maintenance loot spawner" @@ -70260,7 +69340,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/beacon, +/obj/item/beacon, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -70289,7 +69369,7 @@ /obj/machinery/light{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -70364,7 +69444,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/main) "cQc" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -70554,7 +69634,7 @@ /obj/machinery/doppler_array/research/science{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -70691,7 +69771,7 @@ /turf/open/floor/plasteel, /area/science/xenobiology) "cQS" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -70710,7 +69790,7 @@ /turf/open/floor/plating, /area/chapel/main) "cQV" = ( -/obj/item/device/flashlight/lantern{ +/obj/item/flashlight/lantern{ pixel_y = 7 }, /obj/structure/table/wood, @@ -70845,7 +69925,7 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/item/device/gps, +/obj/item/gps, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, @@ -71619,20 +70699,6 @@ }, /turf/open/floor/plasteel, /area/science/xenobiology) -"cSU" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/status_display{ - pixel_x = 32 - }, -/obj/machinery/computer/shuttle/pod{ - pixel_x = -32; - possible_destinations = "pod_lavaland1"; - shuttleId = "pod1" - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) "cSV" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable/yellow{ @@ -71726,21 +70792,6 @@ }, /turf/open/floor/engine, /area/science/xenobiology) -"cTd" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/item/device/radio/intercom{ - pixel_x = 25 - }, -/obj/item/storage/pod{ - pixel_x = -26 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) "cTe" = ( /obj/machinery/door/window/northleft{ base_state = "right"; @@ -71779,20 +70830,6 @@ }, /turf/open/floor/engine, /area/science/xenobiology) -"cTi" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/status_display{ - pixel_y = 32 - }, -/obj/machinery/computer/shuttle/pod{ - pixel_y = -32; - possible_destinations = "pod_lavaland4"; - shuttleId = "pod4" - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_4) "cTj" = ( /obj/item/crowbar/red, /obj/item/wrench, @@ -71909,20 +70946,6 @@ }, /turf/open/floor/plasteel, /area/science/xenobiology) -"cTu" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/item/device/radio/intercom{ - pixel_y = 25 - }, -/obj/item/storage/pod{ - pixel_x = 6; - pixel_y = -32 - }, -/obj/machinery/light/small, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_4) "cTw" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/item/storage/box/lights/mixed, @@ -72059,14 +71082,14 @@ /area/science/xenobiology) "cVb" = ( /obj/structure/table/wood, -/obj/item/device/camera_film{ +/obj/item/camera_film{ pixel_x = -3; pixel_y = 5 }, -/obj/item/device/camera_film{ +/obj/item/camera_film{ pixel_y = 9 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 @@ -72077,7 +71100,7 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 1; frequency = 1459; name = "Station Intercom (General)"; @@ -72122,7 +71145,6 @@ height = 13; id = "ferry_home"; name = "port bay 2"; - turf_type = /turf/open/space; width = 5 }, /turf/open/space/basic, @@ -72148,18 +71170,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/atmos) -"cVE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"cVH" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "cVJ" = ( /obj/structure/window/reinforced, /obj/machinery/computer/atmos_control/tank/air_tank{ @@ -72172,60 +71182,10 @@ dir = 8 }, /area/engine/atmos) -"cVK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"cVL" = ( -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"cVM" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"cVQ" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"cWg" = ( -/obj/docking_port/mobile/auxillary_base{ - dheight = 4; - dir = 2; - dwidth = 4; - height = 9; - width = 9 - }, -/obj/machinery/bluespace_beacon, -/obj/machinery/computer/auxillary_base, -/turf/closed/wall, -/area/shuttle/auxillary_base) -"cWh" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "cWA" = ( /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port/fore) -"cWF" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"cWJ" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "cWK" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -72263,6 +71223,14 @@ dir = 1 }, /area/construction/mining/aux_base) +"cXZ" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) "cYc" = ( /obj/structure/table/optable{ name = "Robotics Operating Table" @@ -72355,6 +71323,16 @@ }, /turf/open/floor/plasteel/white, /area/science/xenobiology) +"cYV" = ( +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "cZa" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -72362,7 +71340,7 @@ /turf/open/floor/plasteel/white, /area/science/xenobiology) "cZc" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -72471,7 +71449,7 @@ /obj/item/stack/sheet/metal{ amount = 10 }, -/obj/item/device/electropack, +/obj/item/electropack, /turf/open/floor/engine, /area/science/xenobiology) "daF" = ( @@ -72488,7 +71466,7 @@ /turf/open/floor/engine, /area/science/xenobiology) "daH" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/engine, /area/science/xenobiology) "daI" = ( @@ -72497,7 +71475,7 @@ pixel_y = 5 }, /obj/item/stack/cable_coil, -/obj/item/device/multitool, +/obj/item/multitool, /obj/item/stock_parts/cell/high{ charge = 100; maxcharge = 15000 @@ -72522,26 +71500,26 @@ /area/science/xenobiology) "daM" = ( /obj/structure/table, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = -5; pixel_y = 3 }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = 5; pixel_y = -4 }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = 2; pixel_y = 6 }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = 2; pixel_y = -1 }, /turf/open/floor/engine, /area/science/xenobiology) "daN" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = -25 }, /turf/open/floor/engine, @@ -72586,6 +71564,21 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/circuit/killroom, /area/science/xenobiology) +"daW" = ( +/obj/machinery/button/door{ + id = "engpa"; + name = "Engineering Chamber Shutters Control"; + pixel_y = 26; + req_access_txt = "11" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) "daX" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -72594,6 +71587,20 @@ icon_state = "platingdmg2" }, /area/maintenance/port/fore) +"daZ" = ( +/obj/structure/particle_accelerator/particle_emitter/right{ + icon_state = "emitter_right"; + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"dbb" = ( +/obj/structure/particle_accelerator/particle_emitter/center{ + icon_state = "emitter_center"; + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) "dbd" = ( /obj/structure/sink/kitchen{ pixel_y = 28 @@ -72705,7 +71712,7 @@ "dbE" = ( /obj/machinery/plantgenes, /obj/effect/turf_decal/stripes/line{ - dir = 9 + dir = 1 }, /turf/open/floor/plasteel, /area/hydroponics) @@ -73023,7 +72030,7 @@ /obj/machinery/shower{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -73343,7 +72350,7 @@ /area/science/xenobiology) "dcM" = ( /obj/machinery/chem_master, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -73611,7 +72618,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -73791,11 +72798,19 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"ddG" = ( -/obj/effect/turf_decal/stripes/line, -/obj/docking_port/stationary/public_mining_dock, +"ddO" = ( +/obj/machinery/light/small{ + dir = 1 + }, /turf/open/floor/plating, -/area/shuttle/auxillary_base) +/area/engine/engineering) +"ddP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) "ddQ" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -73806,6 +72821,205 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) +"ddW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ddX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ddZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating/airless, +/area/space) +"deb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"def" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/space, +/area/space) +"deh" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/engine/engineering) +"dem" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space, +/area/space) +"den" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/space) +"der" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"deu" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/space) +"dev" = ( +/obj/machinery/field/generator{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/space) +"dew" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/space, +/area/space) +"deB" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engpa"; + name = "Engineering Chamber Shutters" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"deD" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/airless, +/area/space) +"deM" = ( +/obj/structure/table, +/obj/effect/turf_decal/delivery, +/obj/item/clothing/glasses/meson/engine, +/obj/item/clothing/glasses/meson/engine, +/obj/item/clothing/glasses/meson/engine, +/obj/machinery/light{ + dir = 4 + }, +/obj/item/pipe_dispenser, +/obj/item/pipe_dispenser, +/obj/item/pipe_dispenser, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) +"deV" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/airless, +/area/space) +"deY" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) +"dfa" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"dfh" = ( +/obj/structure/table, +/obj/item/clothing/glasses/meson, +/obj/item/clothing/glasses/meson, +/obj/item/clothing/glasses/meson, +/obj/item/storage/belt/utility, +/obj/item/storage/belt/utility, +/obj/item/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = 10 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) +"dfp" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"dfz" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/space) +"dfD" = ( +/obj/item/book/manual/engineering_singularity_safety{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/book/manual/wiki/engineering_guide, +/obj/item/book/manual/engineering_particle_accelerator{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/gloves/color/yellow, +/obj/structure/table/glass, +/turf/open/floor/plasteel, +/area/engine/engineering) +"dfI" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/space) +"dfP" = ( +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "dfX" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable/yellow{ @@ -73821,12 +73035,96 @@ dir = 1 }, /area/engine/engineering) +"dfY" = ( +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"dga" = ( +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"dgd" = ( +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"dge" = ( +/obj/structure/cable/white{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/power/emitter{ + anchored = 1; + dir = 1; + icon_state = "emitter"; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"dgg" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"dgj" = ( +/obj/structure/grille, +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"dgk" = ( +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"dgm" = ( +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"dgr" = ( +/turf/closed/wall/r_wall, +/area/space) "dgz" = ( /obj/structure/closet/toolcloset, /obj/effect/turf_decal/delivery, /obj/item/clothing/glasses/meson/engine, /turf/open/floor/plasteel, /area/engine/engineering) +"dgN" = ( +/obj/structure/lattice, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/open/space, +/area/space/nearstation) +"dgO" = ( +/turf/open/space, +/area/space/nearstation) "dhn" = ( /obj/structure/table, /obj/item/poster/random_contraband, @@ -74100,7 +73398,7 @@ /area/maintenance/port/fore) "dhL" = ( /obj/structure/table, -/obj/item/device/analyzer, +/obj/item/analyzer, /obj/machinery/power/apc{ dir = 2; name = "Tool Storage APC"; @@ -74117,7 +73415,7 @@ }, /area/storage/primary) "dhM" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -74259,7 +73557,7 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/item/device/instrument/guitar, +/obj/item/instrument/guitar, /obj/structure/sign/poster/random{ pixel_x = 32 }, @@ -74324,9 +73622,9 @@ /turf/open/floor/carpet, /area/crew_quarters/theatre) "dij" = ( -/obj/item/device/instrument/violin, +/obj/item/instrument/violin, /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -74394,7 +73692,7 @@ /obj/item/poster/random_official, /obj/item/poster/random_official, /obj/item/poster/random_official, -/obj/item/device/paicard{ +/obj/item/paicard{ desc = "A real Nanotrasen success, these personal AIs provide all of the companionship of an AI without any law related red-tape."; name = "Nanotrasen-brand personal AI device exhibit" }, @@ -74626,7 +73924,7 @@ }, /obj/item/reagent_containers/food/drinks/ale, /obj/structure/table/wood, -/obj/item/device/instrument/eguitar, +/obj/item/instrument/eguitar, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -74841,6 +74139,19 @@ /obj/structure/lattice/catwalk, /turf/open/space, /area/science/xenobiology) +"djt" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"djx" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Aft Port"; + dir = 4; + network = list("singularity") + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/engine/engineering) "djz" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/machinery/door/airlock/external{ @@ -74899,6 +74210,12 @@ }, /turf/open/floor/plating, /area/chapel/main) +"dlI" = ( +/obj/structure/closet/secure_closet/engineering_electrical, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) "dlV" = ( /turf/closed/wall/r_wall, /area/maintenance/department/science/xenobiology) @@ -75480,6 +74797,25 @@ "dBu" = ( /turf/closed/wall, /area/engine/gravity_generator) +"dBw" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"dBy" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/engine/engineering) +"dBB" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/space) "dBC" = ( /obj/machinery/meter, /obj/structure/grille, @@ -76123,7 +75459,7 @@ /obj/item/wallframe/camera, /obj/item/wallframe/camera, /obj/item/wallframe/camera, -/obj/item/device/assault_pod/mining, +/obj/item/assault_pod/mining, /turf/open/floor/plasteel/yellow/side{ dir = 1 }, @@ -76204,6 +75540,13 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/space) +"eCm" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/space, +/area/space) "eEe" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 @@ -76217,6 +75560,21 @@ }, /turf/open/floor/plasteel/dark, /area/chapel/office) +"eMP" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) +"eTm" = ( +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "eXy" = ( /obj/machinery/airalarm{ pixel_y = 32 @@ -76236,6 +75594,17 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"fca" = ( +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "fdr" = ( /obj/structure/closet/firecloset, /turf/open/floor/plating, @@ -76262,12 +75631,33 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) +"giG" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Aft Starboard"; + dir = 8; + network = list("singularity") + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"glg" = ( +/obj/effect/decal/cleanable/oil, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "gnZ" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = -30 }, /turf/open/floor/plasteel/white, /area/science/circuit) +"gBt" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating/airless, +/area/space) "gEk" = ( /obj/structure/cable/yellow{ icon_state = "2-8" @@ -76305,8 +75695,8 @@ /area/maintenance/aft) "gRS" = ( /obj/structure/table/reinforced, -/obj/item/device/integrated_electronics/analyzer, -/obj/item/device/integrated_circuit_printer, +/obj/item/integrated_electronics/analyzer, +/obj/item/integrated_circuit_printer, /turf/open/floor/plasteel/white, /area/science/circuit) "gXY" = ( @@ -76322,6 +75712,10 @@ /obj/machinery/autolathe, /turf/open/floor/plasteel/white, /area/science/circuit) +"hiq" = ( +/obj/machinery/the_singularitygen/tesla, +/turf/open/floor/plating/airless, +/area/space) "hyP" = ( /obj/machinery/door/airlock/external{ name = "Escape Pod Two" @@ -76331,6 +75725,41 @@ }, /turf/open/floor/plating, /area/security/prison) +"hKs" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the Engine."; + dir = 8; + layer = 4; + name = "Engine Monitor"; + network = list("singularity"); + pixel_x = 30 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) +"hTv" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"hYG" = ( +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"ili" = ( +/turf/open/floor/plating/airless, +/area/space) "ioI" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -76342,6 +75771,13 @@ /obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/science/circuit) +"ixJ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/space, +/area/space) "izu" = ( /obj/machinery/autolathe{ name = "public autolathe" @@ -76358,6 +75794,39 @@ }, /turf/open/floor/plasteel/whitepurple, /area/science/lab) +"iKX" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"iNQ" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"iQV" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"jeV" = ( +/obj/machinery/conveyor/inverted{ + dir = 10; + id = "QMLoad" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) "jwW" = ( /turf/closed/wall/mineral/plastitanium, /area/crew_quarters/fitness/recreation) @@ -76387,6 +75856,30 @@ }, /turf/open/floor/plating, /area/maintenance/solars/port/aft) +"jzM" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "External Containment Access"; + req_access_txt = "10; 13" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"jGF" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/engine/engineering) "jKK" = ( /obj/machinery/door/airlock/external{ req_access_txt = "13" @@ -76403,6 +75896,14 @@ "krD" = ( /turf/closed/wall, /area/science/circuit) +"kwI" = ( +/obj/item/wrench, +/obj/item/clothing/suit/apron, +/obj/item/clothing/accessory/armband/hydro, +/obj/structure/table/glass, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/hydroponics) "kys" = ( /obj/structure/cable/yellow{ icon_state = "0-8" @@ -76442,7 +75943,7 @@ /turf/open/floor/plating, /area/maintenance/starboard/aft) "kOt" = ( -/obj/item/device/multitool, +/obj/item/multitool, /obj/item/screwdriver, /obj/structure/table/reinforced, /obj/structure/cable/yellow{ @@ -76461,15 +75962,45 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"kXU" = ( +/obj/structure/cable/white, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/power/emitter{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "lal" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 }, /turf/open/floor/plasteel, /area/science/circuit) +"lim" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "External Containment Access"; + req_access_txt = "10; 13" + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) "llb" = ( /obj/structure/table/reinforced, -/obj/item/device/integrated_circuit_printer, +/obj/item/integrated_circuit_printer, /turf/open/floor/plasteel/white, /area/science/circuit) "lsv" = ( @@ -76483,9 +76014,17 @@ icon_state = "0-8" }, /obj/structure/table/reinforced, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plasteel/white, /area/science/circuit) +"lwo" = ( +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "lzk" = ( /obj/structure/cable/yellow{ icon_state = "2-8" @@ -76558,6 +76097,19 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) +"mGY" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating/airless, +/area/space) +"mJy" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/space) "ngl" = ( /obj/machinery/bookbinder, /turf/open/floor/plasteel/white, @@ -76600,6 +76152,12 @@ }, /turf/open/floor/plating, /area/maintenance/starboard) +"nDB" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) "nIb" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/mining{ @@ -76616,6 +76174,20 @@ /obj/structure/target_stake, /turf/open/floor/plasteel/white, /area/science/circuit) +"obX" = ( +/obj/docking_port/stationary{ + area_type = /area/construction/mining/aux_base; + dheight = 4; + dir = 1; + dwidth = 4; + height = 9; + id = "aux_base_zone"; + name = "aux base zone"; + roundstart_template = /datum/map_template/shuttle/aux_base/default; + width = 9 + }, +/turf/open/floor/plating, +/area/construction/mining/aux_base) "ocT" = ( /obj/machinery/light{ dir = 1 @@ -76636,16 +76208,31 @@ /turf/open/floor/plasteel/white, /area/science/circuit) "ohj" = ( -/obj/item/device/integrated_electronics/analyzer, -/obj/item/device/integrated_electronics/debugger, -/obj/item/device/integrated_electronics/wirer, +/obj/item/integrated_electronics/analyzer, +/obj/item/integrated_electronics/debugger, +/obj/item/integrated_electronics/wirer, /obj/structure/table/reinforced, /turf/open/floor/plasteel/white, /area/science/circuit) +"oru" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "oub" = ( /obj/structure/sign/poster/official/random, /turf/closed/wall, /area/hydroponics) +"ovJ" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/engine/engineering) "oLW" = ( /obj/structure/table/reinforced, /obj/structure/cable/yellow{ @@ -76659,7 +76246,7 @@ pixel_y = 30; receive_ore_updates = 1 }, -/obj/item/device/integrated_electronics/debugger, +/obj/item/integrated_electronics/debugger, /turf/open/floor/plasteel/white, /area/science/circuit) "oRL" = ( @@ -76682,6 +76269,19 @@ /obj/item/pen, /turf/open/floor/plasteel/white, /area/science/circuit) +"oXn" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"pdI" = ( +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "pmc" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -76733,6 +76333,19 @@ }, /turf/open/floor/plating, /area/maintenance/aft) +"qcZ" = ( +/turf/open/space/basic, +/area/space/nearstation) +"qiO" = ( +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "qnJ" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -76747,15 +76360,41 @@ /obj/machinery/door/firedoor, /turf/open/floor/plating, /area/science/circuit) +"qpm" = ( +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/obj/machinery/light, +/obj/machinery/vending/kink, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/locker) "qqg" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 }, /turf/open/floor/plasteel, /area/science/misc_lab) +"qxk" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) +"qyp" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, +/area/space) +"qzA" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/engineering) "qBh" = ( /obj/structure/table, -/obj/item/device/paicard, +/obj/item/paicard, /turf/open/floor/plasteel/whitepurple/side{ dir = 2 }, @@ -76769,6 +76408,20 @@ }, /turf/open/floor/plasteel, /area/science/circuit) +"qMg" = ( +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/effect/turf_decal/delivery, +/obj/structure/table, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) "qRM" = ( /obj/machinery/camera{ c_tag = "Research Division Circuitry Lab"; @@ -76811,6 +76464,14 @@ }, /turf/open/floor/plasteel, /area/science/circuit) +"sef" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Fore Starboard"; + dir = 8; + network = list("singularity") + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "siF" = ( /obj/structure/grille, /turf/open/floor/plating/airless, @@ -76860,12 +76521,26 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) +"tDM" = ( +/obj/item/wrench, +/turf/open/floor/plating, +/area/engine/engineering) "tFJ" = ( /obj/structure/bodycontainer/morgue{ dir = 8 }, /turf/open/floor/plasteel/dark, /area/medical/morgue) +"tUB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "tVY" = ( /obj/structure/closet/crate, /obj/item/target/alien, @@ -76882,6 +76557,12 @@ /obj/machinery/air_sensor/atmos/toxins_mixing_tank, /turf/open/floor/engine/vacuum, /area/science/mixing) +"tYJ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating/airless, +/area/space) "upN" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -76948,6 +76629,25 @@ }, /turf/open/floor/plasteel, /area/science/misc_lab) +"vrp" = ( +/obj/structure/closet/firecloset, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) +"vuC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"vyf" = ( +/obj/structure/lattice, +/turf/open/space, +/area/engine/engineering) "vyx" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 4 @@ -76955,10 +76655,20 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/floorgrime, /area/maintenance/disposal/incinerator) +"vJQ" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space) "vLD" = ( /obj/structure/lattice, /turf/open/space/basic, /area/space) +"waK" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "wgw" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall/r_wall, @@ -76973,6 +76683,13 @@ }, /turf/open/floor/plating, /area/security/prison) +"wmn" = ( +/obj/structure/particle_accelerator/particle_emitter/left{ + icon_state = "emitter_left"; + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) "wxc" = ( /obj/machinery/door/airlock/external{ name = "Atmospherics External Airlock"; @@ -76983,6 +76700,22 @@ }, /turf/open/floor/plating, /area/engine/atmos) +"wBK" = ( +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"wEo" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "wFH" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -77013,8 +76746,14 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/science/misc_lab) +"xfJ" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/engine/engineering) "xkG" = ( -/obj/item/device/integrated_electronics/wirer, +/obj/item/integrated_electronics/wirer, /obj/structure/table/reinforced, /turf/open/floor/plasteel/white, /area/science/circuit) @@ -77039,7 +76778,6 @@ height = 17; id = "syndicate_nw"; name = "northwest of station"; - turf_type = /turf/open/space; width = 23 }, /turf/open/space/basic, @@ -77067,6 +76805,14 @@ }, /turf/open/floor/plasteel, /area/science/circuit) +"yhr" = ( +/obj/structure/cable/white{ + icon_state = "2-4" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plating/airless, +/area/engine/engineering) "ykE" = ( /obj/machinery/light, /turf/open/floor/plasteel/white, @@ -86428,10 +86174,10 @@ aaa aaa aaa aaa -aOZ -aOZ -aOZ -aRB +aaa +aaa +aaa +aaa aSH aUb aVt @@ -86685,10 +86431,10 @@ aaa aaa aaa cSP -aND -cSU -cTd -aRC +aaa +aaa +aaa +abu bsk aUc aVu @@ -86942,10 +86688,10 @@ aaa aaa aaa aaa -aOZ -aOZ -aOZ -aRB +aaa +aaa +aaa +aaa aSI aRA aVv @@ -87964,14 +87710,14 @@ anS anS aDb aDa -cVK -cVK -cVK -cVK -cVK -cVK -cVK -cWF +aDa +aDa +aDa +aDa +aDa +aDa +aDa +aDa cWK aRD aSJ @@ -88220,15 +87966,15 @@ anS aaf aai aDb -cVE -cVL -cVL -cVL -cVL -cVL -cVL -cVL -cWJ +aDa +aDa +aDa +aDa +aDa +aDa +aDa +aDa +aDa cWK aRE aSK @@ -88477,15 +88223,15 @@ anS aaf aaa aDb -cVE -cVL -cVL -cVL -cVL -cVL -cVL -cVL -cWJ +aDa +aDa +aDa +aDa +aDa +aDa +aDa +aDa +aDa cWK aRE aSK @@ -88734,15 +88480,15 @@ anS anS aaf aDb -cVE -cVL -cVL -cVL -cVQ -cVL -cVL -cVL -cWJ +aDa +aDa +aDa +aDa +aDa +aDa +aDa +aDa +aDa cWK cXE aIf @@ -88991,15 +88737,15 @@ anS anS aaf aDb -cVE -cVL -cVL -aHb -cWg -cVL -cVL -cVL -ddG +aDa +aDa +aDa +aDa +obX +aDa +aDa +aDa +aDa cWM cXR cYG @@ -89248,15 +88994,15 @@ aaf aaf aaf aDb -cVE -cVL -cVL -cVL -cWh -cVL -cVL -cVL -cWJ +aDa +aDa +aDa +aDa +aDa +aDa +aDa +aDa +aDa cWK cYE cYK @@ -89505,15 +89251,15 @@ aaa aaf aaa aDb -cVE -cVL -cVL -cVL -cVL -cVL -cVL -cVL -cWJ +aDa +aDa +aDa +aDa +aDa +aDa +aDa +aDa +aDa cWK dDJ aSL @@ -89762,15 +89508,15 @@ aaf dne dne aDb -cVE -cVL -cVL -cVL -cVL -cVL -cVL -cVL -cWJ +aDa +aDa +aDa +aDa +aDa +aDa +aDa +aDa +aDa cWK dDK aSM @@ -90019,15 +89765,15 @@ aip dne dnk aDb -cVH -cVM -cVM -cVM -cVM -cVM -cVM -cVM -aPb +aDa +aDa +aDa +aDa +aDa +aDa +aDa +aDa +aDa cWK aRF aSN @@ -94145,7 +93891,7 @@ aRH aRH aUf aRH -aRH +jeV aYK bam dmH @@ -100011,7 +99757,7 @@ aaA aaG aaP aax -aab +abn abE abD acs @@ -101555,8 +101301,8 @@ aaa aay abs abK -aad -aae +ace +acx acM abe ady @@ -102064,10 +101810,10 @@ aaa aaa aaf aaa -aaV -aaV -aaV -abt +aaa +aaa +aaa +aaa abL acf acy @@ -102321,9 +102067,9 @@ aaa aaa aaa adG -aaM -adH -aPa +aaa +aaa +aaa abu abM acg @@ -102578,10 +102324,10 @@ aaa aaf aaf aaa -aaV -aaV -aaV -abt +aaa +aaa +aaa +aaa abN ach aax @@ -110591,7 +110337,7 @@ aPJ aQT aOu aTt -aKE +aUN aUM aYc aTC @@ -110848,7 +110594,7 @@ aOt aQU aSg aTt -aKF +aUO aUM boW aZt @@ -111105,7 +110851,7 @@ aOu aQV aOv aTt -aKG +aUP aUM dCD aZt @@ -112133,7 +111879,7 @@ aPK aQV aOv aTt -aKH +qpm aUM aYe dnh @@ -112164,7 +111910,7 @@ bOW bQH bRV bST -bUh +kwI bVx bWS bYi @@ -114665,9 +114411,9 @@ aaa aaf aaa acP -adk +aaa adF -adk +aaa acP afB agz @@ -114922,9 +114668,9 @@ aaa aaf aaa acP -adl -bih -adl +aaa +aaa +aaa aeB afC afC @@ -115179,9 +114925,9 @@ aaa aaf aaa jwW -adl -aQf -adl +aaa +aaa +aaa aeC afD afD @@ -115436,9 +115182,9 @@ aaa aai aaa aaa -adl -adI -adl +aaa +aaa +aaa aeC afD afD @@ -117264,16 +117010,16 @@ aEm aFu aBI aBI -aAU -aCi -aCi -aFy +aJn +aCO +aFq +aNq aBI -aGY -aDf +aPZ +aRo aSu -aJx -aKI +aTG +aUZ aWB aYr aZH @@ -117514,22 +117260,22 @@ dqu doh axO axY -auS -awY -ayb -ayU -azd -aAp -aAv -ayh -ayh -ayh -ayh +aAo +aBJ +ayT +aEn +aFv aGV -ayh -aHZ +aHX +aCX +aCX +aCX +aCX +aOO +aCX +aRp aSv -aJy +aTH aVa aWw aWw @@ -117771,8 +117517,8 @@ dnh dnh axO axY -auT -axH +aAp +aBK aCS aEo aFw @@ -117785,8 +117531,8 @@ aNr aOP dCw aRq -aJo -aJz +aSw +aTI aVb aWC aYs @@ -118028,10 +117774,10 @@ avt awJ axS axY -avU -axU +nDB +ddW aCT -ayV +aEp aKC aFx aKC @@ -118042,8 +117788,8 @@ aKC aOQ aKC aRr -aJp -aJA +aSx +aTJ dfX aWD aVc @@ -118285,23 +118031,23 @@ avu axY axT axY -avV -axV -ayc -ayg -ayh -aAq -ayh -ayh -ayh -aDf -ayh -ayh -ayh -aAq -axH -aKy -aKJ +aAr +ddX +aCU +aCW +aCX +aGX +aCX +aCX +aCX +aSB +aCX +aCX +aCX +aGX +aBK +aTK +aVd aBI aYt aZK @@ -118540,25 +118286,25 @@ dBu dBu avv axY -aaU -alr -avW -axV -ayd -ayh -ayh -aAr -aAw -aBJ -aCL -aDg -aFz -aGX -ayh -ayh -axH -aKA -aKK +axU +ayS +jGF +ddX +deb +aCX +aCX +qMg +deM +eMP +hKs +aMg +vrp +dfh +aCX +aCX +aBK +deh +aVe axY aYu aYu @@ -118797,25 +118543,25 @@ atf auu avw atf -aaW -amV -avX +axV +ddP +aAt aBL -ayd -ayh -azf +deb +aCX +aFA axY axY -aBK +deB axY -aDt +aMh axY axY -aGZ -ayh -aJq -aKy -aKL +oXn +aCX +aSz +aTK +vuC aJu aYu aZL @@ -119054,25 +118800,25 @@ atg auv avx awK -aaX -anz +axW +aAu ddQ aBM -aye -ayh -azh +aCV +aCX +aFB axY -aAx -aBO -aBO -aEn -aFA +daW +dBw +aKF +aMi +cpR axY -aHa -ayh -aJr -aKy -aKL +aQd +aCX +aSA +aTK +vuC aJu aYu aZM @@ -119311,25 +119057,25 @@ ajb auw avy ajb -abd -aov -awN +axX +ayV +aAv aBN -ayg -ayh -azf -aAs -aAy -aJu -aCU -aJu -aFB -aAs +aCW +aCX +aFA aGZ -ayh -aJs -aKy -aKM +qzA +aJu +aKG +aJu +dBy +aGZ +oXn +aCX +dfD +aTK +hTv aJu aYu aZN @@ -119569,24 +119315,24 @@ ajb avz axY axY -apP -awO -axW -ayh -ayh -azi -axY -aAy -aJu -aCV -aEp +ayW +tUB +aBO +aCX +aCX aFC axY -aHP -ayh -axW -aKD -aLI +qzA +aJu +aKH +aMk +aNu +axY +dfp +aCX +aBO +dfP +dfY axY aYu cXA @@ -119826,24 +119572,24 @@ ajb avA axY axY -apX +ayX axY axY -ayt -ayh -azA +aCY +aCX +der axY -aAy +qzA aJu -aCW -aEq -aFB +aKI +tDM +dBy axY -aHX -aIa +dlI +iQV axY axY -apX +ayX axY atm apc @@ -120082,30 +119828,30 @@ ati ajb avB axY -abn -aqe +ddO +bUw aJu axY axY axY axY -aAt -aAy -aBP -aCX -aEr -aFB -aAt +djt +qzA +daZ +dbb +wmn +dBy +djt axY axY axY aJu -aqe -aMh +bUw +ovJ axY atm jKK -aNv +cXZ atm bfZ bif @@ -120340,33 +120086,33 @@ ajb avC axY axY -arh +lim axY axY -atF -ayW -atF -aAt -aAy +bTq +aEr +bTq +djt +qzA aJu -aCY -aEs -aFD -aAt -atF -aIb +xfJ +dfa +aNv +djt +bTq +djx axY axY -aLM +jzM axY axY atm avG cYj atm -bga -big -bga +aaa +adF +aaa bhT bpv brL @@ -120597,33 +120343,33 @@ dpL avD axY axY -arF -atF -atF -atF -atF -atF -aAt -aAt -aAt +waK +bTq +bTq +bTq +bTq +bTq +djt +djt +djt aRm -aAt -aAt -aAt -atF -atF -atF -atF -aMc -aMi -aMo +djt +djt +djt +bTq +bTq +bTq +bTq +dga +dgd +dgj atm lNZ atm atm -bgb -cTu -bgb +aaa +aaa +aaa bhT brJ brN @@ -120853,34 +120599,34 @@ apm dnR avE axY -acd -atC -atF +ayc +aza +bTq +aaa +mJy +dem +dem +deD +deD +deD +deV +dem +dem +dem +dem +dem +dfI +aaa +bTq +bTq +aYx +dgr +qcZ +aaa aaa -ayu -ayX -ayX -aAu -aAu -aAu -aCZ -ayX -ayX -ayX -ayX -ayX -aJt aaa -atF -atF -aMp -aNu -aju aaa aaa -bgb -cTi -bgb sJW aNC brM @@ -121110,34 +120856,34 @@ apm dnS avB axY -ace -atF -awX -axX -ayv -ayY -azB -azB -azB -azB -azB -azB -azB -azB -azB -aIc -ayv -axX -aMf -atF -aMp -aNu -aju +lwo +bTq +aAx +qxk +aIe +aOS +deu +deu +deu +deu +deu +deu +deu +deu +deu +dBB +aIe +qxk +aVh +bTq +aYx +dgr +qcZ +aaa +aaa +aaa aaa aaa -bgb -bij -bgb aaa aaf bpw @@ -121367,29 +121113,29 @@ atk aux avF dqT -acx -atJ -awX +fca +kXU +aAx aaa -ayv -ayZ -aAo +aIe +den +dev aav aav -aAo -lMJ +dev +vLD aaa aav aav -aAo -aId -ayv +dev +dfz +aIe aaa -aMf -aMj -aNp -aNu -aju +aVh +dge +azd +dgr +qcZ aaa aaa aaa @@ -121624,29 +121370,29 @@ atl auy dnS dqT -aeD -atF -awX -axX -ayS -aza +iNQ +bTq +aAx +qxk +def +aCZ aav aav aav -lMJ -aaf +vLD +qxk aaa aav aav aav -aIe -aJv -axX -aMf -atF -aMl -aNu -aju +qyp +dew +qxk +aVh +bTq +dgg +dgr +qcZ aaa aaa anT @@ -121881,44 +121627,44 @@ apm dnh dnS dqT -afQ -auQ -awX +hYG +wBK +aAx aaa -ayv -ayZ +aIe +den aav aav aaa -aju -aaf -aju +aaa +qxk +aaa aaa aav aav -aId -ayv +dfz +aIe aaa -aMf -aMk -aNq -aNu -aju +aVh +aWK +dgk +dgr +qcZ aaa aaa -anT -aOO -aOO +dgN +dgO +dgO aaf aav bpw -aOO -aOO +dgO +dgO aaf aaf aaf aaf -aOR +bCz aaf bFY aaf @@ -122139,28 +121885,28 @@ auz dqp dqT axY -aeD -awX -axZ -ayS -aza +iNQ +aAx +vJQ +def +aCZ aaa aaa -aju -aBQ -azB -aEu -aju -lMJ -aAo -aIe -aJv -axZ -aMf -aMl +aaa +ddZ +deu +mGY +aaa +vLD +dev +qyp +dew +vJQ +aVh +dgg axY -aNu -aju +dgr +qcZ aaa aaa anT @@ -122169,7 +121915,7 @@ aaa aaf aaf bpx -aOO +dgO aaf aaf aaa @@ -122396,28 +122142,28 @@ auA dnS dqT axY -aeD -atF -axX -ayv -ayZ -lMJ -aaf -aaf -ayZ -aDd -aEC -aaf -aaf -lMJ -aId -ayv -axX -atF -aMl +oru +bTq +qxk +aIe +den +vLD +qxk +qxk +den +hiq +aMo +qxk +qxk +vLD +dfz +aIe +qxk +bTq +iKX axY -aNu -aju +dgr +qcZ aaa aaa anT @@ -122653,28 +122399,28 @@ auB avG dqT axY -aeD -awX -axZ -ayS -aza -aAo -lMJ -aju -aBR -aDe -aFv -aju +iNQ +aAx +vJQ +def +aCZ +dev +vLD +aaa +gBt +deY +tYJ aaa aaa -aIe -aJv -axZ -aMf -aMl +aaa +qyp +dew +vJQ +aVh +dgg axY -aNu -aju +dgr +qcZ aaa aaa anT @@ -122909,29 +122655,29 @@ dnh dnh jKK dqT -ahT -auR -awX +yhr +cYV +aAx aaa -ayv -ayZ +aIe +den aav aav aaa -aju -aaf -aju +aaa +qxk +aaa aaa aav aav -aId -ayv +dfz +aIe aaa -aMf -aMm -aNs -aNu -aju +aVh +qiO +dgm +dgr +qcZ aaa aaa anT @@ -123166,29 +122912,29 @@ atn bOY avG dqT -aeD -atF -awX -axX -ayT -aza +iNQ +bTq +aAx +qxk +eCm +aCZ aav aav aaa aaa -aaf -lMJ +qxk +vLD aaa aav aav -aIe -aJw -axX -aMg -atF -aMl -aNu -aju +qyp +ixJ +qxk +glg +bTq +dgg +dgr +qcZ aaa aaa anT @@ -123423,28 +123169,28 @@ dnh dnh lNZ dqT -ajk -atJ -awX +pdI +kXU +aAx aaa -axZ -ayZ -aAo +vJQ +den +dev aav aaa aaa -lMJ -aAo +vLD +dev aav aav -aAo -aId -axZ +dev +dfz +vJQ aaa -aMf -aMj -aNt -aNu +aVh +dge +eTm +dgr aaf aaa aaa @@ -123682,26 +123428,26 @@ ack dqT axY axY -atF -aya -aya -azc -aya -aya -aya -aya -aya -aya -aya -aya -aya -aJn -aya -aya -atF +bTq +ili +ili +sef +ili +ili +ili +ili +wEo +ili +ili +ili +ili +giG +ili +ili +bTq axY axY -aNu +dgr aaf aaa aaa @@ -124194,7 +123940,7 @@ aaa aaa aaa lMJ -aju +qcZ axY axY axY @@ -124212,8 +123958,8 @@ axY axY axY axY -aju -aMn +qcZ +vyf aaa aaf aaf diff --git a/_maps/cit_map_files/Mining/Lavaland.dmm b/_maps/cit_map_files/Mining/Lavaland.dmm new file mode 100644 index 0000000000..62f8080c28 --- /dev/null +++ b/_maps/cit_map_files/Mining/Lavaland.dmm @@ -0,0 +1,68885 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/closed/indestructible/riveted/boss, +/area/lavaland/surface/outdoors) +"ab" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ac" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"ad" = ( +/turf/closed/mineral/random/high_chance/volcanic, +/area/lavaland/surface/outdoors) +"ae" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"af" = ( +/obj/structure/necropolis_gate/legion_gate, +/obj/structure/necropolis_arch{ + pixel_y = -40 + }, +/obj/structure/stone_tile/slab, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"ag" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ah" = ( +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ai" = ( +/turf/closed/mineral/random/volcanic, +/area/lavaland/surface/outdoors) +"aj" = ( +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"ak" = ( +/turf/closed/mineral/random/volcanic, +/area/lavaland/surface/outdoors/unexplored/danger) +"al" = ( +/turf/closed/mineral/random/high_chance/volcanic, +/area/lavaland/surface/outdoors/unexplored/danger) +"am" = ( +/turf/closed/mineral/random/volcanic, +/area/lavaland/surface/outdoors/unexplored) +"an" = ( +/turf/closed/mineral/random/labormineral/volcanic, +/area/lavaland/surface/outdoors) +"ap" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/mine/laborcamp) +"aq" = ( +/turf/closed/wall, +/area/mine/laborcamp) +"ar" = ( +/obj/structure/table, +/turf/open/floor/plasteel/white, +/area/mine/laborcamp) +"as" = ( +/obj/structure/table, +/obj/item/storage/firstaid/regular, +/turf/open/floor/plasteel/white, +/area/mine/laborcamp) +"at" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/obj/machinery/camera{ + c_tag = "Labor Camp Medical"; + dir = 8; + network = list("labor") + }, +/turf/open/floor/plasteel/white, +/area/mine/laborcamp) +"au" = ( +/obj/structure/rack, +/obj/item/storage/bag/ore, +/obj/item/pickaxe, +/obj/item/flashlight, +/obj/item/clothing/glasses/meson, +/obj/item/mining_scanner, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"av" = ( +/obj/structure/rack, +/obj/item/storage/bag/ore, +/obj/item/flashlight, +/obj/item/pickaxe, +/obj/item/clothing/glasses/meson, +/obj/item/mining_scanner, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"aw" = ( +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/explored) +"ax" = ( +/turf/open/floor/plasteel/white, +/area/mine/laborcamp) +"ay" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/mine/laborcamp) +"az" = ( +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"aA" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"aB" = ( +/obj/machinery/door/airlock/medical/glass{ + name = "Infirmary" + }, +/turf/open/floor/plasteel/white, +/area/mine/laborcamp) +"aC" = ( +/obj/structure/closet/crate/internals, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"aD" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/explored) +"aE" = ( +/obj/item/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + dir = 2; + name = "Prison Intercom (General)"; + pixel_y = 24; + prison_radio = 1 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"aF" = ( +/obj/machinery/door/airlock{ + name = "Labor Camp Storage" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"aG" = ( +/obj/structure/table, +/obj/item/trash/plate, +/obj/item/kitchen/fork, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"aH" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"aI" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock{ + name = "Labor Camp External Access" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"aJ" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"aK" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"aL" = ( +/obj/machinery/door/airlock{ + name = "Vending" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"aM" = ( +/obj/machinery/light/small, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"aN" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"aO" = ( +/obj/machinery/camera{ + c_tag = "Labor Camp External"; + dir = 4; + network = list("labor") + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"aP" = ( +/obj/machinery/vending/sustenance, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"aQ" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"aR" = ( +/obj/machinery/shower{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/white, +/area/mine/laborcamp) +"aS" = ( +/obj/machinery/mineral/unloading_machine{ + dir = 1; + icon_state = "unloader-corner"; + input_dir = 1; + output_dir = 2 + }, +/turf/open/floor/plating, +/area/mine/laborcamp) +"aT" = ( +/obj/structure/ore_box, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/explored) +"aU" = ( +/obj/machinery/flasher{ + id = "labor" + }, +/turf/closed/wall, +/area/mine/laborcamp) +"aW" = ( +/obj/machinery/conveyor{ + dir = 2; + id = "gulag" + }, +/turf/open/floor/plating, +/area/mine/laborcamp) +"aX" = ( +/obj/structure/closet/crate, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/explored) +"aY" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/security/glass{ + name = "Labor Camp Shuttle Security Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"aZ" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "labor"; + name = "Labor Camp Lockdown"; + pixel_y = 28; + req_access_txt = "2" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"ba" = ( +/obj/machinery/door/poddoor/preopen{ + id = "labor"; + name = "labor camp blast door" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"bb" = ( +/obj/machinery/camera{ + c_tag = "Labor Camp Central"; + network = list("labor") + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"bc" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "gulag" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"bd" = ( +/obj/machinery/mineral/processing_unit_console{ + dir = 2; + machinedir = 4 + }, +/turf/closed/wall, +/area/mine/laborcamp) +"be" = ( +/obj/machinery/mineral/processing_unit{ + dir = 1; + output_dir = 2 + }, +/turf/open/floor/plating, +/area/mine/laborcamp) +"bf" = ( +/turf/closed/wall, +/area/mine/eva) +"bg" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/mine/eva) +"bh" = ( +/obj/machinery/computer/shuttle/labor/one_way, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"bi" = ( +/obj/structure/gulag_beacon, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"bj" = ( +/obj/machinery/status_display{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"bk" = ( +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"bl" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "gulag" + }, +/turf/open/floor/plating, +/area/mine/laborcamp) +"bm" = ( +/obj/machinery/conveyor{ + dir = 10; + id = "gulag" + }, +/turf/open/floor/plating, +/area/mine/laborcamp) +"bn" = ( +/obj/structure/table, +/obj/item/pickaxe, +/obj/item/gps/mining, +/obj/item/gps/mining, +/obj/item/gps/mining, +/obj/item/gps/mining, +/turf/open/floor/plasteel/purple/side{ + dir = 9 + }, +/area/mine/eva) +"bo" = ( +/obj/machinery/suit_storage_unit/mining, +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/mine/eva) +"bp" = ( +/obj/machinery/suit_storage_unit/mining, +/turf/open/floor/plasteel/purple/side{ + dir = 5 + }, +/area/mine/eva) +"bq" = ( +/turf/closed/wall, +/area/mine/production) +"br" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/mine/production) +"bs" = ( +/obj/machinery/camera{ + c_tag = "EVA"; + dir = 4; + network = list("mine") + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/table, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/mine/eva) +"bt" = ( +/turf/open/floor/plasteel, +/area/mine/eva) +"bu" = ( +/obj/machinery/light_switch{ + pixel_x = 27 + }, +/turf/open/floor/plasteel/brown{ + dir = 4 + }, +/area/mine/eva) +"bv" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/mine/eva) +"bx" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/security/glass{ + name = "Labor Camp Shuttle Prisoner Airlock" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"by" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"bz" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"bA" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Labor Camp Backroom"; + req_access_txt = "2" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"bB" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Labor Camp APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"bC" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/computer/shuttle/mining{ + req_access = null + }, +/turf/open/floor/plasteel/purple/side{ + dir = 1 + }, +/area/mine/production) +"bD" = ( +/obj/structure/closet/crate, +/obj/item/dice/d4, +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/mine/production) +"bE" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/purple/corner, +/area/mine/production) +"bF" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/mine/eva) +"bG" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, +/turf/open/floor/plasteel/purple/corner{ + dir = 8 + }, +/area/mine/eva) +"bH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/mine/eva) +"bI" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/plasteel/purple/corner, +/area/mine/eva) +"bJ" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/purple/corner{ + dir = 8 + }, +/area/mine/eva) +"bK" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/obj/machinery/shower{ + dir = 8 + }, +/turf/open/floor/plasteel/purple/corner, +/area/mine/eva) +"bL" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Labor Camp Monitoring"; + req_access_txt = "2" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"bM" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Labor Camp Maintenance"; + req_access_txt = "2" + }, +/obj/structure/cable{ + icon_state = "1-10" + }, +/turf/open/floor/plating, +/area/mine/laborcamp) +"bN" = ( +/obj/structure/sign/warning/docking, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/mine/production) +"bO" = ( +/obj/item/beacon, +/turf/open/floor/plasteel/purple/corner{ + dir = 8 + }, +/area/mine/production) +"bP" = ( +/turf/open/floor/plasteel, +/area/mine/production) +"bQ" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"bR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/brown{ + dir = 4 + }, +/area/mine/production) +"bS" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/mining/glass{ + name = "Mining Station EVA"; + req_access_txt = "54" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"bT" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/mine/eva) +"bU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"bV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"bW" = ( +/turf/open/floor/plasteel/brown{ + dir = 4 + }, +/area/mine/eva) +"bX" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Mining External Airlock"; + opacity = 0; + req_access_txt = "54" + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"bY" = ( +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/mine/eva) +"bZ" = ( +/turf/closed/mineral/random/volcanic, +/area/lavaland/surface/outdoors/explored) +"ca" = ( +/turf/closed/wall, +/area/mine/laborcamp/security) +"cb" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"cc" = ( +/obj/structure/chair/office/dark, +/obj/structure/cable{ + icon_state = "1-4" + }, +/mob/living/simple_animal/bot/secbot/beepsky{ + desc = "Powered by the tears and sweat of laborers."; + name = "Prison Ofitser" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"cd" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/pen, +/obj/machinery/power/apc{ + dir = 4; + name = "Labor Camp Security APC"; + pixel_x = 24 + }, +/obj/machinery/camera{ + c_tag = "Labor Camp Monitoring"; + network = list("labor") + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"ce" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "5-6" + }, +/turf/open/floor/plating, +/area/mine/laborcamp) +"cf" = ( +/obj/machinery/power/terminal, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/mine/laborcamp) +"cg" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/mine/laborcamp) +"ch" = ( +/turf/open/floor/plating, +/area/mine/laborcamp) +"cj" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Mining Shuttle Airlock"; + opacity = 0 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"ck" = ( +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/mine/production) +"cl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"cm" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"cn" = ( +/turf/open/floor/plasteel/purple/corner{ + dir = 4 + }, +/area/mine/production) +"co" = ( +/obj/machinery/power/apc{ + dir = 2; + name = "Mining EVA APC"; + pixel_x = 1; + pixel_y = -23 + }, +/obj/structure/cable, +/obj/machinery/recharge_station, +/turf/open/floor/plasteel/purple/corner{ + dir = 1 + }, +/area/mine/eva) +"cp" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/structure/cable, +/turf/open/floor/plating, +/area/mine/eva) +"cq" = ( +/turf/open/floor/mech_bay_recharge_floor, +/area/mine/eva) +"cr" = ( +/obj/machinery/computer/mech_bay_power_console, +/turf/open/floor/plasteel/purple/corner{ + dir = 4 + }, +/area/mine/eva) +"cs" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/purple/corner{ + dir = 1 + }, +/area/mine/eva) +"ct" = ( +/obj/structure/ore_box, +/turf/open/floor/plasteel/purple/corner{ + dir = 4 + }, +/area/mine/eva) +"cu" = ( +/obj/item/pickaxe, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"cv" = ( +/obj/structure/ore_box, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"cw" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"cx" = ( +/obj/machinery/computer/security{ + name = "Labor Camp Monitoring"; + network = list("labor") + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"cy" = ( +/obj/machinery/computer/prisoner, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"cz" = ( +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/mine/laborcamp) +"cA" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-9" + }, +/turf/open/floor/plating, +/area/mine/laborcamp) +"cB" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/mine/laborcamp) +"cC" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/mine/laborcamp) +"cD" = ( +/turf/open/floor/plasteel/purple/corner{ + dir = 1 + }, +/area/mine/production) +"cE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"cF" = ( +/turf/open/floor/plasteel/brown{ + dir = 4 + }, +/area/mine/production) +"cG" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"cH" = ( +/turf/open/floor/plasteel/purple/corner{ + dir = 8 + }, +/area/mine/production) +"cI" = ( +/turf/open/floor/plasteel/purple/side{ + dir = 4 + }, +/area/mine/production) +"cJ" = ( +/obj/machinery/door/airlock{ + name = "Closet" + }, +/turf/open/floor/plating, +/area/mine/production) +"cK" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/mine/production) +"cL" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/mine/production) +"cM" = ( +/turf/closed/wall, +/area/mine/living_quarters) +"cN" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall, +/area/mine/living_quarters) +"cO" = ( +/obj/item/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/mine/production) +"cP" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 30 + }, +/turf/open/floor/plasteel/brown{ + dir = 4 + }, +/area/mine/production) +"cQ" = ( +/turf/closed/wall/r_wall, +/area/mine/maintenance) +"cR" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/mine/living_quarters) +"cS" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"cT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/closet/crate/secure/loot, +/turf/open/floor/plating, +/area/mine/living_quarters) +"cU" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"cV" = ( +/turf/open/floor/plating, +/area/mine/living_quarters) +"cW" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/mine/living_quarters) +"cX" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Mining Station Starboard Wing APC"; + pixel_x = -27; + pixel_y = 2 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 8 + }, +/area/mine/production) +"cY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"cZ" = ( +/obj/machinery/mineral/equipment_vendor, +/turf/open/floor/plasteel/brown{ + dir = 5 + }, +/area/mine/production) +"da" = ( +/obj/machinery/mineral/mint{ + input_dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"db" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"dc" = ( +/obj/structure/closet/crate, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/mine/production) +"dd" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/obj/structure/table, +/obj/item/paper/fluff/stations/lavaland/orm_notice, +/turf/open/floor/plasteel, +/area/mine/production) +"de" = ( +/obj/structure/ore_box, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/mine/production) +"df" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/mine/production) +"dg" = ( +/turf/open/floor/circuit, +/area/mine/maintenance) +"dh" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Mining Communications APC"; + pixel_x = 1; + pixel_y = 25 + }, +/turf/open/floor/plasteel/dark, +/area/mine/maintenance) +"di" = ( +/obj/machinery/telecomms/relay/preset/mining, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/mine/maintenance) +"dj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/dark, +/area/mine/maintenance) +"dk" = ( +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/circuit, +/area/mine/maintenance) +"dl" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/mine/living_quarters) +"dm" = ( +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/mine/living_quarters) +"dn" = ( +/obj/machinery/cryopod, +/obj/machinery/computer/cryopod{ + pixel_y = 26 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 5 + }, +/area/mine/living_quarters) +"do" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"dp" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"dq" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"dr" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 8 + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"ds" = ( +/obj/machinery/mineral/equipment_vendor, +/turf/open/floor/plasteel/purple/side{ + dir = 4 + }, +/area/mine/production) +"du" = ( +/obj/effect/turf_decal/loading_area, +/turf/open/floor/plasteel, +/area/mine/production) +"dv" = ( +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"dw" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/mine/production) +"dx" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/circuit, +/area/mine/maintenance) +"dy" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/mine/maintenance) +"dz" = ( +/obj/machinery/light_switch{ + pixel_y = -25 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/circuit, +/area/mine/maintenance) +"dA" = ( +/obj/machinery/camera{ + c_tag = "Communications Relay"; + dir = 8; + network = list("mine") + }, +/turf/open/floor/circuit, +/area/mine/maintenance) +"dB" = ( +/obj/structure/closet/crate/freezer, +/obj/item/reagent_containers/blood, +/obj/item/reagent_containers/blood{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/reagent_containers/blood/AMinus, +/obj/item/reagent_containers/blood/BMinus{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/reagent_containers/blood/BPlus{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/item/reagent_containers/blood/OMinus, +/obj/item/reagent_containers/blood/OPlus{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/reagent_containers/blood/random, +/obj/item/reagent_containers/blood/random, +/obj/item/reagent_containers/blood/random, +/obj/machinery/camera{ + c_tag = "Sleeper Room"; + dir = 1; + network = list("mine") + }, +/turf/open/floor/plasteel/white, +/area/mine/living_quarters) +"dC" = ( +/turf/open/floor/plasteel/white, +/area/mine/living_quarters) +"dD" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/white, +/area/mine/living_quarters) +"dE" = ( +/obj/structure/table, +/obj/item/storage/firstaid/regular, +/obj/item/storage/firstaid/toxin{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 4 + }, +/area/mine/living_quarters) +"dF" = ( +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"dG" = ( +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"dH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"dI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"dJ" = ( +/turf/open/floor/plasteel/purple/side{ + dir = 8 + }, +/area/mine/production) +"dK" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Shuttle Docking Foyer"; + dir = 8; + network = list("mine") + }, +/obj/machinery/newscaster{ + pixel_x = 30; + pixel_y = 1 + }, +/turf/open/floor/plasteel/brown{ + dir = 4 + }, +/area/mine/production) +"dL" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/mine/production) +"dM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/mine/production) +"dN" = ( +/obj/machinery/camera{ + c_tag = "Processing Area Room"; + dir = 8; + network = list("mine") + }, +/obj/item/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = 28 + }, +/turf/open/floor/plasteel/brown{ + dir = 4 + }, +/area/mine/production) +"dO" = ( +/obj/machinery/mineral/unloading_machine{ + dir = 1; + icon_state = "unloader-corner"; + input_dir = 1; + output_dir = 2 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating, +/area/mine/production) +"dP" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Mining Station Communications"; + req_access_txt = "48" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/mine/maintenance) +"dQ" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/mine/living_quarters) +"dR" = ( +/obj/machinery/door/airlock/medical/glass{ + name = "Infirmary" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/mine/living_quarters) +"dS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance{ + name = "Mining Station Maintenance"; + req_access_txt = "48" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/mine/living_quarters) +"dT" = ( +/turf/open/floor/plasteel/brown/corner{ + dir = 1 + }, +/area/mine/production) +"dU" = ( +/turf/open/floor/plasteel/purple/corner, +/area/mine/production) +"dV" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/mine/production) +"dW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/mine/production) +"dX" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "mining_internal"; + name = "mining conveyor" + }, +/turf/open/floor/plasteel/purple/side{ + dir = 4 + }, +/area/mine/production) +"dY" = ( +/obj/machinery/conveyor{ + dir = 2; + id = "mining_internal" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/mine/production) +"dZ" = ( +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"ea" = ( +/turf/open/floor/plasteel/purple/corner{ + dir = 4 + }, +/area/mine/living_quarters) +"eb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/mine/living_quarters) +"ec" = ( +/turf/open/floor/plasteel/purple/corner{ + dir = 1 + }, +/area/mine/living_quarters) +"ed" = ( +/obj/machinery/camera{ + c_tag = "Crew Area Hallway West"; + network = list("mine") + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"ee" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"ef" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/mine/living_quarters) +"eg" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Mining Station Port Wing APC"; + pixel_x = 1; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"eh" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"ei" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/mine/living_quarters) +"ej" = ( +/obj/machinery/camera{ + c_tag = "Crew Area Hallway East"; + network = list("mine") + }, +/turf/open/floor/plasteel/purple/corner{ + dir = 1 + }, +/area/mine/living_quarters) +"ek" = ( +/turf/open/floor/plasteel/purple/corner, +/area/mine/living_quarters) +"el" = ( +/obj/machinery/door/airlock/mining/glass{ + name = "Processing Area"; + req_access_txt = "48" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"em" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + dir = 4 + }, +/area/mine/production) +"en" = ( +/obj/machinery/mineral/processing_unit_console, +/turf/closed/wall, +/area/mine/production) +"eo" = ( +/obj/machinery/mineral/processing_unit{ + dir = 1; + output_dir = 2 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating, +/area/mine/production) +"ep" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"eq" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"er" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"es" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"et" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"eu" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"ev" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"ew" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/brown{ + dir = 4 + }, +/area/mine/living_quarters) +"ex" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/mining/glass{ + name = "Mining Station Bridge"; + req_access_txt = "48" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"ey" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/mine/living_quarters) +"ez" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"eA" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/mining/glass{ + name = "Mining Station Bridge"; + req_access_txt = "48" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"eB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/mine/production) +"eC" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"eD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"eE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + dir = 4 + }, +/area/mine/production) +"eF" = ( +/obj/machinery/door/airlock/mining/glass{ + name = "Processing Area"; + req_access_txt = "48" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"eG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/mine/production) +"eH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/corner, +/area/mine/production) +"eI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/brown, +/area/mine/production) +"eJ" = ( +/turf/open/floor/plasteel/purple/side{ + dir = 6 + }, +/area/mine/production) +"eK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown, +/area/mine/living_quarters) +"eL" = ( +/turf/open/floor/plasteel/purple/corner{ + dir = 8 + }, +/area/mine/living_quarters) +"eM" = ( +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"eN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"eO" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/purple/corner{ + dir = 4 + }, +/area/mine/living_quarters) +"eP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"eQ" = ( +/obj/machinery/door/airlock/mining{ + name = "Mining Station Storage"; + req_access_txt = "48" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"eR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/glass{ + name = "Break Room" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"eS" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/turf/open/floor/plasteel/purple/side, +/area/mine/production) +"eT" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/machinery/light, +/turf/open/floor/plasteel/brown, +/area/mine/production) +"eU" = ( +/obj/structure/closet/crate, +/turf/open/floor/plasteel/purple/side, +/area/mine/production) +"eV" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/turf/open/floor/plasteel/brown{ + dir = 6 + }, +/area/mine/production) +"eW" = ( +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"eX" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "mining_internal" + }, +/obj/structure/plasticflaps, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating, +/area/mine/production) +"eY" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "mining_internal" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/mine/production) +"eZ" = ( +/obj/machinery/conveyor{ + dir = 10; + id = "mining_internal" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plating, +/area/mine/production) +"fa" = ( +/obj/machinery/mineral/equipment_vendor, +/turf/open/floor/plasteel/brown{ + dir = 9 + }, +/area/mine/living_quarters) +"fb" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/plasteel/purple/corner{ + dir = 4 + }, +/area/mine/living_quarters) +"fc" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/purple/corner{ + dir = 1 + }, +/area/mine/living_quarters) +"fd" = ( +/obj/machinery/camera{ + c_tag = "Storage"; + dir = 2; + network = list("mine") + }, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/brown{ + dir = 5 + }, +/area/mine/living_quarters) +"fe" = ( +/obj/structure/bed, +/obj/item/bedsheet/brown, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/carpet, +/area/mine/living_quarters) +"ff" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/mine/living_quarters) +"fg" = ( +/obj/machinery/door/airlock{ + id_tag = "miningdorm1"; + name = "Room 1" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/mine/living_quarters) +"fi" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fj" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"fk" = ( +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"fl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"fm" = ( +/obj/machinery/vending/cigarette, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"fn" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 6 + }, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"fo" = ( +/obj/structure/ore_box, +/turf/open/floor/plasteel/purple/side{ + dir = 8 + }, +/area/mine/living_quarters) +"fp" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fq" = ( +/obj/item/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = 28 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 4 + }, +/area/mine/living_quarters) +"fr" = ( +/obj/structure/table, +/turf/open/floor/carpet, +/area/mine/living_quarters) +"fs" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "miningdorm1"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + specialfunctions = 4 + }, +/turf/open/floor/carpet, +/area/mine/living_quarters) +"ft" = ( +/obj/machinery/camera{ + c_tag = "Dormitories"; + dir = 4; + network = list("mine") + }, +/turf/open/floor/plasteel/purple/corner{ + dir = 1 + }, +/area/mine/living_quarters) +"fu" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"fv" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"fx" = ( +/obj/structure/ore_box, +/turf/open/floor/plasteel/brown{ + dir = 10 + }, +/area/mine/living_quarters) +"fy" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plasteel/purple/side, +/area/mine/living_quarters) +"fz" = ( +/obj/structure/closet/secure_closet/miner, +/turf/open/floor/plasteel/brown, +/area/mine/living_quarters) +"fA" = ( +/obj/structure/closet/secure_closet/miner, +/turf/open/floor/plasteel/purple/side, +/area/mine/living_quarters) +"fB" = ( +/obj/structure/closet/secure_closet/miner, +/turf/open/floor/plasteel/brown{ + dir = 6 + }, +/area/mine/living_quarters) +"fC" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"fD" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/beer{ + pixel_x = 7; + pixel_y = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/item/reagent_containers/food/drinks/beer{ + pixel_x = -1; + pixel_y = 9 + }, +/obj/item/reagent_containers/food/drinks/beer{ + pixel_x = -8 + }, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"fE" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"fF" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"fG" = ( +/obj/structure/table, +/obj/item/storage/box/donkpockets, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"fH" = ( +/obj/machinery/door/airlock{ + id_tag = "miningdorm2"; + name = "Room 2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fI" = ( +/obj/item/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"fJ" = ( +/obj/machinery/camera{ + c_tag = "Crew Area"; + dir = 1; + network = list("mine") + }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = -32 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"fK" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"fL" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"fM" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "miningdorm2"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + specialfunctions = 4 + }, +/turf/open/floor/carpet, +/area/mine/living_quarters) +"fN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fO" = ( +/obj/machinery/door/airlock{ + id_tag = "miningdorm3"; + name = "Room 3" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fP" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "miningdorm3"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + specialfunctions = 4 + }, +/turf/open/floor/carpet, +/area/mine/living_quarters) +"fQ" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/unexplored/danger) +"fR" = ( +/turf/closed/mineral/random/high_chance/volcanic, +/area/lavaland/surface/outdoors/unexplored) +"fS" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/unexplored) +"fT" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"fV" = ( +/turf/closed/indestructible/riveted/boss/see_through, +/area/lavaland/surface/outdoors) +"fW" = ( +/obj/structure/necropolis_gate/locked, +/obj/structure/stone_tile/slab, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"gj" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/center, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"gk" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/center, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"go" = ( +/obj/structure/stone_tile/block, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"gr" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gs" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gy" = ( +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gB" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gC" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"gG" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gM" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"gO" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"gP" = ( +/obj/structure/stone_tile/slab, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gR" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gY" = ( +/obj/docking_port/stationary{ + area_type = /area/lavaland/surface/outdoors; + dir = 8; + dwidth = 2; + height = 5; + id = "laborcamp_away"; + name = "labor camp"; + width = 9 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/explored) +"hg" = ( +/obj/structure/stone_tile/surrounding, +/obj/structure/stone_tile/center/cracked, +/mob/living/simple_animal/hostile/megafauna/legion, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"hs" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"hH" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hJ" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"id" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"ir" = ( +/obj/structure/stone_tile/slab/cracked{ + dir = 5 + }, +/obj/structure/stone_tile/slab/cracked{ + dir = 10 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"it" = ( +/obj/structure/stone_tile/block, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iu" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iw" = ( +/obj/structure/stone_tile/slab/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/slab/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ix" = ( +/obj/structure/stone_tile/block/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iy" = ( +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iC" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile/block/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iK" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iX" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iY" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ja" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jb" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jg" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jk" = ( +/obj/structure/stone_tile/center, +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jl" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/center/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jm" = ( +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jq" = ( +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"js" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jx" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jF" = ( +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/center/cracked, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"jH" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/center/cracked, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"jL" = ( +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/center, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"jN" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/center/cracked, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"jQ" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jR" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jS" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kg" = ( +/obj/structure/fluff/drake_statue, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kj" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kl" = ( +/obj/structure/fluff/drake_statue/falling, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ko" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ky" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kB" = ( +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/center/cracked, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"kD" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/center, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"kH" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/center/cracked, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"kJ" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/center, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"kM" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kN" = ( +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kR" = ( +/obj/structure/stone_tile/slab/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"le" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lg" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lj" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ll" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lp" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lq" = ( +/obj/structure/stone_tile/block/cracked, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lr" = ( +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ls" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lu" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lv" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lw" = ( +/obj/structure/stone_tile/cracked, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"ly" = ( +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lz" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lD" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lE" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lF" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lG" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/block, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lI" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lP" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lQ" = ( +/obj/structure/stone_tile/surrounding/cracked{ + dir = 6 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lR" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lS" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lW" = ( +/obj/structure/stone_tile/block/cracked, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lZ" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"ma" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mb" = ( +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"mk" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ml" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"mn" = ( +/obj/structure/stone_tile/block/cracked, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mq" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"mr" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"ms" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"mt" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mu" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mv" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"mw" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"mx" = ( +/obj/structure/stone_tile, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"my" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mA" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mB" = ( +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mC" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"mD" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mE" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mF" = ( +/obj/structure/stone_tile/block/cracked, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mG" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mH" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mI" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mJ" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mK" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mL" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mM" = ( +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mN" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mO" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mP" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mQ" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"mS" = ( +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"mV" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"mW" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"mX" = ( +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"mY" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"mZ" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"nb" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"nc" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"ne" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"nf" = ( +/obj/structure/stone_tile/slab/cracked, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"ng" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"Uq" = ( +/obj/docking_port/stationary{ + area_type = /area/lavaland/surface/outdoors; + dir = 2; + dwidth = 11; + height = 22; + id = "whiteship_lavaland"; + name = "lavaland wastes"; + width = 35 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"Wp" = ( +/obj/docking_port/stationary{ + area_type = /area/lavaland/surface/outdoors; + dir = 8; + dwidth = 3; + height = 5; + id = "mining_away"; + name = "lavaland mine"; + width = 7 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"Wt" = ( +/obj/effect/baseturf_helper/lava_land/surface, +/turf/closed/wall, +/area/mine/laborcamp/security) +"Wz" = ( +/obj/effect/mapping_helpers/planet_z, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"WA" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock{ + name = "Labor Camp External Access" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"WB" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/security/glass{ + name = "Labor Camp Shuttle Security Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"WC" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/security/glass{ + name = "Labor Camp Shuttle Prisoner Airlock" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"WD" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Mining External Airlock"; + opacity = 0; + req_access_txt = "54" + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"WE" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Mining Shuttle Airlock"; + opacity = 0 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"WF" = ( +/obj/effect/baseturf_helper/lava_land/surface, +/turf/closed/wall, +/area/mine/laborcamp) +"WH" = ( +/obj/effect/baseturf_helper/lava_land/surface, +/turf/closed/wall, +/area/mine/eva) +"WI" = ( +/obj/effect/baseturf_helper/lava_land/surface, +/turf/closed/wall, +/area/mine/production) +"WJ" = ( +/obj/effect/baseturf_helper/lava_land/surface, +/turf/closed/wall/r_wall, +/area/mine/maintenance) +"WK" = ( +/obj/effect/baseturf_helper/lava_land/surface, +/turf/closed/wall, +/area/mine/living_quarters) + +(1,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +Wz +"} +(2,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(3,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ad +ad +ad +ad +ad +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(4,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ai +ai +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(5,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ix +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +an +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ai +ai +ai +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(6,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +aj +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +al +al +al +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +aj +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +an +an +an +an +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ai +aD +ab +aj +aj +aj +aj +aj +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(7,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +aj +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ak +ak +ak +ak +ak +ak +ak +al +aj +aj +aj +aj +aj +aj +aj +aj +an +an +an +an +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aw +aw +ab +aD +ab +aj +aj +aj +aj +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +"} +(8,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ad +aj +ab +ab +ad +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +ad +an +an +an +an +an +an +an +an +an +an +an +an +ab +ab +ab +an +an +ab +ab +an +an +an +an +an +an +an +an +an +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +ab +aj +aj +aj +aw +aw +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +"} +(9,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ai +aj +aj +ab +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +aj +ab +ab +aj +aj +aj +aj +aw +aw +aj +aj +aw +aw +aj +aj +aw +aj +ab +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +aj +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(10,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ix +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ai +aj +ab +ab +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +aj +aj +aj +aw +aw +aw +aw +aw +aw +aw +aw +aw +aw +aw +aw +aw +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +aj +"} +(11,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ai +aj +aj +aj +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +ab +ab +an +an +an +an +an +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aw +aw +aD +aw +aw +aw +aw +aw +aw +aw +aw +aw +aw +aw +aw +aw +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +ab +aj +aj +aj +aj +aj +aj +aj +"} +(12,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +iX +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ai +aj +aj +aj +aj +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aj +aj +aj +aj +aj +aj +aj +aj +an +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aw +aw +aw +aD +aw +aw +aw +aw +aw +aD +aw +aw +aD +aw +aw +aw +aj +aw +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(13,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +iY +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ak +ak +ak +ak +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ai +aj +aj +aj +aj +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +ab +ab +aj +aj +aj +aj +aj +aj +ab +an +an +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +ab +aj +aw +aw +aw +aD +aD +aD +aD +aD +aD +aD +aD +aD +aw +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +aj +aj +"} +(14,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ai +aj +aj +aj +aj +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +ab +ab +an +an +an +an +an +an +an +an +aj +aj +aj +aj +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +aj +aj +aw +aw +aw +aw +aD +aD +aD +aD +aD +aD +aD +aD +aD +aw +aw +ab +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +aj +ab +aj +aj +aj +aj +aj +"} +(15,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ak +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +ai +aj +aj +aj +aj +aj +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aw +aw +aw +aw +aD +aD +aD +aD +aD +aD +aD +aD +aD +aw +aw +aw +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +"} +(16,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ir +ab +ab +ab +ab +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +ab +al +al +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ai +aj +aj +aj +aj +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aw +aw +aw +aD +aD +aD +aD +aD +aD +aD +aD +aD +aw +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +aj +aj +"} +(17,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +gP +ad +ad +ab +ab +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +ab +aj +al +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ai +aj +aj +aj +aj +aj +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aw +aw +aD +aD +aD +aD +aD +aD +aD +gY +aD +aD +aD +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +aj +aj +ab +aj +aj +aj +aj +"} +(18,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +it +ab +aj +aj +aj +aj +ab +ab +ab +aj +aj +aj +aj +aj +ab +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +ai +aj +aj +aj +aj +aj +aj +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +ab +ab +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aq +aq +aq +aq +aq +aY +aq +aq +aq +bx +aq +aw +aw +aj +aj +aj +aj +aj +ai +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(19,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +aj +aj +aj +aj +ab +ab +ab +aj +aj +aj +aj +aj +ab +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +ai +aj +aj +aj +aj +aj +aj +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +ab +ab +an +ab +aj +aj +aj +aj +aj +ab +aq +aG +aK +aP +aq +aZ +aq +bh +aq +aJ +aq +aD +bZ +aj +aj +aD +aj +ab +ai +ai +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(20,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +aj +aj +aj +aj +ab +ab +ab +ab +aj +aj +aj +aj +ab +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +ai +ai +aj +aj +aj +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +ab +aj +aj +aj +ab +ab +aq +aH +az +aQ +aq +WB +aq +bi +WF +WC +aq +bZ +bZ +bZ +aj +aj +aj +ai +ai +ai +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(21,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +aj +aj +aj +aj +ab +ab +ab +ab +aj +aj +aj +aj +ab +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +ai +aj +aj +aj +aj +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +ap +ap +ap +aq +aq +aq +aL +aq +aq +ba +aq +bj +az +az +aq +ca +Wt +ca +aj +aj +aj +ai +ad +ai +ai +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(22,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ix +ab +ab +ab +aj +aj +aj +ab +ab +ab +ab +aj +aj +aj +aj +ab +ab +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +ai +aj +aj +aj +aj +aj +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +ap +ar +ar +aq +az +az +az +az +az +az +az +az +az +az +aq +cb +cw +cG +aj +aj +aj +aj +ai +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(23,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ab +ab +ab +ab +aj +ab +ab +ab +aj +aj +aj +aj +aj +aj +ab +ab +ab +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +ai +aj +aj +aj +aj +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aq +as +ax +aB +az +az +az +az +aU +bb +az +az +az +by +bL +cc +cx +cG +aj +aj +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(24,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +ai +aj +aj +aj +aj +aj +ab +ab +ab +aj +aj +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aq +at +ay +aq +aE +az +az +az +az +az +aQ +bk +az +bz +aq +cd +cy +cG +aj +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ix +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +ai +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aq +aq +aq +aq +aq +az +az +aR +az +bc +aq +bl +aq +bA +aq +aq +aq +aq +aj +aj +aj +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(26,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +ai +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ad +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aq +au +au +au +aq +az +aM +aq +aq +bd +aq +bl +aq +bz +aq +ce +cz +aq +aj +aj +aj +ab +ab +ab +ab +ab +ab +aj +aj +aj +ai +ai +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(27,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +jq +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +ai +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aq +av +az +az +aF +az +aN +aS +aW +be +aW +bm +aq +bB +bM +cf +cA +aq +aj +aj +ab +ad +ai +ab +ab +ab +ai +ab +ab +ab +ad +ai +ai +ai +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(28,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +ai +aj +aj +ai +ab +ab +aj +aj +aj +aj +aj +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aq +aq +aA +aC +aq +aI +aq +aq +aq +aq +aq +aq +aq +aq +aq +cg +cB +aq +aj +cQ +cQ +cQ +cQ +cR +cR +cR +cM +cR +cR +cR +cM +ai +ai +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +it +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +ai +ai +am +ai +ab +ai +aj +aj +aj +aj +aj +aj +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aq +aq +aq +aq +az +aq +aT +aX +aX +aD +aD +aD +aD +aq +ch +cC +aq +aj +cQ +dg +dg +cQ +dZ +dZ +dZ +cM +fa +fo +fx +cM +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +ab +ab +aj +ab +ab +ab +ab +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +ai +ai +aj +aj +aj +aj +aj +aj +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aq +aJ +aq +aT +aD +aD +aD +aD +aD +aD +aq +aq +aq +aq +aj +cQ +dh +dx +cQ +ea +ep +ek +cM +fb +dZ +fy +cR +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(31,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +aj +aj +aj +ab +ab +ab +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +ai +aj +aj +ai +aj +aj +aj +aj +aj +an +aj +aj +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aD +aq +WA +aq +aT +aD +aD +aD +aD +aD +aj +aj +aj +aj +aj +ab +cQ +di +dy +dP +eb +eq +eK +eQ +ef +fp +fz +cR +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(32,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +aj +aj +aj +ab +ab +ab +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +ai +ai +ai +ab +ab +aj +aj +aj +aj +aj +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aD +aD +aO +aD +aD +aD +aD +aD +aj +aj +aj +aj +aj +ab +ad +cQ +dj +dz +cQ +ec +er +eL +cM +fc +dZ +fA +cR +ab +ai +ai +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(33,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +ab +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +aj +aj +ab +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +ai +ab +ai +aj +aj +aj +aj +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aD +aD +aD +aD +aD +aD +aD +aD +aD +aj +aj +aj +aj +ab +ai +cQ +dk +dA +WJ +ed +er +eM +cM +fd +fq +fB +cM +ai +ad +ai +ai +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(34,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ja +ab +ab +ab +aj +aj +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +ad +aj +aj +aj +aj +aj +aj +aj +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aD +aD +aD +aD +aD +aD +aD +aj +aj +aj +aj +ab +ab +cQ +cQ +cQ +cQ +ee +er +dZ +cM +cM +cM +cM +cM +cM +cM +cM +cM +cM +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(35,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ab +ab +ab +aj +aj +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +ai +aj +aj +aj +aj +aj +aj +aj +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aD +aD +aD +aD +aD +aD +aD +aj +aj +aj +aj +aj +ab +cM +dl +dB +cM +dZ +er +dZ +cM +fe +fr +cM +fe +fr +cM +fe +fr +cM +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(36,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +it +ab +aj +aj +ab +ab +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +ai +aj +aj +aj +aj +aj +aj +aj +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aD +aD +aD +aD +aD +aD +aD +aD +aj +aj +aj +aj +ab +cR +dm +dC +dQ +ea +er +dZ +cM +ff +fs +cM +ff +fM +cM +ff +fP +cM +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(37,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +aj +aj +aj +ab +ab +ab +aj +aj +ab +aj +ab +ab +ab +ab +ab +ab +ak +ak +ak +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +ai +ai +aj +aj +aj +aj +aj +aj +aj +aj +aj +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aD +aD +aT +an +aD +aD +aj +aj +aj +aj +ab +cR +dm +dD +dR +ef +es +dZ +WK +fg +cM +cM +fH +cM +cM +fO +cM +cM +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(38,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +aj +aj +aj +ab +ab +ab +ab +aj +aj +aj +aj +ab +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +ai +ai +aj +aj +aj +aj +aj +aj +aj +aj +aj +an +an +an +ab +ab +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aD +aD +aD +aj +aj +ai +ad +cM +dn +dE +dQ +ec +er +dZ +eL +fh +ft +eL +fh +ec +eL +fh +ec +cR +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(39,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +aj +aj +aj +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +ai +ai +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aj +aj +ai +cM +cM +cM +cM +cM +eg +et +eN +eN +fi +eN +eN +fi +fN +eN +fi +fp +cR +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(40,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +aj +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +ai +aj +aj +ai +ai +ai +aj +aj +aj +aj +aj +aj +aj +ab +ab +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aD +aj +aj +cM +cS +do +dF +cM +eh +er +dZ +cM +cM +dQ +dQ +cM +cM +cM +cR +cR +cM +ai +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(41,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +jq +ab +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +ai +ai +am +am +am +ai +aj +aj +aj +aj +aj +aj +aj +ab +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aD +aD +aj +aj +cN +cT +cV +dG +cM +ea +er +eM +cM +fj +fk +fk +fI +cM +ab +ab +ab +ai +ad +ai +ai +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +"} +(42,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +iu +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +ai +aj +aj +aj +aj +aj +aj +aj +aj +ab +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aD +aD +aj +aj +cM +cU +dp +dH +dS +ei +eu +ek +dQ +fk +fk +fC +fk +cM +ab +aj +ab +ab +ai +ai +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(43,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +ai +aj +aj +aj +aj +aj +aj +aj +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aj +aj +aj +aj +aj +ab +ab +ab +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aD +aD +aj +ab +cM +cV +dq +dI +cM +ej +ev +eK +eR +fl +fu +fD +fJ +cM +ai +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(44,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +ai +aj +aj +aj +aj +aj +aj +aj +aj +aj +an +an +an +an +an +an +an +an +an +an +an +an +an +an +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +ab +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aD +aD +aj +aj +ab +cM +cW +dr +dr +cM +dZ +er +eL +dQ +fk +fk +fE +fK +cM +ad +aj +aj +aj +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(45,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +ai +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +an +an +an +an +an +an +an +an +an +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +an +an +an +an +an +an +an +an +an +an +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +an +an +ab +aj +aj +ab +an +an +an +an +an +an +an +an +an +an +an +an +an +ab +aj +aj +an +an +an +an +an +aD +aD +aD +aD +aj +aj +aj +aj +cM +cM +cM +cM +cM +dZ +er +dZ +cM +fm +fk +fF +fk +cM +ai +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(46,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ja +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +ai +ab +aj +aj +aj +ai +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +an +an +an +an +an +aj +aj +aj +aj +aj +aj +aj +aD +aD +aD +aD +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +cR +dZ +er +dZ +cM +fn +fv +fG +fL +cM +ai +ai +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +aj +"} +(47,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ai +ab +ab +ab +ai +am +ai +aj +aj +ai +ai +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +ab +cR +ek +ew +eO +cM +cR +cR +cR +cR +cM +ai +ai +ai +aj +ab +aj +aj +ab +ab +aj +ab +ab +ab +aj +aj +aj +aj +aj +aj +"} +(48,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +ai +ai +ai +am +am +am +ai +ai +am +am +ai +ai +aj +aj +aj +aj +aj +aj +ai +ai +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +ab +aj +aj +aj +aj +aj +cR +cR +ex +cR +cR +ab +ab +ab +ab +ai +ai +ai +ab +aj +aj +aj +aj +ab +ab +ab +ai +ad +ad +ab +ab +aj +aj +aj +aj +"} +(49,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +ai +ai +ai +ai +ai +ai +am +am +ai +ai +aj +aj +aj +aj +ad +ab +ab +ab +ai +aj +aj +aj +aj +aj +aj +aj +ai +ai +ai +ai +ai +ai +ai +aj +aj +aj +aj +aj +ai +ai +ai +ai +ai +ai +ai +ab +ab +ai +ai +ai +ai +aj +aj +aj +aj +ai +ai +aj +aj +aj +aj +aj +aj +aj +ai +ai +ai +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +cR +ey +cR +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ad +ad +ad +ad +ad +ai +ai +aj +aj +aj +"} +(50,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +it +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +ai +ai +ai +am +ai +ai +ai +am +ai +ai +ai +ai +ai +ai +ai +am +am +am +am +am +am +am +ai +ai +ab +ab +ai +am +am +am +am +am +am +am +ai +ai +am +am +am +am +ai +ab +ab +ab +ai +am +ai +ai +ai +ai +ai +ai +ai +am +ai +ab +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +cR +er +cR +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +ab +ab +ad +ad +ad +ad +ad +ad +ad +ad +ab +aj +aj +"} +(51,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +ai +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +ai +ai +am +am +am +am +am +am +am +am +am +ai +ab +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +cR +er +cR +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ad +ad +ad +ad +ad +ad +ad +ab +aj +aj +"} +(52,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +ab +aj +aj +ab +ab +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +cR +er +cR +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ad +ad +ad +ad +ad +ad +ad +ab +aj +aj +"} +(53,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +ab +aj +ab +ab +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +ab +br +ez +br +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ad +ad +ai +ad +ab +ab +aj +aj +"} +(54,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +Wp +ab +ab +ab +ab +aj +aj +ab +br +ez +br +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +aj +aj +aj +aj +"} +(55,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +jx +ad +ad +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +aj +ab +aj +aj +aj +aj +aj +ab +ab +bN +cj +br +ab +ab +aj +aj +aj +ab +br +ez +br +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +aj +aj +aj +aj +aj +"} +(56,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ai +ai +ai +ai +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +aj +aj +aj +aj +aj +aj +ab +br +bP +br +ab +aj +aj +aj +aj +ab +br +bR +br +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +"} +(57,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ad +ai +ai +ai +ai +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +ai +ab +aj +aj +aj +aj +aj +aj +br +br +WE +br +br +ab +aj +aj +ab +br +br +eA +br +br +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +"} +(58,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ad +ai +ai +ai +ai +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +ai +ai +ai +aj +aj +aj +bq +br +bO +ck +cD +br +bq +bq +bq +bq +br +cH +eB +cD +br +bq +am +am +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(59,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ad +ad +ad +jq +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +ai +aj +aj +aj +ab +bq +bC +bP +cl +bP +cH +cO +cX +ck +dJ +dT +bP +ez +bP +eS +bq +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +"} +(60,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +aj +ab +aj +aj +ab +ab +aj +ab +aj +ab +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +ai +aj +aj +aj +aj +ab +br +bD +bQ +cm +cE +cE +cE +cY +cE +cE +cE +cE +eC +eP +eT +bq +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(61,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +ai +aj +aj +aj +aj +ab +ab +br +bE +bR +cn +cF +cI +cP +cn +bP +bP +bP +bP +eD +bP +eU +br +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(62,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +ai +aj +aj +ai +ab +bf +bf +bf +bF +bS +bF +bf +cJ +bq +cZ +ds +dK +dU +cF +eE +cn +eV +br +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(63,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +ab +ab +ab +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +ai +ai +ai +ab +bf +bn +bs +bG +bT +co +bf +cK +bq +bq +br +bq +dV +el +eF +dV +bq +bq +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(64,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +bg +bo +bt +bt +bU +cp +bf +cL +bq +da +du +dL +cH +ck +eG +cD +bP +br +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(65,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +aj +ab +ab +aj +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +ai +aj +aj +ab +bg +bo +bt +bH +bV +cq +WH +bq +WI +db +bP +bP +bP +bP +eH +cF +eW +bq +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(66,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +ab +ab +ab +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +aj +aj +ab +bf +bp +bu +bI +bW +cr +bf +ad +bq +dc +bP +dM +dW +dW +eI +bq +eX +bq +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +"} +(67,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +ab +ab +ab +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +aj +aj +ab +bf +bf +bf +bg +bX +bg +bf +ai +bq +dd +bP +dN +dX +em +eJ +dV +eY +bq +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +"} +(68,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +jb +ab +ab +ab +ab +aj +aj +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +aj +aj +ab +ab +ab +bf +bJ +bY +cs +bf +ai +bq +de +dv +bq +dV +en +dV +dV +eY +bq +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +"} +(69,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +aj +aj +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +ai +aj +aj +ab +ab +bf +bK +bW +ct +bf +ai +bq +df +dw +dO +dY +eo +dY +dY +eZ +bq +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(70,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +aj +aj +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ai +ai +aj +aj +ab +bf +bg +WD +bg +bf +ai +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +ab +ab +ab +aj +aj +aj +aj +ab +aj +aj +aj +ab +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +"} +(71,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +aj +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +bv +ab +ab +ab +bv +ai +ai +ab +ab +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +aj +aj +ab +aj +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(72,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +aj +aj +aj +aj +ab +ab +ab +aj +aj +aj +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +ai +ai +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +"} +(73,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +iw +ad +ad +ab +ab +ab +ab +ab +aj +aj +aj +aj +ab +ab +ab +aj +ab +aj +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ai +ai +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +aj +aj +ab +aj +aj +aj +aj +ab +ab +aj +aj +aj +aj +ab +ab +ab +aj +aj +aj +aj +"} +(74,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ai +ab +ai +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +aj +aj +ab +aj +aj +aj +aj +ab +ab +aj +aj +aj +aj +ab +ab +ab +aj +aj +aj +aj +"} +(75,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +ai +ai +ab +ab +ab +aj +ab +ab +ab +aj +aj +aj +ab +ab +ab +aj +aj +aj +ab +ab +ab +aj +aj +aj +aj +"} +(76,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ai +ab +ab +ab +ab +ab +ab +ai +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +ai +ai +ai +ai +ai +ab +ab +aj +ab +ab +ab +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +"} +(77,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +ab +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +ai +ab +ab +ai +ab +ab +ab +ab +ai +ai +ab +ab +ab +ab +ai +ai +ai +ab +ab +ab +ab +ab +ab +ab +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ab +aj +ab +ab +ab +ab +ab +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +"} +(78,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +ai +ai +ai +ab +ab +ab +ab +ab +ai +ai +ab +ab +ab +ai +ai +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ai +ai +ai +ai +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +"} +(79,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ad +ad +ad +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ai +ai +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +ab +ab +ab +ab +ab +ab +ab +aj +ab +aj +aj +aj +aj +"} +(80,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ad +ai +ai +ai +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +ai +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ai +ai +ai +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +"} +(81,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ad +ai +ai +ai +ad +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ai +ai +ai +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +"} +(82,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ai +ai +ai +ad +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +ai +ai +ai +ab +ab +ab +ab +ab +ab +ab +ai +ai +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +"} +(83,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ad +ad +ix +ab +aj +aj +aj +aj +aj +aj +aj +ab +aj +ab +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ai +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ai +ai +ai +ai +ab +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +"} +(84,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +ab +ab +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ai +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ai +am +am +am +ai +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +"} +(85,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +ab +ab +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ai +ai +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ai +am +am +ai +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +"} +(86,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +ab +ab +aj +ab +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ai +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ai +am +ai +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +"} +(87,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ix +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +ab +ab +ab +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ai +ab +ab +ab +ai +am +ai +ai +ai +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +"} +(88,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +jb +ab +ab +ab +ab +ab +ab +ab +aj +ab +aj +ab +ab +ab +aj +ab +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ai +ai +ai +am +ai +ai +ab +ai +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +"} +(89,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +ab +ab +aj +ab +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +ai +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ai +am +am +am +am +am +am +ai +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +"} +(90,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +ab +ab +ab +ab +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ai +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +"} +(91,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +ab +ab +ab +ab +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ai +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +"} +(92,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +iy +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +ab +ab +ab +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ai +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(93,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +ab +ab +ab +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ai +ai +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(94,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ai +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +"} +(95,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ix +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ai +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +"} +(96,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +ab +ab +ab +ab +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ai +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +ab +ab +"} +(97,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +iy +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +ab +ab +ab +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +ai +ab +ab +ai +ai +ab +ab +ab +ab +ab +ai +ab +ab +ab +ab +ab +ab +ai +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +"} +(98,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ai +ai +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +ab +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +ai +ab +ab +ai +ab +ab +ab +ab +ab +ab +ai +ai +ab +ab +ab +ab +ab +ab +ai +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +"} +(99,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ai +ai +ad +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +ai +ab +ab +ai +ab +ab +ab +ab +ab +ab +ai +am +ai +ai +ai +ai +ab +ab +ai +ai +ai +am +am +ai +ai +ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +"} +(100,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ad +ai +ai +ad +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +ab +ab +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ai +ab +ab +ai +am +am +am +am +am +ai +ab +ab +ab +ab +ai +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +"} +(101,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ad +ad +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +aj +ab +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ai +ai +ab +ai +am +am +ai +ai +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +Uq +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +"} +(102,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ai +am +ai +am +am +ai +cu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +"} +(103,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ai +am +am +am +am +ai +cv +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +"} +(104,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ai +am +am +am +am +ai +ab +ab +ab +ab +ab +ai +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +"} +(105,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +jb +jb +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ai +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ai +am +ai +ai +ai +ai +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +"} +(106,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ai +am +am +am +am +am +am +am +ai +ai +ab +ab +ai +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +"} +(107,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ai +ab +am +am +am +am +am +am +am +am +am +ai +ai +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +"} +(108,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +ai +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +"} +(109,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ix +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +"} +(110,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +"} +(111,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +"} +(112,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ix +ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(113,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +ab +ab +ab +ab +"} +(114,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +ab +aj +aj +"} +(115,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +ab +ad +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +"} +(116,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +it +ab +ab +ab +ab +ad +ai +ai +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +ab +aj +aj +"} +(117,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ad +ad +ai +ai +ad +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +am +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +"} +(118,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +it +ky +ad +ai +ai +ad +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +"} +(119,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ad +ai +ai +jq +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +"} +(120,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +kN +aj +aj +aj +aj +aj +aj +mD +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +ai +ai +ab +ab +ab +ab +ab +ab +aj +ab +ab +aj +aj +aj +aj +"} +(121,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ae +jg +gB +gB +js +ab +ab +ab +ab +aj +aj +mu +aj +aj +aj +ab +mA +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +ai +ab +ab +ab +ab +aj +aj +ab +aj +aj +aj +aj +"} +(122,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +iC +gr +gs +gr +gr +kR +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +jQ +ak +ak +ak +ak +al +iy +ab +ab +mK +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +"} +(123,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +gR +ag +jF +gM +kB +jm +ix +ab +jS +aj +aj +aj +aj +lI +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ab +ab +jx +ab +ab +mM +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +aj +aj +ab +aj +aj +aj +aj +"} +(124,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +gG +go +kg +hs +gr +hH +ab +ab +aj +ly +aj +aj +aj +lw +aj +aj +ls +aj +aj +jx +jS +iy +al +ak +al +jq +ab +kN +ab +ab +jx +ab +ab +mN +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +ai +ab +aj +aj +ab +aj +aj +ab +ab +aj +aj +aj +"} +(125,1,1) = {" +aa +aa +aa +mS +mV +mq +mV +nc +aa +aa +fV +fV +gr +jH +gO +kD +ag +le +aa +aa +ls +aj +aj +aj +aj +aj +aj +aj +aj +aj +lI +aa +aa +jS +ab +ab +ja +ab +jx +ab +jq +ab +kN +ab +ab +ab +mO +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +"} +(126,1,1) = {" +aa +aa +fV +gj +gC +mr +nb +ne +aa +aa +fV +fV +jk +gr +gr +gr +gr +gs +aa +lp +lp +lz +lp +lF +lp +lP +lS +lp +lZ +lS +lS +lp +aa +mE +ab +ab +ab +ab +kN +ab +ab +ab +ab +ab +jS +ab +ab +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +am +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +aj +"} +(127,1,1) = {" +mQ +mQ +fW +mQ +mW +hg +ac +nf +ac +ac +ac +af +lg +fT +kj +fT +fT +lg +gP +lq +lu +lq +lD +lG +lu +lQ +lu +lW +ma +lq +mk +mn +kR +mF +ab +mG +ab +ja +ab +jx +ab +ab +kN +ab +ab +jq +jR +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +am +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(128,1,1) = {" +aa +aa +fV +gk +mX +mZ +nc +ng +aa +aa +fV +fV +jl +gr +ah +gG +gs +gy +aa +lr +lv +lv +lE +lv +lE +lR +lv +lv +mb +lR +ml +lR +aa +it +ab +ab +jx +jR +ab +ab +ab +mL +al +iY +ab +ab +jQ +ab +jx +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +am +am +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(129,1,1) = {" +aa +aa +aa +mS +mY +ms +hJ +id +aa +aa +fV +fV +jm +jL +gM +kH +gr +hH +aa +aa +lw +aj +aj +aj +lI +aj +aj +aj +aj +lw +aj +aa +aa +jq +ab +ab +ab +jQ +ab +mI +ab +ab +al +al +ab +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +am +fR +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(130,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +gr +go +kl +hs +gG +lj +ab +ab +aj +aj +mv +my +lw +aj +aj +aj +lI +aj +aj +kN +jq +jS +jx +jS +ab +ab +ab +ab +ab +ab +jR +ak +jS +kN +ab +ab +jR +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +am +fS +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +"} +(131,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +gR +ah +jN +gO +kJ +gr +it +ab +ab +aj +aj +aj +ab +jQ +aj +jx +ab +ly +aj +aj +ab +ab +ak +al +ja +ab +mH +ab +ab +mJ +al +ak +ak +al +ab +ab +mP +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +fS +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(132,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +gR +gr +gr +gr +jm +gP +ab +ab +ab +aj +aj +aj +aj +aj +aj +ab +mB +aj +aj +aj +ab +ja +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +fS +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(133,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ae +gr +jm +ko +iu +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +iy +aj +aj +aj +kN +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +fS +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +"} +(134,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +jq +ab +ab +ab +ab +ab +kN +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +fS +aj +ab +aj +ab +aj +aj +aj +aj +aj +aj +"} +(135,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +jR +mt +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +fQ +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(136,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +jq +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +mC +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +fQ +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(137,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +iK +ab +jQ +jq +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +fQ +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(138,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(139,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(140,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +lI +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(141,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +iy +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(142,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(143,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(144,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +jq +ab +ab +ab +ab +ab +ab +ab +aj +aj +mw +ab +lI +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(145,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +iy +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +mx +ab +ab +mx +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(146,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(147,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +ab +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(148,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +jR +ad +ab +ab +ll +ab +ab +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(149,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(150,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +ab +ab +ab +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(151,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ix +ab +ab +ab +ad +ad +ad +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(152,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ad +ad +ad +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(153,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(154,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +jS +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(155,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(156,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(157,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +iy +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(158,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(159,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(160,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(161,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +iy +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(162,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(163,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(164,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +ab +ab +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(165,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +ab +ab +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(166,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +jS +ad +ad +ab +ab +aj +aj +aj +aj +ab +ab +ab +aj +ab +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(167,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ai +ai +ai +ai +ab +aj +aj +aj +ab +ab +ab +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +ab +aj +ab +aj +aj +aj +aj +aj +aj +"} +(168,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +kM +ai +ai +ai +ai +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +fQ +fQ +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(169,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ad +ai +ai +ai +ai +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +fQ +fQ +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +"} +(170,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ad +ad +ai +ai +ai +ai +ad +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(171,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ad +ai +ai +ai +ai +ad +ad +ab +ab +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +"} +(172,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ad +ai +ai +ai +ai +ad +ad +ab +ab +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +"} +(173,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +it +ab +ab +ab +ad +ai +ai +ai +ai +ad +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(174,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ad +ai +ai +ai +ai +ad +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(175,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ab +ab +kN +ai +ai +ai +ai +jq +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(176,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +it +ab +ai +ai +ai +ai +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(177,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ad +ad +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(178,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(179,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +ab +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(180,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +iy +ab +ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(181,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(182,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(183,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(184,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ad +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(185,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ai +jS +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(186,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ai +ad +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +fQ +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(187,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ai +ad +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +fQ +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(188,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ai +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(189,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +iy +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(190,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +iy +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +ab +aj +aj +ab +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(191,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(192,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(193,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(194,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(195,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(196,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(197,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(198,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +iy +ab +ad +ad +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(199,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +iy +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(200,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(201,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(202,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(203,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +iy +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(204,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(205,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +it +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(206,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +it +ab +ab +ab +ab +ab +ab +ab +ai +ai +ab +ab +ab +aj +aj +aj +aj +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +fQ +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(207,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ad +ai +ai +ab +ab +ab +aj +ab +aj +ab +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(208,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ai +ai +ad +ab +aj +aj +aj +aj +aj +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(209,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ad +ab +ab +aj +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(210,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(211,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +it +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(212,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(213,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(214,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +fQ +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(215,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(216,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(217,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(218,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +js +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(219,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(220,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ai +ai +ai +ai +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +fQ +aj +aj +aj +aj +aj +aj +aj +aj +"} +(221,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ai +ai +ai +ai +ad +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +fQ +aj +aj +aj +aj +aj +aj +aj +aj +"} +(222,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ai +ai +ai +ai +ad +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +fQ +aj +aj +aj +aj +aj +aj +aj +aj +"} +(223,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ai +ai +ai +ai +ad +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(224,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ai +ai +ai +ai +ad +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +fQ +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(225,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +gP +ai +ai +ai +ai +ad +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +fQ +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(226,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ai +ai +ai +ai +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +ab +ab +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(227,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ai +ai +ai +ai +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +ab +ab +ab +al +al +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(228,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +ab +al +al +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +fQ +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(229,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +fQ +fQ +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(230,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +fQ +fQ +fQ +fQ +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(231,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +fQ +fQ +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(232,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +it +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(233,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(234,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(235,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(236,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(237,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +gP +js +ab +ad +ad +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(238,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(239,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +ab +aj +aj +aj +aj +ab +ab +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(240,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +ab +ab +aj +ab +aj +ab +ab +ab +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(241,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(242,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(243,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(244,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(245,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(246,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(247,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(248,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(249,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(250,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ab +ab +ad +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(251,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +al +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(252,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(253,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +js +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(254,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +js +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(255,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} diff --git a/_maps/cit_map_files/OmegaStation/OmegaStation.dmm b/_maps/cit_map_files/OmegaStation/OmegaStation.dmm index 8234e0bf62..278ab1d815 100644 --- a/_maps/cit_map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/cit_map_files/OmegaStation/OmegaStation.dmm @@ -138,7 +138,7 @@ "aas" = ( /obj/item/storage/toolbox/mechanical, /obj/item/wrench, -/obj/item/device/multitool, +/obj/item/multitool, /obj/structure/cable/white{ icon_state = "1-2" }, @@ -262,7 +262,7 @@ "aaE" = ( /obj/item/folder/red, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/structure/cable/white{ icon_state = "1-2" }, @@ -347,8 +347,8 @@ /obj/structure/table/reinforced, /obj/machinery/recharger, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/radio/intercom{ +/obj/item/assembly/flash/handheld, +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -28 }, @@ -439,9 +439,9 @@ /area/bridge) "aaU" = ( /obj/structure/table/reinforced, -/obj/item/device/aicard, +/obj/item/aicard, /obj/item/storage/secure/briefcase, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 28 }, @@ -517,7 +517,6 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/machinery/light, /turf/open/floor/plasteel/vault/side{ dir = 1 }, @@ -527,7 +526,7 @@ /obj/machinery/chem_dispenser/drinks{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 28; pixel_y = 24 @@ -550,8 +549,8 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel/vault/side{ - dir = 5 +/turf/open/floor/plasteel/vault{ + dir = 8 }, /area/bridge) "abd" = ( @@ -568,8 +567,9 @@ dir = 4 }, /obj/effect/landmark/event_spawn, +/obj/machinery/holopad, /turf/open/floor/plasteel/vault{ - dir = 5 + dir = 8 }, /area/bridge) "abe" = ( @@ -582,7 +582,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, -/obj/machinery/light, /turf/open/floor/plasteel/vault/side{ dir = 1 }, @@ -680,18 +679,14 @@ /turf/open/floor/plasteel, /area/bridge) "abm" = ( -/obj/machinery/status_display, -/turf/closed/wall, -/area/bridge) -"abn" = ( /obj/structure/cable/white{ icon_state = "0-2" }, /obj/machinery/modular_computer/console/preset/command{ dir = 4 }, -/turf/open/floor/plasteel/vault{ - dir = 5 +/turf/open/floor/plasteel/darkpurple/side{ + dir = 8 }, /area/bridge) "abo" = ( @@ -703,6 +698,8 @@ /obj/structure/cable/white{ icon_state = "1-2" }, +/obj/structure/table/wood, +/obj/item/storage/lockbox/medal, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -794,39 +791,34 @@ /turf/closed/wall, /area/bridge) "abB" = ( -/obj/structure/table/wood, -/obj/item/folder/blue, -/obj/item/pen, +/obj/machinery/computer/robotics{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, /obj/machinery/firealarm{ dir = 8; pixel_x = -24 }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/vault/side{ - dir = 4 +/turf/open/floor/plasteel/darkpurple/side{ + dir = 8 }, /area/bridge) "abC" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, /obj/structure/cable/white{ icon_state = "2-4" }, -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 +/turf/open/floor/plasteel/vault/side{ + dir = 4 }, /area/bridge) "abD" = ( /obj/structure/cable/white{ icon_state = "4-8" }, -/turf/open/floor/plasteel/vault/side{ - dir = 4 +/turf/open/floor/plasteel/vault{ + dir = 8 }, /area/bridge) "abE" = ( @@ -836,38 +828,34 @@ /obj/structure/cable/white{ icon_state = "1-4" }, -/obj/machinery/holopad, -/turf/open/floor/plasteel/vault, -/area/bridge) -"abF" = ( /obj/structure/table/wood, -/obj/item/lighter, -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/obj/structure/cable/white{ - icon_state = "1-2" - }, +/obj/item/paper_bin, +/obj/item/pen, /turf/open/floor/plasteel/vault{ dir = 8 }, /area/bridge) -"abG" = ( -/obj/structure/table/wood, -/obj/item/storage/secure/briefcase{ - pixel_x = 5; - pixel_y = 5 +"abF" = ( +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/vault/side{ + dir = 8 + }, +/area/bridge) +"abG" = ( +/obj/machinery/computer/mecha{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 }, -/obj/item/storage/lockbox/medal, /obj/machinery/airalarm{ dir = 8; pixel_x = 24 }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/vault/side{ - dir = 8 +/turf/open/floor/plasteel/darkpurple/side{ + dir = 4 }, /area/bridge) "abH" = ( @@ -1126,11 +1114,10 @@ /turf/open/floor/carpet, /area/bridge) "acj" = ( -/obj/structure/table/wood, -/obj/item/storage/fancy/donut_box, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/item/beacon, /turf/open/floor/carpet, /area/bridge) "ack" = ( @@ -1141,6 +1128,9 @@ dir = 4 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/structure/cable/white{ + icon_state = "2-8" + }, /turf/open/floor/plasteel/grimy, /area/bridge) "acl" = ( @@ -1171,7 +1161,7 @@ /area/bridge) "aco" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/newscaster{ pixel_x = -32 }, @@ -1495,7 +1485,7 @@ dir = 4 }, /turf/open/floor/plasteel/vault/side{ - dir = 1 + dir = 5 }, /area/bridge) "acY" = ( @@ -1531,13 +1521,6 @@ /area/bridge) "ada" = ( /obj/structure/table/wood, -/obj/item/clothing/mask/cigarette/cigar/cohiba{ - pixel_x = 3 - }, -/obj/item/clothing/mask/cigarette/cigar/havana{ - pixel_x = -3 - }, -/obj/item/clothing/mask/cigarette/cigar, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -1545,6 +1528,14 @@ c_tag = "Bridge Center"; dir = 1 }, +/obj/item/storage/fancy/donut_box, +/obj/item/clothing/mask/cigarette/cigar/havana{ + pixel_x = -3 + }, +/obj/item/clothing/mask/cigarette/cigar/cohiba{ + pixel_x = 3 + }, +/obj/item/clothing/mask/cigarette/cigar, /turf/open/floor/carpet, /area/bridge) "adb" = ( @@ -1564,6 +1555,9 @@ /obj/structure/cable/white{ icon_state = "1-2" }, +/obj/structure/cable/white{ + icon_state = "2-8" + }, /turf/open/floor/plasteel/grimy, /area/bridge) "add" = ( @@ -1874,7 +1868,7 @@ /area/crew_quarters/heads/captain/private) "adN" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 28 }, @@ -1966,11 +1960,7 @@ /turf/closed/wall, /area/crew_quarters/heads/hop) "adZ" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "cargounload" - }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -28 }, @@ -1980,6 +1970,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/machinery/conveyor/inverted{ + dir = 5; + id = "cargounload" + }, /turf/open/floor/plasteel, /area/quartermaster/storage) "aea" = ( @@ -2258,6 +2252,9 @@ uses = 10 }, /obj/effect/turf_decal/bot, +/obj/structure/cable/white{ + icon_state = "2-8" + }, /turf/open/floor/plasteel/vault, /area/ai_monitored/nuke_storage) "aeF" = ( @@ -2370,7 +2367,7 @@ pixel_x = 24; pixel_y = 38 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 28; pixel_y = 24 @@ -2438,7 +2435,7 @@ /area/asteroid/nearstation) "afd" = ( /obj/structure/table/wood, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/item/restraints/handcuffs, /turf/open/floor/plasteel/vault/side{ dir = 4 @@ -2538,7 +2535,7 @@ /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) "afo" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; freerange = 1; name = "Captain's Intercom"; @@ -2801,8 +2798,9 @@ /turf/open/floor/plasteel/neutral, /area/quartermaster/storage) "afH" = ( -/obj/machinery/conveyor_switch{ - id = "cargounload" +/obj/machinery/conveyor_switch/oneway{ + id = "cargounload"; + dir = 8 }, /turf/open/floor/plasteel/brown{ dir = 4 @@ -2846,8 +2844,8 @@ "afP" = ( /obj/structure/table/wood, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/camera/detective, -/obj/item/device/radio/intercom{ +/obj/item/camera/detective, +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -2958,7 +2956,7 @@ /area/crew_quarters/heads/captain/private) "aga" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, +/obj/item/flashlight/lamp/green, /obj/item/toy/figure/captain, /turf/open/floor/carpet, /area/crew_quarters/heads/captain/private) @@ -3453,7 +3451,7 @@ "agX" = ( /obj/structure/table/reinforced, /obj/item/aiModule/reset, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -3525,7 +3523,7 @@ "ahd" = ( /obj/structure/table/reinforced, /obj/item/aiModule/supplied/quarantine, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; listening = 0; @@ -3637,15 +3635,15 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "ahn" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "cargoload" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/stripes/line{ dir = 9 }, /obj/effect/turf_decal/stripes/corner, +/obj/machinery/conveyor{ + dir = 5; + id = "cargoload" + }, /turf/open/floor/plating, /area/quartermaster/storage) "aho" = ( @@ -3840,7 +3838,7 @@ /area/security/detectives_office) "ahF" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/item/storage/secure/safe{ pixel_x = 32 }, @@ -3972,6 +3970,19 @@ /area/ai_monitored/nuke_storage) "ahT" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/flasher{ + id = "AI"; + pixel_x = 9; + pixel_y = -24 + }, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1447; + listening = 0; + name = "AI Intercom"; + pixel_x = -4; + pixel_y = -28 + }, /turf/open/floor/circuit/green, /area/ai_monitored/nuke_storage) "ahU" = ( @@ -4284,18 +4295,6 @@ name = "AI Vault Chamber"; req_access_txt = "16" }, -/obj/machinery/flasher{ - id = "AI"; - pixel_x = 26; - pixel_y = -10 - }, -/obj/item/device/radio/intercom{ - broadcasting = 1; - frequency = 1447; - listening = 0; - name = "AI Intercom"; - pixel_x = 28 - }, /obj/structure/cable/white{ icon_state = "1-2" }, @@ -4397,12 +4396,12 @@ }, /area/quartermaster/storage) "aiL" = ( -/obj/machinery/conveyor_switch{ - id = "cargoload" - }, /obj/machinery/light{ dir = 1 }, +/obj/machinery/conveyor_switch/oneway{ + id = "cargoload" + }, /turf/open/floor/plasteel/brown{ dir = 5 }, @@ -4419,7 +4418,7 @@ "aiN" = ( /obj/structure/table/reinforced, /obj/item/folder/yellow, -/obj/item/device/multitool{ +/obj/item/multitool{ pixel_x = 6 }, /obj/item/pen/red, @@ -4507,7 +4506,7 @@ /area/security/brig) "aiY" = ( /obj/structure/closet/crate/bin, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; pixel_y = 24 @@ -4664,7 +4663,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 24 }, @@ -4800,7 +4799,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 24 }, @@ -4977,7 +4976,7 @@ pixel_x = 3; pixel_y = -3 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -5049,8 +5048,8 @@ /obj/structure/table/reinforced, /obj/item/folder/red, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/item/key/security, /turf/open/floor/plasteel/red/side{ dir = 8 @@ -6447,7 +6446,7 @@ }, /obj/item/storage/toolbox/mechanical, /obj/item/stack/cable_coil/white, -/obj/item/device/multitool, +/obj/item/multitool, /obj/machinery/button/door{ id = "evashutters"; name = "E.V.A. Shutters"; @@ -6463,7 +6462,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -6528,7 +6527,7 @@ pixel_x = 24; pixel_y = -24 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 28 }, @@ -6558,7 +6557,7 @@ name = "protective hat"; pixel_y = 9 }, -/obj/item/device/flashlight, +/obj/item/flashlight, /turf/open/floor/plating, /area/asteroid/nearstation) "amH" = ( @@ -6725,9 +6724,9 @@ "amV" = ( /obj/structure/table/reinforced, /obj/item/storage/belt/utility, -/obj/item/device/radio, -/obj/item/device/radio, -/obj/item/device/gps, +/obj/item/radio, +/obj/item/radio, +/obj/item/gps, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/teleporter) @@ -6815,10 +6814,10 @@ "anh" = ( /obj/structure/table/reinforced, /obj/item/storage/belt/utility, -/obj/item/device/radio, -/obj/item/device/radio, -/obj/item/device/flashlight/flare, -/obj/item/device/flashlight/flare, +/obj/item/radio, +/obj/item/radio, +/obj/item/flashlight/flare, +/obj/item/flashlight/flare, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) @@ -6907,7 +6906,7 @@ /area/quartermaster/miningdock) "anq" = ( /obj/structure/closet/secure_closet/miner, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -6964,8 +6963,6 @@ }, /obj/item/gun/energy/e_gun/dragnet, /obj/item/gun/energy/e_gun/dragnet, -/obj/item/gun/energy/pumpaction/blaster, -/obj/item/gun/energy/pumpaction/blaster, /turf/open/floor/plasteel/red/corner{ dir = 8 }, @@ -7143,6 +7140,7 @@ "anN" = ( /obj/machinery/holopad, /obj/effect/turf_decal/bot, +/obj/item/beacon, /turf/open/floor/plasteel, /area/teleporter) "anP" = ( @@ -7245,6 +7243,7 @@ "anW" = ( /obj/machinery/holopad, /obj/effect/turf_decal/bot, +/obj/item/beacon, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "anX" = ( @@ -8197,7 +8196,7 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -8260,7 +8259,7 @@ /area/teleporter) "apO" = ( /obj/machinery/shieldwallgen, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 28 }, @@ -8406,10 +8405,10 @@ /obj/item/storage/toolbox/emergency, /obj/item/tank/internals/oxygen, /obj/item/tank/internals/oxygen, -/obj/item/device/flashlight, -/obj/item/device/flashlight, -/obj/item/device/flashlight/flare, -/obj/item/device/flashlight/flare, +/obj/item/flashlight, +/obj/item/flashlight, +/obj/item/flashlight/flare, +/obj/item/flashlight/flare, /turf/open/floor/plasteel, /area/maintenance/starboard/central) "aqc" = ( @@ -8420,7 +8419,7 @@ }, /obj/item/tank/jetpack/carbondioxide, /obj/item/wrench, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -28 }, @@ -8613,10 +8612,10 @@ "aqv" = ( /obj/effect/decal/cleanable/oil, /obj/structure/closet/crate, -/obj/item/device/flashlight, -/obj/item/device/flashlight, -/obj/item/device/flashlight/flare, -/obj/item/device/flashlight/flare, +/obj/item/flashlight, +/obj/item/flashlight, +/obj/item/flashlight/flare, +/obj/item/flashlight/flare, /obj/item/stock_parts/cell/high, /obj/item/crowbar/red, /obj/effect/turf_decal/bot, @@ -8658,7 +8657,7 @@ /area/maintenance/port/fore) "aqI" = ( /obj/structure/closet/secure_closet/security/sec, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -8794,23 +8793,23 @@ /area/storage/primary) "aqU" = ( /obj/structure/table/reinforced, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, /obj/effect/spawner/lootdrop/maintenance, /obj/machinery/status_display{ pixel_y = 32 }, /obj/effect/turf_decal/bot, -/obj/item/device/multitool, -/obj/item/device/multitool, +/obj/item/multitool, +/obj/item/multitool, /turf/open/floor/plasteel, /area/storage/primary) "aqV" = ( /obj/structure/table/reinforced, /obj/item/crowbar, /obj/item/wrench, -/obj/item/device/gps, +/obj/item/gps, /obj/machinery/light{ dir = 1 }, @@ -8996,10 +8995,8 @@ }, /area/quartermaster/miningdock) "arr" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped{ - dir = 8; - filter_type = "n2o"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/n2o{ + dir = 8 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/vault{ @@ -9048,7 +9045,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 24 }, @@ -9320,7 +9317,7 @@ /area/storage/primary) "arU" = ( /obj/machinery/holopad, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -9679,7 +9676,7 @@ "asO" = ( /obj/structure/table/reinforced, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/machinery/firealarm{ dir = 1; pixel_y = -26 @@ -9694,15 +9691,15 @@ /area/security/brig) "asP" = ( /obj/structure/table/reinforced, -/obj/item/device/radio{ +/obj/item/radio{ pixel_x = 5; pixel_y = 5 }, -/obj/item/device/radio{ +/obj/item/radio{ pixel_x = -5; pixel_y = 5 }, -/obj/item/device/radio, +/obj/item/radio, /obj/machinery/newscaster/security_unit{ pixel_y = -32 }, @@ -9716,11 +9713,11 @@ "asQ" = ( /obj/structure/table/reinforced, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/machinery/status_display{ pixel_y = -32 }, -/obj/item/device/flashlight/seclite, +/obj/item/flashlight/seclite, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -9831,7 +9828,7 @@ "asX" = ( /obj/structure/table/reinforced, /obj/item/storage/toolbox/mechanical, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ icon_state = "4-8" @@ -10110,7 +10107,7 @@ "atQ" = ( /obj/structure/table/reinforced, /obj/item/storage/toolbox/mechanical, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -10245,11 +10242,11 @@ /area/maintenance/port/central) "atX" = ( /obj/structure/table/wood, -/obj/item/device/camera_film{ +/obj/item/camera_film{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/camera_film, +/obj/item/camera_film, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -10368,7 +10365,7 @@ }, /obj/item/stack/cable_coil/random, /obj/item/stack/cable_coil/random, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -10695,7 +10692,7 @@ /area/crew_quarters/theatre) "ava" = ( /obj/structure/table/wood, -/obj/item/device/instrument/guitar, +/obj/item/instrument/guitar, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -10748,7 +10745,7 @@ /area/crew_quarters/bar/atrium) "avg" = ( /obj/structure/table/wood, -/obj/item/device/paicard, +/obj/item/paicard, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -10896,10 +10893,8 @@ }, /area/engine/atmos) "avy" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped{ - dir = 4; - filter_type = "o2"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/o2{ + dir = 4 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/vault{ @@ -11032,7 +11027,7 @@ icon_state = "crateopen" }, /obj/item/clothing/shoes/jackboots, -/obj/item/device/radio, +/obj/item/radio, /obj/item/storage/secure/briefcase, /obj/effect/spawner/lootdrop/maintenance{ lootcount = 2; @@ -11197,7 +11192,7 @@ /area/maintenance/port/central) "awf" = ( /obj/structure/table/wood, -/obj/item/device/camera, +/obj/item/camera, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -11389,7 +11384,7 @@ /area/maintenance/starboard/central) "awy" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -11776,7 +11771,7 @@ /obj/machinery/newscaster{ pixel_y = 32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -11807,7 +11802,7 @@ }, /area/hallway/primary/port) "axD" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -12087,7 +12082,7 @@ "ayr" = ( /obj/structure/table/reinforced, /obj/item/storage/belt/utility, -/obj/item/device/t_scanner, +/obj/item/t_scanner, /obj/structure/cable/white{ icon_state = "2-4" }, @@ -12172,7 +12167,7 @@ /area/crew_quarters/dorms) "ayE" = ( /obj/structure/table/wood, -/obj/item/device/instrument/violin, +/obj/item/instrument/violin, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -12335,7 +12330,7 @@ }, /obj/item/crowbar, /obj/item/wrench, -/obj/item/device/radio, +/obj/item/radio, /obj/machinery/airalarm{ pixel_y = 23 }, @@ -12349,7 +12344,7 @@ "ayX" = ( /obj/structure/table/reinforced, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/machinery/status_display{ pixel_y = 32 }, @@ -12365,7 +12360,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 24 }, @@ -12402,10 +12397,8 @@ /turf/open/floor/plating, /area/hallway/secondary/exit) "azl" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped{ - dir = 4; - filter_type = "n2"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/n2{ + dir = 4 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/vault{ @@ -12534,12 +12527,12 @@ /area/engine/atmos) "azA" = ( /obj/structure/table, -/obj/item/device/paicard, +/obj/item/paicard, /turf/open/floor/plasteel/neutral, /area/crew_quarters/dorms) "azB" = ( /obj/structure/table, -/obj/item/device/camera, +/obj/item/camera, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral, /area/crew_quarters/dorms) @@ -13253,16 +13246,15 @@ icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 5 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 }, /turf/open/floor/plasteel, /area/engine/atmos) "aBB" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 8; - name = "External Waste Ports to Filter"; - on = 1 + name = "External Waste Ports to Filter" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ @@ -13337,7 +13329,7 @@ /area/engine/atmos) "aBJ" = ( /obj/structure/table/reinforced, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/requests_console{ department = "Atmospherics Office"; departmentType = 0; @@ -13617,7 +13609,7 @@ icon_state = "4-8" }, /obj/item/folder/red, -/obj/item/device/radio, +/obj/item/radio, /obj/effect/turf_decal/stripes/line{ dir = 2 }, @@ -13731,15 +13723,15 @@ /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel/vault/side{ dir = 1 }, /area/engine/atmos) "aCF" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; - name = "Air to External Air Ports"; - on = 1 + name = "Air to External Air Ports" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/camera{ @@ -13870,7 +13862,7 @@ /area/crew_quarters/dorms) "aCP" = ( /obj/structure/table/wood, -/obj/item/device/instrument/eguitar, +/obj/item/instrument/eguitar, /obj/item/toy/crayon/spraycan/lubecan{ charges = 5 }, @@ -14056,7 +14048,6 @@ height = 18; id = "emergency_home"; name = "OmegaStation emergency evac bay"; - turf_type = /turf/open/space; width = 30 }, /turf/open/space/basic, @@ -14097,6 +14088,7 @@ dir = 1 }, /obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel, /area/engine/atmos) "aDu" = ( @@ -14363,7 +14355,7 @@ /turf/open/floor/plasteel/white, /area/crew_quarters/kitchen) "aDX" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 28 }, @@ -14435,7 +14427,7 @@ /obj/structure/sign/warning/nosmoking{ pixel_y = 32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -14519,7 +14511,7 @@ /obj/machinery/power/smes{ charge = 5e+006 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -14543,10 +14535,8 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, /obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel, /area/engine/engineering) "aEz" = ( @@ -14558,6 +14548,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 5 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, /turf/open/floor/plasteel, /area/engine/engineering) "aEA" = ( @@ -14753,10 +14746,10 @@ "aET" = ( /obj/structure/table/wood, /obj/item/storage/crayons, -/obj/item/device/flashlight/lamp/bananalamp{ +/obj/item/flashlight/lamp/bananalamp{ pixel_y = 5 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -14988,7 +14981,7 @@ /obj/item/stack/sheet/mineral/plasma{ amount = 20 }, -/obj/item/device/gps/engineering{ +/obj/item/gps/engineering{ gpstag = "ENG0" }, /obj/machinery/light/small, @@ -14998,6 +14991,7 @@ /obj/effect/turf_decal/bot, /obj/item/areaeditor/blueprints, /obj/item/tank/jetpack/suit, +/obj/item/clothing/shoes/magboots/advance, /turf/open/floor/plasteel/vault/side{ dir = 8 }, @@ -15069,16 +15063,19 @@ dir = 10 }, /obj/item/clothing/glasses/meson/engine, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/engineering) "aFA" = ( /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engine/engineering) "aFB" = ( @@ -15304,7 +15301,7 @@ /area/crew_quarters/kitchen) "aFX" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -15325,6 +15322,7 @@ /area/hallway/primary/starboard) "aGa" = ( /obj/effect/landmark/event_spawn, +/obj/item/beacon, /turf/open/floor/plasteel/neutral, /area/hallway/secondary/exit) "aGb" = ( @@ -15728,7 +15726,7 @@ /area/crew_quarters/bar/atrium) "aGQ" = ( /obj/machinery/holopad, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 28 }, @@ -16444,10 +16442,9 @@ /turf/open/floor/engine, /area/engine/engineering) "aIl" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 8; - name = "Gas to Filter"; - on = 1 + name = "Gas to Filter" }, /obj/structure/cable{ icon_state = "4-8" @@ -16600,7 +16597,7 @@ /area/engine/engineering) "aIy" = ( /obj/structure/table/reinforced, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/requests_console{ department = "Engineering"; departmentType = 0; @@ -16713,7 +16710,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -16964,7 +16961,7 @@ /obj/machinery/power/terminal{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -16991,13 +16988,13 @@ /turf/open/floor/plasteel, /area/engine/gravity_generator) "aJo" = ( -/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/white{ icon_state = "0-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 }, +/obj/effect/spawner/structure/window/plasma/reinforced, /turf/open/floor/plating, /area/engine/gravity_generator) "aJp" = ( @@ -17077,13 +17074,13 @@ /turf/open/floor/engine, /area/engine/engineering) "aJA" = ( -/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/white{ icon_state = "0-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/effect/spawner/structure/window/plasma/reinforced, /turf/open/floor/plating, /area/engine/engineering) "aJB" = ( @@ -17237,7 +17234,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/bot, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -17694,7 +17691,7 @@ /area/engine/engineering) "aKM" = ( /obj/structure/table/reinforced, -/obj/item/device/lightreplacer, +/obj/item/lightreplacer, /obj/structure/cable/white{ icon_state = "1-8" }, @@ -18071,11 +18068,11 @@ /turf/open/floor/plasteel, /area/engine/gravity_generator) "aLL" = ( -/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/white, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, +/obj/effect/spawner/structure/window/plasma/reinforced, /turf/open/floor/plating, /area/engine/gravity_generator) "aLM" = ( @@ -18124,7 +18121,8 @@ /turf/closed/wall/r_wall/rust, /area/engine/supermatter) "aLR" = ( -/obj/machinery/door/airlock/atmos/glass{ +/obj/machinery/door/airlock/atmos/glass/critical{ + heat_proof = 1; name = "Supermatter Chamber"; req_access_txt = "24" }, @@ -18172,8 +18170,8 @@ /turf/open/floor/engine, /area/engine/engineering) "aLX" = ( -/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/white, +/obj/effect/spawner/structure/window/plasma/reinforced, /turf/open/floor/plating, /area/engine/engineering) "aLY" = ( @@ -18223,7 +18221,7 @@ pixel_y = 3 }, /obj/item/storage/box/lights/mixed, -/obj/item/device/lightreplacer, +/obj/item/lightreplacer, /obj/machinery/airalarm{ dir = 4; pixel_x = -23 @@ -18406,9 +18404,7 @@ /area/tcommsat/server) "aMK" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, /area/tcommsat/server) "aML" = ( @@ -18543,7 +18539,7 @@ /area/engine/engineering) "aNa" = ( /obj/machinery/suit_storage_unit/engine, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -18628,7 +18624,7 @@ /area/engine/engineering) "aNh" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -18676,7 +18672,7 @@ /obj/machinery/light_switch{ pixel_y = -24 }, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -18886,7 +18882,7 @@ /area/hallway/secondary/exit) "aNI" = ( /obj/structure/closet/crate, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -24 }, @@ -18947,7 +18943,7 @@ /obj/machinery/computer/telecomms/monitor{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 24 }, @@ -18984,7 +18980,10 @@ /turf/open/floor/engine, /area/engine/engineering) "aOa" = ( -/obj/machinery/power/supermatter_shard/crystal/engine, +/obj/machinery/power/supermatter_crystal/shard/engine{ + anchored = 1; + moveable = 0 + }, /turf/open/floor/engine, /area/engine/supermatter) "aOb" = ( @@ -19439,7 +19438,7 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 24 }, @@ -19719,7 +19718,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 24 }, @@ -19843,6 +19842,10 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/tcommsat/server) +"aPH" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/cryopod) "aPI" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -20288,7 +20291,7 @@ pixel_y = 3 }, /obj/item/book/manual/detective, -/obj/item/device/camera/detective, +/obj/item/camera/detective, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -20482,7 +20485,7 @@ /area/medical/morgue) "aRd" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Morgue"; req_access_txt = "5" }, @@ -20663,16 +20666,10 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/structure/fans/tiny, /turf/open/floor/plasteel/vault/side, /area/tcommsat/server) "aRE" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 2; - min_temperature = 80; - on = 1; - target_temperature = 80 - }, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel/vault/side, /area/tcommsat/server) @@ -20680,7 +20677,7 @@ /obj/structure/cable/white{ icon_state = "1-4" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -28 }, @@ -20699,10 +20696,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 2; - name = "Gas to Cooling Loop"; - on = 1 + name = "Gas to Cooling Loop" }, /turf/open/floor/engine, /area/engine/engineering) @@ -20784,10 +20780,9 @@ /turf/open/floor/engine, /area/engine/engineering) "aRQ" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 1; - name = "Gas to Cooling Loop"; - on = 1 + name = "Gas to Cooling Loop" }, /turf/open/floor/engine, /area/engine/engineering) @@ -20813,7 +20808,7 @@ /area/maintenance/port) "aRT" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/computer/security/telescreen/entertainment{ pixel_x = -32 }, @@ -20842,7 +20837,7 @@ /obj/structure/chair/office/dark{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 24 }, @@ -20852,7 +20847,7 @@ /area/library) "aRX" = ( /obj/structure/table/wood, -/obj/item/device/paicard, +/obj/item/paicard, /obj/machinery/newscaster{ pixel_y = 32 }, @@ -20898,7 +20893,7 @@ /area/library) "aSd" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/newscaster{ pixel_x = 32 }, @@ -20940,7 +20935,7 @@ dir = 4; pixel_x = -22 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26; pixel_y = 24 @@ -21234,7 +21229,7 @@ "aST" = ( /obj/structure/table/reinforced, /obj/item/storage/toolbox/mechanical, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/stripes/line, /turf/open/floor/engine, @@ -21243,9 +21238,8 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -21266,11 +21260,8 @@ /turf/open/floor/plasteel/dark, /area/engine/engineering) "aSW" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1; - min_temperature = 80; - on = 1; - target_temperature = 80 +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -21293,8 +21284,8 @@ /obj/item/tank/internals/emergency_oxygen/engi{ pixel_x = 5 }, -/obj/item/device/geiger_counter, -/obj/item/device/geiger_counter, +/obj/item/geiger_counter, +/obj/item/geiger_counter, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/stripes/line, /turf/open/floor/engine, @@ -21424,7 +21415,7 @@ dir = 1 }, /obj/machinery/door/window/southright, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -21490,7 +21481,7 @@ /area/hallway/primary/aft) "aTy" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/grimy, /area/crew_quarters/lounge) "aTz" = ( @@ -21819,7 +21810,7 @@ /area/library) "aUk" = ( /obj/structure/bodycontainer/morgue, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -21851,6 +21842,10 @@ c_tag = "Genetics Cloning"; dir = 4 }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, /turf/open/floor/plasteel/whiteblue/corner{ dir = 1 }, @@ -21969,14 +21964,14 @@ /obj/item/stock_parts/capacitor, /obj/item/stock_parts/manipulator, /obj/item/stock_parts/manipulator, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 28 }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plasteel/vault/side, /area/science/lab) "aUF" = ( @@ -22170,7 +22165,7 @@ /obj/machinery/light{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -22209,7 +22204,7 @@ /area/medical/morgue) "aVf" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Morgue"; req_access_txt = "5" }, @@ -22365,10 +22360,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/item/device/integrated_circuit_printer, -/obj/item/device/integrated_electronics/analyzer, -/obj/item/device/integrated_electronics/debugger, -/obj/item/device/integrated_electronics/wirer, +/obj/item/integrated_circuit_printer, +/obj/item/integrated_electronics/analyzer, +/obj/item/integrated_electronics/debugger, +/obj/item/integrated_electronics/wirer, /turf/open/floor/plasteel/vault/side, /area/science/lab) "aVy" = ( @@ -22496,7 +22491,7 @@ "aVN" = ( /obj/structure/table/wood, /obj/item/storage/bag/books, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/machinery/status_display{ pixel_x = -32 }, @@ -22510,7 +22505,7 @@ /area/library) "aVP" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/dark, /area/library) @@ -22658,18 +22653,18 @@ /area/medical/chemistry) "aWg" = ( /obj/structure/table/glass, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/timer{ +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/timer{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = 3; pixel_y = 3 }, @@ -22842,7 +22837,7 @@ "aWy" = ( /obj/structure/table/wood, /obj/item/storage/briefcase, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /turf/open/floor/plating, /area/maintenance/starboard/aft) "aWz" = ( @@ -22869,11 +22864,11 @@ /area/library) "aWC" = ( /obj/structure/table/wood, -/obj/item/device/camera_film{ +/obj/item/camera_film{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/camera_film, +/obj/item/camera_film, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/vault{ dir = 5 @@ -23530,7 +23525,7 @@ /area/medical/medbay/zone3) "aXQ" = ( /obj/structure/closet/secure_closet/medical3, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -23578,12 +23573,7 @@ /turf/open/floor/plasteel, /area/medical/medbay/zone3) "aXV" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 2; - min_temperature = 80; - on = 1; - target_temperature = 80 - }, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -23735,7 +23725,7 @@ /area/science/research) "aYm" = ( /obj/machinery/light, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -24 }, @@ -23779,11 +23769,8 @@ /turf/open/floor/plasteel/whitepurple/corner, /area/science/research) "aYq" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1; - min_temperature = 80; - on = 1; - target_temperature = 80 +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ + dir = 1 }, /obj/machinery/firealarm{ dir = 8; @@ -23801,7 +23788,7 @@ dir = 4 }, /obj/structure/cable/white, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -24 }, @@ -24226,7 +24213,7 @@ "aZq" = ( /obj/structure/table/wood, /obj/item/clothing/gloves/color/black, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/machinery/light/small{ dir = 1 }, @@ -24269,10 +24256,10 @@ "aZv" = ( /obj/structure/table/wood, /obj/item/folder, -/obj/item/device/laser_pointer{ +/obj/item/laser_pointer{ pixel_x = 3 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -24282,8 +24269,8 @@ /area/library) "aZw" = ( /obj/structure/table/wood, -/obj/item/device/taperecorder, -/obj/item/device/camera, +/obj/item/taperecorder, +/obj/item/camera, /obj/machinery/ai_status_display{ pixel_y = -32 }, @@ -24612,7 +24599,7 @@ /obj/item/screwdriver{ pixel_y = 5 }, -/obj/item/device/multitool, +/obj/item/multitool, /obj/item/clothing/head/welding, /obj/machinery/firealarm{ pixel_y = 24 @@ -24652,12 +24639,12 @@ /obj/structure/table/reinforced, /obj/item/stack/cable_coil/white, /obj/item/stack/cable_coil/white, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/machinery/newscaster{ pixel_y = 32 }, @@ -24666,15 +24653,15 @@ /area/science/robotics/lab) "bag" = ( /obj/item/paper_bin, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = 5; pixel_y = 7 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = 5; pixel_y = 7 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = 5; pixel_y = 7 }, @@ -24864,6 +24851,9 @@ /area/medical/medbay/zone3) "bay" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/defibrillator_mount/loaded{ + pixel_y = -32 + }, /turf/open/floor/plasteel/whiteblue/corner{ dir = 8 }, @@ -24957,7 +24947,7 @@ "baK" = ( /obj/structure/table/reinforced, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/radio, +/obj/item/radio, /obj/structure/reagent_dispensers/peppertank{ pixel_x = 32 }, @@ -25147,7 +25137,7 @@ /area/science/robotics/lab) "bbc" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plating, /area/maintenance/port) "bbd" = ( @@ -25620,7 +25610,7 @@ "bce" = ( /obj/structure/table/optable, /obj/effect/decal/cleanable/blood/old, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -25800,6 +25790,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 10 }, +/obj/structure/closet/crate/bin, /turf/open/floor/plasteel, /area/science/robotics/lab) "bcz" = ( @@ -25821,11 +25812,11 @@ /turf/open/floor/plasteel, /area/science/robotics/lab) "bcC" = ( -/obj/structure/closet/crate/bin, /obj/structure/extinguisher_cabinet{ pixel_x = 24 }, /obj/effect/turf_decal/bot, +/obj/machinery/aug_manipulator, /turf/open/floor/plasteel/vault/side{ dir = 8 }, @@ -25833,7 +25824,7 @@ "bcD" = ( /obj/structure/rack, /obj/item/weldingtool, -/obj/item/device/assembly/voice, +/obj/item/assembly/voice, /obj/item/clothing/head/welding, /obj/effect/spawner/lootdrop/maintenance, /obj/effect/turf_decal/stripes/line{ @@ -25907,7 +25898,7 @@ /area/maintenance/port) "bcR" = ( /obj/structure/table/wood, -/obj/item/device/instrument/guitar, +/obj/item/instrument/guitar, /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plating, /area/maintenance/port) @@ -26547,7 +26538,7 @@ /obj/structure/chair/office/light{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -26614,7 +26605,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "beg" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -24 }, @@ -26674,7 +26665,7 @@ /obj/item/stock_parts/cell/high, /obj/item/stock_parts/cell/high, /obj/machinery/cell_charger, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -26699,9 +26690,9 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/item/device/mmi, -/obj/item/device/mmi, -/obj/item/device/mmi, +/obj/item/mmi, +/obj/item/mmi, +/obj/item/mmi, /obj/structure/sign/departments/medbay/alt{ pixel_y = -32 }, @@ -26889,7 +26880,7 @@ /obj/machinery/newscaster{ pixel_x = -32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -24 }, @@ -27277,7 +27268,7 @@ /turf/closed/wall, /area/chapel/main) "bfz" = ( -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Crematorium"; req_access_txt = "27" }, @@ -27553,7 +27544,7 @@ }, /area/chapel/main) "bfX" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 24 }, @@ -27634,7 +27625,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -27783,7 +27774,7 @@ /area/chapel/main) "bgC" = ( /obj/structure/table/wood/fancy, -/obj/item/spellbook/oneuse/smoke, +/obj/item/book/granter/spell/smoke, /obj/item/nullrod, /obj/item/organ/heart, /obj/item/reagent_containers/food/drinks/bottle/holywater, @@ -27800,7 +27791,7 @@ pixel_x = -26; req_access_txt = "27" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -24 }, @@ -27839,7 +27830,7 @@ /area/chapel/main) "bgH" = ( /obj/structure/table/wood/fancy, -/obj/item/device/flashlight/lantern, +/obj/item/flashlight/lantern, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, @@ -28147,7 +28138,7 @@ /turf/closed/wall, /area/chapel/main) "bhr" = ( -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Crematorium"; req_access_txt = "27" }, @@ -28219,7 +28210,7 @@ /area/chapel/main) "bhy" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Chapel Hall" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -28544,7 +28535,7 @@ /area/chapel/main) "bii" = ( /obj/structure/table/wood/fancy, -/obj/item/device/flashlight/lantern, +/obj/item/flashlight/lantern, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -28800,7 +28791,7 @@ /turf/open/floor/plasteel/grimy, /area/chapel/main) "biH" = ( -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Chapel Quarters"; req_access_txt = "27" }, @@ -28844,7 +28835,7 @@ /area/chapel/main) "biM" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Chapel Office"; req_access_txt = "27" }, @@ -29286,11 +29277,8 @@ }, /area/science/xenobiology) "bjH" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1; - min_temperature = 80; - on = 1; - target_temperature = 80 +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -29305,7 +29293,7 @@ /obj/structure/extinguisher_cabinet{ pixel_y = -32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -29340,7 +29328,7 @@ /area/chapel/main) "bjM" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -29441,7 +29429,7 @@ pixel_x = 24; pixel_y = -24 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -24 }, @@ -29578,7 +29566,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bkC" = ( -/obj/item/device/beacon, +/obj/item/beacon, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/hallway/secondary/entry) @@ -29851,7 +29839,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "blA" = ( -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Mass Driver Room"; req_access_txt = "27" }, @@ -30346,18 +30334,6 @@ /obj/structure/grille, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"btj" = ( -/obj/docking_port/stationary{ - dir = 2; - dwidth = 4; - height = 17; - id = "arrivals_stationary"; - name = "omega arrivals"; - roundstart_template = /datum/map_template/shuttle/arrival/delta; - width = 9 - }, -/turf/open/space/basic, -/area/space) "btk" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -30513,17 +30489,6 @@ dir = 5 }, /area/tcommsat/server) -"buV" = ( -/obj/structure/cable/white{ - icon_state = "0-2" - }, -/obj/machinery/modular_computer/console/preset/research{ - dir = 8 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/bridge) "buW" = ( /turf/closed/wall/r_wall, /area/engine/supermatter) @@ -30566,7 +30531,6 @@ height = 13; id = "ferry_home"; name = "port bay 2"; - turf_type = /turf/open/space; width = 5 }, /turf/open/space/basic, @@ -30631,14 +30595,8 @@ /turf/closed/mineral/random/labormineral, /area/asteroid/nearstation) "bxj" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/closed/wall/r_wall, -/area/tcommsat/server) -"bxk" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 + dir = 10 }, /turf/closed/wall/r_wall, /area/tcommsat/server) @@ -30997,9 +30955,6 @@ dir = 1 }, /area/engine/atmos) -"bSm" = ( -/turf/closed/wall, -/area/crew_quarters/cryopod) "bYE" = ( /obj/structure/sign/warning/fire, /obj/machinery/atmospherics/pipe/simple/general/visible{ @@ -31122,6 +31077,17 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) +"cKy" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/white{ + icon_state = "0-2" + }, +/obj/structure/cable/white, +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/ai_monitored/nuke_storage) "cRz" = ( /obj/machinery/button/door{ id = "supplybridge"; @@ -31256,9 +31222,6 @@ }, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) -"dTj" = ( -/turf/open/floor/plasteel/purple, -/area/crew_quarters/cryopod) "dWc" = ( /turf/closed/mineral/random/labormineral, /area/space) @@ -31333,6 +31296,13 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) +"ezi" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/flora/ausbushes/ppflowers, +/turf/open/floor/grass, +/area/hallway/secondary/entry) "ezP" = ( /obj/machinery/atmospherics/pipe/simple/general/visible, /obj/effect/spawner/structure/window/plasma/reinforced, @@ -31460,6 +31430,18 @@ /obj/item/wrench, /turf/open/space, /area/space/nearstation) +"fsl" = ( +/obj/docking_port/stationary{ + dir = 2; + dwidth = 2; + height = 16; + id = "arrivals_stationary"; + name = "omega arrivals"; + roundstart_template = /datum/map_template/shuttle/arrival/omega; + width = 5 + }, +/turf/open/space/basic, +/area/space) "fsJ" = ( /obj/structure/cable{ icon_state = "4-8" @@ -31532,9 +31514,6 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) -"fSE" = ( -/turf/closed/wall/r_wall, -/area/space) "fWz" = ( /obj/machinery/door/airlock/external{ name = "External Docking Port"; @@ -31573,6 +31552,11 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner, /area/hallway/primary/port) +"ggq" = ( +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/bridge) "gii" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -31599,11 +31583,6 @@ dir = 5 }, /area/engine/atmos) -"gxL" = ( -/obj/structure/cable/white, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/hallway/primary/central) "gyV" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -31644,10 +31623,8 @@ }, /area/engine/atmos) "gVX" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped{ - dir = 8; - filter_type = "co2"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/co2{ + dir = 8 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/vault{ @@ -31725,6 +31702,18 @@ }, /turf/open/floor/engine/co2, /area/engine/atmos) +"hQh" = ( +/obj/structure/cable/white{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/cryopod"; + dir = 2; + name = "Cryogenics APC"; + pixel_y = -24 + }, +/turf/open/floor/plasteel/purple, +/area/crew_quarters/cryopod) "hUG" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -31779,18 +31768,6 @@ heat_capacity = 1e+006 }, /area/hallway/primary/aft) -"ilY" = ( -/obj/structure/cable/white{ - icon_state = "0-8" - }, -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/cryopod"; - dir = 2; - name = "Cryogenics APC"; - pixel_y = -24 - }, -/turf/open/floor/plasteel/purple, -/area/crew_quarters/cryopod) "iqC" = ( /obj/machinery/air_sensor/atmos/carbon_tank, /turf/open/floor/engine/co2, @@ -31809,14 +31786,18 @@ /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "iIj" = ( -/obj/machinery/atmospherics/components/trinary/mixer/flipped{ - dir = 4; - node1_concentration = 0.8; - node2_concentration = 0.2; - on = 1 +/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) +"iJz" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/flora/ausbushes/fullgrass, +/turf/open/floor/grass, +/area/hallway/secondary/entry) "iJY" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/structure/cable{ @@ -31997,6 +31978,9 @@ }, /turf/closed/wall/r_wall/rust, /area/engine/atmos) +"jIn" = ( +/turf/closed/wall, +/area/crew_quarters/cryopod) "kaA" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 1 @@ -32099,6 +32083,21 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) +"luP" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/flora/ausbushes/ywflowers, +/turf/open/floor/grass, +/area/hallway/secondary/entry) +"lvt" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/vacuum, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/storage) "lvw" = ( /obj/machinery/atmospherics/pipe/simple/orange/visible, /obj/effect/decal/cleanable/dirt, @@ -32122,7 +32121,7 @@ /area/hydroponics) "lAs" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 24 }, @@ -32180,6 +32179,13 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) +"lTY" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/flora/ausbushes/ywflowers, +/turf/open/floor/grass, +/area/hallway/secondary/entry) "lUu" = ( /obj/machinery/portable_atmospherics/canister/air, /obj/machinery/light/small, @@ -32283,6 +32289,10 @@ /obj/item/paper/guides/jobs/hydroponics, /turf/open/floor/plasteel/neutral, /area/hydroponics) +"mLI" = ( +/obj/machinery/cryopod, +/turf/open/floor/plasteel/purple, +/area/crew_quarters/cryopod) "mQi" = ( /turf/closed/wall/rust, /area/maintenance/starboard/central) @@ -32457,6 +32467,17 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/engine/atmos) +"oKz" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault/side{ + dir = 9 + }, +/area/bridge) "oOk" = ( /turf/open/floor/engine/plasma, /area/engine/atmos) @@ -32533,9 +32554,6 @@ dir = 5 }, /area/science/xenobiology) -"psC" = ( -/turf/closed/wall, -/area/hallway/primary/central) "pvX" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/orange/visible, @@ -32573,6 +32591,13 @@ heat_capacity = 1e+006 }, /area/hallway/primary/starboard/fore) +"pEA" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/flora/ausbushes/grassybush, +/turf/open/floor/grass, +/area/hallway/secondary/entry) "pEH" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, @@ -32600,6 +32625,13 @@ /obj/structure/grille, /turf/open/space/basic, /area/space/nearstation) +"qcg" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/flora/ausbushes/grassybush, +/turf/open/floor/grass, +/area/hallway/secondary/entry) "qdt" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -32788,6 +32820,11 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/engine/atmos) +"rTn" = ( +/obj/structure/cable/white, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/central) "rVj" = ( /obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/atmos/air_output{ dir = 1 @@ -32827,10 +32864,10 @@ dir = 4 }, /area/hallway/primary/starboard) -"spW" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/crew_quarters/cryopod) +"spw" = ( +/obj/machinery/computer/bank_machine, +/turf/open/floor/circuit/green, +/area/ai_monitored/nuke_storage) "sqz" = ( /turf/closed/wall, /area/hallway/primary/starboard) @@ -32860,7 +32897,6 @@ height = 17; id = "syndicate_sw"; name = "southwest of station"; - turf_type = /turf/open/space; width = 23 }, /turf/open/space, @@ -32868,20 +32904,6 @@ "swv" = ( /turf/closed/wall/r_wall/rust, /area/bridge) -"swx" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/structure/cable/white{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/vault/side{ - dir = 9 - }, -/area/bridge) "swy" = ( /turf/open/floor/plasteel/vault/side{ dir = 8 @@ -32896,14 +32918,6 @@ "swC" = ( /turf/closed/wall/r_wall/rust, /area/crew_quarters/heads/captain/private) -"swD" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/vault/side{ - dir = 8 - }, -/area/bridge) "swF" = ( /obj/structure/sign/warning/securearea, /turf/closed/wall/rust, @@ -33040,6 +33054,12 @@ /obj/structure/sign/warning/vacuum, /turf/closed/wall/rust, /area/maintenance/starboard) +"sCb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/medbay/zone3) "sCr" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -33246,9 +33266,9 @@ /obj/structure/table, /obj/item/clipboard, /obj/item/crowbar/red, -/obj/item/device/aicard, -/obj/item/device/analyzer, -/obj/item/device/assembly/flash/handheld, +/obj/item/aicard, +/obj/item/analyzer, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel/vault/side{ dir = 8 }, @@ -34221,7 +34241,7 @@ /turf/open/floor/circuit/green, /area/ai_monitored/turret_protected/ai) "sLV" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 1; listening = 1; @@ -34229,14 +34249,14 @@ pixel_x = -27; pixel_y = -7 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_y = -27 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; broadcasting = 0; freerange = 1; @@ -34408,7 +34428,7 @@ "sMv" = ( /obj/item/crowbar, /obj/item/wrench, -/obj/item/device/mmi, +/obj/item/mmi, /obj/structure/table, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/vault{ @@ -34421,7 +34441,7 @@ /area/ai_monitored/turret_protected/ai) "sMx" = ( /obj/item/folder/blue, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/structure/table, /turf/open/floor/plasteel/vault{ dir = 8 @@ -34476,7 +34496,7 @@ id = "AI"; pixel_x = -26 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; listening = 0; @@ -34582,7 +34602,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; listening = 0; @@ -34634,6 +34654,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/item/beacon, /turf/open/floor/plasteel/vault/side{ dir = 5 }, @@ -34672,10 +34693,9 @@ /area/ai_monitored/turret_protected/aisat_interior) "sNf" = ( /obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; - name = "Waste Out"; - on = 1 + name = "Waste Out" }, /obj/structure/cable/yellow{ icon_state = "1-8" @@ -34871,6 +34891,10 @@ }, /turf/open/floor/plasteel/vault, /area/ai_monitored/turret_protected/aisat_interior) +"sNz" = ( +/obj/item/beacon, +/turf/open/floor/carpet, +/area/crew_quarters/lounge) "sNA" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -35019,10 +35043,10 @@ /obj/item/stack/sheet/glass{ amount = 20 }, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/mmi, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/mmi, +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, @@ -35307,6 +35331,13 @@ "sPY" = ( /turf/open/floor/plating, /area/maintenance/starboard/aft) +"sSy" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/flora/ausbushes/ppflowers, +/turf/open/floor/grass, +/area/hallway/secondary/entry) "tac" = ( /obj/structure/grille, /obj/machinery/meter, @@ -35363,10 +35394,7 @@ dir = 8 }, /area/engine/atmos) -"txm" = ( -/obj/machinery/computer/cryopod{ - pixel_x = 28 - }, +"tAC" = ( /turf/open/floor/plasteel/purple, /area/crew_quarters/cryopod) "tKM" = ( @@ -35691,6 +35719,9 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) +"vGz" = ( +/turf/closed/wall, +/area/hallway/primary/central) "vJk" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ @@ -35717,10 +35748,6 @@ "vMb" = ( /turf/open/floor/engine/n2o, /area/engine/atmos) -"vMJ" = ( -/obj/machinery/cryopod, -/turf/open/floor/plasteel/purple, -/area/crew_quarters/cryopod) "vVA" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 @@ -35779,14 +35806,32 @@ /obj/structure/lattice/catwalk, /turf/open/floor/plating/airless, /area/space/nearstation) +"wkO" = ( +/obj/structure/cable/white{ + icon_state = "0-2" + }, +/obj/machinery/modular_computer/console/preset/research{ + dir = 8 + }, +/turf/open/floor/plasteel/darkpurple/side{ + dir = 4 + }, +/area/bridge) "wqL" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible{ dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) +"wSl" = ( +/obj/machinery/computer/cryopod{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/purple, +/area/crew_quarters/cryopod) "wUF" = ( -/obj/machinery/door/airlock/atmos/glass{ +/obj/machinery/door/airlock/atmos/glass/critical{ + heat_proof = 1; name = "Supermatter Chamber"; req_access_txt = "24" }, @@ -35805,6 +35850,13 @@ }, /turf/open/floor/plasteel, /area/science/xenobiology) +"wWj" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/flora/ausbushes/fullgrass, +/turf/open/floor/grass, +/area/hallway/secondary/entry) "wWz" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ dir = 4 @@ -35851,18 +35903,6 @@ /turf/open/floor/plasteel, /area/engine/atmos) "xtL" = ( -/obj/machinery/embedded_controller/radio/airlock_controller{ - name = "Incinerator Access Console"; - airpump_tag = "incinerator_airlock_pump"; - exterior_door_tag = "incinerator_airlock_exterior"; - id_tag = "incinerator_access_control"; - interior_door_tag = "incinerator_airlock_interior"; - pixel_x = 8; - pixel_y = -24; - sanitize_external = 1; - sensor_tag = "incinerator_airlock_sensor"; - req_access_txt = "12" - }, /obj/machinery/button/ignition{ id = "Incinerator"; pixel_x = 8; @@ -35931,10 +35971,8 @@ /turf/open/floor/plasteel/neutral/corner, /area/hallway/primary/port) "xEQ" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped{ - dir = 8; - filter_type = "plasma"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/plasma{ + dir = 8 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/vault{ @@ -35973,6 +36011,18 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, +/obj/machinery/embedded_controller/radio/airlock_controller{ + airpump_tag = "incinerator_airlock_pump"; + exterior_door_tag = "incinerator_airlock_exterior"; + id_tag = "incinerator_airlock_control"; + interior_door_tag = "incinerator_airlock_interior"; + name = "Incinerator Access Console"; + pixel_x = -8; + pixel_y = 35; + req_access_txt = "12"; + sanitize_external = 1; + sensor_tag = "incinerator_airlock_sensor" + }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "yba" = ( @@ -64425,7 +64475,7 @@ sIu aJj aKs aLG -bxk +aMJ aNT aOv buC @@ -69030,7 +69080,7 @@ swZ agF agF agF -fSE +agF swZ agF auE @@ -73941,9 +73991,9 @@ aQf nxA aSh aSh -aUn +aSh aVf -aWb +sCb aSh aSh aXR @@ -74464,7 +74514,7 @@ bxT aYL aZH bay -aSi +aSh aUn aWb bdT @@ -74741,10 +74791,10 @@ aaa bgU bkj bgU -aae -aaa -aaa -aae +bgU +bgU +bgU +bgU bgU bkj bgU @@ -74998,10 +75048,10 @@ aae bgU bki bgU -bgU -bgU -bgU -bgU +sSy +lTY +wWj +qcg bgU bki bgU @@ -76283,10 +76333,10 @@ aae bgU bki bgU -bgU -bgU -bgU -bgU +iJz +pEA +ezi +luP bgU bki bgU @@ -76540,10 +76590,10 @@ aaa bgU btl bgU -aae -aaa -aaa -aae +bgU +bgU +bgU +bgU bgU btl bgU @@ -77234,7 +77284,7 @@ aar aaD aaQ acX -abn +abo abC ach acY @@ -77306,7 +77356,7 @@ bgU aaa aaa aaa -aaa +fsl aaa aaa aaa @@ -77491,7 +77541,7 @@ aas aaE aaR abc -abo +ggq abD aci acZ @@ -77755,7 +77805,7 @@ ada adR aeC sOA -agi +spw aha ahS aiA @@ -77798,7 +77848,7 @@ sEG aTA aUy aVq -aUy +sNz aWR tWh aYd @@ -77819,7 +77869,7 @@ blv bgU aaa aaa -btj +aaa aaa aaa aaa @@ -78004,9 +78054,9 @@ aal aau aaG aaR -swx -swy -swD +abc +ggq +abD aci adb sOx @@ -78261,12 +78311,12 @@ aak aav aaH aaQ -acX -buV +oKz +swy abF ack adc -adP +cKy aeE afr afr @@ -78519,7 +78569,7 @@ aaw aaI aaS abe -abm +wkO abG acl swK @@ -78535,7 +78585,7 @@ akz als aml and -psC +vGz aoS apY ara @@ -78791,8 +78841,8 @@ ajx akA alt amm -ilY -bSm +hQh +jIn aoT apZ ara @@ -79046,10 +79096,10 @@ agl abq ajy akB -gxL -dTj -dTj -spW +rTn +tAC +tAC +aPH aoU aqa arg @@ -79303,10 +79353,10 @@ ahX aiC ajz akC -gxL -vMJ -txm -spW +rTn +mLI +wSl +aPH aoV aqb arh @@ -84182,7 +84232,7 @@ aeX adp agC ahr -adq +lvt aae aae aae diff --git a/_maps/cit_map_files/PubbyStation/PubbyStation.dmm b/_maps/cit_map_files/PubbyStation/PubbyStation.dmm index e4a519b3ed..3659a50ff3 100644 --- a/_maps/cit_map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/cit_map_files/PubbyStation/PubbyStation.dmm @@ -2,207 +2,6 @@ "aaa" = ( /turf/open/space/basic, /area/space) -"aab" = ( -/turf/closed/wall, -/area/crew_quarters/cryopod) -"aac" = ( -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/cryopod"; - dir = 1; - name = "Crew Cryogenics APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel/darkpurple, -/area/crew_quarters/cryopod) -"aad" = ( -/obj/machinery/computer/cryopod{ - pixel_y = 24 - }, -/turf/open/floor/plasteel/darkpurple, -/area/crew_quarters/cryopod) -"aae" = ( -/obj/machinery/cryopod, -/obj/machinery/light/small/built{ - dir = 4 - }, -/turf/open/floor/plasteel/darkpurple, -/area/crew_quarters/cryopod) -"aaf" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/darkpurple, -/area/crew_quarters/cryopod) -"aag" = ( -/turf/open/floor/plasteel/darkpurple, -/area/crew_quarters/cryopod) -"aah" = ( -/obj/machinery/cryopod, -/turf/open/floor/plasteel/darkpurple, -/area/crew_quarters/cryopod) -"aai" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/stairs, -/area/crew_quarters/cryopod) -"aaj" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel/darkpurple, -/area/crew_quarters/cryopod) -"aak" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aal" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aam" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aan" = ( -/obj/machinery/field/generator{ - anchored = 1; - state = 2 - }, -/turf/open/floor/plating/airless, -/area/space) -"aao" = ( -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/machinery/power/tesla_coil, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"aap" = ( -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/obj/machinery/power/tesla_coil, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"aaq" = ( -/turf/open/space/basic, -/area/space/nearstation) -"aar" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating/airless, -/area/space) -"aas" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space) -"aat" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating/airless, -/area/space) -"aau" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/space) -"aav" = ( -/obj/machinery/the_singularitygen/tesla, -/turf/open/floor/plating/airless, -/area/space) -"aaw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space) -"aax" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating/airless, -/area/space) -"aay" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plating/airless, -/area/space) -"aaz" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating/airless, -/area/space) -"aaA" = ( -/obj/machinery/computer/libraryconsole/bookmanagement, -/obj/structure/table, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"aaB" = ( -/obj/machinery/computer/cryopod{ - pixel_x = -28 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"aaC" = ( -/obj/machinery/cryopod{ - tag = "icon-cryopod-open (EAST)"; - icon_state = "cryopod-open"; - dir = 4 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"aaD" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"aaE" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/vending/kink, -/turf/open/floor/plasteel/arrival{ - dir = 1 - }, -/area/crew_quarters/fitness/recreation) "aby" = ( /obj/structure/lattice, /obj/structure/grille, @@ -298,7 +97,7 @@ icon_state = "2-4" }, /obj/effect/landmark/start/ai/secondary, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; broadcasting = 0; freerange = 1; @@ -346,7 +145,7 @@ pixel_y = 24 }, /obj/effect/landmark/start/ai/secondary, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; broadcasting = 0; freerange = 1; @@ -470,7 +269,7 @@ /area/ai_monitored/turret_protected/ai) "acy" = ( /obj/effect/landmark/start/ai, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 1; listening = 1; @@ -478,14 +277,14 @@ pixel_x = -27; pixel_y = -9 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_y = -31 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; broadcasting = 0; freerange = 1; @@ -547,7 +346,7 @@ /turf/open/floor/circuit, /area/ai_monitored/turret_protected/ai) "acE" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; listening = 0; @@ -719,10 +518,10 @@ pixel_x = 3; pixel_y = -4 }, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/mmi, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/mmi, +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, @@ -874,7 +673,7 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; listening = 0; @@ -910,10 +709,9 @@ /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAS) "adD" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; - name = "Waste Out"; - on = 1 + name = "Waste Out" }, /obj/machinery/camera{ c_tag = "MiniSat Maintenance Starboard Fore"; @@ -1279,7 +1077,7 @@ /turf/open/floor/plasteel/dark, /area/security/prison) "aeD" = ( -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /turf/open/floor/plasteel/dark, /area/security/prison) "aeE" = ( @@ -1580,6 +1378,12 @@ }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAS) +"afn" = ( +/obj/machinery/computer/cryopod{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "afo" = ( /obj/structure/chair/stool, /turf/open/floor/plasteel/dark, @@ -1591,7 +1395,7 @@ /area/security/prison) "afq" = ( /obj/structure/table, -/obj/item/device/instrument/harmonica, +/obj/item/instrument/harmonica, /turf/open/floor/plasteel/dark, /area/security/prison) "afr" = ( @@ -1613,10 +1417,9 @@ /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAP) "afu" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; - name = "Air Out"; - on = 1 + name = "Air Out" }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAP) @@ -1641,7 +1444,7 @@ /area/ai_monitored/turret_protected/aisat_interior) "afy" = ( /obj/effect/landmark/start/cyborg, -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "afz" = ( @@ -1666,6 +1469,12 @@ /obj/item/stack/cable_coil, /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAS) +"afC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "afD" = ( /obj/structure/chair/stool, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -1773,7 +1582,7 @@ pixel_y = 3 }, /obj/item/storage/toolbox/mechanical, -/obj/item/device/multitool{ +/obj/item/multitool{ layer = 5 }, /obj/item/extinguisher{ @@ -1847,7 +1656,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "agg" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -28 }, @@ -2063,7 +1872,7 @@ c_tag = "Permabrig Cell 2"; network = list("ss13","prison") }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; @@ -2104,7 +1913,7 @@ c_tag = "Permabrig Cell 1"; network = list("ss13","prison") }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; @@ -2267,7 +2076,7 @@ /turf/open/space, /area/space/nearstation) "ahj" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -2278,7 +2087,7 @@ pixel_y = 5 }, /obj/item/clothing/mask/balaclava, -/obj/item/device/mmi, +/obj/item/mmi, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel/dark, /area/security/execution/transfer) @@ -2287,7 +2096,7 @@ /obj/item/folder/red{ pixel_x = 3 }, -/obj/item/device/taperecorder{ +/obj/item/taperecorder{ pixel_x = -3 }, /turf/open/floor/plasteel/dark, @@ -2394,7 +2203,7 @@ /area/security/execution/transfer) "ahx" = ( /obj/structure/table, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel/dark, /area/security/execution/transfer) @@ -2759,7 +2568,7 @@ /obj/item/razor{ pixel_x = -6 }, -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_x = 4 }, /obj/structure/extinguisher_cabinet{ @@ -2948,7 +2757,7 @@ /area/security/prison) "aiK" = ( /obj/structure/table, -/obj/item/device/electropack, +/obj/item/electropack, /turf/open/floor/plasteel/red/side, /area/security/prison) "aiL" = ( @@ -3044,7 +2853,7 @@ /area/maintenance/department/security/brig) "aiY" = ( /obj/structure/table, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plating, /area/maintenance/department/security/brig) "aiZ" = ( @@ -3125,7 +2934,6 @@ dir = 4; pixel_x = -23 }, -/obj/item/gun/energy/pumpaction/blaster, /turf/open/floor/plasteel/dark, /area/security/armory) "ajh" = ( @@ -3323,7 +3131,6 @@ height = 17; id = "syndicate_ne"; name = "northeast of station"; - turf_type = /turf/open/space; width = 23 }, /turf/open/space, @@ -3719,7 +3526,7 @@ /area/maintenance/department/crew_quarters/dorms) "akr" = ( /obj/machinery/washing_machine, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = -31 @@ -3743,11 +3550,8 @@ /turf/open/floor/plating, /area/maintenance/department/security/brig) "aku" = ( -/obj/machinery/atmospherics/components/trinary/mixer/flipped{ - dir = 1; - node1_concentration = 0.2; - node2_concentration = 0.8; - on = 1 +/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped/inverse{ + dir = 1 }, /turf/open/floor/plating, /area/maintenance/department/security/brig) @@ -3767,7 +3571,7 @@ /area/maintenance/department/security/brig) "akx" = ( /obj/structure/bodycontainer/crematorium, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = -27 @@ -3825,7 +3629,7 @@ }, /area/security/brig) "akD" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -4230,7 +4034,7 @@ /area/security/main) "alC" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = -4; pixel_y = 12 }, @@ -4517,7 +4321,7 @@ /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = -31 @@ -4842,7 +4646,7 @@ c_tag = "Brig Control Room"; dir = 2 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_y = 24 @@ -4959,9 +4763,6 @@ }, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) -"ann" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_1) "anp" = ( /obj/structure/cable{ icon_state = "1-2" @@ -5237,7 +5038,7 @@ c_tag = "Head of Security's Office"; dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_y = -27 @@ -5286,16 +5087,9 @@ /area/maintenance/department/crew_quarters/dorms) "aob" = ( /obj/structure/closet/emcloset, -/obj/item/device/camera, +/obj/item/camera, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) -"aoc" = ( -/obj/machinery/computer/shuttle/monastery_shuttle, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) "aod" = ( /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, @@ -5518,27 +5312,6 @@ /obj/effect/spawner/lootdrop/grille_or_trash, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) -"aoE" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/status_display{ - pixel_x = -32 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) -"aoF" = ( -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) -"aoG" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/status_display{ - pixel_x = 32 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) "aoH" = ( /obj/structure/lattice, /obj/structure/grille, @@ -5663,7 +5436,7 @@ /obj/structure/rack, /obj/item/crowbar, /obj/item/wrench, -/obj/item/device/laser_pointer/red, +/obj/item/laser_pointer/red, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "aoY" = ( @@ -5890,23 +5663,11 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, -/obj/item/device/camera_film, +/obj/item/camera_film, /turf/open/floor/plating{ icon_state = "platingdmg1" }, /area/maintenance/department/crew_quarters/dorms) -"apx" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) -"apy" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) "apz" = ( /obj/structure/chair{ dir = 8 @@ -6078,24 +5839,6 @@ "apX" = ( /turf/closed/wall, /area/crew_quarters/dorms) -"apY" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/item/storage/pod{ - pixel_x = -24 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) -"apZ" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/item/device/radio/intercom{ - pixel_x = 30 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) "aqa" = ( /obj/structure/cable{ icon_state = "0-4" @@ -6243,7 +5986,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = 29 }, @@ -6450,33 +6193,17 @@ }, /turf/open/floor/plasteel/barber, /area/crew_quarters/dorms) -"aqX" = ( -/obj/structure/shuttle/engine/propulsion/burst, -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_1) "aqY" = ( -/obj/machinery/door/airlock/titanium{ - name = "Shuttle Airlock" - }, /obj/docking_port/stationary{ + dir = 1; dwidth = 2; height = 6; - id = "monastery_shuttle_station"; - name = "station"; + name = "large escape pod loader"; + roundstart_template = /datum/map_template/shuttle/escape_pod/large; width = 5 }, -/obj/docking_port/mobile{ - dwidth = 2; - height = 6; - id = "pod1"; - launch_status = 0; - name = "monastery shuttle"; - port_direction = 2; - width = 5; - timid = 0 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) +/turf/open/space/basic, +/area/space) "aqZ" = ( /obj/machinery/space_heater, /turf/open/floor/plating, @@ -6628,7 +6355,7 @@ /turf/open/floor/plasteel/dark, /area/security/brig) "arx" = ( -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/structure/table/glass, /turf/open/floor/plasteel/dark, /area/security/brig) @@ -6876,11 +6603,11 @@ desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; name = "emergency lifejacket" }, -/obj/item/device/flashlight, -/obj/item/device/flashlight, -/obj/item/device/flashlight, -/obj/item/device/flashlight, -/obj/item/device/flashlight, +/obj/item/flashlight, +/obj/item/flashlight, +/obj/item/flashlight, +/obj/item/flashlight, +/obj/item/flashlight, /turf/open/floor/plasteel, /area/gateway) "arZ" = ( @@ -6892,22 +6619,22 @@ /area/gateway) "asa" = ( /obj/structure/table, -/obj/item/device/radio/off{ +/obj/item/radio/off{ pixel_y = 6 }, -/obj/item/device/radio/off{ +/obj/item/radio/off{ pixel_x = 6; pixel_y = 4 }, -/obj/item/device/radio/off{ +/obj/item/radio/off{ pixel_x = -6; pixel_y = 4 }, -/obj/item/device/radio/off, +/obj/item/radio/off, /obj/structure/sign/warning/biohazard{ pixel_x = 32 }, -/obj/item/device/radio/off, +/obj/item/radio/off, /turf/open/floor/plasteel, /area/gateway) "asb" = ( @@ -7160,7 +6887,7 @@ /area/security/brig) "asJ" = ( /obj/item/folder/red, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, @@ -7670,7 +7397,7 @@ }, /area/bridge) "atU" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/darkblue/side{ dir = 1 }, @@ -7761,7 +7488,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -7887,7 +7614,7 @@ /turf/open/floor/plasteel, /area/maintenance/department/security/brig) "aux" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; @@ -8454,7 +8181,7 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = -28 @@ -8527,14 +8254,14 @@ /area/bridge) "avY" = ( /obj/structure/table/glass, -/obj/item/device/aicard, +/obj/item/aicard, /turf/open/floor/plasteel/dark, /area/bridge) "avZ" = ( /obj/structure/table/glass, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/laser_pointer/blue, +/obj/item/assembly/flash/handheld, +/obj/item/laser_pointer/blue, /turf/open/floor/plasteel/dark, /area/bridge) "awa" = ( @@ -8721,6 +8448,15 @@ }, /turf/open/floor/plating, /area/crew_quarters/fitness/recreation) +"awx" = ( +/obj/structure/closet/athletic_mixed, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/crew_quarters/fitness/recreation) "awy" = ( /obj/structure/closet/lasertag/blue, /obj/structure/disposalpipe/segment{ @@ -8918,7 +8654,7 @@ id = "Secure Gate"; name = "brig shutters" }, -/obj/item/device/radio, +/obj/item/radio, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/dark, /area/security/brig) @@ -9315,7 +9051,7 @@ /area/crew_quarters/heads/captain) "axU" = ( /obj/machinery/computer/card, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -9673,7 +9409,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "ayQ" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel, /area/hallway/primary/fore) "ayR" = ( @@ -9790,7 +9526,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = -28 @@ -9887,7 +9623,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = -28 @@ -9982,7 +9718,7 @@ /area/crew_quarters/dorms) "azx" = ( /obj/structure/table/wood, -/obj/item/device/paicard, +/obj/item/paicard, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -10317,7 +10053,7 @@ /area/hallway/primary/fore) "aAp" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, +/obj/item/flashlight/lamp/green, /obj/machinery/light_switch{ dir = 9; pixel_x = -22 @@ -10359,7 +10095,7 @@ /area/crew_quarters/heads/captain) "aAv" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, +/obj/item/flashlight/lamp/green, /turf/open/floor/carpet, /area/crew_quarters/heads/captain) "aAw" = ( @@ -10543,7 +10279,7 @@ "aAW" = ( /obj/structure/rack, /obj/item/clothing/mask/gas, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plating, /area/maintenance/solars/port) "aAX" = ( @@ -10753,7 +10489,7 @@ /area/bridge) "aBz" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, +/obj/item/flashlight/lamp/green, /obj/item/storage/secure/safe{ pixel_x = -22; pixel_y = 4 @@ -10966,7 +10702,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = 28 @@ -11136,7 +10872,7 @@ "aCt" = ( /obj/structure/table, /obj/item/wrench, -/obj/item/device/analyzer, +/obj/item/analyzer, /obj/machinery/requests_console{ department = "Tool Storage"; departmentType = 0; @@ -11150,7 +10886,7 @@ /obj/structure/table, /obj/machinery/cell_charger, /obj/item/stock_parts/cell/high/plus, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -11164,15 +10900,15 @@ /area/storage/primary) "aCv" = ( /obj/structure/table, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = -8; pixel_y = -4 }, -/obj/item/device/assembly/igniter, +/obj/item/assembly/igniter, /obj/machinery/camera{ c_tag = "Primary Tool Storage" }, -/obj/item/device/assembly/voice, +/obj/item/assembly/voice, /obj/structure/noticeboard{ pixel_y = 32 }, @@ -11182,14 +10918,14 @@ /area/storage/primary) "aCw" = ( /obj/structure/table, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/signaler, -/obj/item/device/multitool, -/obj/item/device/multitool, +/obj/item/assembly/signaler, +/obj/item/assembly/signaler, +/obj/item/multitool, +/obj/item/multitool, /obj/machinery/airalarm{ pixel_y = 22 }, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/item/electronics/airlock, /turf/open/floor/plasteel/neutral/side{ dir = 1 @@ -11538,7 +11274,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = -26 @@ -11794,7 +11530,7 @@ c_tag = "AI Upload Center"; dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; listening = 0; @@ -12025,11 +11761,11 @@ /area/maintenance/department/cargo) "aEm" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp{ +/obj/item/flashlight/lamp{ pixel_x = 3; pixel_y = 6 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = -27 @@ -12352,7 +12088,7 @@ pixel_x = -4; pixel_y = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = 27 @@ -12368,7 +12104,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = -27 @@ -12499,7 +12235,7 @@ /obj/structure/table/wood, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /turf/open/floor/carpet, /area/security/detectives_office) "aFq" = ( @@ -12525,7 +12261,7 @@ pixel_y = -7 }, /obj/item/electronics/apc, -/obj/item/device/t_scanner, +/obj/item/t_scanner, /turf/open/floor/plasteel/neutral/side{ dir = 8; heat_capacity = 1e+006 @@ -12554,7 +12290,7 @@ /area/storage/primary) "aFw" = ( /obj/structure/table/wood, -/obj/item/device/camera, +/obj/item/camera, /turf/open/floor/carpet, /area/crew_quarters/heads/captain) "aFx" = ( @@ -12612,7 +12348,7 @@ /obj/machinery/light{ dir = 4 }, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /turf/open/floor/plasteel, /area/hallway/primary/central) "aFE" = ( @@ -12814,8 +12550,8 @@ "aGe" = ( /obj/structure/rack, /obj/item/wirecutters, -/obj/item/device/flashlight, -/obj/item/device/gps, +/obj/item/flashlight, +/obj/item/gps, /turf/open/floor/plasteel/neutral/side{ dir = 10 }, @@ -12827,14 +12563,14 @@ "aGg" = ( /obj/structure/table, /obj/item/crowbar, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, /obj/item/clothing/gloves/color/fyellow, /obj/item/clothing/gloves/color/fyellow, -/obj/item/device/assembly/timer, -/obj/item/device/radio, +/obj/item/assembly/timer, +/obj/item/radio, /turf/open/floor/plasteel/neutral/side, /area/storage/primary) "aGh" = ( @@ -14223,11 +13959,16 @@ dir = 1; icon_state = "direction_sec"; pixel_x = 32; - pixel_y = -26 + pixel_y = -24 }, /obj/structure/sign/directions/medical{ pixel_x = 32; - pixel_y = -38 + pixel_y = -40 + }, +/obj/structure/sign/directions/evac{ + dir = 1; + pixel_x = 32; + pixel_y = -32 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -15061,7 +14802,7 @@ /area/security/checkpoint/supply) "aMf" = ( /obj/machinery/computer/secure_data, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -15338,7 +15079,6 @@ /area/maintenance/disposal) "aMF" = ( /obj/machinery/conveyor_switch/oneway{ - convdir = 1; id = "garbagestacked"; name = "disposal conveyor" }, @@ -15504,7 +15244,7 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -28 }, @@ -15601,7 +15341,7 @@ pixel_y = 3 }, /obj/item/clothing/shoes/magboots, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = -27 @@ -15651,7 +15391,7 @@ "aNu" = ( /obj/structure/closet/crate, /obj/item/melee/flyswatter, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = -27 @@ -15775,7 +15515,7 @@ /area/quartermaster/sorting) "aNK" = ( /obj/structure/table, -/obj/item/device/destTagger, +/obj/item/destTagger, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -16009,7 +15749,7 @@ /area/hallway/secondary/exit/departure_lounge) "aOt" = ( /obj/structure/table, -/obj/item/device/instrument/glockenspiel{ +/obj/item/instrument/glockenspiel{ pixel_y = 3 }, /turf/open/floor/plasteel/redblue, @@ -16377,14 +16117,14 @@ dir = 8 }, /obj/machinery/conveyor{ - dir = 2; + dir = 9; id = "garbage" }, /turf/open/floor/plating, /area/maintenance/disposal) "aPh" = ( /obj/machinery/conveyor{ - dir = 4; + dir = 8; id = "garbage" }, /turf/open/floor/plating, @@ -16607,7 +16347,7 @@ /area/storage/eva) "aPM" = ( /obj/structure/table, -/obj/item/device/beacon, +/obj/item/beacon, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/darkblue/side{ dir = 10 @@ -16727,7 +16467,7 @@ /turf/open/floor/plasteel/floorgrime, /area/quartermaster/warehouse) "aQd" = ( -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/floorgrime, /area/quartermaster/warehouse) @@ -16761,10 +16501,6 @@ /turf/closed/wall, /area/maintenance/disposal) "aQl" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "garbage" - }, /obj/structure/disposaloutlet{ dir = 4 }, @@ -16778,7 +16514,7 @@ /area/maintenance/disposal) "aQm" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "garbage" }, /obj/structure/disposalpipe/segment{ @@ -16788,7 +16524,7 @@ /area/maintenance/disposal) "aQn" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "garbage" }, /obj/machinery/recycler, @@ -16796,7 +16532,7 @@ /area/maintenance/disposal) "aQo" = ( /obj/machinery/conveyor{ - dir = 2; + dir = 1; id = "garbage" }, /turf/open/floor/plating, @@ -17319,7 +17055,7 @@ /area/maintenance/disposal) "aRx" = ( /obj/machinery/conveyor_switch/oneway{ - convdir = -1; + dir = 8; id = "garbage"; name = "disposal conveyor" }, @@ -17810,10 +17546,10 @@ /turf/open/floor/plasteel/hydrofloor, /area/hydroponics) "aSF" = ( -/obj/machinery/chem_master/condimaster, /obj/machinery/light/small{ dir = 1 }, +/obj/machinery/smartfridge/disks, /turf/open/floor/plasteel/hydrofloor, /area/hydroponics) "aSG" = ( @@ -17874,7 +17610,7 @@ }, /area/maintenance/department/crew_quarters/bar) "aSN" = ( -/obj/item/device/assembly/mousetrap, +/obj/item/assembly/mousetrap, /turf/open/floor/wood{ icon_state = "wood-broken6" }, @@ -18071,7 +17807,7 @@ dir = 1 }, /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "QMLoad" }, /obj/machinery/airalarm{ @@ -18081,7 +17817,7 @@ /area/quartermaster/storage) "aTo" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "QMLoad" }, /obj/machinery/status_display{ @@ -18092,7 +17828,7 @@ /area/quartermaster/storage) "aTp" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "QMLoad" }, /obj/structure/sign/poster/official/random{ @@ -18102,7 +17838,7 @@ /area/quartermaster/storage) "aTq" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "QMLoad" }, /turf/open/floor/plating, @@ -18113,7 +17849,7 @@ name = "supply dock loading door" }, /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "QMLoad" }, /turf/open/floor/plating, @@ -18121,7 +17857,7 @@ "aTs" = ( /obj/structure/plasticflaps, /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "QMLoad" }, /turf/open/floor/plating, @@ -18393,7 +18129,7 @@ /area/hydroponics) "aTX" = ( /obj/structure/kitchenspike, -/obj/item/device/assembly/mousetrap, +/obj/item/assembly/mousetrap, /obj/item/reagent_containers/food/snacks/deadmouse, /turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/kitchen) @@ -18938,7 +18674,7 @@ pixel_x = 28; req_access_txt = "28" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -19096,7 +18832,6 @@ /area/quartermaster/storage) "aVB" = ( /obj/machinery/conveyor_switch/oneway{ - convdir = -1; id = "QMLoad" }, /obj/machinery/button/door{ @@ -19361,7 +19096,7 @@ /obj/structure/cable{ icon_state = "2-8" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -19429,7 +19164,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -19592,7 +19327,7 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -20035,7 +19770,7 @@ /area/hydroponics) "aXX" = ( /obj/machinery/hydroponics/constructable, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -20115,7 +19850,7 @@ "aYh" = ( /obj/structure/table/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/instrument/guitar, +/obj/item/instrument/guitar, /turf/open/floor/plasteel/darkred/side{ dir = 1 }, @@ -20287,7 +20022,7 @@ /area/quartermaster/storage) "aYB" = ( /obj/machinery/conveyor_switch/oneway{ - convdir = 1; + dir = 8; id = "QMLoad2" }, /obj/effect/turf_decal/stripes/line{ @@ -20310,8 +20045,8 @@ /area/maintenance/department/cargo) "aYE" = ( /obj/structure/table, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/department/cargo) @@ -20362,7 +20097,7 @@ /area/security/checkpoint/customs) "aYK" = ( /obj/structure/closet/secure_closet/security, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -20431,7 +20166,7 @@ /area/crew_quarters/kitchen) "aYU" = ( /obj/machinery/processor, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -20732,7 +20467,7 @@ /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -20991,7 +20726,7 @@ /area/crew_quarters/bar) "bao" = ( /obj/machinery/computer/slot_machine, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -21030,7 +20765,7 @@ "bas" = ( /obj/structure/table, /obj/item/pen, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = -26 @@ -21140,7 +20875,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = -26 @@ -21605,7 +21340,7 @@ "bbN" = ( /obj/structure/rack, /obj/item/clothing/mask/gas, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plating, /area/maintenance/solars/starboard) "bbO" = ( @@ -21796,7 +21531,7 @@ /area/crew_quarters/bar) "bcq" = ( /obj/item/clothing/glasses/monocle, -/obj/item/device/instrument/recorder, +/obj/item/instrument/recorder, /obj/structure/table/wood/fancy, /turf/open/floor/carpet{ icon_state = "carpetsymbol" @@ -22632,7 +22367,7 @@ /area/crew_quarters/bar) "bez" = ( /obj/structure/table/wood, -/obj/item/device/instrument/trombone, +/obj/item/instrument/trombone, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -23062,7 +22797,7 @@ /obj/machinery/computer/security/mining{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -35 }, @@ -23239,7 +22974,7 @@ /obj/structure/chair{ name = "Throne of Custodia" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -23515,7 +23250,7 @@ /area/space) "bgU" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -23541,7 +23276,7 @@ /area/crew_quarters/lounge) "bgY" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -24264,7 +23999,7 @@ /area/crew_quarters/lounge) "biK" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -24291,7 +24026,7 @@ /area/crew_quarters/lounge) "biN" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -24306,7 +24041,7 @@ /area/crew_quarters/lounge) "biO" = ( /obj/structure/table/glass, -/obj/item/device/healthanalyzer{ +/obj/item/healthanalyzer{ layer = 3.1 }, /obj/item/pen{ @@ -24380,7 +24115,7 @@ /area/medical/morgue) "biZ" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Morgue"; opacity = 1; req_access_txt = "6" @@ -24685,7 +24420,7 @@ pixel_y = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -24806,10 +24541,10 @@ /area/science/research/lobby) "bkq" = ( /obj/structure/table, -/obj/item/device/gps{ +/obj/item/gps{ gpstag = "RD0" }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = -4; pixel_y = -4 }, @@ -25188,7 +24923,7 @@ "blr" = ( /obj/structure/table, /obj/item/folder/white, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /turf/open/floor/plasteel/whiteblue/side{ dir = 1 }, @@ -25209,7 +24944,7 @@ /area/hallway/primary/aft) "blv" = ( /obj/structure/table, -/obj/item/device/paicard, +/obj/item/paicard, /obj/item/clothing/glasses/science, /turf/open/floor/plasteel/green/side{ dir = 9 @@ -25393,7 +25128,7 @@ /area/science/server) "blP" = ( /obj/effect/landmark/event_spawn, -/obj/item/device/beacon, +/obj/item/beacon, /obj/machinery/light{ dir = 8 }, @@ -25962,7 +25697,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bnq" = ( -/obj/item/device/beacon, +/obj/item/beacon, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, @@ -26179,13 +25914,13 @@ /obj/item/stack/sheet/plasteel{ amount = 10 }, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/machinery/airalarm{ dir = 8; pixel_x = 23 @@ -26270,7 +26005,7 @@ "boe" = ( /obj/structure/table, /obj/machinery/reagentgrinder, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = -28 @@ -26480,7 +26215,7 @@ name = "Medbay RC"; pixel_x = -32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 0; frequency = 1485; @@ -26626,10 +26361,8 @@ /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "bpa" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 4; - on = 1; - target_temperature = 80 +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ + dir = 4 }, /obj/machinery/airalarm{ dir = 4; @@ -26825,7 +26558,7 @@ /area/medical/genetics) "bpy" = ( /obj/machinery/clonepod, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 0; frequency = 1485; @@ -26893,7 +26626,7 @@ /area/medical/medbay/zone3) "bpG" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Morgue"; opacity = 1; req_access_txt = "6" @@ -26952,7 +26685,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Morgue"; opacity = 1; req_access_txt = "6" @@ -27140,7 +26873,7 @@ }, /obj/item/storage/belt/utility, /obj/item/reagent_containers/glass/beaker/large, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = -27 @@ -27250,8 +26983,8 @@ pixel_y = 3 }, /obj/item/stack/sheet/metal/fifty, -/obj/item/device/assembly/timer, -/obj/item/device/assembly/timer, +/obj/item/assembly/timer, +/obj/item/assembly/timer, /turf/open/floor/plasteel/white, /area/science/explab) "bqv" = ( @@ -27789,7 +27522,7 @@ /area/science/research/lobby) "brw" = ( /obj/structure/closet/wardrobe/robotics_black, -/obj/item/device/radio/headset/headset_sci{ +/obj/item/radio/headset/headset_sci{ pixel_x = -3 }, /turf/open/floor/plasteel/vault{ @@ -27805,19 +27538,19 @@ /turf/open/floor/plasteel, /area/science/robotics/lab) "bry" = ( -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, @@ -28306,7 +28039,7 @@ "bsE" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 0; frequency = 1485; @@ -28388,7 +28121,7 @@ /obj/machinery/chem_dispenser{ layer = 2.7 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = 29 @@ -28491,9 +28224,9 @@ empty = 1; name = "First-Aid (empty)" }, -/obj/item/device/healthanalyzer, -/obj/item/device/healthanalyzer, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, +/obj/item/healthanalyzer, +/obj/item/healthanalyzer, /obj/item/stack/cable_coil, /obj/item/stack/cable_coil, /obj/structure/table, @@ -28531,9 +28264,9 @@ /turf/open/floor/plasteel/white, /area/science/robotics/lab) "btd" = ( -/obj/item/device/mmi, -/obj/item/device/mmi, -/obj/item/device/mmi, +/obj/item/mmi, +/obj/item/mmi, +/obj/item/mmi, /obj/structure/table, /turf/open/floor/plasteel/white, /area/science/robotics/lab) @@ -28583,11 +28316,11 @@ /area/science/explab) "btl" = ( /obj/structure/table, -/obj/item/device/electropack, -/obj/item/device/healthanalyzer, -/obj/item/device/assembly/signaler, +/obj/item/electropack, +/obj/item/healthanalyzer, +/obj/item/assembly/signaler, /obj/machinery/light, -/obj/item/device/assembly/voice, +/obj/item/assembly/voice, /obj/machinery/camera{ c_tag = "Experimentation Lab"; dir = 1; @@ -28601,7 +28334,7 @@ pixel_y = 5 }, /obj/item/stack/cable_coil, -/obj/item/device/multitool, +/obj/item/multitool, /obj/item/screwdriver, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/white, @@ -28781,7 +28514,6 @@ height = 13; id = "ferry_home"; name = "port bay 2"; - turf_type = /turf/open/space; width = 5 }, /turf/open/space/basic, @@ -29149,7 +28881,7 @@ /turf/open/floor/plasteel, /area/science/explab) "buB" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = -28 @@ -29547,7 +29279,7 @@ }, /area/hallway/primary/aft) "bvv" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = -28; @@ -30249,7 +29981,7 @@ /obj/structure/rack, /obj/item/stack/packageWrap, /obj/item/hand_labeler, -/obj/item/device/radio/headset/headset_med, +/obj/item/radio/headset/headset_med, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/white, /area/medical/chemistry) @@ -30947,8 +30679,8 @@ "byf" = ( /obj/structure/table, /obj/item/storage/box/disks, -/obj/item/device/flashlight/pen, -/obj/item/device/flashlight/pen, +/obj/item/flashlight/pen, +/obj/item/flashlight/pen, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -31216,7 +30948,7 @@ /obj/item/stock_parts/manipulator, /obj/item/stock_parts/scanning_module, /obj/item/stock_parts/scanning_module, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plasteel/whitepurple/side, /area/science/lab) "byI" = ( @@ -32572,7 +32304,7 @@ dir = 8; pixel_x = 23 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; freerange = 1; name = "Station Intercom (Telecomms)"; @@ -32688,7 +32420,7 @@ /turf/open/floor/plasteel/dark, /area/science/mixing) "bBN" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -32786,7 +32518,7 @@ "bBZ" = ( /obj/structure/table, /obj/item/pen, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = -27 @@ -32909,7 +32641,7 @@ "bCm" = ( /obj/structure/table/glass, /obj/item/clothing/neck/stethoscope, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /turf/open/floor/plasteel/blue, /area/medical/sleeper) "bCn" = ( @@ -33754,10 +33486,9 @@ /turf/open/floor/plating, /area/maintenance/department/engine) "bEl" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; - name = "Air Out"; - on = 1 + name = "Air Out" }, /turf/open/floor/plating, /area/maintenance/department/engine) @@ -34099,7 +33830,7 @@ /obj/machinery/computer/mecha{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = -26 @@ -34113,7 +33844,7 @@ }, /area/crew_quarters/heads/hor) "bES" = ( -/obj/item/device/aicard, +/obj/item/aicard, /obj/item/circuitboard/aicore, /obj/machinery/requests_console{ announcementConsole = 1; @@ -34265,19 +33996,19 @@ /turf/open/floor/plasteel/white, /area/science/mixing) "bFi" = ( -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -4; pixel_y = 1 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = 8; pixel_y = 9 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = 9; pixel_y = -2 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_y = 2 }, /obj/structure/table/reinforced, @@ -34297,7 +34028,7 @@ /obj/item/screwdriver{ pixel_y = 10 }, -/obj/item/device/analyzer, +/obj/item/analyzer, /turf/open/floor/plasteel/white, /area/science/mixing) "bFl" = ( @@ -34685,7 +34416,7 @@ /area/medical/surgery) "bFV" = ( /obj/structure/table/glass, -/obj/item/device/flashlight/pen, +/obj/item/flashlight/pen, /obj/item/clothing/neck/stethoscope, /obj/item/lipstick/black, /obj/machinery/power/apc{ @@ -34837,18 +34568,18 @@ /turf/open/floor/plasteel/whitepurple/side, /area/science/mixing) "bGo" = ( -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_y = 8 }, -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_x = -8; pixel_y = 5 }, -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_x = 6; pixel_y = 5 }, -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_x = -2; pixel_y = -2 }, @@ -34856,37 +34587,37 @@ /turf/open/floor/plasteel/whitepurple/side, /area/science/mixing) "bGp" = ( -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve{ pixel_x = -5 }, -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve{ pixel_x = -5 }, -/obj/item/device/transfer_valve, -/obj/item/device/transfer_valve, -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve, +/obj/item/transfer_valve, +/obj/item/transfer_valve{ pixel_x = 5 }, -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve{ pixel_x = 5 }, /obj/structure/table/reinforced, /turf/open/floor/plasteel/whitepurple/side, /area/science/mixing) "bGq" = ( -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = 5; pixel_y = 4 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = -4; pixel_y = 2 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = 6; pixel_y = -4 }, -/obj/item/device/assembly/timer, +/obj/item/assembly/timer, /obj/structure/table/reinforced, /turf/open/floor/plasteel/whitepurple/side, /area/science/mixing) @@ -35103,7 +34834,7 @@ icon_state = "shower"; dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 0; frequency = 1485; @@ -35240,10 +34971,10 @@ }, /area/science/research/lobby) "bHk" = ( -/obj/item/device/gps{ +/obj/item/gps{ gpstag = "RD0" }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, @@ -35497,7 +35228,7 @@ /area/maintenance/department/engine) "bHS" = ( /obj/structure/table, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/effect/decal/cleanable/cobweb{ icon_state = "cobweb2" }, @@ -35537,7 +35268,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 0; frequency = 1485; @@ -35566,7 +35297,7 @@ /area/medical/virology) "bIb" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 0; frequency = 1485; @@ -35666,7 +35397,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 0; frequency = 1485; @@ -36069,7 +35800,7 @@ /obj/structure/table/glass, /obj/item/book/manual/wiki/infections, /obj/item/hand_labeler, -/obj/item/device/radio/headset/headset_med, +/obj/item/radio/headset/headset_med, /obj/machinery/light{ dir = 8 }, @@ -36386,10 +36117,10 @@ /area/science/mixing) "bJT" = ( /obj/machinery/computer/security/telescreen{ - desc = "Used for watching the test chamber."; + desc = "Used for watching the bomb testing site."; dir = 2; layer = 4; - name = "Test Chamber Telescreen"; + name = "Testing Site Telescreen"; network = list("toxins"); pixel_y = -32 }, @@ -36646,7 +36377,7 @@ dir = 4 }, /obj/effect/landmark/event_spawn, -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bKA" = ( @@ -36814,7 +36545,7 @@ /obj/machinery/atmospherics/pipe/simple/yellow/visible{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -36852,8 +36583,7 @@ "bKY" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "Mix Outlet Pump"; - on = 0 + name = "Mix Outlet Pump" }, /turf/open/floor/plasteel/yellow/side{ dir = 5 @@ -36985,7 +36715,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/dock) "bLq" = ( -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Monastery Transit"; opacity = 1 }, @@ -37271,8 +37001,7 @@ "bMa" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "Distro to Waste"; - on = 0 + name = "Distro to Waste" }, /obj/machinery/light{ dir = 1 @@ -37299,8 +37028,7 @@ "bMd" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "Mix to Distro"; - on = 0 + name = "Mix to Distro" }, /turf/open/floor/plasteel/yellow/side{ dir = 1 @@ -37354,10 +37082,7 @@ /area/science/mixing) "bMm" = ( /obj/machinery/igniter{ - icon_state = "igniter0"; - id = "toxigniter"; - luminosity = 2; - on = 0 + id = "toxigniter" }, /turf/open/floor/engine/vacuum, /area/science/mixing) @@ -37597,7 +37322,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; freerange = 1; name = "Station Intercom (Telecomms)"; @@ -37626,10 +37351,9 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "bMY" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; - name = "External to Filter"; - on = 1 + name = "External to Filter" }, /turf/open/floor/plasteel/yellow/side{ dir = 8 @@ -37687,10 +37411,9 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bNg" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 1; - name = "Air to Distro"; - on = 1 + name = "Air to Distro" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -37802,7 +37525,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = 27 @@ -38050,10 +37773,9 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "bOg" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 8; - name = "Air to External"; - on = 1 + name = "Air to External" }, /turf/open/floor/plasteel/yellow/side{ dir = 8 @@ -38116,8 +37838,7 @@ }, /obj/machinery/atmospherics/components/binary/pump{ dir = 0; - name = "Mix to Port"; - on = 0 + name = "Mix to Port" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -38127,8 +37848,7 @@ }, /obj/machinery/atmospherics/components/binary/pump{ dir = 1; - name = "Pure to Mix"; - on = 0 + name = "Pure to Mix" }, /obj/structure/cable{ icon_state = "1-2" @@ -38139,10 +37859,9 @@ /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 1; - name = "Unfiltered to Mix"; - on = 1 + name = "Unfiltered to Mix" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -38367,7 +38086,7 @@ pixel_x = -5; pixel_y = 3 }, -/obj/item/device/multitool{ +/obj/item/multitool{ layer = 4 }, /turf/open/floor/plasteel/yellow/side, @@ -38376,9 +38095,9 @@ /obj/structure/table, /obj/item/stack/sheet/glass/fifty, /obj/item/storage/belt/utility, -/obj/item/device/t_scanner, -/obj/item/device/t_scanner, -/obj/item/device/t_scanner, +/obj/item/t_scanner, +/obj/item/t_scanner, +/obj/item/t_scanner, /turf/open/floor/plasteel/yellow/side, /area/engine/atmos) "bOX" = ( @@ -38436,8 +38155,7 @@ "bPe" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "N2O Outlet Pump"; - on = 0 + name = "N2O Outlet Pump" }, /turf/open/floor/plasteel/yellow/side{ dir = 4 @@ -38482,7 +38200,7 @@ /turf/open/space, /area/space/nearstation) "bPn" = ( -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Chapel"; opacity = 1 }, @@ -38494,7 +38212,7 @@ }, /area/chapel/dock) "bPo" = ( -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Chapel"; opacity = 1 }, @@ -38669,10 +38387,9 @@ /turf/closed/wall, /area/engine/atmos) "bPR" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 0; - name = "Waste In"; - on = 1 + name = "Waste In" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -38683,8 +38400,7 @@ "bPT" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 0; - name = "Air to Port"; - on = 0 + name = "Air to Port" }, /obj/machinery/light{ dir = 8 @@ -38697,8 +38413,7 @@ "bPU" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 0; - name = "Mix to Port"; - on = 0 + name = "Mix to Port" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -38754,7 +38469,7 @@ /turf/open/floor/plating/asteroid, /area/chapel/asteroid/monastery) "bQe" = ( -/obj/item/device/flashlight/lantern{ +/obj/item/flashlight/lantern{ on = 1 }, /turf/open/floor/plating/asteroid, @@ -38845,16 +38560,16 @@ /area/storage/tech) "bQs" = ( /obj/structure/table, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = 1; pixel_y = 5 }, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = 1; pixel_y = 5 }, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/effect/decal/cleanable/cobweb, /obj/structure/extinguisher_cabinet{ pixel_x = -26 @@ -38863,7 +38578,7 @@ /area/storage/tech) "bQt" = ( /obj/structure/table, -/obj/item/device/aicard, +/obj/item/aicard, /obj/item/aiModule/reset, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/airalarm{ @@ -39067,10 +38782,8 @@ }, /area/engine/atmos) "bQN" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 1; - filter_type = "n2o"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{ + dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -39210,7 +38923,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -39695,8 +39408,7 @@ }, /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "Plasma Outlet Pump"; - on = 0 + name = "Plasma Outlet Pump" }, /turf/open/floor/plasteel/yellow/side{ dir = 4 @@ -39854,7 +39566,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/dark, /area/storage/tech) "bSG" = ( @@ -39961,8 +39673,7 @@ }, /obj/machinery/atmospherics/components/binary/pump{ dir = 0; - name = "Port to Filter"; - on = 0 + name = "Port to Filter" }, /obj/structure/extinguisher_cabinet{ pixel_x = -27 @@ -39970,7 +39681,7 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bSS" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel, /area/engine/atmos) "bST" = ( @@ -40066,10 +39777,9 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 1; - name = "Air Out"; - on = 1 + name = "Air Out" }, /turf/open/floor/plating, /area/maintenance/department/engine) @@ -40225,7 +39935,7 @@ pixel_y = 4 }, /obj/item/clothing/gloves/color/yellow, -/obj/item/device/t_scanner, +/obj/item/t_scanner, /turf/open/floor/plasteel/darkgreen, /area/storage/tech) "bTA" = ( @@ -40234,7 +39944,7 @@ pixel_x = 2; pixel_y = 4 }, -/obj/item/device/multitool, +/obj/item/multitool, /obj/machinery/requests_console{ department = "Tech storage"; pixel_y = -32 @@ -40357,7 +40067,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = 30; @@ -40402,8 +40112,7 @@ "bTR" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "Port to Filter"; - on = 0 + name = "Port to Filter" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -40419,10 +40128,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bTU" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 1; - filter_type = "plasma"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma{ + dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -40555,7 +40262,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 24 @@ -40984,8 +40691,7 @@ "bVk" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "CO2 Outlet Pump"; - on = 0 + name = "CO2 Outlet Pump" }, /turf/open/floor/plasteel/yellow/side{ dir = 4 @@ -41030,7 +40736,7 @@ dir = 8 }, /turf/open/floor/plating, -/area/maintenance/department/engine) +/area/construction/mining/aux_base) "bVr" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating/airless, @@ -41067,7 +40773,7 @@ /obj/item/wallframe/camera, /obj/item/wallframe/camera, /obj/item/wallframe/camera, -/obj/item/device/assault_pod/mining, +/obj/item/assault_pod/mining, /turf/open/floor/plating{ icon_state = "platingdmg3" }, @@ -41333,8 +41039,7 @@ "bVV" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 0; - name = "Waste to Space"; - on = 0 + name = "Waste to Space" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -41356,8 +41061,7 @@ }, /obj/machinery/atmospherics/components/binary/pump{ dir = 1; - name = "O2 to Pure"; - on = 0 + name = "O2 to Pure" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -41370,8 +41074,7 @@ "bWa" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 4; - name = "N2 to Pure"; - on = 0 + name = "N2 to Pure" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -41698,10 +41401,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bWK" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4; - filter_type = "o2"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -41731,16 +41432,13 @@ "bWP" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 1; - name = "Air to Pure"; - on = 0 + name = "Air to Pure" }, /turf/open/floor/plasteel, /area/engine/atmos) "bWQ" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 1; - filter_type = "co2"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/co2{ + dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -41770,7 +41468,7 @@ /turf/closed/wall, /area/chapel/main/monastery) "bWW" = ( -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Chapel"; opacity = 1 }, @@ -41780,7 +41478,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/main/monastery) "bWX" = ( -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Chapel"; opacity = 1 }, @@ -41802,7 +41500,7 @@ /turf/open/floor/plating, /area/maintenance/department/engine) "bXc" = ( -/obj/item/device/flashlight, +/obj/item/flashlight, /turf/open/floor/plating, /area/maintenance/department/engine) "bXd" = ( @@ -41965,11 +41663,7 @@ /turf/open/floor/plasteel/yellow/side, /area/engine/atmos) "bXA" = ( -/obj/machinery/atmospherics/components/trinary/mixer{ - node1_concentration = 0.8; - node2_concentration = 0.2; - on = 1 - }, +/obj/machinery/atmospherics/components/trinary/mixer/airmix, /turf/open/floor/plasteel/yellow/side, /area/engine/atmos) "bXB" = ( @@ -41980,10 +41674,9 @@ /area/engine/atmos) "bXC" = ( /obj/machinery/light, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; - name = "Air Outlet Pump"; - on = 1 + name = "Air Outlet Pump" }, /turf/open/floor/plasteel/yellow/side, /area/engine/atmos) @@ -42305,7 +41998,7 @@ dir = 4 }, /turf/open/floor/plating, -/area/maintenance/department/engine) +/area/construction/mining/aux_base) "bYG" = ( /obj/machinery/power/apc/highcap/five_k{ dir = 8; @@ -42589,7 +42282,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -42752,32 +42445,14 @@ }, /area/maintenance/department/engine) "bZs" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, /turf/open/floor/plating, -/area/shuttle/auxillary_base) +/area/construction/mining/aux_base) "bZt" = ( /obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"bZu" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/docking_port/stationary/public_mining_dock{ dir = 2 }, /turf/open/floor/plating, -/area/shuttle/auxillary_base) -"bZv" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) +/area/construction/mining/aux_base) "bZw" = ( /obj/item/bikehorn/rubberducky, /turf/open/floor/plating, @@ -42995,20 +42670,17 @@ }, /area/maintenance/department/engine) "cab" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"cac" = ( -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"cad" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 }, /turf/open/floor/plating, -/area/shuttle/auxillary_base) +/area/construction/mining/aux_base) +"cad" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/construction/mining/aux_base) "cae" = ( /obj/structure/plasticflaps{ opacity = 1 @@ -43264,6 +42936,17 @@ name = "Turbine Interior Airlock"; req_access_txt = "24" }, +/obj/machinery/embedded_controller/radio/airlock_controller{ + airpump_tag = "incinerator_airlock_pump"; + exterior_door_tag = "incinerator_airlock_exterior"; + id_tag = "incinerator_airlock_control"; + interior_door_tag = "incinerator_airlock_interior"; + name = "Incinerator Access Console"; + pixel_x = -6; + pixel_y = -26; + sanitize_external = 1; + sensor_tag = "incinerator_airlock_sensor" + }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "caM" = ( @@ -43297,10 +42980,7 @@ icon_state = "4-8" }, /obj/machinery/igniter{ - icon_state = "igniter0"; - id = "Incinerator"; - luminosity = 2; - on = 0 + id = "Incinerator" }, /obj/machinery/air_sensor/atmos/incinerator_tank{ pixel_x = 32; @@ -43354,11 +43034,11 @@ /area/chapel/main/monastery) "caV" = ( /obj/machinery/holopad, -/obj/item/device/flashlight/lantern, +/obj/item/flashlight/lantern, /turf/open/floor/plasteel/chapel, /area/chapel/main/monastery) "caW" = ( -/obj/item/device/flashlight/lantern, +/obj/item/flashlight/lantern, /turf/open/floor/plasteel/chapel{ dir = 8 }, @@ -43390,7 +43070,7 @@ /obj/machinery/light{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = -27 @@ -43428,7 +43108,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/table/glass, -/obj/item/device/flashlight, +/obj/item/flashlight, /turf/open/floor/plasteel, /area/engine/engineering) "cbg" = ( @@ -43574,24 +43254,12 @@ "cbB" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "Incinerator to Output"; - on = 0 + name = "Incinerator to Output" }, /obj/machinery/atmospherics/pipe/simple/general/visible, /turf/open/floor/plasteel/dark, /area/maintenance/disposal/incinerator) "cbC" = ( -/obj/machinery/embedded_controller/radio/airlock_controller{ - name = "Incinerator Access Console"; - airpump_tag = "incinerator_airlock_pump"; - exterior_door_tag = "incinerator_airlock_exterior"; - id_tag = "incinerator_access_control"; - interior_door_tag = "incinerator_airlock_interior"; - pixel_x = 26; - pixel_y = 6; - sanitize_external = 1; - sensor_tag = "incinerator_airlock_sensor" - }, /obj/machinery/button/ignition{ id = "Incinerator"; pixel_x = 26; @@ -43670,7 +43338,7 @@ }, /area/chapel/main/monastery) "cbR" = ( -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Chapel Access"; opacity = 1 }, @@ -43912,7 +43580,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/main/monastery) "ccL" = ( -/obj/item/device/flashlight/lantern{ +/obj/item/flashlight/lantern{ on = 1 }, /turf/open/floor/plasteel/asteroid{ @@ -43935,15 +43603,6 @@ /obj/structure/table/optable, /turf/open/floor/plating, /area/maintenance/department/engine) -"ccP" = ( -/obj/machinery/light, -/obj/machinery/camera{ - c_tag = "Auxillary Mining Base"; - dir = 1; - network = list("ss13","auxbase") - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "ccQ" = ( /obj/machinery/field/generator, /turf/open/floor/plating, @@ -43959,7 +43618,7 @@ /obj/item/stack/sheet/mineral/plasma{ amount = 30 }, -/obj/item/device/gps{ +/obj/item/gps{ gpstag = "ENG0" }, /turf/open/floor/plating, @@ -44163,28 +43822,6 @@ /obj/item/cigbutt, /turf/open/floor/plating, /area/maintenance/department/engine) -"cdF" = ( -/obj/structure/closet/secure_closet/miner/unlocked, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"cdG" = ( -/obj/docking_port/mobile/auxillary_base{ - dheight = 5; - dir = 1; - dwidth = 5; - height = 11; - width = 11 - }, -/obj/machinery/bluespace_beacon, -/obj/machinery/computer/auxillary_base, -/turf/closed/wall, -/area/shuttle/auxillary_base) -"cdH" = ( -/obj/structure/mining_shuttle_beacon{ - dir = 4 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "cdI" = ( /obj/machinery/field/generator, /obj/machinery/camera{ @@ -44349,7 +43986,7 @@ /turf/open/floor/plasteel/asteroid, /area/chapel/office) "ceg" = ( -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Chapel Office"; opacity = 1; req_access_txt = "22" @@ -44370,7 +44007,7 @@ /turf/closed/wall, /area/chapel/office) "cei" = ( -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Chapel"; opacity = 1 }, @@ -44383,7 +44020,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/main/monastery) "cej" = ( -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Chapel"; opacity = 1 }, @@ -44391,7 +44028,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/main/monastery) "cek" = ( -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Chapel"; opacity = 1 }, @@ -44399,7 +44036,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/main/monastery) "cel" = ( -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Chapel Access"; opacity = 1 }, @@ -44417,12 +44054,6 @@ }, /turf/open/floor/plating/asteroid, /area/chapel/asteroid/monastery) -"cep" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "ceq" = ( /obj/machinery/power/emitter, /turf/open/floor/plating, @@ -44690,7 +44321,7 @@ /turf/closed/wall, /area/chapel/office) "cfl" = ( -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Chapel Access"; opacity = 1 }, @@ -45035,22 +44666,12 @@ }, /turf/open/floor/plasteel/dark, /area/chapel/main/monastery) -"cgo" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "cgp" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"cgq" = ( /obj/effect/turf_decal/stripes/line{ - dir = 6 + dir = 1 }, /turf/open/floor/plating, -/area/shuttle/auxillary_base) +/area/construction/mining/aux_base) "cgr" = ( /obj/structure/window/reinforced/fulltile, /obj/structure/transit_tube, @@ -45150,7 +44771,7 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/item/device/flashlight/lantern, +/obj/item/flashlight/lantern, /turf/open/floor/plasteel/grimy, /area/chapel/main/monastery) "cgO" = ( @@ -45208,6 +44829,13 @@ }, /turf/open/floor/plating/airless, /area/engine/engineering) +"cgV" = ( +/obj/machinery/field/generator{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/space) "cgY" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -45351,6 +44979,20 @@ }, /turf/open/floor/plating/airless, /area/engine/engineering) +"chx" = ( +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"chz" = ( +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, +/area/engine/engineering) "chA" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -45373,7 +45015,7 @@ dir = 1 }, /obj/effect/decal/cleanable/cobweb, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -45411,7 +45053,7 @@ /obj/machinery/light/small{ dir = 8 }, -/obj/item/device/instrument/violin, +/obj/item/instrument/violin, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -45545,6 +45187,24 @@ /obj/structure/grille, /turf/open/floor/plating/airless, /area/engine/engineering) +"cii" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating/airless, +/area/space) +"cij" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/space) +"cik" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating/airless, +/area/space) "cio" = ( /obj/structure/closet/cabinet, /obj/item/clothing/suit/holidaypriest, @@ -45583,6 +45243,22 @@ /obj/structure/grille, /turf/open/floor/plating/airless, /area/engine/engineering) +"cis" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/space) +"cit" = ( +/obj/machinery/the_singularitygen/tesla, +/turf/open/floor/plating/airless, +/area/space) +"ciu" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) "civ" = ( /obj/machinery/light{ dir = 4 @@ -45637,6 +45313,24 @@ }, /turf/open/floor/plasteel/grimy, /area/chapel/main/monastery) +"ciG" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating/airless, +/area/space) +"ciH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/turf/open/floor/plating/airless, +/area/space) +"ciI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating/airless, +/area/space) "ciJ" = ( /obj/structure/closet/emcloset, /obj/effect/decal/cleanable/cobweb, @@ -45753,7 +45447,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/main/monastery) "cjl" = ( -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Monastery Cemetary"; opacity = 1 }, @@ -45825,7 +45519,6 @@ height = 22; id = "whiteship_home"; name = "monastery"; - turf_type = /turf/open/space; width = 35 }, /turf/open/space/basic, @@ -45840,7 +45533,7 @@ /turf/open/floor/plating, /area/chapel/main/monastery) "cjH" = ( -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Chapel Garden"; opacity = 1 }, @@ -45863,7 +45556,7 @@ /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-22" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -45906,7 +45599,7 @@ invuln = 1; luminosity = 3; name = "Hardened Bomb-Test Camera"; - network = list("toxins"); + network = list("ss13","rd","toxins"); use_power = 0 }, /turf/open/floor/plating/asteroid/airless, @@ -45976,10 +45669,9 @@ /turf/open/floor/plating, /area/maintenance/department/chapel/monastery) "cki" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 1; - name = "Air Out"; - on = 1 + name = "Air Out" }, /turf/open/floor/plating, /area/maintenance/department/chapel/monastery) @@ -46151,7 +45843,7 @@ /turf/closed/mineral/random/low_chance, /area/asteroid/nearstation/bomb_site) "ckL" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plating/airless, /area/asteroid/nearstation/bomb_site) "ckM" = ( @@ -46203,7 +45895,7 @@ /turf/open/floor/plasteel/dark, /area/library/lounge) "ckT" = ( -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Library" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -46268,7 +45960,7 @@ /turf/open/floor/plasteel/dark, /area/library) "clj" = ( -/obj/item/device/flashlight/lantern{ +/obj/item/flashlight/lantern{ on = 1 }, /turf/open/floor/plating/asteroid/airless, @@ -46398,10 +46090,9 @@ /turf/closed/wall, /area/tcommsat/computer) "clM" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 1; - name = "Waste Out"; - on = 1 + name = "Waste Out" }, /turf/open/floor/plating, /area/tcommsat/computer) @@ -46428,7 +46119,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 }, -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel, /area/tcommsat/computer) "clS" = ( @@ -46455,10 +46146,9 @@ /turf/open/floor/plating, /area/tcommsat/computer) "clV" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 0; - name = "Air Out"; - on = 1 + name = "Air Out" }, /obj/machinery/light/small{ dir = 4 @@ -46525,7 +46215,7 @@ "cmf" = ( /obj/structure/rack, /obj/item/storage/toolbox/mechanical, -/obj/item/device/radio, +/obj/item/radio, /obj/machinery/airalarm{ dir = 4; pixel_x = -22 @@ -46563,7 +46253,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = 26 }, @@ -46937,7 +46627,7 @@ invuln = 1; luminosity = 3; name = "Hardened Bomb-Test Camera"; - network = list("toxins"); + network = list("ss13","rd","toxins"); use_power = 0 }, /turf/open/floor/plating/asteroid/airless, @@ -47059,7 +46749,7 @@ c_tag = "Brig Equipment Room"; dir = 2 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = 29 }, @@ -47087,11 +46777,6 @@ /obj/structure/punching_bag, /turf/open/floor/plasteel/showroomfloor, /area/security/main) -"cnW" = ( -/obj/structure/grille, -/obj/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/pod_1) "cnX" = ( /obj/structure/table, /obj/effect/spawner/lootdrop/maintenance, @@ -47296,7 +46981,7 @@ /turf/open/floor/plasteel/neutral/corner, /area/hallway/secondary/exit/departure_lounge) "coT" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "coV" = ( @@ -47450,7 +47135,7 @@ /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) "cpt" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -47979,7 +47664,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/main/monastery) "crJ" = ( -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Crematorium"; opacity = 1; req_access_txt = "27" @@ -48116,7 +47801,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/main/monastery) "csn" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -48226,7 +47911,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Chapel Office"; opacity = 1; req_access_txt = "22" @@ -49113,7 +48798,7 @@ /turf/closed/wall/mineral/iron, /area/library/lounge) "cwg" = ( -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Library" }, /obj/structure/cable{ @@ -49292,7 +48977,7 @@ /turf/open/space, /area/space/nearstation) "cwO" = ( -/obj/item/device/flashlight/lantern, +/obj/item/flashlight/lantern, /turf/open/floor/plasteel/dark, /area/chapel/main/monastery) "cwR" = ( @@ -49358,7 +49043,7 @@ /turf/open/floor/carpet, /area/library/lounge) "cxz" = ( -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Library" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -49596,7 +49281,7 @@ /area/library) "czo" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -49652,7 +49337,7 @@ /area/library) "czC" = ( /obj/structure/table/wood/fancy, -/obj/item/device/flashlight/lantern{ +/obj/item/flashlight/lantern{ on = 1; pixel_y = 8 }, @@ -49696,7 +49381,7 @@ /area/library) "czO" = ( /obj/structure/table/wood, -/obj/item/device/instrument/saxophone, +/obj/item/instrument/saxophone, /turf/open/floor/plasteel/dark, /area/library) "czP" = ( @@ -49791,7 +49476,7 @@ /area/library) "cAt" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lantern{ +/obj/item/flashlight/lantern{ pixel_y = 8 }, /turf/open/floor/plasteel/vault{ @@ -49808,7 +49493,7 @@ /area/library) "cAv" = ( /obj/structure/table/wood, -/obj/item/device/camera, +/obj/item/camera, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/vault{ dir = 5 @@ -50245,6 +49930,18 @@ dir = 1 }, /area/science/circuit) +"eab" = ( +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/cryopod"; + dir = 1; + name = "Crew Cryogenics APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/darkpurple, +/area/crew_quarters/cryopod) "eeQ" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -50257,26 +49954,57 @@ /area/quartermaster/office) "ejp" = ( /obj/structure/table/reinforced, -/obj/item/device/integrated_circuit_printer, -/obj/item/device/integrated_electronics/wirer, +/obj/item/integrated_circuit_printer, +/obj/item/integrated_electronics/wirer, /turf/open/floor/plasteel/whitepurple/side{ dir = 1 }, /area/science/circuit) +"eIh" = ( +/obj/machinery/chem_master/condimaster, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) "eQR" = ( /obj/effect/spawner/lootdrop/two_percent_xeno_egg_spawner, /turf/open/floor/engine, /area/science/xenobiology) +"fap" = ( +/obj/machinery/cryopod{ + tag = "icon-cryopod-open (EAST)"; + icon_state = "cryopod-open"; + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"ffT" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) +"fmr" = ( +/obj/docking_port/stationary{ + area_type = /area/construction/mining/aux_base; + dheight = 4; + dir = 2; + dwidth = 4; + height = 9; + id = "aux_base_zone"; + name = "aux base zone"; + roundstart_template = /datum/map_template/shuttle/aux_base/default; + width = 9 + }, +/turf/open/floor/plating, +/area/construction/mining/aux_base) "fon" = ( /obj/structure/lattice, /obj/structure/grille, /turf/open/space/basic, /area/space/nearstation) "fuR" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4; - filter_type = "n2"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -50308,6 +50036,11 @@ /obj/machinery/door/firedoor/heavy, /turf/open/floor/plasteel, /area/science/mixing) +"fCc" = ( +/obj/machinery/computer/libraryconsole/bookmanagement, +/obj/structure/table, +/turf/open/floor/plasteel/dark, +/area/security/prison) "fIW" = ( /obj/machinery/light_switch{ dir = 9; @@ -50348,14 +50081,49 @@ dir = 8 }, /area/science/circuit) +"gIT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/stairs, +/area/crew_quarters/cryopod) "gMm" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall/r_wall, /area/science/mixing) +"gQc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) "gYo" = ( /obj/structure/grille, /turf/open/space/basic, /area/space/nearstation) +"hbH" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/darkpurple, +/area/crew_quarters/cryopod) +"htQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) "htU" = ( /obj/machinery/rnd/production/protolathe/department/science, /turf/open/floor/plasteel/purple/side{ @@ -50377,7 +50145,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/device/integrated_electronics/debugger, +/obj/item/integrated_electronics/debugger, /turf/open/floor/plasteel/whitepurple/side{ dir = 1 }, @@ -50433,7 +50201,7 @@ /turf/open/floor/plasteel/white, /area/science/circuit) "jgr" = ( -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Library" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -50455,6 +50223,12 @@ dir = 1 }, /area/crew_quarters/heads/hos) +"jwN" = ( +/obj/machinery/computer/cryopod{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/darkpurple, +/area/crew_quarters/cryopod) "jBh" = ( /obj/structure/rack, /obj/item/stack/sheet/glass/fifty{ @@ -50538,6 +50312,11 @@ "kwI" = ( /turf/open/floor/plasteel, /area/science/mixing) +"kAy" = ( +/obj/effect/spawner/structure/window, +/obj/structure/sign/departments/evac, +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) "kAz" = ( /obj/structure/cable{ icon_state = "1-2" @@ -50546,6 +50325,15 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/maintenance/department/cargo) +"kEM" = ( +/obj/structure/sign/directions/evac{ + dir = 1; + pixel_x = -32 + }, +/turf/open/floor/plasteel/green/corner{ + dir = 1 + }, +/area/hallway/primary/central) "lju" = ( /obj/machinery/vending/snack/random, /turf/open/floor/plasteel/purple/corner{ @@ -50562,7 +50350,7 @@ /turf/open/floor/plasteel, /area/science/circuit) "lqy" = ( -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Library" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -50605,6 +50393,27 @@ /obj/item/stack/cable_coil, /turf/open/floor/plasteel/whitepurple/side, /area/science/lab) +"myu" = ( +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge"; + req_access_txt = "19" + }, +/obj/effect/turf_decal/delivery, +/obj/structure/sign/directions/evac{ + dir = 1; + pixel_x = 32 + }, +/turf/open/floor/plasteel/vault, +/area/bridge) "mCe" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -50631,8 +50440,8 @@ pixel_x = 10 }, /obj/structure/rack, -/obj/item/device/multitool, -/obj/item/device/multitool, +/obj/item/multitool, +/obj/item/multitool, /obj/item/screwdriver, /obj/item/screwdriver, /turf/open/floor/plasteel/white, @@ -50670,6 +50479,9 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/storage/primary) +"oEA" = ( +/turf/closed/wall, +/area/construction/mining/aux_base) "oEG" = ( /obj/machinery/bookbinder, /turf/open/floor/plasteel/purple/side{ @@ -50706,7 +50518,7 @@ /area/engine/break_room) "ptq" = ( /obj/structure/table/reinforced, -/obj/item/device/integrated_electronics/analyzer, +/obj/item/integrated_electronics/analyzer, /turf/open/floor/plasteel/white, /area/science/circuit) "pWF" = ( @@ -50747,7 +50559,7 @@ pixel_x = 20; pixel_y = -6 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27; @@ -50790,6 +50602,9 @@ dir = 4 }, /area/hallway/primary/central) +"rnf" = ( +/turf/open/floor/plasteel/darkpurple, +/area/crew_quarters/cryopod) "rtE" = ( /turf/open/floor/plasteel/purple/corner{ dir = 1 @@ -50863,6 +50678,30 @@ /obj/machinery/atmospherics/pipe/simple/general/hidden, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) +"tHk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/sign/directions/evac{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"tRq" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"tSS" = ( +/obj/machinery/conveyor/inverted{ + dir = 10; + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"tWt" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/departments/evac, +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) "tYg" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -50878,9 +50717,13 @@ dir = 4 }, /obj/structure/table/reinforced, -/obj/item/device/integrated_electronics/analyzer, +/obj/item/integrated_electronics/analyzer, /turf/open/floor/plasteel/white, /area/science/circuit) +"ukn" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/construction/mining/aux_base) "ulu" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ @@ -50920,6 +50763,9 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) +"vdT" = ( +/turf/closed/wall, +/area/crew_quarters/cryopod) "vpz" = ( /obj/structure/table/reinforced, /obj/machinery/computer/security/telescreen{ @@ -50929,8 +50775,8 @@ network = list("rd"); pixel_y = 32 }, -/obj/item/device/integrated_circuit_printer, -/obj/item/device/integrated_electronics/debugger, +/obj/item/integrated_circuit_printer, +/obj/item/integrated_electronics/debugger, /turf/open/floor/plasteel/whitepurple/side{ dir = 1 }, @@ -50947,7 +50793,7 @@ /area/crew_quarters/fitness/recreation) "vJd" = ( /obj/structure/table/reinforced, -/obj/item/device/integrated_electronics/wirer, +/obj/item/integrated_electronics/wirer, /turf/open/floor/plasteel/white, /area/science/circuit) "vMX" = ( @@ -50964,7 +50810,7 @@ /turf/open/floor/plasteel, /area/science/circuit) "vOw" = ( -/obj/machinery/door/airlock/centcom{ +/obj/machinery/door/airlock/grunge{ name = "Library" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -50983,6 +50829,28 @@ dir = 1 }, /area/storage/primary) +"wmX" = ( +/obj/machinery/cryopod, +/turf/open/floor/plasteel/darkpurple, +/area/crew_quarters/cryopod) +"wsv" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"wxp" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/darkpurple, +/area/crew_quarters/cryopod) "wxJ" = ( /obj/effect/turf_decal/delivery, /obj/machinery/door/poddoor/preopen{ @@ -51024,6 +50892,13 @@ }, /turf/open/floor/plating, /area/crew_quarters/heads/cmo) +"wMV" = ( +/obj/machinery/conveyor/inverted{ + dir = 6; + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) "wTO" = ( /obj/machinery/vending/assist, /turf/open/floor/plasteel/purple/corner{ @@ -51059,6 +50934,13 @@ }, /turf/open/floor/plasteel/dark, /area/library) +"xyz" = ( +/obj/machinery/cryopod, +/obj/machinery/light/small/built{ + dir = 4 + }, +/turf/open/floor/plasteel/darkpurple, +/area/crew_quarters/cryopod) "xGQ" = ( /obj/structure/closet/crate, /obj/item/gun/energy/laser/practice, @@ -69690,7 +69572,7 @@ aHA aHA aHA aKB -aHA +tWt aKB aHA aHA @@ -70670,8 +70552,8 @@ aem aem aem aeT -aaB -aaC +afn +fap afZ agn agy @@ -70926,9 +70808,9 @@ abI aem aeo aeC -aaA +fCc aeU -aaD +afC aeU aeU agy @@ -74115,19 +73997,19 @@ bva bva bDi bva -bva -bva -bva -bva -bva -bva -bva -bva -bva -cqy -cqy -bva -bva +oEA +oEA +oEA +oEA +oEA +oEA +oEA +oEA +oEA +ukn +ukn +oEA +oEA aaa aaa aaa @@ -74372,7 +74254,7 @@ bva bWj bWZ bXS -bva +oEA bZs cab cab @@ -74383,8 +74265,8 @@ cab cab cab cab -cgo -bva +bZs +oEA aaa aaa aaa @@ -74573,7 +74455,7 @@ aOs aPv aQz aRH -aRH +kAy aRH aUJ aVQ @@ -74629,19 +74511,19 @@ bVt bWk bXa bXT -cqy +ukn bZt -cac -cac -cac -cac -cac -cac -cac -cac -cac +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs cgp -cqy +ukn aaa aaa aaa @@ -74888,17 +74770,17 @@ bDi bSw bYF bZt -cac -cac -cac -cac -cac -cac -cac -cac -cac +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs cgp -cqy +ukn aaa aaa aaa @@ -75143,19 +75025,19 @@ bVu bNX bDi bDi -cqy +ukn bZt -cac -cac -cac -cac -cac -cac -cac -cac -cac +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs cgp -cqy +ukn aaa aaa aaa @@ -75333,7 +75215,7 @@ aDv aBh aBh aGd -aEY +tHk aHG aIM aJG @@ -75400,19 +75282,19 @@ bVv bSw bPC bXU -bva +oEA bZt -cac -cac -cac -cac -cdF -cac -cac -cac -cac +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs cgp -bva +oEA aaa aaa aaa @@ -75657,19 +75539,19 @@ bVw bDi bDi bXV -cqy -bZu -cac -cac -cac -ccP -cdG -cep -cac -cac -cac +ukn +bZt +bZs +bZs +bZs +bZs +fmr +bZs +bZs +bZs +bZs cgp -bva +oEA aaa aaa aaa @@ -75914,19 +75796,19 @@ bVx bPC bXb bDi -bva +oEA bZt -cac -cac -cac -cac -cdH -cac -cac -cac -cac +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs cgp -bva +oEA aaa aaa aaa @@ -76171,19 +76053,19 @@ bVy bDi bXc bDi -cqy +ukn bZt -cac -cac -cac -cac -cac -cac -cac -cac -cac +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs cgp -cqy +ukn aaa aaa aaa @@ -76430,17 +76312,17 @@ bSw bDi bVq bZt -cac -cac -cac -cac -cac -cac -cac -cac -cac +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs cgp -cqy +ukn aaa aaa aaa @@ -76685,19 +76567,19 @@ bVz bWm bSw bNX -cqy +ukn bZt -cac -cac -cac -cac -cac -cac -cac -cac -cac +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs cgp -cqy +ukn aaa aaa aaa @@ -76942,8 +76824,8 @@ bva bva bDi cBj -bva -bZv +oEA +bZs cad cad cad @@ -76953,8 +76835,8 @@ cad cad cad cad -cgq -bva +bZs +oEA aaa aaa aaa @@ -77199,19 +77081,19 @@ bDi bDi bNK bva -bva -bva -bva -bva -bva -bva -bva -bva -bva -cqy -cqy -bva -bva +oEA +oEA +oEA +oEA +oEA +oEA +oEA +oEA +oEA +ukn +ukn +oEA +oEA aaa aaa aaa @@ -77659,7 +77541,7 @@ aQJ aRL aSD aTT -aTV +eIh aRL aWR aXT @@ -78698,7 +78580,7 @@ bcb bdn bel bdn -bdn +kEM aJI aDZ bik @@ -80473,7 +80355,7 @@ aDJ aEC aDJ aAA -aHe +myu aHU aIV aJS @@ -81067,13 +80949,13 @@ cfV cfV cgv cfV -aao +chx cfV -aao +chx cfV -aao +chx cfV -aao +chx cfV cfV bTE @@ -81323,15 +81205,15 @@ cCI cfV cfU cgv -aan +cgV bBW bBW -aan -aht +cgV +tRq aaa bBW bBW -aan +cgV cfV bTE abI @@ -81583,8 +81465,8 @@ cgv bBW bBW bBW -aht -abI +tRq +ffT aaa bBW bBW @@ -81840,9 +81722,9 @@ cgv bBW bBW aaa -aaq -abI -aaq +aaa +ffT +aaa aaa bBW bBW @@ -82096,13 +81978,13 @@ cfa cgv aaa aaa -aaq -aar -aau -aax -aaq -aht -aan +aaa +cii +cis +ciG +aaa +tRq +cgV cfV bTE abI @@ -82351,15 +82233,15 @@ cfd cfw cfW cgw -aht -abI -abI -aas -aav -aay -abI -abI -aht +tRq +ffT +ffT +cij +cit +ciH +ffT +ffT +tRq cfV bTE abI @@ -82608,13 +82490,13 @@ cfe cfx cfa cgv -aan -aht -aaq -aat -aaw -aaz -aaq +cgV +tRq +aaa +cik +ciu +ciI +aaa aaa aaa cfV @@ -82868,9 +82750,9 @@ cgv bBW bBW aaa -aaq -abI -aaq +aaa +ffT +aaa aaa bBW bBW @@ -83126,8 +83008,8 @@ bBW bBW aaa aaa -abI -aht +ffT +tRq aaa bBW bBW @@ -83379,15 +83261,15 @@ cCI cfV cfU cgv -aan +cgV bBW aaa aaa -aht -aan +tRq +cgV bBW bBW -aan +cgV cfV bTE abI @@ -83637,13 +83519,13 @@ cfV cfV cgv cfV -aap +chz cfV -aap +chz cfV -aap +chz cfV -aap +chz cfV cfV bTE @@ -87666,12 +87548,12 @@ aaa aaa aaa aaa -aab -aac -aaf -aai -aak -aam +vdT +eab +wxp +gIT +htQ +wsv aJI aLe aMe @@ -87923,11 +87805,11 @@ aaa aaa aaa aaa -aab -aad -aag -aaj -aal +vdT +jwN +rnf +hbH +gQc aIU aJH aLe @@ -88180,10 +88062,10 @@ apX aBL aBL apX -aab -aae -aah -aab +vdT +xyz +wmX +vdT aHN aIU aJI @@ -90219,11 +90101,11 @@ alf aaa aaa aaa -ann -ann -cnW -ann -aqX +aaa +aaa +aaa +aaa +aaa apX apX aul @@ -90475,12 +90357,12 @@ akn alg aaa aaa -ann -ann -aoE -apx -apY -aqX +aaa +aaa +aaa +aaa +aaa +aaa ash ash ash @@ -90732,11 +90614,11 @@ ako alg aaa aaa -cnW -aoc -aoF -aoF -aoF +aaa +aaa +aaa +aaa +aaa aqY asi atk @@ -90989,12 +90871,12 @@ akn alg aaa aaa -ann -ann -aoG -apy -apZ -aqX +aaa +aaa +aaa +aaa +aaa +aaa asj atl aum @@ -91247,11 +91129,11 @@ alh aaa aaa aaa -ann -ann -cnW -ann -aqX +aaa +aaa +aaa +aaa +aaa apX apX apX @@ -91770,7 +91652,7 @@ aiS atm aun atn -aaE +awx axw ayu azC @@ -97699,8 +97581,8 @@ aaa aLo aMG aNX -aPh -aQo +wMV +tSS aRy aSn aTA diff --git a/_maps/cit_map_files/generic/CentCom.dmm b/_maps/cit_map_files/generic/CentCom.dmm index d758c687ba..1b5d94d8c1 100644 --- a/_maps/cit_map_files/generic/CentCom.dmm +++ b/_maps/cit_map_files/generic/CentCom.dmm @@ -82,7 +82,7 @@ /area/holodeck/rec_center/lounge) "ao" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ layer = 3.3 }, /turf/open/floor/holofloor{ @@ -312,7 +312,7 @@ /area/holodeck/rec_center/court) "aY" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_y = 4 }, /turf/open/floor/holofloor/carpet, @@ -341,7 +341,7 @@ /area/holodeck/rec_center/bunker) "bd" = ( /obj/structure/table/wood, -/obj/item/device/instrument/violin, +/obj/item/instrument/violin, /turf/open/floor/holofloor/carpet, /area/holodeck/rec_center/lounge) "be" = ( @@ -754,7 +754,7 @@ /area/holodeck/rec_center/medical) "ct" = ( /obj/structure/table/glass, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /turf/open/floor/holofloor{ icon_state = "white" }, @@ -1918,7 +1918,7 @@ /turf/closed/indestructible/riveted, /area/space) "fy" = ( -/obj/machinery/igniter, +/obj/machinery/igniter/on, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/tdome/arena_source) @@ -2526,10 +2526,6 @@ /obj/machinery/capture_the_flag/red, /turf/open/floor/circuit/green/anim, /area/ctf) -"hH" = ( -/obj/effect/landmark/shuttle_import, -/turf/open/space, -/area/space) "hI" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -2755,15 +2751,15 @@ /area/centcom/control) "iv" = ( /obj/structure/table/reinforced, -/obj/item/device/radio{ +/obj/item/radio{ pixel_x = 5; pixel_y = 5 }, -/obj/item/device/radio{ +/obj/item/radio{ pixel_x = -5; pixel_y = 5 }, -/obj/item/device/radio, +/obj/item/radio, /obj/machinery/airalarm{ pixel_y = 23 }, @@ -2799,7 +2795,7 @@ "iy" = ( /obj/structure/table/reinforced, /obj/item/restraints/handcuffs/cable/zipties, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/centcom/control) @@ -2981,8 +2977,7 @@ /obj/machinery/door/firedoor, /obj/machinery/door/airlock/centcom{ name = "CentCom"; - opacity = 1; - req_access_txt = "0" + opacity = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -2995,19 +2990,17 @@ /turf/open/floor/plating, /area/centcom/supply) "jc" = ( -/obj/machinery/conveyor{ - dir = 1; - id = "XCCQMLoad2"; - movedir = 2 - }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/conveyor{ + dir = 1; + id = "XCCQMLoad2" + }, /turf/open/floor/plasteel, /area/centcom/supply) "jd" = ( /obj/machinery/conveyor_switch/oneway{ - convdir = 1; id = "XCCQMLoad2"; pixel_x = 6 }, @@ -3072,58 +3065,50 @@ "jk" = ( /obj/machinery/door/poddoor{ density = 1; - icon_state = "closed"; id = "XCCQMLoaddoor2"; - name = "Supply Dock Loading Door"; - opacity = 1 - }, -/obj/machinery/conveyor{ - dir = 4; - id = "XCCQMLoad2"; - movedir = 8 + name = "Supply Dock Loading Door" }, /obj/effect/turf_decal/stripes/end{ dir = 8 }, +/obj/machinery/conveyor{ + dir = 4; + id = "XCCQMLoad2" + }, /turf/open/floor/plasteel, /area/centcom/supply) "jl" = ( /obj/structure/plasticflaps, -/obj/machinery/conveyor{ - dir = 4; - id = "XCCQMLoad2"; - movedir = 8 - }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/machinery/conveyor{ + dir = 4; + id = "XCCQMLoad2" + }, /turf/open/floor/plasteel, /area/centcom/supply) "jm" = ( /obj/machinery/door/poddoor{ density = 1; - icon_state = "closed"; id = "XCCQMLoaddoor2"; - name = "Supply Dock Loading Door"; - opacity = 1 - }, -/obj/machinery/conveyor{ - dir = 4; - id = "XCCQMLoad2"; - movedir = 8 + name = "Supply Dock Loading Door" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/machinery/conveyor{ + dir = 4; + id = "XCCQMLoad2" + }, /turf/open/floor/plasteel, /area/centcom/supply) "jn" = ( -/obj/machinery/conveyor{ - dir = 1; - id = "XCCQMLoad2"; - movedir = 2 - }, /obj/effect/turf_decal/stripes/end, +/obj/machinery/conveyor/inverted{ + dir = 10; + id = "XCCQMLoad2" + }, /turf/open/floor/plasteel, /area/centcom/supply) "jo" = ( @@ -3280,10 +3265,8 @@ "jI" = ( /obj/machinery/door/poddoor{ density = 1; - icon_state = "closed"; id = "XCCQMLoaddoor"; - name = "Supply Dock Loading Door"; - opacity = 1 + name = "Supply Dock Loading Door" }, /obj/machinery/conveyor{ dir = 8; @@ -3308,10 +3291,8 @@ "jK" = ( /obj/machinery/door/poddoor{ density = 1; - icon_state = "closed"; id = "XCCQMLoaddoor"; - name = "Supply Dock Loading Door"; - opacity = 1 + name = "Supply Dock Loading Door" }, /obj/machinery/conveyor{ dir = 8; @@ -3323,13 +3304,13 @@ /turf/open/floor/plasteel, /area/centcom/supply) "jL" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "XCCQMLoad" - }, /obj/effect/turf_decal/stripes/end{ dir = 1 }, +/obj/machinery/conveyor/inverted{ + dir = 6; + id = "XCCQMLoad2" + }, /turf/open/floor/plasteel, /area/centcom/supply) "jM" = ( @@ -3343,20 +3324,9 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/centcom/supply) -"jO" = ( -/obj/machinery/conveyor{ - dir = 1; - id = "XCCQMLoad"; - movedir = 2 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/supply) "jP" = ( /obj/machinery/conveyor_switch/oneway{ - convdir = 1; + dir = 8; id = "XCCQMLoad"; pixel_x = 6 }, @@ -3459,7 +3429,7 @@ /area/centcom/control) "kc" = ( /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/structure/table/wood, /turf/open/floor/plasteel/vault{ dir = 8 @@ -3468,7 +3438,7 @@ "kd" = ( /obj/item/wrench, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/structure/table/wood, /turf/open/floor/plasteel/vault{ dir = 8 @@ -3534,7 +3504,6 @@ height = 50; id = "emergency_syndicate"; name = "Syndicate Auxillary Shuttle Dock"; - turf_type = /turf/open/floor/plating/asteroid/snow; width = 50 }, /turf/open/floor/plating/asteroid/snow/airless, @@ -3852,7 +3821,7 @@ "lb" = ( /obj/structure/table/wood, /obj/machinery/door/window, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ desc = "Talk smack through this."; syndie = 1 }, @@ -3870,7 +3839,7 @@ /area/centcom/control) "ld" = ( /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ desc = "Talk smack through this."; syndie = 1 }, @@ -3888,7 +3857,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/item/device/megaphone, +/obj/item/megaphone, /obj/structure/window/reinforced, /turf/open/floor/plasteel/grimy, /area/centcom/control) @@ -3975,7 +3944,7 @@ /obj/structure/table/reinforced, /obj/item/wrench, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/effect/turf_decal/stripes/line{ dir = 4 }, @@ -3984,7 +3953,7 @@ "lv" = ( /obj/structure/table/reinforced, /obj/item/gun/ballistic/automatic/wt550, -/obj/item/device/flashlight/seclite, +/obj/item/flashlight/seclite, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -4168,7 +4137,7 @@ /obj/structure/chair{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ desc = "Talk smack through this."; pixel_x = -32; syndie = 1 @@ -4308,7 +4277,7 @@ /area/centcom/control) "mn" = ( /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ desc = "Talk smack through this."; syndie = 1 }, @@ -4557,7 +4526,7 @@ "mX" = ( /obj/structure/table/reinforced, /obj/item/restraints/handcuffs/cable/zipties, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -4703,7 +4672,7 @@ "nt" = ( /obj/structure/table/wood, /obj/item/storage/photo_album, -/obj/item/device/camera, +/obj/item/camera, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -5003,9 +4972,9 @@ /area/centcom/ferry) "of" = ( /obj/structure/table/wood, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/item/storage/box/handcuffs, -/obj/item/device/flashlight/seclite, +/obj/item/flashlight/seclite, /obj/structure/noticeboard{ pixel_y = 28 }, @@ -5016,7 +4985,7 @@ "og" = ( /obj/structure/table/wood, /obj/item/storage/photo_album, -/obj/item/device/camera, +/obj/item/camera, /obj/structure/reagent_dispensers/peppertank{ pixel_y = 32 }, @@ -5057,7 +5026,7 @@ /area/centcom/ferry) "ol" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/requests_console{ announcementConsole = 1; department = "Captain's Desk"; @@ -5083,7 +5052,6 @@ /obj/machinery/vending/wallmed{ name = "Emergency NanoMed"; pixel_y = 32; - req_access_txt = "0"; use_power = 0 }, /turf/open/floor/plasteel/vault, @@ -5334,6 +5302,24 @@ dir = 8 }, /area/centcom/control) +"oS" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks/beer{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/tdome/tdomeobserve) +"oT" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/tdome/tdomeobserve) "oW" = ( /obj/structure/flora/bush, /obj/effect/light_emitter{ @@ -5677,7 +5663,7 @@ /obj/item/cartridge/quartermaster{ pixel_y = 6 }, -/obj/item/device/gps/mining, +/obj/item/gps/mining, /obj/effect/turf_decal/stripes/line{ dir = 6 }, @@ -5734,7 +5720,7 @@ /obj/item/folder/red, /obj/item/book/manual/wiki/security_space_law, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/machinery/airalarm{ dir = 1; pixel_y = -22 @@ -5803,7 +5789,7 @@ /area/centcom/ferry) "qj" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/vault, /area/centcom/ferry) "qk" = ( @@ -6051,8 +6037,7 @@ "qT" = ( /obj/machinery/door/airlock/centcom{ name = "CentCom"; - opacity = 1; - req_access_txt = "0" + opacity = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 2 @@ -6152,7 +6137,7 @@ "rk" = ( /obj/structure/table/reinforced, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -6163,7 +6148,7 @@ }, /obj/structure/table/reinforced, /obj/item/clipboard, -/obj/item/device/radio/headset/headset_cent, +/obj/item/radio/headset/headset_cent, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -6261,7 +6246,7 @@ /turf/open/floor/wood, /area/centcom/ferry) "rw" = ( -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/structure/table/reinforced, /turf/open/floor/plasteel/vault{ dir = 8 @@ -6455,7 +6440,7 @@ /obj/structure/table/reinforced, /obj/item/wrench, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -6529,7 +6514,7 @@ /area/syndicate_mothership/control) "sf" = ( /obj/structure/table/wood, -/obj/item/device/paicard, +/obj/item/paicard, /turf/open/floor/plasteel/bar{ dir = 2 }, @@ -6686,7 +6671,7 @@ "sA" = ( /obj/item/clipboard, /obj/structure/table/reinforced, -/obj/item/device/detective_scanner, +/obj/item/detective_scanner, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -6960,21 +6945,6 @@ }, /turf/open/floor/plating/airless, /area/syndicate_mothership/control) -"tj" = ( -/obj/machinery/porta_turret/syndicate/pod, -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/assault_pod) -"tk" = ( -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/assault_pod) -"tl" = ( -/obj/machinery/door/airlock/centcom{ - name = "Assault Pod"; - opacity = 1; - req_access_txt = "150" - }, -/turf/open/floor/plating, -/area/shuttle/assault_pod) "tn" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -7064,7 +7034,7 @@ /obj/structure/table/reinforced, /obj/item/folder/red, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -7163,7 +7133,7 @@ /area/centcom/ferry) "tH" = ( /obj/item/gun/energy/pulse/carbine/loyalpin, -/obj/item/device/flashlight/seclite, +/obj/item/flashlight/seclite, /obj/structure/table/reinforced, /obj/machinery/airalarm{ dir = 1; @@ -7295,21 +7265,6 @@ }, /turf/open/floor/plating/airless, /area/syndicate_mothership/control) -"uf" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/assault_pod) -"ug" = ( -/turf/open/floor/mineral/plastitanium, -/area/shuttle/assault_pod) -"uh" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/assault_pod) "ui" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -7338,8 +7293,7 @@ /obj/machinery/button/door{ id = "XCCFerry"; name = "Hanger Bay Shutters"; - pixel_y = -38; - req_access_txt = "0" + pixel_y = -38 }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -7499,7 +7453,7 @@ /area/wizard_station) "uD" = ( /obj/structure/table/wood/fancy, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ desc = "Talk smack through this."; syndie = 1 }, @@ -7536,13 +7490,6 @@ }, /turf/open/floor/mineral/plastitanium, /area/syndicate_mothership/control) -"uN" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/light, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/assault_pod) "uO" = ( /obj/machinery/door/airlock/centcom{ name = "Shuttle Control Office"; @@ -7760,7 +7707,7 @@ /area/syndicate_mothership/control) "vw" = ( /obj/structure/table/wood, -/obj/item/device/syndicatedetonator{ +/obj/item/syndicatedetonator{ desc = "This gaudy button can be used to instantly detonate syndicate bombs that have been activated on the station. It is also fun to press." }, /turf/open/floor/wood, @@ -7770,19 +7717,6 @@ /obj/item/toy/nuke, /turf/open/floor/wood, /area/syndicate_mothership/control) -"vy" = ( -/obj/machinery/door/airlock/centcom{ - aiControlDisabled = 1; - name = "Assault Pod"; - opacity = 1; - req_access_txt = "150" - }, -/turf/open/floor/plating, -/area/shuttle/assault_pod) -"vz" = ( -/obj/machinery/computer/shuttle/syndicate/drop_pod, -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/assault_pod) "vA" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/sign/directions/engineering{ @@ -7910,7 +7844,7 @@ }, /area/centcom/control) "vL" = ( -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/structure/table/reinforced, /turf/open/floor/plasteel/vault{ dir = 8 @@ -8077,13 +8011,6 @@ dir = 2 }, /area/syndicate_mothership/control) -"wq" = ( -/obj/structure/chair, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/assault_pod) "wr" = ( /obj/structure/chair{ dir = 4 @@ -8227,8 +8154,7 @@ /obj/machinery/door/firedoor, /obj/machinery/door/airlock/centcom{ name = "CentCom"; - opacity = 1; - req_access_txt = "0" + opacity = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -8271,7 +8197,7 @@ /area/wizard_station) "wP" = ( /obj/structure/table/wood/fancy, -/obj/item/device/camera/spooky, +/obj/item/camera/spooky, /turf/open/floor/carpet, /area/wizard_station) "wQ" = ( @@ -8336,8 +8262,7 @@ /area/space) "xc" = ( /obj/machinery/door/airlock/external{ - name = "Ferry Airlock"; - req_access_txt = "0" + name = "Ferry Airlock" }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -8528,21 +8453,17 @@ /turf/open/floor/plating/airless, /area/syndicate_mothership/control) "xN" = ( -/obj/machinery/door/airlock/centcom{ - aiControlDisabled = 1; - name = "Assault Pod"; - opacity = 1; - req_access_txt = "150" - }, -/obj/docking_port/mobile/assault_pod{ +/obj/docking_port/stationary{ + area_type = /area/syndicate_mothership/control; + dir = 1; dwidth = 3; - name = "steel rain"; - port_direction = 4; - preferred_direction = 4; - timid = 0 + height = 7; + name = "escape pod loader"; + roundstart_template = /datum/map_template/shuttle/assault_pod/default; + width = 7 }, -/turf/open/floor/plating, -/area/shuttle/assault_pod) +/turf/open/floor/plating/airless, +/area/syndicate_mothership/control) "xO" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -8847,8 +8768,7 @@ /obj/machinery/door/firedoor, /obj/machinery/door/airlock/centcom{ name = "CentCom"; - opacity = 1; - req_access_txt = "0" + opacity = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -8948,7 +8868,7 @@ "zg" = ( /obj/structure/table/reinforced, /obj/item/gun/ballistic/automatic/wt550, -/obj/item/device/flashlight/seclite, +/obj/item/flashlight/seclite, /obj/structure/noticeboard{ pixel_y = 28 }, @@ -9046,7 +8966,7 @@ "zy" = ( /obj/structure/table, /obj/item/gun/energy/ionrifle{ - pin = /obj/item/device/firing_pin + pin = /obj/item/firing_pin }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -9235,7 +9155,7 @@ "Aj" = ( /obj/structure/table/reinforced, /obj/item/restraints/handcuffs, -/obj/item/device/radio, +/obj/item/radio, /obj/effect/turf_decal/stripes/line{ dir = 9 }, @@ -9361,7 +9281,7 @@ /area/centcom/ferry) "AL" = ( /obj/structure/table/reinforced, -/obj/item/device/flashlight/seclite, +/obj/item/flashlight/seclite, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -9530,7 +9450,7 @@ "Bw" = ( /obj/structure/table/reinforced, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /turf/open/floor/plasteel/grimy, /area/centcom/ferry) "Bx" = ( @@ -9561,7 +9481,7 @@ "BA" = ( /obj/structure/table/reinforced, /obj/item/restraints/handcuffs/cable/zipties, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -9764,7 +9684,7 @@ "BZ" = ( /obj/structure/table/wood, /obj/item/clipboard, -/obj/item/device/radio/headset/headset_cent, +/obj/item/radio/headset/headset_cent, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -9802,7 +9722,7 @@ "Ce" = ( /obj/structure/table/reinforced, /obj/item/restraints/handcuffs/cable/zipties, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -9853,7 +9773,7 @@ /obj/item/folder/red, /obj/item/book/manual/wiki/security_space_law, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -9941,15 +9861,15 @@ }, /area/centcom/ferry) "CA" = ( -/obj/item/device/radio{ +/obj/item/radio{ pixel_x = 5; pixel_y = 5 }, -/obj/item/device/radio{ +/obj/item/radio{ pixel_x = -5; pixel_y = 5 }, -/obj/item/device/radio, +/obj/item/radio, /obj/structure/table/wood, /turf/open/floor/plasteel/vault{ dir = 8 @@ -9971,7 +9891,6 @@ /obj/machinery/vending/wallmed{ name = "Emergency NanoMed"; pixel_y = -32; - req_access_txt = "0"; use_power = 0 }, /obj/effect/turf_decal/stripes/line{ @@ -10024,7 +9943,7 @@ "CH" = ( /obj/structure/table/reinforced, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/machinery/firealarm{ dir = 4; pixel_x = 24 @@ -10301,7 +10220,7 @@ "DA" = ( /obj/structure/table/reinforced, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -10559,8 +10478,7 @@ "Eg" = ( /obj/machinery/door/airlock/centcom{ name = "Thunderdome Booth"; - opacity = 1; - req_access_txt = "0" + opacity = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 2 @@ -10899,7 +10817,7 @@ /area/centcom/holding) "Fe" = ( /obj/structure/rack, -/obj/item/device/camera, +/obj/item/camera, /turf/open/floor/plasteel/cafeteria, /area/centcom/holding) "Ff" = ( @@ -11048,7 +10966,7 @@ /turf/open/floor/plasteel/cafeteria, /area/centcom/holding) "FC" = ( -/obj/item/device/camera, +/obj/item/camera, /turf/open/floor/plating/beach/sand, /area/centcom/holding) "FD" = ( @@ -11091,8 +11009,7 @@ "FK" = ( /obj/machinery/door/airlock/centcom{ name = "Thunderdome Backstage"; - opacity = 1; - req_access_txt = "0" + opacity = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -11838,13 +11755,6 @@ }, /turf/open/floor/plasteel/bar, /area/tdome/tdomeobserve) -"HE" = ( -/obj/structure/table/wood, -/obj/machinery/chem_dispenser/drinks/beer, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) "HF" = ( /obj/structure/sink{ dir = 4; @@ -11939,13 +11849,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/tdome/tdomeobserve) -"HQ" = ( -/obj/structure/table/wood, -/obj/machinery/chem_dispenser/drinks, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) "HR" = ( /obj/structure/sink{ dir = 4; @@ -12165,7 +12068,7 @@ }, /area/tdome/tdomeobserve) "Is" = ( -/obj/machinery/igniter, +/obj/machinery/igniter/on, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/tdome/arena) @@ -12639,15 +12542,15 @@ }, /area/tdome/tdomeadmin) "JP" = ( -/obj/item/device/radio{ +/obj/item/radio{ pixel_x = 5; pixel_y = 5 }, -/obj/item/device/radio{ +/obj/item/radio{ pixel_x = -5; pixel_y = 5 }, -/obj/item/device/radio, +/obj/item/radio, /obj/structure/table/wood, /turf/open/floor/plasteel/vault{ dir = 8 @@ -12821,7 +12724,7 @@ /obj/item/folder/red, /obj/item/book/manual/wiki/security_space_law, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -12829,7 +12732,7 @@ "Kq" = ( /obj/structure/table/wood, /obj/item/clipboard, -/obj/item/device/radio/headset/headset_cent, +/obj/item/radio/headset/headset_cent, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -13169,7 +13072,7 @@ /area/centcom/evac) "Ln" = ( /obj/structure/table, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/mineral/plastitanium, /area/centcom/evac) "Lo" = ( @@ -13271,7 +13174,7 @@ /area/centcom/evac) "LE" = ( /obj/structure/table, -/obj/item/device/radio/off, +/obj/item/radio/off, /turf/open/floor/mineral/titanium/blue, /area/centcom/evac) "LF" = ( @@ -13299,7 +13202,7 @@ /area/centcom/evac) "LJ" = ( /obj/structure/table, -/obj/item/device/radio/off, +/obj/item/radio/off, /obj/machinery/light{ dir = 4 }, @@ -13467,7 +13370,6 @@ "My" = ( /obj/docking_port/stationary{ area_type = /area/syndicate_mothership; - baseturf_type = /turf/open/floor/plating/asteroid/snow; dheight = 1; dir = 8; dwidth = 12; @@ -13475,7 +13377,6 @@ id = "syndicate_away"; name = "syndicate recon outpost"; roundstart_template = /datum/map_template/shuttle/infiltrator/basic; - turf_type = /turf/open/floor/plating/asteroid/snow; width = 23 }, /turf/open/floor/plating/asteroid/snow/airless, @@ -13529,8 +13430,7 @@ "NU" = ( /obj/machinery/door/airlock/centcom{ name = "CentCom"; - opacity = 1; - req_access_txt = "0" + opacity = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 2 @@ -13544,8 +13444,7 @@ /obj/machinery/door/firedoor, /obj/machinery/door/airlock/centcom{ name = "CentCom"; - opacity = 1; - req_access_txt = "0" + opacity = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -13581,6 +13480,10 @@ }, /turf/open/floor/plasteel, /area/centcom/control) +"VX" = ( +/obj/effect/landmark/shuttle_import, +/turf/open/space/basic, +/area/space) "Wc" = ( /obj/machinery/door/airlock/centcom{ name = "CentCom Security"; @@ -13638,8 +13541,7 @@ /area/centcom/control) "Xy" = ( /obj/machinery/door/airlock/external{ - name = "Ferry Airlock"; - req_access_txt = "0" + name = "Ferry Airlock" }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -34936,11 +34838,11 @@ aa ku sl ti -tj -tk -vy -tk -tj +sk +sk +sk +sk +sk xM yk ku @@ -35192,13 +35094,13 @@ hh aa ku sm -tj -tk -uf -ug -uf -tk -tj +sk +sk +sk +sk +sk +sk +sk yl ku aa @@ -35449,13 +35351,13 @@ hh aa ku sn -tk -uf -ug -uh -ug -uf -tk +sk +sk +sk +sk +sk +sk +sk ym ku aa @@ -35706,12 +35608,12 @@ hh aa ku sm -tl -ug -uN -vz -wq -ug +sk +sk +sk +sk +sk +sk xN yl ku @@ -35963,13 +35865,13 @@ hh aa ku sm -tk -uh -ug -uf -ug -uh -tk +sk +sk +sk +sk +sk +sk +sk yl ku aa @@ -36097,7 +35999,7 @@ aa aa aa aa -aa +VX aa aa aa @@ -36220,13 +36122,13 @@ hh aa ku so -tj -tk -uh -ug -uh -tk -tj +sk +sk +sk +sk +sk +sk +sk yl ku aa @@ -36478,11 +36380,11 @@ aa ku sp tn -tj -tk -vy -tk -tj +sk +sk +sk +sk +sk xO xP ku @@ -44640,7 +44542,7 @@ aa aa aa aa -hH +ad aa aa aa @@ -53677,9 +53579,9 @@ iP jy jD jL -jO -jO -jO +jc +jc +jc iO iO iX @@ -59893,8 +59795,8 @@ Ep GU GM Hw -HE -HQ +oS +oT HX Ie Iq diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index 91d975de6f..c9b0b90195 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -11,7 +11,7 @@ /obj/machinery/chem_dispenser/drinks/beer{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = 25 }, /turf/open/floor/plasteel/bar, @@ -53,6 +53,9 @@ /turf/open/space, /area/space/nearstation) "aah" = ( +/obj/structure/sign/warning/securearea{ + pixel_y = -32 + }, /turf/open/space, /area/space/nearstation) "aai" = ( @@ -113,7 +116,7 @@ /area/security/prison) "aaq" = ( /obj/machinery/hydroponics/soil, -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /obj/machinery/camera{ c_tag = "Prison Common Room"; network = list("ss13","prison") @@ -277,11 +280,6 @@ /obj/structure/lattice, /turf/open/space, /area/space/nearstation) -"aaT" = ( -/obj/machinery/flasher/portable, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/plasteel/dark, -/area/security/armory) "aaU" = ( /obj/machinery/computer/arcade, /turf/open/floor/plasteel/floorgrime, @@ -377,8 +375,8 @@ pixel_y = 10 }, /obj/structure/table/wood, -/obj/item/device/radio/off, -/obj/item/device/taperecorder, +/obj/item/radio/off, +/obj/item/taperecorder, /turf/open/floor/carpet, /area/crew_quarters/heads/hos) "abl" = ( @@ -600,7 +598,7 @@ name = "Head of Security RC"; pixel_y = 30 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = -31 @@ -856,7 +854,7 @@ c_tag = "Prison Cell 3"; network = list("ss13","prison") }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; @@ -887,7 +885,7 @@ c_tag = "Prison Cell 2"; network = list("ss13","prison") }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; @@ -909,7 +907,7 @@ c_tag = "Prison Cell 1"; network = list("ss13","prison") }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; @@ -1005,7 +1003,7 @@ /area/crew_quarters/heads/hos) "acR" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ on = 0; pixel_x = -3; pixel_y = 8 @@ -1233,10 +1231,10 @@ /area/crew_quarters/heads/hos) "adq" = ( /obj/structure/table/wood, -/obj/item/device/instrument/guitar{ +/obj/item/instrument/guitar{ pixel_x = -7 }, -/obj/item/device/instrument/eguitar{ +/obj/item/instrument/eguitar{ pixel_x = 5 }, /turf/open/floor/wood, @@ -1366,10 +1364,10 @@ /obj/item/folder/red{ pixel_x = 3 }, -/obj/item/device/taperecorder{ +/obj/item/taperecorder{ pixel_x = -3 }, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/item/reagent_containers/spray/pepper, /turf/open/floor/plasteel/dark, /area/security/execution/transfer) @@ -1554,7 +1552,7 @@ /area/security/execution/transfer) "aeb" = ( /obj/structure/table, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/dark, /area/security/execution/transfer) @@ -1847,15 +1845,6 @@ }, /turf/open/floor/plating, /area/security/main) -"aeD" = ( -/obj/structure/shuttle/engine/propulsion/burst{ - dir = 8 - }, -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_3) -"aeE" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_3) "aeG" = ( /obj/structure/cable, /obj/machinery/power/solar{ @@ -1882,7 +1871,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = 1; pixel_y = 5 }, @@ -2086,7 +2075,6 @@ height = 18; id = "emergency_home"; name = "BoxStation emergency evac bay"; - turf_type = /turf/open/space; width = 32 }, /turf/open/space/basic, @@ -2102,7 +2090,7 @@ /turf/open/floor/plasteel/showroomfloor, /area/security/main) "afd" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -2192,51 +2180,15 @@ /turf/open/floor/plating, /area/security/main) "afp" = ( -/obj/machinery/door/airlock/titanium{ - name = "Escape Pod Airlock" - }, -/obj/docking_port/mobile/pod{ +/obj/docking_port/stationary{ dir = 4; - id = "pod3"; - name = "escape pod 3"; - port_direction = 2; - preferred_direction = 4; - timid = 0 + dwidth = 1; + height = 4; + roundstart_template = /datum/map_template/shuttle/escape_pod/default; + width = 3 }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_3) -"afq" = ( -/obj/machinery/computer/shuttle/pod{ - pixel_y = -32; - possible_destinations = "pod_lavaland3"; - shuttleId = "pod3" - }, -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/status_display{ - pixel_y = 32 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_3) -"afr" = ( -/obj/item/device/radio/intercom{ - pixel_y = 25 - }, -/obj/item/storage/pod{ - pixel_x = 6; - pixel_y = -32 - }, -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/light/small, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_3) -"afs" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/pod_3) +/turf/open/space/basic, +/area/space) "aft" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 5 @@ -2303,7 +2255,7 @@ /turf/closed/wall/r_wall, /area/security/execution/transfer) "afB" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 @@ -2330,7 +2282,7 @@ /area/security/prison) "afD" = ( /obj/structure/table, -/obj/item/device/electropack, +/obj/item/electropack, /turf/open/floor/plasteel/red/side, /area/security/prison) "afE" = ( @@ -2339,7 +2291,7 @@ /area/hallway/secondary/exit) "afF" = ( /obj/structure/table, -/obj/item/device/assembly/signaler, +/obj/item/assembly/signaler, /obj/item/clothing/suit/straight_jacket, /turf/open/floor/plasteel/red/side, /area/security/prison) @@ -2431,7 +2383,7 @@ "afV" = ( /obj/structure/table, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/timer, +/obj/item/assembly/timer, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/security/main) @@ -2455,7 +2407,7 @@ /area/security/main) "afZ" = ( /obj/structure/table, -/obj/item/device/radio/off, +/obj/item/radio/off, /obj/item/screwdriver{ pixel_y = 10 }, @@ -2504,11 +2456,11 @@ /area/security/execution/transfer) "agh" = ( /obj/structure/table, -/obj/item/device/electropack, +/obj/item/electropack, /obj/item/screwdriver, /obj/item/wrench, /obj/item/clothing/head/helmet, -/obj/item/device/assembly/signaler, +/obj/item/assembly/signaler, /obj/machinery/light/small, /obj/machinery/airalarm{ dir = 1; @@ -2668,7 +2620,7 @@ /area/security/main) "agB" = ( /obj/structure/table, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/security/main) @@ -2997,7 +2949,7 @@ /area/security/prison) "ahq" = ( /obj/structure/table, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/dark, /area/security/prison) "ahr" = ( @@ -3009,7 +2961,7 @@ }, /area/security/brig) "ahs" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -3300,7 +3252,7 @@ "ahV" = ( /obj/structure/table, /obj/item/folder/red, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /turf/open/floor/plasteel/dark, /area/security/prison) "ahW" = ( @@ -3502,7 +3454,7 @@ /turf/open/floor/plasteel/red/side, /area/security/main) "ait" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -3821,7 +3773,7 @@ }, /area/security/courtroom) "ajj" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -4052,7 +4004,7 @@ /area/security/brig) "ajO" = ( /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; dir = 8; listening = 1; @@ -4652,7 +4604,7 @@ }, /area/ai_monitored/nuke_storage) "alw" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; @@ -4674,7 +4626,7 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; @@ -4765,7 +4717,7 @@ }, /area/security/courtroom) "alJ" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/neutral/side, /area/security/courtroom) "alK" = ( @@ -4946,7 +4898,7 @@ req_access_txt = "2" }, /obj/item/restraints/handcuffs, -/obj/item/device/radio/off, +/obj/item/radio/off, /turf/open/floor/plasteel/dark, /area/security/brig) "amn" = ( @@ -5515,7 +5467,7 @@ /obj/machinery/light_switch{ pixel_x = -20 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = 25 }, /turf/open/floor/wood, @@ -5567,7 +5519,7 @@ /obj/structure/sign/warning/vacuum/external{ pixel_y = 32 }, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plating, /area/maintenance/solars/starboard/fore) "aoj" = ( @@ -5693,7 +5645,7 @@ /obj/structure/chair{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -5939,8 +5891,14 @@ dir = 4 }, /area/hallway/primary/fore) +"apn" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/closed/wall, +/area/maintenance/fore/secondary) "apo" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, /turf/closed/wall, /area/maintenance/fore/secondary) "app" = ( @@ -6022,10 +5980,9 @@ /turf/open/floor/plating, /area/maintenance/fore/secondary) "apw" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; - name = "Air In"; - on = 1 + name = "Air In" }, /obj/effect/landmark/blobstart, /obj/effect/turf_decal/stripes/line{ @@ -6107,10 +6064,6 @@ /obj/machinery/portable_atmospherics/canister/water_vapor, /turf/open/floor/plasteel, /area/janitor) -"apH" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/pod_1) "apI" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/on{ dir = 1; @@ -6124,10 +6077,6 @@ "apJ" = ( /turf/closed/wall, /area/construction/mining/aux_base) -"apK" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/pod_2) "apL" = ( /obj/structure/table, /obj/effect/spawner/lootdrop/maintenance{ @@ -6144,11 +6093,8 @@ /turf/open/floor/plasteel/floorgrime, /area/maintenance/port/fore) "apN" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, /turf/open/floor/plating, -/area/shuttle/auxillary_base) +/area/construction/mining/aux_base) "apO" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 1 @@ -6220,9 +6166,6 @@ dir = 8; pixel_x = 24 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /turf/open/floor/plasteel/red/corner{ dir = 4 }, @@ -6456,9 +6399,6 @@ /obj/effect/landmark/xeno_spawn, /turf/open/floor/plating, /area/maintenance/starboard/fore) -"aqF" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_1) "aqG" = ( /obj/docking_port/stationary/random{ dir = 4; @@ -6467,15 +6407,6 @@ }, /turf/open/space, /area/space/nearstation) -"aqH" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_2) -"aqI" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "aqJ" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/machinery/door/airlock/external{ @@ -6501,13 +6432,6 @@ /obj/machinery/meter, /turf/open/floor/plating, /area/maintenance/port/fore) -"aqN" = ( -/obj/structure/closet/secure_closet/miner/unlocked, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "aqO" = ( /obj/structure/closet, /obj/effect/spawner/lootdrop/maintenance{ @@ -6622,7 +6546,7 @@ /area/lawoffice) "are" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -6776,15 +6700,6 @@ "arB" = ( /turf/closed/wall/r_wall, /area/hallway/secondary/entry) -"arC" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"arD" = ( -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "arE" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/yellow/side{ @@ -6879,7 +6794,7 @@ "arR" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plating, /area/security/vacantoffice/b) "arS" = ( @@ -7161,12 +7076,6 @@ "asC" = ( /turf/open/floor/plasteel/airless, /area/space/nearstation) -"asD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "asE" = ( /turf/closed/wall, /area/hallway/secondary/entry) @@ -7174,10 +7083,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/construction/mining/aux_base) -"asG" = ( -/obj/machinery/light, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "asH" = ( /obj/structure/closet/toolcloset, /turf/open/floor/plasteel/yellow/side{ @@ -7380,27 +7285,6 @@ dir = 8 }, /area/crew_quarters/dorms) -"atk" = ( -/obj/machinery/camera{ - c_tag = "Auxillary Mining Base"; - dir = 8; - network = list("ss13","auxbase") - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"atl" = ( -/obj/docking_port/mobile/auxillary_base{ - dheight = 4; - dir = 4; - dwidth = 4; - height = 9; - width = 9; - timid = 0 - }, -/obj/machinery/bluespace_beacon, -/obj/machinery/computer/auxillary_base, -/turf/closed/wall, -/area/shuttle/auxillary_base) "atm" = ( /turf/open/floor/wood, /area/crew_quarters/dorms) @@ -7683,7 +7567,7 @@ /area/lawoffice) "auh" = ( /obj/structure/table/wood, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/item/cartridge/lawyer, /turf/open/floor/wood, /area/lawoffice) @@ -7930,10 +7814,6 @@ }, /turf/open/floor/plasteel/floorgrime, /area/maintenance/department/electrical) -"auN" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "auO" = ( /obj/structure/closet/emcloset, /turf/open/floor/plating, @@ -8330,8 +8210,8 @@ pixel_x = 1; pixel_y = -1 }, -/obj/item/device/multitool, -/obj/item/device/radio/intercom{ +/obj/item/multitool, +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -8380,7 +8260,6 @@ height = 17; id = "syndicate_ne"; name = "northeast of station"; - turf_type = /turf/open/space; width = 23 }, /turf/open/space, @@ -8829,7 +8708,7 @@ dir = 8; pixel_x = 24 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, @@ -8845,12 +8724,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/hallway/secondary/entry) -"awX" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "awY" = ( /obj/machinery/light{ dir = 1 @@ -8896,7 +8769,7 @@ /obj/item/wallframe/camera, /obj/item/wallframe/camera, /obj/item/wallframe/camera, -/obj/item/device/assault_pod/mining, +/obj/item/assault_pod/mining, /obj/machinery/computer/security/telescreen{ desc = "Used for the Auxillary Mining Base."; dir = 8; @@ -9171,7 +9044,7 @@ /area/crew_quarters/dorms) "axM" = ( /obj/structure/table/wood, -/obj/item/device/paicard, +/obj/item/paicard, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "axN" = ( @@ -9421,8 +9294,8 @@ /obj/machinery/airalarm{ pixel_y = 23 }, -/obj/item/device/radio/off, -/obj/item/device/assembly/timer, +/obj/item/radio/off, +/obj/item/assembly/timer, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "ayw" = ( @@ -9523,8 +9396,7 @@ "ayK" = ( /obj/structure/closet/crate/rcd, /obj/machinery/camera/motion{ - c_tag = "EVA Motion Sensor"; - name = "motion-sensitive security camera" + c_tag = "EVA Motion Sensor" }, /turf/open/floor/plasteel/dark, /area/ai_monitored/storage/eva) @@ -9545,10 +9417,10 @@ dir = 1 }, /obj/item/hand_labeler, -/obj/item/device/flashlight, -/obj/item/device/flashlight, -/obj/item/device/flashlight, -/obj/item/device/flashlight, +/obj/item/flashlight, +/obj/item/flashlight, +/obj/item/flashlight, +/obj/item/flashlight, /turf/open/floor/plasteel/dark, /area/ai_monitored/storage/eva) "ayO" = ( @@ -9590,7 +9462,7 @@ pixel_x = -2; pixel_y = -1 }, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "ayS" = ( @@ -9608,8 +9480,8 @@ dir = 1 }, /obj/structure/table, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/signaler, +/obj/item/assembly/signaler, +/obj/item/assembly/signaler, /obj/item/stock_parts/cell/high/plus, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) @@ -9729,7 +9601,7 @@ /obj/structure/disposalpipe/segment{ dir = 5 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -9858,7 +9730,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "azC" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -10027,10 +9899,10 @@ /area/crew_quarters/toilet) "azY" = ( /obj/structure/table, -/obj/item/device/radio/off, -/obj/item/device/radio/off, -/obj/item/device/assembly/prox_sensor, -/obj/item/device/assembly/prox_sensor, +/obj/item/radio/off, +/obj/item/radio/off, +/obj/item/assembly/prox_sensor, +/obj/item/assembly/prox_sensor, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "azZ" = ( @@ -10074,7 +9946,7 @@ /turf/open/floor/plasteel/neutral/side, /area/crew_quarters/dorms) "aAg" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -11181,13 +11053,6 @@ dir = 4 }, /area/construction/mining/aux_base) -"aCU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/security/armory) "aCW" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/spawner/lootdrop/maintenance, @@ -11220,7 +11085,7 @@ "aDb" = ( /obj/structure/table, /obj/item/wirecutters, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = 1; pixel_y = 5 }, @@ -11235,7 +11100,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20 @@ -11285,11 +11150,11 @@ /area/gateway) "aDk" = ( /obj/structure/table, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = -8; pixel_y = -4 }, -/obj/item/device/assembly/igniter, +/obj/item/assembly/igniter, /obj/item/screwdriver{ pixel_y = 16 }, @@ -11305,7 +11170,7 @@ /area/storage/primary) "aDl" = ( /obj/structure/table, -/obj/item/device/t_scanner, +/obj/item/t_scanner, /obj/machinery/airalarm{ pixel_y = 23 }, @@ -11322,15 +11187,15 @@ /area/storage/primary) "aDn" = ( /obj/structure/table, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/signaler, -/obj/item/device/radio/intercom{ +/obj/item/assembly/signaler, +/obj/item/assembly/signaler, +/obj/item/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20 }, -/obj/item/device/multitool, -/obj/item/device/multitool{ +/obj/item/multitool, +/obj/item/multitool{ pixel_x = 4 }, /turf/open/floor/plasteel, @@ -11761,19 +11626,16 @@ /obj/structure/fans/tiny, /turf/open/floor/plating, /area/chapel/main) -"aEp" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 +"aEs" = ( +/obj/structure/window/reinforced, +/obj/vehicle/ridden/secway, +/obj/item/key/security, +/obj/machinery/door/window/eastleft{ + name = "Secway Docking Port" }, -/obj/structure/ore_box, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"aEt" = ( -/obj/item/restraints/handcuffs/fake, -/obj/effect/decal/cleanable/blood/old, -/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears, -/turf/open/floor/plating, -/area/maintenance/bar) +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/showroomfloor, +/area/space) "aEz" = ( /obj/machinery/power/apc{ dir = 4; @@ -11967,18 +11829,18 @@ /area/gateway) "aES" = ( /obj/structure/table, -/obj/item/device/radio/off{ +/obj/item/radio/off{ pixel_y = 6 }, -/obj/item/device/radio/off{ +/obj/item/radio/off{ pixel_x = 6; pixel_y = 4 }, -/obj/item/device/radio/off{ +/obj/item/radio/off{ pixel_x = -6; pixel_y = 4 }, -/obj/item/device/radio/off, +/obj/item/radio/off, /turf/open/floor/plasteel, /area/gateway) "aET" = ( @@ -12224,13 +12086,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/dark, /area/chapel/main) -"aFD" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "aFG" = ( /turf/open/floor/plasteel/arrival{ dir = 4 @@ -12280,9 +12135,9 @@ /turf/open/floor/plasteel/red/side, /area/security/checkpoint/auxiliary) "aFL" = ( -/obj/item/device/radio/off, +/obj/item/radio/off, /obj/item/crowbar, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/structure/table, /turf/open/floor/plasteel/red/side{ dir = 6 @@ -12300,7 +12155,7 @@ /obj/item/cultivator, /obj/item/hatchet, /obj/item/crowbar, -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /obj/item/reagent_containers/glass/bucket, /turf/open/floor/plasteel/green/side{ dir = 4 @@ -12381,7 +12236,7 @@ /turf/open/floor/plasteel, /area/gateway) "aFX" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -12656,7 +12511,7 @@ /obj/structure/mirror{ pixel_x = -28 }, -/obj/item/device/flashlight/lamp/bananalamp{ +/obj/item/flashlight/lamp/bananalamp{ pixel_y = 3 }, /turf/open/floor/plasteel/redblue, @@ -12910,7 +12765,7 @@ /area/storage/primary) "aHf" = ( /obj/structure/closet/wardrobe/chaplain_black, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = 25 }, /turf/open/floor/plasteel/grimy, @@ -13547,7 +13402,7 @@ "aIN" = ( /obj/structure/table, /obj/item/wrench, -/obj/item/device/analyzer, +/obj/item/analyzer, /turf/open/floor/plasteel, /area/storage/primary) "aIO" = ( @@ -13585,7 +13440,7 @@ /obj/item/cultivator, /obj/item/crowbar, /obj/item/reagent_containers/glass/bucket, -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /obj/machinery/firealarm{ dir = 8; pixel_x = -24 @@ -13597,8 +13452,8 @@ "aIT" = ( /obj/item/storage/bag/plants/portaseeder, /obj/structure/table/glass, -/obj/item/device/plant_analyzer, -/obj/item/device/radio/intercom{ +/obj/item/plant_analyzer, +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -13635,7 +13490,7 @@ "aIW" = ( /obj/structure/table, /obj/item/crowbar, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, @@ -13972,7 +13827,7 @@ /area/hydroponics) "aJM" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp{ +/obj/item/flashlight/lamp{ pixel_y = 10 }, /obj/structure/disposalpipe/segment, @@ -14166,7 +14021,7 @@ /turf/open/floor/plating, /area/storage/primary) "aKq" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = 25 }, /obj/machinery/camera{ @@ -14315,8 +14170,8 @@ /turf/open/floor/wood, /area/crew_quarters/theatre) "aKK" = ( -/obj/structure/closet/wardrobe/botanist, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/closet/secure_closet/hydroponics, /turf/open/floor/plasteel/hydrofloor, /area/hydroponics) "aKL" = ( @@ -14618,7 +14473,7 @@ /area/hallway/secondary/entry) "aLA" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -15037,6 +14892,7 @@ /area/library) "aMI" = ( /obj/machinery/light/small, +/obj/structure/closet/wardrobe/botanist, /turf/open/floor/plasteel/hydrofloor, /area/hydroponics) "aMJ" = ( @@ -15315,8 +15171,8 @@ /obj/item/stack/sheet/metal/fifty, /obj/item/stack/sheet/glass/fifty, /obj/item/stack/cable_coil, -/obj/item/device/flashlight/lamp, -/obj/item/device/flashlight/lamp/green, +/obj/item/flashlight/lamp, +/obj/item/flashlight/lamp/green, /turf/open/floor/wood, /area/crew_quarters/bar) "aNE" = ( @@ -15465,7 +15321,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/office) "aNX" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1480; name = "Confessional Intercom"; @@ -15517,7 +15373,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit) "aOe" = ( -/obj/item/device/beacon, +/obj/item/beacon, /obj/machinery/camera{ c_tag = "Arrivals Bay 1 South" }, @@ -15939,9 +15795,9 @@ /area/library) "aPi" = ( /obj/structure/table/wood, -/obj/item/device/taperecorder, -/obj/item/device/camera, -/obj/item/device/radio/intercom{ +/obj/item/taperecorder, +/obj/item/camera, +/obj/item/radio/intercom{ pixel_y = 25 }, /turf/open/floor/engine/cult, @@ -15983,7 +15839,7 @@ c_tag = "Escape Arm Holding Area"; dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_x = -28 @@ -16018,7 +15874,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "aPv" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20 @@ -16247,7 +16103,7 @@ "aQb" = ( /obj/structure/window/reinforced, /obj/structure/table/wood, -/obj/item/device/instrument/violin, +/obj/item/instrument/violin, /turf/open/floor/wood, /area/crew_quarters/theatre) "aQc" = ( @@ -16384,7 +16240,7 @@ }, /area/chapel/main) "aQz" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1480; name = "Confessional Intercom"; @@ -16666,9 +16522,9 @@ /obj/structure/table/reinforced, /obj/item/storage/toolbox/emergency, /obj/item/wrench, -/obj/item/device/assembly/timer, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/signaler, +/obj/item/assembly/timer, +/obj/item/assembly/signaler, +/obj/item/assembly/signaler, /turf/open/floor/plasteel, /area/bridge) "aRt" = ( @@ -16721,7 +16577,7 @@ /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) "aRB" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = 25 }, /obj/machinery/camera{ @@ -16947,7 +16803,7 @@ /area/maintenance/port) "aSh" = ( /obj/structure/closet/wardrobe/mixed, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = -27 @@ -17020,8 +16876,8 @@ /area/bridge) "aSv" = ( /obj/structure/table/reinforced, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel, /area/bridge) "aSw" = ( @@ -17059,8 +16915,8 @@ /area/bridge) "aSz" = ( /obj/structure/table/reinforced, -/obj/item/device/aicard, -/obj/item/device/multitool, +/obj/item/aicard, +/obj/item/multitool, /turf/open/floor/plasteel/blue/side{ dir = 8 }, @@ -17429,8 +17285,8 @@ "aTF" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/table, -/obj/item/device/camera_film, -/obj/item/device/camera, +/obj/item/camera_film, +/obj/item/camera, /turf/open/floor/plasteel, /area/storage/art) "aTG" = ( @@ -17484,7 +17340,7 @@ /obj/structure/rack, /obj/item/clothing/gloves/color/fyellow, /obj/item/clothing/suit/hazardvest, -/obj/item/device/multitool, +/obj/item/multitool, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plasteel, /area/storage/tools) @@ -17717,7 +17573,7 @@ /area/hydroponics) "aUA" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/wood, /area/security/vacantoffice) "aUB" = ( @@ -17731,7 +17587,7 @@ /area/library) "aUD" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -17850,7 +17706,7 @@ /area/crew_quarters/locker) "aUW" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, +/obj/item/flashlight/lamp/green, /turf/open/floor/wood, /area/security/vacantoffice) "aUX" = ( @@ -18030,7 +17886,7 @@ /turf/open/floor/plasteel, /area/bridge) "aVp" = ( -/obj/item/device/beacon, +/obj/item/beacon, /obj/structure/cable{ icon_state = "4-8" }, @@ -18258,8 +18114,8 @@ /area/library) "aVS" = ( /obj/structure/table/wood, -/obj/item/device/camera_film, -/obj/item/device/camera_film, +/obj/item/camera_film, +/obj/item/camera_film, /turf/open/floor/wood, /area/library) "aVT" = ( @@ -18285,7 +18141,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/main) "aVW" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_x = -25 }, /turf/open/floor/plasteel/escape{ @@ -19275,7 +19131,7 @@ /area/security/detectives_office) "aYj" = ( /obj/structure/table/wood, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/structure/disposalpipe/segment{ dir = 10 }, @@ -19332,7 +19188,7 @@ }, /area/bridge) "aYr" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -19834,7 +19690,7 @@ /area/quartermaster/warehouse) "aZJ" = ( /obj/structure/table/wood, -/obj/item/device/camera/detective, +/obj/item/camera/detective, /turf/open/floor/carpet, /area/security/detectives_office) "aZK" = ( @@ -20184,7 +20040,7 @@ /turf/open/floor/carpet, /area/bridge/meeting_room) "baJ" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -20611,7 +20467,7 @@ /area/quartermaster/warehouse) "bbT" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, +/obj/item/flashlight/lamp/green, /turf/open/floor/carpet, /area/security/detectives_office) "bbU" = ( @@ -20980,13 +20836,13 @@ /area/bridge/meeting_room) "bcY" = ( /obj/item/hand_labeler, -/obj/item/device/assembly/timer, +/obj/item/assembly/timer, /obj/structure/table, /turf/open/floor/wood, /area/bridge/meeting_room) "bcZ" = ( /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; freerange = 1; name = "Station Intercom (Command)" @@ -21439,7 +21295,7 @@ /obj/machinery/computer/upload/borg{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; listening = 0; @@ -21714,7 +21570,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "beN" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -21729,7 +21585,7 @@ /area/maintenance/disposal) "beP" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "garbage" }, /turf/open/floor/plating, @@ -21748,7 +21604,7 @@ /area/maintenance/disposal) "beR" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "garbage" }, /obj/machinery/recycler, @@ -21760,7 +21616,7 @@ /area/maintenance/disposal) "beS" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "garbage" }, /obj/machinery/light/small{ @@ -21775,8 +21631,7 @@ "beU" = ( /obj/machinery/conveyor{ dir = 6; - id = "garbage"; - verted = -1 + id = "garbage" }, /turf/open/floor/plating, /area/maintenance/disposal) @@ -22030,7 +21885,7 @@ /area/crew_quarters/heads/captain) "bfC" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, +/obj/item/flashlight/lamp/green, /turf/open/floor/wood, /area/crew_quarters/heads/captain) "bfD" = ( @@ -22151,7 +22006,7 @@ }, /area/hallway/primary/starboard) "bfY" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -22230,23 +22085,15 @@ /area/hallway/secondary/entry) "bgj" = ( /obj/machinery/conveyor{ - dir = 4; + dir = 8; id = "garbage" }, /turf/open/floor/plating, /area/maintenance/disposal) "bgk" = ( -/obj/machinery/conveyor{ - dir = 5; - id = "garbage" - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bgl" = ( /obj/machinery/conveyor{ dir = 10; - id = "garbage"; - verted = -1 + id = "garbage" }, /turf/open/floor/plating, /area/maintenance/disposal) @@ -22518,7 +22365,7 @@ dir = 8; pixel_x = 24 }, -/obj/item/device/camera, +/obj/item/camera, /obj/item/storage/photo_album{ pixel_y = -10 }, @@ -22835,7 +22682,6 @@ /area/maintenance/starboard) "bhI" = ( /obj/machinery/conveyor{ - dir = 1; id = "garbage" }, /turf/open/floor/plating, @@ -22894,13 +22740,6 @@ }, /turf/open/floor/plating, /area/maintenance/port) -"bhP" = ( -/obj/machinery/flasher{ - id = "Cell 2"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) "bhQ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -22990,7 +22829,7 @@ /obj/structure/disposalpipe/trunk{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -23051,7 +22890,7 @@ /turf/closed/wall/r_wall, /area/engine/gravity_generator) "bik" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; freerange = 1; name = "Station Intercom (Command)"; @@ -23155,7 +22994,7 @@ /obj/machinery/computer/secure_data{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_x = 25 }, /turf/open/floor/plasteel/red/side{ @@ -23376,7 +23215,6 @@ /area/maintenance/disposal) "bjb" = ( /obj/machinery/conveyor{ - dir = 1; id = "garbage" }, /obj/structure/sign/warning/vacuum{ @@ -23510,7 +23348,7 @@ "bjp" = ( /obj/structure/table, /obj/machinery/cell_charger, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -23551,7 +23389,7 @@ /area/quartermaster/storage) "bju" = ( /obj/machinery/photocopier, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -23963,9 +23801,7 @@ /area/maintenance/starboard) "bkz" = ( /obj/machinery/conveyor{ - dir = 1; - id = "garbage"; - layer = 2.5 + id = "garbage" }, /obj/machinery/door/poddoor/preopen{ id = "Disposal Exit"; @@ -24067,7 +23903,7 @@ /obj/item/screwdriver{ pixel_y = 10 }, -/obj/item/device/radio/off, +/obj/item/radio/off, /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/red/side{ dir = 6 @@ -24240,7 +24076,7 @@ pixel_y = 4 }, /obj/item/clothing/glasses/science, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_x = -28 @@ -24482,10 +24318,10 @@ empty = 1; name = "First-Aid (empty)" }, -/obj/item/device/healthanalyzer, -/obj/item/device/healthanalyzer, -/obj/item/device/healthanalyzer, -/obj/item/device/radio/intercom{ +/obj/item/healthanalyzer, +/obj/item/healthanalyzer, +/obj/item/healthanalyzer, +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -24906,7 +24742,7 @@ }, /area/medical/chemistry) "bmJ" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; freerange = 0; frequency = 1485; @@ -25096,7 +24932,7 @@ pixel_y = 5 }, /obj/item/clothing/glasses/welding, -/obj/item/device/multitool{ +/obj/item/multitool{ pixel_x = 3 }, /turf/open/floor/plasteel, @@ -25107,12 +24943,12 @@ amount = 10 }, /obj/item/stack/cable_coil, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/machinery/firealarm{ dir = 4; pixel_x = 24 @@ -25486,7 +25322,7 @@ /area/crew_quarters/heads/captain) "bnZ" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, +/obj/item/flashlight/lamp/green, /turf/open/floor/carpet, /area/crew_quarters/heads/captain) "boa" = ( @@ -25523,7 +25359,7 @@ "bod" = ( /obj/structure/table, /obj/item/folder/white, -/obj/item/device/radio/headset/headset_med, +/obj/item/radio/headset/headset_med, /turf/open/floor/plasteel/white, /area/medical/chemistry) "boe" = ( @@ -25650,19 +25486,19 @@ /area/science/robotics/lab) "bov" = ( /obj/structure/table, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, @@ -25755,9 +25591,9 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/item/device/mmi, -/obj/item/device/mmi, -/obj/item/device/mmi, +/obj/item/mmi, +/obj/item/mmi, +/obj/item/mmi, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "boH" = ( @@ -26200,7 +26036,7 @@ "bpH" = ( /obj/structure/table/glass, /obj/item/folder/white, -/obj/item/device/radio/headset/headset_medsci, +/obj/item/radio/headset/headset_medsci, /obj/machinery/requests_console{ department = "Genetics"; departmentType = 0; @@ -26467,8 +26303,8 @@ layer = 2.9 }, /obj/structure/table/reinforced, -/obj/item/device/destTagger, -/obj/item/device/destTagger, +/obj/item/destTagger, +/obj/item/destTagger, /turf/open/floor/plasteel/brown{ dir = 1 }, @@ -26565,7 +26401,7 @@ layer = 3 }, /obj/item/pen/blue, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -35 }, @@ -27015,7 +26851,7 @@ /obj/machinery/airalarm{ pixel_y = 23 }, -/obj/item/device/radio/off, +/obj/item/radio/off, /turf/open/floor/plasteel/white/side{ dir = 2 }, @@ -27110,7 +26946,7 @@ departmentType = 2; pixel_x = -30 }, -/obj/item/device/multitool, +/obj/item/multitool, /obj/machinery/camera{ c_tag = "Cargo Office"; dir = 4 @@ -27279,7 +27115,7 @@ pixel_y = 1 }, /obj/structure/table, -/obj/item/device/beacon, +/obj/item/beacon, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, @@ -27299,7 +27135,7 @@ /turf/open/floor/plasteel, /area/teleporter) "bsl" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -27349,7 +27185,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 0; frequency = 1485; @@ -27380,7 +27216,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bst" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 0; frequency = 1485; @@ -27595,7 +27431,7 @@ /area/quartermaster/office) "bsW" = ( /obj/structure/closet/wardrobe/robotics_black, -/obj/item/device/radio/headset/headset_sci{ +/obj/item/radio/headset/headset_sci{ pixel_x = -3 }, /turf/open/floor/plasteel/white, @@ -28070,7 +27906,7 @@ /area/medical/genetics) "bub" = ( /obj/machinery/light, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -35 }, @@ -28298,8 +28134,8 @@ /area/maintenance/starboard) "buB" = ( /obj/machinery/conveyor_switch/oneway{ - convdir = -1; - id = "QMLoad" + id = "QMLoad"; + dir = 8 }, /turf/open/floor/plasteel, /area/quartermaster/storage) @@ -28866,7 +28702,7 @@ /area/maintenance/starboard) "bvS" = ( /obj/machinery/conveyor{ - dir = 4; + dir = 8; id = "QMLoad" }, /obj/machinery/door/poddoor{ @@ -28878,14 +28714,14 @@ "bvT" = ( /obj/structure/plasticflaps, /obj/machinery/conveyor{ - dir = 4; + dir = 8; id = "QMLoad" }, /turf/open/floor/plating, /area/quartermaster/storage) "bvU" = ( /obj/machinery/conveyor{ - dir = 4; + dir = 8; id = "QMLoad" }, /obj/machinery/light, @@ -28900,7 +28736,7 @@ /area/quartermaster/storage) "bvV" = ( /obj/machinery/conveyor{ - dir = 4; + dir = 8; id = "QMLoad" }, /obj/effect/turf_decal/stripes/line{ @@ -29015,7 +28851,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bwi" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_x = -28 @@ -29962,7 +29798,7 @@ /area/crew_quarters/heads/hor) "bys" = ( /obj/structure/rack, -/obj/item/device/aicard, +/obj/item/aicard, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -30113,7 +29949,7 @@ /turf/open/floor/plasteel, /area/security/checkpoint/supply) "byM" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 @@ -30359,7 +30195,7 @@ /area/medical/genetics) "bzr" = ( /obj/structure/closet/wardrobe/genetics_white, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -30403,11 +30239,7 @@ /turf/open/floor/plating, /area/science/server) "bzx" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - target_temperature = 80; - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on, /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plasteel/dark, /area/science/server) @@ -30540,10 +30372,10 @@ /area/crew_quarters/heads/hor) "bzM" = ( /obj/structure/rack, -/obj/item/device/taperecorder{ +/obj/item/taperecorder{ pixel_x = -3 }, -/obj/item/device/paicard{ +/obj/item/paicard{ pixel_x = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -30667,7 +30499,7 @@ /obj/machinery/light{ dir = 4 }, -/obj/item/device/radio/off, +/obj/item/radio/off, /turf/open/floor/plasteel/red/side{ dir = 4 }, @@ -30967,14 +30799,14 @@ /area/maintenance/port/aft) "bAL" = ( /obj/structure/table, -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /obj/item/stock_parts/cell/high/plus, /turf/open/floor/plating, /area/storage/tech) "bAM" = ( /obj/structure/table, -/obj/item/device/analyzer, -/obj/item/device/healthanalyzer, +/obj/item/analyzer, +/obj/item/healthanalyzer, /obj/machinery/light/small{ dir = 1 }, @@ -31017,7 +30849,7 @@ c_tag = "Quartermaster's Office"; dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -35 }, @@ -31488,7 +31320,7 @@ /turf/open/floor/plasteel/dark, /area/science/server) "bBY" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_x = -25 }, /obj/structure/filingcabinet, @@ -31500,7 +31332,7 @@ /obj/item/screwdriver{ pixel_y = 10 }, -/obj/item/device/radio/off, +/obj/item/radio/off, /turf/open/floor/plasteel/red/side, /area/security/checkpoint/science) "bCa" = ( @@ -31584,7 +31416,7 @@ dir = 1; network = list("ss13","rd") }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -31898,7 +31730,7 @@ /turf/open/floor/plasteel/white, /area/medical/sleeper) "bCU" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 0; frequency = 1485; @@ -32099,16 +31931,16 @@ /area/maintenance/aft) "bDv" = ( /obj/structure/table, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = 1; pixel_y = 5 }, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = 1; pixel_y = 5 }, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/machinery/ai_status_display{ pixel_x = -32 }, @@ -32438,7 +32270,7 @@ /area/crew_quarters/heads/cmo) "bEl" = ( /obj/structure/disposalpipe/segment, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_x = 25 }, /obj/machinery/camera{ @@ -32526,7 +32358,7 @@ /area/science/mixing) "bEw" = ( /obj/machinery/portable_atmospherics/canister, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = 25 }, /obj/effect/turf_decal/stripes/line{ @@ -32767,7 +32599,7 @@ /area/storage/tech) "bEX" = ( /obj/structure/table, -/obj/item/device/aicard, +/obj/item/aicard, /obj/item/aiModule/reset, /turf/open/floor/plating, /area/storage/tech) @@ -33231,19 +33063,19 @@ /turf/open/floor/plasteel/white, /area/science/mixing) "bGl" = ( -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -4; pixel_y = 1 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = 8; pixel_y = 9 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = 9; pixel_y = -2 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_y = 2 }, /obj/structure/table/reinforced, @@ -33318,7 +33150,7 @@ /obj/machinery/cell_charger{ pixel_y = 5 }, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plating, /area/storage/tech) "bGw" = ( @@ -33759,7 +33591,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = 25 }, /obj/machinery/light/small{ @@ -33794,7 +33626,7 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 @@ -33918,7 +33750,7 @@ pixel_x = 1; pixel_y = -1 }, -/obj/item/device/multitool, +/obj/item/multitool, /obj/item/clothing/glasses/meson, /obj/machinery/light/small, /turf/open/floor/plating, @@ -34502,7 +34334,7 @@ /turf/open/floor/plating/airless, /area/science/test_area) "bJa" = ( -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -34909,18 +34741,18 @@ /turf/open/floor/plasteel/white, /area/science/mixing) "bJW" = ( -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve{ pixel_x = -5 }, -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve{ pixel_x = -5 }, -/obj/item/device/transfer_valve, -/obj/item/device/transfer_valve, -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve, +/obj/item/transfer_valve, +/obj/item/transfer_valve{ pixel_x = 5 }, -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve{ pixel_x = 5 }, /obj/machinery/requests_console{ @@ -34934,18 +34766,18 @@ /turf/open/floor/plasteel/white, /area/science/mixing) "bJX" = ( -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_y = 8 }, -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_x = -8; pixel_y = 5 }, -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_x = 6; pixel_y = 5 }, -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_x = -2; pixel_y = -2 }, @@ -34957,19 +34789,19 @@ /turf/open/floor/plasteel/white, /area/science/mixing) "bJZ" = ( -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = 5; pixel_y = 4 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = -4; pixel_y = 2 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = 6; pixel_y = -4 }, -/obj/item/device/assembly/timer, +/obj/item/assembly/timer, /obj/structure/table/reinforced, /turf/open/floor/plasteel/white, /area/science/mixing) @@ -35567,7 +35399,7 @@ /turf/open/floor/plating/airless, /area/science/test_area) "bLp" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plating/airless, /area/science/test_area) "bLq" = ( @@ -35651,8 +35483,8 @@ pixel_y = -1 }, /obj/item/clothing/gloves/color/yellow, -/obj/item/device/t_scanner, -/obj/item/device/multitool, +/obj/item/t_scanner, +/obj/item/multitool, /turf/open/floor/plating, /area/storage/tech) "bLB" = ( @@ -35880,7 +35712,7 @@ pixel_y = 5 }, /obj/item/stack/cable_coil, -/obj/item/device/multitool, +/obj/item/multitool, /obj/item/stock_parts/cell/high/plus, /obj/structure/window/reinforced{ dir = 4 @@ -36005,7 +35837,7 @@ id = "mixingsparker"; pixel_x = 25 }, -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxins_mixing_output{ dir = 4 }, /turf/open/floor/engine/vacuum, @@ -36016,9 +35848,8 @@ master_tag = "tox_airlock_control"; pixel_y = 24 }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/engine, @@ -36479,7 +36310,7 @@ /turf/open/floor/plating/airless, /area/science/test_area) "bNF" = ( -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/effect/turf_decal/stripes/line{ dir = 2 }, @@ -36491,7 +36322,7 @@ /area/science/test_area) "bNH" = ( /obj/structure/table/reinforced, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -26 }, @@ -36542,7 +36373,7 @@ /obj/structure/disposalpipe/segment{ dir = 6 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -36722,7 +36553,7 @@ /turf/open/floor/plasteel/white, /area/medical/virology) "bOo" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; freerange = 1; name = "Station Intercom (Telecomms)"; @@ -36850,10 +36681,8 @@ id = "mixingsparker"; pixel_x = 25 }, -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4; - frequency = 1441; - id = "air_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxins_mixing_input{ + dir = 4 }, /turf/open/floor/engine/vacuum, /area/science/mixing) @@ -36861,9 +36690,8 @@ /obj/structure/sign/warning/fire{ pixel_y = -32 }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/engine, @@ -37346,11 +37174,10 @@ /turf/open/floor/plasteel/white, /area/science/xenobiology) "bPE" = ( -/obj/structure/table/reinforced, -/obj/item/device/slime_scanner, /obj/effect/turf_decal/stripes/line{ dir = 9 }, +/obj/machinery/portable_atmospherics/canister/bz, /turf/open/floor/plasteel, /area/science/xenobiology) "bPF" = ( @@ -37370,7 +37197,7 @@ /area/science/circuit) "bPG" = ( /obj/machinery/chem_master, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -37392,6 +37219,7 @@ dir = 1 }, /obj/structure/table/reinforced, +/obj/item/slime_scanner, /obj/item/clothing/gloves/color/latex, /obj/item/clothing/glasses/science, /turf/open/floor/plasteel, @@ -37564,7 +37392,7 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/item/device/radio/off, +/obj/item/radio/off, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/light_switch{ pixel_x = -27; @@ -37654,7 +37482,7 @@ c_tag = "Security Post - Engineering"; dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 @@ -37913,7 +37741,7 @@ network = list("rd"); pixel_y = 28 }, -/obj/item/device/integrated_circuit_printer, +/obj/item/integrated_circuit_printer, /turf/open/floor/plasteel/white, /area/science/circuit) "bQZ" = ( @@ -38376,9 +38204,9 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/item/device/electropack, -/obj/item/device/healthanalyzer, -/obj/item/device/assembly/signaler, +/obj/item/electropack, +/obj/item/healthanalyzer, +/obj/item/assembly/signaler, /turf/open/floor/plasteel, /area/science/misc_lab) "bSf" = ( @@ -38570,7 +38398,7 @@ /obj/machinery/light{ dir = 8 }, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plasteel, /area/engine/atmos) "bSG" = ( @@ -38586,9 +38414,9 @@ /obj/structure/table, /obj/item/stack/sheet/glass/fifty, /obj/item/storage/belt/utility, -/obj/item/device/t_scanner, -/obj/item/device/t_scanner, -/obj/item/device/t_scanner, +/obj/item/t_scanner, +/obj/item/t_scanner, +/obj/item/t_scanner, /turf/open/floor/plasteel, /area/engine/atmos) "bSI" = ( @@ -38852,38 +38680,38 @@ /area/science/misc_lab) "bTn" = ( /obj/structure/table, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = -5; pixel_y = 3 }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = 5; pixel_y = -4 }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = 2; pixel_y = 6 }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = 2; pixel_y = -1 }, /obj/machinery/light{ dir = 4 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = -3; pixel_y = 3 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = -3; pixel_y = 3 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = -3; pixel_y = 3 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = -3; pixel_y = 3 }, @@ -39483,7 +39311,7 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bUN" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel, /area/engine/atmos) "bUO" = ( @@ -39626,7 +39454,7 @@ }, /area/hallway/primary/aft) "bVg" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20 @@ -39975,7 +39803,7 @@ name = "Virology Requests Console"; pixel_x = -32 }, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /obj/item/clothing/glasses/hud/health, /turf/open/floor/plasteel/whitegreen/side{ dir = 8 @@ -39984,7 +39812,7 @@ "bWg" = ( /obj/structure/table, /obj/item/hand_labeler, -/obj/item/device/radio/headset/headset_med, +/obj/item/radio/headset/headset_med, /turf/open/floor/plasteel/whitegreen/side{ dir = 4 }, @@ -40055,7 +39883,7 @@ /turf/open/floor/engine, /area/science/xenobiology) "bWo" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_x = -25 }, /turf/open/floor/plasteel/floorgrime, @@ -40247,7 +40075,7 @@ /turf/closed/wall/r_wall, /area/security/checkpoint/engineering) "bWR" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -40304,7 +40132,7 @@ /area/medical/virology) "bWX" = ( /obj/structure/table/glass, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_x = -25 }, /obj/machinery/light{ @@ -40415,7 +40243,7 @@ /obj/item/folder/white, /obj/item/folder/white, /obj/item/pen, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /turf/open/floor/plasteel/floorgrime, /area/science/misc_lab) "bXj" = ( @@ -40926,8 +40754,7 @@ "bYv" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "Mix to Space"; - on = 0 + name = "Mix to Space" }, /turf/open/floor/plasteel/floorgrime, /area/maintenance/port/aft) @@ -41186,8 +41013,7 @@ "bZl" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "Mix to Port"; - on = 0 + name = "Mix to Port" }, /obj/machinery/light/small, /turf/open/floor/plating, @@ -41525,7 +41351,7 @@ /turf/open/floor/engine, /area/science/xenobiology) "bZY" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_x = -25 }, /turf/open/floor/engine, @@ -41551,7 +41377,7 @@ /area/maintenance/starboard/aft) "cad" = ( /obj/structure/table, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plating, /area/maintenance/starboard/aft) "cae" = ( @@ -41964,7 +41790,7 @@ /turf/open/floor/engine, /area/science/misc_lab) "caY" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/engine, /area/science/misc_lab) "caZ" = ( @@ -42009,9 +41835,9 @@ /area/science/misc_lab) "cbe" = ( /obj/structure/table/reinforced, -/obj/item/device/integrated_electronics/analyzer, -/obj/item/device/integrated_electronics/debugger, -/obj/item/device/integrated_electronics/wirer, +/obj/item/integrated_electronics/analyzer, +/obj/item/integrated_electronics/debugger, +/obj/item/integrated_electronics/wirer, /turf/open/floor/plasteel/white, /area/science/circuit) "cbf" = ( @@ -42056,10 +41882,9 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 8; - name = "Mix to Space"; - on = 1 + name = "Mix to Space" }, /turf/open/floor/plating/airless, /area/maintenance/port/aft) @@ -42400,7 +42225,7 @@ /area/science/misc_lab) "cbY" = ( /obj/structure/table/reinforced, -/obj/item/device/multitool, +/obj/item/multitool, /obj/item/screwdriver, /obj/machinery/requests_console{ department = "Science"; @@ -42420,7 +42245,7 @@ network = list("rd"); pixel_y = -28 }, -/obj/item/device/integrated_circuit_printer, +/obj/item/integrated_circuit_printer, /turf/open/floor/plasteel/white, /area/science/circuit) "cca" = ( @@ -42488,7 +42313,7 @@ /area/tcommsat/server) "cci" = ( /obj/structure/table, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plasteel/yellow/side{ dir = 9 }, @@ -43224,7 +43049,7 @@ /area/tcommsat/server) "cee" = ( /obj/structure/table, -/obj/item/device/radio/off, +/obj/item/radio/off, /turf/open/floor/plasteel/yellow/side{ dir = 10 }, @@ -43990,11 +43815,7 @@ /turf/open/floor/plating, /area/maintenance/starboard/aft) "cgn" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - target_temperature = 80; - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on, /obj/effect/turf_decal/stripes/line{ dir = 9 }, @@ -45104,7 +44925,7 @@ /obj/machinery/light{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 @@ -45180,8 +45001,7 @@ "cju" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 1; - name = "Incinerator to Output"; - on = 0 + name = "Incinerator to Output" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -45544,12 +45364,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"ckq" = ( -/obj/structure/shuttle/engine/propulsion/burst{ - dir = 4 - }, -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_2) "ckr" = ( /obj/structure/reagent_dispensers/fueltank, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -45832,8 +45646,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/components/binary/pump{ dir = 4; - name = "Mix to Incinerator"; - on = 0 + name = "Mix to Incinerator" }, /turf/open/floor/plasteel/floorgrime, /area/maintenance/disposal/incinerator) @@ -45851,7 +45664,7 @@ /turf/open/floor/plasteel/floorgrime, /area/maintenance/disposal/incinerator) "clg" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -46187,6 +46000,18 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, +/obj/machinery/embedded_controller/radio/airlock_controller{ + airpump_tag = "incinerator_airlock_pump"; + exterior_door_tag = "incinerator_airlock_exterior"; + id_tag = "incinerator_airlock_control"; + interior_door_tag = "incinerator_airlock_interior"; + name = "Incinerator Access Console"; + pixel_x = 38; + pixel_y = 6; + req_access_txt = "12"; + sanitize_external = 1; + sensor_tag = "incinerator_airlock_sensor" + }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "cmg" = ( @@ -46412,9 +46237,8 @@ /turf/open/floor/plasteel, /area/construction) "cmY" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 2; - on = 1 +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 2 }, /obj/machinery/light/small{ dir = 8 @@ -46434,9 +46258,8 @@ /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "cmZ" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1 }, /obj/structure/sign/warning/fire{ pixel_x = 32 @@ -46674,10 +46497,9 @@ /turf/open/floor/plating, /area/maintenance/aft) "cnF" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 2; - name = "Waste Out"; - on = 1 + name = "Waste Out" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -46893,15 +46715,13 @@ /turf/open/floor/plasteel, /area/engine/engineering) "cop" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - frequency = 1441; - id = "inc_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/incinerator_input{ + dir = 1 }, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "coq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/incinerator_output{ dir = 1 }, /obj/structure/sign/warning/vacuum/external{ @@ -46911,14 +46731,15 @@ /area/maintenance/disposal/incinerator) "cor" = ( /obj/machinery/igniter{ - icon_state = "igniter0"; - id = "Incinerator"; - luminosity = 2; - on = 0 + id = "Incinerator" }, /obj/structure/cable/yellow{ icon_state = "1-2" }, +/obj/machinery/air_sensor{ + pixel_x = -32; + pixel_y = -32 + }, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "cos" = ( @@ -47132,15 +46953,6 @@ }, /turf/open/floor/plating, /area/engine/engineering) -"cpc" = ( -/obj/structure/shuttle/engine/propulsion/burst{ - dir = 8 - }, -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_4) -"cpd" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_4) "cpe" = ( /obj/docking_port/stationary/random{ dir = 8; @@ -47260,7 +47072,7 @@ icon_state = "1-2" }, /obj/structure/table/glass, -/obj/item/device/flashlight, +/obj/item/flashlight, /turf/open/floor/plasteel, /area/engine/engineering) "cpx" = ( @@ -47294,6 +47106,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/light{ + dir = 8 + }, /turf/open/floor/plasteel, /area/engine/engineering) "cpE" = ( @@ -47318,52 +47133,6 @@ }, /turf/open/floor/plating, /area/engine/engineering) -"cpJ" = ( -/obj/machinery/door/airlock/titanium{ - name = "Escape Pod Airlock" - }, -/obj/docking_port/mobile/pod{ - dir = 4; - id = "pod4"; - name = "escape pod 4"; - port_direction = 2; - preferred_direction = 4; - timid = 0 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_4) -"cpK" = ( -/obj/machinery/computer/shuttle/pod{ - pixel_y = -32; - possible_destinations = "pod_lavaland2"; - shuttleId = "pod2" - }, -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/status_display{ - pixel_y = 32 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_2) -"cpL" = ( -/obj/item/storage/pod{ - pixel_x = 6; - pixel_y = -28 - }, -/obj/item/device/radio/intercom{ - pixel_y = 25 - }, -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/light/small, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_2) -"cpM" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/pod_4) "cpN" = ( /obj/machinery/power/turbine{ luminosity = 2 @@ -47410,7 +47179,7 @@ /area/engine/engine_smes) "cpT" = ( /obj/structure/table, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -35 }, @@ -47544,18 +47313,16 @@ /turf/open/floor/plating, /area/engine/engineering) "cqq" = ( -/obj/machinery/door/airlock/titanium{ - name = "Escape Pod Airlock" - }, -/obj/docking_port/mobile/pod{ +/obj/docking_port/stationary{ dir = 8; - id = "pod2"; - name = "escape pod 2"; - port_direction = 2; - timid = 0 + dwidth = 1; + height = 4; + name = "escape pod loader"; + roundstart_template = /datum/map_template/shuttle/escape_pod/default; + width = 3 }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_2) +/turf/open/space/basic, +/area/space) "cqr" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 @@ -47798,7 +47565,7 @@ /area/solar/starboard/aft) "crl" = ( /obj/structure/table, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /turf/open/floor/plating, /area/maintenance/port/aft) "crm" = ( @@ -47960,13 +47727,13 @@ /obj/structure/lattice/catwalk, /turf/open/space, /area/solar/starboard/aft) +"crH" = ( +/turf/open/space/basic, +/area/space/nearstation) "crI" = ( /obj/structure/chair/stool, /turf/open/floor/plating, /area/engine/engineering) -"crJ" = ( -/turf/open/space/basic, -/area/space/nearstation) "crK" = ( /obj/structure/cable{ icon_state = "1-2" @@ -48026,13 +47793,6 @@ }, /turf/open/floor/plating/airless, /area/engine/engineering) -"csb" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "csc" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, @@ -48100,18 +47860,6 @@ /turf/open/floor/plasteel/floorgrime, /area/maintenance/disposal/incinerator) "csr" = ( -/obj/machinery/embedded_controller/radio/airlock_controller{ - name = "Incinerator Access Console"; - airpump_tag = "incinerator_airlock_pump"; - exterior_door_tag = "incinerator_airlock_exterior"; - id_tag = "incinerator_access_control"; - interior_door_tag = "incinerator_airlock_interior"; - pixel_x = 6; - pixel_y = -26; - sanitize_external = 1; - sensor_tag = "incinerator_airlock_sensor"; - req_access_txt = "12" - }, /obj/machinery/button/ignition{ id = "Incinerator"; pixel_x = -6; @@ -48123,23 +47871,6 @@ /obj/machinery/meter, /turf/open/floor/plasteel/floorgrime, /area/maintenance/disposal/incinerator) -"css" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"csx" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/grille, -/turf/open/floor/plating/airless, -/area/engine/engineering) "csy" = ( /obj/structure/table, /obj/item/weldingtool, @@ -48256,7 +47987,7 @@ /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) "cth" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -48333,7 +48064,7 @@ pixel_y = 28 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/off{ +/obj/item/radio/off{ pixel_y = 4 }, /obj/item/screwdriver{ @@ -48579,7 +48310,7 @@ /turf/closed/wall, /area/ai_monitored/turret_protected/aisat_interior) "cub" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -48704,8 +48435,7 @@ "cuq" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 0; - name = "Air Out"; - on = 0 + name = "Air Out" }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, @@ -48808,7 +48538,7 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_x = 28 }, @@ -48889,7 +48619,7 @@ /obj/machinery/light/small{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_x = -28 }, @@ -48933,7 +48663,7 @@ pixel_y = 3 }, /obj/item/storage/toolbox/mechanical, -/obj/item/device/multitool, +/obj/item/multitool, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -49119,7 +48849,7 @@ /obj/machinery/porta_turret/ai{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; listening = 0; @@ -49261,14 +48991,14 @@ /area/ai_monitored/turret_protected/aisat/hallway) "cvx" = ( /obj/effect/landmark/start/ai/secondary, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_y = 28 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 1; listening = 1; @@ -49276,7 +49006,7 @@ pixel_x = -27; pixel_y = 5 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; broadcasting = 0; freerange = 1; @@ -49300,14 +49030,14 @@ /area/ai_monitored/turret_protected/aisat/hallway) "cvA" = ( /obj/effect/landmark/start/ai/secondary, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_y = 28 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 1; listening = 1; @@ -49315,7 +49045,7 @@ pixel_x = 27; pixel_y = 5 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; broadcasting = 0; freerange = 1; @@ -49542,7 +49272,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; listening = 0; @@ -49824,12 +49554,6 @@ /obj/machinery/light/small, /turf/open/floor/plating, /area/hallway/secondary/entry) -"cwU" = ( -/obj/structure/shuttle/engine/propulsion/burst{ - dir = 4 - }, -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_1) "cwV" = ( /obj/docking_port/stationary/random{ dir = 8; @@ -49848,39 +49572,11 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) -"cxl" = ( -/obj/machinery/computer/shuttle/pod{ - pixel_y = -32; - possible_destinations = "pod_lavaland1"; - shuttleId = "pod1" - }, -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/status_display{ - pixel_y = 32 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) "cxn" = ( /obj/structure/lattice, /obj/effect/landmark/carpspawn, /turf/open/space, /area/space/nearstation) -"cxx" = ( -/obj/item/storage/pod{ - pixel_x = 6; - pixel_y = -28 - }, -/obj/item/device/radio/intercom{ - pixel_y = 25 - }, -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/light/small, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) "cxA" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -49894,24 +49590,10 @@ height = 13; id = "ferry_home"; name = "port bay 2"; - turf_type = /turf/open/space; width = 5 }, /turf/open/space/basic, /area/space) -"cxF" = ( -/obj/machinery/door/airlock/titanium{ - name = "Escape Pod Airlock" - }, -/obj/docking_port/mobile/pod{ - dir = 8; - id = "pod1"; - name = "escape pod 1"; - port_direction = 2; - timid = 0 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) "cxG" = ( /obj/machinery/door/airlock/external{ cyclelinkeddir = 0; @@ -50221,34 +49903,6 @@ "czK" = ( /turf/closed/wall, /area/security/vacantoffice) -"czL" = ( -/obj/machinery/computer/shuttle/pod{ - pixel_y = -32; - possible_destinations = "pod_lavaland4"; - shuttleId = "pod4" - }, -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/status_display{ - pixel_y = 32 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_4) -"czM" = ( -/obj/item/device/radio/intercom{ - pixel_y = 25 - }, -/obj/item/storage/pod{ - pixel_x = 6; - pixel_y = -32 - }, -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/light/small, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_4) "czN" = ( /obj/docking_port/stationary/random{ dir = 4; @@ -50531,7 +50185,7 @@ /area/maintenance/port/aft) "cAI" = ( /obj/machinery/conveyor_switch/oneway{ - convdir = -1; + dir = 8; id = "garbage"; name = "disposal conveyor" }, @@ -50598,7 +50252,7 @@ /area/ai_monitored/turret_protected/ai) "cAS" = ( /obj/effect/landmark/start/ai, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 1; listening = 1; @@ -50606,14 +50260,14 @@ pixel_x = -27; pixel_y = -9 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_y = -31 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; broadcasting = 0; freerange = 1; @@ -50908,6 +50562,7 @@ /area/maintenance/aft) "cBE" = ( /obj/effect/landmark/event_spawn, +/obj/machinery/air_sensor/atmos/toxins_mixing_tank, /turf/open/floor/engine/vacuum, /area/science/mixing) "cBF" = ( @@ -50947,7 +50602,7 @@ /turf/open/floor/plasteel, /area/engine/atmos) "cBK" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -35 }, @@ -51048,7 +50703,7 @@ /obj/item/stack/cable_coil{ amount = 5 }, -/obj/item/device/flashlight, +/obj/item/flashlight, /turf/open/floor/plating, /area/construction) "cCc" = ( @@ -51155,21 +50810,9 @@ /obj/machinery/deepfryer, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) -"cCs" = ( -/obj/structure/mining_shuttle_beacon{ - dir = 4 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"cCt" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/docking_port/stationary/public_mining_dock{ - dir = 8 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) +"cCS" = ( +/turf/open/space, +/area/space/nearstation) "cCT" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 @@ -51351,13 +50994,6 @@ }, /turf/open/floor/plating/airless, /area/engine/engineering) -"cFn" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "cFI" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -51373,7 +51009,7 @@ state = 2 }, /turf/open/floor/plating/airless, -/area/space/nearstation) +/area/space) "cFU" = ( /obj/machinery/power/emitter/anchored{ dir = 8; @@ -51412,11 +51048,11 @@ dir = 8 }, /turf/open/floor/plating/airless, -/area/space/nearstation) +/area/space) "cGV" = ( /obj/machinery/the_singularitygen/tesla, /turf/open/floor/plating/airless, -/area/space/nearstation) +/area/space) "cGZ" = ( /obj/machinery/light{ dir = 4 @@ -51660,7 +51296,7 @@ pixel_y = 5 }, /obj/item/clothing/glasses/welding, -/obj/item/device/multitool{ +/obj/item/multitool{ pixel_x = 3 }, /turf/open/floor/plasteel, @@ -51732,15 +51368,6 @@ }, /turf/open/floor/plating, /area/hallway/secondary/entry) -"cIK" = ( -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/maintenance/bar) -"cKY" = ( -/obj/structure/table/wood/poker, -/obj/item/coin/iron, -/turf/open/floor/wood, -/area/maintenance/bar) "cMm" = ( /obj/structure/cable{ icon_state = "1-2" @@ -51803,6 +51430,13 @@ }, /turf/open/floor/plasteel/airless/solarpanel, /area/solar/starboard/aft) +"cNt" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) "cNE" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall, @@ -51990,10 +51624,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"cQG" = ( -/obj/structure/lattice, -/turf/open/space, -/area/space) "cSz" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -52029,6 +51659,10 @@ /obj/machinery/power/tesla_coil, /turf/open/floor/plating/airless, /area/space) +"cSI" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) "cSK" = ( /obj/structure/cable/yellow{ icon_state = "0-4" @@ -52065,7 +51699,7 @@ /area/crew_quarters/heads/chief) "cSM" = ( /obj/machinery/computer/station_alert, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20 @@ -52360,10 +51994,17 @@ "cVb" = ( /turf/closed/wall, /area/hallway/secondary/service) -"dcQ" = ( -/obj/effect/spawner/structure/window/reinforced, +"cXd" = ( +/obj/structure/falsewall, +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"cZO" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/decal/cleanable/blood/old, +/obj/item/assembly/signaler, /turf/open/floor/plating, -/area/space/nearstation) +/area/maintenance/bar) "dfh" = ( /obj/machinery/power/apc{ areastring = "/area/science/circuit"; @@ -52378,21 +52019,9 @@ }, /turf/open/floor/plasteel, /area/science/circuit) -"diu" = ( -/obj/structure/chair/stool, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/maintenance/bar) -"dlj" = ( -/turf/open/floor/plating/airless, -/area/engine/engineering) -"dnc" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - req_access_txt = "0" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, +"dpp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, /area/maintenance/bar) "dqu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -52404,87 +52033,102 @@ }, /turf/closed/wall, /area/science/circuit) -"dxw" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "Singularity"; - name = "radiation shutters" +"dwQ" = ( +/obj/structure/grille, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"dKf" = ( +/turf/closed/wall/r_wall, +/area/security/armory) +"dMY" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"dAs" = ( -/obj/structure/sign/poster/random{ - pixel_y = -32 +/obj/structure/cable{ + icon_state = "1-2" }, /turf/open/floor/wood, /area/maintenance/bar) -"dCs" = ( -/obj/machinery/button/door{ - id = "Singularity"; - name = "Shutters Control"; - pixel_x = -25; - req_access_txt = "11" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"dFc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/maintenance/bar) -"dFm" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) "dMZ" = ( /obj/structure/sign/poster/official/random{ pixel_y = 32 }, /turf/open/floor/plasteel/white, /area/science/circuit) -"dVC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +"dPI" = ( +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"dTy" = ( +/obj/effect/spawner/lootdrop/keg, +/turf/open/floor/wood{ + icon_state = "wood-broken7" }, -/obj/machinery/light, -/turf/open/floor/plasteel/red/side, -/area/security/brig) +/area/maintenance/bar) +"dUz" = ( +/obj/structure/table/wood, +/obj/item/storage/box/drinkingglasses, +/turf/open/floor/wood, +/area/maintenance/bar) "eaI" = ( /obj/structure/table/reinforced, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_x = -30 }, /turf/open/floor/plasteel/white, /area/science/circuit) -"erb" = ( +"ebz" = ( +/obj/structure/window/reinforced, +/obj/vehicle/ridden/secway, +/obj/item/key/security, +/obj/machinery/door/window/eastleft{ + name = "Secway Docking Port" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/showroomfloor, +/area/space/nearstation) +"eeA" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 + dir = 4 }, -/turf/open/floor/plasteel/red/side{ - dir = 1 +/turf/closed/wall, +/area/maintenance/bar) +"eeO" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 }, +/turf/open/floor/plating/airless, +/area/space) +"ejP" = ( +/obj/machinery/suit_storage_unit/security, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"ekX" = ( +/obj/machinery/flasher{ + id = "Cell 4"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/floorgrime, /area/security/brig) -"erH" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable{ - icon_state = "4-8" +"enX" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, +/area/security/armory) +"exs" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/space/nearstation) +"exQ" = ( +/obj/structure/table, +/obj/item/storage/toolbox/drone, +/turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) "eyM" = ( /obj/machinery/mineral/ore_redemption{ @@ -52494,41 +52138,12 @@ /obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/quartermaster/miningdock) -"eyV" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "seclobby"; - name = "security shutters" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/security/brig) -"eCQ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/maintenance/bar) "eHI" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, /turf/open/floor/plasteel/floorgrime, /area/maintenance/disposal/incinerator) -"eLY" = ( -/obj/effect/turf_decal/stripes/white/line, -/obj/effect/turf_decal/stripes/white/corner{ - dir = 1 - }, -/obj/machinery/door_timer{ - id = "Secure Cell"; - name = "Secure Cell"; - pixel_y = -32 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) "eRz" = ( /obj/structure/lattice, /obj/structure/grille, @@ -52544,42 +52159,39 @@ }, /turf/open/floor/plasteel, /area/quartermaster/miningdock) -"eXc" = ( -/obj/structure/window/reinforced, -/obj/vehicle/ridden/secway, -/obj/item/key/security, -/obj/machinery/door/window/eastleft{ - name = "Secway Docking Port" +"faG" = ( +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (NORTH)"; + icon_state = "purple"; + dir = 1 }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/showroomfloor, -/area/space) -"eXD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/tank_dispenser/oxygen, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"eYQ" = ( -/obj/machinery/vending/kink, -/turf/open/floor/wood, -/area/maintenance/bar) -"fbL" = ( -/obj/structure/table, -/obj/item/storage/toolbox/drone, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) +/area/crew_quarters/cryopod) "fcG" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, /turf/closed/wall/r_wall, /area/science/mixing) +"fev" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "seclobby"; + name = "security shutters" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/security/brig) "flc" = ( /obj/machinery/bookbinder, /turf/open/floor/plasteel/white, /area/science/circuit) +"flZ" = ( +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/brig) "fnC" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 @@ -52593,87 +52205,88 @@ }, /turf/open/floor/plasteel/hydrofloor, /area/hallway/secondary/service) -"fnP" = ( -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/decal/cleanable/blood/old, -/obj/item/device/assembly/signaler, -/turf/open/floor/plating, -/area/maintenance/bar) -"fpI" = ( -/turf/open/floor/plasteel/red/side{ - dir = 8 +"fvg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/area/security/brig) -"fAn" = ( +/turf/open/floor/plating/airless, +/area/space) +"fBa" = ( /obj/structure/grille, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plating/airless, /area/engine/engineering) -"fAq" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/red/side{ - dir = 4 +"fBP" = ( +/obj/machinery/power/emitter/anchored{ + dir = 4; + state = 2 }, -/area/security/brig) -"fDs" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 +/obj/structure/cable{ + icon_state = "0-8" }, -/turf/open/floor/wood, -/area/maintenance/bar) +/turf/open/floor/plating/airless, +/area/engine/engineering) +"fGf" = ( +/obj/machinery/smartfridge/disks, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"fGu" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space, +/area/space) +"fJG" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/white/corner, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) "fKl" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, /area/science/circuit) -"fPq" = ( -/obj/item/device/radio/intercom{ - freerange = 0; - frequency = 1459; - name = "Station Intercom (General)"; - pixel_x = -30 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/maintenance/bar) -"fPE" = ( -/obj/structure/table, -/obj/item/grenade/barrier{ - pixel_x = 4 - }, -/obj/item/grenade/barrier, -/obj/item/grenade/barrier{ - pixel_x = -4 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/armory) -"fSk" = ( +"fVA" = ( /obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/rack, +/obj/item/clothing/mask/gas/sechailer{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/mask/gas/sechailer, +/obj/item/clothing/mask/gas/sechailer{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"fVS" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ icon_state = "1-2" }, -/turf/open/floor/wood{ - icon_state = "wood-broken7" +/turf/open/floor/plating, +/area/engine/engineering) +"fXl" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Singularity"; + name = "radiation shutters" }, -/area/maintenance/bar) -"fVu" = ( -/obj/machinery/camera/motion{ - c_tag = "Non-Lethal Armory Motion Sensor"; - dir = 4 +/obj/effect/turf_decal/bot{ + dir = 2 }, -/obj/effect/turf_decal/stripes/end{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/armory) -"fWC" = ( -/obj/machinery/chem_dispenser/drinks/beer, -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/maintenance/bar) +/turf/open/floor/plating, +/area/engine/engineering) +"fZs" = ( +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/engine/engineering) "gbq" = ( /obj/structure/cable{ icon_state = "4-8" @@ -52686,93 +52299,47 @@ /obj/item/stack/sheet/glass/fifty, /turf/open/floor/plating, /area/maintenance/department/medical/morgue) -"get" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 +"gcN" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/turf/open/floor/wood, -/area/maintenance/bar) -"ghy" = ( -/obj/machinery/light/small{ - dir = 8; - light_color = "#fff4bc" +/turf/open/floor/plasteel, +/area/security/armory) +"gjf" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/red/side{ + dir = 4 }, -/obj/structure/closet/emcloset/anchored, -/turf/open/floor/plating, -/area/engine/engineering) +/area/security/brig) "gjl" = ( /turf/closed/wall, /area/quartermaster/warehouse) -"gmz" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"gva" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"gvi" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 +"gqU" = ( +/obj/machinery/door/window/brigdoor/security/cell{ + id = "Cell 3"; + name = "Cell 3" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"gvx" = ( -/turf/open/floor/plasteel, -/area/security/execution/transfer) +/turf/open/floor/plasteel/red/side, +/area/security/brig) "gwd" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 }, /turf/open/floor/plasteel, /area/science/circuit) -"gAl" = ( -/turf/open/floor/plasteel/red/side{ - dir = 10 +"gKO" = ( +/obj/structure/cable{ + icon_state = "0-8" }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, /area/security/brig) -"gGR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/bar) -"gKN" = ( -/obj/structure/bed, -/obj/item/clothing/suit/straight_jacket, -/obj/item/clothing/mask/muzzle, -/turf/open/floor/plasteel, -/area/security/execution/transfer) -"gLD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/maintenance/fore/secondary) "gLH" = ( /obj/machinery/door/airlock/external{ name = "External Access"; @@ -52783,17 +52350,31 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) -"gMx" = ( -/obj/effect/landmark/start/atmospheric_technician, -/turf/open/floor/plasteel, -/area/engine/atmos) -"gQx" = ( -/turf/open/floor/plasteel/purple/side{ - tag = "icon-purple (NORTH)"; - icon_state = "purple"; - dir = 1 +"gMt" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/effect/turf_decal/bot{ + dir = 2 }, -/area/crew_quarters/cryopod) +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"gMI" = ( +/obj/structure/sign/poster/random{ + pixel_y = -32 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/bar) +"gUa" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"gVz" = ( +/obj/structure/table/wood/poker, +/turf/open/floor/wood, +/area/maintenance/bar) "gWd" = ( /obj/structure/cable{ icon_state = "1-4" @@ -52804,18 +52385,6 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) -"gZp" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - cyclelinkeddir = 1; - id_tag = "lobbyairlock"; - name = "Security Lobby"; - req_access_txt = "0" - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) "gZG" = ( /obj/structure/closet/crate/freezer/surplus_limbs, /obj/item/reagent_containers/glass/beaker/synthflesh, @@ -52840,59 +52409,37 @@ }, /turf/open/floor/plating, /area/maintenance/port) -"hfY" = ( -/obj/machinery/flasher{ - id = "brigentry"; - pixel_y = -28 +"hcV" = ( +/obj/structure/chair/stool/bar, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"hik" = ( -/obj/structure/table/wood, -/obj/item/storage/box/drinkingglasses, /turf/open/floor/wood, /area/maintenance/bar) -"hjI" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, +"heb" = ( +/turf/open/floor/plasteel/red/side, /area/security/brig) -"hnm" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "briggate"; - name = "security shutters" +"heG" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/machinery/door/window/eastright{ - name = "Brig Desk"; - req_access_txt = "2" +/turf/open/floor/wood, +/area/maintenance/bar) +"hkC" = ( +/obj/machinery/flasher{ + id = "Cell 3"; + pixel_x = -28 }, -/turf/open/floor/plasteel/dark, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, /area/security/brig) -"hpY" = ( -/obj/effect/spawner/lootdrop/keg, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, +"hpF" = ( +/obj/machinery/vending/kink, +/turf/open/floor/wood, /area/maintenance/bar) -"htN" = ( -/obj/structure/sign/poster/random{ - pixel_y = -32 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) -"hBF" = ( +"hrd" = ( /obj/machinery/door_timer{ id = "Cell 2"; name = "Cell 2"; @@ -52902,7 +52449,1361 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel/red/corner, /area/security/brig) -"hHa" = ( +"hrv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"hse" = ( +/obj/structure/closet/l3closet/security, +/turf/open/floor/plasteel/showroomfloor, +/area/space/nearstation) +"hsU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"htj" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/security/armory) +"hyb" = ( +/obj/structure/table, +/obj/item/storage/box/firingpins, +/obj/item/storage/box/firingpins, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"hHu" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + name = "Incinerator Access"; + req_access_txt = "12" + }, +/obj/structure/barricade/wooden{ + name = "wooden barricade (CLOSED)" + }, +/turf/open/floor/plating, +/area/maintenance/bar) +"hNR" = ( +/obj/structure/table/wood/poker, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"hPY" = ( +/obj/structure/bed, +/obj/item/bedsheet/grey, +/obj/effect/decal/cleanable/semen{ + desc = "Blech."; + name = "dried semen" + }, +/obj/effect/spawner/lootdrop/costume, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/bar) +"hQe" = ( +/obj/machinery/light/small{ + dir = 8; + light_color = "#fff4bc" + }, +/obj/structure/closet/emcloset/anchored, +/turf/open/floor/plating, +/area/engine/engineering) +"hSf" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space/basic, +/area/space) +"hYu" = ( +/obj/structure/table, +/obj/item/storage/toolbox/electrical{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/storage/toolbox/electrical{ + pixel_x = -2 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"hZr" = ( +/obj/machinery/door_timer{ + id = "Cell 3"; + name = "Cell 3"; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner, +/area/security/brig) +"iaO" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"iei" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"iex" = ( +/turf/open/space/basic, +/area/engine/engineering) +"ifj" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + req_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/maintenance/bar) +"ilR" = ( +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/cryopod"; + dir = 4; + name = "Cryogenics APC"; + pixel_x = 24 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/crew_quarters/cryopod) +"iob" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"ipA" = ( +/obj/machinery/droneDispenser, +/turf/open/floor/plating, +/area/maintenance/department/medical/morgue) +"itG" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"iCL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"iEJ" = ( +/obj/machinery/door/airlock/external{ + name = "Escape Pod One" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"iNn" = ( +/obj/machinery/camera{ + c_tag = "Kitchen Cold Room" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/reagent_dispensers/cooking_oil, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"iPE" = ( +/obj/structure/bed, +/obj/item/clothing/suit/straight_jacket, +/obj/item/clothing/mask/muzzle, +/turf/open/floor/plasteel, +/area/security/execution/transfer) +"iWy" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"iWK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/maintenance/bar) +"iWM" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/maintenance/bar) +"iXO" = ( +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen, +/obj/machinery/newscaster{ + pixel_x = 30 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/maintenance/bar) +"jbf" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/hallway/secondary/service"; + dir = 1; + name = "Service Hall APC"; + pixel_y = 25 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hallway/secondary/service) +"jbA" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"jbT" = ( +/obj/structure/chair/stool/bar, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/maintenance/bar) +"jcS" = ( +/obj/machinery/light, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"jgm" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/camera{ + c_tag = "Circuitry Lab"; + dir = 8; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"jlm" = ( +/obj/machinery/rnd/production/techfab/department/cargo, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"jnp" = ( +/turf/open/floor/plasteel/dark, +/area/security/processing) +"jrE" = ( +/obj/machinery/rnd/production/protolathe/department/science, +/obj/structure/sign/poster/official/random{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"jrX" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/bar) +"jsN" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"juA" = ( +/obj/machinery/flasher/portable, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/security/armory) +"jAD" = ( +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"jAM" = ( +/obj/machinery/suit_storage_unit/security, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"jCq" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"jHt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"jMF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/science/circuit) +"jOb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance/abandoned{ + req_access_txt = "0" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/bar) +"jSO" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"jTA" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Engine Containment Starboard Aft"; + dir = 1; + network = list("engine") + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"jUO" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/armory) +"jVl" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"jZP" = ( +/obj/item/radio/intercom{ + freerange = 0; + frequency = 1459; + name = "Station Intercom (General)"; + pixel_x = -30 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/maintenance/bar) +"kbh" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"kbA" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"kcH" = ( +/obj/machinery/cryopod{ + tag = "icon-cryopod-open (EAST)"; + icon_state = "cryopod-open"; + dir = 4 + }, +/turf/open/floor/noslip, +/area/crew_quarters/cryopod) +"kdx" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/closet/secure_closet/brig{ + id = "Secure Cell"; + name = "Secure Cell Locker" + }, +/obj/effect/turf_decal/stripes/white/end{ + dir = 4 + }, +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"khb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/structure/table, +/obj/item/kitchen/rollingpin, +/turf/open/floor/plasteel/hydrofloor, +/area/hallway/secondary/service) +"khB" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"kjK" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"klO" = ( +/obj/effect/landmark/secequipment, +/obj/effect/turf_decal/bot{ + dir = 2 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"knx" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Gravity Generator"; + req_access_txt = "11" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"kob" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"kso" = ( +/obj/machinery/button/door{ + id = "Singularity"; + name = "Shutters Control"; + pixel_x = -25; + req_access_txt = "11" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"ksW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + cyclelinkeddir = 2; + id_tag = "innerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/brig) +"ktN" = ( +/obj/effect/turf_decal/loading_area/white, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/corner, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"kwo" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/armory) +"kzT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/science/mixing) +"kBh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/brig) +"kNF" = ( +/obj/structure/closet/bombcloset/security, +/turf/open/floor/plasteel/showroomfloor, +/area/space) +"kOw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"kOO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/bar) +"kPd" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hallway/secondary/service) +"kQk" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/department/medical/morgue) +"kRe" = ( +/obj/item/restraints/handcuffs/fake, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears, +/turf/open/floor/plating, +/area/maintenance/bar) +"kSb" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"kTZ" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Singularity"; + name = "radiation shutters" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"kUh" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"kXH" = ( +/obj/structure/falsewall, +/turf/open/floor/plating, +/area/maintenance/bar) +"leL" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/brig) +"lnm" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/item/crowbar, +/obj/item/electropack/shockcollar, +/turf/open/floor/plating, +/area/maintenance/bar) +"lyP" = ( +/obj/machinery/flasher{ + id = "Cell 2"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"lAB" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall, +/area/science/circuit) +"lCe" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"lMg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"lNf" = ( +/obj/machinery/door/window/brigdoor/security/cell{ + dir = 4; + id = "Secure Cell"; + name = "Secure Cell" + }, +/obj/machinery/door/window/brigdoor/security/cell{ + dir = 8; + id = "Secure Cell"; + name = "Secure Cell" + }, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 8 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, +/area/security/execution/transfer) +"lQG" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/science/circuit) +"lSn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/engineering) +"lUX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"lWf" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"mjp" = ( +/obj/machinery/chem_dispenser/drinks/beer, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/maintenance/bar) +"mtP" = ( +/obj/machinery/vending/autodrobe, +/turf/open/floor/wood, +/area/maintenance/bar) +"mDn" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/brigdoor{ + dir = 1; + name = "Armory Desk"; + req_access_txt = "3" + }, +/obj/machinery/door/window/southleft{ + name = "Reception Desk"; + req_access_txt = "63" + }, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"mES" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/maintenance/bar) +"mNi" = ( +/obj/machinery/light_switch{ + pixel_x = -20 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"mOo" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"mOS" = ( +/obj/structure/sign/poster/official/no_erp, +/turf/closed/wall, +/area/maintenance/bar) +"mQL" = ( +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 1 + }, +/obj/machinery/door_timer{ + id = "Secure Cell"; + name = "Secure Cell"; + pixel_y = -32 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"mRe" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"mTp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/security/brig) +"mZB" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"nfW" = ( +/turf/open/floor/plasteel, +/area/security/execution/transfer) +"nip" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/space) +"nlM" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/brig) +"noe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"nok" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"nvz" = ( +/obj/structure/table, +/obj/item/grenade/barrier{ + pixel_x = 4 + }, +/obj/item/grenade/barrier, +/obj/item/grenade/barrier{ + pixel_x = -4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/armory) +"nxv" = ( +/obj/machinery/power/apc{ + name = "Construction Area APC"; + areastring = "/area/construction"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/construction) +"nzk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Singularity"; + name = "radiation shutters" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/bot{ + dir = 2 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"nzm" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating/airless, +/area/space) +"nDS" = ( +/obj/structure/rack, +/obj/item/gun/energy/e_gun/dragnet, +/obj/item/gun/energy/e_gun/dragnet, +/obj/effect/turf_decal/bot_white, +/obj/item/gun/energy/pumpaction/blaster, +/obj/item/gun/energy/pumpaction/blaster, +/turf/open/floor/plasteel/dark, +/area/security/armory) +"nGt" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"nRG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"nZe" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + req_access_txt = "0" + }, +/turf/open/floor/plating, +/area/maintenance/bar) +"oce" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"ohN" = ( +/turf/closed/wall, +/area/space) +"oEn" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/camera/motion{ + c_tag = "Armory Motion Sensor"; + dir = 2; + name = "motion-sensitive security camera" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"oFD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + cyclelinkeddir = 2; + id_tag = "innerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/brig) +"oFM" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/security/glass{ + cyclelinkeddir = 1; + id_tag = "outerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/brig) +"oHU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"oLO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"oUh" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"oUp" = ( +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"pjh" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/bar) +"pvY" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"pye" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/newscaster{ + pixel_x = 30 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/bar) +"pyu" = ( +/obj/structure/window/reinforced, +/obj/machinery/door/window/eastleft{ + name = "Cyborg Docking Port" + }, +/obj/machinery/recharge_station, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"pzB" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"pGb" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/security/brig) +"pHl" = ( +/obj/structure/table, +/obj/item/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/storage/box/syringes, +/obj/item/reagent_containers/glass/bottle/epinephrine{ + pixel_x = 7; + pixel_y = -3 + }, +/obj/item/reagent_containers/glass/bottle/morphine{ + pixel_x = 8; + pixel_y = -3 + }, +/obj/item/reagent_containers/syringe{ + pixel_x = 6; + pixel_y = -3 + }, +/obj/item/radio/intercom{ + freerange = 0; + frequency = 1485; + listening = 1; + name = "Station Intercom (Medbay)"; + pixel_x = 30 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"pLn" = ( +/obj/machinery/conveyor/inverted{ + dir = 5; + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"pLx" = ( +/obj/structure/chair/stool/bar, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/bar) +"pNk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"pNx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/science/misc_lab) +"pRH" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"qeQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"qne" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/bar) +"qpv" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/autolathe, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"quT" = ( +/obj/structure/lattice, +/obj/structure/grille/broken, +/turf/open/space/basic, +/area/space/nearstation) +"qyv" = ( +/obj/machinery/door/poddoor/shutters{ + id = "lowsecarmory"; + name = "Non-Lethal Armoury Shutter" + }, +/obj/machinery/button/door{ + id = "lowsecarmory"; + name = "Non-Lethal Armory Shutters"; + pixel_y = 26; + req_access_txt = "3" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/security/main) +"qyS" = ( +/obj/effect/landmark/start/atmospheric_technician, +/turf/open/floor/plasteel, +/area/engine/atmos) +"qCO" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"qLG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/security/brig) +"qRE" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"rcD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/science/circuit) +"rez" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + cyclelinkeddir = 1; + id_tag = "lobbyairlock"; + name = "Security Lobby"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"rfW" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) +"rkz" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/bar"; + dir = 2; + name = "Maintenance Bar APC"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/structure/cable, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/bar) +"rmR" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/engine/engineering) +"rmX" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/beer, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"rrQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating/airless, +/area/space) +"rth" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"rtI" = ( +/turf/open/floor/plasteel/purple/side, +/area/crew_quarters/cryopod) +"rwa" = ( +/turf/closed/wall, +/area/crew_quarters/cryopod) +"rzC" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) +"rKP" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/construction) +"rQi" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"rVy" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"rXD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"rYO" = ( +/turf/closed/wall, +/area/maintenance/bar) +"rZN" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/reagent_containers/spray/cleaner, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/maintenance/bar) +"saK" = ( +/obj/structure/closet/crate, +/obj/item/target/alien, +/obj/item/target/alien, +/obj/item/target/clown, +/obj/item/target/clown, +/obj/item/target/syndicate, +/obj/item/target/syndicate, +/obj/item/gun/energy/laser/practice, +/obj/item/gun/energy/laser/practice, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"sfz" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Engine Containment Port Aft"; + dir = 1; + network = list("engine") + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"sfS" = ( +/obj/structure/chair/stool/bar, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"siw" = ( +/obj/structure/table/glass, +/obj/item/paper_bin, +/obj/item/pen/blue, +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (NORTH)"; + icon_state = "purple"; + dir = 1 + }, +/area/crew_quarters/cryopod) +"slk" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/maintenance/department/medical/morgue) +"soh" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/space) +"svF" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Brig Control"; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"swV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access = null; + req_access_txt = "10;13" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"sxs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/table, +/obj/item/shovel/spade, +/turf/open/floor/plasteel/hydrofloor, +/area/hallway/secondary/service) +"sxZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/brig) +"sCb" = ( /obj/structure/table/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ id = "briggate"; @@ -52919,133 +53820,181 @@ }, /turf/open/floor/plasteel/dark, /area/security/brig) -"hNj" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - req_access_txt = "0" +"sHb" = ( +/turf/closed/wall/r_wall, +/area/space) +"sHe" = ( +/obj/machinery/computer/cryopod{ + pixel_y = 25 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"sIS" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" }, /turf/open/floor/plating, -/area/maintenance/bar) -"hXw" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, -/area/maintenance/bar) -"iev" = ( +/area/security/warden) +"sLb" = ( /obj/effect/turf_decal/stripes/line{ - dir = 1 + dir = 2 + }, +/turf/open/floor/plating/airless, +/area/space) +"sLv" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"sOa" = ( +/turf/open/floor/plating/airless, +/area/engine/engineering) +"sOs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance/abandoned, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"sPd" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/security/brig) +"sQG" = ( +/obj/machinery/camera/motion{ + c_tag = "Non-Lethal Armory Motion Sensor"; + dir = 4 + }, +/obj/effect/turf_decal/stripes/end{ + dir = 8 }, /turf/open/floor/plasteel, /area/security/armory) -"imZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, +"sRl" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/maintenance/bar) +"sSO" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"sSW" = ( +/obj/structure/chair/office/light, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"sTB" = ( +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/brig) +"sXy" = ( +/obj/machinery/door/airlock/external{ + name = "Security External Airlock"; + req_access_txt = "63" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/security/main) +"tal" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/hallway/secondary/service) +"tdg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/security/brig) +"tgb" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"tDm" = ( +/obj/structure/table/wood, /turf/open/floor/wood{ icon_state = "wood-broken5" }, /area/maintenance/bar) -"inb" = ( -/obj/structure/rack, -/obj/item/gun/energy/e_gun/dragnet, -/obj/item/gun/energy/e_gun/dragnet, -/obj/effect/turf_decal/bot_white, -/obj/item/gun/energy/pumpaction/blaster, -/obj/item/gun/energy/pumpaction/blaster, -/turf/open/floor/plasteel/dark, -/area/security/armory) -"ipA" = ( -/obj/machinery/droneDispenser, -/turf/open/floor/plating, -/area/maintenance/department/medical/morgue) -"itG" = ( -/obj/structure/table/reinforced, -/obj/item/paper_bin, -/obj/item/pen, +"tII" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"tMl" = ( +/obj/effect/turf_decal/loading_area, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"tNR" = ( +/obj/structure/sign/poster/random{ + pixel_x = -32 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/bar) +"tOq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, /turf/open/floor/plasteel/white, -/area/science/circuit) -"ivo" = ( +/area/science/mixing) +"tPI" = ( +/obj/structure/table/wood/poker, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - cyclelinkeddir = 2; - id_tag = "innerbrig"; - name = "Brig"; - req_access_txt = "63" - }, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/brig) -"iyf" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"iyX" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/brig) -"iDC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/storage/pill_bottle/dice, /turf/open/floor/wood, /area/maintenance/bar) -"iEJ" = ( -/obj/machinery/door/airlock/external{ - name = "Escape Pod One" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ +"tRB" = ( +/obj/machinery/light/small{ dir = 8 }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"iFU" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/space) -"iNn" = ( +/obj/machinery/cryopod{ + tag = "icon-cryopod-open (EAST)"; + icon_state = "cryopod-open"; + dir = 4 + }, +/turf/open/floor/noslip, +/area/crew_quarters/cryopod) +"tXL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"uoB" = ( +/obj/structure/table/reinforced, +/obj/item/multitool, +/obj/item/screwdriver, /obj/machinery/camera{ - c_tag = "Kitchen Cold Room" + c_tag = "Circuitry Lab North"; + network = list("ss13","rd") }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/reagent_dispensers/cooking_oil, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"iUe" = ( -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/security/brig) -"iVO" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Engine Containment Port Aft"; - dir = 1; - network = list("engine") - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"iWY" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/grille, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"jbf" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/apc{ - areastring = "/area/hallway/secondary/service"; - dir = 1; - name = "Service Hall APC"; - pixel_y = 25 - }, -/turf/open/floor/plasteel/hydrofloor, -/area/hallway/secondary/service) -"jcD" = ( +/turf/open/floor/plasteel/white, +/area/science/circuit) +"uqz" = ( /obj/structure/rack, /obj/item/clothing/suit/armor/bulletproof{ pixel_x = -3; @@ -53072,1071 +54021,7 @@ /obj/effect/turf_decal/bot_white, /turf/open/floor/plasteel/dark, /area/security/armory) -"jgm" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/camera{ - c_tag = "Circuitry Lab"; - dir = 8; - network = list("ss13","rd") - }, -/turf/open/floor/plasteel, -/area/science/circuit) -"jlm" = ( -/obj/machinery/rnd/production/techfab/department/cargo, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"jlZ" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, -/area/maintenance/bar) -"jrE" = ( -/obj/machinery/rnd/production/protolathe/department/science, -/obj/structure/sign/poster/official/random{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"jrJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/security/brig) -"jyK" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Brig Control"; - req_access_txt = "3" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/brig) -"jAD" = ( -/obj/structure/grille, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"jCq" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"jCY" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/fore/secondary) -"jEl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"jFG" = ( -/obj/structure/table, -/obj/item/storage/box/firingpins, -/obj/item/storage/box/firingpins, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"jHt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"jKG" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - cyclelinkeddir = 1; - id_tag = "lobbyairlock"; - name = "Security Lobby"; - req_access_txt = "0" - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"jMi" = ( -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"jMF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/closed/wall, -/area/science/circuit) -"jSO" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/circuit) -"jVl" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"jWi" = ( -/turf/open/floor/plasteel/showroomfloor, -/area/space/nearstation) -"jXD" = ( -/obj/machinery/flasher{ - id = "Cell 3"; - pixel_x = -28 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"kbf" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "Singularity"; - name = "radiation shutters" - }, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"kgu" = ( -/turf/open/space/basic, -/area/engine/engineering) -"khb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/structure/table, -/obj/item/kitchen/rollingpin, -/turf/open/floor/plasteel/hydrofloor, -/area/hallway/secondary/service) -"khB" = ( -/obj/machinery/door/airlock/external{ - req_access_txt = "13" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"knx" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering{ - name = "Gravity Generator"; - req_access_txt = "11" - }, -/obj/effect/turf_decal/delivery, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"kob" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"kqE" = ( -/obj/structure/table/wood/poker, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"ksK" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - name = "Incinerator Access"; - req_access_txt = "12" - }, -/obj/structure/barricade/wooden{ - name = "wooden barricade (CLOSED)" - }, -/turf/open/floor/plating, -/area/maintenance/bar) -"kuC" = ( -/obj/item/shard, -/obj/item/wirecutters, -/obj/item/wallframe/camera, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/bar) -"kvn" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"kwU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 8 - }, -/area/security/brig) -"kyp" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/security/glass{ - cyclelinkeddir = 1; - id_tag = "outerbrig"; - name = "Brig"; - req_access_txt = "63" - }, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/brig) -"kzT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/closed/wall/r_wall, -/area/science/mixing) -"kEw" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"kIZ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/security/warden) -"kOs" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/grille, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"kOw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"kPd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/hydrofloor, -/area/hallway/secondary/service) -"kPh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/maintenance/bar) -"kPB" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"kQk" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/department/medical/morgue) -"kSb" = ( -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"ldw" = ( -/obj/structure/lattice, -/obj/structure/grille, -/turf/open/space, -/area/space) -"ldy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/security/brig) -"lgs" = ( -/obj/structure/table/wood/poker, -/turf/open/floor/wood, -/area/maintenance/bar) -"lkm" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space) -"lkA" = ( -/obj/machinery/power/apc{ - areastring = "/area/maintenance/bar"; - dir = 2; - name = "Maintenance Bar APC"; - pixel_x = 1; - pixel_y = -24 - }, -/obj/structure/cable, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) -"lkC" = ( -/obj/structure/sign/poster/official/no_erp, -/turf/closed/wall, -/area/maintenance/bar) -"lmZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"lou" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"lAB" = ( -/obj/structure/sign/nanotrasen, -/turf/closed/wall, -/area/science/circuit) -"lJX" = ( -/obj/structure/closet/secure_closet/security/sec, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"lMg" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/science/circuit) -"lQG" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/science/circuit) -"lTm" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/engine/engineering) -"lXp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/brig) -"maf" = ( -/obj/structure/sign/warning/securearea, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"mdX" = ( -/obj/structure/chair/stool/bar, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) -"mkG" = ( -/obj/structure/chair/stool/bar, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"mlj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/airlock/maintenance/abandoned{ - req_access_txt = "0" - }, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/maintenance/bar) -"msk" = ( -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"mtY" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"mwi" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/armory) -"mxQ" = ( -/obj/machinery/door/poddoor/shutters{ - id = "lowsecarmory"; - name = "Non-Lethal Armoury Shutter" - }, -/obj/machinery/button/door{ - id = "lowsecarmory"; - name = "Non-Lethal Armory Shutters"; - pixel_y = 26; - req_access_txt = "3" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/security/main) -"myR" = ( -/obj/structure/table/glass, -/obj/item/paper_bin, -/obj/item/pen/blue, -/turf/open/floor/plasteel/purple/side{ - tag = "icon-purple (NORTH)"; - icon_state = "purple"; - dir = 1 - }, -/area/crew_quarters/cryopod) -"mAD" = ( -/obj/machinery/door_timer{ - id = "Cell 3"; - name = "Cell 3"; - pixel_y = -32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/corner, -/area/security/brig) -"mDW" = ( -/obj/machinery/flasher{ - id = "Cell 4"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"mFn" = ( -/obj/structure/lattice, -/obj/structure/grille, -/turf/open/space/basic, -/area/space) -"mGv" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"mNi" = ( -/obj/machinery/light_switch{ - pixel_x = -20 - }, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"mRe" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"mTC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/maintenance/bar) -"mUH" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/white/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"ndn" = ( -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/security/brig) -"nrJ" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/hallway/primary/fore) -"nrT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/bar) -"nvm" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"nxv" = ( -/obj/machinery/power/apc{ - name = "Construction Area APC"; - areastring = "/area/construction"; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/construction) -"nyw" = ( -/turf/closed/wall/r_wall, -/area/space) -"nAW" = ( -/turf/open/floor/wood, -/area/maintenance/bar) -"nBt" = ( -/obj/machinery/vending/games{ - name = "\improper Good 'Clean' Fun" - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"nGt" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"nNQ" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/white/corner, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"nQE" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"nRD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"nRG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"nYB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/maintenance/fore/secondary) -"oaS" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/armory) -"oce" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"odi" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/armory) -"ofH" = ( -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"ouy" = ( -/obj/structure/table/wood/poker, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/item/storage/pill_bottle/dice, -/turf/open/floor/wood, -/area/maintenance/bar) -"oyk" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"oFD" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/table/wood, -/obj/item/reagent_containers/spray/cleaner, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, -/area/maintenance/bar) -"oHs" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/security/brig) -"oHU" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/science/circuit) -"oUh" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal/bin, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"oWs" = ( -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"pfR" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"piG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/security/armory) -"pmD" = ( -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"pvp" = ( -/obj/structure/chair/stool/bar, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"pAL" = ( -/obj/machinery/door/window/brigdoor/security/cell{ - dir = 4; - id = "Secure Cell"; - name = "Secure Cell" - }, -/obj/machinery/door/window/brigdoor/security/cell{ - dir = 8; - id = "Secure Cell"; - name = "Secure Cell" - }, -/obj/effect/turf_decal/stripes/white/corner{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/white/corner{ - dir = 8 - }, -/obj/machinery/light/small, -/turf/open/floor/plasteel/dark/side{ - dir = 8 - }, -/area/security/execution/transfer) -"pHl" = ( -/obj/structure/table, -/obj/item/storage/box/beakers{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/storage/box/syringes, -/obj/item/reagent_containers/glass/bottle/epinephrine{ - pixel_x = 7; - pixel_y = -3 - }, -/obj/item/reagent_containers/glass/bottle/morphine{ - pixel_x = 8; - pixel_y = -3 - }, -/obj/item/reagent_containers/syringe{ - pixel_x = 6; - pixel_y = -3 - }, -/obj/item/device/radio/intercom{ - freerange = 0; - frequency = 1485; - listening = 1; - name = "Station Intercom (Medbay)"; - pixel_x = 30 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"pNx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/science/misc_lab) -"pPZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/security/brig) -"pSC" = ( -/obj/machinery/door/window/brigdoor/security/cell{ - id = "Cell 3"; - name = "Cell 3" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"pYB" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/external{ - name = "Engineering External Access"; - req_access = null; - req_access_txt = "10;13" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"qeQ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/science/circuit) -"qpv" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/autolathe, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"qtN" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"quT" = ( -/obj/structure/lattice, -/obj/structure/grille/broken, -/turf/open/space/basic, -/area/space/nearstation) -"qzP" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/engine/engineering) -"qAQ" = ( -/obj/structure/falsewall, -/obj/effect/turf_decal/delivery/white, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"qDH" = ( -/obj/structure/bed, -/obj/item/bedsheet/grey, -/obj/effect/decal/cleanable/semen{ - desc = "Blech."; - name = "dried semen" - }, -/obj/effect/spawner/lootdrop/costume, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/bar) -"qIa" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/brig) -"qVU" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "Singularity"; - name = "radiation shutters" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"qYL" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"rcD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/science/circuit) -"rfW" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"rjW" = ( -/obj/effect/landmark/secequipment, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"rmX" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/drinks/beer, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"rre" = ( -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"rDl" = ( -/obj/structure/table/wood, -/turf/open/floor/wood{ - icon_state = "wood-broken5" - }, -/area/maintenance/bar) -"rKP" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/construction) -"rRb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken5" - }, -/area/maintenance/bar) -"rRI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/engineering) -"rUB" = ( -/obj/structure/grille, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space) -"rVc" = ( -/obj/structure/window/reinforced, -/obj/machinery/door/window/eastleft{ - name = "Cyborg Docking Port" - }, -/obj/machinery/recharge_station, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"rWi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"rYe" = ( -/obj/structure/table, -/obj/item/storage/toolbox/electrical{ - pixel_x = 2; - pixel_y = 4 - }, -/obj/item/storage/toolbox/electrical{ - pixel_x = -2 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"saK" = ( -/obj/structure/closet/crate, -/obj/item/target/alien, -/obj/item/target/alien, -/obj/item/target/clown, -/obj/item/target/clown, -/obj/item/target/syndicate, -/obj/item/target/syndicate, -/obj/item/gun/energy/laser/practice, -/obj/item/gun/energy/laser/practice, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"siI" = ( -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/obj/machinery/newscaster{ - pixel_x = 30 - }, -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/maintenance/bar) -"slk" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plating, -/area/maintenance/department/medical/morgue) -"soK" = ( -/obj/effect/turf_decal/loading_area/white, -/obj/effect/turf_decal/stripes/white/corner{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/white/corner, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"ssC" = ( -/turf/open/floor/plasteel/purple/side, -/area/crew_quarters/cryopod) -"stI" = ( -/obj/item/lighter/greyscale, -/obj/effect/decal/cleanable/semen{ - desc = "Blech."; - name = "dried semen" - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/bar) -"stR" = ( -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/cryopod"; - dir = 4; - name = "Cryogenics APC"; - pixel_x = 24 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/crew_quarters/cryopod) -"sxs" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/table, -/obj/item/shovel/spade, -/turf/open/floor/plasteel/hydrofloor, -/area/hallway/secondary/service) -"sxz" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"szF" = ( +"uuU" = ( /obj/structure/rack, /obj/item/clothing/suit/armor/riot{ pixel_x = -3; @@ -54168,333 +54053,24 @@ /obj/effect/turf_decal/bot_white, /turf/open/floor/plasteel/dark, /area/security/armory) -"sCR" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"sDk" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/grille, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"sFW" = ( -/turf/closed/wall, -/area/maintenance/bar) -"sJQ" = ( -/obj/structure/closet/bombcloset/security, -/turf/open/floor/plasteel/showroomfloor, -/area/space) -"sLv" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"sOs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance/abandoned, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"sOy" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" +"uCa" = ( +/obj/structure/chair/stool, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -35 }, /turf/open/floor/wood, /area/maintenance/bar) -"sPM" = ( -/turf/closed/wall, -/area/crew_quarters/cryopod) -"sSW" = ( -/obj/structure/chair/office/light, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"sXy" = ( -/obj/machinery/door/airlock/external{ - name = "Security External Airlock"; - req_access_txt = "63" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plating, -/area/security/main) -"tal" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/hallway/secondary/service) -"tgx" = ( -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/structure/closet/secure_closet/brig{ - id = "Secure Cell"; - name = "Secure Cell Locker" - }, -/obj/effect/turf_decal/stripes/white/end{ - dir = 4 - }, -/obj/effect/turf_decal/delivery/white, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"tmi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/security/brig) -"tof" = ( -/obj/machinery/power/emitter/anchored{ - dir = 4; - state = 2 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"toZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"tyq" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/rack, -/obj/item/clothing/mask/gas/sechailer{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/mask/gas/sechailer, -/obj/item/clothing/mask/gas/sechailer{ - pixel_x = 3; - pixel_y = -3 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"tMh" = ( -/turf/closed/wall/r_wall, -/area/security/armory) -"tMl" = ( -/obj/effect/turf_decal/loading_area, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"tNC" = ( +"uCz" = ( /turf/open/floor/wood{ - icon_state = "wood-broken5" + icon_state = "wood-broken6" }, /area/maintenance/bar) -"tNK" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"tOq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"tQO" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/cryopod{ - tag = "icon-cryopod-open (EAST)"; - icon_state = "cryopod-open"; - dir = 4 - }, -/turf/open/floor/noslip, -/area/crew_quarters/cryopod) -"tRc" = ( -/obj/structure/sign/poster/random{ - pixel_x = -32 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) -"tSN" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Engine Containment Starboard Aft"; - dir = 1; - network = list("engine") - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"tVF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance/abandoned{ - req_access_txt = "0" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/bar) -"tXL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) -"uaf" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 5 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"ujA" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"umb" = ( -/obj/machinery/suit_storage_unit/security, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"uow" = ( -/turf/closed/wall, -/area/space) -"uoB" = ( -/obj/structure/table/reinforced, -/obj/item/device/multitool, -/obj/item/screwdriver, -/obj/machinery/camera{ - c_tag = "Circuitry Lab North"; - network = list("ss13","rd") - }, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"utg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - cyclelinkeddir = 2; - id_tag = "innerbrig"; - name = "Brig"; - req_access_txt = "63" - }, +"uJC" = ( +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/security/brig) -"utm" = ( -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/newscaster{ - pixel_x = 30 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) -"utC" = ( -/obj/machinery/suit_storage_unit/security, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"uut" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) -"uwV" = ( -/obj/machinery/vending/clothing, -/turf/open/floor/wood, -/area/maintenance/bar) -"uze" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/bar) -"uAb" = ( -/obj/effect/spawner/lootdrop/keg, -/turf/open/floor/wood, -/area/maintenance/bar) -"uAc" = ( -/obj/structure/window/reinforced, -/obj/vehicle/ridden/secway, -/obj/item/key/security, -/obj/machinery/door/window/eastleft{ - name = "Secway Docking Port" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/showroomfloor, -/area/space/nearstation) -"uDn" = ( -/obj/machinery/vending/autodrobe, -/turf/open/floor/wood, -/area/maintenance/bar) -"uER" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/brigdoor{ - dir = 1; - name = "Armory Desk"; - req_access_txt = "3" - }, -/obj/machinery/door/window/southleft{ - name = "Reception Desk"; - req_access_txt = "63" - }, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel/showroomfloor, /area/security/brig) "uNu" = ( /obj/structure/disposalpipe/segment{ @@ -54527,14 +54103,14 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"uYC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 +"uXp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/maintenance/abandoned{ + req_access_txt = "0" }, -/obj/machinery/light{ - dir = 8 +/turf/open/floor/wood{ + icon_state = "wood-broken" }, -/turf/open/floor/wood, /area/maintenance/bar) "vbD" = ( /obj/machinery/door/firedoor, @@ -54547,10 +54123,30 @@ }, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) -"vmf" = ( -/obj/structure/falsewall, -/turf/open/floor/plating, +"vnJ" = ( +/obj/machinery/vending/games{ + name = "\improper Good 'Clean' Fun" + }, +/turf/open/floor/wood, /area/maintenance/bar) +"vob" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"vrL" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/engine/engineering) +"vvD" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "vxh" = ( /obj/structure/table, /obj/effect/spawner/lootdrop/maintenance{ @@ -54567,11 +54163,6 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) -"vzq" = ( -/obj/structure/chair/stool/bar, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/maintenance/bar) "vCb" = ( /obj/machinery/rnd/production/techfab/department/service, /turf/open/floor/plasteel/hydrofloor, @@ -54580,25 +54171,47 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white, /area/science/circuit) -"vMV" = ( +"vDk" = ( +/obj/machinery/flasher{ + id = "brigentry"; + pixel_y = -28 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"vEf" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"vEr" = ( +/obj/structure/grille, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"vPg" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, /obj/structure/cable{ - icon_state = "2-4" + icon_state = "1-4" }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) +/turf/open/floor/plating/airless, +/area/engine/engineering) +"vHG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/bar) +"vMr" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) "vPE" = ( /obj/machinery/light{ dir = 4 @@ -54606,34 +54219,48 @@ /obj/machinery/libraryscanner, /turf/open/floor/plasteel/white, /area/science/circuit) -"vPG" = ( +"vSg" = ( +/turf/open/floor/wood, +/area/maintenance/bar) +"weO" = ( /obj/structure/table/wood, /obj/machinery/chem_dispenser/drinks, /turf/open/floor/wood, /area/maintenance/bar) -"waV" = ( -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" +"whD" = ( +/obj/structure/chair/stool, +/turf/open/floor/wood{ + icon_state = "wood-broken7" }, -/obj/item/crowbar, -/obj/item/device/electropack/shockcollar, -/turf/open/floor/plating, /area/maintenance/bar) -"wdZ" = ( -/turf/open/floor/plasteel/dark, -/area/security/processing) +"wjY" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/space/nearstation) "wkN" = ( /turf/closed/wall, /area/science/circuit) -"wom" = ( -/obj/machinery/cryopod{ - tag = "icon-cryopod-open (EAST)"; - icon_state = "cryopod-open"; - dir = 4 +"wph" = ( +/obj/docking_port/stationary{ + area_type = /area/construction/mining/aux_base; + dheight = 4; + dir = 8; + dwidth = 4; + height = 9; + id = "aux_base_zone"; + name = "aux base zone"; + roundstart_template = /datum/map_template/shuttle/aux_base/default; + width = 9 }, -/turf/open/floor/noslip, -/area/crew_quarters/cryopod) +/turf/open/floor/plating, +/area/construction/mining/aux_base) +"wpT" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "wrp" = ( /obj/machinery/light{ dir = 8 @@ -54657,54 +54284,62 @@ }, /turf/closed/wall, /area/hallway/secondary/service) -"wEi" = ( -/obj/machinery/computer/cryopod{ - pixel_y = 25 +"wCj" = ( +/obj/item/lighter/greyscale, +/obj/effect/decal/cleanable/semen{ + desc = "Blech."; + name = "dried semen" }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"wFC" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/bar) "wHz" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) -"wRi" = ( -/turf/open/floor/plasteel/showroomfloor, -/area/space) -"wTe" = ( -/obj/structure/chair/stool, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) -"wUk" = ( -/turf/open/floor/plasteel/red/corner{ - dir = 4 +"wJD" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + cyclelinkeddir = 1; + id_tag = "lobbyairlock"; + name = "Security Lobby"; + req_access_txt = "0" }, +/turf/open/floor/plasteel/red/side, /area/security/brig) +"wUX" = ( +/obj/structure/table/wood/poker, +/obj/item/coin/iron, +/turf/open/floor/wood, +/area/maintenance/bar) "wUY" = ( /obj/structure/table, /obj/item/reagent_containers/glass/bucket, /turf/open/floor/plasteel/hydrofloor, /area/hallway/secondary/service) -"wWq" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"wZZ" = ( +"wWN" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/turf_decal/stripes/line{ - dir = 9 + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/armory) +"wXT" = ( +/obj/structure/chair/stool, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/maintenance/bar) +"wZS" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 }, /turf/open/floor/plating/airless, -/area/space/nearstation) +/area/space) "xhV" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -54725,31 +54360,36 @@ }, /turf/open/floor/plating, /area/hallway/secondary/service) -"xiB" = ( -/obj/effect/landmark/start/station_engineer, -/obj/structure/chair/office/dark{ - dir = 1 +"xjt" = ( +/obj/effect/spawner/lootdrop/keg, +/turf/open/floor/wood, +/area/maintenance/bar) +"xte" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/maintenance/bar) +"xvH" = ( +/obj/machinery/vending/clothing, +/turf/open/floor/wood, +/area/maintenance/bar) +"xxh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"xlB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/turf/closed/wall, +/area/maintenance/bar) +"xCS" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "briggate"; + name = "security shutters" }, -/obj/machinery/camera/motion{ - c_tag = "Armory Motion Sensor"; - dir = 2; - name = "motion-sensitive security camera" +/obj/machinery/door/window/eastright{ + name = "Brig Desk"; + req_access_txt = "2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"xDv" = ( -/obj/structure/closet/l3closet/security, -/turf/open/floor/plasteel/showroomfloor, -/area/space/nearstation) +/turf/open/floor/plasteel/dark, +/area/security/brig) "xEu" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 @@ -54761,27 +54401,60 @@ /obj/effect/spawner/lootdrop/grille_or_trash, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"xSp" = ( +"xMc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /obj/structure/cable{ - icon_state = "0-8" + icon_state = "4-8" }, -/obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/security/brig) -"xYs" = ( -/obj/structure/chair/stool, -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -35 - }, -/turf/open/floor/wood, /area/maintenance/bar) +"xOe" = ( +/obj/item/shard, +/obj/item/wirecutters, +/obj/item/wallframe/camera, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/bar) +"xWy" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"ycr" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating, +/area/engine/engineering) "ycu" = ( /obj/structure/cable{ icon_state = "2-4" }, /turf/open/floor/plasteel, /area/science/circuit) +"yeG" = ( +/obj/structure/sign/poster/random{ + pixel_y = -32 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"ylH" = ( +/obj/effect/landmark/start/station_engineer, +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) (1,1,1) = {" aaa @@ -62339,9 +62012,9 @@ aaa aae aaf aaa -aqH -apK -aqH +aaa +aaa +aaa aaa aaa aae @@ -62353,9 +62026,9 @@ aaa aaa aaa aaa -aqF -apH -aqF +aaa +aaa +aaa aaa aaa aaa @@ -62596,9 +62269,6 @@ aaa aaa aaf aaa -aqH -cpK -aqH aaa aaa aaa @@ -62610,9 +62280,12 @@ aaa aaa aaa aaa -aqF -cxl -aqF +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -62853,9 +62526,6 @@ aaa aaa aaf aaa -aqH -cpL -aqH aaa aaa aaa @@ -62867,9 +62537,12 @@ aaa aaa aaa aaa -aqF -cxx -aqF +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -63110,9 +62783,8 @@ aaa aaa aaf aaa -ckq +aaa cqq -ckq aaa aaa aaa @@ -63124,9 +62796,10 @@ aaa aaa aaa aaa -cwU -cxF -cwU +aaa +aaa +cqq +aaa aaa aaa aaa @@ -63872,14 +63545,14 @@ aaa aaa apJ apN -arC -arC -arC -arC -arC -arC -arC -aEp +apN +apN +apN +apN +apN +apN +apN +apN apJ avP iEJ @@ -64128,15 +63801,15 @@ aaa aaa aaf apJ -aqI -arD -arD -arD -arD -arD -arD -arD -auN +apN +apN +apN +apN +apN +apN +apN +apN +apN apJ awY ayk @@ -64385,15 +64058,15 @@ aaa aaa aaf apJ -aqI -arD -arD -arD -arD -arD -arD -arD -auN +apN +apN +apN +apN +apN +apN +apN +apN +apN apJ awZ ayl @@ -64642,15 +64315,15 @@ aaa aaa aaf apJ -aqI -arD -arD -arD -atk -arD -arD -arD -auN +apN +apN +apN +apN +apN +apN +apN +apN +apN apJ awZ ayk @@ -64899,15 +64572,15 @@ aaa aaa aaa apJ -aqI -arD -arD -asG -atl -awX -arD -arD -auN +apN +apN +apN +apN +wph +apN +apN +apN +apN apJ awZ cqr @@ -65156,15 +64829,15 @@ aaa aaa aaa apJ -aqI -arD -arD -arD -cCs -arD -arD -arD -auN +apN +apN +apN +apN +apN +apN +apN +apN +apN apJ awZ aIK @@ -65413,15 +65086,15 @@ aaa aaa aaa apJ -aqI -arD -arD -arD -arD -arD -arD -arD -auN +apN +apN +apN +apN +apN +apN +apN +apN +apN apJ awZ aIK @@ -65670,15 +65343,15 @@ aaa aaa aaf apJ -aqI -arD -arD -arD -arD -arD -arD -arD -auN +apN +apN +apN +apN +apN +apN +apN +apN +apN apJ awZ cry @@ -65927,15 +65600,15 @@ aaa aaa aaa apJ -aqN -asD -asD -asD -cCt -asD -asD -asD -aFD +apN +apN +apN +apN +apN +apN +apN +apN +apN apJ awZ crz @@ -68020,7 +67693,7 @@ czK bhN bcl beQ -bgk +pLn bhI bjb bkz @@ -69048,7 +68721,7 @@ czK bbe beO beU -bgl +bgk bhL bjc cAF @@ -76274,20 +75947,20 @@ bCq bPY cOw bCq -sFW -sFW -sFW -sFW -sFW -ksK -sFW -sFW -sFW -sFW -sFW -sFW -sFW -sFW +rYO +rYO +rYO +rYO +rYO +hHu +rYO +rYO +rYO +rYO +rYO +rYO +rYO +rYO bUs bLv aaa @@ -76531,20 +76204,20 @@ bCq bPX bRg bRg -sFW -nAW +rYO +vSg bVG -uYC -fPq -nAW -uAb -sFW -nAW -tRc +lWf +jZP +vSg +xjt +rYO +vSg +tNR bVG -nAW -hpY -sFW +vSg +dTy +rYO bUs bLv aaa @@ -76788,20 +76461,20 @@ bLv bQa bHE bHE -sFW -get -uut -jlZ -iDC -imZ -iDC -dnc -iDC -iDC -toZ -tNC -dAs -sFW +rYO +hsU +vHG +iWM +xte +kOO +xte +ifj +xte +xte +vEf +jrX +yeG +rYO bUs bLv aaf @@ -77045,20 +76718,20 @@ bLv bPZ bHE bHE -hNj -rWi -mkG -vzq -mdX -pvp -mTC -mlj -mTC -dFc -fDs +nZe +noe +sfS +jbT +pLx +hcV +iWK +uXp +iWK +mES +iWy cCa -nAW -sFW +vSg +rYO bUs bLv aaa @@ -77302,20 +76975,20 @@ bLv bHE bHE bSs -sFW -rRb -ofH -rDl -cIK -ofH -nAW -lkC -hXw +rYO +qne +nok +tDm +sRl +nok +vSg +mOS +uCz cCa -kqE -lgs -diu -sFW +hNR +gVz +wXT +rYO bUs bLv aaa @@ -77559,20 +77232,20 @@ bCq bHE bRh bLu -sFW -jEl -utm -eCQ -fSk -sOy -lkA -sFW -nAW -wTe -kqE -lgs -xYs -sFW +rYO +rXD +pye +heG +pjh +dMY +rkz +rYO +vSg +whD +hNR +gVz +uCa +rYO bUs bLv aaf @@ -77737,10 +77410,10 @@ abc abc afu abc -abc -abc -abc -abc +aaa +aaa +aaa +aaa aaa aaa aaa @@ -77816,20 +77489,20 @@ bCq bOK bCq bCq -sFW -tVF -gGR -fWC -vPG -hik -sFW -sFW -nAW +rYO +jOb +xxh +mjp +weO +dUz +rYO +rYO +vSg cCa -ouy -cKY +tPI +wUX cCa -sFW +rYO bUs bLv aaa @@ -77993,13 +77666,13 @@ abc aea aeH aft -qAQ -soK -mUH -uaf +cXd +ktN +sSO +rVy abc -lkm -lkm +pzB +pzB aaa aiU aln @@ -78074,19 +77747,19 @@ bHE bLv aaa bLv -nrT -gGR -sFW -sFW -sFW -sFW -nAW -nAW -nAW -nQE +xMc +xxh +rYO +rYO +rYO +rYO +vSg +vSg +vSg +kjK cCa -htN -sFW +gMI +rYO bUs bLv aaa @@ -78252,18 +77925,18 @@ aeJ afw abc abc -nNQ -eLY +fJG +mQL abc aaf aaf aaf aiU -wdZ +jnp aiU aaa aiU -wdZ +jnp aiU aaf aaf @@ -78331,19 +78004,19 @@ bHE bLv aaf bLv -nrT -gGR -aEt -waV -stI -vmf -nAW -hXw -tNC -nvm -nAW -nAW -sFW +xMc +xxh +kRe +lnm +wCj +kXH +vSg +uCz +jrX +oLO +vSg +vSg +rYO bUs bLv aaf @@ -78509,8 +78182,8 @@ aeI afv agf abc -tgx -pAL +kdx +lNf abc aiT aiT @@ -78588,19 +78261,19 @@ bLv bCq aaa bLv -nrT -gGR -kuC -qDH -fnP -sFW -uwV -uDn -siI -oFD -nBt -eYQ -sFW +xMc +xxh +xOe +hPY +cZO +rYO +xvH +mtP +iXO +rZN +vnJ +hpF +rYO bUs bCq aaa @@ -78766,9 +78439,9 @@ aeL afy agh abc -gvx -gvx -gvx +nfW +nfW +nfW aiV ajs akb @@ -78846,17 +78519,17 @@ aaa aaa bTB bUv -uze -kPh -kPh -kPh -kPh -kPh -kPh -kPh -kPh -kPh -kPh +eeA +dpp +dpp +dpp +dpp +dpp +dpp +dpp +dpp +dpp +dpp car bUs bCq @@ -79023,9 +78696,9 @@ aeK afx agg abc -gvx -gKN -gvx +nfW +iPE +nfW aiV ajr aka @@ -79280,9 +78953,9 @@ aeN afA afA afA -gvx -gvx -gvx +nfW +nfW +nfW aiV aju akd @@ -79901,7 +79574,7 @@ ciN cji cDZ crr -crJ +aaa aaa aaa aaa @@ -80154,11 +79827,11 @@ ccw cfL coH cBO -cnv +cgR cDB cqP crq -crJ +aaa aaa aaa aaa @@ -80429,7 +80102,7 @@ gXs gXs gXs gXs -lkm +pzB aaa aaa aaa @@ -80672,22 +80345,22 @@ cpX cqz cqQ ccw -crJ +crH aaa aaa -nyw -nyw -nyw +sHb +sHb +sHb aaa aaa aaa aaa aaa -nyw -nyw -nyw -lkm -lkm +sHb +sHb +sHb +pzB +pzB aaa aaa aaa @@ -80929,24 +80602,24 @@ clJ cig cig ccw -crJ -crJ -nyw -nyw -nyw -nyw -nyw +crH +crH +sHb +sHb +sHb +sHb +sHb aaa aaa aaa -nyw -nyw -nyw -nyw -nyw -lkm -lkm -lkm +sHb +sHb +sHb +sHb +sHb +pzB +pzB +pzB aaa aaa aaa @@ -81180,7 +80853,7 @@ ccw ccw ccw cnZ -lmZ +pNk cpt cpt cpt @@ -81202,8 +80875,8 @@ ccw ccw ccw ccw -nyw -lkm +sHb +pzB aaa aaa aaa @@ -81344,7 +81017,7 @@ auj akl akO alx -pfR +tII amg aiX anw @@ -81439,28 +81112,28 @@ cnt cob coL cDo -xiB +ylH cgR cqT ccw -ghy +hQe ccw -csb -cFn -css -cFn -csx +wpT +fBa +vEr +fBa +qRE ccw ccw ccw cGE -cFn -mGv -fAn -fAn +fBa +pRH +dPI +dPI ccw -nyw -cQG +sHb +cSI aaa aaa aaa @@ -81698,26 +81371,26 @@ coK cpu cMm ckH -wWq -pYB +qCO +swV crK cEK csa -dlj -tof -dlj +sOa +fBP +sOa cGr -sDk -kOs -sDk -iWY -dlj -tof -dlj -dlj +vob +kbh +vob +cNt +sOa +fBP +sOa +sOa ccw -nyw -lkm +sHb +pzB aaa aaa aaa @@ -81856,9 +81529,9 @@ aiF agj ajD akm -jrJ +mTp aly -bhP +lyP amQ aiX anw @@ -81953,28 +81626,28 @@ cgR cnZ chF ciO -xiB +ylH cgR cqT ccw cig ccw cFb -dlj +sOa cFI -dlj -dlj -dlj -dlj -dlj -dlj -dlj +sOa +sOa +sOa +sOa +sOa +sOa +sOa cFI -dlj -iVO +sOa +sfz ccw -nyw -mFn +sHb +hSf aaa aaa aaa @@ -82090,7 +81763,7 @@ aaa aag aaf aai -wEi +sHe aaA aaG aaK @@ -82115,7 +81788,7 @@ aja akl akP alx -pfR +tII ami aiX anw @@ -82208,30 +81881,30 @@ ceZ clQ cgR cnZ -lmZ +pNk cgR cgR cgR cqT -dxw +kTZ cEs -dlj -oWs +sOa +fZs cAp -qtN +tgb cAo -qtN +tgb cAo -qtN +tgb cAo -qtN -jMi -dlj -dlj -dlj +tgb +lCe +sOa +sOa +sOa ccw -nyw -ldw +sHb +fGu aaa aaa aaa @@ -82369,7 +82042,7 @@ agP agP aiz ajg -hBF +hrd akQ agj agj @@ -82465,15 +82138,15 @@ cTd ckF ckF cgK -lmZ +pNk cgR cgR cgR cqT -dxw +kTZ csP -dlj -dlj +sOa +sOa cAq cFJ cSH @@ -82484,11 +82157,11 @@ cSH cFJ cSH cFJ -dlj -dlj +sOa +sOa ccw -nyw -ldw +sHb +fGu aaa aaa aaa @@ -82607,7 +82280,7 @@ aaa aaa aaf aaf -rUB +dwQ aaf aai abi @@ -82629,7 +82302,7 @@ ajb ajF akN alw -jXD +hkC amQ aiX anw @@ -82727,25 +82400,25 @@ cpx cqd cjc cqU -dxw +kTZ csP -dlj -oWs +sOa +fZs cAq cFK aoV aoV cFK -gXs +pzB aaa aoV aoV cFK cFJ -dlj +sOa ccw -nyw -ldw +sHb +fGu aaf aaa aaa @@ -82880,16 +82553,16 @@ agn agR agn agR -kIZ +sIS aiX -kvn +kUh akv -pSC -lou +gqU +xWy aww amk aiX -nrJ +rQi aov aph aqb @@ -82982,7 +82655,7 @@ cnZ cDh cpy ccw -kbf +fXl ccw ccw cqY @@ -82992,17 +82665,17 @@ cAq aoV aoV aoV -lkm -aaf +pzB +cSI aaa aoV aoV aoV cFJ -dlj +sOa ccw -nyw -ldw +sHb +fGu aaa aaa aaa @@ -83121,26 +82794,26 @@ aaa aaa aaa aaf -rUB +dwQ aaf -tMh -aaT -fVu -umb +dKf +juA +sQG +jAM aaZ cpg acv adi -jFG +hyb aaZ aeW -tyq +fVA ahv ahQ aiI aiH ajI -mAD +hZr akQ agj agj @@ -83240,26 +82913,26 @@ cDh ccw cqf cqD -dCs +kso crs cEv -msk +ycr cqY cAq aoV aoV aaa aaa -aaf +pzB aaa aaa aoV aoV cFJ -dlj +sOa ccw -nyw -ldw +sHb +fGu aaa aaa aaa @@ -83378,29 +83051,29 @@ aaa aaa aaa aaf -rUB +dwQ aaf -tMh -aaT -oaS -umb +dKf +juA +gcN +jAM aaZ acl cxA acL -fbL +exQ aaZ agp agT ahx ahS aiK -uER -kvn +mDn +kUh akm akT aly -mDW +ekX amQ aiX anw @@ -83494,29 +83167,29 @@ cmL cgR cnZ chX -qVU +nzk cqh cqF cra crI cEw -qzP +rmR cqY cAq aaa aaa aaa -wZZ +rrQ cGU -iyf +eeO aaa -lkm +pzB cFK cFJ -dlj +sOa ccw -nyw -ldw +sHb +fGu aaa aaa aae @@ -83635,12 +83308,12 @@ aaa aaa aaa aaf -rUB +dwQ aaf -tMh -aaT -odi -eXD +dKf +juA +wWN +iCL aaZ ack adk @@ -83657,13 +83330,13 @@ ajI akl akS alx -pfR +tII amp aiX anS aoy -wFC -nRD +apj +anz anz anz anz @@ -83750,7 +83423,7 @@ clJ cmL cnv cnZ -rRI +lSn ccw cqg cqE @@ -83758,22 +83431,22 @@ cqZ crt cMH cAm -tNK +fVS cMN -gXs -aaf -aaf -sCR +pzB +cSI +cSI +fvg cGV -gmz -aaf -aaf -gXs +sLb +cSI +cSI +pzB cFJ -dlj +jcS ccw -nyw -ldw +sHb +fGu aaa aaa aaa @@ -83892,14 +83565,14 @@ aaa aaa aaa aaf -rUB +dwQ aaf -tMh -aaT -oaS -utC +dKf +juA +gcN +ejP aaZ -xlB +oEn acM adQ cwM @@ -83909,8 +83582,8 @@ agU ahy ahX aiL -xSp -pPZ +gKO +tdg akq akQ agj @@ -84007,30 +83680,30 @@ ccw cmN cgR cnZ -rRI -kbf +lSn +fXl cqj cSG crb cru cEx -lTm +vrL cqY cAq cFK -lkm +pzB aaa -sxz -oyk -mtY +wZS +rzC +nzm aaa aaa aaa cFJ -dlj +sOa ccw -nyw -ldw +sHb +fGu aaa aaa aaa @@ -84149,14 +83822,14 @@ aaa aaa aaa aaf -rUB +dwQ aaf -tMh -fPE -piG -utC +dKf +nvz +htj +ejP aaZ -gva +pvY coS aet cxA @@ -84166,18 +83839,18 @@ agt ahz aie agt -jyK -erb +svF +vMr akp akU alz aml amT aiX -gZp -jKG +rez +wJD apl -jCY +aqc aqc aqc aqc @@ -84264,7 +83937,7 @@ clM cfz cgR cnZ -rRI +lSn ccw cqi cMD @@ -84278,16 +83951,16 @@ aoV aoV aaa aaa -aaf +cSI aaa aaa aoV aoV cFJ -dlj +sOa ccw -nyw -ldw +sHb +fGu aaa aaa aaa @@ -84406,14 +84079,14 @@ aaa aaa aaa aaf -rUB +dwQ aaf -tMh -inb -mwi -vPg +dKf +nDS +jUO +iaO abQ -gvi +mZB adj arc blT @@ -84424,15 +84097,15 @@ cxk aig aiM aiX -tmi -kwU -hjI +kBh +qLG +pGb alB amn amV -hHa +sCb aiG -ndn +flZ aod aqf ahT @@ -84442,11 +84115,11 @@ ahT ahT awn axF -vMV -vMV -vMV -vMV -stR +hrv +hrv +hrv +hrv +ilR anF anF aoa @@ -84521,10 +84194,10 @@ cfa cje cgR cnZ -rRI +lSn cpy ccw -kbf +fXl ccw ccw cqY @@ -84535,16 +84208,16 @@ aoV aoV aaa aaa -aaf -lkm +cSI +pzB aaa aoV aoV cFJ -dlj +sOa ccw -nyw -ldw +sHb +fGu aaa aaa aaa @@ -84663,14 +84336,14 @@ aaa aaa aaa aaf -rUB +dwQ aaf -tMh -jcD -iev -erH +dKf +uqz +kwo +mOo abN -dFm +rth acF acF aes @@ -84681,16 +84354,16 @@ ahB aHp agn aiX -ivo -utg +oFD +ksW amS alA -hnm +xCS amm -eyV +fev anT anT -aod +apn aqe arf arf @@ -84701,10 +84374,10 @@ arf arf arf arf -sPM -sPM -sPM -sPM +rwa +rwa +rwa +rwa anF ahn aJn @@ -84783,25 +84456,25 @@ cpD cDw cDF cEa -dxw +kTZ csP -dlj -oWs +sOa +fZs cAq cFK aoV aaa aaa -gXs +pzB cFK aoV aoV cFK cFJ -dlj +sOa ccw -nyw -ldw +sHb +fGu aaf aaa aaa @@ -84920,12 +84593,12 @@ aaa aaa aaa aaf -rUB +dwQ aaf -tMh -szF -aCU -kEw +dKf +uuU +enX +jsN aci acm cpA @@ -84942,10 +84615,10 @@ ajJ akr akX aje -fpI -fpI -fpI -fpI +oUp +oUp +oUp +oUp aoB aod aqe @@ -84958,10 +84631,10 @@ atf arf aqa atf -sPM -tQO -wom -sPM +rwa +tRB +kcH +rwa anF ahn aaa @@ -85040,10 +84713,10 @@ cgR cgR cgR cqT -dxw +kTZ csP -dlj -dlj +sOa +sOa cAq cFJ cSK @@ -85054,11 +84727,11 @@ cSK cFJ cSK cFJ -dlj -dlj +sOa +sOa ccw -nyw -ldw +sHb +fGu aaa aaa aaa @@ -85179,9 +84852,9 @@ aaf aaf ctv ctv -nyw +sHb adR -mxQ +qyv avB aaZ aaZ @@ -85200,12 +84873,12 @@ ahY akX ajc alC -fpI -fpI -oHs -hfY -nYB -ujA +oUp +oUp +leL +vDk +aod +aqe arf apY ate @@ -85215,10 +84888,10 @@ ath arf apY ath -sPM -gQx -ssC -sPM +rwa +faG +rtI +rwa anF ahn aaa @@ -85297,25 +84970,25 @@ cnx cDx cqb cqT -dxw +kTZ cEs -dlj -oWs +sOa +fZs cAr -qtN +tgb cGh -qtN +tgb cGh -qtN +tgb cGh -qtN -rre -dlj -dlj -dlj +tgb +gUa +sOa +sOa +sOa ccw -nyw -ldw +sHb +fGu aaa aaa aaa @@ -85435,9 +85108,9 @@ aaa aaa aaa atS -uAc -eXc -rVc +ebz +aEs +pyu abO abO acO @@ -85452,14 +85125,14 @@ ahA ahZ adR aiQ -kvn +kUh akt -kyp -iUe +oFM +nlM ajc -ndn +flZ aiG -pmD +heb aoD aod aqe @@ -85472,10 +85145,10 @@ ath arf ayV ath -sPM +rwa aCd -ssC -sPM +rtI +rwa anF ahn aJw @@ -85558,21 +85231,21 @@ ccw ccw ccw crc -dlj +sOa cBR -dlj -dlj -dlj -dlj -dlj -dlj -dlj +sOa +sOa +sOa +sOa +sOa +sOa +sOa cBR -dlj -tSN +sOa +jTA ccw -nyw -ldw +sHb +fGu aaa aaa aaa @@ -85691,9 +85364,9 @@ aaa aaa aaa aaa -iFU -jWi -wRi +nip +exs +soh abO abO abO @@ -85712,11 +85385,11 @@ ajf ajK aks akY -wUk +sPd ajc -gAl +sTB alC -pmD +heb aoC aod aqe @@ -85729,10 +85402,10 @@ awo arf asd aAb -sPM -myR -ssC -sPM +rwa +siw +rtI +rwa aoa ahn aJv @@ -85809,27 +85482,27 @@ cDe cDk coc cqa -rYe -wWq -pYB +hYu +qCO +swV czF cEK csd -dlj +sOa cFU -dlj +sOa cGE -sDk +vob cGZ -sDk -csx -dlj +vob +qRE +sOa cFU -dlj -dlj +sOa +sOa ccw -nyw -lkm +sHb +pzB aaa aaa aaa @@ -85948,14 +85621,14 @@ aaa aaa aaa aaa -uow -jWi -wRi -rjW -rjW -rjW -rjW -rjW +ohN +exs +soh +klO +klO +klO +klO +klO abO aew afe @@ -85967,13 +85640,13 @@ aia aiP aiR ajB -dVC +lUX aiX akz alf -lXp -lXp -ldy +iei +iei +sxZ aoF apo aqh @@ -86072,21 +85745,21 @@ ccw crM ccw crV -cFn -qYL -cFn -iWY +fBa +kbA +fBa +cNt ccw ccw ccw cGr -cFn -kPB -fAn -fAn +fBa +vvD +dPI +dPI ccw -nyw -cQG +sHb +cSI aaf aaa aaa @@ -86205,9 +85878,9 @@ aaa aaa aaa aaf -dcQ -jWi -jWi +wjY +exs +exs abO abO acp @@ -86228,11 +85901,11 @@ aku aiX alE amq -iyX -qIa -fAq +iob +gjf +uJC aoE -gLD +aod aqg aun asf @@ -86341,9 +86014,9 @@ ccw ccw ccw ccw -maf -nyw -lkm +jbA +sHb +pzB aaa aaa aaa @@ -86462,14 +86135,14 @@ aaa aaa aaa aaa -uow -sJQ -xDv -lJX +ohN +kNF +hse +gMt abR -lJX -lJX -lJX +gMt +gMt +gMt abl abp abp @@ -86589,18 +86262,18 @@ ccw ccw ccw ccw -kgu -crJ -crJ -crJ -nyw -nyw -nyw -nyw -nyw +iex +crH +crH +crH +sHb +sHb +sHb +sHb +sHb aaa -cQG -lkm +cSI +pzB aaa aaa aaa @@ -86850,13 +86523,13 @@ aaa aaa aaa aaa -crJ -nyw -nyw -nyw -lkm -lkm -lkm +crH +sHb +sHb +sHb +pzB +pzB +pzB aaa aaa aaa @@ -87079,7 +86752,7 @@ caE cbA ccy bOd -gMx +qyS bQu cfO cgW @@ -87101,17 +86774,17 @@ ccw crX cfK aag -lkm -lkm -lkm -lkm -lkm -lkm +pzB +pzB +pzB +pzB +pzB +pzB gXs gXs gXs gXs -lkm +pzB aaa aaa aae @@ -87324,7 +86997,7 @@ bIF bOZ bQp bRA -gMx +qyS bTO bUL bVU @@ -88376,9 +88049,9 @@ clV cmV bOh cig -cpc -cpJ -cpc +aaa +afp +aaa cig cqY cqY @@ -88633,9 +88306,9 @@ clW clW bOh cig -cpd -czM -cpd +aaa +aaa +aaa cig aaa aaa @@ -88890,9 +88563,9 @@ bOh bOh bOh ccw -cpd -czL -cpd +aaa +aaa +aaa ccw aaf aaa @@ -89147,9 +88820,9 @@ clY clZ bOh aaa -cpd -cpM -cpd +aaa +aaa +aaa aaf aaf aaa @@ -89812,9 +89485,9 @@ aaf aaf aaf abp -aeD +aaa afp -aeD +aaa abp aaa aaa @@ -90069,9 +89742,9 @@ aaf aaa aaa adR -aeE -afr -aeE +aaa +aaa +aaa adR aaa aaa @@ -90326,9 +89999,9 @@ aaa aaa aaa aaa -aeE -afq -aeE +aaa +aaa +aaa aaa aaa aaa @@ -90583,9 +90256,9 @@ aaa aaa aaa aaa -aeE -afs -aeE +aaa +aaa +aaa aaa aaa aaa @@ -90679,19 +90352,19 @@ ccC cdD bOh aaf -aah -aah +cCS +cCS aaf aaf aaf aaf aaf -aah -aah -aah -aah -aah -aah +cCS +cCS +cCS +cCS +cCS +cCS aaf aaf aaf @@ -95759,7 +95432,7 @@ aFp aGW anf aIp -aKI +fGf aMA aIp aOX diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index f00c4ce948..b7fa189aa9 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -124,27 +124,6 @@ }, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) -"aaq" = ( -/obj/structure/cable/white{ - icon_state = "0-8" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/security/prison) -"aar" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/cryopod, -/obj/machinery/computer/cryopod{ - pixel_y = 28 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/security/prison) "aas" = ( /obj/docking_port/stationary/random{ id = "pod_lavaland1"; @@ -164,116 +143,10 @@ /obj/effect/landmark/xeno_spawn, /turf/open/space, /area/solar/starboard/fore) -"aav" = ( -/obj/structure/cable/white, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/power/emitter{ - anchored = 1; - state = 2 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"aaw" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Containment - Fore Starboard"; - dir = 8; - network = list("singularity") - }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"aax" = ( -/turf/open/floor/plating/airless, -/area/space) -"aay" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/engine/engineering) -"aaz" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/space, -/area/space) -"aaA" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_1) -"aaB" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/pod_1) -"aaC" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_2) -"aaD" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/pod_2) "aaE" = ( /obj/structure/lattice/catwalk, /turf/open/space, /area/solar/starboard/fore) -"aaF" = ( -/turf/open/floor/plating/airless, -/area/space/nearstation) -"aaG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"aaH" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/space, -/area/space) -"aaI" = ( -/obj/effect/decal/cleanable/oil, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engpa"; - name = "Engineering Chamber Shutters" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"aaJ" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/space, -/area/space) -"aaK" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/space, -/area/space) -"aaL" = ( -/turf/open/space/basic, -/area/space/nearstation) -"aaM" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/space, -/area/space) -"aaN" = ( -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/engineering) "aaO" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -281,123 +154,9 @@ "aaP" = ( /turf/closed/wall/mineral/plastitanium, /area/hallway/secondary/entry) -"aaQ" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/status_display{ - pixel_x = 32 - }, -/obj/machinery/computer/shuttle/pod{ - pixel_x = -32; - possible_destinations = "pod_lavaland1"; - shuttleId = "pod1" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/shuttle/pod_1) -"aaR" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/status_display{ - pixel_x = 32 - }, -/obj/machinery/computer/shuttle/pod{ - pixel_x = -32; - possible_destinations = "pod_lavaland2"; - shuttleId = "pod2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/shuttle/pod_2) "aaS" = ( /turf/closed/wall/mineral/plastitanium, /area/construction/mining/aux_base) -"aaT" = ( -/turf/open/space, -/area/space) -"aaU" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) -"aaV" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engpa"; - name = "Engineering Chamber Shutters" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aaW" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"aaX" = ( -/obj/structure/particle_accelerator/particle_emitter/left{ - icon_state = "emitter_left"; - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"aaY" = ( -/obj/structure/cable, -/obj/machinery/particle_accelerator/control_box, -/turf/open/floor/plating, -/area/engine/engineering) -"aaZ" = ( -/obj/machinery/vending/kink, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/locker) -"aba" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space) -"abb" = ( -/obj/structure/particle_accelerator/particle_emitter/center{ - icon_state = "emitter_center"; - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"abc" = ( -/obj/structure/particle_accelerator/power_box{ - icon_state = "power_box"; - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"abd" = ( -/obj/structure/particle_accelerator/fuel_chamber{ - icon_state = "fuel_chamber"; - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) "abe" = ( /obj/effect/turf_decal/delivery, /obj/item/twohanded/required/kirbyplants/random, @@ -406,48 +165,6 @@ "abf" = ( /turf/closed/wall, /area/hallway/secondary/entry) -"abg" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/item/device/radio/intercom{ - pixel_x = 25 - }, -/obj/item/storage/pod{ - pixel_x = -26 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/shuttle/pod_1) -"abh" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/item/device/radio/intercom{ - pixel_x = 25 - }, -/obj/item/storage/pod{ - pixel_x = -26 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/shuttle/pod_2) "abi" = ( /turf/closed/wall, /area/construction/mining/aux_base) @@ -455,44 +172,6 @@ /obj/structure/lattice/catwalk, /turf/open/space, /area/space/nearstation) -"abk" = ( -/obj/structure/particle_accelerator/end_cap{ - icon_state = "end_cap"; - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"abl" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space) -"abm" = ( -/obj/structure/particle_accelerator/particle_emitter/right{ - icon_state = "emitter_right"; - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"abn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/computer/cryopod{ - pixel_x = 28 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 4 - }, -/area/crew_quarters/locker) -"abo" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/engine/engineering) "abp" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small{ @@ -516,98 +195,22 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) -"abr" = ( -/obj/structure/shuttle/engine/propulsion/burst, -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_1) "abs" = ( -/obj/machinery/door/airlock/shuttle{ - name = "Escape Pod Airlock" +/obj/docking_port/stationary{ + dir = 1; + dwidth = 1; + height = 4; + name = "escape pod loader"; + roundstart_template = /datum/map_template/shuttle/escape_pod/default; + width = 3 }, -/obj/docking_port/mobile/pod{ - id = "pod1"; - name = "escape pod 1"; - port_direction = 2 - }, -/obj/effect/turf_decal/stripes/end, -/turf/open/floor/plasteel/white, -/area/shuttle/pod_1) -"abt" = ( -/obj/structure/shuttle/engine/propulsion/burst, -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_2) -"abu" = ( -/obj/machinery/door/airlock/shuttle{ - name = "Escape Pod Airlock" - }, -/obj/docking_port/mobile/pod{ - id = "pod2"; - name = "escape pod 2"; - port_direction = 2 - }, -/obj/effect/turf_decal/stripes/end, -/turf/open/floor/plasteel/white, -/area/shuttle/pod_2) +/turf/open/space/basic, +/area/space) "abv" = ( /obj/item/stack/cable_coil, /obj/structure/lattice/catwalk, /turf/open/space, /area/solar/starboard/fore) -"abw" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/cryopod, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/locker) -"abx" = ( -/obj/machinery/status_display{ - pixel_x = 32 - }, -/obj/machinery/cryopod, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/locker) -"aby" = ( -/obj/structure/cable, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/power/tesla_coil, -/turf/open/floor/plating/airless, -/area/space) -"abz" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/space) -"abA" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"abB" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Containment - Aft Starboard"; - dir = 8; - network = list("singularity") - }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/engine/engineering) "abC" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -660,66 +263,6 @@ }, /turf/open/floor/plasteel, /area/construction/mining/aux_base) -"abI" = ( -/obj/structure/cable/white{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/power/emitter{ - anchored = 1; - dir = 1; - icon_state = "emitter"; - state = 2 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"abJ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/space) -"abK" = ( -/obj/machinery/field/generator{ - anchored = 1; - state = 2 - }, -/turf/open/floor/plating/airless, -/area/space) -"abL" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space) -"abM" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/space, -/area/space) -"abN" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/space) -"abO" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating/airless, -/area/space) "abP" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/external{ @@ -768,44 +311,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/construction/mining/aux_base) -"abU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating/airless, -/area/space) -"abV" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/power/tesla_coil, -/turf/open/floor/plating/airless, -/area/space) -"abW" = ( -/obj/machinery/the_singularitygen/tesla, -/turf/open/floor/plating/airless, -/area/space) -"abX" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space) -"abY" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space) "abZ" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/line{ @@ -869,57 +374,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/maintenance/solars/starboard/fore) -"acg" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating/airless, -/area/space) -"ach" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plating/airless, -/area/space) -"aci" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating/airless, -/area/space) -"acj" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space) -"ack" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating/airless, -/area/space) -"acl" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/power/tesla_coil, -/turf/open/floor/plating/airless, -/area/space) -"acm" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/space) -"acn" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/space, -/area/space) "aco" = ( /turf/open/floor/plasteel/neutral, /area/hallway/secondary/entry) @@ -968,7 +422,7 @@ /turf/open/floor/plating, /area/maintenance/solars/starboard/fore) "acv" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -981,23 +435,6 @@ }, /turf/open/floor/plating, /area/maintenance/solars/starboard/fore) -"acw" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/space, -/area/space) -"acx" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/space, -/area/space) "acF" = ( /obj/docking_port/stationary{ dir = 2; @@ -1345,7 +782,7 @@ /area/hallway/secondary/entry) "adx" = ( /obj/structure/table/reinforced, -/obj/item/device/analyzer{ +/obj/item/analyzer{ pixel_x = 7; pixel_y = 3 }, @@ -1518,7 +955,7 @@ /obj/item/stack/cable_coil/white, /obj/item/stock_parts/cell/high, /obj/effect/decal/cleanable/dirt, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -1527,24 +964,8 @@ }, /area/construction/mining/aux_base) "aeF" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, -/area/shuttle/auxillary_base) -"aeG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"aeH" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) +/area/construction/mining/aux_base) "aeR" = ( /obj/structure/closet/emcloset, /obj/effect/decal/cleanable/dirt, @@ -1633,36 +1054,11 @@ /obj/structure/table/reinforced, /obj/item/clipboard, /obj/item/folder/yellow, -/obj/item/device/assault_pod/mining, +/obj/item/assault_pod/mining, /turf/open/floor/plasteel/yellow/side{ dir = 4 }, /area/construction/mining/aux_base) -"afg" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"afh" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"afi" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"afj" = ( -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"afk" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "aft" = ( /obj/structure/closet/emcloset, /obj/effect/turf_decal/delivery, @@ -1768,7 +1164,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "afV" = ( -/obj/item/device/beacon, +/obj/item/beacon, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/hallway/secondary/entry) @@ -1807,10 +1203,6 @@ dir = 4 }, /area/construction/mining/aux_base) -"afZ" = ( -/obj/structure/mining_shuttle_beacon, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "agj" = ( /obj/structure/closet/firecloset, /obj/effect/decal/cleanable/dirt, @@ -1878,45 +1270,6 @@ }, /turf/open/floor/plating, /area/construction/mining/aux_base) -"agq" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/docking_port/stationary/public_mining_dock{ - dir = 4 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"agr" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"ags" = ( -/obj/docking_port/mobile/auxillary_base{ - dheight = 4; - dir = 2; - dwidth = 4; - height = 9; - width = 9 - }, -/obj/machinery/bluespace_beacon, -/obj/docking_port/mobile/auxillary_base, -/obj/machinery/computer/auxillary_base, -/turf/closed/wall, -/area/shuttle/auxillary_base) -"agt" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Auxillary Base"; - dir = 4; - name = "engineering camera" - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "agB" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -1973,7 +1326,6 @@ height = 17; id = "syndicate_ne"; name = "northeast of station"; - turf_type = /turf/open/space; width = 23 }, /turf/open/space, @@ -2087,18 +1439,6 @@ dir = 4 }, /area/construction/mining/aux_base) -"ahw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"ahx" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "ahz" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -2149,17 +1489,6 @@ dir = 6 }, /area/construction/mining/aux_base) -"ahG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/structure/ore_box, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"ahH" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "ahO" = ( /obj/machinery/status_display{ pixel_x = -32 @@ -2278,7 +1607,6 @@ height = 13; id = "ferry_home"; name = "port bay 2"; - turf_type = /turf/open/space; width = 5 }, /turf/open/space/basic, @@ -2710,7 +2038,7 @@ dir = 4 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -2807,7 +2135,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -3456,12 +2784,12 @@ /area/security/vacantoffice) "alq" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/grimy, /area/security/vacantoffice) "alr" = ( /obj/structure/table/wood, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/machinery/light/small{ dir = 1 }, @@ -3545,7 +2873,7 @@ "alB" = ( /obj/structure/table/reinforced, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/radio, +/obj/item/radio, /obj/structure/reagent_dispensers/peppertank{ pixel_x = 32 }, @@ -3867,7 +3195,7 @@ /area/hallway/secondary/entry) "amo" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/camera{ c_tag = "Arrivals - Center"; dir = 2; @@ -3997,7 +3325,7 @@ /obj/structure/closet/crate{ icon_state = "crateopen" }, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plasteel/neutral/side{ dir = 6 @@ -4115,7 +3443,7 @@ "amS" = ( /obj/structure/table/wood, /obj/item/storage/briefcase, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /turf/open/floor/wood{ icon_state = "wood-broken4" }, @@ -4195,7 +3523,7 @@ /area/security/vacantoffice) "ane" = ( /obj/structure/table/wood, -/obj/item/device/paicard, +/obj/item/paicard, /turf/open/floor/plasteel/grimy, /area/security/vacantoffice) "anf" = ( @@ -4542,7 +3870,7 @@ /area/security/vacantoffice) "aoa" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/carpet, /area/security/vacantoffice) "aob" = ( @@ -4621,7 +3949,7 @@ /obj/machinery/light{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -4744,7 +4072,7 @@ /obj/machinery/light{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -4984,11 +4312,11 @@ /area/security/vacantoffice) "apc" = ( /obj/structure/table/wood, -/obj/item/device/camera_film{ +/obj/item/camera_film{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/camera_film, +/obj/item/camera_film, /turf/open/floor/wood, /area/security/vacantoffice) "apd" = ( @@ -5169,20 +4497,19 @@ /obj/machinery/light/small{ dir = 8 }, -/obj/machinery/conveyor{ - dir = 5; - id = "garbage"; - verted = -1 - }, /obj/effect/turf_decal/stripes/line{ dir = 9 }, /obj/effect/turf_decal/stripes/corner, +/obj/machinery/conveyor{ + dir = 5; + id = "garbage" + }, /turf/open/floor/plating, /area/maintenance/disposal) "apD" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "garbage" }, /obj/structure/disposalpipe/segment{ @@ -5201,7 +4528,7 @@ /area/maintenance/disposal) "apE" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "garbage" }, /obj/structure/disposalpipe/segment{ @@ -5456,7 +4783,7 @@ /area/security/vacantoffice) "aqh" = ( /obj/structure/table/wood, -/obj/item/device/camera, +/obj/item/camera, /obj/machinery/light/small, /obj/structure/sign/nanotrasen{ pixel_y = -32 @@ -5465,7 +4792,7 @@ /area/security/vacantoffice) "aqi" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/structure/sign/warning/nosmoking{ pixel_x = 32 }, @@ -5672,7 +4999,7 @@ /area/maintenance/disposal) "aqE" = ( /obj/machinery/conveyor{ - dir = 2; + dir = 1; id = "garbage" }, /obj/effect/decal/cleanable/dirt, @@ -5711,7 +5038,7 @@ /area/maintenance/disposal) "aqG" = ( /obj/machinery/conveyor_switch/oneway{ - convdir = -1; + dir = 8; id = "garbage"; name = "disposal conveyor" }, @@ -5966,7 +5293,7 @@ /area/maintenance/disposal) "arg" = ( /obj/machinery/conveyor{ - dir = 4; + dir = 8; id = "garbage" }, /obj/machinery/door/window/eastright{ @@ -6297,7 +5624,7 @@ /area/hallway/secondary/entry) "arP" = ( /obj/machinery/vending/snack/random, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -6413,22 +5740,21 @@ /obj/machinery/light/small{ dir = 8 }, -/obj/machinery/conveyor{ - dir = 9; - id = "garbage"; - verted = -1 - }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, /obj/effect/turf_decal/stripes/corner{ dir = 8 }, +/obj/machinery/conveyor{ + dir = 9; + id = "garbage" + }, /turf/open/floor/plating, /area/maintenance/disposal) "asf" = ( /obj/machinery/conveyor{ - dir = 4; + dir = 8; id = "garbage" }, /obj/effect/turf_decal/stripes/line{ @@ -6438,7 +5764,7 @@ /area/maintenance/disposal) "asg" = ( /obj/machinery/conveyor{ - dir = 4; + dir = 8; id = "garbage" }, /obj/effect/decal/cleanable/blood/splatter, @@ -6448,10 +5774,6 @@ /turf/open/floor/plating, /area/maintenance/disposal) "ash" = ( -/obj/machinery/conveyor{ - dir = 6; - id = "garbage" - }, /obj/machinery/door/window/eastright{ base_state = "left"; dir = 4; @@ -6464,6 +5786,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 5 }, +/obj/machinery/conveyor/inverted{ + dir = 6; + id = "garbage" + }, /turf/open/floor/plating, /area/maintenance/disposal) "asi" = ( @@ -7150,7 +6476,7 @@ /obj/structure/rack, /obj/effect/decal/cleanable/dirt, /obj/item/weldingtool, -/obj/item/device/assembly/voice, +/obj/item/assembly/voice, /obj/item/clothing/head/welding, /obj/effect/spawner/lootdrop/maintenance, /obj/structure/disposalpipe/segment{ @@ -7184,10 +6510,6 @@ /turf/open/floor/plating, /area/maintenance/disposal) "atB" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "garbage" - }, /obj/structure/disposaloutlet{ dir = 4 }, @@ -7201,7 +6523,7 @@ /area/maintenance/disposal) "atC" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "garbage" }, /obj/structure/disposalpipe/segment{ @@ -7213,7 +6535,7 @@ /area/maintenance/disposal) "atD" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "garbage" }, /obj/machinery/atmospherics/components/unary/vent_pump/on, @@ -7224,7 +6546,7 @@ /area/maintenance/disposal) "atE" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "garbage" }, /obj/machinery/recycler, @@ -7238,14 +6560,14 @@ name = "Danger: Conveyor Access"; req_access_txt = "12" }, -/obj/machinery/conveyor{ - dir = 10; - id = "garbage" - }, /obj/effect/decal/cleanable/blood/splatter, /obj/effect/turf_decal/stripes/line{ dir = 6 }, +/obj/machinery/conveyor/inverted{ + dir = 10; + id = "garbage" + }, /turf/open/floor/plating, /area/maintenance/disposal) "atG" = ( @@ -7276,7 +6598,7 @@ /area/space/nearstation) "atK" = ( /obj/structure/table/reinforced, -/obj/item/device/analyzer{ +/obj/item/analyzer{ pixel_x = 7; pixel_y = 3 }, @@ -7460,8 +6782,8 @@ /obj/item/tank/internals/emergency_oxygen/engi{ pixel_x = 5 }, -/obj/item/device/geiger_counter, -/obj/item/device/geiger_counter, +/obj/item/geiger_counter, +/obj/item/geiger_counter, /obj/machinery/airalarm{ dir = 8; pixel_x = 24 @@ -7957,10 +7279,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; - name = "Cooling to Unfiltered"; - on = 1 + name = "Cooling to Unfiltered" }, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) @@ -8037,7 +7358,7 @@ /area/engine/atmospherics_engine) "ave" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -8187,7 +7508,7 @@ /area/maintenance/port/fore) "avx" = ( /obj/structure/table/wood, -/obj/item/device/camera_film, +/obj/item/camera_film, /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/machinery/airalarm{ pixel_y = 23 @@ -8792,7 +8113,7 @@ /area/crew_quarters/toilet/auxiliary) "awN" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -8940,7 +8261,7 @@ "axh" = ( /obj/structure/table/reinforced, /obj/item/storage/box/lights/mixed, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -9192,7 +8513,7 @@ /area/maintenance/port/fore) "axO" = ( /obj/structure/table/wood, -/obj/item/device/camera, +/obj/item/camera, /turf/open/floor/wood{ icon_state = "wood-broken3" }, @@ -9246,7 +8567,7 @@ pixel_y = 3 }, /obj/item/storage/box/lights/mixed, -/obj/item/device/lightreplacer, +/obj/item/lightreplacer, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -9627,7 +8948,7 @@ /turf/open/floor/circuit/green, /area/engine/supermatter) "ayK" = ( -/obj/machinery/power/supermatter_shard/crystal/engine, +/obj/machinery/power/supermatter_crystal/engine, /turf/open/floor/engine, /area/engine/supermatter) "ayL" = ( @@ -9798,7 +9119,7 @@ /obj/effect/decal/cleanable/dirt, /obj/item/mop, /obj/item/mop, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -10093,9 +9414,8 @@ network = list("ss13","engine") }, /obj/effect/turf_decal/bot, -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) @@ -10481,7 +9801,8 @@ /area/quartermaster/storage) "aAH" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/conveyor_switch{ +/obj/machinery/conveyor_switch/oneway{ + dir = 8; id = "cargounload" }, /turf/open/floor/plasteel/brown{ @@ -10528,7 +9849,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/bot, /obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - icon_state = "freezer"; dir = 4 }, /turf/open/floor/plasteel, @@ -10573,7 +9893,7 @@ /turf/closed/wall/r_wall, /area/engine/supermatter) "aAW" = ( -/obj/machinery/door/airlock/atmos/glass{ +/obj/machinery/door/airlock/atmos/glass/critical{ heat_proof = 1; name = "Supermatter Chamber"; req_one_access_txt = "24;10" @@ -12034,10 +11354,9 @@ /turf/open/floor/plating, /area/quartermaster/storage) "aEl" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 8; - name = "Gas to Cooling Loop"; - on = 1 + name = "Gas to Cooling Loop" }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -12106,10 +11425,9 @@ /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "aEr" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 8; - name = "Gas to Filter"; - on = 1 + name = "Gas to Filter" }, /obj/structure/cable{ icon_state = "4-8" @@ -12335,7 +11653,7 @@ "aEO" = ( /obj/structure/table/wood, /obj/structure/reagent_dispensers/beerkeg, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -12461,7 +11779,7 @@ pixel_y = 3 }, /obj/item/storage/fancy/cigarettes/cigars/havana, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -12623,7 +11941,7 @@ /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "aFv" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -28; pixel_y = -28 @@ -12774,7 +12092,7 @@ /area/hydroponics/garden/abandoned) "aFN" = ( /obj/structure/table, -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /obj/item/hatchet, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/bot, @@ -12820,7 +12138,7 @@ /area/maintenance/port/fore) "aFT" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/button/door{ id = "AuxCabinA"; name = "Dormitory Door Lock"; @@ -12833,7 +12151,7 @@ /area/hallway/secondary/service) "aFU" = ( /obj/structure/table/wood, -/obj/item/device/paicard, +/obj/item/paicard, /turf/open/floor/plasteel/grimy, /area/hallway/secondary/service) "aFV" = ( @@ -13040,11 +12358,11 @@ /turf/open/floor/plating, /area/quartermaster/sorting) "aGp" = ( +/obj/effect/decal/cleanable/dirt, /obj/machinery/conveyor{ - dir = 2; + dir = 6; id = "cargodeliver" }, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/quartermaster/sorting) "aGq" = ( @@ -13104,7 +12422,7 @@ }, /obj/structure/table/reinforced, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/radio, +/obj/item/radio, /obj/machinery/button/door{ desc = "A remote control switch."; id = "cardoor"; @@ -13123,7 +12441,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -13375,7 +12693,7 @@ /turf/open/floor/plating, /area/security/prison) "aGM" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -13972,7 +13290,7 @@ /area/quartermaster/storage) "aHU" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/conveyor_switch{ +/obj/machinery/conveyor_switch/oneway{ id = "cargoload" }, /turf/open/floor/plasteel/brown{ @@ -14443,7 +13761,7 @@ "aIN" = ( /obj/structure/table/wood, /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/wood, /area/hallway/secondary/service) "aIO" = ( @@ -14592,7 +13910,7 @@ "aJg" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/conveyor_switch/oneway{ - convdir = -1; + dir = 8; id = "cargodeliver"; name = "delivery conveyor"; pixel_x = -12 @@ -14744,7 +14062,7 @@ /turf/open/floor/plasteel, /area/security/prison) "aJB" = ( -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral/corner, @@ -14839,16 +14157,25 @@ /obj/machinery/meter, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + icon_state = "4-8" + }, /turf/open/floor/plasteel/neutral, /area/maintenance/disposal/incinerator) "aJM" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/structure/cable/white{ + icon_state = "4-8" + }, /turf/open/floor/plasteel/neutral, /area/maintenance/disposal/incinerator) "aJN" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 9 }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, /turf/open/floor/plasteel/neutral, /area/maintenance/disposal/incinerator) "aJO" = ( @@ -14859,6 +14186,9 @@ icon_state = "1-4" }, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + icon_state = "4-8" + }, /turf/open/floor/plasteel/neutral, /area/maintenance/disposal/incinerator) "aJP" = ( @@ -15096,7 +14426,7 @@ /area/maintenance/port/fore) "aKm" = ( /obj/structure/table/wood, -/obj/item/device/camera, +/obj/item/camera, /obj/machinery/newscaster{ pixel_x = -32 }, @@ -15207,7 +14537,7 @@ /area/crew_quarters/bar/atrium) "aKB" = ( /obj/structure/chair/stool/bar, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -15395,6 +14725,14 @@ }, /turf/open/floor/plasteel, /area/security/prison) +"aKY" = ( +/obj/structure/cable/white{ + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/prison) "aKZ" = ( /turf/closed/wall/r_wall, /area/security/execution/education) @@ -15630,7 +14968,7 @@ /obj/structure/cable/white{ icon_state = "0-8" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -24 }, @@ -15852,14 +15190,14 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "aLY" = ( -/obj/machinery/conveyor{ - dir = 1; - id = "cargoload" - }, /obj/effect/decal/cleanable/dirt, /obj/machinery/light{ dir = 4 }, +/obj/machinery/conveyor/inverted{ + dir = 10; + id = "cargoload" + }, /turf/open/floor/plating, /area/quartermaster/storage) "aMc" = ( @@ -15951,6 +15289,19 @@ dir = 4 }, /area/security/prison) +"aMk" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/cryopod, +/obj/machinery/computer/cryopod{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/prison) "aMl" = ( /obj/structure/table, /obj/structure/cable/white{ @@ -16294,11 +15645,11 @@ /obj/machinery/status_display{ pixel_x = -32 }, -/obj/item/device/camera_film{ +/obj/item/camera_film{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/camera_film, +/obj/item/camera_film, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -16372,7 +15723,7 @@ /area/crew_quarters/bar/atrium) "aNk" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -16448,7 +15799,7 @@ dir = 8 }, /obj/structure/disposalpipe/segment, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -16663,10 +16014,7 @@ /area/maintenance/disposal/incinerator) "aNR" = ( /obj/machinery/igniter{ - icon_state = "igniter0"; - id = "Incinerator"; - luminosity = 2; - on = 0 + id = "Incinerator" }, /obj/structure/cable{ icon_state = "4-8" @@ -16725,6 +16073,17 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, +/obj/machinery/embedded_controller/radio/airlock_controller{ + airpump_tag = "incinerator_airlock_pump"; + exterior_door_tag = "incinerator_airlock_exterior"; + id_tag = "incinerator_airlock_control"; + interior_door_tag = "incinerator_airlock_interior"; + name = "Incinerator Access Console"; + pixel_y = 27; + req_access_txt = "12"; + sanitize_external = 1; + sensor_tag = "incinerator_airlock_sensor" + }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "aNV" = ( @@ -16801,7 +16160,7 @@ /turf/open/floor/plasteel/vault, /area/engine/atmos) "aOd" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -16958,7 +16317,7 @@ /area/crew_quarters/theatre) "aOw" = ( /obj/structure/table/wood, -/obj/item/device/instrument/eguitar, +/obj/item/instrument/eguitar, /obj/item/toy/crayon/spraycan/lubecan{ charges = 5 }, @@ -16997,10 +16356,10 @@ }, /obj/item/storage/crayons, /obj/item/storage/crayons, -/obj/item/device/flashlight/lamp/bananalamp{ +/obj/item/flashlight/lamp/bananalamp{ pixel_y = 5 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -17029,7 +16388,7 @@ /area/crew_quarters/bar/atrium) "aOD" = ( /obj/structure/table/wood, -/obj/item/device/instrument/guitar, +/obj/item/instrument/guitar, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -17392,18 +16751,6 @@ /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "aPA" = ( -/obj/machinery/embedded_controller/radio/airlock_controller{ - name = "Incinerator Access Console"; - airpump_tag = "incinerator_airlock_pump"; - exterior_door_tag = "incinerator_airlock_exterior"; - id_tag = "incinerator_access_control"; - interior_door_tag = "incinerator_airlock_interior"; - pixel_x = 8; - pixel_y = -24; - sanitize_external = 1; - sensor_tag = "incinerator_airlock_sensor"; - req_access_txt = "12" - }, /obj/machinery/button/ignition{ id = "Incinerator"; pixel_x = 8; @@ -17813,7 +17160,7 @@ dir = 8; pixel_x = -24 }, -/obj/item/device/camera, +/obj/item/camera, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -17965,7 +17312,7 @@ "aQC" = ( /obj/structure/table, /obj/item/folder/yellow, -/obj/item/device/destTagger, +/obj/item/destTagger, /turf/open/floor/plasteel/brown, /area/quartermaster/sorting) "aQD" = ( @@ -18131,7 +17478,7 @@ "aQX" = ( /obj/structure/table/glass, /obj/item/folder/blue, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /obj/machinery/light{ dir = 1 }, @@ -18193,7 +17540,7 @@ /area/security/prison) "aRf" = ( /obj/machinery/holopad, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom"; @@ -18934,7 +18281,7 @@ pixel_x = 26; pixel_y = 32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_x = 28 @@ -18955,7 +18302,7 @@ /area/quartermaster/qm) "aSA" = ( /obj/structure/table/reinforced, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/brown{ dir = 5 }, @@ -19110,7 +18457,7 @@ pixel_x = 3 }, /obj/item/restraints/handcuffs, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 }, @@ -19596,7 +18943,7 @@ /area/crew_quarters/bar/atrium) "aTI" = ( /obj/structure/table/wood, -/obj/item/device/paicard, +/obj/item/paicard, /turf/open/floor/plasteel/redyellow, /area/crew_quarters/bar/atrium) "aTJ" = ( @@ -19659,7 +19006,7 @@ "aTQ" = ( /obj/structure/table/reinforced, /obj/item/folder/yellow, -/obj/item/device/multitool, +/obj/item/multitool, /obj/item/pen/red, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 @@ -19885,7 +19232,7 @@ /area/quartermaster/qm) "aUm" = ( /obj/structure/table/reinforced, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -20070,8 +19417,8 @@ /obj/structure/reagent_dispensers/peppertank{ pixel_x = -32 }, -/obj/item/device/electropack, -/obj/item/device/assembly/signaler, +/obj/item/electropack, +/obj/item/assembly/signaler, /obj/machinery/light{ dir = 8 }, @@ -20415,7 +19762,7 @@ /area/hallway/secondary/service) "aVn" = ( /obj/structure/table/wood, -/obj/item/device/instrument/violin, +/obj/item/instrument/violin, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -20949,8 +20296,8 @@ pixel_x = -7; pixel_y = -26 }, -/obj/item/device/flashlight/lamp, -/obj/item/device/radio/intercom{ +/obj/item/flashlight/lamp, +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -21005,8 +20352,7 @@ "aWq" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "Justice gas pump"; - on = 0 + name = "Justice gas pump" }, /obj/machinery/door/window/westleft, /turf/open/floor/plasteel/vault{ @@ -21091,8 +20437,7 @@ /obj/machinery/atmospherics/pipe/simple/green/visible, /obj/machinery/atmospherics/components/binary/pump{ dir = 4; - name = "CO2 to Pure"; - on = 0 + name = "CO2 to Pure" }, /turf/open/floor/plasteel/vault, /area/engine/atmos) @@ -21325,7 +20670,7 @@ }, /area/crew_quarters/bar/atrium) "aXb" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26; pixel_y = -26 @@ -21542,7 +20887,7 @@ /obj/item/cartridge/quartermaster{ pixel_y = 6 }, -/obj/item/device/gps/mining, +/obj/item/gps/mining, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -21588,7 +20933,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -21778,9 +21123,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "aYb" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ + dir = 4 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, @@ -21807,7 +21151,7 @@ "aYf" = ( /obj/structure/table/reinforced, /obj/item/folder/yellow, -/obj/item/device/lightreplacer, +/obj/item/lightreplacer, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -22732,15 +22076,6 @@ temperature = 2.7 }, /area/security/prison) -"aZN" = ( -/obj/structure/shuttle/engine/propulsion/burst{ - dir = 8 - }, -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_3) -"aZO" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_3) "aZP" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/atmos/carbon_input{ dir = 4 @@ -22783,12 +22118,7 @@ dir = 8 }, /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 2; - filter_type = "co2"; - name = "co2 filter"; - on = 1 - }, +/obj/machinery/atmospherics/components/trinary/filter/atmos/co2, /turf/open/floor/plasteel/vault, /area/engine/atmos) "aZV" = ( @@ -22872,13 +22202,8 @@ /turf/open/floor/plasteel/neutral, /area/engine/atmos) "bag" = ( -/obj/machinery/atmospherics/components/trinary/mixer{ - dir = 1; - name = "air mixer"; - node1_concentration = 0.8; - node2_concentration = 0.2; - on = 1; - target_pressure = 4500 +/obj/machinery/atmospherics/components/trinary/mixer/airmix{ + dir = 1 }, /turf/open/floor/plasteel/neutral, /area/engine/atmos) @@ -22891,10 +22216,9 @@ pixel_y = 1 }, /obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 8; - name = "O2 to Airmix"; - on = 1 + name = "O2 to Airmix" }, /turf/open/floor/plasteel/blue/side{ dir = 5 @@ -22986,7 +22310,7 @@ /turf/closed/wall, /area/hydroponics) "baw" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -23149,7 +22473,7 @@ /obj/machinery/newscaster{ pixel_y = -32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_x = 28 @@ -23360,7 +22684,7 @@ /area/security/prison) "bbl" = ( /obj/machinery/light, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -23460,65 +22784,16 @@ /turf/open/floor/plasteel, /area/security/prison) "bbv" = ( -/obj/machinery/door/airlock/shuttle{ - name = "Escape Pod Airlock" - }, -/obj/docking_port/mobile/pod{ +/obj/docking_port/stationary{ dir = 4; - id = "pod3"; - name = "escape pod 3"; - port_direction = 2; - preferred_direction = 4 + dwidth = 1; + height = 4; + name = "escape pod loader"; + roundstart_template = /datum/map_template/shuttle/escape_pod/default; + width = 3 }, -/obj/effect/turf_decal/stripes/end{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/shuttle/pod_3) -"bbw" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/item/device/radio/intercom{ - pixel_y = 24 - }, -/obj/item/storage/pod{ - pixel_x = 6; - pixel_y = -32 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/obj/machinery/light/small, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/shuttle/pod_3) -"bbx" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/status_display{ - pixel_y = 32 - }, -/obj/machinery/computer/shuttle/pod{ - pixel_y = -32; - possible_destinations = "pod_lavaland3"; - shuttleId = "pod3" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/shuttle/pod_3) -"bby" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/pod_3) +/turf/open/space/basic, +/area/space) "bbz" = ( /obj/docking_port/stationary/random{ dir = 4; @@ -23705,7 +22980,7 @@ /area/hydroponics) "bbX" = ( /obj/structure/closet/wardrobe/botanist, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -23926,7 +23201,7 @@ /obj/machinery/light{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -24109,7 +23384,7 @@ /obj/item/restraints/handcuffs, /obj/item/restraints/handcuffs, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel/vault, /area/security/prison) "bcQ" = ( @@ -24219,8 +23494,7 @@ /obj/machinery/atmospherics/pipe/simple/green/visible, /obj/machinery/atmospherics/components/binary/pump{ dir = 4; - name = "Plasma to Pure"; - on = 0 + name = "Plasma to Pure" }, /turf/open/floor/plasteel/purple/side{ dir = 9 @@ -24283,11 +23557,8 @@ dir = 4 }, /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 1; - filter_type = "o2"; - name = "oxygen filter"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ + dir = 1 }, /turf/open/floor/plasteel/blue/side{ dir = 6 @@ -24594,7 +23865,7 @@ /obj/machinery/light{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -24802,7 +24073,7 @@ /turf/open/floor/plasteel, /area/security/prison) "bes" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -24860,7 +24131,7 @@ /area/engine/atmos) "beA" = ( /obj/structure/table/reinforced, -/obj/item/device/analyzer{ +/obj/item/analyzer{ pixel_x = 7; pixel_y = 3 }, @@ -25079,7 +24350,7 @@ dir = 1; pixel_y = -22 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26; pixel_y = -26 @@ -25431,12 +24702,7 @@ dir = 8 }, /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 2; - filter_type = "plasma"; - name = "waste filter"; - on = 1 - }, +/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma, /turf/open/floor/plasteel/purple/side{ dir = 10 }, @@ -25444,8 +24710,7 @@ "bfW" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 1; - name = "Port Mix to Port Ports"; - on = 0 + name = "Port Mix to Port Ports" }, /turf/open/floor/plasteel/neutral, /area/engine/atmos) @@ -25460,8 +24725,7 @@ }, /obj/machinery/atmospherics/components/binary/pump{ dir = 1; - name = "Port Mix to Starboard Ports"; - on = 0 + name = "Port Mix to Starboard Ports" }, /turf/open/floor/plasteel/neutral, /area/engine/atmos) @@ -25511,10 +24775,9 @@ pixel_y = 1 }, /obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 8; - name = "N2 to Airmix"; - on = 1 + name = "N2 to Airmix" }, /turf/open/floor/plasteel/red/side{ dir = 5 @@ -26150,7 +25413,7 @@ /area/hydroponics) "bhC" = ( /obj/structure/table/glass, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -26213,7 +25476,7 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -26254,7 +25517,7 @@ /turf/open/floor/plasteel/red, /area/crew_quarters/kitchen) "bhO" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -26509,7 +25772,7 @@ "bir" = ( /obj/structure/table/reinforced, /obj/effect/decal/cleanable/dirt, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/purple/side{ dir = 4 }, @@ -26708,7 +25971,7 @@ /obj/structure/chair/office/dark{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; pixel_y = 26 @@ -26798,8 +26061,7 @@ /obj/machinery/atmospherics/pipe/simple/green/visible, /obj/machinery/atmospherics/components/binary/pump{ dir = 4; - name = "N2O to Pure"; - on = 0 + name = "N2O to Pure" }, /turf/open/floor/plasteel/escape{ dir = 9 @@ -26823,8 +26085,7 @@ "biZ" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 1; - name = "Pure to Ports"; - on = 0 + name = "Pure to Ports" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -26834,8 +26095,7 @@ "bja" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 1; - name = "Mix to Ports"; - on = 0 + name = "Mix to Ports" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -26845,8 +26105,7 @@ "bjb" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 1; - name = "Air to Ports"; - on = 0 + name = "Air to Ports" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -26953,11 +26212,8 @@ dir = 4 }, /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 1; - filter_type = "n2"; - name = "nitrogen filter"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ + dir = 1 }, /turf/open/floor/plasteel/red/side{ dir = 6 @@ -26974,7 +26230,7 @@ /obj/structure/closet/crate{ icon_state = "crateopen" }, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/spawner/lootdrop/maintenance, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -27335,7 +26591,7 @@ icon_state = "4-8" }, /obj/item/folder/yellow, -/obj/item/device/gps/mining, +/obj/item/gps/mining, /turf/open/floor/plasteel/brown{ dir = 6 }, @@ -27378,7 +26634,7 @@ icon_state = "4-8" }, /obj/item/clothing/gloves/color/latex, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /obj/item/reagent_containers/spray/cleaner{ pixel_x = -3; pixel_y = 2 @@ -27524,11 +26780,11 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/item/device/taperecorder{ +/obj/item/taperecorder{ pixel_x = 3 }, /obj/item/storage/box/deputy, -/obj/item/device/flashlight/seclite, +/obj/item/flashlight/seclite, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -28177,7 +27433,7 @@ /obj/structure/closet/wardrobe/miner, /obj/effect/decal/cleanable/dirt, /obj/machinery/light, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_y = -26 @@ -28241,7 +27497,7 @@ /area/security/brig) "bmf" = ( /obj/structure/bed/roller, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -28378,7 +27634,7 @@ pixel_x = 32; pixel_y = 32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; pixel_y = 58 @@ -28441,7 +27697,7 @@ /obj/item/storage/secure/safe/HoS{ pixel_x = 32 }, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/hos) "bmD" = ( @@ -28502,12 +27758,7 @@ dir = 8 }, /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 2; - filter_type = "n2o"; - name = "n2o filter"; - on = 1 - }, +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/escape{ dir = 10 @@ -29033,7 +28284,7 @@ "bnN" = ( /obj/structure/table/reinforced, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -29128,7 +28379,7 @@ /area/crew_quarters/heads/hos) "bnX" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" @@ -29284,7 +28535,7 @@ "bop" = ( /obj/structure/table/reinforced, /obj/item/storage/toolbox/mechanical, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/turf_decal/bot, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ @@ -29339,7 +28590,7 @@ /obj/machinery/light{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 28 }, @@ -29684,7 +28935,7 @@ name = "Labor Camp Monitoring"; network = list("labor") }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -30049,10 +29300,9 @@ /area/engine/atmos) "bpR" = ( /obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 8; - name = "Unfiltered & Air to Mix"; - on = 1 + name = "Unfiltered & Air to Mix" }, /turf/open/floor/plasteel/caution{ dir = 1 @@ -30070,8 +29320,7 @@ "bpT" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 2; - name = "Pure to Mix"; - on = 0 + name = "Pure to Mix" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/caution{ @@ -30173,10 +29422,9 @@ /turf/open/floor/plasteel/neutral, /area/engine/atmos) "bqe" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; - name = "Air to External Air Ports"; - on = 1 + name = "Air to External Air Ports" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ @@ -30833,7 +30081,7 @@ "brr" = ( /obj/structure/table/reinforced, /obj/item/folder/red, -/obj/item/device/flashlight/seclite, +/obj/item/flashlight/seclite, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -30858,7 +30106,7 @@ "bru" = ( /obj/structure/table/reinforced, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 }, @@ -31168,10 +30416,9 @@ /area/engine/atmos) "bsa" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; - name = "Mix to Filter"; - on = 1 + name = "Mix to Filter" }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -31209,7 +30456,7 @@ "bse" = ( /obj/structure/table/reinforced, /obj/item/storage/belt/utility, -/obj/item/device/t_scanner, +/obj/item/t_scanner, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 2 }, @@ -31238,10 +30485,9 @@ /area/engine/atmos) "bsh" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 8; - name = "External Waste Ports to Filter"; - on = 1 + name = "External Waste Ports to Filter" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ @@ -31557,7 +30803,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -32029,7 +31275,7 @@ /obj/machinery/ai_status_display{ pixel_y = -32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; pixel_y = -26 @@ -32138,10 +31384,9 @@ /obj/machinery/light{ dir = 4 }, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 1; - name = "Waste to Filter"; - on = 1 + name = "Waste to Filter" }, /turf/open/floor/plasteel/caution{ dir = 4 @@ -32689,8 +31934,7 @@ "bva" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 2; - name = "Mix to Distro"; - on = 0 + name = "Mix to Distro" }, /turf/open/floor/plasteel/neutral, /area/engine/atmos) @@ -32701,7 +31945,6 @@ /area/engine/atmos) "bvc" = ( /obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - icon_state = "freezer"; dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -33276,9 +32519,8 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) "bwr" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ + dir = 1 }, /turf/open/floor/plasteel/arrival{ dir = 10 @@ -33295,10 +32537,9 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bwt" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; name = "Air to Distro"; - on = 1; target_pressure = 101 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -33326,14 +32567,13 @@ "bww" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 4; - name = "Distro to Waste"; - on = 0 + name = "Distro to Waste" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/caution, /area/engine/atmos) "bwx" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -33566,7 +32806,7 @@ /area/hydroponics) "bwO" = ( /obj/machinery/hydroponics/constructable, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -34044,7 +33284,7 @@ /obj/structure/table/reinforced, /obj/item/crowbar/red, /obj/item/wrench, -/obj/item/device/analyzer{ +/obj/item/analyzer{ pixel_x = 7; pixel_y = 3 }, @@ -34209,7 +33449,7 @@ pixel_y = 32 }, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel/dark, /area/bridge) "byk" = ( @@ -34626,7 +33866,7 @@ /area/ai_monitored/turret_protected/ai) "bzc" = ( /obj/structure/table/reinforced, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -35026,7 +34266,7 @@ dir = 4 }, /obj/structure/disposalpipe/segment, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -35101,8 +34341,8 @@ dir = 4 }, /obj/item/wrench, -/obj/item/device/assembly/timer, -/obj/item/device/assembly/signaler, +/obj/item/assembly/timer, +/obj/item/assembly/signaler, /turf/open/floor/plasteel/darkyellow/corner{ dir = 4 }, @@ -35324,7 +34564,7 @@ /obj/structure/cable/white{ icon_state = "1-8" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; broadcasting = 0; freerange = 1; @@ -35514,7 +34754,7 @@ /obj/machinery/power/terminal{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -35753,25 +34993,25 @@ /area/hallway/primary/port) "bBj" = ( /obj/structure/table/reinforced, -/obj/item/device/plant_analyzer, -/obj/item/device/plant_analyzer, -/obj/item/device/radio, +/obj/item/plant_analyzer, +/obj/item/plant_analyzer, +/obj/item/radio, /turf/open/floor/plasteel/vault{ dir = 5 }, /area/storage/tech) "bBk" = ( /obj/structure/table/reinforced, -/obj/item/device/analyzer{ +/obj/item/analyzer{ pixel_x = 7; pixel_y = 3 }, -/obj/item/device/analyzer{ +/obj/item/analyzer{ pixel_x = 7; pixel_y = 3 }, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/signaler, +/obj/item/assembly/signaler, +/obj/item/assembly/signaler, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/storage/tech) @@ -35791,16 +35031,16 @@ "bBn" = ( /obj/structure/table/reinforced, /obj/item/aiModule/reset, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/storage/tech) "bBo" = ( /obj/structure/table/reinforced, /obj/item/bodypart/chest/robot, -/obj/item/device/mmi, -/obj/item/device/mmi, +/obj/item/mmi, +/obj/item/mmi, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -35958,7 +35198,7 @@ /turf/open/floor/plasteel/dark, /area/bridge) "bBG" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26; pixel_y = 26 @@ -35980,7 +35220,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -36001,7 +35241,7 @@ }, /area/bridge) "bBL" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; pixel_y = 26 @@ -36141,7 +35381,7 @@ /turf/open/floor/plasteel/neutral, /area/security/execution/transfer) "bCc" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -36179,7 +35419,7 @@ /turf/open/floor/plasteel, /area/security/brig) "bCg" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -36218,8 +35458,8 @@ /area/security/main) "bCk" = ( /obj/structure/table/reinforced, -/obj/item/device/flashlight/lamp, -/obj/item/device/radio/intercom{ +/obj/item/flashlight/lamp, +/obj/item/radio/intercom{ anyai = 1; broadcasting = 1; freerange = 1; @@ -36638,7 +35878,7 @@ /area/engine/break_room) "bCY" = ( /obj/structure/table/reinforced, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/caution{ dir = 10 }, @@ -36668,7 +35908,7 @@ /obj/structure/table/reinforced, /obj/item/folder/yellow, /obj/item/pen, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -36704,13 +35944,13 @@ /area/hallway/primary/port) "bDe" = ( /obj/structure/table/reinforced, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /obj/item/stack/cable_coil/white{ pixel_x = 3; pixel_y = 3 }, /obj/item/stack/cable_coil/white, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /obj/machinery/light{ dir = 8 }, @@ -36744,7 +35984,7 @@ /area/storage/tech) "bDk" = ( /obj/structure/table/reinforced, -/obj/item/device/aicard, +/obj/item/aicard, /obj/machinery/light{ dir = 4 }, @@ -36758,16 +35998,16 @@ /area/storage/primary) "bDm" = ( /obj/structure/table/reinforced, -/obj/item/device/analyzer{ +/obj/item/analyzer{ pixel_x = 7; pixel_y = 3 }, -/obj/item/device/analyzer{ +/obj/item/analyzer{ pixel_x = 7; pixel_y = 3 }, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/signaler, +/obj/item/assembly/signaler, +/obj/item/assembly/signaler, /obj/machinery/light{ dir = 8 }, @@ -36901,9 +36141,9 @@ /area/storage/primary) "bDt" = ( /obj/structure/table/reinforced, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, /obj/effect/spawner/lootdrop/maintenance, /obj/machinery/light{ dir = 1 @@ -37413,7 +36653,7 @@ /turf/closed/wall, /area/security/brig) "bEf" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; freerange = 1; listening = 0; @@ -37421,14 +36661,14 @@ pixel_x = -10; pixel_y = 22 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 1; listening = 1; name = "Common Channel"; pixel_x = -27 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; broadcasting = 0; freerange = 1; @@ -37527,7 +36767,7 @@ /turf/open/floor/circuit/green, /area/ai_monitored/turret_protected/ai) "bEm" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; freerange = 1; listening = 0; @@ -37535,14 +36775,14 @@ pixel_x = 10; pixel_y = 22 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 1; listening = 1; name = "Common Channel"; pixel_x = 27 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; broadcasting = 0; freerange = 1; @@ -38051,7 +37291,7 @@ /obj/structure/table/reinforced, /obj/item/crowbar, /obj/item/wrench, -/obj/item/device/gps, +/obj/item/gps, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/storage/primary) @@ -38218,7 +37458,7 @@ }, /obj/structure/table/wood, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -38254,7 +37494,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -38440,7 +37680,7 @@ /turf/open/floor/plating, /area/security/warden) "bFQ" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -38464,7 +37704,7 @@ }, /area/ai_monitored/turret_protected/ai) "bFT" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 1; listening = 1; @@ -38472,14 +37712,14 @@ pixel_x = -27; pixel_y = -7 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_y = -27 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; broadcasting = 0; freerange = 1; @@ -38880,7 +38120,7 @@ }, /obj/item/stock_parts/matter_bin, /obj/item/stock_parts/micro_laser, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -38891,7 +38131,7 @@ "bGG" = ( /obj/structure/rack, /obj/item/airlock_painter, -/obj/item/device/toner, +/obj/item/toner, /obj/machinery/status_display{ pixel_x = -32 }, @@ -39041,7 +38281,7 @@ "bHb" = ( /obj/structure/rack, /obj/machinery/light/small, -/obj/item/device/aicard, +/obj/item/aicard, /obj/item/storage/secure/briefcase, /turf/open/floor/plasteel/vault{ dir = 8 @@ -39052,7 +38292,7 @@ dir = 8 }, /obj/structure/table/wood, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 }, @@ -39390,7 +38630,7 @@ /obj/structure/table/reinforced, /obj/item/crowbar, /obj/item/wrench, -/obj/item/device/mmi, +/obj/item/mmi, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -39553,7 +38793,7 @@ "bIc" = ( /obj/structure/table/reinforced, /obj/item/folder/yellow, -/obj/item/device/lightreplacer, +/obj/item/lightreplacer, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -39805,7 +39045,7 @@ "bIA" = ( /obj/structure/table/reinforced, /obj/item/storage/toolbox/mechanical, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/storage/primary) @@ -39966,7 +39206,7 @@ pixel_x = -7; pixel_y = -26 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; pixel_y = -26 @@ -40125,7 +39365,7 @@ icon_state = "1-8" }, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/camera/detective, +/obj/item/camera/detective, /turf/open/floor/plasteel/vault, /area/security/detectives_office) "bJj" = ( @@ -40139,7 +39379,7 @@ areastring = "/area/security/detectives_office"; pixel_y = 24 }, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/item/restraints/handcuffs, /turf/open/floor/plasteel/vault, /area/security/detectives_office) @@ -40414,7 +39654,7 @@ "bJN" = ( /obj/structure/table/reinforced, /obj/item/folder/blue, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -40472,7 +39712,7 @@ "bJT" = ( /obj/structure/table/reinforced, /obj/item/clipboard, -/obj/item/device/gps/engineering{ +/obj/item/gps/engineering{ gpstag = "CE0" }, /obj/machinery/newscaster{ @@ -40731,7 +39971,7 @@ /area/storage/tech) "bKs" = ( /obj/machinery/vending/tool, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -40777,7 +40017,7 @@ pixel_y = 32 }, /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/wood, /area/bridge/meeting_room/council) "bKz" = ( @@ -40838,7 +40078,7 @@ /area/bridge/meeting_room/council) "bKG" = ( /obj/structure/table/wood, -/obj/item/device/paicard, +/obj/item/paicard, /turf/open/floor/wood, /area/bridge/meeting_room/council) "bKH" = ( @@ -40937,7 +40177,7 @@ "bKV" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -41774,7 +41014,7 @@ /area/tcommsat/computer) "bMy" = ( /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -41838,11 +41078,11 @@ /area/tcommsat/computer) "bME" = ( /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, -/obj/item/device/radio{ +/obj/item/radio{ pixel_y = 5 }, /turf/open/floor/plasteel/grimy, @@ -41852,7 +41092,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -42170,14 +41410,14 @@ pixel_x = 3; pixel_y = -3 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, /obj/item/clothing/mask/gas/sechailer, /obj/item/clothing/mask/gas/sechailer, -/obj/item/device/flashlight/seclite, -/obj/item/device/flashlight/seclite, +/obj/item/flashlight/seclite, +/obj/item/flashlight/seclite, /turf/open/floor/plasteel/red/side{ dir = 5 }, @@ -42203,7 +41443,7 @@ pixel_y = -2 }, /obj/structure/table/reinforced, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -42489,7 +41729,7 @@ /area/crew_quarters/heads/chief) "bNR" = ( /obj/structure/table/reinforced, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/neutral, /area/crew_quarters/heads/chief) "bNS" = ( @@ -42527,7 +41767,7 @@ /turf/open/floor/plasteel, /area/engine/break_room) "bNW" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -42639,7 +41879,7 @@ /obj/structure/table/reinforced, /obj/item/clothing/gloves/color/yellow, /obj/item/storage/toolbox/electrical, -/obj/item/device/multitool, +/obj/item/multitool, /obj/machinery/light{ dir = 8 }, @@ -42965,7 +42205,7 @@ /obj/structure/rack, /obj/item/clothing/gloves/color/fyellow, /obj/item/clothing/suit/hazardvest, -/obj/item/device/multitool, +/obj/item/multitool, /obj/structure/extinguisher_cabinet{ pixel_x = -26 }, @@ -42996,7 +42236,7 @@ /turf/open/floor/plasteel/neutral, /area/storage/tools) "bPb" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -43264,7 +42504,7 @@ id = "AI"; pixel_x = -26 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; listening = 0; @@ -43537,10 +42777,10 @@ /area/storage/tech) "bQl" = ( /obj/structure/table/reinforced, -/obj/item/device/assembly/timer, -/obj/item/device/assembly/timer, -/obj/item/device/assembly/voice, -/obj/item/device/assembly/voice, +/obj/item/assembly/timer, +/obj/item/assembly/timer, +/obj/item/assembly/voice, +/obj/item/assembly/voice, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/storage/tech) @@ -43566,7 +42806,7 @@ /obj/structure/table/reinforced, /obj/item/wrench, /obj/item/crowbar, -/obj/item/device/paicard, +/obj/item/paicard, /obj/machinery/newscaster{ pixel_y = -32 }, @@ -43576,18 +42816,18 @@ "bQp" = ( /obj/structure/table/reinforced, /obj/item/storage/toolbox/mechanical, -/obj/item/device/flashlight, -/obj/item/device/flashlight, +/obj/item/flashlight, +/obj/item/flashlight, /turf/open/floor/plasteel/vault{ dir = 5 }, /area/storage/tech) "bQq" = ( /obj/structure/table/reinforced, -/obj/item/device/assembly/timer, -/obj/item/device/assembly/timer, -/obj/item/device/multitool, -/obj/item/device/multitool, +/obj/item/assembly/timer, +/obj/item/assembly/timer, +/obj/item/multitool, +/obj/item/multitool, /obj/machinery/light, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -43612,15 +42852,15 @@ /area/storage/primary) "bQu" = ( /obj/structure/table/reinforced, -/obj/item/device/radio{ +/obj/item/radio{ pixel_x = 5; pixel_y = 5 }, -/obj/item/device/radio{ +/obj/item/radio{ pixel_x = -5; pixel_y = 5 }, -/obj/item/device/radio, +/obj/item/radio, /obj/machinery/firealarm{ dir = 1; pixel_y = -24 @@ -43778,7 +43018,7 @@ pixel_x = -32; pixel_y = -32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = -26 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -43975,7 +43215,7 @@ pixel_y = -26 }, /obj/structure/disposalpipe/segment, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/item/reagent_containers/food/drinks/flask/det, /turf/open/floor/carpet, /area/security/detectives_office) @@ -44402,7 +43642,7 @@ /area/crew_quarters/heads/chief) "bSe" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/ai_status_display{ pixel_y = 32 }, @@ -44622,7 +43862,7 @@ pixel_x = -26; pixel_y = -26 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -44723,7 +43963,7 @@ /obj/machinery/light{ dir = 8 }, -/obj/item/device/flashlight/lamp/green, +/obj/item/flashlight/lamp/green, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/camera{ c_tag = "Bridge - Captain's Office"; @@ -44784,7 +44024,7 @@ "bSQ" = ( /obj/structure/table/wood, /obj/item/storage/photo_album, -/obj/item/device/camera, +/obj/item/camera, /turf/open/floor/wood, /area/crew_quarters/heads/captain) "bSR" = ( @@ -45526,7 +44766,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/item/device/beacon, +/obj/item/beacon, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, @@ -45617,7 +44857,7 @@ pixel_x = 32; pixel_y = 32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -46234,7 +45474,7 @@ /obj/item/screwdriver{ pixel_y = 5 }, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plasteel/red/side{ dir = 4 }, @@ -46402,7 +45642,7 @@ name = "MiniSat Antechamber"; req_access_txt = "16" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -46575,7 +45815,7 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -46898,7 +46138,7 @@ pixel_x = 24 }, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/radio, +/obj/item/radio, /turf/open/floor/plasteel/red/side{ dir = 4 }, @@ -47037,7 +46277,7 @@ pixel_x = -38; pixel_y = 7 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -47163,7 +46403,7 @@ /turf/open/floor/carpet, /area/crew_quarters/heads/captain) "bXf" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = -26 }, /turf/open/floor/plasteel/grimy, @@ -47359,7 +46599,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bXz" = ( -/obj/item/device/beacon, +/obj/item/beacon, /obj/structure/cable/white{ icon_state = "4-8" }, @@ -47648,8 +46888,6 @@ /obj/item/gun/energy/ionrifle, /obj/item/clothing/suit/armor/laserproof, /obj/item/gun/energy/temperature/security, -/obj/item/gun/energy/pumpaction/blaster, -/obj/item/gun/energy/pumpaction/blaster, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -48810,7 +48048,7 @@ dir = 1 }, /obj/machinery/light, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; listening = 0; @@ -48916,7 +48154,7 @@ /obj/item/clipboard, /obj/item/toy/figure/borg, /obj/machinery/light, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; listening = 0; @@ -48937,7 +48175,7 @@ /obj/machinery/ai_status_display{ pixel_y = -32 }, -/obj/item/device/aicard, +/obj/item/aicard, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -49602,9 +48840,9 @@ pixel_x = 3; pixel_y = -3 }, -/obj/item/device/flashlight/seclite, -/obj/item/device/flashlight/seclite, -/obj/item/device/flashlight/seclite, +/obj/item/flashlight/seclite, +/obj/item/flashlight/seclite, +/obj/item/flashlight/seclite, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -49912,7 +49150,7 @@ /area/library) "cco" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -49941,11 +49179,11 @@ /area/library) "cct" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/computer/security/telescreen/entertainment{ pixel_x = -32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -49974,7 +49212,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -50117,7 +49355,7 @@ /obj/structure/table/wood, /obj/item/pinpointer/nuke, /obj/item/disk/nuclear, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -50148,7 +49386,7 @@ /area/crew_quarters/heads/captain/private) "ccQ" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, +/obj/item/flashlight/lamp/green, /obj/structure/window/reinforced{ dir = 8 }, @@ -50276,7 +49514,7 @@ /obj/structure/table/wood, /obj/item/book/manual/wiki/security_space_law, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/taperecorder{ +/obj/item/taperecorder{ pixel_x = 3 }, /obj/item/clothing/glasses/sunglasses, @@ -50366,7 +49604,7 @@ /turf/open/floor/plasteel/neutral, /area/security/brig) "cdp" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; pixel_y = -7 @@ -50495,6 +49733,17 @@ "cdC" = ( /turf/open/floor/plating/airless, /area/engine/engineering) +"cdD" = ( +/obj/structure/cable/white, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/power/emitter{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "cdE" = ( /obj/structure/cable/white{ icon_state = "1-4" @@ -51432,7 +50681,7 @@ }, /area/security/brig) "cfn" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -51554,6 +50803,15 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/engine/engineering) +"cfB" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Fore Starboard"; + dir = 8; + network = list("singularity") + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/engine/engineering) "cfC" = ( /obj/structure/sign/warning/vacuum, /turf/closed/wall/r_wall, @@ -51706,7 +50964,7 @@ /obj/structure/sign/warning/electricshock{ pixel_x = 32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; pixel_y = -26 @@ -51910,7 +51168,7 @@ /area/tcommsat/server) "cgr" = ( /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; freerange = 1; name = "Captain's Intercom"; @@ -52042,7 +51300,7 @@ /area/security/courtroom) "cgE" = ( /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom" }, /turf/open/floor/plasteel/neutral/side{ @@ -52265,7 +51523,7 @@ "cgZ" = ( /obj/structure/table/reinforced, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -52525,6 +51783,10 @@ }, /turf/open/space, /area/space/nearstation) +"chu" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/engine/engineering) "chv" = ( /obj/machinery/door/poddoor/shutters/preopen{ id = "engpa"; @@ -52730,7 +51992,7 @@ /area/library) "chW" = ( /obj/structure/chair/comfy/brown, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -53104,15 +52366,15 @@ dir = 4; pixel_x = -23 }, -/obj/item/device/radio{ +/obj/item/radio{ pixel_x = 5; pixel_y = 5 }, -/obj/item/device/radio{ +/obj/item/radio{ pixel_x = -5; pixel_y = 5 }, -/obj/item/device/radio, +/obj/item/radio, /turf/open/floor/plasteel/red/side{ dir = 10 }, @@ -53265,11 +52527,48 @@ network = list("singularity") }, /turf/open/space, -/area/space/nearstation) +/area/engine/engineering) +"ciZ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/space, +/area/space) +"cja" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space, +/area/space) +"cjb" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/space, +/area/space) +"cjc" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/space, +/area/space) "cjd" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/engine/engineering) +"cje" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) "cjg" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ @@ -53346,7 +52645,7 @@ /area/maintenance/port) "cjr" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/newscaster{ pixel_x = -32 }, @@ -53413,7 +52712,7 @@ /obj/machinery/keycard_auth{ pixel_x = -26 }, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -53600,7 +52899,7 @@ /turf/open/floor/plasteel, /area/security/courtroom) "cjY" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/neutral/side{ dir = 8 }, @@ -53619,7 +52918,7 @@ /area/security/courtroom) "ckb" = ( /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -32 }, @@ -53654,8 +52953,8 @@ /area/security/courtroom) "cke" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, -/obj/item/device/radio/intercom{ +/obj/item/flashlight/lamp, +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -53753,7 +53052,7 @@ "ckn" = ( /obj/structure/table/reinforced, /obj/item/aiModule/reset, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -53802,7 +53101,7 @@ "ckt" = ( /obj/structure/table/reinforced, /obj/item/aiModule/supplied/quarantine, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; listening = 0; @@ -53813,6 +53112,54 @@ dir = 8 }, /area/ai_monitored/turret_protected/ai_upload) +"cku" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space, +/area/space) +"ckv" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) +"ckw" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/space) +"ckx" = ( +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, +/area/space) +"ckz" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/space) +"ckA" = ( +/obj/effect/decal/cleanable/oil, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engpa"; + name = "Engineering Chamber Shutters" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) "ckD" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/neutral, @@ -54179,7 +53526,7 @@ icon_state = "crateopen" }, /obj/effect/decal/cleanable/dirt, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/starboard) @@ -54376,6 +53723,28 @@ dir = 8 }, /area/ai_monitored/turret_protected/ai_upload) +"clR" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/space) +"clS" = ( +/obj/machinery/field/generator{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/space) +"clU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) "clW" = ( /obj/structure/rack, /obj/item/crowbar, @@ -54384,6 +53753,10 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/engineering) +"clX" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/engineering) "clY" = ( /obj/structure/rack, /obj/machinery/button/door{ @@ -54825,7 +54198,7 @@ /area/security/courtroom) "cmU" = ( /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom" }, /turf/open/floor/plasteel/neutral/side, @@ -55213,6 +54586,25 @@ dir = 5 }, /area/aisat) +"cnA" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space, +/area/space) +"cnB" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/space) "cnC" = ( /obj/structure/sign/warning/radiation, /turf/closed/wall/r_wall, @@ -55221,6 +54613,19 @@ /obj/machinery/status_display, /turf/closed/wall/r_wall, /area/engine/engineering) +"cnE" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engpa"; + name = "Engineering Chamber Shutters" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "cnF" = ( /obj/machinery/requests_console{ department = "Chapel Office"; @@ -55232,12 +54637,12 @@ "cnG" = ( /obj/structure/table/reinforced, /obj/item/storage/toolbox/mechanical, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/decal/cleanable/dirt, /obj/machinery/light{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -55308,7 +54713,7 @@ /area/library) "cnR" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/structure/window/reinforced{ dir = 8 }, @@ -55332,11 +54737,11 @@ /area/library) "cnV" = ( /obj/structure/table/wood, -/obj/item/device/camera_film{ +/obj/item/camera_film{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/camera_film, +/obj/item/camera_film, /obj/machinery/firealarm{ dir = 4; pixel_x = 24 @@ -55406,7 +54811,7 @@ /area/crew_quarters/heads/hop) "cod" = ( /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -55423,11 +54828,8 @@ /turf/closed/wall, /area/tcommsat/server) "cof" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1; - min_temperature = 80; - on = 1; - target_temperature = 80 +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ + dir = 1 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, @@ -55464,11 +54866,8 @@ /turf/open/floor/plasteel, /area/tcommsat/server) "coj" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1; - min_temperature = 80; - on = 1; - target_temperature = 80 +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ + dir = 1 }, /obj/machinery/camera{ c_tag = "Telecomms - Cooling Room"; @@ -55576,7 +54975,7 @@ /area/hallway/primary/central) "cot" = ( /obj/item/twohanded/required/kirbyplants/random, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -55892,6 +55291,15 @@ }, /turf/open/floor/plating, /area/engine/engineering) +"cpc" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/engineering) "cpd" = ( /obj/machinery/button/door{ id = "engpa"; @@ -55939,7 +55347,7 @@ /obj/item/stack/sheet/mineral/plasma{ amount = 20 }, -/obj/item/device/gps/engineering{ +/obj/item/gps/engineering{ gpstag = "ENG0" }, /obj/effect/turf_decal/bot, @@ -55980,7 +55388,7 @@ "cpo" = ( /obj/structure/tank_dispenser, /obj/effect/decal/cleanable/dirt, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -56076,11 +55484,11 @@ /area/library) "cpA" = ( /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, -/obj/item/device/flashlight/lamp/green, +/obj/item/flashlight/lamp/green, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/hop) "cpB" = ( @@ -56188,7 +55596,7 @@ "cpN" = ( /obj/structure/rack, /obj/item/tank/internals/oxygen, -/obj/item/device/radio, +/obj/item/radio, /obj/machinery/firealarm{ dir = 1; pixel_y = -26 @@ -56423,6 +55831,18 @@ /obj/structure/lattice, /turf/open/space, /area/space/nearstation) +"cqo" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating/airless, +/area/space) +"cqp" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating/airless, +/area/space) "cqq" = ( /obj/structure/cable{ icon_state = "1-2" @@ -56432,10 +55852,22 @@ }, /turf/open/floor/plating, /area/engine/engineering) +"cqr" = ( +/obj/structure/particle_accelerator/particle_emitter/left{ + icon_state = "emitter_left"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) "cqs" = ( /obj/item/stack/cable_coil/red, /turf/open/floor/plating, /area/engine/engineering) +"cqt" = ( +/obj/structure/cable, +/obj/machinery/particle_accelerator/control_box, +/turf/open/floor/plating, +/area/engine/engineering) "cqu" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ @@ -56812,7 +56244,7 @@ /area/security/courtroom) "crm" = ( /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom" }, /turf/open/floor/plasteel/vault, @@ -56981,6 +56413,38 @@ dir = 5 }, /area/aisat) +"crI" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, +/area/space) +"crJ" = ( +/obj/machinery/the_singularitygen/tesla, +/turf/open/floor/plating/airless, +/area/space) +"crK" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) +"crL" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) "crM" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -57000,6 +56464,13 @@ }, /turf/open/floor/plating, /area/engine/engineering) +"crO" = ( +/obj/structure/particle_accelerator/fuel_chamber{ + icon_state = "fuel_chamber"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) "crP" = ( /obj/machinery/light{ dir = 4 @@ -57225,7 +56696,7 @@ "csl" = ( /obj/structure/table/wood, /obj/item/storage/bag/books, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/structure/noticeboard{ dir = 8; pixel_x = 32 @@ -57381,7 +56852,7 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -57757,6 +57228,31 @@ dir = 5 }, /area/aisat) +"ctm" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating/airless, +/area/space) +"ctn" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/turf/open/floor/plating/airless, +/area/space) +"cto" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating/airless, +/area/space) +"ctp" = ( +/obj/structure/particle_accelerator/particle_emitter/right{ + icon_state = "emitter_right"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) "ctq" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -57955,7 +57451,7 @@ dir = 8; pixel_x = 24 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -58196,7 +57692,7 @@ /obj/structure/cable/white{ icon_state = "1-8" }, -/obj/item/device/beacon, +/obj/item/beacon, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -58412,6 +57908,17 @@ }, /turf/open/floor/plasteel/neutral, /area/crew_quarters/locker) +"cuB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/computer/cryopod{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/locker) "cuC" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -58460,7 +57967,7 @@ icon_state = "crateopen" }, /obj/item/clothing/shoes/jackboots, -/obj/item/device/radio, +/obj/item/radio, /obj/item/storage/secure/briefcase, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -58552,6 +58059,13 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/engine/engineering) +"cuT" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/engine/engineering) "cuU" = ( /obj/machinery/button/door{ id = "engpa"; @@ -59061,11 +58575,11 @@ /area/crew_quarters/locker) "cvV" = ( /obj/structure/table, -/obj/item/device/camera_film{ +/obj/item/camera_film{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/camera_film, +/obj/item/camera_film, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -59073,7 +58587,7 @@ /area/crew_quarters/locker) "cvW" = ( /obj/structure/table, -/obj/item/device/camera, +/obj/item/camera, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, @@ -59308,7 +58822,7 @@ /area/hallway/primary/central) "cwB" = ( /obj/item/stack/cable_coil, -/obj/item/device/multitool, +/obj/item/multitool, /obj/structure/table/reinforced, /turf/open/floor/plasteel/vault{ dir = 8 @@ -59520,7 +59034,7 @@ amount = 25 }, /obj/item/storage/toolbox/emergency, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/structure/extinguisher_cabinet{ pixel_x = 26 }, @@ -59649,6 +59163,15 @@ }, /turf/open/floor/plasteel/neutral/corner, /area/crew_quarters/locker) +"cxr" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/cryopod, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/locker) "cxs" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ @@ -59825,7 +59348,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -60416,6 +59939,15 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral/corner, /area/crew_quarters/locker) +"cyW" = ( +/obj/machinery/status_display{ + pixel_x = 32 + }, +/obj/machinery/cryopod, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/locker) "cyX" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -60553,6 +60085,28 @@ dir = 4 }, /area/crew_quarters/fitness/recreation) +"czo" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/space) +"czp" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, +/area/space) +"czr" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/space) "czu" = ( /obj/structure/cable/white{ icon_state = "0-2" @@ -60655,7 +60209,7 @@ /area/library) "czE" = ( /obj/structure/table/wood, -/obj/item/device/paicard, +/obj/item/paicard, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment{ dir = 4 @@ -60726,10 +60280,10 @@ /obj/machinery/light, /obj/structure/table/wood, /obj/item/folder, -/obj/item/device/laser_pointer{ +/obj/item/laser_pointer{ pixel_x = 3 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -60737,8 +60291,8 @@ /area/library) "czN" = ( /obj/structure/table/wood, -/obj/item/device/taperecorder, -/obj/item/device/camera, +/obj/item/taperecorder, +/obj/item/camera, /obj/machinery/ai_status_display{ pixel_y = -32 }, @@ -60805,7 +60359,7 @@ /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "czU" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/neutral, /area/ai_monitored/storage/eva) "czV" = ( @@ -61141,7 +60695,41 @@ network = list("singularity") }, /turf/open/space, -/area/space/nearstation) +/area/engine/engineering) +"cAH" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/space, +/area/space) +"cAI" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/space, +/area/space) +"cAJ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/space, +/area/space) +"cAK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) "cAL" = ( /obj/machinery/rnd/production/protolathe/department/engineering, /obj/effect/turf_decal/stripes/line{ @@ -61245,7 +60833,7 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/table/reinforced, /obj/item/storage/toolbox/mechanical, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/maintenance/port) @@ -61511,7 +61099,7 @@ /obj/machinery/light{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -61566,7 +61154,7 @@ /area/gateway) "cBG" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -61754,7 +61342,7 @@ /area/crew_quarters/locker) "cBW" = ( /obj/structure/table, -/obj/item/device/paicard, +/obj/item/paicard, /obj/structure/cable/white{ icon_state = "4-8" }, @@ -61833,7 +61421,7 @@ /area/crew_quarters/dorms) "cCe" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/structure/sign/nanotrasen{ pixel_x = -32 }, @@ -61855,7 +61443,7 @@ /obj/structure/closet/secure_closet/personal/cabinet, /obj/item/clothing/suit/jacket/letterman_nanotrasen, /obj/item/clothing/suit/toggle/lawyer, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; pixel_y = 26 @@ -61890,7 +61478,7 @@ name = "trenchcoat" }, /obj/item/clothing/suit/toggle/lawyer/purple, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; pixel_y = 26 @@ -62601,7 +62189,7 @@ /turf/open/floor/wood, /area/crew_quarters/dorms) "cDD" = ( -/obj/item/device/flashlight/seclite, +/obj/item/flashlight/seclite, /turf/open/floor/wood{ icon_state = "wood-broken3" }, @@ -62714,6 +62302,15 @@ }, /turf/open/floor/plating/airless, /area/engine/engineering) +"cDV" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Aft Starboard"; + dir = 8; + network = list("singularity") + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/engine/engineering) "cDW" = ( /obj/machinery/light{ dir = 8 @@ -62906,7 +62503,7 @@ /area/maintenance/port) "cEp" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/dark, /area/library) "cEq" = ( @@ -62922,7 +62519,7 @@ /area/library) "cEr" = ( /obj/item/twohanded/required/kirbyplants/random, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -63168,9 +62765,9 @@ "cES" = ( /obj/structure/table, /obj/item/storage/belt, -/obj/item/device/radio, -/obj/item/device/radio, -/obj/item/device/radio, +/obj/item/radio, +/obj/item/radio, +/obj/item/radio, /obj/machinery/firealarm{ dir = 8; pixel_x = -24 @@ -63537,7 +63134,7 @@ /area/crew_quarters/dorms) "cFA" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, +/obj/item/flashlight/lamp/green, /obj/machinery/newscaster{ pixel_x = -32 }, @@ -63590,6 +63187,19 @@ name = "Holodeck Projector Floor" }, /area/holodeck/rec_center) +"cFH" = ( +/obj/structure/cable/white{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/power/emitter{ + anchored = 1; + dir = 1; + icon_state = "emitter"; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "cFI" = ( /obj/structure/cable/white{ icon_state = "2-4" @@ -63816,8 +63426,8 @@ /obj/item/folder/yellow, /obj/machinery/light, /obj/structure/table/reinforced, -/obj/item/device/gps, -/obj/item/device/gps, +/obj/item/gps, +/obj/item/gps, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -63837,7 +63447,7 @@ /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "cGh" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -63877,7 +63487,7 @@ /area/ai_monitored/storage/eva) "cGn" = ( /obj/item/storage/belt, -/obj/item/device/radio, +/obj/item/radio, /obj/machinery/light, /obj/structure/table/reinforced, /turf/open/floor/plasteel/vault{ @@ -63960,7 +63570,7 @@ /area/bridge/showroom/corporate) "cGv" = ( /obj/structure/table/wood, -/obj/item/device/paicard, +/obj/item/paicard, /turf/open/floor/plasteel/grimy, /area/bridge/showroom/corporate) "cGw" = ( @@ -63975,7 +63585,7 @@ desc = "A replica beret resembling that of a special operations officer under Nanotrasen."; name = "replica officer's beret" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -64961,7 +64571,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -65636,7 +65246,7 @@ /obj/structure/closet/crate{ icon_state = "crateopen" }, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/spawner/lootdrop/maintenance, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -67408,7 +67018,7 @@ /obj/structure/closet/crate{ icon_state = "crateopen" }, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port) @@ -67627,7 +67237,7 @@ /area/medical/storage) "cNN" = ( /obj/structure/closet/secure_closet/medical3, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -67991,7 +67601,7 @@ pixel_y = 3 }, /obj/item/stack/cable_coil/white, -/obj/item/device/multitool, +/obj/item/multitool, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/maintenance/department/electrical) @@ -68202,7 +67812,7 @@ "cPa" = ( /obj/structure/table, /obj/item/folder/white, -/obj/item/device/paicard, +/obj/item/paicard, /turf/open/floor/plasteel/whitepurple/corner{ dir = 1 }, @@ -68219,8 +67829,8 @@ "cPc" = ( /obj/structure/table, /obj/item/stack/cable_coil/white, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/timer{ +/obj/item/assembly/igniter, +/obj/item/assembly/timer{ pixel_x = 3; pixel_y = 3 }, @@ -68364,7 +67974,7 @@ "cPx" = ( /obj/structure/table, /obj/item/storage/firstaid/regular, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_x = 28 @@ -68604,7 +68214,7 @@ /area/crew_quarters/dorms) "cPR" = ( /obj/structure/dresser, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; pixel_y = 26 @@ -68630,7 +68240,7 @@ /area/crew_quarters/dorms) "cPT" = ( /obj/item/twohanded/required/kirbyplants/random, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; pixel_y = 26 @@ -68662,8 +68272,8 @@ /area/crew_quarters/dorms) "cPW" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, -/obj/item/device/radio/intercom{ +/obj/item/flashlight/lamp, +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; pixel_y = 26 @@ -68966,7 +68576,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -68977,7 +68587,7 @@ "cQG" = ( /obj/structure/table/reinforced, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/radio, +/obj/item/radio, /obj/machinery/ai_status_display{ pixel_y = 32 }, @@ -68991,7 +68601,7 @@ "cQH" = ( /obj/structure/table, /obj/item/folder/white, -/obj/item/device/assembly/infra, +/obj/item/assembly/infra, /turf/open/floor/plasteel/whitepurple/corner{ dir = 1 }, @@ -69467,7 +69077,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -69873,7 +69483,7 @@ }, /obj/structure/table/reinforced, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/radio, +/obj/item/radio, /obj/machinery/button/door{ desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; @@ -69900,7 +69510,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -69949,7 +69559,7 @@ pixel_y = 3 }, /obj/item/storage/box/beakers, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -70182,7 +69792,7 @@ /area/maintenance/department/electrical) "cTq" = ( /obj/structure/table/reinforced, -/obj/item/device/analyzer{ +/obj/item/analyzer{ pixel_x = 7; pixel_y = 3 }, @@ -70411,11 +70021,8 @@ /turf/open/floor/plasteel, /area/science/xenobiology) "cTR" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1; - min_temperature = 80; - on = 1; - target_temperature = 80 +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ + dir = 1 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -70443,7 +70050,7 @@ pixel_y = 3 }, /obj/item/storage/box/syringes, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 32 }, @@ -70992,7 +70599,7 @@ /obj/machinery/status_display{ pixel_y = -32 }, -/obj/item/device/paicard, +/obj/item/paicard, /turf/open/floor/wood, /area/crew_quarters/dorms) "cUW" = ( @@ -71302,7 +70909,7 @@ pixel_y = -3; req_access_txt = "55" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 5 }, @@ -72196,7 +71803,7 @@ /obj/item/clipboard, /obj/item/electronics/airlock, /obj/item/stack/sheet/glass, -/obj/item/device/assembly/signaler, +/obj/item/assembly/signaler, /obj/machinery/airalarm{ dir = 1; pixel_y = -22 @@ -72244,8 +71851,8 @@ /area/science/research) "cXw" = ( /obj/structure/table, -/obj/item/device/gps, -/obj/item/device/assembly/flash/handheld, +/obj/item/gps, +/obj/item/assembly/flash/handheld, /obj/machinery/status_display{ pixel_y = -32 }, @@ -74188,11 +73795,11 @@ /area/crew_quarters/fitness/recreation) "dbI" = ( /obj/structure/table, -/obj/item/device/camera_film{ +/obj/item/camera_film{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/camera_film, +/obj/item/camera_film, /turf/open/floor/plasteel/neutral, /area/crew_quarters/fitness/recreation) "dbJ" = ( @@ -74407,6 +74014,7 @@ pixel_y = -32 }, /obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/bz, /turf/open/floor/plasteel, /area/science/xenobiology) "dcf" = ( @@ -74761,18 +74369,18 @@ /area/medical/chemistry) "dcN" = ( /obj/structure/table/glass, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/timer{ +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/timer{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = 3; pixel_y = 3 }, @@ -74825,7 +74433,7 @@ /obj/machinery/computer/crew{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -75092,7 +74700,7 @@ /area/crew_quarters/fitness/recreation) "ddA" = ( /obj/structure/table/wood, -/obj/item/device/camera, +/obj/item/camera, /obj/structure/sign/nanotrasen{ pixel_x = 32; pixel_y = -32 @@ -75265,7 +74873,7 @@ "ddV" = ( /obj/structure/table/reinforced, /obj/item/clothing/gloves/color/latex, -/obj/item/device/slime_scanner, +/obj/item/slime_scanner, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/science/xenobiology) @@ -75290,7 +74898,7 @@ /turf/open/floor/plating, /area/security/checkpoint/science/research) "ddY" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -32 }, @@ -75355,7 +74963,7 @@ /obj/item/stock_parts/capacitor, /obj/item/stock_parts/manipulator, /obj/item/stock_parts/manipulator, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -76458,7 +76066,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -77133,7 +76741,7 @@ /turf/open/floor/plasteel/neutral, /area/science/research) "dhZ" = ( -/obj/item/device/beacon, +/obj/item/beacon, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -77369,7 +76977,7 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/item/device/beacon, +/obj/item/beacon, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/whiteblue, /area/medical/medbay/central) @@ -77678,7 +77286,7 @@ /area/crew_quarters/abandoned_gambling_den) "djn" = ( /obj/structure/table/reinforced, -/obj/item/device/multitool, +/obj/item/multitool, /obj/item/screwdriver, /obj/machinery/computer/security/telescreen{ desc = "Used for watching the RD's goons from the safety of his office."; @@ -77794,7 +77402,7 @@ "djB" = ( /obj/structure/table/reinforced, /obj/item/storage/toolbox/mechanical, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/turf_decal/bot, /obj/structure/sign/poster/official/science{ pixel_x = -32 @@ -78136,7 +77744,7 @@ /obj/structure/cable/white{ icon_state = "1-4" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -78475,7 +78083,7 @@ "dkT" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table/wood, -/obj/item/device/modular_computer/tablet/preset/cheap, +/obj/item/modular_computer/tablet/preset/cheap, /turf/open/floor/plating, /area/maintenance/starboard/aft) "dkU" = ( @@ -78694,7 +78302,7 @@ pixel_y = 3 }, /obj/item/stack/cable_coil/white, -/obj/item/device/geiger_counter, +/obj/item/geiger_counter, /obj/effect/turf_decal/bot, /obj/structure/sign/poster/official/cleanliness{ pixel_x = 32 @@ -79318,7 +78926,7 @@ "dmS" = ( /obj/structure/table/reinforced, /obj/item/folder/white, -/obj/item/device/paicard, +/obj/item/paicard, /obj/machinery/airalarm{ dir = 4; pixel_x = -23 @@ -79388,7 +78996,7 @@ dir = 4; pixel_x = -23 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -79734,7 +79342,7 @@ "dnN" = ( /obj/structure/table, /obj/item/storage/toolbox/mechanical, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/hallway/secondary/construction) @@ -79879,7 +79487,7 @@ /area/crew_quarters/abandoned_gambling_den) "dog" = ( /obj/structure/table/reinforced, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -80071,7 +79679,7 @@ /obj/item/stack/sheet/mineral/plasma{ amount = 5 }, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -80269,7 +79877,7 @@ /area/crew_quarters/heads/hor) "doM" = ( /obj/structure/table/reinforced, -/obj/item/device/aicard, +/obj/item/aicard, /obj/item/circuitboard/aicore, /obj/structure/disposalpipe/sorting/mail{ dir = 4; @@ -80978,7 +80586,7 @@ "dqn" = ( /obj/structure/table/reinforced, /obj/item/book/manual/experimentor, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -81366,7 +80974,7 @@ /area/maintenance/department/medical) "dqY" = ( /obj/structure/rack, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /obj/item/clothing/glasses/eyepatch, /turf/open/floor/plating{ icon_state = "panelscorched" @@ -81577,7 +81185,7 @@ /area/crew_quarters/abandoned_gambling_den) "drz" = ( /obj/structure/table/reinforced, -/obj/item/device/multitool, +/obj/item/multitool, /obj/item/screwdriver, /obj/machinery/computer/security/telescreen{ desc = "Used for watching the RD's goons from the safety of his office."; @@ -81958,7 +81566,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -82426,7 +82034,7 @@ "dtz" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -82755,9 +82363,9 @@ /area/crew_quarters/abandoned_gambling_den) "duk" = ( /obj/structure/table/wood, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/timer{ +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/timer{ pixel_x = 3; pixel_y = 3 }, @@ -82785,8 +82393,8 @@ /area/science/research/abandoned) "duo" = ( /obj/structure/table/reinforced, -/obj/item/device/mmi, -/obj/item/device/assembly/prox_sensor, +/obj/item/mmi, +/obj/item/assembly/prox_sensor, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/science/research/abandoned) @@ -82825,7 +82433,7 @@ /obj/structure/table/reinforced, /obj/item/stack/sheet/metal/fifty, /obj/item/stack/sheet/glass/fifty, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/science/research/abandoned) @@ -82919,7 +82527,7 @@ /turf/open/floor/plasteel/neutral, /area/science/mixing) "duH" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; pixel_y = 26 @@ -83176,7 +82784,7 @@ /area/medical/genetics) "dvj" = ( /obj/structure/table/reinforced, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -83302,7 +82910,7 @@ "dvu" = ( /obj/structure/table/glass, /obj/item/folder/white, -/obj/item/device/flashlight/pen, +/obj/item/flashlight/pen, /obj/item/clothing/neck/stethoscope, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) @@ -83315,7 +82923,7 @@ /obj/structure/table/glass, /obj/item/folder/blue, /obj/item/clothing/glasses/hud/health, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -83534,7 +83142,7 @@ /area/hallway/secondary/construction) "dvO" = ( /obj/structure/table, -/obj/item/device/analyzer{ +/obj/item/analyzer{ pixel_x = 7; pixel_y = 3 }, @@ -83554,7 +83162,7 @@ /obj/structure/rack, /obj/effect/decal/cleanable/dirt, /obj/item/weldingtool, -/obj/item/device/assembly/voice, +/obj/item/assembly/voice, /obj/item/clothing/head/welding, /obj/effect/spawner/lootdrop/maintenance, /obj/effect/turf_decal/stripes/line{ @@ -83723,9 +83331,8 @@ }, /area/science/mixing) "dwk" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -83768,11 +83375,11 @@ icon_state = "4-8" }, /obj/item/storage/secure/briefcase, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/machinery/newscaster{ pixel_y = -32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26; pixel_y = -26 @@ -84333,7 +83940,7 @@ /obj/machinery/light{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -84967,7 +84574,7 @@ /obj/machinery/computer/med_data{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -85092,7 +84699,7 @@ /area/hallway/secondary/construction) "dyR" = ( /obj/structure/table, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -85137,7 +84744,7 @@ /area/crew_quarters/abandoned_gambling_den) "dyY" = ( /obj/structure/table/wood/poker, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) "dyZ" = ( @@ -85447,15 +85054,15 @@ /area/science/robotics/lab) "dzG" = ( /obj/item/paper_bin, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = 5; pixel_y = 7 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = 5; pixel_y = 7 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = 5; pixel_y = 7 }, @@ -85588,7 +85195,7 @@ /obj/structure/table/reinforced, /obj/item/storage/box/monkeycubes, /obj/item/storage/box/monkeycubes, -/obj/item/device/radio/headset/headset_medsci, +/obj/item/radio/headset/headset_medsci, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -85642,7 +85249,7 @@ name = "medbay camera" }, /obj/item/clipboard, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /obj/structure/table, /turf/open/floor/plasteel/whiteblue/corner, /area/medical/medbay/central) @@ -85705,7 +85312,7 @@ }, /area/crew_quarters/heads/cmo) "dAg" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -85762,7 +85369,7 @@ /obj/structure/cable/white{ icon_state = "2-4" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -86090,7 +85697,7 @@ }, /area/medical/genetics) "dAT" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -86336,7 +85943,7 @@ /area/medical/medbay/central) "dBr" = ( /obj/item/folder/white, -/obj/item/device/flashlight/pen, +/obj/item/flashlight/pen, /obj/item/clothing/neck/stethoscope, /obj/structure/table, /turf/open/floor/plasteel/vault, @@ -86687,16 +86294,16 @@ /area/maintenance/port) "dCa" = ( /obj/structure/table/reinforced, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -32 }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = 6; pixel_y = 6 }, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter, +/obj/item/assembly/igniter{ pixel_x = -6; pixel_y = -6 }, @@ -86795,11 +86402,11 @@ /area/crew_quarters/heads/hor) "dCm" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/newscaster{ pixel_y = -32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -86827,8 +86434,8 @@ /obj/item/bodypart/l_arm/robot{ pixel_x = -3 }, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/structure/table/reinforced, /obj/machinery/light_switch{ pixel_x = -38; @@ -86837,10 +86444,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/science/robotics/lab) @@ -87080,7 +86687,7 @@ /obj/structure/closet/crate{ icon_state = "crateopen" }, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/spawner/lootdrop/maintenance, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -87212,7 +86819,7 @@ amount = 23 }, /obj/item/stack/cable_coil/white, -/obj/item/device/flashlight/seclite, +/obj/item/flashlight/seclite, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/science/research/abandoned) @@ -87264,19 +86871,19 @@ /turf/open/floor/plasteel/neutral, /area/maintenance/port) "dDn" = ( -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -4; pixel_y = 1 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = 8; pixel_y = 9 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = 9; pixel_y = -2 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_y = 2 }, /obj/structure/table/reinforced, @@ -87289,19 +86896,19 @@ /turf/open/floor/plasteel, /area/science/mixing) "dDo" = ( -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = 5; pixel_y = 4 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = -4; pixel_y = 2 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = 6; pixel_y = -4 }, -/obj/item/device/assembly/timer, +/obj/item/assembly/timer, /obj/structure/table/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/stripes/line{ @@ -87324,7 +86931,6 @@ /area/science/mixing) "dDr" = ( /obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - icon_state = "freezer"; dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -87378,7 +86984,7 @@ /obj/machinery/light{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -87701,7 +87307,7 @@ /area/medical/medbay/central) "dEe" = ( /obj/item/twohanded/required/kirbyplants/random, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -87782,18 +87388,18 @@ }, /area/maintenance/port) "dEq" = ( -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve{ pixel_x = -5 }, -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve{ pixel_x = -5 }, -/obj/item/device/transfer_valve, -/obj/item/device/transfer_valve, -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve, +/obj/item/transfer_valve, +/obj/item/transfer_valve{ pixel_x = 5 }, -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve{ pixel_x = 5 }, /obj/structure/table/reinforced, @@ -87874,7 +87480,7 @@ /turf/open/floor/plasteel, /area/science/storage) "dEy" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -87927,11 +87533,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - min_temperature = 80; - on = 1; - target_temperature = 80 - }, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -87961,9 +87563,9 @@ /obj/item/storage/firstaid, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/bot, -/obj/item/device/healthanalyzer, -/obj/item/device/healthanalyzer, -/obj/item/device/paicard, +/obj/item/healthanalyzer, +/obj/item/healthanalyzer, +/obj/item/paicard, /turf/open/floor/plasteel, /area/science/robotics/lab) "dEI" = ( @@ -88097,7 +87699,7 @@ /obj/structure/table, /obj/effect/decal/cleanable/dirt, /obj/item/storage/backpack/duffelbag/med, -/obj/item/device/flashlight/pen, +/obj/item/flashlight/pen, /turf/open/floor/plating, /area/maintenance/department/medical/morgue) "dFe" = ( @@ -88216,7 +87818,7 @@ /area/crew_quarters/theatre/abandoned) "dFs" = ( /obj/structure/table/wood, -/obj/item/device/instrument/guitar, +/obj/item/instrument/guitar, /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plasteel/vault{ dir = 5 @@ -88264,7 +87866,7 @@ pixel_y = 3 }, /obj/item/book/manual/detective, -/obj/item/device/camera/detective, +/obj/item/camera/detective, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -88283,7 +87885,7 @@ /obj/structure/chair/office/dark{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26; pixel_y = 32 @@ -88374,18 +87976,18 @@ /turf/closed/wall, /area/science/mixing) "dFI" = ( -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_y = 8 }, -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_x = -8; pixel_y = 5 }, -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_x = 6; pixel_y = 5 }, -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_x = -2; pixel_y = -2 }, @@ -89250,7 +88852,7 @@ /obj/item/screwdriver{ pixel_y = 5 }, -/obj/item/device/multitool, +/obj/item/multitool, /obj/item/clothing/head/welding, /obj/machinery/light{ dir = 8 @@ -89680,7 +89282,7 @@ icon_state = "1-2" }, /obj/effect/landmark/blobstart, -/obj/item/device/beacon, +/obj/item/beacon, /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -89935,7 +89537,7 @@ /obj/item/stock_parts/cell/high, /obj/item/stock_parts/cell/high, /obj/machinery/cell_charger, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -89970,9 +89572,9 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/item/device/mmi, -/obj/item/device/mmi, -/obj/item/device/mmi, +/obj/item/mmi, +/obj/item/mmi, +/obj/item/mmi, /obj/structure/sign/departments/medbay/alt{ pixel_y = -32 }, @@ -90153,7 +89755,7 @@ /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "dJj" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -90172,7 +89774,7 @@ /area/crew_quarters/heads/cmo) "dJl" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/structure/sign/nanotrasen{ pixel_x = 32 }, @@ -90513,7 +90115,7 @@ "dJW" = ( /obj/machinery/disposal/bin, /obj/effect/decal/cleanable/dirt, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -32 }, @@ -90737,7 +90339,7 @@ /area/crew_quarters/theatre/abandoned) "dKs" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/airalarm{ dir = 4; pixel_x = -23 @@ -90766,7 +90368,7 @@ /obj/structure/table/wood, /obj/item/clothing/gloves/color/black, /obj/item/storage/box/evidence, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/machinery/airalarm{ dir = 8; pixel_x = 24 @@ -91370,7 +90972,7 @@ /turf/open/floor/plating/airless, /area/science/test_area) "dLF" = ( -/obj/item/device/beacon, +/obj/item/beacon, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/airless, /area/science/test_area) @@ -91557,7 +91159,7 @@ /area/science/research) "dMe" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -92119,7 +91721,7 @@ /turf/open/floor/plating, /area/crew_quarters/theatre/abandoned) "dNh" = ( -/obj/item/device/instrument/violin, +/obj/item/instrument/violin, /obj/structure/table/wood, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -92733,7 +92335,7 @@ /obj/machinery/light{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -93498,7 +93100,7 @@ pixel_x = -32 }, /obj/item/paper_bin, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -93581,7 +93183,7 @@ "dQw" = ( /obj/structure/table/wood, /obj/effect/decal/cleanable/dirt, -/obj/item/device/paicard, +/obj/item/paicard, /turf/open/floor/carpet, /area/library/abandoned) "dQx" = ( @@ -93740,7 +93342,7 @@ /turf/open/floor/plasteel/neutral, /area/hallway/primary/aft) "dQR" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/neutral, /area/hallway/primary/aft) "dQU" = ( @@ -93991,7 +93593,7 @@ pixel_y = 32 }, /obj/structure/table/glass, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -94014,7 +93616,7 @@ dir = 8; pixel_y = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -94296,7 +93898,7 @@ dir = 8 }, /obj/item/crowbar, -/obj/item/device/radio, +/obj/item/radio, /obj/structure/sign/poster/official/do_not_question{ pixel_y = -32 }, @@ -94961,7 +94563,7 @@ /obj/structure/table/wood, /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/effect/decal/cleanable/dirt, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plating, /area/library/abandoned) "dTv" = ( @@ -95295,7 +94897,7 @@ /area/chapel/main) "dUq" = ( /obj/item/twohanded/required/kirbyplants/random, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -95503,7 +95105,7 @@ /obj/structure/closet/crate{ icon_state = "crateopen" }, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/spawner/lootdrop/maintenance, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, @@ -95616,7 +95218,7 @@ icon_state = "1-2" }, /obj/item/clothing/gloves/color/latex, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /obj/item/clothing/glasses/hud/health, /obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel, @@ -95673,7 +95275,7 @@ /area/medical/virology) "dVz" = ( /obj/structure/closet/crate/freezer/blood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -95691,7 +95293,7 @@ }, /area/medical/virology) "dVC" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -95780,7 +95382,7 @@ /obj/structure/table, /obj/item/wrench, /obj/item/crowbar, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -96762,7 +96364,7 @@ }, /obj/item/stack/packageWrap, /obj/item/hand_labeler, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -96776,7 +96378,7 @@ "dYj" = ( /obj/structure/table/wood, /obj/effect/decal/cleanable/dirt, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plating, /area/library/abandoned) "dYk" = ( @@ -96845,7 +96447,7 @@ /obj/structure/table/wood, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /turf/open/floor/plasteel/dark, /area/library/abandoned) "dYu" = ( @@ -97588,7 +97190,6 @@ height = 18; id = "emergency_home"; name = "DeltaStation emergency evac bay"; - turf_type = /turf/open/space; width = 30 }, /turf/open/space/basic, @@ -97737,7 +97338,7 @@ }, /area/chapel/office) "eav" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -97872,7 +97473,7 @@ }, /area/medical/virology) "eaR" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -98387,7 +97988,7 @@ /area/chapel/main) "ebW" = ( /obj/structure/table/wood/fancy, -/obj/item/device/flashlight/lantern, +/obj/item/flashlight/lantern, /turf/open/floor/plasteel/grimy, /area/chapel/main) "ebX" = ( @@ -98517,7 +98118,7 @@ }, /obj/item/stack/cable_coil/white, /obj/item/stack/cable_coil/white, -/obj/item/device/multitool, +/obj/item/multitool, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/vault{ dir = 5 @@ -98725,7 +98326,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/item/tank/internals/oxygen, -/obj/item/device/radio, +/obj/item/radio, /obj/item/clothing/mask/breath, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -98942,7 +98543,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/item/tank/internals/oxygen, -/obj/item/device/radio, +/obj/item/radio, /obj/item/clothing/mask/breath, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -99295,11 +98896,11 @@ pixel_x = 26 }, /obj/item/storage/toolbox/mechanical, -/obj/item/device/flashlight, +/obj/item/flashlight, /turf/open/floor/plating, /area/maintenance/port/aft) "edS" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -99540,8 +99141,8 @@ /area/maintenance/port/aft) "eev" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, -/obj/item/device/radio/intercom{ +/obj/item/flashlight/lamp, +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -99581,11 +99182,11 @@ /area/chapel/office) "eez" = ( /obj/structure/table/wood, -/obj/item/device/camera_film{ +/obj/item/camera_film{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/camera_film, +/obj/item/camera_film, /obj/machinery/firealarm{ dir = 4; pixel_x = 24 @@ -99625,7 +99226,7 @@ /area/chapel/office) "eeD" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -99954,7 +99555,7 @@ }, /obj/item/crowbar, /obj/item/wrench, -/obj/item/device/radio, +/obj/item/radio, /turf/open/floor/plasteel/red/side{ dir = 8 }, @@ -100333,7 +99934,7 @@ }, /obj/item/restraints/handcuffs, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel/red/side, /area/security/checkpoint/escape) "egq" = ( @@ -100486,7 +100087,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "ehG" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -100555,6 +100156,13 @@ }, /turf/open/floor/plasteel/whitepurple/side, /area/science/misc_lab) +"eIf" = ( +/obj/structure/particle_accelerator/end_cap{ + icon_state = "end_cap"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) "eMD" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ @@ -100600,6 +100208,10 @@ }, /turf/open/floor/plating, /area/maintenance/port) +"gbW" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) "gmj" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall/r_wall, @@ -100633,11 +100245,19 @@ dir = 1 }, /area/science/circuit) +"hdH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/conveyor{ + dir = 9; + id = "cargoload" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) "hic" = ( /obj/structure/table/reinforced, -/obj/item/device/integrated_electronics/analyzer, -/obj/item/device/integrated_electronics/debugger, -/obj/item/device/integrated_electronics/wirer, +/obj/item/integrated_electronics/analyzer, +/obj/item/integrated_electronics/debugger, +/obj/item/integrated_electronics/wirer, /turf/open/floor/plasteel/white/side{ dir = 10 }, @@ -100702,6 +100322,15 @@ dir = 9 }, /area/science/circuit) +"hWz" = ( +/turf/open/space, +/area/space) +"iji" = ( +/obj/machinery/vending/kink, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/locker) "iQh" = ( /obj/structure/bodycontainer/morgue{ dir = 1 @@ -100736,7 +100365,7 @@ pixel_y = 32; receive_ore_updates = 1 }, -/obj/item/device/integrated_circuit_printer, +/obj/item/integrated_circuit_printer, /turf/open/floor/plasteel/white/side, /area/science/circuit) "jqM" = ( @@ -100760,6 +100389,17 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/neutral, /area/medical/morgue) +"kam" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/conveyor{ + dir = 5; + id = "cargoload" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"knk" = ( +/turf/open/floor/plating/airless, +/area/space) "kwx" = ( /obj/effect/turf_decal/loading_area, /turf/open/floor/plasteel/whitepurple/corner, @@ -100832,6 +100472,20 @@ dir = 6 }, /area/science/circuit) +"lTo" = ( +/obj/docking_port/stationary{ + area_type = /area/construction/mining/aux_base; + dheight = 4; + dir = 4; + dwidth = 4; + height = 9; + id = "aux_base_zone"; + name = "aux base zone"; + roundstart_template = /datum/map_template/shuttle/aux_base/default; + width = 9 + }, +/turf/open/floor/plating, +/area/construction/mining/aux_base) "lXM" = ( /obj/structure/target_stake, /turf/open/floor/plasteel/white/side{ @@ -100849,6 +100503,17 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/circuit/green, /area/science/research/abandoned) +"ntr" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light, +/turf/open/floor/plating/airless, +/area/engine/engineering) "nSh" = ( /obj/machinery/atmospherics/pipe/simple/general/hidden, /turf/closed/wall/r_wall, @@ -100870,11 +100535,15 @@ /obj/machinery/newscaster{ pixel_y = -32 }, -/obj/item/device/integrated_circuit_printer, +/obj/item/integrated_circuit_printer, /turf/open/floor/plasteel/white/side{ dir = 1 }, /area/science/circuit) +"pqi" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) "psi" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bodycontainer/morgue{ @@ -100900,18 +100569,29 @@ /area/science/research/abandoned) "qhc" = ( /obj/structure/table/reinforced, -/obj/item/device/integrated_electronics/analyzer, -/obj/item/device/integrated_electronics/debugger, -/obj/item/device/integrated_electronics/wirer, +/obj/item/integrated_electronics/analyzer, +/obj/item/integrated_electronics/debugger, +/obj/item/integrated_electronics/wirer, /turf/open/floor/plasteel/white/side{ dir = 9 }, /area/science/circuit) +"qlj" = ( +/obj/structure/lattice, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/space, +/area/engine/engineering) "qpq" = ( /turf/open/floor/plasteel/white/side{ dir = 5 }, /area/science/circuit) +"qLI" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space) "rhO" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 @@ -100934,6 +100614,10 @@ "saw" = ( /turf/closed/wall, /area/science/circuit) +"sDj" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/space) "tmi" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -100948,6 +100632,17 @@ dir = 10 }, /area/science/misc_lab) +"ugB" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "upk" = ( /obj/machinery/door/airlock/public/glass{ name = "Holodeck Access" @@ -100973,7 +100668,7 @@ /turf/open/floor/plasteel/whitepurple/side, /area/science/misc_lab) "uYS" = ( -/obj/machinery/door/airlock/atmos/glass{ +/obj/machinery/door/airlock/atmos/glass/critical{ heat_proof = 1; name = "Supermatter Chamber"; req_one_access_txt = "24;10" @@ -100992,6 +100687,13 @@ dir = 5 }, /area/medical/morgue) +"vRm" = ( +/obj/structure/particle_accelerator/particle_emitter/center{ + icon_state = "emitter_center"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) "wei" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, @@ -101068,6 +100770,13 @@ }, /turf/open/floor/plasteel/white/side, /area/science/circuit) +"ybu" = ( +/obj/structure/particle_accelerator/power_box{ + icon_state = "power_box"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) "yjc" = ( /obj/machinery/power/apc{ areastring = "/area/science/research/abandoned"; @@ -120744,17 +120453,17 @@ aaa car car car -aad +pqi aaa ciY aaa aaa aaa -aad +qlj aaa aaa aaa -aad +qlj aaa aaa aaa @@ -121003,19 +120712,19 @@ cbN cdC cdC aaa -aaz -aaM -aaM -abM -aaM -aaM -abM -aaM -aaM -abM -aaM -aaM -acn +ciZ +cku +cku +cnA +cku +cku +cnA +cku +cku +cnA +cku +cku +cAH aaa cdC cdC @@ -121259,21 +120968,21 @@ car cbN cdC cfA -aad -aaH -aba -abJ -abN -abJ -abJ -abV -abJ -abJ -abN -abJ -acj -aaH -aad +pqi +cja +ckv +clR +cnB +clR +clR +crI +clR +clR +cnB +clR +czo +cja +pqi cDT cdC cHb @@ -121514,25 +121223,25 @@ bVZ aad car cbO -aav +cdD cfA aaa -aaH -abl -abK -aaT -aaT -abK -aaU +cja +ckw +clS +hWz +hWz +clS +gbW aaa -aaT -aaT -abK -ack -aaH +hWz +hWz +clS +sDj +cja aaa cDT -abI +cFH cHc car ceb @@ -121773,21 +121482,21 @@ car cbP cdC cfA -aad -aaJ -aby -aaT -aaT -aaT -aaU -aad +pqi +cjb +ckx +hWz +hWz +hWz +gbW +pqi aaa -aaT -aaT -aaT -acl -acw -aad +hWz +hWz +hWz +czp +cAI +pqi cDT cdC cFJ @@ -122031,19 +121740,19 @@ cbQ cdE cfA aaa -aaH -abl -aaT -aaT +cja +ckw +hWz +hWz aaa -aaL -aad -aaL aaa -aaT -aaT -ack -aaH +pqi +aaa +aaa +hWz +hWz +sDj +cja aaa cDT cFI @@ -122287,21 +121996,21 @@ car car cbP cfA -abj -aaJ -aby +qLI +cjb +ckx aaa aaa -aaL -abO -abJ -acg -aaL -aaU -abK -acl -acw -abj +aaa +cqo +clR +ctm +aaa +gbW +clS +czp +cAI +qLI cDT cFJ car @@ -122542,25 +122251,25 @@ bWd bYp car car -cbP +ugB cdC -aad -aaH -abl -aaU -aad -aad -abl -abW -ach -aad -aad -aaU -ack -aaH -aad +pqi +cja +ckw +gbW +pqi +pqi +ckw +crJ +ctn +pqi +pqi +gbW +sDj +cja +pqi cdC -cFJ +ntr car car cJL @@ -122801,21 +122510,21 @@ car car cbP cfA -abj -aaJ -aby -abK -aaU -aaL -abU -abX -aci -aaL +qLI +cjb +ckx +clS +gbW +aaa +cqp +crK +cto aaa aaa -acl -acw -abj +aaa +czp +cAI +qLI cDT cFJ car @@ -123059,19 +122768,19 @@ cbR cdF cfA aaa -aaH -abl -aaT -aaT +cja +ckw +hWz +hWz aaa -aaL -aad -aaL aaa -aaT -aaT -ack -aaH +pqi +aaa +aaa +hWz +hWz +sDj +cja aaa cDT cFK @@ -123315,21 +123024,21 @@ car cbP cdC cfA -aad -aaJ -aby -aaT -aaT +pqi +cjb +ckx +hWz +hWz aaa aaa -aad -aaU +pqi +gbW aaa -aaT -aaT -acl -acw -aad +hWz +hWz +czp +cAI +pqi cDU cdC cFJ @@ -123570,25 +123279,25 @@ bWg bYs car cbS -aav +cdD cfA aaa -aaH -abl -abK -aaT +cja +ckw +clS +hWz aaa aaa -aaU -abK -aaT -aaT -abK -ack -aaH +gbW +clS +hWz +hWz +clS +sDj +cja aaa cDT -abI +cFH cHf car cJO @@ -123829,21 +123538,21 @@ car cbP cdC cfA -aad -aaK -abz -abL -abL -abL -abL -abY -abL -abL -abL -abL -acm -acx -aad +pqi +cjc +ckz +clU +clU +clU +clU +crL +clU +clU +clU +clU +czr +cAJ +pqi cDT cdC cFJ @@ -124085,11 +123794,11 @@ bYu car cbT cdG -aaw -aax -aaF +cfB +knk +knk aaa -aad +pqi cjd cjd cjd @@ -124097,11 +123806,11 @@ crM cjd cjd cjd -aad +pqi aaa -aaF -aax -abB +knk +knk +cDV cFL cHg car @@ -124600,20 +124309,20 @@ car cbU cdI cfC -aay -aaG -aaG -aaG +chu +cje +cje +cje cjd cpa -aaX -abb -abm +cqr +vRm +ctp cuQ cjd -aaG -aaG -abA +cje +cje +cAK cCr cfC cFN @@ -124859,12 +124568,12 @@ cdJ car chv chv -aaI +ckA chv cnC cpa cqs -abc +ybu ctq cuR cnC @@ -125120,8 +124829,8 @@ chw clW cnD cpb -aaY -abd +cqt +crO ctr cuS cnD @@ -125374,15 +125083,15 @@ cfE chx cjh cjn -aaN -aaV -aaW +clX +cnE +cpc cqu -abk +eIf cts -abo -aaV -aaN +cuT +cnE +clX cjn cAL cCs @@ -137354,10 +137063,10 @@ aaa aaa aaa aaa -aaA -aaA -aaA -abr +aaa +aaa +aaa +aaa abE aaO aca @@ -137611,9 +137320,9 @@ aaa aaa aaa aas -aaB -aaQ -abg +aaa +aaa +aaa abs abF abP @@ -137868,10 +137577,10 @@ aaa aaa aaa aaa -aaA -aaA -aaA -abr +aaa +aaa +aaa +aaa abG aaO acc @@ -141980,10 +141689,10 @@ aaa aaa aaa aaa -aaC -aaC -aaC -abt +aaa +aaa +aaa +aaa abE aaO aca @@ -142237,10 +141946,10 @@ aaa aaa aaa aat -aaD -aaR -abh -abu +aaa +aaa +aaa +abs abF abQ acb @@ -142494,10 +142203,10 @@ aaa aaa aaa aaa -aaC -aaC -aaC -abt +aaa +aaa +aaa +aaa abG aaO acc @@ -144050,14 +143759,14 @@ ace aad abi aeF -afg -afg -afg -agq -afg -afg -afg -ahG +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF abi ail aiG @@ -144306,15 +144015,15 @@ adi ace aaa abi -aeG -afh -afi -afj -afj -afj -afj -ahw -ahH +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF abi aim aiH @@ -144563,15 +144272,15 @@ adj ace aad abi -aeG -afi -afj -afj -afj -afj -afj -afj -ahH +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF abi ain aiI @@ -144820,15 +144529,15 @@ acf acf aad abi -aeG -afj -afj -afj -agr -afj -afi -afj -ahH +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF abi aio aiI @@ -145077,15 +144786,15 @@ acf aad aad abi -aeG -afj -afj -afZ -ags -afj -afj -afj -ahH +aeF +aeF +aeF +aeF +lTo +aeF +aeF +aeF +aeF abi aip aiH @@ -145334,15 +145043,15 @@ acf aad aad abi -aeG -afj -afi -afj -agt -afj -afj -afj -ahH +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF abi aiq aiI @@ -145591,15 +145300,15 @@ aad aad aaa abi -aeG -afi -afj -afj -afj -afi -afj -afj -ahH +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF abi air aiI @@ -145848,15 +145557,15 @@ aad aac aad abi -aeG -aeH -afj -afi -afj -afj -afj -ahx -ahH +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF abi ais aiI @@ -146105,15 +145814,15 @@ aaa aac aad abi -aeH -afk -afk -afk -afk -afk -afk -afk -ahx +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF abi aig aiJ @@ -146651,11 +146360,11 @@ axm ayD ayD ayD -ayD +hdH azD aEg azD -aGC +kam aHV aHV aHV @@ -149535,7 +149244,7 @@ clt cnc coE cqd -aaZ +iji csT cuy cvU @@ -150822,7 +150531,7 @@ coI cqd crv csY -abn +cuB cvZ cxq cyV @@ -151081,8 +150790,8 @@ cqd csZ cuC cwa -abw -abx +cxr +cyW cqd cCb cDB @@ -154625,7 +154334,7 @@ aFn aGK aIg aJB -aaq +aKY aMj aNF aPn @@ -154883,7 +154592,7 @@ aGL aIh aJC aKV -aar +aMk aNG aPo aRf @@ -159260,9 +158969,9 @@ aaa ajr aad aKV -aZN +aaa bbv -aZN +aaa aKV aad aad @@ -159517,9 +159226,9 @@ aaa aaa aad aKV -aZO -bbw -aZO +aaa +aaa +aaa aKV aaa aaa @@ -159774,9 +159483,9 @@ aaa aaa aaa aXU -aZO -bbx -aZO +aaa +aaa +aaa aXU aaa aaa @@ -160031,9 +159740,9 @@ aaa aaa aaa aaa -aZO -bby -aZO +aaa +aaa +aaa aaa aaa aaa diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index f9de891e3d..e7267df75d 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -2,35 +2,10 @@ "aaa" = ( /turf/open/space/basic, /area/space) -"aab" = ( -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/obj/machinery/vending/sustenance{ - desc = "A vending machine normally reserved for work camps."; - name = "\improper sustenance vendor"; - product_slogans = "Enjoy your meal.;Enough calories to support any worker." - }, -/turf/open/floor/plasteel, -/area/security/prison) "aac" = ( /obj/effect/landmark/carpspawn, /turf/open/space, /area/space) -"aad" = ( -/obj/machinery/computer/cryopod{ - pixel_x = 28; - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"aae" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/machinery/cryopod, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) "aaf" = ( /obj/structure/lattice, /turf/open/space, @@ -277,10 +252,6 @@ }, /turf/open/floor/plating, /area/security/prison) -"aaM" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/pod_2) "aaN" = ( /obj/structure/cable{ icon_state = "0-2" @@ -316,52 +287,13 @@ /area/security/prison) "aaT" = ( /obj/machinery/hydroponics/constructable, -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /obj/machinery/airalarm{ dir = 8; pixel_x = 24 }, /turf/open/floor/plasteel/floorgrime, /area/security/prison) -"aaU" = ( -/obj/machinery/door/window/southright{ - dir = 4; - name = "Engineering Deliveries"; - req_access_txt = "10"; - req_one_access_txt = "0" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/yellow/side{ - dir = 9 - }, -/area/engine/engineering) -"aaV" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_2) -"aaW" = ( -/obj/structure/sign/warning/securearea{ - pixel_y = 32 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) -"aaX" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) "aaY" = ( /obj/structure/cable{ icon_state = "1-2" @@ -396,24 +328,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/security/prison) -"abd" = ( -/obj/machinery/light_switch{ - pixel_x = 23 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/machinery/shower{ - dir = 8; - name = "emergency shower" - }, -/obj/structure/sign/warning/securearea{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 5 - }, -/area/engine/engineering) "abe" = ( /turf/closed/wall, /area/security/prison) @@ -496,11 +410,11 @@ /turf/open/floor/plasteel/floorgrime, /area/security/prison) "abn" = ( -/obj/machinery/light/small{ - dir = 1 +/obj/machinery/newscaster{ + pixel_y = 32 }, -/turf/open/floor/plating, -/area/engine/engineering) +/turf/open/floor/plasteel, +/area/security/prison) "abo" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -544,21 +458,16 @@ dir = 8 }, /area/security/prison) -"abt" = ( -/obj/structure/shuttle/engine/propulsion/burst, -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_2) "abu" = ( -/obj/machinery/door/airlock/titanium{ - name = "Escape Pod Airlock" +/obj/docking_port/stationary{ + dir = 1; + dwidth = 1; + height = 4; + roundstart_template = /datum/map_template/shuttle/escape_pod/default; + width = 3 }, -/obj/docking_port/mobile/pod{ - id = "pod2"; - name = "escape pod 2"; - port_direction = 2 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_2) +/turf/open/space/basic, +/area/space) "abv" = ( /obj/structure/cable{ icon_state = "0-2" @@ -779,7 +688,7 @@ /obj/item/clothing/glasses/sunglasses/blindfold, /obj/item/clothing/mask/muzzle, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/electropack, +/obj/item/electropack, /turf/open/floor/plasteel/dark, /area/security/execution/education) "abX" = ( @@ -828,22 +737,14 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/security/prison) -"acd" = ( -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable/white{ - icon_state = "2-4" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "ace" = ( -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable/white{ - icon_state = "4-8" +/obj/machinery/vending/sustenance{ + desc = "A vending machine normally reserved for work camps."; + name = "\improper sustenance vendor"; + product_slogans = "Enjoy your meal.;Enough calories to support any worker." }, -/turf/open/floor/plating/airless, -/area/engine/engineering) +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) "acf" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, @@ -997,16 +898,17 @@ /turf/open/floor/plasteel/floorgrime, /area/security/prison) "acx" = ( -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable/white{ - icon_state = "2-8" +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 }, -/obj/structure/cable/white{ - icon_state = "4-8" +/obj/machinery/cryopod{ + tag = "icon-cryopod-open (WEST)"; + icon_state = "cryopod-open"; + dir = 8 }, -/turf/open/floor/plating/airless, -/area/engine/engineering) +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) "acy" = ( /obj/machinery/door/airlock/external{ name = "Escape Pod Two" @@ -1110,7 +1012,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; @@ -1159,6 +1061,9 @@ pixel_y = 7 }, /obj/item/pen, +/obj/machinery/computer/cryopod{ + pixel_x = 28 + }, /turf/open/floor/plasteel/floorgrime, /area/security/prison) "acN" = ( @@ -1276,7 +1181,7 @@ pixel_y = 26; req_access_txt = "2" }, -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_x = -3; pixel_y = 2 }, @@ -1308,11 +1213,11 @@ /obj/item/folder/red{ pixel_x = 3 }, -/obj/item/device/taperecorder{ +/obj/item/taperecorder{ pixel_x = -3 }, /obj/item/storage/fancy/cigarettes, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/item/reagent_containers/spray/pepper, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -1451,18 +1356,9 @@ }, /turf/open/floor/plating, /area/crew_quarters/fitness/recreation) -"adk" = ( -/obj/structure/shuttle/engine/propulsion/burst{ - dir = 8 - }, -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_3) -"adl" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_3) "adm" = ( /obj/structure/table, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/structure/reagent_dispensers/peppertank{ pixel_x = -29 }, @@ -1623,18 +1519,15 @@ /turf/open/floor/plating, /area/crew_quarters/fitness/recreation) "adF" = ( -/obj/machinery/door/airlock/titanium{ - name = "Escape Pod Airlock" - }, -/obj/docking_port/mobile/pod{ +/obj/docking_port/stationary{ dir = 4; - id = "pod3"; - name = "escape pod 3"; - port_direction = 2; - preferred_direction = 4 + dwidth = 1; + height = 4; + roundstart_template = /datum/map_template/shuttle/escape_pod/default; + width = 3 }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_3) +/turf/open/space/basic, +/area/space) "adG" = ( /obj/docking_port/stationary/random{ id = "pod_lavaland2"; @@ -1642,26 +1535,8 @@ }, /turf/open/space, /area/space/nearstation) -"adH" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/status_display{ - pixel_x = 32 - }, -/obj/machinery/computer/shuttle/pod{ - pixel_x = -32; - possible_destinations = "pod_lavaland2"; - shuttleId = "pod2" - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_2) -"adI" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/pod_3) "adJ" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -1990,7 +1865,7 @@ "aer" = ( /obj/structure/rack, /obj/item/gun/energy/ionrifle{ - pin = /obj/item/device/firing_pin + pin = /obj/item/firing_pin }, /obj/machinery/light{ dir = 1 @@ -2083,14 +1958,6 @@ }, /turf/open/floor/plating, /area/crew_quarters/fitness/recreation) -"aeD" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating/airless, -/area/engine/engineering) "aeE" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -2516,7 +2383,7 @@ dir = 4; pixel_x = -22 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -2794,7 +2661,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -2816,16 +2683,6 @@ dir = 1 }, /area/security/prison) -"afQ" = ( -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) "afR" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 @@ -2892,7 +2749,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) "afZ" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -2998,7 +2855,7 @@ /area/crew_quarters/heads/hos) "agh" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/carpet, /area/crew_quarters/heads/hos) @@ -3216,7 +3073,7 @@ "agF" = ( /obj/structure/rack, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/structure/cable/yellow{ icon_state = "1-2" }, @@ -3320,8 +3177,6 @@ /obj/item/storage/fancy/donut_box, /obj/item/gun/energy/e_gun/dragnet, /obj/item/gun/energy/e_gun/dragnet, -/obj/item/gun/energy/pumpaction/blaster, -/obj/item/gun/energy/pumpaction/blaster, /turf/open/floor/plasteel/vault{ dir = 1 }, @@ -3426,10 +3281,10 @@ /area/crew_quarters/heads/hos) "ahb" = ( /obj/structure/table/wood, -/obj/item/device/taperecorder{ +/obj/item/taperecorder{ pixel_x = -4 }, -/obj/item/device/radio/off{ +/obj/item/radio/off{ pixel_y = 3 }, /turf/open/floor/plasteel/dark, @@ -3531,7 +3386,7 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -3791,14 +3646,6 @@ icon_state = "platingdmg1" }, /area/maintenance/fore) -"ahT" = ( -/obj/structure/cable/white{ - icon_state = "2-4" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plating/airless, -/area/engine/engineering) "ahU" = ( /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/table, @@ -3929,7 +3776,7 @@ /area/maintenance/disposal) "aih" = ( /obj/machinery/conveyor_switch/oneway{ - convdir = -1; + dir = 8; id = "garbage"; name = "disposal conveyor" }, @@ -4319,9 +4166,8 @@ /area/engine/gravity_generator) "ajc" = ( /obj/machinery/conveyor{ - dir = 2; - id = "garbage"; - layer = 2.7 + dir = 1; + id = "garbage" }, /obj/machinery/door/poddoor/preopen{ id = "Disposal Exit"; @@ -4393,14 +4239,6 @@ /obj/item/restraints/handcuffs/cable/pink, /turf/open/floor/plating, /area/maintenance/port/fore) -"ajk" = ( -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "ajl" = ( /obj/item/soap/deluxe, /obj/item/storage/secure/safe{ @@ -4489,9 +4327,6 @@ dir = 4 }, /area/security/warden) -"aju" = ( -/turf/open/space/basic, -/area/space/nearstation) "ajv" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 @@ -4764,7 +4599,7 @@ /area/maintenance/solars/starboard/fore) "akf" = ( /obj/machinery/conveyor{ - dir = 2; + dir = 1; id = "garbage" }, /turf/open/floor/plating, @@ -4913,7 +4748,7 @@ pixel_y = -2 }, /obj/item/dice/d8, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port/fore) @@ -4928,7 +4763,7 @@ /area/security/brig) "aku" = ( /obj/structure/table, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -4944,7 +4779,7 @@ pixel_x = -4; pixel_y = 2 }, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /turf/open/floor/plasteel/whitered/side{ dir = 1 }, @@ -5115,7 +4950,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -5404,7 +5239,7 @@ c_tag = "Holodeck"; dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -5422,20 +5257,6 @@ "alq" = ( /turf/closed/wall, /area/maintenance/starboard) -"alr" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 2 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/engineering) "als" = ( /obj/machinery/light{ dir = 8 @@ -5471,7 +5292,7 @@ /area/maintenance/solars/starboard/fore) "alx" = ( /obj/machinery/conveyor{ - dir = 2; + dir = 1; id = "garbage" }, /obj/structure/sign/warning/vacuum{ @@ -5506,7 +5327,7 @@ /area/maintenance/disposal) "alz" = ( /obj/machinery/conveyor{ - dir = 4; + dir = 8; id = "garbage" }, /obj/machinery/door/window/eastright{ @@ -6173,23 +5994,18 @@ }, /obj/machinery/conveyor{ dir = 9; - id = "garbage"; - verted = -1 + id = "garbage" }, /turf/open/floor/plating, /area/maintenance/disposal) "amP" = ( /obj/machinery/conveyor{ - dir = 4; + dir = 8; id = "garbage" }, /turf/open/floor/plating, /area/maintenance/disposal) "amQ" = ( -/obj/machinery/conveyor{ - dir = 6; - id = "garbage" - }, /obj/machinery/door/window/eastright{ base_state = "left"; dir = 4; @@ -6197,6 +6013,10 @@ name = "Danger: Conveyor Access"; req_access_txt = "12" }, +/obj/machinery/conveyor/inverted{ + dir = 6; + id = "garbage" + }, /turf/open/floor/plating, /area/maintenance/disposal) "amR" = ( @@ -6233,13 +6053,6 @@ icon_state = "platingdmg2" }, /area/maintenance/port) -"amV" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) "amW" = ( /obj/structure/table/reinforced, /obj/item/folder, @@ -6251,7 +6064,7 @@ name = "windoor" }, /obj/item/book/manual/wiki/engineering_hacking, -/obj/item/device/tape/random, +/obj/item/tape/random, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port/fore) @@ -6483,19 +6296,6 @@ /obj/item/paper, /turf/open/floor/plasteel, /area/security/main) -"anz" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/sorting/mail{ - sortType = 4 - }, -/obj/effect/landmark/start/station_engineer, -/obj/structure/cable/white{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "anA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, @@ -6639,10 +6439,6 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, -/obj/machinery/conveyor{ - dir = 8; - id = "garbage" - }, /obj/structure/disposaloutlet{ dir = 4 }, @@ -6653,7 +6449,7 @@ /area/maintenance/disposal) "anV" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "garbage" }, /obj/structure/disposalpipe/segment{ @@ -6663,7 +6459,7 @@ /area/maintenance/disposal) "anW" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "garbage" }, /obj/machinery/atmospherics/components/unary/vent_pump/on, @@ -6671,7 +6467,7 @@ /area/maintenance/disposal) "anX" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "garbage" }, /obj/machinery/recycler, @@ -6683,7 +6479,7 @@ name = "Danger: Conveyor Access"; req_access_txt = "12" }, -/obj/machinery/conveyor{ +/obj/machinery/conveyor/inverted{ dir = 10; id = "garbage" }, @@ -6859,7 +6655,7 @@ }, /obj/structure/rack, /obj/item/storage/firstaid/regular, -/obj/item/device/healthanalyzer{ +/obj/item/healthanalyzer{ pixel_y = -2 }, /obj/machinery/camera{ @@ -6928,15 +6724,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/security/warden) -"aov" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "aow" = ( /obj/machinery/door/firedoor, /obj/structure/cable/yellow{ @@ -6997,7 +6784,7 @@ "aoC" = ( /obj/structure/table, /obj/item/restraints/handcuffs, -/obj/item/device/radio/off, +/obj/item/radio/off, /turf/open/floor/plasteel, /area/security/main) "aoD" = ( @@ -7392,16 +7179,16 @@ /obj/structure/plasticflaps{ opacity = 0 }, -/obj/machinery/conveyor{ - dir = 2; - id = "garbage" - }, /obj/machinery/door/window/northright{ dir = 2; name = "delivery door"; req_access_txt = "31" }, /obj/structure/disposalpipe/segment, +/obj/machinery/conveyor{ + dir = 1; + id = "garbage" + }, /turf/open/floor/plating, /area/maintenance/disposal) "aps" = ( @@ -7507,7 +7294,7 @@ /area/maintenance/port/fore) "apD" = ( /obj/item/storage/box/lights/mixed, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = 1; pixel_y = 5 }, @@ -7620,15 +7407,6 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) -"apP" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "apQ" = ( /obj/structure/reagent_dispensers/peppertank{ pixel_x = 32 @@ -7678,29 +7456,9 @@ "apW" = ( /obj/structure/table, /obj/item/folder/red, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel, /area/security/main) -"apX" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - name = "External Containment Access"; - req_access_txt = "10; 13" - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) "apY" = ( /obj/structure/table, /obj/item/folder/red, @@ -7744,14 +7502,6 @@ /obj/item/clothing/head/soft/red, /turf/open/floor/plasteel/vault, /area/crew_quarters/fitness/recreation) -"aqe" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plating, -/area/engine/engineering) "aqf" = ( /obj/structure/closet/lasertag/blue, /turf/open/floor/plasteel/vault, @@ -7799,7 +7549,7 @@ /area/crew_quarters/fitness/recreation) "aqk" = ( /obj/machinery/vending/coffee, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -7847,7 +7597,7 @@ }, /area/maintenance/starboard) "aqs" = ( -/obj/item/device/mmi{ +/obj/item/mmi{ name = "man-machine interface" }, /obj/structure/rack, @@ -7950,7 +7700,7 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -8111,7 +7861,7 @@ /obj/structure/closet/crate, /obj/item/restraints/handcuffs, /obj/item/bodybag, -/obj/item/device/radio, +/obj/item/radio, /obj/effect/spawner/lootdrop/maintenance{ lootcount = 3; name = "3maintenance loot spawner" @@ -8210,25 +7960,6 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) -"arh" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - name = "External Containment Access"; - req_access_txt = "10; 13" - }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) "ari" = ( /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -8417,12 +8148,6 @@ dir = 4 }, /area/crew_quarters/dorms) -"arF" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "arG" = ( /obj/structure/closet, /obj/item/storage/box/lights/mixed, @@ -8898,7 +8623,7 @@ /obj/structure/cable/yellow{ icon_state = "2-8" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 29; @@ -9094,7 +8819,7 @@ pixel_y = 7 }, /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; broadcasting = 0; freerange = 1; @@ -9474,12 +9199,6 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) -"atC" = ( -/obj/structure/cable/white{ - icon_state = "1-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "atD" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -9502,9 +9221,6 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) -"atF" = ( -/turf/open/floor/plating/airless, -/area/engine/engineering) "atG" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -9548,17 +9264,6 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) -"atJ" = ( -/obj/structure/cable/white, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/power/emitter{ - anchored = 1; - state = 2 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "atK" = ( /obj/machinery/computer/gulag_teleporter_computer{ dir = 1 @@ -9889,7 +9594,7 @@ /area/maintenance/starboard/fore) "auy" = ( /obj/item/stack/sheet/cardboard, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, @@ -10024,44 +9729,6 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) -"auQ" = ( -/obj/structure/cable/white{ - icon_state = "1-4" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"auR" = ( -/obj/structure/cable/white{ - icon_state = "1-8" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"auS" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/yellow/side{ - dir = 9 - }, -/area/engine/engineering) -"auT" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/item/clothing/suit/hooded/wintercoat/engineering, -/obj/effect/turf_decal/delivery, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) "auU" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -10174,7 +9841,7 @@ }, /area/security/brig) "avd" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -10634,38 +10301,6 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) -"avU" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) -"avV" = ( -/obj/item/device/radio/intercom{ - freerange = 0; - frequency = 1459; - name = "Station Intercom (General)"; - pixel_y = 21 - }, -/obj/machinery/camera{ - c_tag = "Engineering - Fore"; - dir = 2 - }, -/obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) -"avW" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/engine/engineering) -"avX" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "avY" = ( /obj/machinery/door/airlock/external{ name = "Labor Camp Shuttle Airlock"; @@ -10919,7 +10554,7 @@ /area/security/brig) "awx" = ( /obj/structure/table, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/dark, /area/security/brig) "awy" = ( @@ -11067,23 +10702,6 @@ /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port/fore) -"awN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"awO" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "awP" = ( /obj/item/clothing/gloves/color/rainbow, /obj/item/clothing/shoes/sneakers/rainbow, @@ -11140,22 +10758,6 @@ "awW" = ( /turf/closed/wall/r_wall, /area/security/nuke_storage) -"awX" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"awY" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/engineering) "awZ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 @@ -11424,8 +11026,8 @@ "axz" = ( /obj/structure/table, /obj/item/folder/red, -/obj/item/device/taperecorder, -/obj/item/device/radio/intercom{ +/obj/item/taperecorder, +/obj/item/radio/intercom{ anyai = 1; broadcasting = 1; freerange = 1; @@ -11489,12 +11091,6 @@ dir = 1 }, /area/crew_quarters/dorms) -"axH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "axI" = ( /obj/machinery/door/airlock{ id_tag = "Cabin5"; @@ -11633,75 +11229,69 @@ /turf/open/floor/plasteel, /area/engine/engineering) "axU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/machinery/door/window/southright{ + dir = 4; + name = "Engineering Deliveries"; + req_access_txt = "10"; + req_one_access_txt = "0" }, -/obj/structure/cable/yellow{ - icon_state = "2-4" +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/yellow/side{ + dir = 9 }, -/turf/open/floor/plasteel, /area/engine/engineering) "axV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/structure/sign/warning/securearea{ + pixel_y = 32 }, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 }, -/turf/open/floor/plasteel, /area/engine/engineering) "axW" = ( -/obj/machinery/light{ - dir = 4 +/obj/structure/disposalpipe/segment, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 }, -/turf/open/floor/plasteel, /area/engine/engineering) "axX" = ( -/obj/structure/lattice, -/turf/open/space, -/area/space) +/obj/machinery/light_switch{ + pixel_x = 23 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/shower{ + dir = 8; + name = "emergency shower" + }, +/obj/structure/sign/warning/securearea{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 5 + }, +/area/engine/engineering) "axY" = ( /turf/closed/wall/r_wall, /area/engine/engineering) -"axZ" = ( -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"aya" = ( -/turf/open/floor/plating/airless, -/area/space) -"ayb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/engineering) "ayc" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable/white{ + icon_state = "2-4" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ayd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aye" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plating/airless, /area/engine/engineering) "ayf" = ( /obj/structure/closet/crate, @@ -11711,15 +11301,6 @@ /obj/item/stack/rods, /turf/open/floor/plating/airless, /area/space/nearstation) -"ayg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ayh" = ( -/turf/open/floor/plasteel, -/area/engine/engineering) "ayi" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -11807,28 +11388,6 @@ dir = 8 }, /area/security/nuke_storage) -"ayt" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24; - pixel_y = -26 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ayu" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/space) -"ayv" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/space, -/area/space) "ayw" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/yellow{ @@ -12063,83 +11622,69 @@ /turf/open/floor/plating, /area/maintenance/starboard/fore) "ayS" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/space, -/area/space) -"ayT" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/space, -/area/space) -"ayU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ dir = 4 }, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/effect/turf_decal/delivery, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 2 }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) +"ayT" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/yellow/side{ dir = 8 }, /area/engine/engineering) "ayV" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 + dir = 8 }, -/obj/structure/cable/yellow{ - icon_state = "2-8" +/obj/structure/cable/white{ + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/engine/engineering) "ayW" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Containment - Fore Port"; - dir = 4; - network = list("singularity") +/obj/structure/cable/white{ + icon_state = "4-8" }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, /area/engine/engineering) "ayX" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/space, -/area/space) -"ayY" = ( -/obj/effect/turf_decal/stripes/corner{ +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, -/turf/open/floor/plating/airless, -/area/space) -"ayZ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock/external{ + name = "External Containment Access"; + req_access_txt = "10; 13" }, -/turf/open/floor/plating/airless, -/area/space) +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) "aza" = ( -/obj/structure/cable, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/structure/cable/white{ + icon_state = "1-8" }, -/obj/machinery/power/tesla_coil, /turf/open/floor/plating/airless, -/area/space) +/area/engine/engineering) "azb" = ( /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/structure/cable/yellow{ @@ -12149,21 +11694,18 @@ dir = 4 }, /area/security/brig) -"azc" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Containment - Fore Starboard"; - dir = 8; - network = list("singularity") +"azd" = ( +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/obj/structure/cable/white{ + icon_state = "4-8" }, /turf/open/floor/plating/airless, -/area/space) -"azd" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, /area/engine/engineering) "aze" = ( /obj/item/twohanded/required/kirbyplants{ @@ -12172,31 +11714,10 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/wood, /area/library) -"azf" = ( -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) "azg" = ( /obj/item/stack/cable_coil, /turf/open/floor/plating/airless, /area/space/nearstation) -"azh" = ( -/obj/structure/rack, -/obj/machinery/button/door{ - id = "engpa"; - name = "Engineering Chamber Shutters Control"; - pixel_y = -26; - req_access_txt = "11" - }, -/obj/item/clothing/gloves/color/black, -/obj/item/wrench, -/obj/item/clothing/glasses/meson/engine, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"azi" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) "azj" = ( /obj/item/stack/ore/iron, /obj/effect/turf_decal/stripes/line{ @@ -12209,7 +11730,7 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 @@ -12231,11 +11752,11 @@ /area/quartermaster/miningoffice) "azm" = ( /obj/structure/closet/crate, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = 1; pixel_y = 5 }, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = 1; pixel_y = 5 }, @@ -12392,16 +11913,6 @@ dir = 1 }, /area/security/nuke_storage) -"azA" = ( -/obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"azB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/space) "azC" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -12582,7 +12093,7 @@ network = list("prison"); pixel_y = 30 }, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -12686,7 +12197,7 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -12819,107 +12330,72 @@ /turf/open/floor/plating, /area/maintenance/starboard/fore) "aAo" = ( -/obj/machinery/field/generator{ - anchored = 1; - state = 2 - }, -/turf/open/floor/plating/airless, -/area/space) -"aAp" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -27 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/engineering) -"aAq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aAr" = ( -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/suit/hazardvest, -/obj/item/clothing/suit/hazardvest, -/obj/item/tank/internals/emergency_oxygen/engi, -/obj/item/tank/internals/emergency_oxygen/engi, +/obj/structure/closet/secure_closet/engineering_personal, /obj/effect/turf_decal/delivery, -/obj/structure/table, /turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) -"aAs" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engpa"; - name = "Engineering Chamber Shutters" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aAt" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"aAu" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating/airless, -/area/space) -"aAv" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/engineering) -"aAw" = ( -/obj/structure/table, -/obj/effect/turf_decal/delivery, -/obj/item/clothing/glasses/meson/engine, -/obj/item/clothing/glasses/meson/engine, -/obj/item/clothing/glasses/meson/engine, -/obj/machinery/light{ - dir = 4 - }, -/obj/item/pipe_dispenser, -/obj/item/pipe_dispenser, -/obj/item/pipe_dispenser, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) -"aAx" = ( -/obj/machinery/button/door{ - id = "engpa"; - name = "Engineering Chamber Shutters Control"; - pixel_y = 26; - req_access_txt = "11" - }, -/obj/effect/turf_decal/stripes/line{ dir = 9 }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plating, /area/engine/engineering) -"aAy" = ( -/obj/effect/turf_decal/stripes/line{ +"aAp" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/item/clothing/suit/hooded/wintercoat/engineering, +/obj/effect/turf_decal/delivery, +/obj/machinery/light{ dir = 1 }, -/turf/open/floor/plating, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"aAr" = ( +/obj/item/radio/intercom{ + freerange = 0; + frequency = 1459; + name = "Station Intercom (General)"; + pixel_y = 21 + }, +/obj/machinery/camera{ + c_tag = "Engineering - Fore"; + dir = 2 + }, +/obj/structure/closet/secure_closet/engineering_personal, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"aAt" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aAu" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/sorting/mail{ + sortType = 4 + }, +/obj/effect/landmark/start/station_engineer, +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aAv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aAx" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, /area/engine/engineering) "aAz" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -13132,14 +12608,6 @@ dir = 1 }, /area/security/nuke_storage) -"aAU" = ( -/obj/structure/table, -/obj/item/airlock_painter, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/yellow/side{ - dir = 9 - }, -/area/engine/engineering) "aAV" = ( /obj/docking_port/stationary{ dir = 8; @@ -13532,19 +13000,19 @@ /turf/closed/wall, /area/engine/engineering) "aBJ" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, /turf/open/floor/plasteel/yellow/side{ - dir = 4 + dir = 8 }, /area/engine/engineering) "aBK" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engpa"; - name = "Engineering Chamber Shutters" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel, @@ -13587,30 +13055,11 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aBO" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"aBP" = ( -/obj/structure/particle_accelerator/particle_emitter/right{ - icon_state = "emitter_right"; +/obj/machinery/light{ dir = 4 }, -/turf/open/floor/plating, +/turf/open/floor/plasteel, /area/engine/engineering) -"aBQ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating/airless, -/area/space) -"aBR" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating/airless, -/area/space) "aBS" = ( /obj/item/stack/ore/silver, /obj/item/stack/ore/silver, @@ -13644,7 +13093,7 @@ /turf/open/floor/plasteel, /area/quartermaster/miningoffice) "aBX" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 @@ -13759,11 +13208,6 @@ dir = 1 }, /area/security/nuke_storage) -"aCi" = ( -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/engineering) "aCj" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security/glass{ @@ -13895,11 +13339,11 @@ /obj/structure/cable/yellow{ icon_state = "0-4" }, -/obj/item/device/taperecorder{ +/obj/item/taperecorder{ pixel_x = 3 }, /obj/item/storage/box/evidence, -/obj/item/device/flashlight/seclite, +/obj/item/flashlight/seclite, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "aCt" = ( @@ -14055,22 +13499,6 @@ /obj/item/clothing/under/suit_jacket/navy, /turf/open/floor/carpet, /area/crew_quarters/dorms) -"aCL" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the Engine."; - dir = 8; - layer = 4; - name = "Engine Monitor"; - network = list("singularity"); - pixel_x = 30 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) "aCM" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -14080,7 +13508,7 @@ /area/maintenance/starboard/fore) "aCN" = ( /obj/structure/reagent_dispensers/fueltank, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_x = -30 }, @@ -14133,55 +13561,51 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aCU" = ( -/obj/structure/particle_accelerator/end_cap{ - icon_state = "end_cap"; +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plating, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, /area/engine/engineering) "aCV" = ( -/obj/structure/particle_accelerator/fuel_chamber{ - icon_state = "fuel_chamber"; +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/plating, +/turf/open/floor/plasteel, /area/engine/engineering) "aCW" = ( -/obj/structure/particle_accelerator/power_box{ - icon_state = "power_box"; - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 }, -/turf/open/floor/plating, +/turf/open/floor/plasteel, /area/engine/engineering) "aCX" = ( -/obj/structure/particle_accelerator/particle_emitter/center{ - icon_state = "emitter_center"; - dir = 4 - }, -/turf/open/floor/plating, +/turf/open/floor/plasteel, /area/engine/engineering) "aCY" = ( -/obj/structure/cable{ - icon_state = "2-4" +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24; + pixel_y = -26 }, -/turf/open/floor/plating, +/turf/open/floor/plasteel, /area/engine/engineering) "aCZ" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "2-8" +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, +/obj/machinery/power/tesla_coil, /turf/open/floor/plating/airless, /area/space) "aDa" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/structure/ore_box, /turf/open/floor/plating, -/area/shuttle/auxillary_base) +/area/construction/mining/aux_base) "aDb" = ( /turf/closed/wall, /area/construction/mining/aux_base) @@ -14191,30 +13615,6 @@ /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port/fore) -"aDd" = ( -/obj/machinery/the_singularitygen/tesla, -/turf/open/floor/plating/airless, -/area/space) -"aDe" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space) -"aDf" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aDg" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) "aDh" = ( /obj/machinery/firealarm{ dir = 8; @@ -14320,22 +13720,6 @@ /obj/structure/sign/warning/securearea, /turf/closed/wall/r_wall, /area/security/nuke_storage) -"aDt" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engpa"; - name = "Engineering Chamber Shutters" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "aDu" = ( /turf/closed/wall, /area/hallway/primary/fore) @@ -14494,7 +13878,7 @@ c_tag = "Brig - Desk"; dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -14513,7 +13897,7 @@ dir = 8 }, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/camera/detective, +/obj/item/camera/detective, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "aDJ" = ( @@ -14533,7 +13917,7 @@ /area/security/detectives_office) "aDL" = ( /obj/machinery/light/small, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -14805,13 +14189,16 @@ }, /area/engine/engineering) "aEn" = ( -/obj/structure/cable{ - icon_state = "2-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/obj/effect/turf_decal/stripes/line{ +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/yellow/side{ dir = 8 }, -/turf/open/floor/plating, /area/engine/engineering) "aEo" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -14824,29 +14211,26 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aEp" = ( -/obj/machinery/particle_accelerator/control_box, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"aEq" = ( -/obj/item/wrench, -/turf/open/floor/plating, -/area/engine/engineering) -"aEr" = ( -/obj/structure/particle_accelerator/particle_emitter/left{ - icon_state = "emitter_left"; - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"aEs" = ( -/obj/structure/cable{ +/obj/structure/cable/yellow{ icon_state = "1-2" }, -/turf/open/floor/plating, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aEr" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Fore Port"; + dir = 4; + network = list("singularity") + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, /area/engine/engineering) "aEt" = ( /obj/structure/table, @@ -14862,12 +14246,6 @@ }, /turf/open/floor/plasteel/floorgrime, /area/quartermaster/warehouse) -"aEu" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating/airless, -/area/space) "aEv" = ( /obj/machinery/computer/security/mining{ dir = 4; @@ -14932,12 +14310,6 @@ }, /turf/open/floor/plasteel/floorgrime, /area/quartermaster/warehouse) -"aEC" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plating/airless, -/area/space) "aED" = ( /obj/structure/closet/crate/internals, /obj/structure/cable/yellow{ @@ -15130,7 +14502,7 @@ /obj/structure/cable/yellow{ icon_state = "2-4" }, -/obj/item/device/radio/off, +/obj/item/radio/off, /obj/machinery/door/poddoor/shutters/preopen{ id = "briglockdown"; name = "brig shutters" @@ -15389,11 +14761,13 @@ /turf/open/floor/plating, /area/engine/engineering) "aFv" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 2 }, -/turf/open/floor/plating/airless, -/area/space) +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) "aFw" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 @@ -15410,73 +14784,26 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"aFy" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high{ - charge = 100; - maxcharge = 15000 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/yellow/side{ - dir = 10 - }, -/area/engine/engineering) -"aFz" = ( -/obj/structure/closet/firecloset, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) "aFA" = ( +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"aFB" = ( +/obj/structure/rack, /obj/machinery/button/door{ id = "engpa"; name = "Engineering Chamber Shutters Control"; pixel_y = -26; req_access_txt = "11" }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"aFB" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, +/obj/item/clothing/gloves/color/black, +/obj/item/wrench, +/obj/item/clothing/glasses/meson/engine, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/yellow/side, /area/engine/engineering) "aFC" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/camera/emp_proof{ - c_tag = "Containment - Particle Accelerator"; - dir = 1; - network = list("singularity") - }, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"aFD" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/yellow/side, /area/engine/engineering) "aFE" = ( /obj/structure/table/wood, @@ -15796,7 +15123,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -15860,7 +15187,7 @@ }, /area/hallway/primary/fore) "aGo" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/red/corner{ dir = 2 }, @@ -16217,14 +15544,8 @@ }, /area/engine/engineering) "aGV" = ( -/obj/machinery/power/apc/highcap/ten_k{ - dir = 8; - name = "Engine Room APC"; - areastring = "/area/engine/engineering"; - pixel_x = -26 - }, -/obj/structure/cable/yellow{ - icon_state = "0-4" +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 }, /turf/open/floor/plasteel/yellow/side{ dir = 8 @@ -16236,56 +15557,18 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aGX" = ( -/obj/structure/table, -/obj/item/clothing/glasses/meson, -/obj/item/clothing/glasses/meson, -/obj/item/clothing/glasses/meson, -/obj/item/storage/belt/utility, -/obj/item/storage/belt/utility, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = 10 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) -"aGY" = ( -/obj/machinery/vending/tool, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, +/turf/open/floor/plasteel, /area/engine/engineering) "aGZ" = ( -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) -"aHa" = ( -/obj/structure/rack, -/obj/machinery/button/door{ +/obj/machinery/door/poddoor/shutters/preopen{ id = "engpa"; - name = "Engineering Chamber Shutters Control"; - pixel_y = 26; - req_access_txt = "11" - }, -/obj/item/storage/belt/utility, -/obj/item/weldingtool, -/obj/item/clothing/head/welding, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 + name = "Engineering Chamber Shutters" }, +/turf/open/floor/plasteel, /area/engine/engineering) -"aHb" = ( -/obj/machinery/camera{ - c_tag = "Auxillary Mining Base"; - dir = 1 - }, -/obj/structure/mining_shuttle_beacon, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "aHc" = ( /obj/effect/spawner/structure/window, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -16620,12 +15903,6 @@ dir = 2 }, /area/crew_quarters/dorms) -"aHP" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) "aHQ" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -16695,60 +15972,24 @@ }, /area/maintenance/starboard/fore) "aHX" = ( -/obj/structure/closet/secure_closet/engineering_electrical, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, /turf/open/floor/plasteel/yellow/side{ - dir = 1 + dir = 8 }, /area/engine/engineering) "aHY" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/engine/engineering) -"aHZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, +"aIe" = ( +/obj/structure/lattice/catwalk, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aIa" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aIb" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Containment - Aft Port"; - dir = 4; - network = list("singularity") - }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"aIc" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space) -"aId" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating/airless, -/area/space) -"aIe" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/power/tesla_coil, -/turf/open/floor/plating/airless, +/turf/open/space, /area/space) "aIf" = ( /obj/machinery/camera{ @@ -16768,7 +16009,7 @@ /turf/open/floor/plating, /area/quartermaster/storage) "aIh" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = -28; @@ -16779,9 +16020,8 @@ supply_display = 1 }, /obj/machinery/conveyor{ - dir = 1; - id = "QMLoad2"; - movedir = 2 + dir = 5; + id = "QMLoad2" }, /turf/open/floor/plating, /area/quartermaster/storage) @@ -17005,7 +16245,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 2 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -17184,7 +16424,7 @@ /turf/open/floor/plasteel, /area/security/courtroom) "aIN" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -17240,7 +16480,7 @@ /area/security/courtroom) "aIU" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -17418,138 +16658,14 @@ /turf/open/floor/plating, /area/engine/engineering) "aJn" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Containment - Aft Starboard"; - dir = 8; - network = list("singularity") - }, -/turf/open/floor/plating/airless, -/area/space) -"aJo" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/table, +/obj/item/airlock_painter, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engine/engineering) -"aJp" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aJq" = ( -/obj/item/pen, -/obj/item/storage/belt/utility, -/obj/item/clothing/glasses/meson, -/obj/item/paper_bin{ - layer = 2.9 - }, -/obj/structure/table/glass, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aJr" = ( -/obj/item/book/manual/wiki/engineering_hacking{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/book/manual/wiki/engineering_construction, -/obj/item/clothing/gloves/color/yellow, -/obj/structure/table/glass, -/obj/item/device/flashlight, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aJs" = ( -/obj/item/book/manual/engineering_singularity_safety{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/book/manual/wiki/engineering_guide, -/obj/item/book/manual/engineering_particle_accelerator{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/item/clothing/gloves/color/yellow, -/obj/structure/table/glass, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aJt" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/space) "aJu" = ( /turf/open/floor/plating, /area/engine/engineering) -"aJv" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/space, -/area/space) -"aJw" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/space, -/area/space) -"aJx" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aJy" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/machinery/light, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"aJz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aJA" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/structure/cable/white{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "aJB" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/sign/warning/vacuum/external, @@ -17561,14 +16677,12 @@ }, /obj/machinery/conveyor{ dir = 1; - id = "QMLoad2"; - movedir = 2 + id = "QMLoad2" }, /turf/open/floor/plating, /area/quartermaster/storage) "aJD" = ( /obj/machinery/conveyor_switch/oneway{ - convdir = 1; id = "QMLoad2"; pixel_x = 6 }, @@ -17753,7 +16867,7 @@ /area/security/courtroom) "aJZ" = ( /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; dir = 8; listening = 0; @@ -17807,7 +16921,7 @@ /obj/structure/chair/office/dark{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_x = -28 @@ -17928,7 +17042,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /obj/item/reagent_containers/glass/bucket, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, @@ -17982,12 +17096,6 @@ /obj/machinery/portable_atmospherics/canister/toxins, /turf/open/floor/plating, /area/engine/engineering) -"aKy" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "aKz" = ( /obj/machinery/door/poddoor{ id = "Secure Storage"; @@ -17995,13 +17103,6 @@ }, /turf/open/floor/plating, /area/engine/engineering) -"aKA" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/engine/engineering) "aKB" = ( /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -18015,75 +17116,35 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/engine/engineering) -"aKD" = ( -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aKE" = ( -/obj/machinery/cryopod{ - tag = "icon-cryopod-open (EAST)"; - icon_state = "cryopod-open"; - dir = 4 - }, -/turf/open/floor/plasteel/vault, -/area/crew_quarters/locker) "aKF" = ( -/obj/machinery/computer/cryopod{ - pixel_y = -24 - }, -/turf/open/floor/plasteel/vault, -/area/crew_quarters/locker) -"aKG" = ( -/obj/machinery/cryopod, -/turf/open/floor/plasteel/vault, -/area/crew_quarters/locker) -"aKH" = ( -/obj/machinery/light, -/obj/machinery/vending/kink, -/turf/open/floor/plasteel/neutral/corner{ - dir = 2 - }, -/area/crew_quarters/locker) -"aKI" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 6 - }, -/area/engine/engineering) -"aKJ" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"aKK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/engine/engineering) -"aKL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"aKM" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ +/obj/effect/turf_decal/stripes/line{ dir = 8 }, -/turf/open/floor/plasteel/yellow/side, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aKG" = ( +/obj/structure/particle_accelerator/end_cap{ + icon_state = "end_cap"; + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aKH" = ( +/obj/structure/particle_accelerator/fuel_chamber{ + icon_state = "fuel_chamber"; + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aKI" = ( +/obj/structure/particle_accelerator/power_box{ + icon_state = "power_box"; + dir = 4 + }, +/turf/open/floor/plating, /area/engine/engineering) "aKN" = ( /obj/machinery/door/poddoor{ @@ -18093,8 +17154,7 @@ }, /obj/machinery/conveyor{ dir = 4; - id = "QMLoad2"; - movedir = 8 + id = "QMLoad2" }, /turf/open/floor/plating, /area/quartermaster/storage) @@ -18102,16 +17162,14 @@ /obj/structure/plasticflaps, /obj/machinery/conveyor{ dir = 4; - id = "QMLoad2"; - movedir = 8 + id = "QMLoad2" }, /turf/open/floor/plating, /area/quartermaster/storage) "aKP" = ( -/obj/machinery/conveyor{ - dir = 1; - id = "QMLoad2"; - movedir = 2 +/obj/machinery/conveyor/inverted{ + dir = 10; + id = "QMLoad2" }, /turf/open/floor/plating, /area/quartermaster/storage) @@ -18249,7 +17307,7 @@ "aLf" = ( /obj/structure/table, /obj/item/clothing/gloves/color/fyellow, -/obj/item/device/gps{ +/obj/item/gps{ gpstag = "AUX0" }, /turf/open/floor/plasteel/brown{ @@ -18320,10 +17378,10 @@ /area/storage/primary) "aLm" = ( /obj/structure/table, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/signaler, -/obj/item/device/multitool, -/obj/item/device/multitool{ +/obj/item/assembly/signaler, +/obj/item/assembly/signaler, +/obj/item/multitool, +/obj/item/multitool{ pixel_x = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -18487,16 +17545,6 @@ }, /turf/open/floor/plasteel/vault, /area/crew_quarters/locker) -"aLI" = ( -/obj/structure/cable/white{ - icon_state = "1-4" - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) "aLJ" = ( /obj/structure/rack, /obj/item/stock_parts/matter_bin, @@ -18514,26 +17562,6 @@ dir = 4 }, /area/crew_quarters/locker) -"aLM" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - name = "External Containment Access"; - req_access_txt = "10; 13" - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) "aLN" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/machinery/portable_atmospherics/pump, @@ -18558,7 +17586,7 @@ "aLP" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/machinery/portable_atmospherics/scrubber, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -18662,12 +17690,6 @@ /obj/effect/landmark/blobstart, /turf/open/floor/plating, /area/engine/engineering) -"aMc" = ( -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "aMd" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable{ @@ -18687,93 +17709,53 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/engine/engineering) -"aMf" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "aMg" = ( -/obj/effect/decal/cleanable/oil, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 }, -/turf/open/floor/plating/airless, /area/engine/engineering) "aMh" = ( -/obj/machinery/light/small, -/turf/open/floor/plating, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engpa"; + name = "Engineering Chamber Shutters" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, /area/engine/engineering) "aMi" = ( -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"aMj" = ( -/obj/structure/cable/white{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/power/emitter{ - anchored = 1; - dir = 1; - icon_state = "emitter"; - state = 2 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"aMk" = ( -/obj/structure/cable/white{ - icon_state = "2-4" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"aMl" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"aMm" = ( -/obj/structure/cable/white{ +/obj/structure/cable{ icon_state = "2-8" }, -/obj/structure/grille, /obj/effect/turf_decal/stripes/line{ - dir = 5 + dir = 8 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/engine/engineering) -"aMn" = ( -/obj/structure/lattice, -/turf/open/space, +"aMk" = ( +/obj/machinery/particle_accelerator/control_box, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/turf/open/floor/plating, /area/engine/engineering) "aMo" = ( -/obj/structure/grille, -/obj/structure/cable/white{ - icon_state = "1-4" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"aMp" = ( -/obj/structure/grille, /obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable/white{ - icon_state = "4-8" + dir = 2 }, /turf/open/floor/plating/airless, -/area/engine/engineering) +/area/space) "aMq" = ( /obj/structure/window/reinforced, /turf/open/space, @@ -18933,7 +17915,7 @@ /area/ai_monitored/turret_protected/ai_upload) "aMJ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -19209,31 +18191,18 @@ /obj/item/stack/sheet/mineral/plasma{ amount = 30 }, -/obj/item/device/gps, +/obj/item/gps, /turf/open/floor/plating, /area/engine/engineering) -"aNp" = ( -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable/white{ - icon_state = "1-8" - }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "aNq" = ( -/obj/structure/cable/white{ - icon_state = "1-8" +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plating/airless, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, /area/engine/engineering) "aNr" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -19242,37 +18211,28 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"aNs" = ( -/obj/structure/cable/white{ - icon_state = "1-4" +"aNu" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Particle Accelerator"; + dir = 1; + network = list("singularity") }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"aNt" = ( -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable/white{ +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable{ icon_state = "1-8" }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"aNu" = ( -/turf/closed/wall/r_wall, -/area/space) -"aNv" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/effect/spawner/lootdrop/maintenance, -/obj/structure/window/reinforced{ - dir = 4 - }, /turf/open/floor/plating, -/area/maintenance/starboard) +/area/engine/engineering) +"aNv" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/engine/engineering) "aNw" = ( /obj/structure/window/reinforced{ dir = 4 @@ -19330,10 +18290,6 @@ /obj/structure/lattice, /turf/open/space, /area/space/nearstation) -"aND" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/pod_1) "aNE" = ( /obj/machinery/button/door{ id = "QMLoaddoor"; @@ -19530,11 +18486,11 @@ /area/storage/primary) "aNY" = ( /obj/structure/table, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = -4; pixel_y = -4 }, -/obj/item/device/assembly/igniter, +/obj/item/assembly/igniter, /obj/item/screwdriver{ pixel_y = 16 }, @@ -19633,7 +18589,7 @@ /turf/open/floor/plasteel/neutral/side, /area/security/courtroom) "aOj" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/neutral/side, /area/security/courtroom) "aOk" = ( @@ -19664,7 +18620,7 @@ /turf/open/floor/plasteel, /area/security/courtroom) "aOn" = ( -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/item/cartridge/lawyer, /obj/structure/table/wood, /obj/machinery/button/door{ @@ -19926,8 +18882,19 @@ }, /area/hydroponics/garden) "aOO" = ( -/turf/open/space, -/area/space/nearstation) +/obj/machinery/power/apc/highcap/ten_k{ + dir = 8; + name = "Engine Room APC"; + areastring = "/area/engine/engineering"; + pixel_x = -26 + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) "aOP" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable{ @@ -19949,13 +18916,12 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"aOR" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/purple/visible{ +"aOS" = ( +/obj/effect/turf_decal/stripes/corner{ dir = 4 }, -/turf/open/space, -/area/space/nearstation) +/turf/open/floor/plating/airless, +/area/space) "aOT" = ( /obj/structure/window/reinforced{ dir = 4 @@ -20003,31 +18969,6 @@ }, /turf/open/space, /area/space/nearstation) -"aOZ" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_1) -"aPa" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/item/device/radio/intercom{ - pixel_x = 25 - }, -/obj/item/storage/pod{ - pixel_x = -26 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_2) -"aPb" = ( -/obj/structure/closet/secure_closet/miner/unlocked, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "aPd" = ( /obj/machinery/light/small{ dir = 1 @@ -20187,7 +19128,7 @@ "aPr" = ( /obj/structure/table, /obj/item/wirecutters, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = 1; pixel_y = 5 }, @@ -20424,7 +19365,7 @@ /turf/open/floor/grass, /area/hydroponics/garden) "aPR" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -20501,20 +19442,27 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engine/engineering) -"aQf" = ( -/obj/structure/chair{ - dir = 4 +"aPZ" = ( +/obj/machinery/vending/tool, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aQd" = ( +/obj/structure/rack, +/obj/machinery/button/door{ + id = "engpa"; + name = "Engineering Chamber Shutters Control"; + pixel_y = 26; + req_access_txt = "11" }, -/obj/machinery/status_display{ - pixel_y = 32 +/obj/item/storage/belt/utility, +/obj/item/weldingtool, +/obj/item/clothing/head/welding, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 }, -/obj/machinery/computer/shuttle/pod{ - pixel_y = -32; - possible_destinations = "pod_lavaland3"; - shuttleId = "pod3" - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_3) +/area/engine/engineering) "aQg" = ( /obj/machinery/door/poddoor{ density = 1; @@ -20536,8 +19484,8 @@ /turf/open/floor/plating, /area/quartermaster/storage) "aQi" = ( -/obj/machinery/conveyor{ - dir = 8; +/obj/machinery/conveyor/inverted{ + dir = 6; id = "QMLoad" }, /turf/open/floor/plating, @@ -20636,7 +19584,7 @@ pixel_x = -4; pixel_y = 7 }, -/obj/item/device/gps{ +/obj/item/gps{ gpstag = "QM0" }, /turf/open/floor/plasteel, @@ -20677,13 +19625,13 @@ /area/storage/primary) "aQy" = ( /obj/structure/table, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 }, /obj/item/clothing/gloves/color/yellow, -/obj/item/device/t_scanner, +/obj/item/t_scanner, /turf/open/floor/plasteel/brown{ dir = 4 }, @@ -20730,7 +19678,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload) "aQC" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; name = "Private AI Channel"; @@ -20958,7 +19906,7 @@ /area/crew_quarters/locker) "aQY" = ( /obj/structure/table, -/obj/item/device/paicard, +/obj/item/paicard, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -21106,6 +20054,27 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) +"aRo" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aRp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "aRq" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -21140,21 +20109,6 @@ "aRA" = ( /turf/closed/wall, /area/hallway/secondary/entry) -"aRB" = ( -/obj/structure/shuttle/engine/propulsion/burst, -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_1) -"aRC" = ( -/obj/machinery/door/airlock/titanium{ - name = "Escape Pod Airlock" - }, -/obj/docking_port/mobile/pod{ - id = "pod1"; - name = "escape pod 1"; - port_direction = 2 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) "aRD" = ( /obj/machinery/light{ dir = 8 @@ -21188,8 +20142,7 @@ "aRH" = ( /obj/machinery/conveyor{ dir = 1; - id = "QMLoad"; - movedir = 2 + id = "QMLoad" }, /turf/open/floor/plating, /area/quartermaster/storage) @@ -21204,7 +20157,7 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 @@ -21234,7 +20187,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -21440,7 +20393,7 @@ /obj/item/cultivator, /obj/item/crowbar, /obj/item/reagent_containers/glass/bucket, -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -21476,7 +20429,7 @@ /obj/item/storage/bag/plants/portaseeder, /obj/structure/table, /obj/machinery/light, -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -21572,6 +20525,56 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) +"aSw" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aSx" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aSz" = ( +/obj/item/pen, +/obj/item/storage/belt/utility, +/obj/item/clothing/glasses/meson, +/obj/item/paper_bin{ + layer = 2.9 + }, +/obj/structure/table/glass, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aSA" = ( +/obj/item/book/manual/wiki/engineering_hacking{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/book/manual/wiki/engineering_construction, +/obj/item/clothing/gloves/color/yellow, +/obj/structure/table/glass, +/obj/item/flashlight, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aSB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "aSD" = ( /obj/structure/window/reinforced, /obj/structure/window/reinforced{ @@ -21670,7 +20673,7 @@ /area/maintenance/port/fore) "aSQ" = ( /obj/machinery/conveyor_switch/oneway{ - convdir = 1; + dir = 8; id = "QMLoad"; pixel_x = 6 }, @@ -21871,7 +20874,7 @@ /turf/open/floor/plasteel/dark, /area/security/courtroom) "aTm" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -21968,7 +20971,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -22057,6 +21060,55 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) +"aTG" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aTH" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/light, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"aTI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aTJ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aTK" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "aTQ" = ( /obj/structure/window/reinforced{ dir = 4 @@ -22194,8 +21246,7 @@ }, /obj/machinery/conveyor{ dir = 1; - id = "QMLoad"; - movedir = 2 + id = "QMLoad" }, /turf/open/floor/plating, /area/quartermaster/storage) @@ -22257,7 +21308,7 @@ /obj/item/screwdriver{ pixel_y = 10 }, -/obj/item/device/radio/off, +/obj/item/radio/off, /obj/machinery/light{ dir = 1 }, @@ -22316,7 +21367,7 @@ "aUs" = ( /obj/structure/table, /obj/item/crowbar, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, @@ -22365,7 +21416,7 @@ name = "AI Upload turret control"; pixel_y = 28 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; name = "Private AI Channel"; @@ -22576,6 +21627,28 @@ "aUM" = ( /turf/closed/wall, /area/crew_quarters/locker) +"aUN" = ( +/obj/machinery/cryopod{ + tag = "icon-cryopod-open (EAST)"; + icon_state = "cryopod-open"; + dir = 4 + }, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/locker) +"aUO" = ( +/obj/machinery/computer/cryopod{ + pixel_y = -26 + }, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/locker) +"aUP" = ( +/obj/machinery/cryopod{ + tag = "icon-cryopod-open (WEST)"; + icon_state = "cryopod-open"; + dir = 8 + }, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/locker) "aUQ" = ( /turf/open/floor/plasteel/vault, /area/crew_quarters/locker) @@ -22641,6 +21714,19 @@ /obj/structure/closet/wardrobe/engineering_yellow, /turf/open/floor/plasteel, /area/engine/engineering) +"aUZ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/plasteel{ + dir = 1 + }, +/area/engine/engineering) "aVa" = ( /obj/machinery/requests_console{ announcementConsole = 0; @@ -22669,6 +21755,26 @@ dir = 1 }, /area/engine/engineering) +"aVd" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/closet/secure_closet/engineering_electrical, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"aVe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/engine/engineering) +"aVh" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "aVk" = ( /obj/structure/window/reinforced{ dir = 1; @@ -22748,7 +21854,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "aVv" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -22945,7 +22051,7 @@ /turf/open/floor/plasteel, /area/security/checkpoint/supply) "aVQ" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 @@ -23115,7 +22221,7 @@ /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-16" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -23295,6 +22401,16 @@ dir = 1 }, /area/engine/engineering) +"aWK" = ( +/obj/structure/cable/white{ + icon_state = "2-4" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "aWL" = ( /obj/machinery/ai_status_display{ pixel_x = -32 @@ -23736,7 +22852,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -24036,8 +23152,8 @@ pixel_y = -1 }, /obj/item/clothing/gloves/color/yellow, -/obj/item/device/t_scanner, -/obj/item/device/multitool, +/obj/item/t_scanner, +/obj/item/multitool, /turf/open/floor/plasteel/dark, /area/storage/tech) "aYj" = ( @@ -24085,20 +23201,20 @@ /area/storage/tech) "aYm" = ( /obj/structure/table, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = 1; pixel_y = 5 }, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = 1; pixel_y = 5 }, /obj/machinery/light/small{ dir = 1 }, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/radio/intercom{ +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -24108,12 +23224,12 @@ /area/storage/tech) "aYn" = ( /obj/structure/table, -/obj/item/device/aicard, +/obj/item/aicard, /obj/item/aiModule/reset, /turf/open/floor/plasteel/dark, /area/storage/tech) "aYo" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -24175,7 +23291,7 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aYt" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -24189,6 +23305,16 @@ "aYu" = ( /turf/closed/wall, /area/security/checkpoint/engineering) +"aYx" = ( +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "aYy" = ( /obj/machinery/camera{ c_tag = "AI Chamber - Port"; @@ -24704,7 +23830,7 @@ /area/crew_quarters/heads/chief) "aZD" = ( /obj/structure/table/reinforced, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/neutral/corner{ dir = 2 }, @@ -24797,7 +23923,7 @@ /area/security/checkpoint/engineering) "aZM" = ( /obj/structure/table, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_y = 29 @@ -24832,7 +23958,7 @@ /area/library) "aZQ" = ( /obj/effect/landmark/start/ai/secondary, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; freerange = 1; listening = 0; @@ -24840,14 +23966,14 @@ pixel_x = -10; pixel_y = 22 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 1; listening = 1; name = "Common Channel"; pixel_x = -27 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; broadcasting = 0; freerange = 1; @@ -24934,7 +24060,7 @@ /area/ai_monitored/turret_protected/ai) "aZY" = ( /obj/effect/landmark/start/ai/secondary, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; freerange = 1; listening = 0; @@ -24942,14 +24068,14 @@ pixel_x = 10; pixel_y = 22 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 1; listening = 1; name = "Common Channel"; pixel_x = 27 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; broadcasting = 0; freerange = 1; @@ -25068,7 +24194,7 @@ /turf/open/floor/plating, /area/maintenance/port/fore) "bal" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -25131,7 +24257,7 @@ }, /obj/item/stack/wrapping_paper, /obj/item/stack/wrapping_paper, -/obj/item/device/destTagger{ +/obj/item/destTagger{ pixel_x = 4; pixel_y = 3 }, @@ -25528,7 +24654,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -25592,7 +24718,7 @@ /area/storage/tools) "bbf" = ( /obj/structure/closet/toolcloset, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -25652,7 +24778,7 @@ c_tag = "Secure Tech Storage"; dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -25847,7 +24973,7 @@ /obj/item/screwdriver{ pixel_y = 10 }, -/obj/item/device/radio/off, +/obj/item/radio/off, /obj/machinery/computer/security/telescreen{ dir = 4; name = "MiniSat Monitor"; @@ -26071,7 +25197,7 @@ /area/hallway/primary/port) "bcb" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -26151,7 +25277,7 @@ }, /obj/item/clothing/gloves/color/fyellow, /obj/item/clothing/suit/hazardvest, -/obj/item/device/multitool, +/obj/item/multitool, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plasteel/yellow/side{ dir = 8 @@ -26278,7 +25404,7 @@ pixel_y = 16 }, /obj/item/wirecutters, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -26473,7 +25599,7 @@ }, /area/security/checkpoint/customs) "bcZ" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20 @@ -26766,11 +25892,11 @@ /area/maintenance/central) "bdH" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = -27 @@ -26932,7 +26058,7 @@ /area/storage/tech) "bea" = ( /obj/structure/table, -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /obj/machinery/firealarm{ dir = 1; pixel_y = -24 @@ -26941,8 +26067,8 @@ /area/storage/tech) "beb" = ( /obj/structure/table, -/obj/item/device/analyzer, -/obj/item/device/healthanalyzer, +/obj/item/analyzer, +/obj/item/healthanalyzer, /obj/machinery/camera/autoname{ dir = 1 }, @@ -26954,7 +26080,7 @@ pixel_x = 1; pixel_y = -1 }, -/obj/item/device/multitool, +/obj/item/multitool, /obj/item/clothing/glasses/meson, /obj/machinery/light_switch{ pixel_y = -28 @@ -26989,7 +26115,7 @@ /obj/structure/disposalpipe/trunk{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -27506,7 +26632,7 @@ /turf/open/floor/plating, /area/maintenance/central) "bfp" = ( -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = 1; pixel_y = 5 }, @@ -27835,15 +26961,6 @@ }, /turf/open/floor/plating, /area/engine/break_room) -"bga" = ( -/obj/structure/shuttle/engine/propulsion/burst{ - dir = 8 - }, -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_4) -"bgb" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_4) "bgc" = ( /obj/machinery/door/airlock/hatch{ name = "MiniSat Space Access Airlock"; @@ -27937,7 +27054,7 @@ pixel_x = 5; pixel_y = -1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; listening = 0; @@ -27983,8 +27100,8 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/closet, /obj/item/crowbar, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/radio, +/obj/item/assembly/flash/handheld, +/obj/item/radio, /turf/open/floor/plasteel/red/side{ dir = 10 }, @@ -28505,10 +27622,10 @@ /obj/item/storage/photo_album{ pixel_y = -4 }, -/obj/item/device/camera{ +/obj/item/camera{ pixel_y = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; freerange = 1; name = "Station Intercom (Captain)"; @@ -28845,7 +27962,7 @@ }, /area/engine/break_room) "bia" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -28898,33 +28015,6 @@ "bif" = ( /turf/open/floor/plating, /area/engine/break_room) -"big" = ( -/obj/machinery/door/airlock/titanium{ - name = "Escape Pod Airlock" - }, -/obj/docking_port/mobile/pod{ - dir = 4; - id = "pod4"; - name = "escape pod 4"; - port_direction = 2; - preferred_direction = 4 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_4) -"bih" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/item/device/radio/intercom{ - pixel_y = 25 - }, -/obj/item/storage/pod{ - pixel_x = 6; - pixel_y = -32 - }, -/obj/machinery/light/small, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_3) "bii" = ( /obj/docking_port/stationary/random{ dir = 4; @@ -28933,10 +28023,6 @@ }, /turf/open/space, /area/space/nearstation) -"bij" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/pod_4) "bik" = ( /obj/machinery/light/small, /obj/machinery/camera{ @@ -29107,7 +28193,7 @@ /area/quartermaster/sorting) "biE" = ( /obj/machinery/conveyor_switch/oneway{ - convdir = -1; + dir = 8; id = "packageExternal"; pixel_y = 18 }, @@ -29141,7 +28227,7 @@ /area/quartermaster/sorting) "biJ" = ( /obj/structure/table, -/obj/item/device/destTagger{ +/obj/item/destTagger{ pixel_x = 4; pixel_y = 3 }, @@ -29157,7 +28243,7 @@ /obj/item/clipboard, /obj/item/folder/yellow, /obj/item/folder/yellow, -/obj/item/device/multitool, +/obj/item/multitool, /obj/item/pen/red, /turf/open/floor/plasteel/brown{ dir = 8 @@ -29239,7 +28325,7 @@ dir = 1 }, /obj/machinery/light/small, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = -28 @@ -29347,7 +28433,7 @@ /area/crew_quarters/heads/captain/private) "bjh" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -29774,7 +28860,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -29873,7 +28959,7 @@ /area/quartermaster/sorting) "bkk" = ( /obj/structure/filingcabinet/filingcabinet, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -29993,7 +29079,7 @@ /obj/machinery/newscaster{ pixel_x = 28 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -30066,8 +29152,8 @@ /area/hallway/primary/port) "bkw" = ( /obj/structure/table, -/obj/item/device/toner, -/obj/item/device/radio/intercom{ +/obj/item/toner, +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -30117,7 +29203,7 @@ }, /area/bridge) "bkD" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 29 @@ -30141,7 +29227,7 @@ }, /area/bridge) "bkF" = ( -/obj/item/device/beacon, +/obj/item/beacon, /obj/structure/cable/yellow{ icon_state = "1-2" }, @@ -30334,7 +29420,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -30633,7 +29719,7 @@ pixel_x = -26; pixel_y = 3 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; listening = 0; @@ -30896,7 +29982,7 @@ }, /area/hallway/primary/central) "bmo" = ( -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -30943,7 +30029,7 @@ /turf/open/floor/plating, /area/maintenance/central) "bmt" = ( -/obj/item/device/radio/off, +/obj/item/radio/off, /obj/effect/turf_decal/stripes/line{ dir = 4 }, @@ -31302,7 +30388,7 @@ /area/engine/break_room) "bnd" = ( /obj/structure/table/glass, -/obj/item/device/lightreplacer{ +/obj/item/lightreplacer{ pixel_y = 7 }, /obj/item/storage/belt/utility, @@ -31341,7 +30427,7 @@ pixel_x = -3; pixel_y = 5 }, -/obj/item/device/taperecorder{ +/obj/item/taperecorder{ pixel_x = -4 }, /turf/open/floor/plasteel, @@ -31672,7 +30758,7 @@ /area/hallway/secondary/entry) "bnN" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -31819,7 +30905,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -31914,7 +31000,7 @@ icon_state = "4-8" }, /obj/structure/table/wood, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/wood, /area/crew_quarters/heads/hop) "bon" = ( @@ -32074,7 +31160,7 @@ /obj/machinery/computer/communications{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; freerange = 1; name = "Station Intercom (Captain)"; @@ -32097,7 +31183,7 @@ /area/crew_quarters/heads/captain/private) "boJ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_x = -28 @@ -32573,7 +31659,7 @@ icon_state = "4-8" }, /obj/machinery/holopad, -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat/foyer) "bpL" = ( @@ -33048,7 +32134,7 @@ /obj/machinery/vending/cart{ req_access_txt = "57" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -33101,8 +32187,8 @@ /area/bridge) "bqK" = ( /obj/structure/rack, -/obj/item/device/aicard, -/obj/item/device/radio/off, +/obj/item/aicard, +/obj/item/radio/off, /obj/machinery/computer/security/telescreen{ dir = 1; name = "MiniSat Monitor"; @@ -33148,16 +32234,16 @@ /turf/open/floor/plasteel/dark, /area/bridge) "bqP" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_y = -29 }, /obj/structure/rack, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/timer, +/obj/item/assembly/signaler, +/obj/item/assembly/signaler, +/obj/item/assembly/timer, /turf/open/floor/plasteel/darkblue/side{ dir = 1 }, @@ -33171,7 +32257,7 @@ pixel_y = -3 }, /obj/item/wrench, -/obj/item/device/multitool, +/obj/item/multitool, /obj/machinery/newscaster{ pixel_y = -30 }, @@ -33368,7 +32454,7 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -33463,7 +32549,7 @@ }, /area/maintenance/starboard) "brs" = ( -/obj/item/device/assembly/prox_sensor, +/obj/item/assembly/prox_sensor, /obj/structure/cable/yellow{ icon_state = "4-8" }, @@ -33813,7 +32899,7 @@ /area/aisat) "brW" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -28 }, @@ -33946,7 +33032,7 @@ /area/ai_monitored/storage/satellite) "bsh" = ( /obj/structure/table, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -28 }, @@ -33974,7 +33060,7 @@ pixel_y = 3 }, /obj/item/storage/toolbox/mechanical, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plasteel/dark, /area/ai_monitored/storage/satellite) "bsj" = ( @@ -33999,7 +33085,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bsm" = ( -/obj/item/device/beacon, +/obj/item/beacon, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/hallway/secondary/entry) @@ -34080,7 +33166,7 @@ }, /area/hallway/primary/port) "bsw" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -34441,7 +33527,7 @@ /obj/structure/table/wood, /obj/item/hand_tele, /obj/structure/window/reinforced, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = 27 @@ -34521,12 +33607,12 @@ /area/storage/art) "btm" = ( /obj/structure/table, -/obj/item/device/camera, +/obj/item/camera, /turf/open/floor/plasteel, /area/storage/art) "btn" = ( /obj/structure/table, -/obj/item/device/camera_film, +/obj/item/camera_film, /obj/machinery/firealarm{ dir = 4; pixel_x = 28 @@ -34670,7 +33756,7 @@ /turf/open/floor/plasteel, /area/engine/break_room) "btE" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -35106,7 +34192,7 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = -26 @@ -35325,7 +34411,7 @@ }, /area/maintenance/starboard) "bvf" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 1; listening = 1; @@ -35333,14 +34419,14 @@ pixel_x = -27; pixel_y = -7 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_y = -27 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; broadcasting = 0; freerange = 1; @@ -35435,7 +34521,7 @@ /obj/structure/table/glass, /obj/item/wrench, /obj/item/crowbar, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = 1; pixel_y = 5 }, @@ -35494,7 +34580,7 @@ /obj/machinery/light/small{ dir = 8 }, -/obj/item/device/radio/off{ +/obj/item/radio/off{ pixel_y = 4 }, /obj/item/screwdriver{ @@ -35542,14 +34628,14 @@ /obj/machinery/ai_status_display{ pixel_y = 31 }, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/grimy, /area/tcommsat/computer) "bvA" = ( /obj/machinery/light/small{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; freerange = 1; name = "Station Intercom (Telecomms)"; @@ -35773,7 +34859,7 @@ pixel_x = -32 }, /obj/effect/decal/cleanable/cobweb, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -35799,7 +34885,7 @@ /area/library) "bwf" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -35938,7 +35024,7 @@ /area/bridge) "bws" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -35949,7 +35035,7 @@ /obj/item/book/manual/wiki/security_space_law{ pixel_y = 3 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 28 @@ -36237,7 +35323,7 @@ /turf/open/floor/wood, /area/crew_quarters/bar) "bwU" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -36546,7 +35632,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -36789,7 +35875,7 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = -26 @@ -37094,7 +36180,7 @@ /area/ai_monitored/storage/satellite) "byP" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/caution{ dir = 8 }, @@ -37105,7 +36191,7 @@ }, /area/hallway/primary/starboard) "byR" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -37255,8 +36341,7 @@ }, /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "Distro to Waste"; - on = 0 + name = "Distro to Waste" }, /turf/open/floor/plasteel/caution{ dir = 1 @@ -37569,7 +36654,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/command) "bzM" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -37589,7 +36674,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/command) "bzO" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -37744,7 +36829,7 @@ /turf/open/floor/carpet, /area/crew_quarters/heads/captain/private) "bAf" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = -26 @@ -38180,7 +37265,7 @@ /area/security/vacantoffice) "bBi" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/wood, /area/security/vacantoffice) "bBj" = ( @@ -38191,10 +37276,10 @@ /area/maintenance/starboard) "bBk" = ( /obj/structure/table/wood, -/obj/item/device/camera_film{ +/obj/item/camera_film{ pixel_y = 9 }, -/obj/item/device/camera_film{ +/obj/item/camera_film{ pixel_x = -3; pixel_y = 5 }, @@ -38244,7 +37329,7 @@ /area/crew_quarters/toilet/auxiliary) "bBq" = ( /obj/structure/rack, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port) @@ -38710,9 +37795,9 @@ "bCn" = ( /obj/structure/table, /obj/item/storage/belt/utility, -/obj/item/device/t_scanner, -/obj/item/device/t_scanner, -/obj/item/device/t_scanner, +/obj/item/t_scanner, +/obj/item/t_scanner, +/obj/item/t_scanner, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -38748,10 +37833,9 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bCr" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 0; - name = "Waste to Filter"; - on = 1 + name = "Waste to Filter" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -38799,6 +37883,13 @@ }, /turf/open/floor/plating, /area/engine/atmos) +"bCz" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 4 + }, +/turf/open/space, +/area/space/nearstation) "bCA" = ( /obj/machinery/meter, /obj/machinery/atmospherics/pipe/simple/yellow/visible{ @@ -39045,7 +38136,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -39167,7 +38258,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -39407,10 +38498,9 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bDX" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 8; - name = "Mix to Filter"; - on = 1 + name = "Mix to Filter" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -40630,7 +39720,7 @@ /turf/open/floor/wood, /area/library) "bGv" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)" }, @@ -41258,7 +40348,7 @@ /area/library) "bHT" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -41340,7 +40430,7 @@ "bIe" = ( /obj/structure/table, /obj/item/hand_tele, -/obj/item/device/beacon, +/obj/item/beacon, /obj/machinery/airalarm{ dir = 4; pixel_x = -23 @@ -41489,7 +40579,7 @@ /obj/item/stack/sheet/metal/fifty, /obj/item/stack/rods/fifty, /obj/item/storage/toolbox/emergency, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/machinery/power/apc/highcap/five_k{ dir = 4; name = "Gateway APC"; @@ -41543,7 +40633,7 @@ /turf/open/floor/plasteel/bar, /area/crew_quarters/bar) "bIu" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -41696,10 +40786,9 @@ }, /area/engine/atmos) "bIO" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 8; - name = "Air to External Air Ports"; - on = 1 + name = "Air to External Air Ports" }, /turf/open/floor/plasteel/caution{ dir = 8 @@ -41927,7 +41016,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -42024,11 +41113,11 @@ /obj/structure/table, /obj/item/storage/belt/utility, /obj/item/storage/belt/utility, -/obj/item/device/radio/off, -/obj/item/device/radio/off, -/obj/item/device/radio/off, -/obj/item/device/radio/off, -/obj/item/device/multitool, +/obj/item/radio/off, +/obj/item/radio/off, +/obj/item/radio/off, +/obj/item/radio/off, +/obj/item/multitool, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "bJG" = ( @@ -42096,7 +41185,7 @@ }, /obj/item/stack/sheet/metal/fifty, /obj/item/storage/toolbox/emergency, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/structure/window/reinforced, /obj/structure/cable/yellow{ icon_state = "4-8" @@ -42146,7 +41235,7 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/neutral/side{ dir = 2 }, @@ -42430,10 +41519,9 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "bKv" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; - name = "External Waste Ports to Filter"; - on = 1 + name = "External Waste Ports to Filter" }, /obj/machinery/airalarm{ dir = 4; @@ -42459,7 +41547,7 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bKy" = ( -/obj/item/device/beacon, +/obj/item/beacon, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 }, @@ -42474,16 +41562,14 @@ "bKA" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 0; - name = "Air to Ports"; - on = 0 + name = "Air to Ports" }, /turf/open/floor/plasteel, /area/engine/atmos) "bKB" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 0; - name = "Mix to Ports"; - on = 0 + name = "Mix to Ports" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -43176,7 +42262,7 @@ /area/engine/atmos) "bMe" = ( /obj/structure/reagent_dispensers/fueltank, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -43335,7 +42421,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -43500,8 +42586,8 @@ dir = 1 }, /obj/structure/table/wood, -/obj/item/device/taperecorder, -/obj/item/device/tape, +/obj/item/taperecorder, +/obj/item/tape, /turf/open/floor/wood, /area/library) "bMN" = ( @@ -43674,7 +42760,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -43784,7 +42870,7 @@ /obj/machinery/light{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = 29 @@ -43832,7 +42918,7 @@ /area/maintenance/central) "bNt" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_x = -28 @@ -44050,8 +43136,7 @@ }, /obj/machinery/atmospherics/components/binary/pump{ dir = 0; - name = "Port Mix to West Ports"; - on = 0 + name = "Port Mix to West Ports" }, /obj/machinery/light/small{ dir = 8 @@ -44895,7 +43980,7 @@ /area/library) "bPT" = ( /obj/structure/table/wood, -/obj/item/device/paicard, +/obj/item/paicard, /turf/open/floor/wood, /area/library) "bPU" = ( @@ -45343,10 +44428,7 @@ /turf/closed/wall, /area/engine/atmos) "bQU" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - filter_type = -1; - on = 1 - }, +/obj/machinery/atmospherics/components/trinary/filter/atmos, /turf/open/floor/plasteel, /area/engine/atmos) "bQV" = ( @@ -45454,9 +44536,9 @@ /turf/open/floor/engine/cult, /area/library) "bRm" = ( -/obj/item/device/taperecorder, -/obj/item/device/camera, -/obj/item/device/radio/intercom{ +/obj/item/taperecorder, +/obj/item/camera, +/obj/item/radio/intercom{ pixel_y = -25 }, /obj/structure/table/wood, @@ -45470,7 +44552,7 @@ /area/library) "bRo" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 @@ -45729,9 +44811,9 @@ /area/gateway) "bRK" = ( /obj/item/storage/belt/utility, -/obj/item/device/radio/off, -/obj/item/device/radio/off, -/obj/item/device/radio/off, +/obj/item/radio/off, +/obj/item/radio/off, +/obj/item/radio/off, /obj/structure/rack, /obj/machinery/button/door{ id = "gateshutter"; @@ -45903,7 +44985,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -46190,7 +45272,7 @@ "bSC" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 @@ -46500,8 +45582,7 @@ "bTk" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 0; - name = "Port to Filter"; - on = 0 + name = "Port to Filter" }, /obj/machinery/light/small{ dir = 8 @@ -46542,6 +45623,9 @@ /obj/structure/sign/warning/electricshock, /turf/closed/wall, /area/maintenance/solars/port/aft) +"bTq" = ( +/turf/open/floor/plating/airless, +/area/engine/engineering) "bTr" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/airlock/maintenance/abandoned{ @@ -46725,7 +45809,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -46852,7 +45936,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -47114,6 +46198,14 @@ icon_state = "panelscorched" }, /area/maintenance/starboard) +"bUw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/engine/engineering) "bUx" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 @@ -47153,7 +46245,7 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bUC" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -47168,8 +46260,7 @@ "bUD" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "Port to Filter"; - on = 0 + name = "Port to Filter" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -47759,7 +46850,7 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 @@ -48426,8 +47517,7 @@ }, /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "Fuel Pipe to Filter"; - on = 0 + name = "Fuel Pipe to Filter" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -48553,7 +47643,7 @@ /area/maintenance/port) "bXy" = ( /obj/structure/closet, -/obj/item/device/flashlight, +/obj/item/flashlight, /turf/open/floor/plating, /area/maintenance/port/aft) "bXz" = ( @@ -48568,7 +47658,7 @@ /area/maintenance/port/aft) "bXA" = ( /obj/structure/table, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plating, /area/maintenance/port/aft) "bXB" = ( @@ -48611,7 +47701,7 @@ "bXH" = ( /obj/structure/closet/crate, /obj/item/coin/silver, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port) @@ -48889,9 +47979,9 @@ /obj/structure/rack, /obj/item/tank/internals/oxygen, /obj/item/tank/internals/oxygen, -/obj/item/device/radio/off, -/obj/item/device/radio/off, -/obj/item/device/radio/intercom{ +/obj/item/radio/off, +/obj/item/radio/off, +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = 27 @@ -48962,20 +48052,15 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bYy" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; - name = "N2 to Airmix"; - on = 1 + name = "N2 to Airmix" }, /turf/open/floor/plasteel, /area/engine/atmos) "bYz" = ( -/obj/machinery/atmospherics/components/trinary/mixer{ - dir = 4; - node1_concentration = 0.8; - node2_concentration = 0.2; - on = 1; - target_pressure = 4500 +/obj/machinery/atmospherics/components/trinary/mixer/airmix{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -49158,7 +48243,7 @@ }, /area/medical/storage) "bYV" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; freerange = 0; frequency = 1485; @@ -49247,7 +48332,7 @@ /obj/item/screwdriver{ pixel_y = 10 }, -/obj/item/device/radio/off, +/obj/item/radio/off, /turf/open/floor/plasteel/red/side{ dir = 5 }, @@ -49402,7 +48487,7 @@ "bZs" = ( /obj/item/cultivator, /obj/item/crowbar, -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /obj/item/reagent_containers/glass/bucket, /obj/structure/table/glass, /turf/open/floor/plasteel/hydrofloor, @@ -49496,7 +48581,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 5 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -49884,14 +48969,14 @@ "caz" = ( /obj/structure/table, /obj/item/stack/cable_coil, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = -4; pixel_y = -4 }, /obj/item/screwdriver{ pixel_y = 16 }, -/obj/item/device/gps{ +/obj/item/gps{ gpstag = "RD0" }, /turf/open/floor/plasteel/whitepurple/side{ @@ -49902,7 +48987,7 @@ /obj/structure/table, /obj/item/stack/sheet/glass, /obj/item/electronics/airlock, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = -4; pixel_y = 2 }, @@ -50255,10 +49340,8 @@ /turf/open/floor/plasteel/dark, /area/engine/atmos) "cbd" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4; - filter_type = "n2"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ + dir = 4 }, /obj/structure/window/reinforced, /turf/open/floor/plasteel/red, @@ -50276,10 +49359,9 @@ /area/engine/atmos) "cbf" = ( /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 1; - name = "Nitrogen Outlet"; - on = 1 + name = "Nitrogen Outlet" }, /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 @@ -50306,10 +49388,8 @@ /area/engine/atmos) "cbh" = ( /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4; - filter_type = "o2"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ + dir = 4 }, /turf/open/floor/plasteel/blue, /area/engine/atmos) @@ -50325,10 +49405,9 @@ /area/engine/atmos) "cbj" = ( /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 1; - name = "O2 to Airmix"; - on = 1 + name = "O2 to Airmix" }, /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 @@ -50478,7 +49557,7 @@ "cbz" = ( /obj/structure/rack, /obj/item/stack/sheet/cardboard, -/obj/item/device/radio/off, +/obj/item/radio/off, /obj/structure/light_construct{ dir = 1 }, @@ -50662,7 +49741,7 @@ network = list("medbay"); pixel_y = -29 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = -27; @@ -50816,7 +49895,7 @@ /obj/item/screwdriver{ pixel_y = 10 }, -/obj/item/device/radio/off, +/obj/item/radio/off, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 }, @@ -50856,7 +49935,7 @@ pixel_y = 12 }, /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -50877,7 +49956,7 @@ c_tag = "Hydroponics - Foyer"; dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = -25 }, /turf/open/floor/plasteel/vault, @@ -50910,7 +49989,7 @@ /area/hydroponics) "ccu" = ( /obj/machinery/hydroponics/constructable, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -50964,13 +50043,10 @@ /turf/open/floor/plasteel, /area/hydroponics) "ccz" = ( -/obj/item/wrench, -/obj/item/clothing/suit/apron, -/obj/item/clothing/accessory/armband/hydro, -/obj/structure/table/glass, /obj/effect/turf_decal/stripes/line{ - dir = 9 + dir = 1 }, +/obj/machinery/smartfridge/disks, /turf/open/floor/plasteel, /area/hydroponics) "ccA" = ( @@ -51646,7 +50722,7 @@ }, /area/maintenance/starboard) "cdW" = ( -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/machinery/light/small{ dir = 4 }, @@ -51731,8 +50807,7 @@ }, /obj/machinery/atmospherics/components/binary/pump{ dir = 2; - name = "Fuel Pipe to Incinerator"; - on = 0 + name = "Fuel Pipe to Incinerator" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -51823,7 +50898,7 @@ pixel_y = -3 }, /obj/item/wrench, -/obj/item/device/flashlight/seclite, +/obj/item/flashlight/seclite, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -51979,7 +51054,7 @@ /area/medical/medbay/central) "ceF" = ( /obj/structure/bed/roller, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 0; frequency = 1485; @@ -52087,7 +51162,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -52144,7 +51219,7 @@ /turf/open/floor/plasteel, /area/security/checkpoint/science/research) "ceX" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 @@ -53245,7 +52320,7 @@ /obj/item/crowbar, /obj/item/wrench, /obj/item/clothing/mask/gas, -/obj/item/device/multitool{ +/obj/item/multitool{ pixel_x = 3 }, /obj/effect/turf_decal/stripes/line{ @@ -53338,7 +52413,7 @@ pixel_y = 32 }, /obj/structure/table/glass, -/obj/item/device/radio/off, +/obj/item/radio/off, /turf/open/floor/plasteel/cafeteria{ dir = 5 }, @@ -53387,7 +52462,7 @@ /turf/open/floor/plasteel/dark, /area/aisat) "chA" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = 25 }, /turf/open/floor/engine, @@ -53430,7 +52505,7 @@ /area/maintenance/starboard) "chF" = ( /obj/structure/closet, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/spawner/lootdrop/maintenance, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -53440,7 +52515,7 @@ "chG" = ( /obj/structure/reagent_dispensers/fueltank, /obj/item/storage/toolbox/emergency, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -54022,7 +53097,7 @@ /turf/open/floor/engine, /area/science/explab) "ciT" = ( -/obj/item/device/beacon, +/obj/item/beacon, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, @@ -54079,6 +53154,18 @@ icon_state = "1-2" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/embedded_controller/radio/airlock_controller{ + airpump_tag = "incinerator_airlock_pump"; + exterior_door_tag = "incinerator_airlock_exterior"; + id_tag = "incinerator_airlock_control"; + interior_door_tag = "incinerator_airlock_interior"; + name = "Incinerator Access Console"; + pixel_x = 40; + pixel_y = 8; + req_access_txt = "12"; + sanitize_external = 1; + sensor_tag = "incinerator_airlock_sensor" + }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "cjb" = ( @@ -54271,7 +53358,7 @@ /area/medical/surgery) "cjE" = ( /obj/structure/bed/roller, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; freerange = 0; frequency = 1485; @@ -54452,35 +53539,35 @@ }, /area/medical/chemistry) "cjW" = ( -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = -3; pixel_y = 3 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = -3; pixel_y = 3 }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = 3; pixel_y = -7 }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = 3; pixel_y = -7 }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = 3; pixel_y = -7 }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = 3; pixel_y = -7 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = -3; pixel_y = 3 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = -3; pixel_y = 3 }, @@ -54615,7 +53702,7 @@ }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/landmark/blobstart, /turf/open/floor/plating, /area/maintenance/starboard/aft) @@ -54661,7 +53748,7 @@ /area/science/research) "ckq" = ( /obj/machinery/vending/coffee, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -54700,7 +53787,7 @@ "ckv" = ( /obj/structure/closet/crate, /obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/item/device/assembly/infra, +/obj/item/assembly/infra, /obj/effect/spawner/lootdrop/maintenance, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, @@ -54782,9 +53869,8 @@ /obj/structure/sign/warning/fire{ pixel_x = -32 }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1 }, /obj/machinery/airlock_sensor{ id_tag = "incinerator_airlock_sensor"; @@ -54815,9 +53901,8 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 2; - on = 1 +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 2 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -55034,7 +54119,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "clm" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; freerange = 0; frequency = 1485; @@ -55140,7 +54225,7 @@ pixel_x = -2; pixel_y = 6 }, -/obj/item/device/radio/headset/headset_med, +/obj/item/radio/headset/headset_med, /obj/structure/extinguisher_cabinet{ pixel_x = 24 }, @@ -55254,7 +54339,7 @@ /obj/machinery/shower{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_y = -28 @@ -55665,7 +54750,7 @@ }, /area/hallway/primary/aft) "cmF" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_x = -28 @@ -55809,7 +54894,7 @@ /obj/item/stack/packageWrap, /obj/item/stack/packageWrap, /obj/item/stack/packageWrap, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 2 @@ -55856,7 +54941,7 @@ pixel_y = 6 }, /obj/item/stack/medical/ointment, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /obj/effect/turf_decal/stripes/line{ dir = 2 }, @@ -55920,10 +55005,7 @@ /area/maintenance/disposal/incinerator) "cne" = ( /obj/machinery/igniter{ - icon_state = "igniter0"; - id = "Incinerator"; - luminosity = 2; - on = 0 + id = "Incinerator" }, /obj/structure/cable{ icon_state = "1-2" @@ -55951,7 +55033,7 @@ /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "cnh" = ( -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/structure/table/wood, /turf/open/floor/wood, /area/maintenance/port/aft) @@ -56039,7 +55121,7 @@ /area/medical/surgery) "cnt" = ( /obj/structure/table/reinforced, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; freerange = 0; frequency = 1485; @@ -56229,7 +55311,7 @@ pixel_y = 4 }, /obj/item/clothing/glasses/science, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_x = -28 @@ -56472,7 +55554,7 @@ }, /area/science/research) "cog" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -56558,7 +55640,7 @@ /obj/item/clothing/mask/gas, /obj/item/clothing/mask/gas, /obj/item/clothing/glasses/science, -/obj/item/device/multitool{ +/obj/item/multitool{ pixel_x = 3 }, /turf/open/floor/plasteel/white, @@ -57346,6 +56428,24 @@ icon_state = "wood-broken7" }, /area/maintenance/port/aft) +"cpR" = ( +/obj/machinery/button/door{ + id = "engpa"; + name = "Engineering Chamber Shutters Control"; + pixel_y = -26; + req_access_txt = "11" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) "cpS" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -57916,7 +57016,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -58127,7 +57227,7 @@ /obj/machinery/atmospherics/components/unary/thermomachine/freezer{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; freerange = 0; frequency = 1485; @@ -58263,7 +57363,7 @@ /area/maintenance/aft) "crF" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -58560,7 +57660,7 @@ }, /area/medical/surgery) "csn" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; freerange = 0; frequency = 1485; @@ -58759,7 +57859,7 @@ network = list("medbay"); pixel_x = 29 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 1; name = "Station Intercom (General)"; pixel_y = -29 @@ -59540,7 +58640,7 @@ /obj/structure/closet, /obj/item/extinguisher, /obj/effect/decal/cleanable/cobweb, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -59558,7 +58658,7 @@ /obj/structure/closet/crate, /obj/item/stack/cable_coil, /obj/item/grenade/chem_grenade, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/spawner/lootdrop/maintenance{ lootcount = 2; name = "2maintenance loot spawner" @@ -59681,7 +58781,7 @@ pixel_y = 3 }, /obj/item/storage/box/bodybags, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -59711,12 +58811,12 @@ dir = 1 }, /obj/item/storage/box/monkeycubes, -/obj/item/device/radio/headset/headset_medsci, -/obj/item/device/flashlight/pen{ +/obj/item/radio/headset/headset_medsci, +/obj/item/flashlight/pen{ pixel_x = 4; pixel_y = 3 }, -/obj/item/device/flashlight/pen{ +/obj/item/flashlight/pen{ pixel_x = 4; pixel_y = 3 }, @@ -59920,7 +59020,7 @@ /area/crew_quarters/heads/hor) "cuP" = ( /obj/structure/table, -/obj/item/device/aicard, +/obj/item/aicard, /obj/item/circuitboard/aicore{ pixel_x = -2; pixel_y = 4 @@ -59936,10 +59036,10 @@ /area/crew_quarters/heads/hor) "cuR" = ( /obj/structure/table, -/obj/item/device/taperecorder{ +/obj/item/taperecorder{ pixel_x = -3 }, -/obj/item/device/paicard{ +/obj/item/paicard{ pixel_x = 4 }, /obj/item/storage/secure/briefcase, @@ -60074,7 +59174,7 @@ /obj/structure/closet/crate, /obj/item/crowbar/red, /obj/item/pen, -/obj/item/device/flashlight/pen{ +/obj/item/flashlight/pen{ pixel_x = 4; pixel_y = 3 }, @@ -60176,7 +59276,7 @@ /obj/machinery/clonepod{ pixel_y = 2 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -60458,7 +59558,7 @@ /area/science/storage) "cvY" = ( /obj/machinery/portable_atmospherics/canister/toxins, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -60549,7 +59649,7 @@ "cwn" = ( /obj/structure/rack, /obj/item/clothing/glasses/sunglasses, -/obj/item/device/flashlight/pen, +/obj/item/flashlight/pen, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -60722,7 +59822,7 @@ pixel_x = 2; pixel_y = 2 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -60788,7 +59888,7 @@ /area/science/robotics/mechbay) "cwJ" = ( /obj/machinery/computer/mech_bay_power_console, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -60927,7 +60027,7 @@ dir = 8; pixel_x = 24 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -61277,7 +60377,7 @@ /turf/open/floor/plating, /area/science/misc_lab/range) "cxJ" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -61656,7 +60756,7 @@ /turf/open/floor/plasteel, /area/science/mixing) "cyC" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = 25 }, /obj/machinery/atmospherics/components/unary/portables_connector/visible, @@ -61928,7 +61028,7 @@ /area/medical/genetics) "czf" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -62824,7 +61924,7 @@ /area/science/test_area) "cAS" = ( /obj/structure/chair/stool, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; freerange = 0; frequency = 1485; @@ -62896,7 +61996,7 @@ "cBa" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; freerange = 0; frequency = 1485; @@ -62959,7 +62059,7 @@ /area/science/robotics/mechbay) "cBj" = ( /obj/structure/table, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -63067,19 +62167,19 @@ /turf/open/floor/plasteel/white, /area/science/mixing) "cBt" = ( -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -4; pixel_y = 1 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = 8; pixel_y = 9 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = 9; pixel_y = -2 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_y = 2 }, /obj/structure/table/reinforced, @@ -63262,7 +62362,7 @@ /turf/open/floor/plating/airless, /area/science/test_area) "cBO" = ( -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -63433,7 +62533,7 @@ /area/hallway/primary/aft) "cCm" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -63487,18 +62587,18 @@ /turf/open/floor/plasteel, /area/science/mixing) "cCu" = ( -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_y = 8 }, -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_x = -8; pixel_y = 5 }, -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_x = 6; pixel_y = 5 }, -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_x = -2; pixel_y = -2 }, @@ -63509,18 +62609,18 @@ /turf/open/floor/plasteel, /area/science/mixing) "cCv" = ( -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve{ pixel_x = -5 }, -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve{ pixel_x = -5 }, -/obj/item/device/transfer_valve, -/obj/item/device/transfer_valve, -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve, +/obj/item/transfer_valve, +/obj/item/transfer_valve{ pixel_x = 5 }, -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve{ pixel_x = 5 }, /obj/machinery/requests_console{ @@ -63535,19 +62635,19 @@ /turf/open/floor/plasteel, /area/science/mixing) "cCw" = ( -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = 5; pixel_y = 4 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = -4; pixel_y = 2 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = 6; pixel_y = -4 }, -/obj/item/device/assembly/timer, +/obj/item/assembly/timer, /obj/structure/table/reinforced, /obj/effect/turf_decal/stripes/corner{ dir = 8 @@ -63556,7 +62656,7 @@ /area/science/mixing) "cCx" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -63610,19 +62710,19 @@ /area/science/mixing) "cCC" = ( /obj/structure/table, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = -5; pixel_y = 3 }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = 5; pixel_y = -4 }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = 2; pixel_y = 6 }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = 2; pixel_y = -1 }, @@ -63821,7 +62921,7 @@ /obj/structure/table, /obj/item/storage/box/bodybags, /obj/item/pen, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -63868,7 +62968,7 @@ /obj/machinery/mecha_part_fabricator{ dir = 2 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -63921,11 +63021,11 @@ pixel_x = -2; pixel_y = 4 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, @@ -63993,7 +63093,7 @@ /obj/structure/table, /obj/item/clothing/glasses/science, /obj/item/clothing/glasses/science, -/obj/item/device/multitool{ +/obj/item/multitool{ pixel_x = 3 }, /obj/effect/turf_decal/stripes/corner{ @@ -64048,7 +63148,7 @@ /turf/open/floor/plating/airless, /area/science/test_area) "cDx" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plating/airless, /area/science/test_area) "cDy" = ( @@ -64169,7 +63269,7 @@ /area/medical/virology) "cDJ" = ( /obj/item/clothing/gloves/color/latex, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /obj/item/clothing/glasses/hud/health, /obj/structure/reagent_dispensers/virusfood{ pixel_y = 30 @@ -64529,13 +63629,13 @@ /obj/item/stack/sheet/plasteel{ amount = 10 }, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/machinery/ai_status_display{ pixel_x = 32 }, @@ -64592,9 +63692,8 @@ pixel_y = 24 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4 }, /turf/open/floor/engine, /area/science/mixing) @@ -64828,7 +63927,7 @@ }, /area/medical/medbay/aft) "cES" = ( -/obj/item/device/healthanalyzer{ +/obj/item/healthanalyzer{ pixel_x = 1; pixel_y = 4 }, @@ -64964,7 +64063,7 @@ /obj/item/screwdriver{ pixel_y = 10 }, -/obj/item/device/multitool{ +/obj/item/multitool{ pixel_x = 3 }, /obj/item/stack/cable_coil, @@ -65056,11 +64155,11 @@ /area/science/mixing) "cFu" = ( /obj/structure/closet, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = 2; pixel_y = -2 }, -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_x = -2; pixel_y = 5 }, @@ -65076,7 +64175,7 @@ /turf/open/floor/plating/airless, /area/science/test_area) "cFw" = ( -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/effect/turf_decal/stripes/line{ dir = 2 }, @@ -65092,12 +64191,12 @@ /turf/open/floor/plating/airless, /area/science/test_area) "cFy" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_x = -28 }, /obj/structure/table/glass, /obj/item/hand_labeler, -/obj/item/device/radio/headset/headset_med, +/obj/item/radio/headset/headset_med, /obj/machinery/airalarm{ pixel_y = 23 }, @@ -65209,7 +64308,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_x = 28 }, /turf/open/floor/plasteel/whitegreen/side{ @@ -65290,7 +64389,7 @@ }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -65469,9 +64568,8 @@ /obj/structure/sign/warning/fire{ pixel_y = -32 }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8 }, /turf/open/floor/engine, /area/science/mixing) @@ -65871,7 +64969,7 @@ dir = 1 }, /obj/item/storage/backpack/duffelbag/med, -/obj/item/device/flashlight/pen{ +/obj/item/flashlight/pen{ pixel_x = 4; pixel_y = 3 }, @@ -65881,7 +64979,7 @@ /obj/structure/table, /obj/item/retractor, /obj/item/hemostat, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /obj/item/clothing/glasses/eyepatch, /obj/item/reagent_containers/food/drinks/bottle/vodka{ pixel_x = 3; @@ -65958,19 +65056,19 @@ empty = 1; name = "First-Aid (empty)" }, -/obj/item/device/healthanalyzer{ +/obj/item/healthanalyzer{ pixel_x = 4; pixel_y = -4 }, -/obj/item/device/healthanalyzer{ +/obj/item/healthanalyzer{ pixel_x = 4; pixel_y = -4 }, -/obj/item/device/healthanalyzer{ +/obj/item/healthanalyzer{ pixel_x = 4; pixel_y = -4 }, -/obj/item/device/radio/headset/headset_sci{ +/obj/item/radio/headset/headset_sci{ pixel_x = -3 }, /obj/effect/turf_decal/delivery, @@ -66187,7 +65285,7 @@ /area/medical/virology) "cHw" = ( /obj/structure/closet/emcloset, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_x = -28 }, /obj/effect/turf_decal/stripes/line{ @@ -66541,11 +65639,7 @@ /turf/open/floor/plasteel/dark, /area/science/server) "cIc" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - target_temperature = 80; - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on, /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plasteel/dark, /area/science/server) @@ -66576,7 +65670,7 @@ "cIh" = ( /obj/structure/closet, /obj/item/storage/box/lights/mixed, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/decal/cleanable/cobweb, /turf/open/floor/plating, /area/maintenance/starboard/aft) @@ -66906,7 +66000,7 @@ pixel_y = 5 }, /obj/item/clothing/glasses/welding, -/obj/item/device/multitool{ +/obj/item/multitool{ pixel_x = 3 }, /obj/effect/turf_decal/delivery, @@ -66935,7 +66029,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -67288,7 +66382,7 @@ /obj/structure/table, /obj/item/retractor, /obj/item/hemostat, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -67309,9 +66403,9 @@ /area/science/robotics/lab) "cJK" = ( /obj/structure/table, -/obj/item/device/mmi, -/obj/item/device/mmi, -/obj/item/device/mmi, +/obj/item/mmi, +/obj/item/mmi, +/obj/item/mmi, /obj/structure/window/reinforced{ dir = 4 }, @@ -67354,11 +66448,11 @@ maxcharge = 15000 }, /obj/item/crowbar, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, @@ -67401,7 +66495,7 @@ /turf/open/floor/plasteel/dark, /area/science/server) "cJS" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -67582,7 +66676,7 @@ }, /area/medical/virology) "cKm" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -67729,7 +66823,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = 25 }, /obj/effect/turf_decal/stripes/line{ @@ -68245,18 +67339,6 @@ /turf/open/floor/plating, /area/maintenance/aft) "cLC" = ( -/obj/machinery/embedded_controller/radio/airlock_controller{ - name = "Incinerator Access Console"; - airpump_tag = "incinerator_airlock_pump"; - exterior_door_tag = "incinerator_airlock_exterior"; - id_tag = "incinerator_access_control"; - interior_door_tag = "incinerator_airlock_interior"; - pixel_x = 8; - pixel_y = -24; - sanitize_external = 1; - sensor_tag = "incinerator_airlock_sensor"; - req_access_txt = "12" - }, /obj/machinery/button/ignition{ id = "Incinerator"; pixel_x = 8; @@ -68297,11 +67379,9 @@ /turf/open/floor/plating, /area/maintenance/aft) "cLE" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ dir = 1; - name = "euthanization chamber freezer"; - on = 1; - target_temperature = 80 + name = "euthanization chamber freezer" }, /turf/open/floor/plating, /area/science/xenobiology) @@ -68424,7 +67504,7 @@ /turf/open/floor/engine, /area/science/explab) "cLV" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = 25 }, /obj/machinery/firealarm{ @@ -68492,7 +67572,7 @@ pixel_x = 4 }, /obj/item/organ/heart, -/obj/item/device/soulstone/anybody/chaplain, +/obj/item/soulstone/anybody/chaplain, /turf/open/floor/plasteel/cult{ dir = 2 }, @@ -68737,7 +67817,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/office) "cME" = ( -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/newscaster{ pixel_x = -30 }, @@ -69031,7 +68111,7 @@ /area/maintenance/port/aft) "cNg" = ( /obj/structure/rack, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/spawner/lootdrop/maintenance, /obj/machinery/light/small, /turf/open/floor/plating, @@ -69075,7 +68155,7 @@ "cNk" = ( /obj/item/storage/bag/plants/portaseeder, /obj/item/storage/bag/plants/portaseeder, -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /obj/item/cultivator, /obj/item/reagent_containers/glass/bucket, /obj/structure/rack, @@ -69115,7 +68195,7 @@ /obj/machinery/hydroponics/soil{ pixel_y = 8 }, -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/starboard/aft) @@ -69174,7 +68254,7 @@ c_tag = "Chapel Office - Backroom"; dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 @@ -69216,7 +68296,7 @@ /turf/open/floor/plasteel/grimy, /area/chapel/office) "cNz" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1480; name = "Confessional Intercom"; @@ -69383,7 +68463,7 @@ /obj/machinery/light{ dir = 4 }, -/obj/item/device/radio/off, +/obj/item/radio/off, /obj/machinery/requests_console{ department = "Security"; departmentType = 5; @@ -69680,10 +68760,10 @@ pixel_x = -4; pixel_y = 4 }, -/obj/item/device/taperecorder{ +/obj/item/taperecorder{ pixel_x = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -69775,7 +68855,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/office) "cOL" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1480; name = "Confessional Intercom"; @@ -70068,7 +69148,7 @@ /area/maintenance/starboard/aft) "cPz" = ( /obj/structure/closet, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/spawner/lootdrop/maintenance{ lootcount = 3; name = "3maintenance loot spawner" @@ -70260,7 +69340,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/beacon, +/obj/item/beacon, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -70289,7 +69369,7 @@ /obj/machinery/light{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -70364,7 +69444,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/main) "cQc" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -70554,7 +69634,7 @@ /obj/machinery/doppler_array/research/science{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; listening = 1; name = "Station Intercom (General)"; @@ -70691,7 +69771,7 @@ /turf/open/floor/plasteel, /area/science/xenobiology) "cQS" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -70710,7 +69790,7 @@ /turf/open/floor/plating, /area/chapel/main) "cQV" = ( -/obj/item/device/flashlight/lantern{ +/obj/item/flashlight/lantern{ pixel_y = 7 }, /obj/structure/table/wood, @@ -70845,7 +69925,7 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/item/device/gps, +/obj/item/gps, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, @@ -71619,20 +70699,6 @@ }, /turf/open/floor/plasteel, /area/science/xenobiology) -"cSU" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/status_display{ - pixel_x = 32 - }, -/obj/machinery/computer/shuttle/pod{ - pixel_x = -32; - possible_destinations = "pod_lavaland1"; - shuttleId = "pod1" - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) "cSV" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable/yellow{ @@ -71726,21 +70792,6 @@ }, /turf/open/floor/engine, /area/science/xenobiology) -"cTd" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/item/device/radio/intercom{ - pixel_x = 25 - }, -/obj/item/storage/pod{ - pixel_x = -26 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) "cTe" = ( /obj/machinery/door/window/northleft{ base_state = "right"; @@ -71779,20 +70830,6 @@ }, /turf/open/floor/engine, /area/science/xenobiology) -"cTi" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/status_display{ - pixel_y = 32 - }, -/obj/machinery/computer/shuttle/pod{ - pixel_y = -32; - possible_destinations = "pod_lavaland4"; - shuttleId = "pod4" - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_4) "cTj" = ( /obj/item/crowbar/red, /obj/item/wrench, @@ -71909,20 +70946,6 @@ }, /turf/open/floor/plasteel, /area/science/xenobiology) -"cTu" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/item/device/radio/intercom{ - pixel_y = 25 - }, -/obj/item/storage/pod{ - pixel_x = 6; - pixel_y = -32 - }, -/obj/machinery/light/small, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_4) "cTw" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/item/storage/box/lights/mixed, @@ -72059,14 +71082,14 @@ /area/science/xenobiology) "cVb" = ( /obj/structure/table/wood, -/obj/item/device/camera_film{ +/obj/item/camera_film{ pixel_x = -3; pixel_y = 5 }, -/obj/item/device/camera_film{ +/obj/item/camera_film{ pixel_y = 9 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 @@ -72077,7 +71100,7 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 1; frequency = 1459; name = "Station Intercom (General)"; @@ -72122,7 +71145,6 @@ height = 13; id = "ferry_home"; name = "port bay 2"; - turf_type = /turf/open/space; width = 5 }, /turf/open/space/basic, @@ -72148,18 +71170,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/atmos) -"cVE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"cVH" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "cVJ" = ( /obj/structure/window/reinforced, /obj/machinery/computer/atmos_control/tank/air_tank{ @@ -72172,60 +71182,10 @@ dir = 8 }, /area/engine/atmos) -"cVK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"cVL" = ( -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"cVM" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"cVQ" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"cWg" = ( -/obj/docking_port/mobile/auxillary_base{ - dheight = 4; - dir = 2; - dwidth = 4; - height = 9; - width = 9 - }, -/obj/machinery/bluespace_beacon, -/obj/machinery/computer/auxillary_base, -/turf/closed/wall, -/area/shuttle/auxillary_base) -"cWh" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "cWA" = ( /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port/fore) -"cWF" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"cWJ" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "cWK" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -72263,6 +71223,14 @@ dir = 1 }, /area/construction/mining/aux_base) +"cXZ" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) "cYc" = ( /obj/structure/table/optable{ name = "Robotics Operating Table" @@ -72355,6 +71323,16 @@ }, /turf/open/floor/plasteel/white, /area/science/xenobiology) +"cYV" = ( +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "cZa" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -72362,7 +71340,7 @@ /turf/open/floor/plasteel/white, /area/science/xenobiology) "cZc" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -72471,7 +71449,7 @@ /obj/item/stack/sheet/metal{ amount = 10 }, -/obj/item/device/electropack, +/obj/item/electropack, /turf/open/floor/engine, /area/science/xenobiology) "daF" = ( @@ -72488,7 +71466,7 @@ /turf/open/floor/engine, /area/science/xenobiology) "daH" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/engine, /area/science/xenobiology) "daI" = ( @@ -72497,7 +71475,7 @@ pixel_y = 5 }, /obj/item/stack/cable_coil, -/obj/item/device/multitool, +/obj/item/multitool, /obj/item/stock_parts/cell/high{ charge = 100; maxcharge = 15000 @@ -72522,26 +71500,26 @@ /area/science/xenobiology) "daM" = ( /obj/structure/table, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = -5; pixel_y = 3 }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = 5; pixel_y = -4 }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = 2; pixel_y = 6 }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = 2; pixel_y = -1 }, /turf/open/floor/engine, /area/science/xenobiology) "daN" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = -25 }, /turf/open/floor/engine, @@ -72586,6 +71564,21 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/circuit/killroom, /area/science/xenobiology) +"daW" = ( +/obj/machinery/button/door{ + id = "engpa"; + name = "Engineering Chamber Shutters Control"; + pixel_y = 26; + req_access_txt = "11" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) "daX" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -72594,6 +71587,20 @@ icon_state = "platingdmg2" }, /area/maintenance/port/fore) +"daZ" = ( +/obj/structure/particle_accelerator/particle_emitter/right{ + icon_state = "emitter_right"; + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"dbb" = ( +/obj/structure/particle_accelerator/particle_emitter/center{ + icon_state = "emitter_center"; + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) "dbd" = ( /obj/structure/sink/kitchen{ pixel_y = 28 @@ -72705,7 +71712,7 @@ "dbE" = ( /obj/machinery/plantgenes, /obj/effect/turf_decal/stripes/line{ - dir = 9 + dir = 1 }, /turf/open/floor/plasteel, /area/hydroponics) @@ -73023,7 +72030,7 @@ /obj/machinery/shower{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -73343,7 +72350,7 @@ /area/science/xenobiology) "dcM" = ( /obj/machinery/chem_master, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -73551,7 +72558,6 @@ /turf/open/floor/plating, /area/maintenance/department/science/xenobiology) "ddf" = ( -/obj/machinery/portable_atmospherics/canister, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 4 }, @@ -73563,6 +72569,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/portable_atmospherics/canister/bz, /turf/open/floor/plasteel, /area/science/xenobiology) "ddg" = ( @@ -73611,7 +72618,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -73791,11 +72798,19 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"ddG" = ( -/obj/effect/turf_decal/stripes/line, -/obj/docking_port/stationary/public_mining_dock, +"ddO" = ( +/obj/machinery/light/small{ + dir = 1 + }, /turf/open/floor/plating, -/area/shuttle/auxillary_base) +/area/engine/engineering) +"ddP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) "ddQ" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -73806,6 +72821,205 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) +"ddW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ddX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ddZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating/airless, +/area/space) +"deb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"def" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/space, +/area/space) +"deh" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/engine/engineering) +"dem" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space, +/area/space) +"den" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/space) +"der" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"deu" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/space) +"dev" = ( +/obj/machinery/field/generator{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/space) +"dew" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/space, +/area/space) +"deB" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engpa"; + name = "Engineering Chamber Shutters" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"deD" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/airless, +/area/space) +"deM" = ( +/obj/structure/table, +/obj/effect/turf_decal/delivery, +/obj/item/clothing/glasses/meson/engine, +/obj/item/clothing/glasses/meson/engine, +/obj/item/clothing/glasses/meson/engine, +/obj/machinery/light{ + dir = 4 + }, +/obj/item/pipe_dispenser, +/obj/item/pipe_dispenser, +/obj/item/pipe_dispenser, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) +"deV" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/airless, +/area/space) +"deY" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) +"dfa" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"dfh" = ( +/obj/structure/table, +/obj/item/clothing/glasses/meson, +/obj/item/clothing/glasses/meson, +/obj/item/clothing/glasses/meson, +/obj/item/storage/belt/utility, +/obj/item/storage/belt/utility, +/obj/item/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = 10 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) +"dfp" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"dfz" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/space) +"dfD" = ( +/obj/item/book/manual/engineering_singularity_safety{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/book/manual/wiki/engineering_guide, +/obj/item/book/manual/engineering_particle_accelerator{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/gloves/color/yellow, +/obj/structure/table/glass, +/turf/open/floor/plasteel, +/area/engine/engineering) +"dfI" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/space) +"dfP" = ( +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "dfX" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable/yellow{ @@ -73821,12 +73035,96 @@ dir = 1 }, /area/engine/engineering) +"dfY" = ( +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"dga" = ( +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"dgd" = ( +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"dge" = ( +/obj/structure/cable/white{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/power/emitter{ + anchored = 1; + dir = 1; + icon_state = "emitter"; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"dgg" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"dgj" = ( +/obj/structure/grille, +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"dgk" = ( +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"dgm" = ( +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"dgr" = ( +/turf/closed/wall/r_wall, +/area/space) "dgz" = ( /obj/structure/closet/toolcloset, /obj/effect/turf_decal/delivery, /obj/item/clothing/glasses/meson/engine, /turf/open/floor/plasteel, /area/engine/engineering) +"dgN" = ( +/obj/structure/lattice, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/open/space, +/area/space/nearstation) +"dgO" = ( +/turf/open/space, +/area/space/nearstation) "dhn" = ( /obj/structure/table, /obj/item/poster/random_contraband, @@ -74100,7 +73398,7 @@ /area/maintenance/port/fore) "dhL" = ( /obj/structure/table, -/obj/item/device/analyzer, +/obj/item/analyzer, /obj/machinery/power/apc{ dir = 2; name = "Tool Storage APC"; @@ -74117,7 +73415,7 @@ }, /area/storage/primary) "dhM" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -74259,7 +73557,7 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/item/device/instrument/guitar, +/obj/item/instrument/guitar, /obj/structure/sign/poster/random{ pixel_x = 32 }, @@ -74324,9 +73622,9 @@ /turf/open/floor/carpet, /area/crew_quarters/theatre) "dij" = ( -/obj/item/device/instrument/violin, +/obj/item/instrument/violin, /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -74394,7 +73692,7 @@ /obj/item/poster/random_official, /obj/item/poster/random_official, /obj/item/poster/random_official, -/obj/item/device/paicard{ +/obj/item/paicard{ desc = "A real Nanotrasen success, these personal AIs provide all of the companionship of an AI without any law related red-tape."; name = "Nanotrasen-brand personal AI device exhibit" }, @@ -74626,7 +73924,7 @@ }, /obj/item/reagent_containers/food/drinks/ale, /obj/structure/table/wood, -/obj/item/device/instrument/eguitar, +/obj/item/instrument/eguitar, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -74841,6 +74139,19 @@ /obj/structure/lattice/catwalk, /turf/open/space, /area/science/xenobiology) +"djt" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"djx" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Aft Port"; + dir = 4; + network = list("singularity") + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/engine/engineering) "djz" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/machinery/door/airlock/external{ @@ -74899,6 +74210,12 @@ }, /turf/open/floor/plating, /area/chapel/main) +"dlI" = ( +/obj/structure/closet/secure_closet/engineering_electrical, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) "dlV" = ( /turf/closed/wall/r_wall, /area/maintenance/department/science/xenobiology) @@ -75480,6 +74797,25 @@ "dBu" = ( /turf/closed/wall, /area/engine/gravity_generator) +"dBw" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"dBy" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/engine/engineering) +"dBB" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/space) "dBC" = ( /obj/machinery/meter, /obj/structure/grille, @@ -76123,7 +75459,7 @@ /obj/item/wallframe/camera, /obj/item/wallframe/camera, /obj/item/wallframe/camera, -/obj/item/device/assault_pod/mining, +/obj/item/assault_pod/mining, /turf/open/floor/plasteel/yellow/side{ dir = 1 }, @@ -76204,6 +75540,13 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/space) +"eCm" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/space, +/area/space) "eEe" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 @@ -76217,6 +75560,21 @@ }, /turf/open/floor/plasteel/dark, /area/chapel/office) +"eMP" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) +"eTm" = ( +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "eXy" = ( /obj/machinery/airalarm{ pixel_y = 32 @@ -76236,6 +75594,17 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"fca" = ( +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "fdr" = ( /obj/structure/closet/firecloset, /turf/open/floor/plating, @@ -76262,12 +75631,33 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) +"giG" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Aft Starboard"; + dir = 8; + network = list("singularity") + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"glg" = ( +/obj/effect/decal/cleanable/oil, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "gnZ" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = -30 }, /turf/open/floor/plasteel/white, /area/science/circuit) +"gBt" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating/airless, +/area/space) "gEk" = ( /obj/structure/cable/yellow{ icon_state = "2-8" @@ -76305,8 +75695,8 @@ /area/maintenance/aft) "gRS" = ( /obj/structure/table/reinforced, -/obj/item/device/integrated_electronics/analyzer, -/obj/item/device/integrated_circuit_printer, +/obj/item/integrated_electronics/analyzer, +/obj/item/integrated_circuit_printer, /turf/open/floor/plasteel/white, /area/science/circuit) "gXY" = ( @@ -76322,6 +75712,10 @@ /obj/machinery/autolathe, /turf/open/floor/plasteel/white, /area/science/circuit) +"hiq" = ( +/obj/machinery/the_singularitygen/tesla, +/turf/open/floor/plating/airless, +/area/space) "hyP" = ( /obj/machinery/door/airlock/external{ name = "Escape Pod Two" @@ -76331,6 +75725,41 @@ }, /turf/open/floor/plating, /area/security/prison) +"hKs" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the Engine."; + dir = 8; + layer = 4; + name = "Engine Monitor"; + network = list("singularity"); + pixel_x = 30 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) +"hTv" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"hYG" = ( +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"ili" = ( +/turf/open/floor/plating/airless, +/area/space) "ioI" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -76342,6 +75771,13 @@ /obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/science/circuit) +"ixJ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/space, +/area/space) "izu" = ( /obj/machinery/autolathe{ name = "public autolathe" @@ -76358,6 +75794,39 @@ }, /turf/open/floor/plasteel/whitepurple, /area/science/lab) +"iKX" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"iNQ" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"iQV" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"jeV" = ( +/obj/machinery/conveyor/inverted{ + dir = 10; + id = "QMLoad" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) "jwW" = ( /turf/closed/wall/mineral/plastitanium, /area/crew_quarters/fitness/recreation) @@ -76387,6 +75856,30 @@ }, /turf/open/floor/plating, /area/maintenance/solars/port/aft) +"jzM" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "External Containment Access"; + req_access_txt = "10; 13" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"jGF" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/engine/engineering) "jKK" = ( /obj/machinery/door/airlock/external{ req_access_txt = "13" @@ -76403,6 +75896,14 @@ "krD" = ( /turf/closed/wall, /area/science/circuit) +"kwI" = ( +/obj/item/wrench, +/obj/item/clothing/suit/apron, +/obj/item/clothing/accessory/armband/hydro, +/obj/structure/table/glass, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/hydroponics) "kys" = ( /obj/structure/cable/yellow{ icon_state = "0-8" @@ -76442,7 +75943,7 @@ /turf/open/floor/plating, /area/maintenance/starboard/aft) "kOt" = ( -/obj/item/device/multitool, +/obj/item/multitool, /obj/item/screwdriver, /obj/structure/table/reinforced, /obj/structure/cable/yellow{ @@ -76461,15 +75962,45 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"kXU" = ( +/obj/structure/cable/white, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/power/emitter{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "lal" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 }, /turf/open/floor/plasteel, /area/science/circuit) +"lim" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "External Containment Access"; + req_access_txt = "10; 13" + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) "llb" = ( /obj/structure/table/reinforced, -/obj/item/device/integrated_circuit_printer, +/obj/item/integrated_circuit_printer, /turf/open/floor/plasteel/white, /area/science/circuit) "lsv" = ( @@ -76483,9 +76014,17 @@ icon_state = "0-8" }, /obj/structure/table/reinforced, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plasteel/white, /area/science/circuit) +"lwo" = ( +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "lzk" = ( /obj/structure/cable/yellow{ icon_state = "2-8" @@ -76558,6 +76097,19 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) +"mGY" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating/airless, +/area/space) +"mJy" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/space) "ngl" = ( /obj/machinery/bookbinder, /turf/open/floor/plasteel/white, @@ -76600,6 +76152,12 @@ }, /turf/open/floor/plating, /area/maintenance/starboard) +"nDB" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) "nIb" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/mining{ @@ -76616,6 +76174,20 @@ /obj/structure/target_stake, /turf/open/floor/plasteel/white, /area/science/circuit) +"obX" = ( +/obj/docking_port/stationary{ + area_type = /area/construction/mining/aux_base; + dheight = 4; + dir = 1; + dwidth = 4; + height = 9; + id = "aux_base_zone"; + name = "aux base zone"; + roundstart_template = /datum/map_template/shuttle/aux_base/default; + width = 9 + }, +/turf/open/floor/plating, +/area/construction/mining/aux_base) "ocT" = ( /obj/machinery/light{ dir = 1 @@ -76636,16 +76208,31 @@ /turf/open/floor/plasteel/white, /area/science/circuit) "ohj" = ( -/obj/item/device/integrated_electronics/analyzer, -/obj/item/device/integrated_electronics/debugger, -/obj/item/device/integrated_electronics/wirer, +/obj/item/integrated_electronics/analyzer, +/obj/item/integrated_electronics/debugger, +/obj/item/integrated_electronics/wirer, /obj/structure/table/reinforced, /turf/open/floor/plasteel/white, /area/science/circuit) +"oru" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "oub" = ( /obj/structure/sign/poster/official/random, /turf/closed/wall, /area/hydroponics) +"ovJ" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/engine/engineering) "oLW" = ( /obj/structure/table/reinforced, /obj/structure/cable/yellow{ @@ -76659,7 +76246,7 @@ pixel_y = 30; receive_ore_updates = 1 }, -/obj/item/device/integrated_electronics/debugger, +/obj/item/integrated_electronics/debugger, /turf/open/floor/plasteel/white, /area/science/circuit) "oRL" = ( @@ -76682,6 +76269,19 @@ /obj/item/pen, /turf/open/floor/plasteel/white, /area/science/circuit) +"oXn" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"pdI" = ( +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "pmc" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -76733,6 +76333,19 @@ }, /turf/open/floor/plating, /area/maintenance/aft) +"qcZ" = ( +/turf/open/space/basic, +/area/space/nearstation) +"qiO" = ( +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "qnJ" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -76753,9 +76366,27 @@ }, /turf/open/floor/plasteel, /area/science/misc_lab) +"qxk" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) +"qyp" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, +/area/space) +"qzA" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/engineering) "qBh" = ( /obj/structure/table, -/obj/item/device/paicard, +/obj/item/paicard, /turf/open/floor/plasteel/whitepurple/side{ dir = 2 }, @@ -76769,6 +76400,20 @@ }, /turf/open/floor/plasteel, /area/science/circuit) +"qMg" = ( +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/effect/turf_decal/delivery, +/obj/structure/table, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) "qRM" = ( /obj/machinery/camera{ c_tag = "Research Division Circuitry Lab"; @@ -76811,6 +76456,14 @@ }, /turf/open/floor/plasteel, /area/science/circuit) +"sef" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Fore Starboard"; + dir = 8; + network = list("singularity") + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "siF" = ( /obj/structure/grille, /turf/open/floor/plating/airless, @@ -76840,6 +76493,14 @@ "sJW" = ( /turf/closed/wall/mineral/plastitanium, /area/engine/break_room) +"sZD" = ( +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/obj/machinery/light, +/obj/machinery/vending/kink, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/locker) "tjH" = ( /obj/structure/table/reinforced, /obj/machinery/computer/libraryconsole/bookmanagement, @@ -76860,12 +76521,26 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) +"tDM" = ( +/obj/item/wrench, +/turf/open/floor/plating, +/area/engine/engineering) "tFJ" = ( /obj/structure/bodycontainer/morgue{ dir = 8 }, /turf/open/floor/plasteel/dark, /area/medical/morgue) +"tUB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "tVY" = ( /obj/structure/closet/crate, /obj/item/target/alien, @@ -76882,6 +76557,12 @@ /obj/machinery/air_sensor/atmos/toxins_mixing_tank, /turf/open/floor/engine/vacuum, /area/science/mixing) +"tYJ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating/airless, +/area/space) "upN" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -76948,6 +76629,25 @@ }, /turf/open/floor/plasteel, /area/science/misc_lab) +"vrp" = ( +/obj/structure/closet/firecloset, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) +"vuC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"vyf" = ( +/obj/structure/lattice, +/turf/open/space, +/area/engine/engineering) "vyx" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 4 @@ -76955,10 +76655,20 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/floorgrime, /area/maintenance/disposal/incinerator) +"vJQ" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space) "vLD" = ( /obj/structure/lattice, /turf/open/space/basic, /area/space) +"waK" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "wgw" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall/r_wall, @@ -76973,6 +76683,13 @@ }, /turf/open/floor/plating, /area/security/prison) +"wmn" = ( +/obj/structure/particle_accelerator/particle_emitter/left{ + icon_state = "emitter_left"; + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) "wxc" = ( /obj/machinery/door/airlock/external{ name = "Atmospherics External Airlock"; @@ -76983,6 +76700,22 @@ }, /turf/open/floor/plating, /area/engine/atmos) +"wBK" = ( +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"wEo" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "wFH" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -77013,8 +76746,14 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/science/misc_lab) +"xfJ" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/engine/engineering) "xkG" = ( -/obj/item/device/integrated_electronics/wirer, +/obj/item/integrated_electronics/wirer, /obj/structure/table/reinforced, /turf/open/floor/plasteel/white, /area/science/circuit) @@ -77039,7 +76778,6 @@ height = 17; id = "syndicate_nw"; name = "northwest of station"; - turf_type = /turf/open/space; width = 23 }, /turf/open/space/basic, @@ -77067,6 +76805,14 @@ }, /turf/open/floor/plasteel, /area/science/circuit) +"yhr" = ( +/obj/structure/cable/white{ + icon_state = "2-4" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plating/airless, +/area/engine/engineering) "ykE" = ( /obj/machinery/light, /turf/open/floor/plasteel/white, @@ -86428,10 +86174,10 @@ aaa aaa aaa aaa -aOZ -aOZ -aOZ -aRB +aaa +aaa +aaa +aaa aSH aUb aVt @@ -86685,10 +86431,10 @@ aaa aaa aaa cSP -aND -cSU -cTd -aRC +aaa +aaa +aaa +abu bsk aUc aVu @@ -86942,10 +86688,10 @@ aaa aaa aaa aaa -aOZ -aOZ -aOZ -aRB +aaa +aaa +aaa +aaa aSI aRA aVv @@ -87964,14 +87710,14 @@ anS anS aDb aDa -cVK -cVK -cVK -cVK -cVK -cVK -cVK -cWF +aDa +aDa +aDa +aDa +aDa +aDa +aDa +aDa cWK aRD aSJ @@ -88220,15 +87966,15 @@ anS aaf aai aDb -cVE -cVL -cVL -cVL -cVL -cVL -cVL -cVL -cWJ +aDa +aDa +aDa +aDa +aDa +aDa +aDa +aDa +aDa cWK aRE aSK @@ -88477,15 +88223,15 @@ anS aaf aaa aDb -cVE -cVL -cVL -cVL -cVL -cVL -cVL -cVL -cWJ +aDa +aDa +aDa +aDa +aDa +aDa +aDa +aDa +aDa cWK aRE aSK @@ -88734,15 +88480,15 @@ anS anS aaf aDb -cVE -cVL -cVL -cVL -cVQ -cVL -cVL -cVL -cWJ +aDa +aDa +aDa +aDa +aDa +aDa +aDa +aDa +aDa cWK cXE aIf @@ -88991,15 +88737,15 @@ anS anS aaf aDb -cVE -cVL -cVL -aHb -cWg -cVL -cVL -cVL -ddG +aDa +aDa +aDa +aDa +obX +aDa +aDa +aDa +aDa cWM cXR cYG @@ -89248,15 +88994,15 @@ aaf aaf aaf aDb -cVE -cVL -cVL -cVL -cWh -cVL -cVL -cVL -cWJ +aDa +aDa +aDa +aDa +aDa +aDa +aDa +aDa +aDa cWK cYE cYK @@ -89505,15 +89251,15 @@ aaa aaf aaa aDb -cVE -cVL -cVL -cVL -cVL -cVL -cVL -cVL -cWJ +aDa +aDa +aDa +aDa +aDa +aDa +aDa +aDa +aDa cWK dDJ aSL @@ -89762,15 +89508,15 @@ aaf dne dne aDb -cVE -cVL -cVL -cVL -cVL -cVL -cVL -cVL -cWJ +aDa +aDa +aDa +aDa +aDa +aDa +aDa +aDa +aDa cWK dDK aSM @@ -90019,15 +89765,15 @@ aip dne dnk aDb -cVH -cVM -cVM -cVM -cVM -cVM -cVM -cVM -aPb +aDa +aDa +aDa +aDa +aDa +aDa +aDa +aDa +aDa cWK aRF aSN @@ -94145,7 +93891,7 @@ aRH aRH aUf aRH -aRH +jeV aYK bam dmH @@ -100011,7 +99757,7 @@ aaA aaG aaP aax -aab +abn abE abD acs @@ -101555,8 +101301,8 @@ aaa aay abs abK -aad -aae +ace +acx acM abe ady @@ -102064,10 +101810,10 @@ aaa aaa aaf aaa -aaV -aaV -aaV -abt +aaa +aaa +aaa +aaa abL acf acy @@ -102321,9 +102067,9 @@ aaa aaa aaa adG -aaM -adH -aPa +aaa +aaa +aaa abu abM acg @@ -102578,10 +102324,10 @@ aaa aaf aaf aaa -aaV -aaV -aaV -abt +aaa +aaa +aaa +aaa abN ach aax @@ -110591,7 +110337,7 @@ aPJ aQT aOu aTt -aKE +aUN aUM aYc aTC @@ -110848,7 +110594,7 @@ aOt aQU aSg aTt -aKF +aUO aUM boW aZt @@ -111105,7 +110851,7 @@ aOu aQV aOv aTt -aKG +aUP aUM dCD aZt @@ -112133,7 +111879,7 @@ aPK aQV aOv aTt -aKH +sZD aUM aYe dnh @@ -112164,7 +111910,7 @@ bOW bQH bRV bST -bUh +kwI bVx bWS bYi @@ -114665,9 +114411,9 @@ aaa aaf aaa acP -adk +aaa adF -adk +aaa acP afB agz @@ -114922,9 +114668,9 @@ aaa aaf aaa acP -adl -bih -adl +aaa +aaa +aaa aeB afC afC @@ -115179,9 +114925,9 @@ aaa aaf aaa jwW -adl -aQf -adl +aaa +aaa +aaa aeC afD afD @@ -115436,9 +115182,9 @@ aaa aai aaa aaa -adl -adI -adl +aaa +aaa +aaa aeC afD afD @@ -117264,16 +117010,16 @@ aEm aFu aBI aBI -aAU -aCi -aCi -aFy +aJn +aCO +aFq +aNq aBI -aGY -aDf +aPZ +aRo aSu -aJx -aKI +aTG +aUZ aWB aYr aZH @@ -117514,22 +117260,22 @@ dqu doh axO axY -auS -awY -ayb -ayU -azd -aAp -aAv -ayh -ayh -ayh -ayh +aAo +aBJ +ayT +aEn +aFv aGV -ayh -aHZ +aHX +aCX +aCX +aCX +aCX +aOO +aCX +aRp aSv -aJy +aTH aVa aWw aWw @@ -117771,8 +117517,8 @@ dnh dnh axO axY -auT -axH +aAp +aBK aCS aEo aFw @@ -117785,8 +117531,8 @@ aNr aOP dCw aRq -aJo -aJz +aSw +aTI aVb aWC aYs @@ -118028,10 +117774,10 @@ avt awJ axS axY -avU -axU +nDB +ddW aCT -ayV +aEp aKC aFx aKC @@ -118042,8 +117788,8 @@ aKC aOQ aKC aRr -aJp -aJA +aSx +aTJ dfX aWD aVc @@ -118285,23 +118031,23 @@ avu axY axT axY -avV -axV -ayc -ayg -ayh -aAq -ayh -ayh -ayh -aDf -ayh -ayh -ayh -aAq -axH -aKy -aKJ +aAr +ddX +aCU +aCW +aCX +aGX +aCX +aCX +aCX +aSB +aCX +aCX +aCX +aGX +aBK +aTK +aVd aBI aYt aZK @@ -118540,25 +118286,25 @@ dBu dBu avv axY -aaU -alr -avW -axV -ayd -ayh -ayh -aAr -aAw -aBJ -aCL -aDg -aFz -aGX -ayh -ayh -axH -aKA -aKK +axU +ayS +jGF +ddX +deb +aCX +aCX +qMg +deM +eMP +hKs +aMg +vrp +dfh +aCX +aCX +aBK +deh +aVe axY aYu aYu @@ -118797,25 +118543,25 @@ atf auu avw atf -aaW -amV -avX +axV +ddP +aAt aBL -ayd -ayh -azf +deb +aCX +aFA axY axY -aBK +deB axY -aDt +aMh axY axY -aGZ -ayh -aJq -aKy -aKL +oXn +aCX +aSz +aTK +vuC aJu aYu aZL @@ -119054,25 +118800,25 @@ atg auv avx awK -aaX -anz +axW +aAu ddQ aBM -aye -ayh -azh +aCV +aCX +aFB axY -aAx -aBO -aBO -aEn -aFA +daW +dBw +aKF +aMi +cpR axY -aHa -ayh -aJr -aKy -aKL +aQd +aCX +aSA +aTK +vuC aJu aYu aZM @@ -119311,25 +119057,25 @@ ajb auw avy ajb -abd -aov -awN +axX +ayV +aAv aBN -ayg -ayh -azf -aAs -aAy -aJu -aCU -aJu -aFB -aAs +aCW +aCX +aFA aGZ -ayh -aJs -aKy -aKM +qzA +aJu +aKG +aJu +dBy +aGZ +oXn +aCX +dfD +aTK +hTv aJu aYu aZN @@ -119569,24 +119315,24 @@ ajb avz axY axY -apP -awO -axW -ayh -ayh -azi -axY -aAy -aJu -aCV -aEp +ayW +tUB +aBO +aCX +aCX aFC axY -aHP -ayh -axW -aKD -aLI +qzA +aJu +aKH +aMk +aNu +axY +dfp +aCX +aBO +dfP +dfY axY aYu cXA @@ -119826,24 +119572,24 @@ ajb avA axY axY -apX +ayX axY axY -ayt -ayh -azA +aCY +aCX +der axY -aAy +qzA aJu -aCW -aEq -aFB +aKI +tDM +dBy axY -aHX -aIa +dlI +iQV axY axY -apX +ayX axY atm apc @@ -120082,30 +119828,30 @@ ati ajb avB axY -abn -aqe +ddO +bUw aJu axY axY axY axY -aAt -aAy -aBP -aCX -aEr -aFB -aAt +djt +qzA +daZ +dbb +wmn +dBy +djt axY axY axY aJu -aqe -aMh +bUw +ovJ axY atm jKK -aNv +cXZ atm bfZ bif @@ -120340,33 +120086,33 @@ ajb avC axY axY -arh +lim axY axY -atF -ayW -atF -aAt -aAy +bTq +aEr +bTq +djt +qzA aJu -aCY -aEs -aFD -aAt -atF -aIb +xfJ +dfa +aNv +djt +bTq +djx axY axY -aLM +jzM axY axY atm avG cYj atm -bga -big -bga +aaa +adF +aaa bhT bpv brL @@ -120597,33 +120343,33 @@ dpL avD axY axY -arF -atF -atF -atF -atF -atF -aAt -aAt -aAt +waK +bTq +bTq +bTq +bTq +bTq +djt +djt +djt aRm -aAt -aAt -aAt -atF -atF -atF -atF -aMc -aMi -aMo +djt +djt +djt +bTq +bTq +bTq +bTq +dga +dgd +dgj atm lNZ atm atm -bgb -cTu -bgb +aaa +aaa +aaa bhT brJ brN @@ -120853,34 +120599,34 @@ apm dnR avE axY -acd -atC -atF +ayc +aza +bTq +aaa +mJy +dem +dem +deD +deD +deD +deV +dem +dem +dem +dem +dem +dfI +aaa +bTq +bTq +aYx +dgr +qcZ +aaa aaa -ayu -ayX -ayX -aAu -aAu -aAu -aCZ -ayX -ayX -ayX -ayX -ayX -aJt aaa -atF -atF -aMp -aNu -aju aaa aaa -bgb -cTi -bgb sJW aNC brM @@ -121110,34 +120856,34 @@ apm dnS avB axY -ace -atF -awX -axX -ayv -ayY -azB -azB -azB -azB -azB -azB -azB -azB -azB -aIc -ayv -axX -aMf -atF -aMp -aNu -aju +lwo +bTq +aAx +qxk +aIe +aOS +deu +deu +deu +deu +deu +deu +deu +deu +deu +dBB +aIe +qxk +aVh +bTq +aYx +dgr +qcZ +aaa +aaa +aaa aaa aaa -bgb -bij -bgb aaa aaf bpw @@ -121367,29 +121113,29 @@ atk aux avF dqT -acx -atJ -awX +fca +kXU +aAx aaa -ayv -ayZ -aAo +aIe +den +dev aav aav -aAo -lMJ +dev +vLD aaa aav aav -aAo -aId -ayv +dev +dfz +aIe aaa -aMf -aMj -aNp -aNu -aju +aVh +dge +azd +dgr +qcZ aaa aaa aaa @@ -121624,29 +121370,29 @@ atl auy dnS dqT -aeD -atF -awX -axX -ayS -aza +iNQ +bTq +aAx +qxk +def +aCZ aav aav aav -lMJ -aaf +vLD +qxk aaa aav aav aav -aIe -aJv -axX -aMf -atF -aMl -aNu -aju +qyp +dew +qxk +aVh +bTq +dgg +dgr +qcZ aaa aaa anT @@ -121881,44 +121627,44 @@ apm dnh dnS dqT -afQ -auQ -awX +hYG +wBK +aAx aaa -ayv -ayZ +aIe +den aav aav aaa -aju -aaf -aju +aaa +qxk +aaa aaa aav aav -aId -ayv +dfz +aIe aaa -aMf -aMk -aNq -aNu -aju +aVh +aWK +dgk +dgr +qcZ aaa aaa -anT -aOO -aOO +dgN +dgO +dgO aaf aav bpw -aOO -aOO +dgO +dgO aaf aaf aaf aaf -aOR +bCz aaf bFY aaf @@ -122139,28 +121885,28 @@ auz dqp dqT axY -aeD -awX -axZ -ayS -aza +iNQ +aAx +vJQ +def +aCZ aaa aaa -aju -aBQ -azB -aEu -aju -lMJ -aAo -aIe -aJv -axZ -aMf -aMl +aaa +ddZ +deu +mGY +aaa +vLD +dev +qyp +dew +vJQ +aVh +dgg axY -aNu -aju +dgr +qcZ aaa aaa anT @@ -122169,7 +121915,7 @@ aaa aaf aaf bpx -aOO +dgO aaf aaf aaa @@ -122396,28 +122142,28 @@ auA dnS dqT axY -aeD -atF -axX -ayv -ayZ -lMJ -aaf -aaf -ayZ -aDd -aEC -aaf -aaf -lMJ -aId -ayv -axX -atF -aMl +oru +bTq +qxk +aIe +den +vLD +qxk +qxk +den +hiq +aMo +qxk +qxk +vLD +dfz +aIe +qxk +bTq +iKX axY -aNu -aju +dgr +qcZ aaa aaa anT @@ -122653,28 +122399,28 @@ auB avG dqT axY -aeD -awX -axZ -ayS -aza -aAo -lMJ -aju -aBR -aDe -aFv -aju +iNQ +aAx +vJQ +def +aCZ +dev +vLD +aaa +gBt +deY +tYJ aaa aaa -aIe -aJv -axZ -aMf -aMl +aaa +qyp +dew +vJQ +aVh +dgg axY -aNu -aju +dgr +qcZ aaa aaa anT @@ -122909,29 +122655,29 @@ dnh dnh jKK dqT -ahT -auR -awX +yhr +cYV +aAx aaa -ayv -ayZ +aIe +den aav aav aaa -aju -aaf -aju +aaa +qxk +aaa aaa aav aav -aId -ayv +dfz +aIe aaa -aMf -aMm -aNs -aNu -aju +aVh +qiO +dgm +dgr +qcZ aaa aaa anT @@ -123166,29 +122912,29 @@ atn bOY avG dqT -aeD -atF -awX -axX -ayT -aza +iNQ +bTq +aAx +qxk +eCm +aCZ aav aav aaa aaa -aaf -lMJ +qxk +vLD aaa aav aav -aIe -aJw -axX -aMg -atF -aMl -aNu -aju +qyp +ixJ +qxk +glg +bTq +dgg +dgr +qcZ aaa aaa anT @@ -123423,28 +123169,28 @@ dnh dnh lNZ dqT -ajk -atJ -awX +pdI +kXU +aAx aaa -axZ -ayZ -aAo +vJQ +den +dev aav aaa aaa -lMJ -aAo +vLD +dev aav aav -aAo -aId -axZ +dev +dfz +vJQ aaa -aMf -aMj -aNt -aNu +aVh +dge +eTm +dgr aaf aaa aaa @@ -123682,26 +123428,26 @@ ack dqT axY axY -atF -aya -aya -azc -aya -aya -aya -aya -aya -aya -aya -aya -aya -aJn -aya -aya -atF +bTq +ili +ili +sef +ili +ili +ili +ili +wEo +ili +ili +ili +ili +giG +ili +ili +bTq axY axY -aNu +dgr aaf aaa aaa @@ -124194,7 +123940,7 @@ aaa aaa aaa lMJ -aju +qcZ axY axY axY @@ -124212,8 +123958,8 @@ axY axY axY axY -aju -aMn +qcZ +vyf aaa aaf aaf diff --git a/_maps/map_files/Mining/Lavaland.dmm b/_maps/map_files/Mining/Lavaland.dmm index 0640a20910..62f8080c28 100644 --- a/_maps/map_files/Mining/Lavaland.dmm +++ b/_maps/map_files/Mining/Lavaland.dmm @@ -106,18 +106,18 @@ /obj/structure/rack, /obj/item/storage/bag/ore, /obj/item/pickaxe, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/item/clothing/glasses/meson, -/obj/item/device/mining_scanner, +/obj/item/mining_scanner, /turf/open/floor/plasteel, /area/mine/laborcamp) "av" = ( /obj/structure/rack, /obj/item/storage/bag/ore, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/item/pickaxe, /obj/item/clothing/glasses/meson, -/obj/item/device/mining_scanner, +/obj/item/mining_scanner, /turf/open/floor/plasteel, /area/mine/laborcamp) "aw" = ( @@ -164,7 +164,7 @@ /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/explored) "aE" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; @@ -384,10 +384,10 @@ "bn" = ( /obj/structure/table, /obj/item/pickaxe, -/obj/item/device/gps/mining, -/obj/item/device/gps/mining, -/obj/item/device/gps/mining, -/obj/item/device/gps/mining, +/obj/item/gps/mining, +/obj/item/gps/mining, +/obj/item/gps/mining, +/obj/item/gps/mining, /turf/open/floor/plasteel/purple/side{ dir = 9 }, @@ -583,7 +583,7 @@ /turf/open/floor/plating, /area/mine/production) "bO" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/purple/corner{ dir = 8 }, @@ -926,7 +926,7 @@ /turf/closed/wall, /area/mine/living_quarters) "cO" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_x = -28 @@ -1109,10 +1109,9 @@ }, /area/mine/living_quarters) "dn" = ( -/obj/structure/table, -/obj/item/storage/firstaid/toxin{ - pixel_x = 3; - pixel_y = 3 +/obj/machinery/cryopod, +/obj/machinery/computer/cryopod{ + pixel_y = 26 }, /turf/open/floor/plasteel/whiteblue/side{ dir = 5 @@ -1245,6 +1244,10 @@ "dE" = ( /obj/structure/table, /obj/item/storage/firstaid/regular, +/obj/item/storage/firstaid/toxin{ + pixel_x = 3; + pixel_y = 3 + }, /turf/open/floor/plasteel/whiteblue/side{ dir = 4 }, @@ -1322,7 +1325,7 @@ dir = 8; network = list("mine") }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_x = 28 @@ -1934,7 +1937,7 @@ /turf/open/floor/plasteel, /area/mine/living_quarters) "fq" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_x = 28 @@ -2059,7 +2062,7 @@ /turf/open/floor/plasteel, /area/mine/living_quarters) "fI" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_x = -28 @@ -2292,13 +2295,11 @@ "gY" = ( /obj/docking_port/stationary{ area_type = /area/lavaland/surface/outdoors; - baseturf_type = /turf/open/lava/smooth/lava_land_surface; dir = 8; dwidth = 2; height = 5; id = "laborcamp_away"; name = "labor camp"; - turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; width = 9 }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, @@ -3246,13 +3247,11 @@ "Uq" = ( /obj/docking_port/stationary{ area_type = /area/lavaland/surface/outdoors; - baseturf_type = /turf/open/lava/smooth/lava_land_surface; dir = 2; dwidth = 11; height = 22; id = "whiteship_lavaland"; name = "lavaland wastes"; - turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; width = 35 }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, @@ -3260,13 +3259,11 @@ "Wp" = ( /obj/docking_port/stationary{ area_type = /area/lavaland/surface/outdoors; - baseturf_type = /turf/open/lava/smooth/lava_land_surface; dir = 8; dwidth = 3; height = 5; id = "mining_away"; name = "lavaland mine"; - turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; width = 7 }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm index 3566ad7c09..d77172737b 100644 --- a/_maps/map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/map_files/OmegaStation/OmegaStation.dmm @@ -138,7 +138,7 @@ "aas" = ( /obj/item/storage/toolbox/mechanical, /obj/item/wrench, -/obj/item/device/multitool, +/obj/item/multitool, /obj/structure/cable/white{ icon_state = "1-2" }, @@ -262,7 +262,7 @@ "aaE" = ( /obj/item/folder/red, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/structure/cable/white{ icon_state = "1-2" }, @@ -347,8 +347,8 @@ /obj/structure/table/reinforced, /obj/machinery/recharger, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/radio/intercom{ +/obj/item/assembly/flash/handheld, +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -28 }, @@ -439,9 +439,9 @@ /area/bridge) "aaU" = ( /obj/structure/table/reinforced, -/obj/item/device/aicard, +/obj/item/aicard, /obj/item/storage/secure/briefcase, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 28 }, @@ -517,7 +517,6 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/machinery/light, /turf/open/floor/plasteel/vault/side{ dir = 1 }, @@ -527,7 +526,7 @@ /obj/machinery/chem_dispenser/drinks{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 28; pixel_y = 24 @@ -550,8 +549,8 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel/vault/side{ - dir = 5 +/turf/open/floor/plasteel/vault{ + dir = 8 }, /area/bridge) "abd" = ( @@ -568,8 +567,9 @@ dir = 4 }, /obj/effect/landmark/event_spawn, +/obj/machinery/holopad, /turf/open/floor/plasteel/vault{ - dir = 5 + dir = 8 }, /area/bridge) "abe" = ( @@ -582,7 +582,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, -/obj/machinery/light, /turf/open/floor/plasteel/vault/side{ dir = 1 }, @@ -680,18 +679,14 @@ /turf/open/floor/plasteel, /area/bridge) "abm" = ( -/obj/machinery/status_display, -/turf/closed/wall, -/area/bridge) -"abn" = ( /obj/structure/cable/white{ icon_state = "0-2" }, /obj/machinery/modular_computer/console/preset/command{ dir = 4 }, -/turf/open/floor/plasteel/vault{ - dir = 5 +/turf/open/floor/plasteel/darkpurple/side{ + dir = 8 }, /area/bridge) "abo" = ( @@ -703,6 +698,8 @@ /obj/structure/cable/white{ icon_state = "1-2" }, +/obj/structure/table/wood, +/obj/item/storage/lockbox/medal, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -794,39 +791,34 @@ /turf/closed/wall, /area/bridge) "abB" = ( -/obj/structure/table/wood, -/obj/item/folder/blue, -/obj/item/pen, +/obj/machinery/computer/robotics{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, /obj/machinery/firealarm{ dir = 8; pixel_x = -24 }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/vault/side{ - dir = 4 +/turf/open/floor/plasteel/darkpurple/side{ + dir = 8 }, /area/bridge) "abC" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, /obj/structure/cable/white{ icon_state = "2-4" }, -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 +/turf/open/floor/plasteel/vault/side{ + dir = 4 }, /area/bridge) "abD" = ( /obj/structure/cable/white{ icon_state = "4-8" }, -/turf/open/floor/plasteel/vault/side{ - dir = 4 +/turf/open/floor/plasteel/vault{ + dir = 8 }, /area/bridge) "abE" = ( @@ -836,38 +828,34 @@ /obj/structure/cable/white{ icon_state = "1-4" }, -/obj/machinery/holopad, -/turf/open/floor/plasteel/vault, -/area/bridge) -"abF" = ( /obj/structure/table/wood, -/obj/item/lighter, -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/obj/structure/cable/white{ - icon_state = "1-2" - }, +/obj/item/paper_bin, +/obj/item/pen, /turf/open/floor/plasteel/vault{ dir = 8 }, /area/bridge) -"abG" = ( -/obj/structure/table/wood, -/obj/item/storage/secure/briefcase{ - pixel_x = 5; - pixel_y = 5 +"abF" = ( +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/vault/side{ + dir = 8 + }, +/area/bridge) +"abG" = ( +/obj/machinery/computer/mecha{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 }, -/obj/item/storage/lockbox/medal, /obj/machinery/airalarm{ dir = 8; pixel_x = 24 }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/vault/side{ - dir = 8 +/turf/open/floor/plasteel/darkpurple/side{ + dir = 4 }, /area/bridge) "abH" = ( @@ -1126,11 +1114,10 @@ /turf/open/floor/carpet, /area/bridge) "acj" = ( -/obj/structure/table/wood, -/obj/item/storage/fancy/donut_box, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/item/beacon, /turf/open/floor/carpet, /area/bridge) "ack" = ( @@ -1141,6 +1128,9 @@ dir = 4 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/structure/cable/white{ + icon_state = "2-8" + }, /turf/open/floor/plasteel/grimy, /area/bridge) "acl" = ( @@ -1171,7 +1161,7 @@ /area/bridge) "aco" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/newscaster{ pixel_x = -32 }, @@ -1495,7 +1485,7 @@ dir = 4 }, /turf/open/floor/plasteel/vault/side{ - dir = 1 + dir = 5 }, /area/bridge) "acY" = ( @@ -1531,13 +1521,6 @@ /area/bridge) "ada" = ( /obj/structure/table/wood, -/obj/item/clothing/mask/cigarette/cigar/cohiba{ - pixel_x = 3 - }, -/obj/item/clothing/mask/cigarette/cigar/havana{ - pixel_x = -3 - }, -/obj/item/clothing/mask/cigarette/cigar, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -1545,6 +1528,14 @@ c_tag = "Bridge Center"; dir = 1 }, +/obj/item/storage/fancy/donut_box, +/obj/item/clothing/mask/cigarette/cigar/havana{ + pixel_x = -3 + }, +/obj/item/clothing/mask/cigarette/cigar/cohiba{ + pixel_x = 3 + }, +/obj/item/clothing/mask/cigarette/cigar, /turf/open/floor/carpet, /area/bridge) "adb" = ( @@ -1564,6 +1555,9 @@ /obj/structure/cable/white{ icon_state = "1-2" }, +/obj/structure/cable/white{ + icon_state = "2-8" + }, /turf/open/floor/plasteel/grimy, /area/bridge) "add" = ( @@ -1874,7 +1868,7 @@ /area/crew_quarters/heads/captain/private) "adN" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 28 }, @@ -1966,11 +1960,7 @@ /turf/closed/wall, /area/crew_quarters/heads/hop) "adZ" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "cargounload" - }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -28 }, @@ -1980,6 +1970,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/machinery/conveyor/inverted{ + dir = 5; + id = "cargounload" + }, /turf/open/floor/plasteel, /area/quartermaster/storage) "aea" = ( @@ -2258,6 +2252,9 @@ uses = 10 }, /obj/effect/turf_decal/bot, +/obj/structure/cable/white{ + icon_state = "2-8" + }, /turf/open/floor/plasteel/vault, /area/ai_monitored/nuke_storage) "aeF" = ( @@ -2370,7 +2367,7 @@ pixel_x = 24; pixel_y = 38 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 28; pixel_y = 24 @@ -2438,7 +2435,7 @@ /area/asteroid/nearstation) "afd" = ( /obj/structure/table/wood, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/item/restraints/handcuffs, /turf/open/floor/plasteel/vault/side{ dir = 4 @@ -2538,7 +2535,7 @@ /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) "afo" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; freerange = 1; name = "Captain's Intercom"; @@ -2801,8 +2798,9 @@ /turf/open/floor/plasteel/neutral, /area/quartermaster/storage) "afH" = ( -/obj/machinery/conveyor_switch{ - id = "cargounload" +/obj/machinery/conveyor_switch/oneway{ + id = "cargounload"; + dir = 8 }, /turf/open/floor/plasteel/brown{ dir = 4 @@ -2846,8 +2844,8 @@ "afP" = ( /obj/structure/table/wood, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/camera/detective, -/obj/item/device/radio/intercom{ +/obj/item/camera/detective, +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -2958,7 +2956,7 @@ /area/crew_quarters/heads/captain/private) "aga" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, +/obj/item/flashlight/lamp/green, /obj/item/toy/figure/captain, /turf/open/floor/carpet, /area/crew_quarters/heads/captain/private) @@ -3453,7 +3451,7 @@ "agX" = ( /obj/structure/table/reinforced, /obj/item/aiModule/reset, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -3525,7 +3523,7 @@ "ahd" = ( /obj/structure/table/reinforced, /obj/item/aiModule/supplied/quarantine, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; listening = 0; @@ -3637,15 +3635,15 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "ahn" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "cargoload" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/stripes/line{ dir = 9 }, /obj/effect/turf_decal/stripes/corner, +/obj/machinery/conveyor{ + dir = 5; + id = "cargoload" + }, /turf/open/floor/plating, /area/quartermaster/storage) "aho" = ( @@ -3840,7 +3838,7 @@ /area/security/detectives_office) "ahF" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/item/storage/secure/safe{ pixel_x = 32 }, @@ -3972,6 +3970,19 @@ /area/ai_monitored/nuke_storage) "ahT" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/flasher{ + id = "AI"; + pixel_x = 9; + pixel_y = -24 + }, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1447; + listening = 0; + name = "AI Intercom"; + pixel_x = -4; + pixel_y = -28 + }, /turf/open/floor/circuit/green, /area/ai_monitored/nuke_storage) "ahU" = ( @@ -4284,18 +4295,6 @@ name = "AI Vault Chamber"; req_access_txt = "16" }, -/obj/machinery/flasher{ - id = "AI"; - pixel_x = 26; - pixel_y = -10 - }, -/obj/item/device/radio/intercom{ - broadcasting = 1; - frequency = 1447; - listening = 0; - name = "AI Intercom"; - pixel_x = 28 - }, /obj/structure/cable/white{ icon_state = "1-2" }, @@ -4397,12 +4396,12 @@ }, /area/quartermaster/storage) "aiL" = ( -/obj/machinery/conveyor_switch{ - id = "cargoload" - }, /obj/machinery/light{ dir = 1 }, +/obj/machinery/conveyor_switch/oneway{ + id = "cargoload" + }, /turf/open/floor/plasteel/brown{ dir = 5 }, @@ -4419,7 +4418,7 @@ "aiN" = ( /obj/structure/table/reinforced, /obj/item/folder/yellow, -/obj/item/device/multitool{ +/obj/item/multitool{ pixel_x = 6 }, /obj/item/pen/red, @@ -4507,7 +4506,7 @@ /area/security/brig) "aiY" = ( /obj/structure/closet/crate/bin, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; pixel_y = 24 @@ -4664,7 +4663,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 24 }, @@ -4800,7 +4799,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 24 }, @@ -4977,7 +4976,7 @@ pixel_x = 3; pixel_y = -3 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -5049,8 +5048,8 @@ /obj/structure/table/reinforced, /obj/item/folder/red, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/item/key/security, /turf/open/floor/plasteel/red/side{ dir = 8 @@ -6447,7 +6446,7 @@ }, /obj/item/storage/toolbox/mechanical, /obj/item/stack/cable_coil/white, -/obj/item/device/multitool, +/obj/item/multitool, /obj/machinery/button/door{ id = "evashutters"; name = "E.V.A. Shutters"; @@ -6463,7 +6462,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -6528,7 +6527,7 @@ pixel_x = 24; pixel_y = -24 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 28 }, @@ -6558,7 +6557,7 @@ name = "protective hat"; pixel_y = 9 }, -/obj/item/device/flashlight, +/obj/item/flashlight, /turf/open/floor/plating, /area/asteroid/nearstation) "amH" = ( @@ -6725,9 +6724,9 @@ "amV" = ( /obj/structure/table/reinforced, /obj/item/storage/belt/utility, -/obj/item/device/radio, -/obj/item/device/radio, -/obj/item/device/gps, +/obj/item/radio, +/obj/item/radio, +/obj/item/gps, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/teleporter) @@ -6815,10 +6814,10 @@ "anh" = ( /obj/structure/table/reinforced, /obj/item/storage/belt/utility, -/obj/item/device/radio, -/obj/item/device/radio, -/obj/item/device/flashlight/flare, -/obj/item/device/flashlight/flare, +/obj/item/radio, +/obj/item/radio, +/obj/item/flashlight/flare, +/obj/item/flashlight/flare, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) @@ -6907,7 +6906,7 @@ /area/quartermaster/miningdock) "anq" = ( /obj/structure/closet/secure_closet/miner, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -7141,6 +7140,7 @@ "anN" = ( /obj/machinery/holopad, /obj/effect/turf_decal/bot, +/obj/item/beacon, /turf/open/floor/plasteel, /area/teleporter) "anP" = ( @@ -7243,6 +7243,7 @@ "anW" = ( /obj/machinery/holopad, /obj/effect/turf_decal/bot, +/obj/item/beacon, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "anX" = ( @@ -8195,7 +8196,7 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -8258,7 +8259,7 @@ /area/teleporter) "apO" = ( /obj/machinery/shieldwallgen, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 28 }, @@ -8404,10 +8405,10 @@ /obj/item/storage/toolbox/emergency, /obj/item/tank/internals/oxygen, /obj/item/tank/internals/oxygen, -/obj/item/device/flashlight, -/obj/item/device/flashlight, -/obj/item/device/flashlight/flare, -/obj/item/device/flashlight/flare, +/obj/item/flashlight, +/obj/item/flashlight, +/obj/item/flashlight/flare, +/obj/item/flashlight/flare, /turf/open/floor/plasteel, /area/maintenance/starboard/central) "aqc" = ( @@ -8418,7 +8419,7 @@ }, /obj/item/tank/jetpack/carbondioxide, /obj/item/wrench, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -28 }, @@ -8611,10 +8612,10 @@ "aqv" = ( /obj/effect/decal/cleanable/oil, /obj/structure/closet/crate, -/obj/item/device/flashlight, -/obj/item/device/flashlight, -/obj/item/device/flashlight/flare, -/obj/item/device/flashlight/flare, +/obj/item/flashlight, +/obj/item/flashlight, +/obj/item/flashlight/flare, +/obj/item/flashlight/flare, /obj/item/stock_parts/cell/high, /obj/item/crowbar/red, /obj/effect/turf_decal/bot, @@ -8656,7 +8657,7 @@ /area/maintenance/port/fore) "aqI" = ( /obj/structure/closet/secure_closet/security/sec, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -8792,23 +8793,23 @@ /area/storage/primary) "aqU" = ( /obj/structure/table/reinforced, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, /obj/effect/spawner/lootdrop/maintenance, /obj/machinery/status_display{ pixel_y = 32 }, /obj/effect/turf_decal/bot, -/obj/item/device/multitool, -/obj/item/device/multitool, +/obj/item/multitool, +/obj/item/multitool, /turf/open/floor/plasteel, /area/storage/primary) "aqV" = ( /obj/structure/table/reinforced, /obj/item/crowbar, /obj/item/wrench, -/obj/item/device/gps, +/obj/item/gps, /obj/machinery/light{ dir = 1 }, @@ -8994,10 +8995,8 @@ }, /area/quartermaster/miningdock) "arr" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped{ - dir = 8; - filter_type = "n2o"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/n2o{ + dir = 8 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/vault{ @@ -9046,7 +9045,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 24 }, @@ -9318,7 +9317,7 @@ /area/storage/primary) "arU" = ( /obj/machinery/holopad, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -9677,7 +9676,7 @@ "asO" = ( /obj/structure/table/reinforced, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/machinery/firealarm{ dir = 1; pixel_y = -26 @@ -9692,15 +9691,15 @@ /area/security/brig) "asP" = ( /obj/structure/table/reinforced, -/obj/item/device/radio{ +/obj/item/radio{ pixel_x = 5; pixel_y = 5 }, -/obj/item/device/radio{ +/obj/item/radio{ pixel_x = -5; pixel_y = 5 }, -/obj/item/device/radio, +/obj/item/radio, /obj/machinery/newscaster/security_unit{ pixel_y = -32 }, @@ -9714,11 +9713,11 @@ "asQ" = ( /obj/structure/table/reinforced, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/machinery/status_display{ pixel_y = -32 }, -/obj/item/device/flashlight/seclite, +/obj/item/flashlight/seclite, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -9829,7 +9828,7 @@ "asX" = ( /obj/structure/table/reinforced, /obj/item/storage/toolbox/mechanical, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ icon_state = "4-8" @@ -10108,7 +10107,7 @@ "atQ" = ( /obj/structure/table/reinforced, /obj/item/storage/toolbox/mechanical, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -10243,11 +10242,11 @@ /area/maintenance/port/central) "atX" = ( /obj/structure/table/wood, -/obj/item/device/camera_film{ +/obj/item/camera_film{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/camera_film, +/obj/item/camera_film, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -10366,7 +10365,7 @@ }, /obj/item/stack/cable_coil/random, /obj/item/stack/cable_coil/random, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -10693,7 +10692,7 @@ /area/crew_quarters/theatre) "ava" = ( /obj/structure/table/wood, -/obj/item/device/instrument/guitar, +/obj/item/instrument/guitar, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -10746,7 +10745,7 @@ /area/crew_quarters/bar/atrium) "avg" = ( /obj/structure/table/wood, -/obj/item/device/paicard, +/obj/item/paicard, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -10894,10 +10893,8 @@ }, /area/engine/atmos) "avy" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped{ - dir = 4; - filter_type = "o2"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/o2{ + dir = 4 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/vault{ @@ -11030,7 +11027,7 @@ icon_state = "crateopen" }, /obj/item/clothing/shoes/jackboots, -/obj/item/device/radio, +/obj/item/radio, /obj/item/storage/secure/briefcase, /obj/effect/spawner/lootdrop/maintenance{ lootcount = 2; @@ -11195,7 +11192,7 @@ /area/maintenance/port/central) "awf" = ( /obj/structure/table/wood, -/obj/item/device/camera, +/obj/item/camera, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -11387,7 +11384,7 @@ /area/maintenance/starboard/central) "awy" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -11774,7 +11771,7 @@ /obj/machinery/newscaster{ pixel_y = 32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -11805,7 +11802,7 @@ }, /area/hallway/primary/port) "axD" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -12085,7 +12082,7 @@ "ayr" = ( /obj/structure/table/reinforced, /obj/item/storage/belt/utility, -/obj/item/device/t_scanner, +/obj/item/t_scanner, /obj/structure/cable/white{ icon_state = "2-4" }, @@ -12170,7 +12167,7 @@ /area/crew_quarters/dorms) "ayE" = ( /obj/structure/table/wood, -/obj/item/device/instrument/violin, +/obj/item/instrument/violin, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -12333,7 +12330,7 @@ }, /obj/item/crowbar, /obj/item/wrench, -/obj/item/device/radio, +/obj/item/radio, /obj/machinery/airalarm{ pixel_y = 23 }, @@ -12347,7 +12344,7 @@ "ayX" = ( /obj/structure/table/reinforced, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/machinery/status_display{ pixel_y = 32 }, @@ -12363,7 +12360,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 24 }, @@ -12400,10 +12397,8 @@ /turf/open/floor/plating, /area/hallway/secondary/exit) "azl" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped{ - dir = 4; - filter_type = "n2"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/n2{ + dir = 4 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/vault{ @@ -12532,12 +12527,12 @@ /area/engine/atmos) "azA" = ( /obj/structure/table, -/obj/item/device/paicard, +/obj/item/paicard, /turf/open/floor/plasteel/neutral, /area/crew_quarters/dorms) "azB" = ( /obj/structure/table, -/obj/item/device/camera, +/obj/item/camera, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral, /area/crew_quarters/dorms) @@ -13251,16 +13246,15 @@ icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 5 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 }, /turf/open/floor/plasteel, /area/engine/atmos) "aBB" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 8; - name = "External Waste Ports to Filter"; - on = 1 + name = "External Waste Ports to Filter" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ @@ -13335,7 +13329,7 @@ /area/engine/atmos) "aBJ" = ( /obj/structure/table/reinforced, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/requests_console{ department = "Atmospherics Office"; departmentType = 0; @@ -13615,7 +13609,7 @@ icon_state = "4-8" }, /obj/item/folder/red, -/obj/item/device/radio, +/obj/item/radio, /obj/effect/turf_decal/stripes/line{ dir = 2 }, @@ -13729,15 +13723,15 @@ /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel/vault/side{ dir = 1 }, /area/engine/atmos) "aCF" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; - name = "Air to External Air Ports"; - on = 1 + name = "Air to External Air Ports" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/camera{ @@ -13868,7 +13862,7 @@ /area/crew_quarters/dorms) "aCP" = ( /obj/structure/table/wood, -/obj/item/device/instrument/eguitar, +/obj/item/instrument/eguitar, /obj/item/toy/crayon/spraycan/lubecan{ charges = 5 }, @@ -14054,7 +14048,6 @@ height = 18; id = "emergency_home"; name = "OmegaStation emergency evac bay"; - turf_type = /turf/open/space; width = 30 }, /turf/open/space/basic, @@ -14095,6 +14088,7 @@ dir = 1 }, /obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel, /area/engine/atmos) "aDu" = ( @@ -14361,7 +14355,7 @@ /turf/open/floor/plasteel/white, /area/crew_quarters/kitchen) "aDX" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 28 }, @@ -14433,7 +14427,7 @@ /obj/structure/sign/warning/nosmoking{ pixel_y = 32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -14517,7 +14511,7 @@ /obj/machinery/power/smes{ charge = 5e+006 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -14541,10 +14535,8 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, /obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel, /area/engine/engineering) "aEz" = ( @@ -14556,6 +14548,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 5 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, /turf/open/floor/plasteel, /area/engine/engineering) "aEA" = ( @@ -14751,10 +14746,10 @@ "aET" = ( /obj/structure/table/wood, /obj/item/storage/crayons, -/obj/item/device/flashlight/lamp/bananalamp{ +/obj/item/flashlight/lamp/bananalamp{ pixel_y = 5 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -14986,7 +14981,7 @@ /obj/item/stack/sheet/mineral/plasma{ amount = 20 }, -/obj/item/device/gps/engineering{ +/obj/item/gps/engineering{ gpstag = "ENG0" }, /obj/machinery/light/small, @@ -14996,6 +14991,7 @@ /obj/effect/turf_decal/bot, /obj/item/areaeditor/blueprints, /obj/item/tank/jetpack/suit, +/obj/item/clothing/shoes/magboots/advance, /turf/open/floor/plasteel/vault/side{ dir = 8 }, @@ -15067,16 +15063,19 @@ dir = 10 }, /obj/item/clothing/glasses/meson/engine, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/engineering) "aFA" = ( /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engine/engineering) "aFB" = ( @@ -15302,7 +15301,7 @@ /area/crew_quarters/kitchen) "aFX" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -15323,6 +15322,7 @@ /area/hallway/primary/starboard) "aGa" = ( /obj/effect/landmark/event_spawn, +/obj/item/beacon, /turf/open/floor/plasteel/neutral, /area/hallway/secondary/exit) "aGb" = ( @@ -15726,7 +15726,7 @@ /area/crew_quarters/bar/atrium) "aGQ" = ( /obj/machinery/holopad, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 28 }, @@ -16442,10 +16442,9 @@ /turf/open/floor/engine, /area/engine/engineering) "aIl" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 8; - name = "Gas to Filter"; - on = 1 + name = "Gas to Filter" }, /obj/structure/cable{ icon_state = "4-8" @@ -16598,7 +16597,7 @@ /area/engine/engineering) "aIy" = ( /obj/structure/table/reinforced, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/requests_console{ department = "Engineering"; departmentType = 0; @@ -16711,7 +16710,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -16962,7 +16961,7 @@ /obj/machinery/power/terminal{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -16989,13 +16988,13 @@ /turf/open/floor/plasteel, /area/engine/gravity_generator) "aJo" = ( -/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/white{ icon_state = "0-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 }, +/obj/effect/spawner/structure/window/plasma/reinforced, /turf/open/floor/plating, /area/engine/gravity_generator) "aJp" = ( @@ -17075,13 +17074,13 @@ /turf/open/floor/engine, /area/engine/engineering) "aJA" = ( -/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/white{ icon_state = "0-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/effect/spawner/structure/window/plasma/reinforced, /turf/open/floor/plating, /area/engine/engineering) "aJB" = ( @@ -17235,7 +17234,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/bot, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -17692,7 +17691,7 @@ /area/engine/engineering) "aKM" = ( /obj/structure/table/reinforced, -/obj/item/device/lightreplacer, +/obj/item/lightreplacer, /obj/structure/cable/white{ icon_state = "1-8" }, @@ -18069,11 +18068,11 @@ /turf/open/floor/plasteel, /area/engine/gravity_generator) "aLL" = ( -/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/white, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, +/obj/effect/spawner/structure/window/plasma/reinforced, /turf/open/floor/plating, /area/engine/gravity_generator) "aLM" = ( @@ -18122,7 +18121,8 @@ /turf/closed/wall/r_wall/rust, /area/engine/supermatter) "aLR" = ( -/obj/machinery/door/airlock/atmos/glass{ +/obj/machinery/door/airlock/atmos/glass/critical{ + heat_proof = 1; name = "Supermatter Chamber"; req_access_txt = "24" }, @@ -18170,8 +18170,8 @@ /turf/open/floor/engine, /area/engine/engineering) "aLX" = ( -/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/white, +/obj/effect/spawner/structure/window/plasma/reinforced, /turf/open/floor/plating, /area/engine/engineering) "aLY" = ( @@ -18221,7 +18221,7 @@ pixel_y = 3 }, /obj/item/storage/box/lights/mixed, -/obj/item/device/lightreplacer, +/obj/item/lightreplacer, /obj/machinery/airalarm{ dir = 4; pixel_x = -23 @@ -18404,9 +18404,7 @@ /area/tcommsat/server) "aMK" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, /area/tcommsat/server) "aML" = ( @@ -18541,7 +18539,7 @@ /area/engine/engineering) "aNa" = ( /obj/machinery/suit_storage_unit/engine, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -18626,7 +18624,7 @@ /area/engine/engineering) "aNh" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -18674,7 +18672,7 @@ /obj/machinery/light_switch{ pixel_y = -24 }, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -18884,7 +18882,7 @@ /area/hallway/secondary/exit) "aNI" = ( /obj/structure/closet/crate, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -24 }, @@ -18945,7 +18943,7 @@ /obj/machinery/computer/telecomms/monitor{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 24 }, @@ -18982,7 +18980,10 @@ /turf/open/floor/engine, /area/engine/engineering) "aOa" = ( -/obj/machinery/power/supermatter_shard/crystal/engine, +/obj/machinery/power/supermatter_crystal/shard/engine{ + anchored = 1; + moveable = 0 + }, /turf/open/floor/engine, /area/engine/supermatter) "aOb" = ( @@ -19437,7 +19438,7 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 24 }, @@ -19717,7 +19718,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 24 }, @@ -20286,7 +20287,7 @@ pixel_y = 3 }, /obj/item/book/manual/detective, -/obj/item/device/camera/detective, +/obj/item/camera/detective, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -20664,12 +20665,7 @@ /turf/open/floor/plasteel/vault/side, /area/tcommsat/server) "aRE" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 2; - min_temperature = 80; - on = 1; - target_temperature = 80 - }, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel/vault/side, /area/tcommsat/server) @@ -20677,7 +20673,7 @@ /obj/structure/cable/white{ icon_state = "1-4" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -28 }, @@ -20696,10 +20692,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 2; - name = "Gas to Cooling Loop"; - on = 1 + name = "Gas to Cooling Loop" }, /turf/open/floor/engine, /area/engine/engineering) @@ -20781,10 +20776,9 @@ /turf/open/floor/engine, /area/engine/engineering) "aRQ" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 1; - name = "Gas to Cooling Loop"; - on = 1 + name = "Gas to Cooling Loop" }, /turf/open/floor/engine, /area/engine/engineering) @@ -20810,7 +20804,7 @@ /area/maintenance/port) "aRT" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/computer/security/telescreen/entertainment{ pixel_x = -32 }, @@ -20839,7 +20833,7 @@ /obj/structure/chair/office/dark{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 24 }, @@ -20849,7 +20843,7 @@ /area/library) "aRX" = ( /obj/structure/table/wood, -/obj/item/device/paicard, +/obj/item/paicard, /obj/machinery/newscaster{ pixel_y = 32 }, @@ -20895,7 +20889,7 @@ /area/library) "aSd" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/newscaster{ pixel_x = 32 }, @@ -20937,7 +20931,7 @@ dir = 4; pixel_x = -22 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26; pixel_y = 24 @@ -21231,7 +21225,7 @@ "aST" = ( /obj/structure/table/reinforced, /obj/item/storage/toolbox/mechanical, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/stripes/line, /turf/open/floor/engine, @@ -21240,9 +21234,8 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -21263,11 +21256,8 @@ /turf/open/floor/plasteel/dark, /area/engine/engineering) "aSW" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1; - min_temperature = 80; - on = 1; - target_temperature = 80 +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -21290,8 +21280,8 @@ /obj/item/tank/internals/emergency_oxygen/engi{ pixel_x = 5 }, -/obj/item/device/geiger_counter, -/obj/item/device/geiger_counter, +/obj/item/geiger_counter, +/obj/item/geiger_counter, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/stripes/line, /turf/open/floor/engine, @@ -21421,7 +21411,7 @@ dir = 1 }, /obj/machinery/door/window/southright, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -21487,7 +21477,7 @@ /area/hallway/primary/aft) "aTy" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/grimy, /area/crew_quarters/lounge) "aTz" = ( @@ -21816,7 +21806,7 @@ /area/library) "aUk" = ( /obj/structure/bodycontainer/morgue, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -21848,6 +21838,10 @@ c_tag = "Genetics Cloning"; dir = 4 }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, /turf/open/floor/plasteel/whiteblue/corner{ dir = 1 }, @@ -21966,14 +21960,14 @@ /obj/item/stock_parts/capacitor, /obj/item/stock_parts/manipulator, /obj/item/stock_parts/manipulator, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 28 }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plasteel/vault/side, /area/science/lab) "aUF" = ( @@ -22167,7 +22161,7 @@ /obj/machinery/light{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -22362,10 +22356,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/item/device/integrated_circuit_printer, -/obj/item/device/integrated_electronics/analyzer, -/obj/item/device/integrated_electronics/debugger, -/obj/item/device/integrated_electronics/wirer, +/obj/item/integrated_circuit_printer, +/obj/item/integrated_electronics/analyzer, +/obj/item/integrated_electronics/debugger, +/obj/item/integrated_electronics/wirer, /turf/open/floor/plasteel/vault/side, /area/science/lab) "aVy" = ( @@ -22493,7 +22487,7 @@ "aVN" = ( /obj/structure/table/wood, /obj/item/storage/bag/books, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/machinery/status_display{ pixel_x = -32 }, @@ -22507,7 +22501,7 @@ /area/library) "aVP" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/dark, /area/library) @@ -22655,18 +22649,18 @@ /area/medical/chemistry) "aWg" = ( /obj/structure/table/glass, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/timer{ +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/timer{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = 3; pixel_y = 3 }, @@ -22839,7 +22833,7 @@ "aWy" = ( /obj/structure/table/wood, /obj/item/storage/briefcase, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /turf/open/floor/plating, /area/maintenance/starboard/aft) "aWz" = ( @@ -22866,11 +22860,11 @@ /area/library) "aWC" = ( /obj/structure/table/wood, -/obj/item/device/camera_film{ +/obj/item/camera_film{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/camera_film, +/obj/item/camera_film, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/vault{ dir = 5 @@ -23527,7 +23521,7 @@ /area/medical/medbay/zone3) "aXQ" = ( /obj/structure/closet/secure_closet/medical3, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -23575,12 +23569,7 @@ /turf/open/floor/plasteel, /area/medical/medbay/zone3) "aXV" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 2; - min_temperature = 80; - on = 1; - target_temperature = 80 - }, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -23732,7 +23721,7 @@ /area/science/research) "aYm" = ( /obj/machinery/light, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -24 }, @@ -23776,11 +23765,8 @@ /turf/open/floor/plasteel/whitepurple/corner, /area/science/research) "aYq" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1; - min_temperature = 80; - on = 1; - target_temperature = 80 +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ + dir = 1 }, /obj/machinery/firealarm{ dir = 8; @@ -23798,7 +23784,7 @@ dir = 4 }, /obj/structure/cable/white, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -24 }, @@ -24223,7 +24209,7 @@ "aZq" = ( /obj/structure/table/wood, /obj/item/clothing/gloves/color/black, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/machinery/light/small{ dir = 1 }, @@ -24266,10 +24252,10 @@ "aZv" = ( /obj/structure/table/wood, /obj/item/folder, -/obj/item/device/laser_pointer{ +/obj/item/laser_pointer{ pixel_x = 3 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -24279,8 +24265,8 @@ /area/library) "aZw" = ( /obj/structure/table/wood, -/obj/item/device/taperecorder, -/obj/item/device/camera, +/obj/item/taperecorder, +/obj/item/camera, /obj/machinery/ai_status_display{ pixel_y = -32 }, @@ -24609,7 +24595,7 @@ /obj/item/screwdriver{ pixel_y = 5 }, -/obj/item/device/multitool, +/obj/item/multitool, /obj/item/clothing/head/welding, /obj/machinery/firealarm{ pixel_y = 24 @@ -24649,12 +24635,12 @@ /obj/structure/table/reinforced, /obj/item/stack/cable_coil/white, /obj/item/stack/cable_coil/white, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/machinery/newscaster{ pixel_y = 32 }, @@ -24663,15 +24649,15 @@ /area/science/robotics/lab) "bag" = ( /obj/item/paper_bin, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = 5; pixel_y = 7 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = 5; pixel_y = 7 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = 5; pixel_y = 7 }, @@ -24861,6 +24847,9 @@ /area/medical/medbay/zone3) "bay" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/defibrillator_mount/loaded{ + pixel_y = -32 + }, /turf/open/floor/plasteel/whiteblue/corner{ dir = 8 }, @@ -24954,7 +24943,7 @@ "baK" = ( /obj/structure/table/reinforced, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/radio, +/obj/item/radio, /obj/structure/reagent_dispensers/peppertank{ pixel_x = 32 }, @@ -25144,7 +25133,7 @@ /area/science/robotics/lab) "bbc" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plating, /area/maintenance/port) "bbd" = ( @@ -25617,7 +25606,7 @@ "bce" = ( /obj/structure/table/optable, /obj/effect/decal/cleanable/blood/old, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 }, @@ -25797,6 +25786,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 10 }, +/obj/structure/closet/crate/bin, /turf/open/floor/plasteel, /area/science/robotics/lab) "bcz" = ( @@ -25818,11 +25808,11 @@ /turf/open/floor/plasteel, /area/science/robotics/lab) "bcC" = ( -/obj/structure/closet/crate/bin, /obj/structure/extinguisher_cabinet{ pixel_x = 24 }, /obj/effect/turf_decal/bot, +/obj/machinery/aug_manipulator, /turf/open/floor/plasteel/vault/side{ dir = 8 }, @@ -25830,7 +25820,7 @@ "bcD" = ( /obj/structure/rack, /obj/item/weldingtool, -/obj/item/device/assembly/voice, +/obj/item/assembly/voice, /obj/item/clothing/head/welding, /obj/effect/spawner/lootdrop/maintenance, /obj/effect/turf_decal/stripes/line{ @@ -25904,7 +25894,7 @@ /area/maintenance/port) "bcR" = ( /obj/structure/table/wood, -/obj/item/device/instrument/guitar, +/obj/item/instrument/guitar, /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plating, /area/maintenance/port) @@ -26544,7 +26534,7 @@ /obj/structure/chair/office/light{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -26611,7 +26601,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "beg" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -24 }, @@ -26671,7 +26661,7 @@ /obj/item/stock_parts/cell/high, /obj/item/stock_parts/cell/high, /obj/machinery/cell_charger, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -26696,9 +26686,9 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/item/device/mmi, -/obj/item/device/mmi, -/obj/item/device/mmi, +/obj/item/mmi, +/obj/item/mmi, +/obj/item/mmi, /obj/structure/sign/departments/medbay/alt{ pixel_y = -32 }, @@ -26886,7 +26876,7 @@ /obj/machinery/newscaster{ pixel_x = -32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -24 }, @@ -27550,7 +27540,7 @@ }, /area/chapel/main) "bfX" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 24 }, @@ -27631,7 +27621,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -27797,7 +27787,7 @@ pixel_x = -26; req_access_txt = "27" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -24 }, @@ -27836,7 +27826,7 @@ /area/chapel/main) "bgH" = ( /obj/structure/table/wood/fancy, -/obj/item/device/flashlight/lantern, +/obj/item/flashlight/lantern, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, @@ -28541,7 +28531,7 @@ /area/chapel/main) "bii" = ( /obj/structure/table/wood/fancy, -/obj/item/device/flashlight/lantern, +/obj/item/flashlight/lantern, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -29283,11 +29273,8 @@ }, /area/science/xenobiology) "bjH" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1; - min_temperature = 80; - on = 1; - target_temperature = 80 +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -29302,7 +29289,7 @@ /obj/structure/extinguisher_cabinet{ pixel_y = -32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -29337,7 +29324,7 @@ /area/chapel/main) "bjM" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -29438,7 +29425,7 @@ pixel_x = 24; pixel_y = -24 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -24 }, @@ -29575,7 +29562,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bkC" = ( -/obj/item/device/beacon, +/obj/item/beacon, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/hallway/secondary/entry) @@ -30343,18 +30330,6 @@ /obj/structure/grille, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"btj" = ( -/obj/docking_port/stationary{ - dir = 2; - dwidth = 4; - height = 17; - id = "arrivals_stationary"; - name = "omega arrivals"; - roundstart_template = /datum/map_template/shuttle/arrival/delta; - width = 9 - }, -/turf/open/space/basic, -/area/space) "btk" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -30510,17 +30485,6 @@ dir = 5 }, /area/tcommsat/server) -"buV" = ( -/obj/structure/cable/white{ - icon_state = "0-2" - }, -/obj/machinery/modular_computer/console/preset/research{ - dir = 8 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/bridge) "buW" = ( /turf/closed/wall/r_wall, /area/engine/supermatter) @@ -30563,7 +30527,6 @@ height = 13; id = "ferry_home"; name = "port bay 2"; - turf_type = /turf/open/space; width = 5 }, /turf/open/space/basic, @@ -30628,14 +30591,8 @@ /turf/closed/mineral/random/labormineral, /area/asteroid/nearstation) "bxj" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/closed/wall/r_wall, -/area/tcommsat/server) -"bxk" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 + dir = 10 }, /turf/closed/wall/r_wall, /area/tcommsat/server) @@ -30994,6 +30951,10 @@ dir = 1 }, /area/engine/atmos) +"bVI" = ( +/obj/machinery/cryopod, +/turf/open/floor/plasteel/purple, +/area/crew_quarters/cryopod) "bYE" = ( /obj/structure/sign/warning/fire, /obj/machinery/atmospherics/pipe/simple/general/visible{ @@ -31116,6 +31077,17 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) +"cKy" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/white{ + icon_state = "0-2" + }, +/obj/structure/cable/white, +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/ai_monitored/nuke_storage) "cRz" = ( /obj/machinery/button/door{ id = "supplybridge"; @@ -31210,9 +31182,6 @@ "diG" = ( /turf/open/floor/plasteel, /area/engine/atmos) -"dnS" = ( -/turf/open/floor/plasteel/purple, -/area/crew_quarters/cryopod) "doD" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, @@ -31227,6 +31196,11 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) +"dsZ" = ( +/obj/structure/cable/white, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/central) "dEa" = ( /obj/machinery/computer/arcade, /turf/open/floor/plasteel/vault{ @@ -31264,6 +31238,18 @@ dir = 1 }, /area/hallway/primary/fore) +"dYZ" = ( +/obj/structure/cable/white{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/cryopod"; + dir = 2; + name = "Cryogenics APC"; + pixel_y = -24 + }, +/turf/open/floor/plasteel/purple, +/area/crew_quarters/cryopod) "eaf" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/structure/cable{ @@ -31327,6 +31313,13 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) +"ezi" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/flora/ausbushes/ppflowers, +/turf/open/floor/grass, +/area/hallway/secondary/entry) "ezP" = ( /obj/machinery/atmospherics/pipe/simple/general/visible, /obj/effect/spawner/structure/window/plasma/reinforced, @@ -31380,18 +31373,6 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/aft) -"eUE" = ( -/obj/structure/cable/white{ - icon_state = "0-8" - }, -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/cryopod"; - dir = 2; - name = "Cryogenics APC"; - pixel_y = -24 - }, -/turf/open/floor/plasteel/purple, -/area/crew_quarters/cryopod) "eYe" = ( /obj/effect/mapping_helpers/airlock/locked, /obj/machinery/door/airlock/public/glass{ @@ -31466,6 +31447,18 @@ /obj/item/wrench, /turf/open/space, /area/space/nearstation) +"fsl" = ( +/obj/docking_port/stationary{ + dir = 2; + dwidth = 2; + height = 16; + id = "arrivals_stationary"; + name = "omega arrivals"; + roundstart_template = /datum/map_template/shuttle/arrival/omega; + width = 5 + }, +/turf/open/space/basic, +/area/space) "fsJ" = ( /obj/structure/cable{ icon_state = "4-8" @@ -31538,9 +31531,6 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) -"fSE" = ( -/turf/closed/wall/r_wall, -/area/space) "fWz" = ( /obj/machinery/door/airlock/external{ name = "External Docking Port"; @@ -31579,6 +31569,11 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner, /area/hallway/primary/port) +"ggq" = ( +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/bridge) "gii" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -31645,10 +31640,8 @@ }, /area/engine/atmos) "gVX" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped{ - dir = 8; - filter_type = "co2"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/co2{ + dir = 8 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/vault{ @@ -31726,6 +31719,10 @@ }, /turf/open/floor/engine/co2, /area/engine/atmos) +"hQq" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/cryopod) "hUG" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -31780,10 +31777,6 @@ heat_capacity = 1e+006 }, /area/hallway/primary/aft) -"ikx" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/crew_quarters/cryopod) "iqC" = ( /obj/machinery/air_sensor/atmos/carbon_tank, /turf/open/floor/engine/co2, @@ -31802,14 +31795,18 @@ /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "iIj" = ( -/obj/machinery/atmospherics/components/trinary/mixer/flipped{ - dir = 4; - node1_concentration = 0.8; - node2_concentration = 0.2; - on = 1 +/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) +"iJz" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/flora/ausbushes/fullgrass, +/turf/open/floor/grass, +/area/hallway/secondary/entry) "iJY" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/structure/cable{ @@ -32031,11 +32028,6 @@ dir = 5 }, /area/engine/atmos) -"kBv" = ( -/obj/structure/cable/white, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/hallway/primary/central) "kCU" = ( /obj/machinery/atmospherics/pipe/simple/orange/visible{ dir = 4 @@ -32082,10 +32074,9 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"loO" = ( -/obj/machinery/cryopod, -/turf/open/floor/plasteel/purple, -/area/crew_quarters/cryopod) +"lnn" = ( +/turf/closed/wall, +/area/hallway/primary/central) "lqz" = ( /obj/machinery/atmospherics/pipe/manifold/yellow/visible, /obj/effect/decal/cleanable/dirt, @@ -32101,6 +32092,21 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) +"luP" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/flora/ausbushes/ywflowers, +/turf/open/floor/grass, +/area/hallway/secondary/entry) +"lvt" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/vacuum, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/storage) "lvw" = ( /obj/machinery/atmospherics/pipe/simple/orange/visible, /obj/effect/decal/cleanable/dirt, @@ -32124,7 +32130,7 @@ /area/hydroponics) "lAs" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 24 }, @@ -32169,9 +32175,6 @@ "lIM" = ( /turf/closed/wall/rust, /area/crew_quarters/lounge) -"lMV" = ( -/turf/closed/wall, -/area/hallway/primary/central) "lQs" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -32185,6 +32188,13 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) +"lTY" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/flora/ausbushes/ywflowers, +/turf/open/floor/grass, +/area/hallway/secondary/entry) "lUu" = ( /obj/machinery/portable_atmospherics/canister/air, /obj/machinery/light/small, @@ -32288,6 +32298,12 @@ /obj/item/paper/guides/jobs/hydroponics, /turf/open/floor/plasteel/neutral, /area/hydroponics) +"mKg" = ( +/obj/machinery/computer/cryopod{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/purple, +/area/crew_quarters/cryopod) "mQi" = ( /turf/closed/wall/rust, /area/maintenance/starboard/central) @@ -32417,6 +32433,9 @@ dir = 5 }, /area/engine/atmos) +"ouS" = ( +/turf/closed/wall, +/area/crew_quarters/cryopod) "oxn" = ( /obj/machinery/power/compressor{ dir = 4; @@ -32435,9 +32454,6 @@ "oyD" = ( /turf/closed/wall, /area/crew_quarters/toilet/restrooms) -"oyR" = ( -/turf/closed/wall, -/area/crew_quarters/cryopod) "oCy" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/structure/cable{ @@ -32465,6 +32481,17 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/engine/atmos) +"oKz" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault/side{ + dir = 9 + }, +/area/bridge) "oOk" = ( /turf/open/floor/engine/plasma, /area/engine/atmos) @@ -32578,6 +32605,13 @@ heat_capacity = 1e+006 }, /area/hallway/primary/starboard/fore) +"pEA" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/flora/ausbushes/grassybush, +/turf/open/floor/grass, +/area/hallway/secondary/entry) "pEH" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, @@ -32605,6 +32639,13 @@ /obj/structure/grille, /turf/open/space/basic, /area/space/nearstation) +"qcg" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/flora/ausbushes/grassybush, +/turf/open/floor/grass, +/area/hallway/secondary/entry) "qdt" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -32832,6 +32873,10 @@ dir = 4 }, /area/hallway/primary/starboard) +"spw" = ( +/obj/machinery/computer/bank_machine, +/turf/open/floor/circuit/green, +/area/ai_monitored/nuke_storage) "sqz" = ( /turf/closed/wall, /area/hallway/primary/starboard) @@ -32861,7 +32906,6 @@ height = 17; id = "syndicate_sw"; name = "southwest of station"; - turf_type = /turf/open/space; width = 23 }, /turf/open/space, @@ -32869,20 +32913,6 @@ "swv" = ( /turf/closed/wall/r_wall/rust, /area/bridge) -"swx" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/structure/cable/white{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/vault/side{ - dir = 9 - }, -/area/bridge) "swy" = ( /turf/open/floor/plasteel/vault/side{ dir = 8 @@ -32897,14 +32927,6 @@ "swC" = ( /turf/closed/wall/r_wall/rust, /area/crew_quarters/heads/captain/private) -"swD" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/vault/side{ - dir = 8 - }, -/area/bridge) "swF" = ( /obj/structure/sign/warning/securearea, /turf/closed/wall/rust, @@ -33041,6 +33063,12 @@ /obj/structure/sign/warning/vacuum, /turf/closed/wall/rust, /area/maintenance/starboard) +"sCb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/medbay/zone3) "sCr" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -33247,9 +33275,9 @@ /obj/structure/table, /obj/item/clipboard, /obj/item/crowbar/red, -/obj/item/device/aicard, -/obj/item/device/analyzer, -/obj/item/device/assembly/flash/handheld, +/obj/item/aicard, +/obj/item/analyzer, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel/vault/side{ dir = 8 }, @@ -34222,7 +34250,7 @@ /turf/open/floor/circuit/green, /area/ai_monitored/turret_protected/ai) "sLV" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 1; listening = 1; @@ -34230,14 +34258,14 @@ pixel_x = -27; pixel_y = -7 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_y = -27 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; broadcasting = 0; freerange = 1; @@ -34409,7 +34437,7 @@ "sMv" = ( /obj/item/crowbar, /obj/item/wrench, -/obj/item/device/mmi, +/obj/item/mmi, /obj/structure/table, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/vault{ @@ -34422,7 +34450,7 @@ /area/ai_monitored/turret_protected/ai) "sMx" = ( /obj/item/folder/blue, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/structure/table, /turf/open/floor/plasteel/vault{ dir = 8 @@ -34477,7 +34505,7 @@ id = "AI"; pixel_x = -26 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; listening = 0; @@ -34583,7 +34611,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; listening = 0; @@ -34635,6 +34663,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/item/beacon, /turf/open/floor/plasteel/vault/side{ dir = 5 }, @@ -34673,10 +34702,9 @@ /area/ai_monitored/turret_protected/aisat_interior) "sNf" = ( /obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; - name = "Waste Out"; - on = 1 + name = "Waste Out" }, /obj/structure/cable/yellow{ icon_state = "1-8" @@ -34872,6 +34900,10 @@ }, /turf/open/floor/plasteel/vault, /area/ai_monitored/turret_protected/aisat_interior) +"sNz" = ( +/obj/item/beacon, +/turf/open/floor/carpet, +/area/crew_quarters/lounge) "sNA" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -35020,10 +35052,10 @@ /obj/item/stack/sheet/glass{ amount = 20 }, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/mmi, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/mmi, +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, @@ -35308,6 +35340,13 @@ "sPY" = ( /turf/open/floor/plating, /area/maintenance/starboard/aft) +"sSy" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/flora/ausbushes/ppflowers, +/turf/open/floor/grass, +/area/hallway/secondary/entry) "tac" = ( /obj/structure/grille, /obj/machinery/meter, @@ -35535,6 +35574,9 @@ dir = 1 }, /area/engine/gravity_generator) +"uGl" = ( +/turf/open/floor/plasteel/purple, +/area/crew_quarters/cryopod) "uGq" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/red/corner{ @@ -35551,12 +35593,6 @@ dir = 5 }, /area/engine/atmos) -"uSF" = ( -/obj/machinery/computer/cryopod{ - pixel_x = 28 - }, -/turf/open/floor/plasteel/purple, -/area/crew_quarters/cryopod) "uVJ" = ( /obj/effect/decal/cleanable/oil, /obj/machinery/atmospherics/components/unary/vent_pump/on{ @@ -35776,6 +35812,17 @@ /obj/structure/lattice/catwalk, /turf/open/floor/plating/airless, /area/space/nearstation) +"wkO" = ( +/obj/structure/cable/white{ + icon_state = "0-2" + }, +/obj/machinery/modular_computer/console/preset/research{ + dir = 8 + }, +/turf/open/floor/plasteel/darkpurple/side{ + dir = 4 + }, +/area/bridge) "wqL" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible{ dir = 4 @@ -35783,7 +35830,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "wUF" = ( -/obj/machinery/door/airlock/atmos/glass{ +/obj/machinery/door/airlock/atmos/glass/critical{ + heat_proof = 1; name = "Supermatter Chamber"; req_access_txt = "24" }, @@ -35802,6 +35850,13 @@ }, /turf/open/floor/plasteel, /area/science/xenobiology) +"wWj" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/flora/ausbushes/fullgrass, +/turf/open/floor/grass, +/area/hallway/secondary/entry) "wWz" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ dir = 4 @@ -35848,18 +35903,6 @@ /turf/open/floor/plasteel, /area/engine/atmos) "xtL" = ( -/obj/machinery/embedded_controller/radio/airlock_controller{ - name = "Incinerator Access Console"; - airpump_tag = "incinerator_airlock_pump"; - exterior_door_tag = "incinerator_airlock_exterior"; - id_tag = "incinerator_access_control"; - interior_door_tag = "incinerator_airlock_interior"; - pixel_x = 8; - pixel_y = -24; - sanitize_external = 1; - sensor_tag = "incinerator_airlock_sensor"; - req_access_txt = "12" - }, /obj/machinery/button/ignition{ id = "Incinerator"; pixel_x = 8; @@ -35928,10 +35971,8 @@ /turf/open/floor/plasteel/neutral/corner, /area/hallway/primary/port) "xEQ" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped{ - dir = 8; - filter_type = "plasma"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/plasma{ + dir = 8 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/vault{ @@ -35970,6 +36011,18 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, +/obj/machinery/embedded_controller/radio/airlock_controller{ + airpump_tag = "incinerator_airlock_pump"; + exterior_door_tag = "incinerator_airlock_exterior"; + id_tag = "incinerator_airlock_control"; + interior_door_tag = "incinerator_airlock_interior"; + name = "Incinerator Access Console"; + pixel_x = -8; + pixel_y = 35; + req_access_txt = "12"; + sanitize_external = 1; + sensor_tag = "incinerator_airlock_sensor" + }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "yba" = ( @@ -64422,7 +64475,7 @@ sIu aJj aKs aLG -bxk +aMJ aNT aOv buC @@ -69027,7 +69080,7 @@ swZ agF agF agF -fSE +agF swZ agF auE @@ -73938,9 +73991,9 @@ aQf nxA aSh aSh -aUn +aSh aVf -aWb +sCb aSh aSh aXR @@ -74461,7 +74514,7 @@ bxT aYL aZH bay -aSi +aSh aUn aWb bdT @@ -74738,10 +74791,10 @@ aaa bgU bkj bgU -aae -aaa -aaa -aae +bgU +bgU +bgU +bgU bgU bkj bgU @@ -74995,10 +75048,10 @@ aae bgU bki bgU -bgU -bgU -bgU -bgU +sSy +lTY +wWj +qcg bgU bki bgU @@ -76280,10 +76333,10 @@ aae bgU bki bgU -bgU -bgU -bgU -bgU +iJz +pEA +ezi +luP bgU bki bgU @@ -76537,10 +76590,10 @@ aaa bgU btl bgU -aae -aaa -aaa -aae +bgU +bgU +bgU +bgU bgU btl bgU @@ -77231,7 +77284,7 @@ aar aaD aaQ acX -abn +abo abC ach acY @@ -77303,7 +77356,7 @@ bgU aaa aaa aaa -aaa +fsl aaa aaa aaa @@ -77488,7 +77541,7 @@ aas aaE aaR abc -abo +ggq abD aci acZ @@ -77752,7 +77805,7 @@ ada adR aeC sOA -agi +spw aha ahS aiA @@ -77795,7 +77848,7 @@ sEG aTA aUy aVq -aUy +sNz aWR tWh aYd @@ -77816,7 +77869,7 @@ blv bgU aaa aaa -btj +aaa aaa aaa aaa @@ -78001,9 +78054,9 @@ aal aau aaG aaR -swx -swy -swD +abc +ggq +abD aci adb sOx @@ -78258,12 +78311,12 @@ aak aav aaH aaQ -acX -buV +oKz +swy abF ack adc -adP +cKy aeE afr afr @@ -78516,7 +78569,7 @@ aaw aaI aaS abe -abm +wkO abG acl swK @@ -78532,7 +78585,7 @@ akz als aml and -lMV +lnn aoS apY ara @@ -78788,8 +78841,8 @@ ajx akA alt amm -eUE -oyR +dYZ +ouS aoT apZ ara @@ -79043,10 +79096,10 @@ agl abq ajy akB -kBv -dnS -dnS -ikx +dsZ +uGl +uGl +hQq aoU aqa arg @@ -79300,10 +79353,10 @@ ahX aiC ajz akC -kBv -loO -uSF -ikx +dsZ +bVI +mKg +hQq aoV aqb arh @@ -84179,7 +84232,7 @@ aeX adp agC ahr -adq +lvt aae aae aae diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 33e7a62547..1ea171f402 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -2,207 +2,6 @@ "aaa" = ( /turf/open/space/basic, /area/space) -"aab" = ( -/turf/closed/wall, -/area/crew_quarters/cryopod) -"aac" = ( -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/cryopod"; - dir = 1; - name = "Crew Cryogenics APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel/darkpurple, -/area/crew_quarters/cryopod) -"aad" = ( -/obj/machinery/computer/cryopod{ - pixel_y = 24 - }, -/turf/open/floor/plasteel/darkpurple, -/area/crew_quarters/cryopod) -"aae" = ( -/obj/machinery/cryopod, -/obj/machinery/light/small/built{ - dir = 4 - }, -/turf/open/floor/plasteel/darkpurple, -/area/crew_quarters/cryopod) -"aaf" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/darkpurple, -/area/crew_quarters/cryopod) -"aag" = ( -/turf/open/floor/plasteel/darkpurple, -/area/crew_quarters/cryopod) -"aah" = ( -/obj/machinery/cryopod, -/turf/open/floor/plasteel/darkpurple, -/area/crew_quarters/cryopod) -"aai" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/stairs, -/area/crew_quarters/cryopod) -"aaj" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel/darkpurple, -/area/crew_quarters/cryopod) -"aak" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aal" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aam" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aan" = ( -/obj/machinery/field/generator{ - anchored = 1; - state = 2 - }, -/turf/open/floor/plating/airless, -/area/space) -"aao" = ( -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/machinery/power/tesla_coil, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"aap" = ( -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/obj/machinery/power/tesla_coil, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"aaq" = ( -/turf/open/space/basic, -/area/space/nearstation) -"aar" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating/airless, -/area/space) -"aas" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space) -"aat" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating/airless, -/area/space) -"aau" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/space) -"aav" = ( -/obj/machinery/the_singularitygen/tesla, -/turf/open/floor/plating/airless, -/area/space) -"aaw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space) -"aax" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating/airless, -/area/space) -"aay" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plating/airless, -/area/space) -"aaz" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating/airless, -/area/space) -"aaA" = ( -/obj/machinery/computer/libraryconsole/bookmanagement, -/obj/structure/table, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"aaB" = ( -/obj/machinery/computer/cryopod{ - pixel_x = -28 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"aaC" = ( -/obj/machinery/cryopod{ - tag = "icon-cryopod-open (EAST)"; - icon_state = "cryopod-open"; - dir = 4 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"aaD" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"aaE" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/vending/kink, -/turf/open/floor/plasteel/arrival{ - dir = 1 - }, -/area/crew_quarters/fitness/recreation) "aby" = ( /obj/structure/lattice, /obj/structure/grille, @@ -298,7 +97,7 @@ icon_state = "2-4" }, /obj/effect/landmark/start/ai/secondary, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; broadcasting = 0; freerange = 1; @@ -346,7 +145,7 @@ pixel_y = 24 }, /obj/effect/landmark/start/ai/secondary, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; broadcasting = 0; freerange = 1; @@ -470,7 +269,7 @@ /area/ai_monitored/turret_protected/ai) "acy" = ( /obj/effect/landmark/start/ai, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 1; listening = 1; @@ -478,14 +277,14 @@ pixel_x = -27; pixel_y = -9 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_y = -31 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ anyai = 1; broadcasting = 0; freerange = 1; @@ -547,7 +346,7 @@ /turf/open/floor/circuit, /area/ai_monitored/turret_protected/ai) "acE" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; listening = 0; @@ -719,10 +518,10 @@ pixel_x = 3; pixel_y = -4 }, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/mmi, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/mmi, +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, @@ -874,7 +673,7 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; listening = 0; @@ -910,10 +709,9 @@ /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAS) "adD" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; - name = "Waste Out"; - on = 1 + name = "Waste Out" }, /obj/machinery/camera{ c_tag = "MiniSat Maintenance Starboard Fore"; @@ -1279,7 +1077,7 @@ /turf/open/floor/plasteel/dark, /area/security/prison) "aeD" = ( -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /turf/open/floor/plasteel/dark, /area/security/prison) "aeE" = ( @@ -1580,6 +1378,12 @@ }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAS) +"afn" = ( +/obj/machinery/computer/cryopod{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "afo" = ( /obj/structure/chair/stool, /turf/open/floor/plasteel/dark, @@ -1591,7 +1395,7 @@ /area/security/prison) "afq" = ( /obj/structure/table, -/obj/item/device/instrument/harmonica, +/obj/item/instrument/harmonica, /turf/open/floor/plasteel/dark, /area/security/prison) "afr" = ( @@ -1613,10 +1417,9 @@ /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAP) "afu" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; - name = "Air Out"; - on = 1 + name = "Air Out" }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAP) @@ -1641,7 +1444,7 @@ /area/ai_monitored/turret_protected/aisat_interior) "afy" = ( /obj/effect/landmark/start/cyborg, -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "afz" = ( @@ -1666,6 +1469,12 @@ /obj/item/stack/cable_coil, /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAS) +"afC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "afD" = ( /obj/structure/chair/stool, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -1773,7 +1582,7 @@ pixel_y = 3 }, /obj/item/storage/toolbox/mechanical, -/obj/item/device/multitool{ +/obj/item/multitool{ layer = 5 }, /obj/item/extinguisher{ @@ -1847,7 +1656,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "agg" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -28 }, @@ -2063,7 +1872,7 @@ c_tag = "Permabrig Cell 2"; network = list("ss13","prison") }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; @@ -2104,7 +1913,7 @@ c_tag = "Permabrig Cell 1"; network = list("ss13","prison") }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; @@ -2267,7 +2076,7 @@ /turf/open/space, /area/space/nearstation) "ahj" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -2278,7 +2087,7 @@ pixel_y = 5 }, /obj/item/clothing/mask/balaclava, -/obj/item/device/mmi, +/obj/item/mmi, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel/dark, /area/security/execution/transfer) @@ -2287,7 +2096,7 @@ /obj/item/folder/red{ pixel_x = 3 }, -/obj/item/device/taperecorder{ +/obj/item/taperecorder{ pixel_x = -3 }, /turf/open/floor/plasteel/dark, @@ -2394,7 +2203,7 @@ /area/security/execution/transfer) "ahx" = ( /obj/structure/table, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel/dark, /area/security/execution/transfer) @@ -2759,7 +2568,7 @@ /obj/item/razor{ pixel_x = -6 }, -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_x = 4 }, /obj/structure/extinguisher_cabinet{ @@ -2948,7 +2757,7 @@ /area/security/prison) "aiK" = ( /obj/structure/table, -/obj/item/device/electropack, +/obj/item/electropack, /turf/open/floor/plasteel/red/side, /area/security/prison) "aiL" = ( @@ -3044,7 +2853,7 @@ /area/maintenance/department/security/brig) "aiY" = ( /obj/structure/table, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plating, /area/maintenance/department/security/brig) "aiZ" = ( @@ -3322,7 +3131,6 @@ height = 17; id = "syndicate_ne"; name = "northeast of station"; - turf_type = /turf/open/space; width = 23 }, /turf/open/space, @@ -3718,7 +3526,7 @@ /area/maintenance/department/crew_quarters/dorms) "akr" = ( /obj/machinery/washing_machine, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = -31 @@ -3742,11 +3550,8 @@ /turf/open/floor/plating, /area/maintenance/department/security/brig) "aku" = ( -/obj/machinery/atmospherics/components/trinary/mixer/flipped{ - dir = 1; - node1_concentration = 0.2; - node2_concentration = 0.8; - on = 1 +/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped/inverse{ + dir = 1 }, /turf/open/floor/plating, /area/maintenance/department/security/brig) @@ -3766,7 +3571,7 @@ /area/maintenance/department/security/brig) "akx" = ( /obj/structure/bodycontainer/crematorium, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = -27 @@ -3824,7 +3629,7 @@ }, /area/security/brig) "akD" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -4229,7 +4034,7 @@ /area/security/main) "alC" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = -4; pixel_y = 12 }, @@ -4516,7 +4321,7 @@ /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = -31 @@ -4841,7 +4646,7 @@ c_tag = "Brig Control Room"; dir = 2 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_y = 24 @@ -4958,9 +4763,6 @@ }, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) -"ann" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_1) "anp" = ( /obj/structure/cable{ icon_state = "1-2" @@ -5236,7 +5038,7 @@ c_tag = "Head of Security's Office"; dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_y = -27 @@ -5285,16 +5087,9 @@ /area/maintenance/department/crew_quarters/dorms) "aob" = ( /obj/structure/closet/emcloset, -/obj/item/device/camera, +/obj/item/camera, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) -"aoc" = ( -/obj/machinery/computer/shuttle/monastery_shuttle, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) "aod" = ( /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, @@ -5517,27 +5312,6 @@ /obj/effect/spawner/lootdrop/grille_or_trash, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) -"aoE" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/status_display{ - pixel_x = -32 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) -"aoF" = ( -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) -"aoG" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/status_display{ - pixel_x = 32 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) "aoH" = ( /obj/structure/lattice, /obj/structure/grille, @@ -5662,7 +5436,7 @@ /obj/structure/rack, /obj/item/crowbar, /obj/item/wrench, -/obj/item/device/laser_pointer/red, +/obj/item/laser_pointer/red, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "aoY" = ( @@ -5889,23 +5663,11 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, -/obj/item/device/camera_film, +/obj/item/camera_film, /turf/open/floor/plating{ icon_state = "platingdmg1" }, /area/maintenance/department/crew_quarters/dorms) -"apx" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) -"apy" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) "apz" = ( /obj/structure/chair{ dir = 8 @@ -6077,24 +5839,6 @@ "apX" = ( /turf/closed/wall, /area/crew_quarters/dorms) -"apY" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/item/storage/pod{ - pixel_x = -24 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) -"apZ" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/item/device/radio/intercom{ - pixel_x = 30 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) "aqa" = ( /obj/structure/cable{ icon_state = "0-4" @@ -6242,7 +5986,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = 29 }, @@ -6449,33 +6193,17 @@ }, /turf/open/floor/plasteel/barber, /area/crew_quarters/dorms) -"aqX" = ( -/obj/structure/shuttle/engine/propulsion/burst, -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_1) "aqY" = ( -/obj/machinery/door/airlock/titanium{ - name = "Shuttle Airlock" - }, /obj/docking_port/stationary{ + dir = 1; dwidth = 2; height = 6; - id = "monastery_shuttle_station"; - name = "station"; + name = "large escape pod loader"; + roundstart_template = /datum/map_template/shuttle/escape_pod/large; width = 5 }, -/obj/docking_port/mobile{ - dwidth = 2; - height = 6; - id = "pod1"; - launch_status = 0; - name = "monastery shuttle"; - port_direction = 2; - width = 5; - timid = 0 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) +/turf/open/space/basic, +/area/space) "aqZ" = ( /obj/machinery/space_heater, /turf/open/floor/plating, @@ -6627,7 +6355,7 @@ /turf/open/floor/plasteel/dark, /area/security/brig) "arx" = ( -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/structure/table/glass, /turf/open/floor/plasteel/dark, /area/security/brig) @@ -6875,11 +6603,11 @@ desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; name = "emergency lifejacket" }, -/obj/item/device/flashlight, -/obj/item/device/flashlight, -/obj/item/device/flashlight, -/obj/item/device/flashlight, -/obj/item/device/flashlight, +/obj/item/flashlight, +/obj/item/flashlight, +/obj/item/flashlight, +/obj/item/flashlight, +/obj/item/flashlight, /turf/open/floor/plasteel, /area/gateway) "arZ" = ( @@ -6891,22 +6619,22 @@ /area/gateway) "asa" = ( /obj/structure/table, -/obj/item/device/radio/off{ +/obj/item/radio/off{ pixel_y = 6 }, -/obj/item/device/radio/off{ +/obj/item/radio/off{ pixel_x = 6; pixel_y = 4 }, -/obj/item/device/radio/off{ +/obj/item/radio/off{ pixel_x = -6; pixel_y = 4 }, -/obj/item/device/radio/off, +/obj/item/radio/off, /obj/structure/sign/warning/biohazard{ pixel_x = 32 }, -/obj/item/device/radio/off, +/obj/item/radio/off, /turf/open/floor/plasteel, /area/gateway) "asb" = ( @@ -7159,7 +6887,7 @@ /area/security/brig) "asJ" = ( /obj/item/folder/red, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, @@ -7669,7 +7397,7 @@ }, /area/bridge) "atU" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/darkblue/side{ dir = 1 }, @@ -7760,7 +7488,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; @@ -7886,7 +7614,7 @@ /turf/open/floor/plasteel, /area/maintenance/department/security/brig) "aux" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; @@ -8453,7 +8181,7 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = -28 @@ -8526,14 +8254,14 @@ /area/bridge) "avY" = ( /obj/structure/table/glass, -/obj/item/device/aicard, +/obj/item/aicard, /turf/open/floor/plasteel/dark, /area/bridge) "avZ" = ( /obj/structure/table/glass, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/laser_pointer/blue, +/obj/item/assembly/flash/handheld, +/obj/item/laser_pointer/blue, /turf/open/floor/plasteel/dark, /area/bridge) "awa" = ( @@ -8720,6 +8448,15 @@ }, /turf/open/floor/plating, /area/crew_quarters/fitness/recreation) +"awx" = ( +/obj/structure/closet/athletic_mixed, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/crew_quarters/fitness/recreation) "awy" = ( /obj/structure/closet/lasertag/blue, /obj/structure/disposalpipe/segment{ @@ -8917,7 +8654,7 @@ id = "Secure Gate"; name = "brig shutters" }, -/obj/item/device/radio, +/obj/item/radio, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/dark, /area/security/brig) @@ -9314,7 +9051,7 @@ /area/crew_quarters/heads/captain) "axU" = ( /obj/machinery/computer/card, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -9672,7 +9409,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "ayQ" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel, /area/hallway/primary/fore) "ayR" = ( @@ -9789,7 +9526,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = -28 @@ -9886,7 +9623,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = -28 @@ -9981,7 +9718,7 @@ /area/crew_quarters/dorms) "azx" = ( /obj/structure/table/wood, -/obj/item/device/paicard, +/obj/item/paicard, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -10316,7 +10053,7 @@ /area/hallway/primary/fore) "aAp" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, +/obj/item/flashlight/lamp/green, /obj/machinery/light_switch{ dir = 9; pixel_x = -22 @@ -10358,7 +10095,7 @@ /area/crew_quarters/heads/captain) "aAv" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, +/obj/item/flashlight/lamp/green, /turf/open/floor/carpet, /area/crew_quarters/heads/captain) "aAw" = ( @@ -10542,7 +10279,7 @@ "aAW" = ( /obj/structure/rack, /obj/item/clothing/mask/gas, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plating, /area/maintenance/solars/port) "aAX" = ( @@ -10752,7 +10489,7 @@ /area/bridge) "aBz" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, +/obj/item/flashlight/lamp/green, /obj/item/storage/secure/safe{ pixel_x = -22; pixel_y = 4 @@ -10965,7 +10702,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = 28 @@ -11135,7 +10872,7 @@ "aCt" = ( /obj/structure/table, /obj/item/wrench, -/obj/item/device/analyzer, +/obj/item/analyzer, /obj/machinery/requests_console{ department = "Tool Storage"; departmentType = 0; @@ -11149,7 +10886,7 @@ /obj/structure/table, /obj/machinery/cell_charger, /obj/item/stock_parts/cell/high/plus, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -11163,15 +10900,15 @@ /area/storage/primary) "aCv" = ( /obj/structure/table, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = -8; pixel_y = -4 }, -/obj/item/device/assembly/igniter, +/obj/item/assembly/igniter, /obj/machinery/camera{ c_tag = "Primary Tool Storage" }, -/obj/item/device/assembly/voice, +/obj/item/assembly/voice, /obj/structure/noticeboard{ pixel_y = 32 }, @@ -11181,14 +10918,14 @@ /area/storage/primary) "aCw" = ( /obj/structure/table, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/signaler, -/obj/item/device/multitool, -/obj/item/device/multitool, +/obj/item/assembly/signaler, +/obj/item/assembly/signaler, +/obj/item/multitool, +/obj/item/multitool, /obj/machinery/airalarm{ pixel_y = 22 }, -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/item/electronics/airlock, /turf/open/floor/plasteel/neutral/side{ dir = 1 @@ -11537,7 +11274,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = -26 @@ -11793,7 +11530,7 @@ c_tag = "AI Upload Center"; dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 1; frequency = 1447; listening = 0; @@ -12024,11 +11761,11 @@ /area/maintenance/department/cargo) "aEm" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp{ +/obj/item/flashlight/lamp{ pixel_x = 3; pixel_y = 6 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = -27 @@ -12351,7 +12088,7 @@ pixel_x = -4; pixel_y = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = 27 @@ -12367,7 +12104,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = -27 @@ -12498,7 +12235,7 @@ /obj/structure/table/wood, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /turf/open/floor/carpet, /area/security/detectives_office) "aFq" = ( @@ -12524,7 +12261,7 @@ pixel_y = -7 }, /obj/item/electronics/apc, -/obj/item/device/t_scanner, +/obj/item/t_scanner, /turf/open/floor/plasteel/neutral/side{ dir = 8; heat_capacity = 1e+006 @@ -12553,7 +12290,7 @@ /area/storage/primary) "aFw" = ( /obj/structure/table/wood, -/obj/item/device/camera, +/obj/item/camera, /turf/open/floor/carpet, /area/crew_quarters/heads/captain) "aFx" = ( @@ -12611,7 +12348,7 @@ /obj/machinery/light{ dir = 4 }, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /turf/open/floor/plasteel, /area/hallway/primary/central) "aFE" = ( @@ -12813,8 +12550,8 @@ "aGe" = ( /obj/structure/rack, /obj/item/wirecutters, -/obj/item/device/flashlight, -/obj/item/device/gps, +/obj/item/flashlight, +/obj/item/gps, /turf/open/floor/plasteel/neutral/side{ dir = 10 }, @@ -12826,14 +12563,14 @@ "aGg" = ( /obj/structure/table, /obj/item/crowbar, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, /obj/item/clothing/gloves/color/fyellow, /obj/item/clothing/gloves/color/fyellow, -/obj/item/device/assembly/timer, -/obj/item/device/radio, +/obj/item/assembly/timer, +/obj/item/radio, /turf/open/floor/plasteel/neutral/side, /area/storage/primary) "aGh" = ( @@ -14222,11 +13959,16 @@ dir = 1; icon_state = "direction_sec"; pixel_x = 32; - pixel_y = -26 + pixel_y = -24 }, /obj/structure/sign/directions/medical{ pixel_x = 32; - pixel_y = -38 + pixel_y = -40 + }, +/obj/structure/sign/directions/evac{ + dir = 1; + pixel_x = 32; + pixel_y = -32 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -15060,7 +14802,7 @@ /area/security/checkpoint/supply) "aMf" = ( /obj/machinery/computer/secure_data, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -15337,7 +15079,6 @@ /area/maintenance/disposal) "aMF" = ( /obj/machinery/conveyor_switch/oneway{ - convdir = 1; id = "garbagestacked"; name = "disposal conveyor" }, @@ -15503,7 +15244,7 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -28 }, @@ -15600,7 +15341,7 @@ pixel_y = 3 }, /obj/item/clothing/shoes/magboots, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = -27 @@ -15650,7 +15391,7 @@ "aNu" = ( /obj/structure/closet/crate, /obj/item/melee/flyswatter, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = -27 @@ -15774,7 +15515,7 @@ /area/quartermaster/sorting) "aNK" = ( /obj/structure/table, -/obj/item/device/destTagger, +/obj/item/destTagger, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -16008,7 +15749,7 @@ /area/hallway/secondary/exit/departure_lounge) "aOt" = ( /obj/structure/table, -/obj/item/device/instrument/glockenspiel{ +/obj/item/instrument/glockenspiel{ pixel_y = 3 }, /turf/open/floor/plasteel/redblue, @@ -16376,14 +16117,14 @@ dir = 8 }, /obj/machinery/conveyor{ - dir = 2; + dir = 9; id = "garbage" }, /turf/open/floor/plating, /area/maintenance/disposal) "aPh" = ( /obj/machinery/conveyor{ - dir = 4; + dir = 8; id = "garbage" }, /turf/open/floor/plating, @@ -16606,7 +16347,7 @@ /area/storage/eva) "aPM" = ( /obj/structure/table, -/obj/item/device/beacon, +/obj/item/beacon, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/darkblue/side{ dir = 10 @@ -16726,7 +16467,7 @@ /turf/open/floor/plasteel/floorgrime, /area/quartermaster/warehouse) "aQd" = ( -/obj/item/device/flashlight, +/obj/item/flashlight, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/floorgrime, /area/quartermaster/warehouse) @@ -16760,10 +16501,6 @@ /turf/closed/wall, /area/maintenance/disposal) "aQl" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "garbage" - }, /obj/structure/disposaloutlet{ dir = 4 }, @@ -16777,7 +16514,7 @@ /area/maintenance/disposal) "aQm" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "garbage" }, /obj/structure/disposalpipe/segment{ @@ -16787,7 +16524,7 @@ /area/maintenance/disposal) "aQn" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "garbage" }, /obj/machinery/recycler, @@ -16795,7 +16532,7 @@ /area/maintenance/disposal) "aQo" = ( /obj/machinery/conveyor{ - dir = 2; + dir = 1; id = "garbage" }, /turf/open/floor/plating, @@ -17318,7 +17055,7 @@ /area/maintenance/disposal) "aRx" = ( /obj/machinery/conveyor_switch/oneway{ - convdir = -1; + dir = 8; id = "garbage"; name = "disposal conveyor" }, @@ -17809,10 +17546,10 @@ /turf/open/floor/plasteel/hydrofloor, /area/hydroponics) "aSF" = ( -/obj/machinery/chem_master/condimaster, /obj/machinery/light/small{ dir = 1 }, +/obj/machinery/smartfridge/disks, /turf/open/floor/plasteel/hydrofloor, /area/hydroponics) "aSG" = ( @@ -17873,7 +17610,7 @@ }, /area/maintenance/department/crew_quarters/bar) "aSN" = ( -/obj/item/device/assembly/mousetrap, +/obj/item/assembly/mousetrap, /turf/open/floor/wood{ icon_state = "wood-broken6" }, @@ -18070,7 +17807,7 @@ dir = 1 }, /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "QMLoad" }, /obj/machinery/airalarm{ @@ -18080,7 +17817,7 @@ /area/quartermaster/storage) "aTo" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "QMLoad" }, /obj/machinery/status_display{ @@ -18091,7 +17828,7 @@ /area/quartermaster/storage) "aTp" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "QMLoad" }, /obj/structure/sign/poster/official/random{ @@ -18101,7 +17838,7 @@ /area/quartermaster/storage) "aTq" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "QMLoad" }, /turf/open/floor/plating, @@ -18112,7 +17849,7 @@ name = "supply dock loading door" }, /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "QMLoad" }, /turf/open/floor/plating, @@ -18120,7 +17857,7 @@ "aTs" = ( /obj/structure/plasticflaps, /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "QMLoad" }, /turf/open/floor/plating, @@ -18392,7 +18129,7 @@ /area/hydroponics) "aTX" = ( /obj/structure/kitchenspike, -/obj/item/device/assembly/mousetrap, +/obj/item/assembly/mousetrap, /obj/item/reagent_containers/food/snacks/deadmouse, /turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/kitchen) @@ -18937,7 +18674,7 @@ pixel_x = 28; req_access_txt = "28" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -19095,7 +18832,6 @@ /area/quartermaster/storage) "aVB" = ( /obj/machinery/conveyor_switch/oneway{ - convdir = -1; id = "QMLoad" }, /obj/machinery/button/door{ @@ -19360,7 +19096,7 @@ /obj/structure/cable{ icon_state = "2-8" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -19428,7 +19164,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -19591,7 +19327,7 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -20034,7 +19770,7 @@ /area/hydroponics) "aXX" = ( /obj/machinery/hydroponics/constructable, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -20114,7 +19850,7 @@ "aYh" = ( /obj/structure/table/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/instrument/guitar, +/obj/item/instrument/guitar, /turf/open/floor/plasteel/darkred/side{ dir = 1 }, @@ -20286,7 +20022,7 @@ /area/quartermaster/storage) "aYB" = ( /obj/machinery/conveyor_switch/oneway{ - convdir = 1; + dir = 8; id = "QMLoad2" }, /obj/effect/turf_decal/stripes/line{ @@ -20309,8 +20045,8 @@ /area/maintenance/department/cargo) "aYE" = ( /obj/structure/table, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/department/cargo) @@ -20361,7 +20097,7 @@ /area/security/checkpoint/customs) "aYK" = ( /obj/structure/closet/secure_closet/security, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -20430,7 +20166,7 @@ /area/crew_quarters/kitchen) "aYU" = ( /obj/machinery/processor, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -20731,7 +20467,7 @@ /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -20990,7 +20726,7 @@ /area/crew_quarters/bar) "bao" = ( /obj/machinery/computer/slot_machine, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -21029,7 +20765,7 @@ "bas" = ( /obj/structure/table, /obj/item/pen, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = -26 @@ -21139,7 +20875,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = -26 @@ -21604,7 +21340,7 @@ "bbN" = ( /obj/structure/rack, /obj/item/clothing/mask/gas, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plating, /area/maintenance/solars/starboard) "bbO" = ( @@ -21795,7 +21531,7 @@ /area/crew_quarters/bar) "bcq" = ( /obj/item/clothing/glasses/monocle, -/obj/item/device/instrument/recorder, +/obj/item/instrument/recorder, /obj/structure/table/wood/fancy, /turf/open/floor/carpet{ icon_state = "carpetsymbol" @@ -22631,7 +22367,7 @@ /area/crew_quarters/bar) "bez" = ( /obj/structure/table/wood, -/obj/item/device/instrument/trombone, +/obj/item/instrument/trombone, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -23061,7 +22797,7 @@ /obj/machinery/computer/security/mining{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -35 }, @@ -23238,7 +22974,7 @@ /obj/structure/chair{ name = "Throne of Custodia" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -23514,7 +23250,7 @@ /area/space) "bgU" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -23540,7 +23276,7 @@ /area/crew_quarters/lounge) "bgY" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -24263,7 +23999,7 @@ /area/crew_quarters/lounge) "biK" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -24290,7 +24026,7 @@ /area/crew_quarters/lounge) "biN" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -24305,7 +24041,7 @@ /area/crew_quarters/lounge) "biO" = ( /obj/structure/table/glass, -/obj/item/device/healthanalyzer{ +/obj/item/healthanalyzer{ layer = 3.1 }, /obj/item/pen{ @@ -24684,7 +24420,7 @@ pixel_y = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -24805,10 +24541,10 @@ /area/science/research/lobby) "bkq" = ( /obj/structure/table, -/obj/item/device/gps{ +/obj/item/gps{ gpstag = "RD0" }, -/obj/item/device/assembly/igniter{ +/obj/item/assembly/igniter{ pixel_x = -4; pixel_y = -4 }, @@ -25187,7 +24923,7 @@ "blr" = ( /obj/structure/table, /obj/item/folder/white, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /turf/open/floor/plasteel/whiteblue/side{ dir = 1 }, @@ -25208,7 +24944,7 @@ /area/hallway/primary/aft) "blv" = ( /obj/structure/table, -/obj/item/device/paicard, +/obj/item/paicard, /obj/item/clothing/glasses/science, /turf/open/floor/plasteel/green/side{ dir = 9 @@ -25392,7 +25128,7 @@ /area/science/server) "blP" = ( /obj/effect/landmark/event_spawn, -/obj/item/device/beacon, +/obj/item/beacon, /obj/machinery/light{ dir = 8 }, @@ -25961,7 +25697,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bnq" = ( -/obj/item/device/beacon, +/obj/item/beacon, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, @@ -26178,13 +25914,13 @@ /obj/item/stack/sheet/plasteel{ amount = 10 }, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/machinery/airalarm{ dir = 8; pixel_x = 23 @@ -26269,7 +26005,7 @@ "boe" = ( /obj/structure/table, /obj/machinery/reagentgrinder, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = -28 @@ -26479,7 +26215,7 @@ name = "Medbay RC"; pixel_x = -32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 0; frequency = 1485; @@ -26625,10 +26361,8 @@ /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "bpa" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 4; - on = 1; - target_temperature = 80 +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ + dir = 4 }, /obj/machinery/airalarm{ dir = 4; @@ -26824,7 +26558,7 @@ /area/medical/genetics) "bpy" = ( /obj/machinery/clonepod, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 0; frequency = 1485; @@ -27139,7 +26873,7 @@ }, /obj/item/storage/belt/utility, /obj/item/reagent_containers/glass/beaker/large, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = -27 @@ -27249,8 +26983,8 @@ pixel_y = 3 }, /obj/item/stack/sheet/metal/fifty, -/obj/item/device/assembly/timer, -/obj/item/device/assembly/timer, +/obj/item/assembly/timer, +/obj/item/assembly/timer, /turf/open/floor/plasteel/white, /area/science/explab) "bqv" = ( @@ -27788,7 +27522,7 @@ /area/science/research/lobby) "brw" = ( /obj/structure/closet/wardrobe/robotics_black, -/obj/item/device/radio/headset/headset_sci{ +/obj/item/radio/headset/headset_sci{ pixel_x = -3 }, /turf/open/floor/plasteel/vault{ @@ -27804,19 +27538,19 @@ /turf/open/floor/plasteel, /area/science/robotics/lab) "bry" = ( -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, @@ -28049,6 +27783,7 @@ dir = 4 }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/portable_atmospherics/canister/bz, /turf/open/floor/plasteel, /area/science/xenobiology) "brY" = ( @@ -28305,7 +28040,7 @@ "bsE" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 0; frequency = 1485; @@ -28387,7 +28122,7 @@ /obj/machinery/chem_dispenser{ layer = 2.7 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = 29 @@ -28490,9 +28225,9 @@ empty = 1; name = "First-Aid (empty)" }, -/obj/item/device/healthanalyzer, -/obj/item/device/healthanalyzer, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, +/obj/item/healthanalyzer, +/obj/item/healthanalyzer, /obj/item/stack/cable_coil, /obj/item/stack/cable_coil, /obj/structure/table, @@ -28530,9 +28265,9 @@ /turf/open/floor/plasteel/white, /area/science/robotics/lab) "btd" = ( -/obj/item/device/mmi, -/obj/item/device/mmi, -/obj/item/device/mmi, +/obj/item/mmi, +/obj/item/mmi, +/obj/item/mmi, /obj/structure/table, /turf/open/floor/plasteel/white, /area/science/robotics/lab) @@ -28582,11 +28317,11 @@ /area/science/explab) "btl" = ( /obj/structure/table, -/obj/item/device/electropack, -/obj/item/device/healthanalyzer, -/obj/item/device/assembly/signaler, +/obj/item/electropack, +/obj/item/healthanalyzer, +/obj/item/assembly/signaler, /obj/machinery/light, -/obj/item/device/assembly/voice, +/obj/item/assembly/voice, /obj/machinery/camera{ c_tag = "Experimentation Lab"; dir = 1; @@ -28600,7 +28335,7 @@ pixel_y = 5 }, /obj/item/stack/cable_coil, -/obj/item/device/multitool, +/obj/item/multitool, /obj/item/screwdriver, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/white, @@ -28780,7 +28515,6 @@ height = 13; id = "ferry_home"; name = "port bay 2"; - turf_type = /turf/open/space; width = 5 }, /turf/open/space/basic, @@ -29148,7 +28882,7 @@ /turf/open/floor/plasteel, /area/science/explab) "buB" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = -28 @@ -29546,7 +29280,7 @@ }, /area/hallway/primary/aft) "bvv" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = -28; @@ -30248,7 +29982,7 @@ /obj/structure/rack, /obj/item/stack/packageWrap, /obj/item/hand_labeler, -/obj/item/device/radio/headset/headset_med, +/obj/item/radio/headset/headset_med, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/white, /area/medical/chemistry) @@ -30946,8 +30680,8 @@ "byf" = ( /obj/structure/table, /obj/item/storage/box/disks, -/obj/item/device/flashlight/pen, -/obj/item/device/flashlight/pen, +/obj/item/flashlight/pen, +/obj/item/flashlight/pen, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -31215,7 +30949,7 @@ /obj/item/stock_parts/manipulator, /obj/item/stock_parts/scanning_module, /obj/item/stock_parts/scanning_module, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plasteel/whitepurple/side, /area/science/lab) "byI" = ( @@ -32571,7 +32305,7 @@ dir = 8; pixel_x = 23 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; freerange = 1; name = "Station Intercom (Telecomms)"; @@ -32687,7 +32421,7 @@ /turf/open/floor/plasteel/dark, /area/science/mixing) "bBN" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -32785,7 +32519,7 @@ "bBZ" = ( /obj/structure/table, /obj/item/pen, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = -27 @@ -32908,7 +32642,7 @@ "bCm" = ( /obj/structure/table/glass, /obj/item/clothing/neck/stethoscope, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /turf/open/floor/plasteel/blue, /area/medical/sleeper) "bCn" = ( @@ -33753,10 +33487,9 @@ /turf/open/floor/plating, /area/maintenance/department/engine) "bEl" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; - name = "Air Out"; - on = 1 + name = "Air Out" }, /turf/open/floor/plating, /area/maintenance/department/engine) @@ -34098,7 +33831,7 @@ /obj/machinery/computer/mecha{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = -26 @@ -34112,7 +33845,7 @@ }, /area/crew_quarters/heads/hor) "bES" = ( -/obj/item/device/aicard, +/obj/item/aicard, /obj/item/circuitboard/aicore, /obj/machinery/requests_console{ announcementConsole = 1; @@ -34264,19 +33997,19 @@ /turf/open/floor/plasteel/white, /area/science/mixing) "bFi" = ( -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -4; pixel_y = 1 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = 8; pixel_y = 9 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = 9; pixel_y = -2 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_y = 2 }, /obj/structure/table/reinforced, @@ -34296,7 +34029,7 @@ /obj/item/screwdriver{ pixel_y = 10 }, -/obj/item/device/analyzer, +/obj/item/analyzer, /turf/open/floor/plasteel/white, /area/science/mixing) "bFl" = ( @@ -34684,7 +34417,7 @@ /area/medical/surgery) "bFV" = ( /obj/structure/table/glass, -/obj/item/device/flashlight/pen, +/obj/item/flashlight/pen, /obj/item/clothing/neck/stethoscope, /obj/item/lipstick/black, /obj/machinery/power/apc{ @@ -34836,18 +34569,18 @@ /turf/open/floor/plasteel/whitepurple/side, /area/science/mixing) "bGo" = ( -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_y = 8 }, -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_x = -8; pixel_y = 5 }, -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_x = 6; pixel_y = 5 }, -/obj/item/device/assembly/signaler{ +/obj/item/assembly/signaler{ pixel_x = -2; pixel_y = -2 }, @@ -34855,37 +34588,37 @@ /turf/open/floor/plasteel/whitepurple/side, /area/science/mixing) "bGp" = ( -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve{ pixel_x = -5 }, -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve{ pixel_x = -5 }, -/obj/item/device/transfer_valve, -/obj/item/device/transfer_valve, -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve, +/obj/item/transfer_valve, +/obj/item/transfer_valve{ pixel_x = 5 }, -/obj/item/device/transfer_valve{ +/obj/item/transfer_valve{ pixel_x = 5 }, /obj/structure/table/reinforced, /turf/open/floor/plasteel/whitepurple/side, /area/science/mixing) "bGq" = ( -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = 5; pixel_y = 4 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = -4; pixel_y = 2 }, -/obj/item/device/assembly/timer{ +/obj/item/assembly/timer{ pixel_x = 6; pixel_y = -4 }, -/obj/item/device/assembly/timer, +/obj/item/assembly/timer, /obj/structure/table/reinforced, /turf/open/floor/plasteel/whitepurple/side, /area/science/mixing) @@ -35102,7 +34835,7 @@ icon_state = "shower"; dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 0; frequency = 1485; @@ -35239,10 +34972,10 @@ }, /area/science/research/lobby) "bHk" = ( -/obj/item/device/gps{ +/obj/item/gps{ gpstag = "RD0" }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, @@ -35496,7 +35229,7 @@ /area/maintenance/department/engine) "bHS" = ( /obj/structure/table, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/effect/decal/cleanable/cobweb{ icon_state = "cobweb2" }, @@ -35536,7 +35269,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 0; frequency = 1485; @@ -35565,7 +35298,7 @@ /area/medical/virology) "bIb" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 0; frequency = 1485; @@ -35665,7 +35398,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; freerange = 0; frequency = 1485; @@ -36068,7 +35801,7 @@ /obj/structure/table/glass, /obj/item/book/manual/wiki/infections, /obj/item/hand_labeler, -/obj/item/device/radio/headset/headset_med, +/obj/item/radio/headset/headset_med, /obj/machinery/light{ dir = 8 }, @@ -36645,7 +36378,7 @@ dir = 4 }, /obj/effect/landmark/event_spawn, -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bKA" = ( @@ -36813,7 +36546,7 @@ /obj/machinery/atmospherics/pipe/simple/yellow/visible{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -36851,8 +36584,7 @@ "bKY" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "Mix Outlet Pump"; - on = 0 + name = "Mix Outlet Pump" }, /turf/open/floor/plasteel/yellow/side{ dir = 5 @@ -37270,8 +37002,7 @@ "bMa" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "Distro to Waste"; - on = 0 + name = "Distro to Waste" }, /obj/machinery/light{ dir = 1 @@ -37298,8 +37029,7 @@ "bMd" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "Mix to Distro"; - on = 0 + name = "Mix to Distro" }, /turf/open/floor/plasteel/yellow/side{ dir = 1 @@ -37353,10 +37083,7 @@ /area/science/mixing) "bMm" = ( /obj/machinery/igniter{ - icon_state = "igniter0"; - id = "toxigniter"; - luminosity = 2; - on = 0 + id = "toxigniter" }, /turf/open/floor/engine/vacuum, /area/science/mixing) @@ -37596,7 +37323,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; freerange = 1; name = "Station Intercom (Telecomms)"; @@ -37625,10 +37352,9 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "bMY" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; - name = "External to Filter"; - on = 1 + name = "External to Filter" }, /turf/open/floor/plasteel/yellow/side{ dir = 8 @@ -37686,10 +37412,9 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bNg" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 1; - name = "Air to Distro"; - on = 1 + name = "Air to Distro" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -37801,7 +37526,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = 27 @@ -38049,10 +37774,9 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "bOg" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 8; - name = "Air to External"; - on = 1 + name = "Air to External" }, /turf/open/floor/plasteel/yellow/side{ dir = 8 @@ -38115,8 +37839,7 @@ }, /obj/machinery/atmospherics/components/binary/pump{ dir = 0; - name = "Mix to Port"; - on = 0 + name = "Mix to Port" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -38126,8 +37849,7 @@ }, /obj/machinery/atmospherics/components/binary/pump{ dir = 1; - name = "Pure to Mix"; - on = 0 + name = "Pure to Mix" }, /obj/structure/cable{ icon_state = "1-2" @@ -38138,10 +37860,9 @@ /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 1; - name = "Unfiltered to Mix"; - on = 1 + name = "Unfiltered to Mix" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -38366,7 +38087,7 @@ pixel_x = -5; pixel_y = 3 }, -/obj/item/device/multitool{ +/obj/item/multitool{ layer = 4 }, /turf/open/floor/plasteel/yellow/side, @@ -38375,9 +38096,9 @@ /obj/structure/table, /obj/item/stack/sheet/glass/fifty, /obj/item/storage/belt/utility, -/obj/item/device/t_scanner, -/obj/item/device/t_scanner, -/obj/item/device/t_scanner, +/obj/item/t_scanner, +/obj/item/t_scanner, +/obj/item/t_scanner, /turf/open/floor/plasteel/yellow/side, /area/engine/atmos) "bOX" = ( @@ -38435,8 +38156,7 @@ "bPe" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "N2O Outlet Pump"; - on = 0 + name = "N2O Outlet Pump" }, /turf/open/floor/plasteel/yellow/side{ dir = 4 @@ -38668,10 +38388,9 @@ /turf/closed/wall, /area/engine/atmos) "bPR" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 0; - name = "Waste In"; - on = 1 + name = "Waste In" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -38682,8 +38401,7 @@ "bPT" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 0; - name = "Air to Port"; - on = 0 + name = "Air to Port" }, /obj/machinery/light{ dir = 8 @@ -38696,8 +38414,7 @@ "bPU" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 0; - name = "Mix to Port"; - on = 0 + name = "Mix to Port" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -38753,7 +38470,7 @@ /turf/open/floor/plating/asteroid, /area/chapel/asteroid/monastery) "bQe" = ( -/obj/item/device/flashlight/lantern{ +/obj/item/flashlight/lantern{ on = 1 }, /turf/open/floor/plating/asteroid, @@ -38844,16 +38561,16 @@ /area/storage/tech) "bQs" = ( /obj/structure/table, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = 1; pixel_y = 5 }, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_x = 1; pixel_y = 5 }, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/effect/decal/cleanable/cobweb, /obj/structure/extinguisher_cabinet{ pixel_x = -26 @@ -38862,7 +38579,7 @@ /area/storage/tech) "bQt" = ( /obj/structure/table, -/obj/item/device/aicard, +/obj/item/aicard, /obj/item/aiModule/reset, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/airalarm{ @@ -39066,10 +38783,8 @@ }, /area/engine/atmos) "bQN" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 1; - filter_type = "n2o"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{ + dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -39209,7 +38924,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -39694,8 +39409,7 @@ }, /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "Plasma Outlet Pump"; - on = 0 + name = "Plasma Outlet Pump" }, /turf/open/floor/plasteel/yellow/side{ dir = 4 @@ -39853,7 +39567,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/dark, /area/storage/tech) "bSG" = ( @@ -39960,8 +39674,7 @@ }, /obj/machinery/atmospherics/components/binary/pump{ dir = 0; - name = "Port to Filter"; - on = 0 + name = "Port to Filter" }, /obj/structure/extinguisher_cabinet{ pixel_x = -27 @@ -39969,7 +39682,7 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bSS" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel, /area/engine/atmos) "bST" = ( @@ -40065,10 +39778,9 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 1; - name = "Air Out"; - on = 1 + name = "Air Out" }, /turf/open/floor/plating, /area/maintenance/department/engine) @@ -40224,7 +39936,7 @@ pixel_y = 4 }, /obj/item/clothing/gloves/color/yellow, -/obj/item/device/t_scanner, +/obj/item/t_scanner, /turf/open/floor/plasteel/darkgreen, /area/storage/tech) "bTA" = ( @@ -40233,7 +39945,7 @@ pixel_x = 2; pixel_y = 4 }, -/obj/item/device/multitool, +/obj/item/multitool, /obj/machinery/requests_console{ department = "Tech storage"; pixel_y = -32 @@ -40356,7 +40068,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = 30; @@ -40401,8 +40113,7 @@ "bTR" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "Port to Filter"; - on = 0 + name = "Port to Filter" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -40418,10 +40129,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bTU" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 1; - filter_type = "plasma"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma{ + dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -40554,7 +40263,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 24 @@ -40983,8 +40692,7 @@ "bVk" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "CO2 Outlet Pump"; - on = 0 + name = "CO2 Outlet Pump" }, /turf/open/floor/plasteel/yellow/side{ dir = 4 @@ -41029,7 +40737,7 @@ dir = 8 }, /turf/open/floor/plating, -/area/maintenance/department/engine) +/area/construction/mining/aux_base) "bVr" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating/airless, @@ -41066,7 +40774,7 @@ /obj/item/wallframe/camera, /obj/item/wallframe/camera, /obj/item/wallframe/camera, -/obj/item/device/assault_pod/mining, +/obj/item/assault_pod/mining, /turf/open/floor/plating{ icon_state = "platingdmg3" }, @@ -41332,8 +41040,7 @@ "bVV" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 0; - name = "Waste to Space"; - on = 0 + name = "Waste to Space" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -41355,8 +41062,7 @@ }, /obj/machinery/atmospherics/components/binary/pump{ dir = 1; - name = "O2 to Pure"; - on = 0 + name = "O2 to Pure" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -41369,8 +41075,7 @@ "bWa" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 4; - name = "N2 to Pure"; - on = 0 + name = "N2 to Pure" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -41697,10 +41402,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bWK" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4; - filter_type = "o2"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -41730,16 +41433,13 @@ "bWP" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 1; - name = "Air to Pure"; - on = 0 + name = "Air to Pure" }, /turf/open/floor/plasteel, /area/engine/atmos) "bWQ" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 1; - filter_type = "co2"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/co2{ + dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -41801,7 +41501,7 @@ /turf/open/floor/plating, /area/maintenance/department/engine) "bXc" = ( -/obj/item/device/flashlight, +/obj/item/flashlight, /turf/open/floor/plating, /area/maintenance/department/engine) "bXd" = ( @@ -41964,11 +41664,7 @@ /turf/open/floor/plasteel/yellow/side, /area/engine/atmos) "bXA" = ( -/obj/machinery/atmospherics/components/trinary/mixer{ - node1_concentration = 0.8; - node2_concentration = 0.2; - on = 1 - }, +/obj/machinery/atmospherics/components/trinary/mixer/airmix, /turf/open/floor/plasteel/yellow/side, /area/engine/atmos) "bXB" = ( @@ -41979,10 +41675,9 @@ /area/engine/atmos) "bXC" = ( /obj/machinery/light, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; - name = "Air Outlet Pump"; - on = 1 + name = "Air Outlet Pump" }, /turf/open/floor/plasteel/yellow/side, /area/engine/atmos) @@ -42304,7 +41999,7 @@ dir = 4 }, /turf/open/floor/plating, -/area/maintenance/department/engine) +/area/construction/mining/aux_base) "bYG" = ( /obj/machinery/power/apc/highcap/five_k{ dir = 8; @@ -42588,7 +42283,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -42751,32 +42446,14 @@ }, /area/maintenance/department/engine) "bZs" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, /turf/open/floor/plating, -/area/shuttle/auxillary_base) +/area/construction/mining/aux_base) "bZt" = ( /obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"bZu" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/docking_port/stationary/public_mining_dock{ dir = 2 }, /turf/open/floor/plating, -/area/shuttle/auxillary_base) -"bZv" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) +/area/construction/mining/aux_base) "bZw" = ( /obj/item/bikehorn/rubberducky, /turf/open/floor/plating, @@ -42994,20 +42671,17 @@ }, /area/maintenance/department/engine) "cab" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"cac" = ( -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"cad" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 }, /turf/open/floor/plating, -/area/shuttle/auxillary_base) +/area/construction/mining/aux_base) +"cad" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/construction/mining/aux_base) "cae" = ( /obj/structure/plasticflaps{ opacity = 1 @@ -43263,6 +42937,17 @@ name = "Turbine Interior Airlock"; req_access_txt = "24" }, +/obj/machinery/embedded_controller/radio/airlock_controller{ + airpump_tag = "incinerator_airlock_pump"; + exterior_door_tag = "incinerator_airlock_exterior"; + id_tag = "incinerator_airlock_control"; + interior_door_tag = "incinerator_airlock_interior"; + name = "Incinerator Access Console"; + pixel_x = -6; + pixel_y = -26; + sanitize_external = 1; + sensor_tag = "incinerator_airlock_sensor" + }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "caM" = ( @@ -43296,10 +42981,7 @@ icon_state = "4-8" }, /obj/machinery/igniter{ - icon_state = "igniter0"; - id = "Incinerator"; - luminosity = 2; - on = 0 + id = "Incinerator" }, /obj/machinery/air_sensor/atmos/incinerator_tank{ pixel_x = 32; @@ -43353,11 +43035,11 @@ /area/chapel/main/monastery) "caV" = ( /obj/machinery/holopad, -/obj/item/device/flashlight/lantern, +/obj/item/flashlight/lantern, /turf/open/floor/plasteel/chapel, /area/chapel/main/monastery) "caW" = ( -/obj/item/device/flashlight/lantern, +/obj/item/flashlight/lantern, /turf/open/floor/plasteel/chapel{ dir = 8 }, @@ -43389,7 +43071,7 @@ /obj/machinery/light{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_x = -27 @@ -43427,7 +43109,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/table/glass, -/obj/item/device/flashlight, +/obj/item/flashlight, /turf/open/floor/plasteel, /area/engine/engineering) "cbg" = ( @@ -43573,24 +43255,12 @@ "cbB" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "Incinerator to Output"; - on = 0 + name = "Incinerator to Output" }, /obj/machinery/atmospherics/pipe/simple/general/visible, /turf/open/floor/plasteel/dark, /area/maintenance/disposal/incinerator) "cbC" = ( -/obj/machinery/embedded_controller/radio/airlock_controller{ - name = "Incinerator Access Console"; - airpump_tag = "incinerator_airlock_pump"; - exterior_door_tag = "incinerator_airlock_exterior"; - id_tag = "incinerator_access_control"; - interior_door_tag = "incinerator_airlock_interior"; - pixel_x = 26; - pixel_y = 6; - sanitize_external = 1; - sensor_tag = "incinerator_airlock_sensor" - }, /obj/machinery/button/ignition{ id = "Incinerator"; pixel_x = 26; @@ -43911,7 +43581,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/main/monastery) "ccL" = ( -/obj/item/device/flashlight/lantern{ +/obj/item/flashlight/lantern{ on = 1 }, /turf/open/floor/plasteel/asteroid{ @@ -43934,15 +43604,6 @@ /obj/structure/table/optable, /turf/open/floor/plating, /area/maintenance/department/engine) -"ccP" = ( -/obj/machinery/light, -/obj/machinery/camera{ - c_tag = "Auxillary Mining Base"; - dir = 1; - network = list("ss13","auxbase") - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "ccQ" = ( /obj/machinery/field/generator, /turf/open/floor/plating, @@ -43958,7 +43619,7 @@ /obj/item/stack/sheet/mineral/plasma{ amount = 30 }, -/obj/item/device/gps{ +/obj/item/gps{ gpstag = "ENG0" }, /turf/open/floor/plating, @@ -44162,28 +43823,6 @@ /obj/item/cigbutt, /turf/open/floor/plating, /area/maintenance/department/engine) -"cdF" = ( -/obj/structure/closet/secure_closet/miner/unlocked, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"cdG" = ( -/obj/docking_port/mobile/auxillary_base{ - dheight = 5; - dir = 1; - dwidth = 5; - height = 11; - width = 11 - }, -/obj/machinery/bluespace_beacon, -/obj/machinery/computer/auxillary_base, -/turf/closed/wall, -/area/shuttle/auxillary_base) -"cdH" = ( -/obj/structure/mining_shuttle_beacon{ - dir = 4 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "cdI" = ( /obj/machinery/field/generator, /obj/machinery/camera{ @@ -44416,12 +44055,6 @@ }, /turf/open/floor/plating/asteroid, /area/chapel/asteroid/monastery) -"cep" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "ceq" = ( /obj/machinery/power/emitter, /turf/open/floor/plating, @@ -45034,22 +44667,12 @@ }, /turf/open/floor/plasteel/dark, /area/chapel/main/monastery) -"cgo" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "cgp" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"cgq" = ( /obj/effect/turf_decal/stripes/line{ - dir = 6 + dir = 1 }, /turf/open/floor/plating, -/area/shuttle/auxillary_base) +/area/construction/mining/aux_base) "cgr" = ( /obj/structure/window/reinforced/fulltile, /obj/structure/transit_tube, @@ -45149,7 +44772,7 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/item/device/flashlight/lantern, +/obj/item/flashlight/lantern, /turf/open/floor/plasteel/grimy, /area/chapel/main/monastery) "cgO" = ( @@ -45207,6 +44830,13 @@ }, /turf/open/floor/plating/airless, /area/engine/engineering) +"cgV" = ( +/obj/machinery/field/generator{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/space) "cgY" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -45350,6 +44980,20 @@ }, /turf/open/floor/plating/airless, /area/engine/engineering) +"chx" = ( +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"chz" = ( +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, +/area/engine/engineering) "chA" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -45372,7 +45016,7 @@ dir = 1 }, /obj/effect/decal/cleanable/cobweb, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -45410,7 +45054,7 @@ /obj/machinery/light/small{ dir = 8 }, -/obj/item/device/instrument/violin, +/obj/item/instrument/violin, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -45544,6 +45188,24 @@ /obj/structure/grille, /turf/open/floor/plating/airless, /area/engine/engineering) +"cii" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating/airless, +/area/space) +"cij" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/space) +"cik" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating/airless, +/area/space) "cio" = ( /obj/structure/closet/cabinet, /obj/item/clothing/suit/holidaypriest, @@ -45582,6 +45244,22 @@ /obj/structure/grille, /turf/open/floor/plating/airless, /area/engine/engineering) +"cis" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/space) +"cit" = ( +/obj/machinery/the_singularitygen/tesla, +/turf/open/floor/plating/airless, +/area/space) +"ciu" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) "civ" = ( /obj/machinery/light{ dir = 4 @@ -45636,6 +45314,24 @@ }, /turf/open/floor/plasteel/grimy, /area/chapel/main/monastery) +"ciG" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating/airless, +/area/space) +"ciH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/turf/open/floor/plating/airless, +/area/space) +"ciI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating/airless, +/area/space) "ciJ" = ( /obj/structure/closet/emcloset, /obj/effect/decal/cleanable/cobweb, @@ -45824,7 +45520,6 @@ height = 22; id = "whiteship_home"; name = "monastery"; - turf_type = /turf/open/space; width = 35 }, /turf/open/space/basic, @@ -45862,7 +45557,7 @@ /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-22" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -45905,7 +45600,7 @@ invuln = 1; luminosity = 3; name = "Hardened Bomb-Test Camera"; - network = list("ss13", "rd", "toxins"); + network = list("ss13","rd","toxins"); use_power = 0 }, /turf/open/floor/plating/asteroid/airless, @@ -45975,10 +45670,9 @@ /turf/open/floor/plating, /area/maintenance/department/chapel/monastery) "cki" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 1; - name = "Air Out"; - on = 1 + name = "Air Out" }, /turf/open/floor/plating, /area/maintenance/department/chapel/monastery) @@ -46150,7 +45844,7 @@ /turf/closed/mineral/random/low_chance, /area/asteroid/nearstation/bomb_site) "ckL" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plating/airless, /area/asteroid/nearstation/bomb_site) "ckM" = ( @@ -46267,7 +45961,7 @@ /turf/open/floor/plasteel/dark, /area/library) "clj" = ( -/obj/item/device/flashlight/lantern{ +/obj/item/flashlight/lantern{ on = 1 }, /turf/open/floor/plating/asteroid/airless, @@ -46397,10 +46091,9 @@ /turf/closed/wall, /area/tcommsat/computer) "clM" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 1; - name = "Waste Out"; - on = 1 + name = "Waste Out" }, /turf/open/floor/plating, /area/tcommsat/computer) @@ -46427,7 +46120,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 }, -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel, /area/tcommsat/computer) "clS" = ( @@ -46454,10 +46147,9 @@ /turf/open/floor/plating, /area/tcommsat/computer) "clV" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 0; - name = "Air Out"; - on = 1 + name = "Air Out" }, /obj/machinery/light/small{ dir = 4 @@ -46524,7 +46216,7 @@ "cmf" = ( /obj/structure/rack, /obj/item/storage/toolbox/mechanical, -/obj/item/device/radio, +/obj/item/radio, /obj/machinery/airalarm{ dir = 4; pixel_x = -22 @@ -46562,7 +46254,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = 26 }, @@ -46936,7 +46628,7 @@ invuln = 1; luminosity = 3; name = "Hardened Bomb-Test Camera"; - network = list("ss13", "rd", "toxins"); + network = list("ss13","rd","toxins"); use_power = 0 }, /turf/open/floor/plating/asteroid/airless, @@ -47058,7 +46750,7 @@ c_tag = "Brig Equipment Room"; dir = 2 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = 29 }, @@ -47086,11 +46778,6 @@ /obj/structure/punching_bag, /turf/open/floor/plasteel/showroomfloor, /area/security/main) -"cnW" = ( -/obj/structure/grille, -/obj/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/pod_1) "cnX" = ( /obj/structure/table, /obj/effect/spawner/lootdrop/maintenance, @@ -47295,7 +46982,7 @@ /turf/open/floor/plasteel/neutral/corner, /area/hallway/secondary/exit/departure_lounge) "coT" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "coV" = ( @@ -47449,7 +47136,7 @@ /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) "cpt" = ( -/obj/item/device/beacon, +/obj/item/beacon, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -48115,7 +47802,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/main/monastery) "csn" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 0; name = "Station Intercom (General)"; pixel_y = 26 @@ -49291,7 +48978,7 @@ /turf/open/space, /area/space/nearstation) "cwO" = ( -/obj/item/device/flashlight/lantern, +/obj/item/flashlight/lantern, /turf/open/floor/plasteel/dark, /area/chapel/main/monastery) "cwR" = ( @@ -49595,7 +49282,7 @@ /area/library) "czo" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, @@ -49651,7 +49338,7 @@ /area/library) "czC" = ( /obj/structure/table/wood/fancy, -/obj/item/device/flashlight/lantern{ +/obj/item/flashlight/lantern{ on = 1; pixel_y = 8 }, @@ -49695,7 +49382,7 @@ /area/library) "czO" = ( /obj/structure/table/wood, -/obj/item/device/instrument/saxophone, +/obj/item/instrument/saxophone, /turf/open/floor/plasteel/dark, /area/library) "czP" = ( @@ -49790,7 +49477,7 @@ /area/library) "cAt" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lantern{ +/obj/item/flashlight/lantern{ pixel_y = 8 }, /turf/open/floor/plasteel/vault{ @@ -49807,7 +49494,7 @@ /area/library) "cAv" = ( /obj/structure/table/wood, -/obj/item/device/camera, +/obj/item/camera, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/vault{ dir = 5 @@ -50256,26 +49943,61 @@ /area/quartermaster/office) "ejp" = ( /obj/structure/table/reinforced, -/obj/item/device/integrated_circuit_printer, -/obj/item/device/integrated_electronics/wirer, +/obj/item/integrated_circuit_printer, +/obj/item/integrated_electronics/wirer, /turf/open/floor/plasteel/whitepurple/side{ dir = 1 }, /area/science/circuit) +"eAP" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"eDm" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/stairs, +/area/crew_quarters/cryopod) +"eIh" = ( +/obj/machinery/chem_master/condimaster, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) "eQR" = ( /obj/effect/spawner/lootdrop/two_percent_xeno_egg_spawner, /turf/open/floor/engine, /area/science/xenobiology) +"fmr" = ( +/obj/docking_port/stationary{ + area_type = /area/construction/mining/aux_base; + dheight = 4; + dir = 2; + dwidth = 4; + height = 9; + id = "aux_base_zone"; + name = "aux base zone"; + roundstart_template = /datum/map_template/shuttle/aux_base/default; + width = 9 + }, +/turf/open/floor/plating, +/area/construction/mining/aux_base) "fon" = ( /obj/structure/lattice, /obj/structure/grille, /turf/open/space/basic, /area/space/nearstation) "fuR" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4; - filter_type = "n2"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -50284,6 +50006,17 @@ dir = 6 }, /area/science/circuit) +"fwj" = ( +/obj/machinery/cryopod{ + tag = "icon-cryopod-open (EAST)"; + icon_state = "cryopod-open"; + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "fwl" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -50319,10 +50052,20 @@ "fKj" = ( /turf/closed/wall, /area/science/circuit) +"fKW" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) "fWv" = ( /obj/structure/bookcase/random/religion, /turf/open/floor/plasteel/dark, /area/library/lounge) +"fYp" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/darkpurple, +/area/crew_quarters/cryopod) "gkR" = ( /obj/item/twohanded/required/kirbyplants/random, /obj/structure/extinguisher_cabinet{ @@ -50376,7 +50119,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/device/integrated_electronics/debugger, +/obj/item/integrated_electronics/debugger, /turf/open/floor/plasteel/whitepurple/side{ dir = 1 }, @@ -50394,6 +50137,10 @@ }, /turf/open/floor/carpet, /area/library) +"inD" = ( +/obj/machinery/cryopod, +/turf/open/floor/plasteel/darkpurple, +/area/crew_quarters/cryopod) "izB" = ( /obj/machinery/door/airlock/external{ name = "Escape Pod" @@ -50413,6 +50160,10 @@ /obj/effect/turf_decal/box/red, /turf/open/floor/plasteel/white, /area/science/circuit) +"iEY" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) "iIy" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 @@ -50537,6 +50288,11 @@ "kwI" = ( /turf/open/floor/plasteel, /area/science/mixing) +"kAy" = ( +/obj/effect/spawner/structure/window, +/obj/structure/sign/departments/evac, +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) "kAz" = ( /obj/structure/cable{ icon_state = "1-2" @@ -50545,6 +50301,15 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/maintenance/department/cargo) +"kEM" = ( +/obj/structure/sign/directions/evac{ + dir = 1; + pixel_x = -32 + }, +/turf/open/floor/plasteel/green/corner{ + dir = 1 + }, +/area/hallway/primary/central) "lju" = ( /obj/machinery/vending/snack/random, /turf/open/floor/plasteel/purple/corner{ @@ -50576,6 +50341,9 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/science/circuit) +"lKs" = ( +/turf/closed/wall, +/area/crew_quarters/cryopod) "lQn" = ( /turf/open/floor/plasteel/white, /area/science/circuit) @@ -50589,6 +50357,13 @@ dir = 8 }, /area/bridge) +"lZH" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/darkpurple, +/area/crew_quarters/cryopod) "mau" = ( /obj/structure/lattice, /obj/structure/grille/broken, @@ -50604,6 +50379,27 @@ /obj/item/stack/cable_coil, /turf/open/floor/plasteel/whitepurple/side, /area/science/lab) +"myu" = ( +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge"; + req_access_txt = "19" + }, +/obj/effect/turf_decal/delivery, +/obj/structure/sign/directions/evac{ + dir = 1; + pixel_x = 32 + }, +/turf/open/floor/plasteel/vault, +/area/bridge) "mCe" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -50630,12 +50426,17 @@ pixel_x = 10 }, /obj/structure/rack, -/obj/item/device/multitool, -/obj/item/device/multitool, +/obj/item/multitool, +/obj/item/multitool, /obj/item/screwdriver, /obj/item/screwdriver, /turf/open/floor/plasteel/white, /area/science/circuit) +"niB" = ( +/obj/machinery/computer/libraryconsole/bookmanagement, +/obj/structure/table, +/turf/open/floor/plasteel/dark, +/area/security/prison) "not" = ( /obj/item/cigbutt, /turf/open/floor/plasteel/white, @@ -50652,6 +50453,9 @@ dir = 5 }, /area/science/circuit) +"oif" = ( +/turf/open/floor/plasteel/darkpurple, +/area/crew_quarters/cryopod) "onw" = ( /turf/open/floor/plasteel/purple/side{ dir = 4 @@ -50669,6 +50473,9 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/storage/primary) +"oEA" = ( +/turf/closed/wall, +/area/construction/mining/aux_base) "oEG" = ( /obj/machinery/bookbinder, /turf/open/floor/plasteel/purple/side{ @@ -50705,9 +50512,21 @@ /area/engine/break_room) "ptq" = ( /obj/structure/table/reinforced, -/obj/item/device/integrated_electronics/analyzer, +/obj/item/integrated_electronics/analyzer, /turf/open/floor/plasteel/white, /area/science/circuit) +"pRP" = ( +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/cryopod"; + dir = 1; + name = "Crew Cryogenics APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/darkpurple, +/area/crew_quarters/cryopod) "pWF" = ( /obj/structure/table/reinforced, /obj/machinery/light{ @@ -50746,7 +50565,7 @@ pixel_x = 20; pixel_y = -6 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27; @@ -50810,6 +50629,12 @@ }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) +"rAU" = ( +/obj/machinery/computer/cryopod{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/darkpurple, +/area/crew_quarters/cryopod) "rBh" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/stripes/line{ @@ -50858,10 +50683,46 @@ }, /turf/open/floor/plating, /area/quartermaster/storage) +"sTR" = ( +/obj/machinery/cryopod, +/obj/machinery/light/small/built{ + dir = 4 + }, +/turf/open/floor/plasteel/darkpurple, +/area/crew_quarters/cryopod) +"sUS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) "thA" = ( /obj/machinery/atmospherics/pipe/simple/general/hidden, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) +"tHk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/sign/directions/evac{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"tSS" = ( +/obj/machinery/conveyor/inverted{ + dir = 10; + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"tWt" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/departments/evac, +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) "tYg" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -50877,9 +50738,13 @@ dir = 4 }, /obj/structure/table/reinforced, -/obj/item/device/integrated_electronics/analyzer, +/obj/item/integrated_electronics/analyzer, /turf/open/floor/plasteel/white, /area/science/circuit) +"ukn" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/construction/mining/aux_base) "ulu" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ @@ -50919,6 +50784,18 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) +"uYl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) "vpz" = ( /obj/structure/table/reinforced, /obj/machinery/computer/security/telescreen{ @@ -50928,8 +50805,8 @@ network = list("rd"); pixel_y = 32 }, -/obj/item/device/integrated_circuit_printer, -/obj/item/device/integrated_electronics/debugger, +/obj/item/integrated_circuit_printer, +/obj/item/integrated_electronics/debugger, /turf/open/floor/plasteel/whitepurple/side{ dir = 1 }, @@ -50946,7 +50823,7 @@ /area/crew_quarters/fitness/recreation) "vJd" = ( /obj/structure/table/reinforced, -/obj/item/device/integrated_electronics/wirer, +/obj/item/integrated_electronics/wirer, /turf/open/floor/plasteel/white, /area/science/circuit) "vMX" = ( @@ -51023,6 +50900,13 @@ }, /turf/open/floor/plating, /area/crew_quarters/heads/cmo) +"wMV" = ( +/obj/machinery/conveyor/inverted{ + dir = 6; + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) "wTO" = ( /obj/machinery/vending/assist, /turf/open/floor/plasteel/purple/corner{ @@ -69689,7 +69573,7 @@ aHA aHA aHA aKB -aHA +tWt aKB aHA aHA @@ -70669,8 +70553,8 @@ aem aem aem aeT -aaB -aaC +afn +fwj afZ agn agy @@ -70925,9 +70809,9 @@ abI aem aeo aeC -aaA +niB aeU -aaD +afC aeU aeU agy @@ -74114,19 +73998,19 @@ bva bva bDi bva -bva -bva -bva -bva -bva -bva -bva -bva -bva -cqy -cqy -bva -bva +oEA +oEA +oEA +oEA +oEA +oEA +oEA +oEA +oEA +ukn +ukn +oEA +oEA aaa aaa aaa @@ -74371,7 +74255,7 @@ bva bWj bWZ bXS -bva +oEA bZs cab cab @@ -74382,8 +74266,8 @@ cab cab cab cab -cgo -bva +bZs +oEA aaa aaa aaa @@ -74572,7 +74456,7 @@ aOs aPv aQz aRH -aRH +kAy aRH aUJ aVQ @@ -74628,19 +74512,19 @@ bVt bWk bXa bXT -cqy +ukn bZt -cac -cac -cac -cac -cac -cac -cac -cac -cac +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs cgp -cqy +ukn aaa aaa aaa @@ -74887,17 +74771,17 @@ bDi bSw bYF bZt -cac -cac -cac -cac -cac -cac -cac -cac -cac +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs cgp -cqy +ukn aaa aaa aaa @@ -75142,19 +75026,19 @@ bVu bNX bDi bDi -cqy +ukn bZt -cac -cac -cac -cac -cac -cac -cac -cac -cac +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs cgp -cqy +ukn aaa aaa aaa @@ -75332,7 +75216,7 @@ aDv aBh aBh aGd -aEY +tHk aHG aIM aJG @@ -75399,19 +75283,19 @@ bVv bSw bPC bXU -bva +oEA bZt -cac -cac -cac -cac -cdF -cac -cac -cac -cac +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs cgp -bva +oEA aaa aaa aaa @@ -75656,19 +75540,19 @@ bVw bDi bDi bXV -cqy -bZu -cac -cac -cac -ccP -cdG -cep -cac -cac -cac +ukn +bZt +bZs +bZs +bZs +bZs +fmr +bZs +bZs +bZs +bZs cgp -bva +oEA aaa aaa aaa @@ -75913,19 +75797,19 @@ bVx bPC bXb bDi -bva +oEA bZt -cac -cac -cac -cac -cdH -cac -cac -cac -cac +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs cgp -bva +oEA aaa aaa aaa @@ -76170,19 +76054,19 @@ bVy bDi bXc bDi -cqy +ukn bZt -cac -cac -cac -cac -cac -cac -cac -cac -cac +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs cgp -cqy +ukn aaa aaa aaa @@ -76429,17 +76313,17 @@ bSw bDi bVq bZt -cac -cac -cac -cac -cac -cac -cac -cac -cac +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs cgp -cqy +ukn aaa aaa aaa @@ -76684,19 +76568,19 @@ bVz bWm bSw bNX -cqy +ukn bZt -cac -cac -cac -cac -cac -cac -cac -cac -cac +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs +bZs cgp -cqy +ukn aaa aaa aaa @@ -76941,8 +76825,8 @@ bva bva bDi cBj -bva -bZv +oEA +bZs cad cad cad @@ -76952,8 +76836,8 @@ cad cad cad cad -cgq -bva +bZs +oEA aaa aaa aaa @@ -77198,19 +77082,19 @@ bDi bDi bNK bva -bva -bva -bva -bva -bva -bva -bva -bva -bva -cqy -cqy -bva -bva +oEA +oEA +oEA +oEA +oEA +oEA +oEA +oEA +oEA +ukn +ukn +oEA +oEA aaa aaa aaa @@ -77658,7 +77542,7 @@ aQJ aRL aSD aTT -aTV +eIh aRL aWR aXT @@ -78697,7 +78581,7 @@ bcb bdn bel bdn -bdn +kEM aJI aDZ bik @@ -80472,7 +80356,7 @@ aDJ aEC aDJ aAA -aHe +myu aHU aIV aJS @@ -81066,13 +80950,13 @@ cfV cfV cgv cfV -aao +chx cfV -aao +chx cfV -aao +chx cfV -aao +chx cfV cfV bTE @@ -81322,15 +81206,15 @@ cCI cfV cfU cgv -aan +cgV bBW bBW -aan -aht +cgV +iEY aaa bBW bBW -aan +cgV cfV bTE abI @@ -81582,8 +81466,8 @@ cgv bBW bBW bBW -aht -abI +iEY +fKW aaa bBW bBW @@ -81839,9 +81723,9 @@ cgv bBW bBW aaa -aaq -abI -aaq +aaa +fKW +aaa aaa bBW bBW @@ -82095,13 +81979,13 @@ cfa cgv aaa aaa -aaq -aar -aau -aax -aaq -aht -aan +aaa +cii +cis +ciG +aaa +iEY +cgV cfV bTE abI @@ -82350,15 +82234,15 @@ cfd cfw cfW cgw -aht -abI -abI -aas -aav -aay -abI -abI -aht +iEY +fKW +fKW +cij +cit +ciH +fKW +fKW +iEY cfV bTE abI @@ -82607,13 +82491,13 @@ cfe cfx cfa cgv -aan -aht -aaq -aat -aaw -aaz -aaq +cgV +iEY +aaa +cik +ciu +ciI +aaa aaa aaa cfV @@ -82867,9 +82751,9 @@ cgv bBW bBW aaa -aaq -abI -aaq +aaa +fKW +aaa aaa bBW bBW @@ -83125,8 +83009,8 @@ bBW bBW aaa aaa -abI -aht +fKW +iEY aaa bBW bBW @@ -83378,15 +83262,15 @@ cCI cfV cfU cgv -aan +cgV bBW aaa aaa -aht -aan +iEY +cgV bBW bBW -aan +cgV cfV bTE abI @@ -83636,13 +83520,13 @@ cfV cfV cgv cfV -aap +chz cfV -aap +chz cfV -aap +chz cfV -aap +chz cfV cfV bTE @@ -87665,12 +87549,12 @@ aaa aaa aaa aaa -aab -aac -aaf -aai -aak -aam +lKs +pRP +fYp +eDm +uYl +eAP aJI aLe aMe @@ -87922,11 +87806,11 @@ aaa aaa aaa aaa -aab -aad -aag -aaj -aal +lKs +rAU +oif +lZH +sUS aIU aJH aLe @@ -88179,10 +88063,10 @@ apX aBL aBL apX -aab -aae -aah -aab +lKs +sTR +inD +lKs aHN aIU aJI @@ -90218,11 +90102,11 @@ alf aaa aaa aaa -ann -ann -cnW -ann -aqX +aaa +aaa +aaa +aaa +aaa apX apX aul @@ -90474,12 +90358,12 @@ akn alg aaa aaa -ann -ann -aoE -apx -apY -aqX +aaa +aaa +aaa +aaa +aaa +aaa ash ash ash @@ -90731,11 +90615,11 @@ ako alg aaa aaa -cnW -aoc -aoF -aoF -aoF +aaa +aaa +aaa +aaa +aaa aqY asi atk @@ -90988,12 +90872,12 @@ akn alg aaa aaa -ann -ann -aoG -apy -apZ -aqX +aaa +aaa +aaa +aaa +aaa +aaa asj atl aum @@ -91246,11 +91130,11 @@ alh aaa aaa aaa -ann -ann -cnW -ann -aqX +aaa +aaa +aaa +aaa +aaa apX apX apX @@ -91769,7 +91653,7 @@ aiS atm aun atn -aaE +awx axw ayu azC @@ -97698,8 +97582,8 @@ aaa aLo aMG aNX -aPh -aQo +wMV +tSS aRy aSn aTA diff --git a/_maps/map_files/debug/runtimestation.dmm b/_maps/map_files/debug/runtimestation.dmm index 79448b7dad..73a6d6fca8 100644 --- a/_maps/map_files/debug/runtimestation.dmm +++ b/_maps/map_files/debug/runtimestation.dmm @@ -257,9 +257,8 @@ }, /area/engine/atmos) "aO" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -288,7 +287,7 @@ /area/space/nearstation) "aS" = ( /obj/structure/table, -/obj/item/device/flashlight{ +/obj/item/flashlight{ pixel_y = 5 }, /obj/item/storage/toolbox/syndicate, @@ -374,9 +373,8 @@ }, /area/engine/atmos) "bc" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -424,7 +422,7 @@ }, /obj/machinery/light, /obj/structure/table, -/obj/item/device/analyzer, +/obj/item/analyzer, /obj/item/wrench, /turf/open/floor/plating, /area/engine/atmos) @@ -640,7 +638,7 @@ /turf/open/floor/plasteel/dark, /area/medical/chemistry) "bT" = ( -/obj/machinery/chem_dispenser/scp_294, +/obj/machinery/chem_dispenser, /turf/open/floor/plasteel/dark, /area/medical/chemistry) "bU" = ( diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 4c663f9219..1b5d94d8c1 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -82,7 +82,7 @@ /area/holodeck/rec_center/lounge) "ao" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ layer = 3.3 }, /turf/open/floor/holofloor{ @@ -312,7 +312,7 @@ /area/holodeck/rec_center/court) "aY" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ +/obj/item/flashlight/lamp/green{ pixel_y = 4 }, /turf/open/floor/holofloor/carpet, @@ -341,7 +341,7 @@ /area/holodeck/rec_center/bunker) "bd" = ( /obj/structure/table/wood, -/obj/item/device/instrument/violin, +/obj/item/instrument/violin, /turf/open/floor/holofloor/carpet, /area/holodeck/rec_center/lounge) "be" = ( @@ -754,7 +754,7 @@ /area/holodeck/rec_center/medical) "ct" = ( /obj/structure/table/glass, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /turf/open/floor/holofloor{ icon_state = "white" }, @@ -1918,7 +1918,7 @@ /turf/closed/indestructible/riveted, /area/space) "fy" = ( -/obj/machinery/igniter, +/obj/machinery/igniter/on, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/tdome/arena_source) @@ -2526,10 +2526,6 @@ /obj/machinery/capture_the_flag/red, /turf/open/floor/circuit/green/anim, /area/ctf) -"hH" = ( -/obj/effect/landmark/shuttle_import, -/turf/open/space, -/area/space) "hI" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -2755,15 +2751,15 @@ /area/centcom/control) "iv" = ( /obj/structure/table/reinforced, -/obj/item/device/radio{ +/obj/item/radio{ pixel_x = 5; pixel_y = 5 }, -/obj/item/device/radio{ +/obj/item/radio{ pixel_x = -5; pixel_y = 5 }, -/obj/item/device/radio, +/obj/item/radio, /obj/machinery/airalarm{ pixel_y = 23 }, @@ -2799,7 +2795,7 @@ "iy" = ( /obj/structure/table/reinforced, /obj/item/restraints/handcuffs/cable/zipties, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/centcom/control) @@ -2994,19 +2990,17 @@ /turf/open/floor/plating, /area/centcom/supply) "jc" = ( -/obj/machinery/conveyor{ - dir = 1; - id = "XCCQMLoad2"; - movedir = 2 - }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/conveyor{ + dir = 1; + id = "XCCQMLoad2" + }, /turf/open/floor/plasteel, /area/centcom/supply) "jd" = ( /obj/machinery/conveyor_switch/oneway{ - convdir = 1; id = "XCCQMLoad2"; pixel_x = 6 }, @@ -3074,26 +3068,24 @@ id = "XCCQMLoaddoor2"; name = "Supply Dock Loading Door" }, -/obj/machinery/conveyor{ - dir = 4; - id = "XCCQMLoad2"; - movedir = 8 - }, /obj/effect/turf_decal/stripes/end{ dir = 8 }, +/obj/machinery/conveyor{ + dir = 4; + id = "XCCQMLoad2" + }, /turf/open/floor/plasteel, /area/centcom/supply) "jl" = ( /obj/structure/plasticflaps, -/obj/machinery/conveyor{ - dir = 4; - id = "XCCQMLoad2"; - movedir = 8 - }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/machinery/conveyor{ + dir = 4; + id = "XCCQMLoad2" + }, /turf/open/floor/plasteel, /area/centcom/supply) "jm" = ( @@ -3102,23 +3094,21 @@ id = "XCCQMLoaddoor2"; name = "Supply Dock Loading Door" }, -/obj/machinery/conveyor{ - dir = 4; - id = "XCCQMLoad2"; - movedir = 8 - }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/machinery/conveyor{ + dir = 4; + id = "XCCQMLoad2" + }, /turf/open/floor/plasteel, /area/centcom/supply) "jn" = ( -/obj/machinery/conveyor{ - dir = 1; - id = "XCCQMLoad2"; - movedir = 2 - }, /obj/effect/turf_decal/stripes/end, +/obj/machinery/conveyor/inverted{ + dir = 10; + id = "XCCQMLoad2" + }, /turf/open/floor/plasteel, /area/centcom/supply) "jo" = ( @@ -3314,13 +3304,13 @@ /turf/open/floor/plasteel, /area/centcom/supply) "jL" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "XCCQMLoad" - }, /obj/effect/turf_decal/stripes/end{ dir = 1 }, +/obj/machinery/conveyor/inverted{ + dir = 6; + id = "XCCQMLoad2" + }, /turf/open/floor/plasteel, /area/centcom/supply) "jM" = ( @@ -3334,20 +3324,9 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/centcom/supply) -"jO" = ( -/obj/machinery/conveyor{ - dir = 1; - id = "XCCQMLoad"; - movedir = 2 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/supply) "jP" = ( /obj/machinery/conveyor_switch/oneway{ - convdir = 1; + dir = 8; id = "XCCQMLoad"; pixel_x = 6 }, @@ -3450,7 +3429,7 @@ /area/centcom/control) "kc" = ( /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/structure/table/wood, /turf/open/floor/plasteel/vault{ dir = 8 @@ -3459,7 +3438,7 @@ "kd" = ( /obj/item/wrench, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/structure/table/wood, /turf/open/floor/plasteel/vault{ dir = 8 @@ -3525,7 +3504,6 @@ height = 50; id = "emergency_syndicate"; name = "Syndicate Auxillary Shuttle Dock"; - turf_type = /turf/open/floor/plating/asteroid/snow; width = 50 }, /turf/open/floor/plating/asteroid/snow/airless, @@ -3843,7 +3821,7 @@ "lb" = ( /obj/structure/table/wood, /obj/machinery/door/window, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ desc = "Talk smack through this."; syndie = 1 }, @@ -3861,7 +3839,7 @@ /area/centcom/control) "ld" = ( /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ desc = "Talk smack through this."; syndie = 1 }, @@ -3879,7 +3857,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/item/device/megaphone, +/obj/item/megaphone, /obj/structure/window/reinforced, /turf/open/floor/plasteel/grimy, /area/centcom/control) @@ -3966,7 +3944,7 @@ /obj/structure/table/reinforced, /obj/item/wrench, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/effect/turf_decal/stripes/line{ dir = 4 }, @@ -3975,7 +3953,7 @@ "lv" = ( /obj/structure/table/reinforced, /obj/item/gun/ballistic/automatic/wt550, -/obj/item/device/flashlight/seclite, +/obj/item/flashlight/seclite, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -4159,7 +4137,7 @@ /obj/structure/chair{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ desc = "Talk smack through this."; pixel_x = -32; syndie = 1 @@ -4299,7 +4277,7 @@ /area/centcom/control) "mn" = ( /obj/structure/table/wood, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ desc = "Talk smack through this."; syndie = 1 }, @@ -4548,7 +4526,7 @@ "mX" = ( /obj/structure/table/reinforced, /obj/item/restraints/handcuffs/cable/zipties, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -4694,7 +4672,7 @@ "nt" = ( /obj/structure/table/wood, /obj/item/storage/photo_album, -/obj/item/device/camera, +/obj/item/camera, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -4994,9 +4972,9 @@ /area/centcom/ferry) "of" = ( /obj/structure/table/wood, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/item/storage/box/handcuffs, -/obj/item/device/flashlight/seclite, +/obj/item/flashlight/seclite, /obj/structure/noticeboard{ pixel_y = 28 }, @@ -5007,7 +4985,7 @@ "og" = ( /obj/structure/table/wood, /obj/item/storage/photo_album, -/obj/item/device/camera, +/obj/item/camera, /obj/structure/reagent_dispensers/peppertank{ pixel_y = 32 }, @@ -5048,7 +5026,7 @@ /area/centcom/ferry) "ol" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/machinery/requests_console{ announcementConsole = 1; department = "Captain's Desk"; @@ -5685,7 +5663,7 @@ /obj/item/cartridge/quartermaster{ pixel_y = 6 }, -/obj/item/device/gps/mining, +/obj/item/gps/mining, /obj/effect/turf_decal/stripes/line{ dir = 6 }, @@ -5742,7 +5720,7 @@ /obj/item/folder/red, /obj/item/book/manual/wiki/security_space_law, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /obj/machinery/airalarm{ dir = 1; pixel_y = -22 @@ -5811,7 +5789,7 @@ /area/centcom/ferry) "qj" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/plasteel/vault, /area/centcom/ferry) "qk" = ( @@ -6159,7 +6137,7 @@ "rk" = ( /obj/structure/table/reinforced, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -6170,7 +6148,7 @@ }, /obj/structure/table/reinforced, /obj/item/clipboard, -/obj/item/device/radio/headset/headset_cent, +/obj/item/radio/headset/headset_cent, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -6268,7 +6246,7 @@ /turf/open/floor/wood, /area/centcom/ferry) "rw" = ( -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/structure/table/reinforced, /turf/open/floor/plasteel/vault{ dir = 8 @@ -6462,7 +6440,7 @@ /obj/structure/table/reinforced, /obj/item/wrench, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -6536,7 +6514,7 @@ /area/syndicate_mothership/control) "sf" = ( /obj/structure/table/wood, -/obj/item/device/paicard, +/obj/item/paicard, /turf/open/floor/plasteel/bar{ dir = 2 }, @@ -6693,7 +6671,7 @@ "sA" = ( /obj/item/clipboard, /obj/structure/table/reinforced, -/obj/item/device/detective_scanner, +/obj/item/detective_scanner, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -6967,21 +6945,6 @@ }, /turf/open/floor/plating/airless, /area/syndicate_mothership/control) -"tj" = ( -/obj/machinery/porta_turret/syndicate/pod, -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/assault_pod) -"tk" = ( -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/assault_pod) -"tl" = ( -/obj/machinery/door/airlock/centcom{ - name = "Assault Pod"; - opacity = 1; - req_access_txt = "150" - }, -/turf/open/floor/plating, -/area/shuttle/assault_pod) "tn" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -7071,7 +7034,7 @@ /obj/structure/table/reinforced, /obj/item/folder/red, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -7170,7 +7133,7 @@ /area/centcom/ferry) "tH" = ( /obj/item/gun/energy/pulse/carbine/loyalpin, -/obj/item/device/flashlight/seclite, +/obj/item/flashlight/seclite, /obj/structure/table/reinforced, /obj/machinery/airalarm{ dir = 1; @@ -7302,21 +7265,6 @@ }, /turf/open/floor/plating/airless, /area/syndicate_mothership/control) -"uf" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/assault_pod) -"ug" = ( -/turf/open/floor/mineral/plastitanium, -/area/shuttle/assault_pod) -"uh" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/assault_pod) "ui" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -7505,7 +7453,7 @@ /area/wizard_station) "uD" = ( /obj/structure/table/wood/fancy, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ desc = "Talk smack through this."; syndie = 1 }, @@ -7542,13 +7490,6 @@ }, /turf/open/floor/mineral/plastitanium, /area/syndicate_mothership/control) -"uN" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/light, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/assault_pod) "uO" = ( /obj/machinery/door/airlock/centcom{ name = "Shuttle Control Office"; @@ -7766,7 +7707,7 @@ /area/syndicate_mothership/control) "vw" = ( /obj/structure/table/wood, -/obj/item/device/syndicatedetonator{ +/obj/item/syndicatedetonator{ desc = "This gaudy button can be used to instantly detonate syndicate bombs that have been activated on the station. It is also fun to press." }, /turf/open/floor/wood, @@ -7776,19 +7717,6 @@ /obj/item/toy/nuke, /turf/open/floor/wood, /area/syndicate_mothership/control) -"vy" = ( -/obj/machinery/door/airlock/centcom{ - aiControlDisabled = 1; - name = "Assault Pod"; - opacity = 1; - req_access_txt = "150" - }, -/turf/open/floor/plating, -/area/shuttle/assault_pod) -"vz" = ( -/obj/machinery/computer/shuttle/syndicate/drop_pod, -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/assault_pod) "vA" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/sign/directions/engineering{ @@ -7916,7 +7844,7 @@ }, /area/centcom/control) "vL" = ( -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /obj/structure/table/reinforced, /turf/open/floor/plasteel/vault{ dir = 8 @@ -8083,13 +8011,6 @@ dir = 2 }, /area/syndicate_mothership/control) -"wq" = ( -/obj/structure/chair, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/assault_pod) "wr" = ( /obj/structure/chair{ dir = 4 @@ -8276,7 +8197,7 @@ /area/wizard_station) "wP" = ( /obj/structure/table/wood/fancy, -/obj/item/device/camera/spooky, +/obj/item/camera/spooky, /turf/open/floor/carpet, /area/wizard_station) "wQ" = ( @@ -8532,20 +8453,17 @@ /turf/open/floor/plating/airless, /area/syndicate_mothership/control) "xN" = ( -/obj/machinery/door/airlock/centcom{ - aiControlDisabled = 1; - name = "Assault Pod"; - opacity = 1; - req_access_txt = "150" - }, -/obj/docking_port/mobile/assault_pod{ +/obj/docking_port/stationary{ + area_type = /area/syndicate_mothership/control; + dir = 1; dwidth = 3; - name = "steel rain"; - port_direction = 4; - preferred_direction = 4 + height = 7; + name = "escape pod loader"; + roundstart_template = /datum/map_template/shuttle/assault_pod/default; + width = 7 }, -/turf/open/floor/plating, -/area/shuttle/assault_pod) +/turf/open/floor/plating/airless, +/area/syndicate_mothership/control) "xO" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -8950,7 +8868,7 @@ "zg" = ( /obj/structure/table/reinforced, /obj/item/gun/ballistic/automatic/wt550, -/obj/item/device/flashlight/seclite, +/obj/item/flashlight/seclite, /obj/structure/noticeboard{ pixel_y = 28 }, @@ -9048,7 +8966,7 @@ "zy" = ( /obj/structure/table, /obj/item/gun/energy/ionrifle{ - pin = /obj/item/device/firing_pin + pin = /obj/item/firing_pin }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -9237,7 +9155,7 @@ "Aj" = ( /obj/structure/table/reinforced, /obj/item/restraints/handcuffs, -/obj/item/device/radio, +/obj/item/radio, /obj/effect/turf_decal/stripes/line{ dir = 9 }, @@ -9363,7 +9281,7 @@ /area/centcom/ferry) "AL" = ( /obj/structure/table/reinforced, -/obj/item/device/flashlight/seclite, +/obj/item/flashlight/seclite, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -9532,7 +9450,7 @@ "Bw" = ( /obj/structure/table/reinforced, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /turf/open/floor/plasteel/grimy, /area/centcom/ferry) "Bx" = ( @@ -9563,7 +9481,7 @@ "BA" = ( /obj/structure/table/reinforced, /obj/item/restraints/handcuffs/cable/zipties, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -9766,7 +9684,7 @@ "BZ" = ( /obj/structure/table/wood, /obj/item/clipboard, -/obj/item/device/radio/headset/headset_cent, +/obj/item/radio/headset/headset_cent, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -9804,7 +9722,7 @@ "Ce" = ( /obj/structure/table/reinforced, /obj/item/restraints/handcuffs/cable/zipties, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -9855,7 +9773,7 @@ /obj/item/folder/red, /obj/item/book/manual/wiki/security_space_law, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -9943,15 +9861,15 @@ }, /area/centcom/ferry) "CA" = ( -/obj/item/device/radio{ +/obj/item/radio{ pixel_x = 5; pixel_y = 5 }, -/obj/item/device/radio{ +/obj/item/radio{ pixel_x = -5; pixel_y = 5 }, -/obj/item/device/radio, +/obj/item/radio, /obj/structure/table/wood, /turf/open/floor/plasteel/vault{ dir = 8 @@ -10025,7 +9943,7 @@ "CH" = ( /obj/structure/table/reinforced, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /obj/machinery/firealarm{ dir = 4; pixel_x = 24 @@ -10302,7 +10220,7 @@ "DA" = ( /obj/structure/table/reinforced, /obj/item/book/manual/wiki/security_space_law, -/obj/item/device/taperecorder, +/obj/item/taperecorder, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -10899,7 +10817,7 @@ /area/centcom/holding) "Fe" = ( /obj/structure/rack, -/obj/item/device/camera, +/obj/item/camera, /turf/open/floor/plasteel/cafeteria, /area/centcom/holding) "Ff" = ( @@ -11048,7 +10966,7 @@ /turf/open/floor/plasteel/cafeteria, /area/centcom/holding) "FC" = ( -/obj/item/device/camera, +/obj/item/camera, /turf/open/floor/plating/beach/sand, /area/centcom/holding) "FD" = ( @@ -12150,7 +12068,7 @@ }, /area/tdome/tdomeobserve) "Is" = ( -/obj/machinery/igniter, +/obj/machinery/igniter/on, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/tdome/arena) @@ -12624,15 +12542,15 @@ }, /area/tdome/tdomeadmin) "JP" = ( -/obj/item/device/radio{ +/obj/item/radio{ pixel_x = 5; pixel_y = 5 }, -/obj/item/device/radio{ +/obj/item/radio{ pixel_x = -5; pixel_y = 5 }, -/obj/item/device/radio, +/obj/item/radio, /obj/structure/table/wood, /turf/open/floor/plasteel/vault{ dir = 8 @@ -12806,7 +12724,7 @@ /obj/item/folder/red, /obj/item/book/manual/wiki/security_space_law, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -12814,7 +12732,7 @@ "Kq" = ( /obj/structure/table/wood, /obj/item/clipboard, -/obj/item/device/radio/headset/headset_cent, +/obj/item/radio/headset/headset_cent, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -13154,7 +13072,7 @@ /area/centcom/evac) "Ln" = ( /obj/structure/table, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/mineral/plastitanium, /area/centcom/evac) "Lo" = ( @@ -13256,7 +13174,7 @@ /area/centcom/evac) "LE" = ( /obj/structure/table, -/obj/item/device/radio/off, +/obj/item/radio/off, /turf/open/floor/mineral/titanium/blue, /area/centcom/evac) "LF" = ( @@ -13284,7 +13202,7 @@ /area/centcom/evac) "LJ" = ( /obj/structure/table, -/obj/item/device/radio/off, +/obj/item/radio/off, /obj/machinery/light{ dir = 4 }, @@ -13452,7 +13370,6 @@ "My" = ( /obj/docking_port/stationary{ area_type = /area/syndicate_mothership; - baseturf_type = /turf/open/floor/plating/asteroid/snow; dheight = 1; dir = 8; dwidth = 12; @@ -13460,7 +13377,6 @@ id = "syndicate_away"; name = "syndicate recon outpost"; roundstart_template = /datum/map_template/shuttle/infiltrator/basic; - turf_type = /turf/open/floor/plating/asteroid/snow; width = 23 }, /turf/open/floor/plating/asteroid/snow/airless, @@ -13564,6 +13480,10 @@ }, /turf/open/floor/plasteel, /area/centcom/control) +"VX" = ( +/obj/effect/landmark/shuttle_import, +/turf/open/space/basic, +/area/space) "Wc" = ( /obj/machinery/door/airlock/centcom{ name = "CentCom Security"; @@ -34918,11 +34838,11 @@ aa ku sl ti -tj -tk -vy -tk -tj +sk +sk +sk +sk +sk xM yk ku @@ -35174,13 +35094,13 @@ hh aa ku sm -tj -tk -uf -ug -uf -tk -tj +sk +sk +sk +sk +sk +sk +sk yl ku aa @@ -35431,13 +35351,13 @@ hh aa ku sn -tk -uf -ug -uh -ug -uf -tk +sk +sk +sk +sk +sk +sk +sk ym ku aa @@ -35688,12 +35608,12 @@ hh aa ku sm -tl -ug -uN -vz -wq -ug +sk +sk +sk +sk +sk +sk xN yl ku @@ -35945,13 +35865,13 @@ hh aa ku sm -tk -uh -ug -uf -ug -uh -tk +sk +sk +sk +sk +sk +sk +sk yl ku aa @@ -36079,7 +35999,7 @@ aa aa aa aa -aa +VX aa aa aa @@ -36202,13 +36122,13 @@ hh aa ku so -tj -tk -uh -ug -uh -tk -tj +sk +sk +sk +sk +sk +sk +sk yl ku aa @@ -36460,11 +36380,11 @@ aa ku sp tn -tj -tk -vy -tk -tj +sk +sk +sk +sk +sk xO xP ku @@ -44622,7 +44542,7 @@ aa aa aa aa -hH +ad aa aa aa @@ -53659,9 +53579,9 @@ iP jy jD jL -jO -jO -jO +jc +jc +jc iO iO iX diff --git a/_maps/map_files/generic/City_of_Cogs.dmm b/_maps/map_files/generic/City_of_Cogs.dmm index 421d03cf9d..e67a829221 100644 --- a/_maps/map_files/generic/City_of_Cogs.dmm +++ b/_maps/map_files/generic/City_of_Cogs.dmm @@ -95,7 +95,7 @@ /area/reebe/city_of_cogs) "au" = ( /obj/structure/table/reinforced/brass, -/obj/item/device/radio/intercom/ratvar, +/obj/item/radio/intercom/ratvar, /turf/open/floor/clockwork/reebe, /area/reebe/city_of_cogs) "av" = ( diff --git a/_maps/shuttles/arrival_box.dmm b/_maps/shuttles/arrival_box.dmm index 1bd1c69d39..c3586bd12a 100644 --- a/_maps/shuttles/arrival_box.dmm +++ b/_maps/shuttles/arrival_box.dmm @@ -137,7 +137,7 @@ /turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "z" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, diff --git a/_maps/shuttles/arrival_delta.dmm b/_maps/shuttles/arrival_delta.dmm index ab6ce0f08a..523b243801 100644 --- a/_maps/shuttles/arrival_delta.dmm +++ b/_maps/shuttles/arrival_delta.dmm @@ -300,7 +300,7 @@ /obj/item/paper_bin, /obj/item/pen, /obj/effect/turf_decal/bot, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_x = -30 }, /turf/open/floor/plasteel, diff --git a/_maps/shuttles/arrival_omega.dmm b/_maps/shuttles/arrival_omega.dmm new file mode 100644 index 0000000000..06dc4b7a1e --- /dev/null +++ b/_maps/shuttles/arrival_omega.dmm @@ -0,0 +1,311 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"b" = ( +/obj/structure/shuttle/engine/propulsion{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/airless, +/area/shuttle/arrival) +"c" = ( +/obj/docking_port/mobile/arrivals{ + dir = 2; + dwidth = 2; + height = 16; + name = "omega arrivals shuttle"; + width = 5 + }, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/arrival) +"d" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/arrival) +"e" = ( +/obj/structure/shuttle/engine/heater{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/airless, +/area/shuttle/arrival) +"f" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/arrival) +"g" = ( +/obj/structure/closet/wardrobe/grey{ + anchored = 1 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/neutral/corner, +/area/shuttle/arrival) +"h" = ( +/obj/structure/closet/emcloset{ + anchored = 1 + }, +/obj/machinery/vending/wallmed{ + pixel_y = 32 + }, +/obj/item/storage/toolbox/emergency, +/obj/item/storage/toolbox/emergency, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/head/hardhat/orange, +/obj/item/clothing/head/hardhat/orange, +/obj/item/clothing/head/hardhat/orange, +/obj/item/clothing/head/hardhat/orange, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/neutral/side, +/area/shuttle/arrival) +"i" = ( +/obj/structure/closet/wardrobe/mixed{ + anchored = 1 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/shuttle/arrival) +"j" = ( +/obj/machinery/door/airlock/shuttle, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating, +/area/shuttle/arrival) +"k" = ( +/obj/effect/turf_decal/caution{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/shuttle/arrival) +"l" = ( +/turf/open/floor/plasteel/neutral, +/area/shuttle/arrival) +"m" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/sign/poster/official/enlist{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/shuttle/arrival) +"n" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/shuttle/arrival) +"o" = ( +/obj/item/twohanded/required/kirbyplants/random, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/shuttle/arrival) +"p" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/arrival) +"q" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/shuttle/arrival) +"r" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/shuttle/arrival) +"s" = ( +/obj/structure/table/reinforced, +/obj/item/radio/intercom{ + pixel_x = -30 + }, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/plasteel, +/area/shuttle/arrival) +"t" = ( +/obj/structure/table/reinforced, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/cell_charger, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/shuttle/arrival) +"u" = ( +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/shuttle/arrival) +"v" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/shuttle/arrival) +"w" = ( +/obj/structure/closet/crate/internals, +/obj/item/storage/firstaid/o2, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/shuttle/arrival) +"x" = ( +/obj/machinery/door/airlock/shuttle/glass, +/turf/open/floor/plasteel, +/area/shuttle/arrival) +"y" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/chair/office/light, +/turf/open/floor/plasteel, +/area/shuttle/arrival) +"z" = ( +/obj/machinery/computer{ + dir = 1; + name = "Shuttle computer" + }, +/turf/open/floor/plasteel, +/area/shuttle/arrival) +"C" = ( +/obj/structure/table/reinforced, +/obj/item/storage/pill_bottle/dice{ + pixel_x = -2; + pixel_y = 8 + }, +/obj/item/toy/cards/deck, +/obj/machinery/requests_console{ + department = "Arrival shuttle"; + name = "Arrival shuttle requests console"; + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/shuttle/arrival) +"F" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/mineral/titanium, +/area/shuttle/arrival) + +(1,1,1) = {" +a +d +f +j +f +p +p +d +p +p +j +F +f +a +a +a +"} +(2,1,1) = {" +b +e +g +k +n +q +q +s +q +q +k +u +f +f +p +p +"} +(3,1,1) = {" +c +d +h +l +l +l +l +l +l +l +l +v +x +y +z +p +"} +(4,1,1) = {" +b +e +i +m +o +r +r +C +r +r +t +w +f +f +p +p +"} +(5,1,1) = {" +a +d +f +f +f +p +p +d +p +p +f +F +f +a +a +a +"} diff --git a/_maps/shuttles/arrival_pubby.dmm b/_maps/shuttles/arrival_pubby.dmm index 7912a7a5ef..12718ff8ff 100644 --- a/_maps/shuttles/arrival_pubby.dmm +++ b/_maps/shuttles/arrival_pubby.dmm @@ -126,7 +126,7 @@ /turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "u" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, diff --git a/_maps/shuttles/assault_pod_default.dmm b/_maps/shuttles/assault_pod_default.dmm new file mode 100644 index 0000000000..b9a49c7d6a --- /dev/null +++ b/_maps/shuttles/assault_pod_default.dmm @@ -0,0 +1,141 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"b" = ( +/obj/machinery/porta_turret/syndicate/pod, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/assault_pod) +"c" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/assault_pod) +"d" = ( +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/assault_pod) +"e" = ( +/obj/machinery/door/airlock/centcom{ + aiControlDisabled = 1; + name = "Assault Pod"; + opacity = 1; + req_access_txt = "150" + }, +/obj/docking_port/mobile/assault_pod{ + dwidth = 3; + name = "steel rain"; + port_direction = 4; + preferred_direction = 4; + timid = 1 + }, +/turf/open/floor/plating, +/area/shuttle/assault_pod) +"h" = ( +/obj/machinery/computer/shuttle/syndicate/drop_pod, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/assault_pod) +"p" = ( +/turf/open/floor/mineral/plastitanium, +/area/shuttle/assault_pod) +"t" = ( +/obj/machinery/door/airlock/centcom{ + aiControlDisabled = 1; + name = "Assault Pod"; + opacity = 1; + req_access_txt = "150" + }, +/turf/open/floor/plating, +/area/shuttle/assault_pod) +"D" = ( +/obj/structure/chair, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/assault_pod) +"H" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/assault_pod) +"L" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/light, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/assault_pod) +"R" = ( +/obj/machinery/door/airlock/centcom{ + name = "Assault Pod"; + opacity = 1; + req_access_txt = "150" + }, +/turf/open/floor/plating, +/area/shuttle/assault_pod) +"V" = ( +/turf/template_noop, +/area/template_noop) + +(1,1,1) = {" +V +b +d +t +d +b +V +"} +(2,1,1) = {" +b +d +c +p +c +d +b +"} +(3,1,1) = {" +d +c +p +H +p +c +d +"} +(4,1,1) = {" +R +p +L +h +D +p +e +"} +(5,1,1) = {" +d +H +p +c +p +H +d +"} +(6,1,1) = {" +b +d +H +p +H +d +b +"} +(7,1,1) = {" +V +b +d +t +d +b +V +"} diff --git a/_maps/shuttles/cargo_box.dmm b/_maps/shuttles/cargo_box.dmm index e4da4bf228..fb59a8082f 100644 --- a/_maps/shuttles/cargo_box.dmm +++ b/_maps/shuttles/cargo_box.dmm @@ -55,7 +55,7 @@ /area/shuttle/supply) "j" = ( /obj/machinery/conveyor{ - dir = 4; + dir = 8; id = "QMLoad" }, /obj/machinery/door/poddoor{ diff --git a/_maps/shuttles/emergency_arena.dmm b/_maps/shuttles/emergency_arena.dmm index b20ffddbc6..1314b8a732 100644 --- a/_maps/shuttles/emergency_arena.dmm +++ b/_maps/shuttles/emergency_arena.dmm @@ -65,6 +65,10 @@ /obj/structure/healingfountain, /turf/open/indestructible/necropolis/air, /area/shuttle/escape/arena) +"z" = ( +/obj/effect/landmark/shuttle_arena_safe, +/turf/open/indestructible/necropolis/air, +/area/shuttle/escape/arena) (1,1,1) = {" a @@ -309,16 +313,16 @@ h h j j +z j j -j -j +z j h +z j j -j -j +z j j j @@ -465,16 +469,16 @@ h h j j +z j j +z j j -j -j -j +z j h -j +z j j j diff --git a/_maps/shuttles/emergency_asteroid.dmm b/_maps/shuttles/emergency_asteroid.dmm index ef408d147f..a94fd27655 100644 --- a/_maps/shuttles/emergency_asteroid.dmm +++ b/_maps/shuttles/emergency_asteroid.dmm @@ -97,7 +97,7 @@ /obj/structure/chair{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_x = -28 @@ -145,7 +145,7 @@ /area/shuttle/escape) "aM" = ( /obj/structure/closet/emcloset, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 23 @@ -198,7 +198,7 @@ /turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aW" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 23 @@ -348,7 +348,7 @@ /obj/structure/chair{ dir = 1 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -377,7 +377,7 @@ /turf/open/floor/mineral/titanium, /area/shuttle/escape) "bC" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; pixel_x = -28 diff --git a/_maps/shuttles/emergency_bar.dmm b/_maps/shuttles/emergency_bar.dmm index ef347ed61d..eaa525739f 100644 --- a/_maps/shuttles/emergency_bar.dmm +++ b/_maps/shuttles/emergency_bar.dmm @@ -21,7 +21,7 @@ /area/shuttle/escape) "af" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, +/obj/item/flashlight/lamp/green, /turf/open/floor/carpet, /area/shuttle/escape) "ag" = ( @@ -102,7 +102,7 @@ /turf/open/floor/carpet, /area/shuttle/escape) "as" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -434,7 +434,7 @@ /area/shuttle/escape) "bI" = ( /obj/structure/table/wood/bar, -/obj/item/device/instrument/guitar, +/obj/item/instrument/guitar, /turf/open/floor/plasteel/bar, /area/shuttle/escape) "bJ" = ( diff --git a/_maps/shuttles/emergency_box.dmm b/_maps/shuttles/emergency_box.dmm index 1b675f0538..d385cf1d18 100644 --- a/_maps/shuttles/emergency_box.dmm +++ b/_maps/shuttles/emergency_box.dmm @@ -80,7 +80,7 @@ /turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "as" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, diff --git a/_maps/shuttles/emergency_cere.dmm b/_maps/shuttles/emergency_cere.dmm index 3d6550bdca..ea9dcd46ea 100644 --- a/_maps/shuttles/emergency_cere.dmm +++ b/_maps/shuttles/emergency_cere.dmm @@ -208,7 +208,7 @@ /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-22" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -230,7 +230,7 @@ /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-22" }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -562,7 +562,7 @@ "bG" = ( /obj/structure/table, /obj/item/storage/box/cups, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_y = 27 @@ -639,7 +639,7 @@ /turf/open/floor/plasteel/neutral/side, /area/shuttle/escape) "bU" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_y = 27 @@ -960,7 +960,7 @@ /turf/open/floor/plasteel/whiteblue/side, /area/shuttle/escape) "cM" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -1134,7 +1134,7 @@ /turf/open/floor/plasteel/yellow/side, /area/shuttle/escape) "dm" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, diff --git a/_maps/shuttles/emergency_clown.dmm b/_maps/shuttles/emergency_clown.dmm index 83aacc5cb2..6f31726964 100644 --- a/_maps/shuttles/emergency_clown.dmm +++ b/_maps/shuttles/emergency_clown.dmm @@ -80,7 +80,7 @@ /turf/open/floor/bluespace, /area/shuttle/escape) "ap" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -165,7 +165,7 @@ /area/shuttle/escape) "aE" = ( /obj/structure/table, -/obj/item/device/multitool/ai_detect, +/obj/item/multitool/ai_detect, /turf/open/floor/noslip, /area/shuttle/escape) "aF" = ( diff --git a/_maps/shuttles/emergency_cramped.dmm b/_maps/shuttles/emergency_cramped.dmm index 6b5893ebd2..6bf3ba0f9e 100644 --- a/_maps/shuttles/emergency_cramped.dmm +++ b/_maps/shuttles/emergency_cramped.dmm @@ -45,7 +45,7 @@ "i" = ( /obj/structure/table/reinforced, /obj/structure/window/reinforced, -/obj/item/device/gps{ +/obj/item/gps{ gpstag = "STV5" }, /turf/open/floor/plasteel/dark, diff --git a/_maps/shuttles/emergency_delta.dmm b/_maps/shuttles/emergency_delta.dmm index ab1e589fa9..926d079549 100644 --- a/_maps/shuttles/emergency_delta.dmm +++ b/_maps/shuttles/emergency_delta.dmm @@ -225,7 +225,7 @@ /turf/open/floor/plasteel/cmo, /area/shuttle/escape) "at" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; pixel_y = 58 @@ -329,7 +329,7 @@ /obj/structure/chair{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -479,7 +479,7 @@ /area/shuttle/escape) "ba" = ( /obj/structure/reagent_dispensers/fueltank, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, @@ -511,7 +511,7 @@ pixel_x = -4; pixel_y = 3 }, -/obj/item/device/healthanalyzer{ +/obj/item/healthanalyzer{ pixel_x = 3; pixel_y = 3 }, @@ -555,17 +555,17 @@ }, /obj/item/storage/toolbox/emergency, /obj/item/storage/toolbox/emergency, -/obj/item/device/flashlight/flare{ +/obj/item/flashlight/flare{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/flashlight/flare{ +/obj/item/flashlight/flare{ pixel_x = -6; pixel_y = -2 }, /obj/item/crowbar, /obj/item/wrench, -/obj/item/device/radio, +/obj/item/radio, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/shuttle/escape) @@ -750,7 +750,7 @@ /turf/open/floor/plasteel/neutral/corner, /area/shuttle/escape) "bJ" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 58 }, @@ -831,7 +831,7 @@ "bV" = ( /obj/structure/table/reinforced, /obj/item/storage/box/zipties, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, @@ -912,7 +912,7 @@ }, /area/shuttle/escape) "cg" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; pixel_y = 58 @@ -992,7 +992,7 @@ /obj/structure/table/reinforced, /obj/item/folder/red, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/plasteel/vault, /area/shuttle/escape) "cs" = ( diff --git a/_maps/shuttles/emergency_discoinferno.dmm b/_maps/shuttles/emergency_discoinferno.dmm index d1dfd5752e..025a7cf743 100644 --- a/_maps/shuttles/emergency_discoinferno.dmm +++ b/_maps/shuttles/emergency_discoinferno.dmm @@ -11,7 +11,7 @@ /area/shuttle/escape) "d" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, +/obj/item/flashlight/lamp/green, /turf/open/floor/mineral/gold, /area/shuttle/escape) "e" = ( diff --git a/_maps/shuttles/emergency_goon.dmm b/_maps/shuttles/emergency_goon.dmm index a9f9a5b307..24f2a4179c 100644 --- a/_maps/shuttles/emergency_goon.dmm +++ b/_maps/shuttles/emergency_goon.dmm @@ -108,7 +108,7 @@ /area/shuttle/escape) "z" = ( /obj/structure/table/reinforced, -/obj/item/device/radio, +/obj/item/radio, /obj/structure/window/reinforced{ dir = 1; layer = 2.9 diff --git a/_maps/shuttles/emergency_imfedupwiththisworld.dmm b/_maps/shuttles/emergency_imfedupwiththisworld.dmm index 8a33387a9d..fe7addf784 100644 --- a/_maps/shuttles/emergency_imfedupwiththisworld.dmm +++ b/_maps/shuttles/emergency_imfedupwiththisworld.dmm @@ -33,7 +33,7 @@ /area/shuttle/escape) "g" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, +/obj/item/flashlight/lamp, /turf/open/floor/carpet, /area/shuttle/escape) "h" = ( diff --git a/_maps/shuttles/emergency_meta.dmm b/_maps/shuttles/emergency_meta.dmm index ede77a1499..3776887e2a 100644 --- a/_maps/shuttles/emergency_meta.dmm +++ b/_maps/shuttles/emergency_meta.dmm @@ -69,7 +69,7 @@ /turf/open/floor/mineral/titanium, /area/shuttle/escape) "as" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_y = 27 @@ -292,7 +292,7 @@ pixel_x = -2; pixel_y = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 2; name = "Station Intercom (General)"; pixel_y = -31 @@ -309,7 +309,7 @@ /turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aS" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 2; name = "Station Intercom (General)"; pixel_y = -31 @@ -532,7 +532,7 @@ pixel_x = -4; pixel_y = 2 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 2; name = "Station Intercom (General)"; pixel_y = -31 @@ -581,7 +581,7 @@ }, /obj/item/clothing/gloves/color/latex, /obj/item/clothing/mask/surgical, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 2; name = "Station Intercom (General)"; pixel_x = -27 @@ -640,17 +640,17 @@ }, /obj/item/storage/toolbox/emergency, /obj/item/storage/toolbox/emergency, -/obj/item/device/flashlight/flare{ +/obj/item/flashlight/flare{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/flashlight/flare{ +/obj/item/flashlight/flare{ pixel_x = -6; pixel_y = -2 }, /obj/item/crowbar, /obj/item/wrench, -/obj/item/device/radio, +/obj/item/radio, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/shuttle/escape) @@ -667,7 +667,7 @@ pixel_x = -4; pixel_y = 3 }, -/obj/item/device/healthanalyzer{ +/obj/item/healthanalyzer{ pixel_x = 3; pixel_y = 3 }, @@ -681,7 +681,7 @@ /turf/open/floor/plasteel, /area/shuttle/escape) "bQ" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ dir = 2; name = "Station Intercom (General)"; pixel_y = -31 diff --git a/_maps/shuttles/emergency_mini.dmm b/_maps/shuttles/emergency_mini.dmm index 706b2b9a23..f8f27ce57e 100644 --- a/_maps/shuttles/emergency_mini.dmm +++ b/_maps/shuttles/emergency_mini.dmm @@ -224,7 +224,7 @@ /turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "L" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = 24 }, diff --git a/_maps/shuttles/emergency_narnar.dmm b/_maps/shuttles/emergency_narnar.dmm index 0f24d118ed..509a5bfa6b 100644 --- a/_maps/shuttles/emergency_narnar.dmm +++ b/_maps/shuttles/emergency_narnar.dmm @@ -76,7 +76,7 @@ /turf/open/floor/plasteel/cult, /area/shuttle/escape) "o" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, diff --git a/_maps/shuttles/emergency_omega.dmm b/_maps/shuttles/emergency_omega.dmm index a1f061e307..36e68e1119 100644 --- a/_maps/shuttles/emergency_omega.dmm +++ b/_maps/shuttles/emergency_omega.dmm @@ -31,7 +31,7 @@ /obj/structure/chair{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 24 }, @@ -232,7 +232,7 @@ pixel_x = -3; pixel_y = 3 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -485,7 +485,7 @@ pixel_x = -4; pixel_y = 3 }, -/obj/item/device/healthanalyzer{ +/obj/item/healthanalyzer{ pixel_x = 3; pixel_y = 3 }, @@ -520,7 +520,7 @@ /obj/machinery/sleeper{ dir = 8 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26 }, @@ -557,17 +557,17 @@ }, /obj/item/storage/toolbox/emergency, /obj/item/storage/toolbox/emergency, -/obj/item/device/flashlight/flare{ +/obj/item/flashlight/flare{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/flashlight/flare{ +/obj/item/flashlight/flare{ pixel_x = -6; pixel_y = -2 }, /obj/item/crowbar, /obj/item/wrench, -/obj/item/device/radio, +/obj/item/radio, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -606,7 +606,7 @@ /obj/structure/sign/warning/nosmoking/circle{ pixel_x = -32 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, diff --git a/_maps/shuttles/emergency_raven.dmm b/_maps/shuttles/emergency_raven.dmm index ea8bb30f86..60f81677db 100644 --- a/_maps/shuttles/emergency_raven.dmm +++ b/_maps/shuttles/emergency_raven.dmm @@ -50,7 +50,7 @@ "ak" = ( /obj/structure/table/reinforced, /obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash, +/obj/item/assembly/flash, /turf/open/floor/plasteel/vault, /area/shuttle/escape) "al" = ( diff --git a/_maps/shuttles/emergency_russiafightpit.dmm b/_maps/shuttles/emergency_russiafightpit.dmm index 85e0e00dbe..795e8ff141 100644 --- a/_maps/shuttles/emergency_russiafightpit.dmm +++ b/_maps/shuttles/emergency_russiafightpit.dmm @@ -82,7 +82,7 @@ /turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "ap" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, diff --git a/_maps/shuttles/emergency_scrapheap.dmm b/_maps/shuttles/emergency_scrapheap.dmm index 251b1f6720..09603df29a 100644 --- a/_maps/shuttles/emergency_scrapheap.dmm +++ b/_maps/shuttles/emergency_scrapheap.dmm @@ -65,7 +65,7 @@ /turf/open/floor/carpet, /area/shuttle/escape) "an" = ( -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 }, @@ -200,7 +200,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = 23 }, diff --git a/_maps/shuttles/emergency_supermatter.dmm b/_maps/shuttles/emergency_supermatter.dmm index 796997b361..cea0df4757 100644 --- a/_maps/shuttles/emergency_supermatter.dmm +++ b/_maps/shuttles/emergency_supermatter.dmm @@ -112,7 +112,7 @@ /turf/open/floor/plating, /area/shuttle/escape) "aB" = ( -/obj/machinery/power/supermatter_shard/hugbox{ +/obj/machinery/power/supermatter_crystal/shard/hugbox{ anchored = 1; base_icon_state = "darkmatter"; explosion_power = 20; @@ -210,7 +210,7 @@ /turf/open/floor/plating/airless, /area/shuttle/escape) "aV" = ( -/obj/machinery/power/supermatter_shard/hugbox{ +/obj/machinery/power/supermatter_crystal/shard/hugbox{ anchored = 1; name = "anchored supermatter shard" }, diff --git a/_maps/shuttles/escape_pod_default.dmm b/_maps/shuttles/escape_pod_default.dmm new file mode 100644 index 0000000000..14b87a3fa2 --- /dev/null +++ b/_maps/shuttles/escape_pod_default.dmm @@ -0,0 +1,71 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"B" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_1) +"G" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/obj/machinery/computer/shuttle/pod{ + pixel_x = -32 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) +"N" = ( +/obj/machinery/door/airlock/titanium{ + name = "Escape Pod Airlock" + }, +/obj/docking_port/mobile/pod{ + port_direction = 2; + timid = 1; + dwidth = 1; + width = 3; + height = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) +"Q" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/pod_1) +"U" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/item/radio/intercom{ + pixel_x = 25 + }, +/obj/item/storage/pod{ + pixel_x = -26 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) +"Z" = ( +/obj/structure/shuttle/engine/propulsion/burst, +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_1) + +(1,1,1) = {" +B +B +B +Z +"} +(2,1,1) = {" +Q +G +U +N +"} +(3,1,1) = {" +B +B +B +Z +"} diff --git a/_maps/shuttles/escape_pod_large.dmm b/_maps/shuttles/escape_pod_large.dmm new file mode 100644 index 0000000000..4900045801 --- /dev/null +++ b/_maps/shuttles/escape_pod_large.dmm @@ -0,0 +1,129 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"h" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/item/storage/pod{ + pixel_x = -24 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) +"r" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) +"u" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/pod_1) +"A" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/item/radio/intercom{ + pixel_x = 30 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) +"B" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_1) +"C" = ( +/obj/machinery/computer/shuttle/monastery_shuttle, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) +"H" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) +"J" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) +"L" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) +"M" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) +"O" = ( +/obj/machinery/door/airlock/titanium{ + name = "Shuttle Airlock" + }, +/obj/docking_port/mobile/pod{ + dwidth = 2; + height = 6; + launch_status = 0; + port_direction = 2; + timid = 1; + width = 5 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) +"W" = ( +/turf/template_noop, +/area/template_noop) +"Z" = ( +/obj/structure/shuttle/engine/propulsion/burst, +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_1) + +(1,1,1) = {" +W +B +B +u +B +Z +"} +(2,1,1) = {" +B +B +J +L +h +Z +"} +(3,1,1) = {" +u +C +r +r +r +O +"} +(4,1,1) = {" +B +B +M +H +A +Z +"} +(5,1,1) = {" +W +B +B +u +B +Z +"} diff --git a/_maps/shuttles/ferry_lighthouse.dmm b/_maps/shuttles/ferry_lighthouse.dmm index b94e82c049..793b793531 100644 --- a/_maps/shuttles/ferry_lighthouse.dmm +++ b/_maps/shuttles/ferry_lighthouse.dmm @@ -142,7 +142,7 @@ /area/shuttle/transport) "aK" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, +/obj/item/flashlight/lamp/green, /turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "aL" = ( @@ -263,10 +263,9 @@ /turf/open/floor/wood, /area/shuttle/transport) "bg" = ( -/obj/machinery/conveyor{ +/obj/machinery/conveyor/inverted{ dir = 10; - id = "garbage"; - verted = -1 + id = "garbage" }, /turf/open/floor/wood, /area/shuttle/transport) diff --git a/_maps/shuttles/infiltrator_basic.dmm b/_maps/shuttles/infiltrator_basic.dmm index 0367ef9352..5d21fad7f8 100644 --- a/_maps/shuttles/infiltrator_basic.dmm +++ b/_maps/shuttles/infiltrator_basic.dmm @@ -527,7 +527,7 @@ /obj/item/screwdriver{ pixel_y = 9 }, -/obj/item/device/assembly/voice{ +/obj/item/assembly/voice{ pixel_y = 3 }, /obj/structure/table/reinforced, @@ -535,7 +535,7 @@ /area/shuttle/syndicate/armory) "bz" = ( /obj/item/wrench, -/obj/item/device/assembly/infra, +/obj/item/assembly/infra, /obj/structure/table/reinforced, /obj/machinery/light{ dir = 1 @@ -543,13 +543,13 @@ /turf/open/floor/plasteel/dark, /area/shuttle/syndicate/armory) "bA" = ( -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/signaler, +/obj/item/assembly/signaler, +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, -/obj/item/device/assembly/prox_sensor{ +/obj/item/assembly/prox_sensor{ pixel_x = -8; pixel_y = 4 }, @@ -560,7 +560,7 @@ /obj/item/weldingtool/largetank{ pixel_y = 3 }, -/obj/item/device/multitool, +/obj/item/multitool, /obj/structure/table/reinforced, /turf/open/floor/plasteel/dark, /area/shuttle/syndicate/armory) @@ -746,10 +746,10 @@ /turf/open/floor/plasteel/vault, /area/shuttle/syndicate/hallway) "ce" = ( -/obj/item/device/sbeacondrop/bomb{ +/obj/item/sbeacondrop/bomb{ pixel_y = 5 }, -/obj/item/device/sbeacondrop/bomb, +/obj/item/sbeacondrop/bomb, /obj/structure/table/reinforced, /turf/open/floor/plasteel/vault/side, /area/shuttle/syndicate/armory) @@ -791,7 +791,7 @@ dir = 1 }, /obj/structure/table/reinforced, -/obj/item/device/aicard, +/obj/item/aicard, /turf/open/floor/plasteel/vault/side, /area/shuttle/syndicate/armory) "cj" = ( diff --git a/_maps/shuttles/pirate_default.dmm b/_maps/shuttles/pirate_default.dmm new file mode 100644 index 0000000000..3c9ee504eb --- /dev/null +++ b/_maps/shuttles/pirate_default.dmm @@ -0,0 +1,2323 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/template_noop, +/area/template_noop) +"ab" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "piratebridge" + }, +/obj/structure/grille, +/obj/structure/window/plastitanium, +/turf/open/floor/plating, +/area/shuttle/pirate) +"ac" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/shuttle/pirate) +"ad" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/computer/shuttle/pirate, +/turf/open/floor/plasteel/dark, +/area/shuttle/pirate) +"ae" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "piratebridge"; + name = "Bridge Shutters Control"; + pixel_y = -5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/radio/intercom{ + pixel_y = 5 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/pirate) +"af" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/shuttle/pirate) +"ag" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/pirate) +"ah" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/computer/monitor{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/pirate) +"ai" = ( +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/pirate) +"aj" = ( +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/pirate) +"ak" = ( +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/shuttle_scrambler, +/turf/open/floor/plasteel/dark, +/area/shuttle/pirate) +"al" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -24; + req_access = null + }, +/obj/structure/chair{ + tag = "icon-chair (WEST)"; + icon_state = "chair"; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/shuttle/pirate) +"am" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/dark, +/area/shuttle/pirate) +"an" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/shuttle/pirate) +"ao" = ( +/obj/machinery/light/small, +/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/pirate{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/pirate) +"ap" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mob_spawn/human/pirate{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/pirate) +"aq" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + pixel_y = 24; + req_access = null + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/pirate) +"ar" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mob_spawn/human/pirate/gunner{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/pirate) +"as" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/command{ + name = "Bridge" + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/pirate) +"at" = ( +/obj/structure/closet/crate/freezer/blood, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white, +/area/shuttle/pirate) +"au" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/airalarm{ + pixel_y = 24; + req_access = null + }, +/obj/machinery/sleeper, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/white, +/area/shuttle/pirate) +"av" = ( +/obj/machinery/iv_drip, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/white, +/area/shuttle/pirate) +"aw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mob_spawn/human/pirate/captain, +/turf/open/floor/wood, +/area/shuttle/pirate) +"ax" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock{ + name = "Crew Cabin" + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/pirate) +"ay" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/toolbox/emergency, +/obj/item/extinguisher, +/turf/open/floor/plasteel/dark, +/area/shuttle/pirate) +"az" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/shuttle/pirate) +"aA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/shuttle/pirate) +"aB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + pixel_y = 24; + req_access = null + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/pirate) +"aC" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/paper_bin{ + pixel_x = -1; + pixel_y = 6 + }, +/obj/item/folder, +/obj/item/pen, +/turf/open/floor/plasteel/dark, +/area/shuttle/pirate) +"aD" = ( +/obj/structure/sign/departments/medbay/alt, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/pirate) +"aE" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/shuttle/pirate) +"aF" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/shuttle/pirate) +"aG" = ( +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/shuttle/pirate) +"aH" = ( +/obj/structure/closet/crate/freezer/surplus_limbs, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/shuttle/pirate) +"aI" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/latex, +/obj/item/surgical_drapes, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/shuttle/pirate) +"aJ" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -24; + req_access = null + }, +/obj/structure/closet/secure_closet/personal, +/turf/open/floor/wood, +/area/shuttle/pirate) +"aK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/wood, +/area/shuttle/pirate) +"aL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock{ + name = "Captain's Quarters" + }, +/turf/open/floor/wood, +/area/shuttle/pirate) +"aM" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + pixel_y = 24; + req_access = null + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"aN" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"aO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/shuttle/pirate) +"aP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/command{ + name = "Bridge" + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/pirate) +"aQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/shuttle/pirate) +"aR" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/shuttle/pirate) +"aS" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/shuttle/pirate) +"aT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/pirate) +"aU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/command{ + name = "Bridge" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/shuttle/pirate) +"aV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/shuttle/pirate) +"aW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/shuttle/pirate) +"aX" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/shuttle/pirate) +"aY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/shuttle/pirate) +"aZ" = ( +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/shuttle/pirate) +"ba" = ( +/obj/structure/table, +/obj/item/circular_saw, +/obj/item/scalpel{ + pixel_y = 12 + }, +/obj/item/cautery{ + pixel_x = 4 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white, +/area/shuttle/pirate) +"bb" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/box/matches, +/obj/item/clothing/mask/cigarette/cigar, +/turf/open/floor/wood, +/area/shuttle/pirate) +"bc" = ( +/obj/machinery/button/door{ + id = "piratevault"; + name = "Vault Bolt Control"; + normaldoorcontrol = 1; + pixel_x = -8; + pixel_y = -24; + specialfunctions = 4 + }, +/obj/machinery/turretid{ + icon_state = "control_kill"; + lethal = 1; + locked = 0; + pixel_x = 4; + pixel_y = -24; + req_access = null + }, +/obj/structure/chair{ + tag = "icon-chair (WEST)"; + icon_state = "chair"; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/shuttle/pirate) +"bd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/shuttle/pirate) +"be" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/secure_closet/personal, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"bf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/secure_closet/personal, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"bg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/vault{ + id_tag = "piratevault"; + name = "Vault" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod/dark, +/area/shuttle/pirate) +"bh" = ( +/obj/structure/table, +/obj/item/storage/firstaid/brute{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/fire, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white/side{ + dir = 10 + }, +/area/shuttle/pirate) +"bi" = ( +/obj/machinery/light/small, +/obj/structure/table, +/obj/item/storage/box/syringes, +/obj/item/reagent_containers/glass/beaker{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/reagent_containers/glass/beaker{ + pixel_x = 3 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white/side, +/area/shuttle/pirate) +"bj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white/side, +/area/shuttle/pirate) +"bk" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white/side, +/area/shuttle/pirate) +"bl" = ( +/obj/structure/table/optable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white/side{ + dir = 6 + }, +/area/shuttle/pirate) +"bm" = ( +/obj/structure/table, +/obj/item/retractor, +/obj/item/hemostat, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white, +/area/shuttle/pirate) +"bn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock{ + name = "Crew Quarters" + }, +/turf/open/floor/plasteel, +/area/shuttle/pirate) +"bo" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod/dark, +/area/shuttle/pirate/vault) +"bp" = ( +/obj/machinery/airalarm{ + pixel_y = 24; + req_access = null + }, +/turf/open/floor/pod/dark, +/area/shuttle/pirate/vault) +"bq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/pod/dark, +/area/shuttle/pirate/vault) +"br" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 28 + }, +/turf/open/floor/pod/dark, +/area/shuttle/pirate/vault) +"bs" = ( +/obj/machinery/door/airlock/medical/glass{ + name = "Medbay" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/shuttle/pirate) +"bt" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_x = -32 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/suit_storage_unit/pirate, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/shuttle/pirate) +"bu" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"bv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"bw" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/storage/belt/utility, +/obj/item/radio/off, +/obj/item/radio/off, +/turf/open/floor/plasteel, +/area/shuttle/pirate) +"bx" = ( +/obj/structure/closet/crate, +/obj/item/grenade/smokebomb{ + pixel_x = -4 + }, +/obj/item/grenade/smokebomb{ + pixel_x = 2 + }, +/turf/open/floor/pod/light, +/area/shuttle/pirate/vault) +"by" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/shield/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/shield/riot, +/turf/open/floor/pod/light, +/area/shuttle/pirate/vault) +"bz" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/gun/energy/laser{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/gun/energy/laser, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod/light, +/area/shuttle/pirate/vault) +"bA" = ( +/obj/structure/closet/crate, +/obj/item/storage/bag/money, +/turf/open/floor/pod/light, +/area/shuttle/pirate/vault) +"bB" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/storage/belt/utility, +/obj/item/radio/off, +/obj/item/radio/off, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"bC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/shuttle/pirate) +"bD" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/shuttle/pirate) +"bE" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_x = 32 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/suit_storage_unit/pirate, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/shuttle/pirate) +"bF" = ( +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/external{ + id_tag = "pirateportexternal" + }, +/obj/docking_port/mobile/pirate{ + callTime = 100; + dheight = 0; + dir = 4; + dwidth = 11; + height = 21; + id = "pirateship"; + launch_status = 0; + movement_force = list("KNOCKDOWN" = 0, "THROW" = 0); + name = "Pirate Ship"; + port_direction = 8; + preferred_direction = 1; + timid = 0; + width = 23 + }, +/obj/docking_port/stationary{ + dir = 4; + dwidth = 11; + height = 21; + id = "pirateship_home"; + name = "Deep Space"; + width = 23 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plating, +/area/shuttle/pirate) +"bG" = ( +/turf/open/floor/plating, +/area/shuttle/pirate) +"bH" = ( +/obj/machinery/door/airlock/external, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/shuttle/pirate) +"bI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/shuttle/pirate) +"bJ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"bK" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24; + req_access = null; + req_access_txt = "152" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/storage/toolbox/mechanical, +/obj/item/multitool, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"bL" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/structure/closet/crate, +/obj/item/storage/box/lethalshot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod/light, +/area/shuttle/pirate/vault) +"bM" = ( +/turf/open/floor/pod/dark, +/area/shuttle/pirate/vault) +"bN" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/gun/ballistic/shotgun/automatic/combat, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod/light, +/area/shuttle/pirate/vault) +"bO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/pod/dark, +/area/shuttle/pirate/vault) +"bP" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/gun/energy/laser{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/gun/energy/laser, +/turf/open/floor/pod/light, +/area/shuttle/pirate/vault) +"bQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/stack/sheet/mineral/gold{ + amount = 3; + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/stack/sheet/mineral/silver{ + amount = 8; + pixel_x = 2; + pixel_y = -1 + }, +/turf/open/floor/pod/light, +/area/shuttle/pirate/vault) +"bR" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -24; + req_access = null + }, +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weldingtool/largetank, +/obj/item/storage/toolbox/electrical, +/obj/item/clothing/head/welding{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"bS" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"bT" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"bU" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plating, +/area/shuttle/pirate) +"bV" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/shuttle/pirate) +"bW" = ( +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/external{ + id_tag = "piratestarboardexternal" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/shuttle/pirate) +"bX" = ( +/obj/structure/closet/emcloset/anchored, +/obj/machinery/button/door{ + id = "pirateportexternal"; + name = "External Bolt Control"; + normaldoorcontrol = 1; + pixel_x = -24; + specialfunctions = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/shuttle/pirate) +"bY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"bZ" = ( +/obj/structure/closet/crate, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod/light, +/area/shuttle/pirate/vault) +"ca" = ( +/obj/structure/closet/crate, +/obj/item/coin/gold, +/obj/item/coin/gold, +/obj/item/coin/silver, +/obj/item/coin/silver, +/obj/item/coin/silver, +/obj/item/coin/silver, +/obj/item/coin/silver, +/obj/item/coin/gold, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod/light, +/area/shuttle/pirate/vault) +"cb" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/bot, +/obj/item/mop, +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"cc" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/shuttle/pirate) +"cd" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"ce" = ( +/obj/structure/closet/emcloset/anchored, +/obj/machinery/button/door{ + id = "piratestarboardexternal"; + name = "External Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 24; + specialfunctions = 4 + }, +/turf/open/floor/plating, +/area/shuttle/pirate) +"cf" = ( +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks/beer{ + dir = 4 + }, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bar, +/area/shuttle/pirate) +"cg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/public/glass{ + name = "Bar" + }, +/turf/open/floor/plasteel, +/area/shuttle/pirate) +"ch" = ( +/obj/structure/table, +/obj/machinery/door/window/southleft{ + base_state = "left"; + dir = 1; + icon_state = "left"; + name = "Explosive Ordinance" + }, +/obj/item/grenade/plastic/x4{ + pixel_x = -5 + }, +/obj/item/grenade/plastic/x4{ + pixel_x = 3 + }, +/obj/item/grenade/plastic/x4{ + pixel_x = 11 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod/light, +/area/shuttle/pirate/vault) +"ci" = ( +/obj/structure/table, +/obj/item/melee/transforming/energy/sword/pirate, +/obj/item/melee/transforming/energy/sword/pirate{ + pixel_y = 12 + }, +/obj/item/melee/transforming/energy/sword/pirate{ + pixel_x = 12; + pixel_y = 7 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod/light, +/area/shuttle/pirate/vault) +"cj" = ( +/obj/machinery/light/small, +/obj/effect/turf_decal/stripes/end{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/loot_locator, +/turf/open/floor/pod/light, +/area/shuttle/pirate/vault) +"ck" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod/light, +/area/shuttle/pirate/vault) +"cl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/telecomms/relay, +/turf/open/floor/pod/light, +/area/shuttle/pirate/vault) +"cm" = ( +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"cn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/pirate) +"co" = ( +/obj/structure/toilet{ + pixel_y = 20 + }, +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/showroomfloor, +/area/shuttle/pirate) +"cp" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restrooms" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/showroomfloor, +/area/shuttle/pirate) +"cq" = ( +/obj/machinery/airalarm{ + pixel_y = 24; + req_access = null + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bar, +/area/shuttle/pirate) +"cr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bar, +/area/shuttle/pirate) +"cs" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bar, +/area/shuttle/pirate) +"ct" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bar, +/area/shuttle/pirate) +"cu" = ( +/obj/machinery/atmospherics/components/unary/tank/nitrogen{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/shuttle/pirate) +"cv" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4; + name = "N2 Out"; + target_pressure = 4500 + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"cw" = ( +/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"cx" = ( +/obj/machinery/airalarm{ + pixel_y = 24; + req_access = null + }, +/obj/structure/table, +/obj/item/storage/box/lights/mixed{ + pixel_x = -4 + }, +/obj/item/storage/belt/utility{ + pixel_x = 4 + }, +/obj/item/analyzer{ + pixel_x = 3; + pixel_y = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"cy" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/shuttle/pirate) +"cz" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/shuttle/pirate) +"cA" = ( +/obj/structure/table/reinforced, +/obj/item/lighter, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bar, +/area/shuttle/pirate) +"cB" = ( +/obj/structure/chair/stool/bar, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bar, +/area/shuttle/pirate) +"cC" = ( +/turf/open/floor/plasteel/bar, +/area/shuttle/pirate) +"cD" = ( +/obj/structure/closet/crate, +/obj/item/storage/box/donkpockets{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/storage/box/donkpockets, +/obj/item/storage/fancy/donut_box, +/obj/item/reagent_containers/food/snacks/cookie, +/obj/item/reagent_containers/food/snacks/cookie{ + pixel_x = -6; + pixel_y = -6 + }, +/obj/item/reagent_containers/food/snacks/chocolatebar, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bar, +/area/shuttle/pirate) +"cE" = ( +/obj/machinery/computer/turbine_computer{ + dir = 4; + id = "pirateturbine" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/area/shuttle/pirate) +"cF" = ( +/obj/structure/chair/stool, +/obj/machinery/airalarm{ + pixel_y = 24; + req_access = null + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/shuttle/pirate) +"cG" = ( +/obj/machinery/power/smes{ + capacity = 9e+006; + charge = 10000 + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/shuttle/pirate) +"cH" = ( +/obj/structure/chair/stool, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Pirate Ship APC"; + pixel_y = 26; + req_access = null + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/shuttle/pirate) +"cI" = ( +/obj/machinery/computer/monitor{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/yellow/side{ + dir = 5 + }, +/area/shuttle/pirate) +"cJ" = ( +/obj/machinery/atmospherics/components/unary/tank/oxygen{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/shuttle/pirate) +"cK" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4; + name = "O2 Out"; + target_pressure = 4500 + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"cL" = ( +/obj/machinery/atmospherics/pipe/manifold4w/general{ + level = 2 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/shuttle/pirate) +"cM" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"cN" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Port Out"; + target_pressure = 4500 + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"cO" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/shuttle/pirate) +"cP" = ( +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bar, +/area/shuttle/pirate) +"cQ" = ( +/obj/structure/table/reinforced, +/obj/item/book/manual/barman_recipes{ + pixel_x = -4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bar, +/area/shuttle/pirate) +"cR" = ( +/obj/structure/chair/stool/bar, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bar, +/area/shuttle/pirate) +"cS" = ( +/obj/structure/sign/departments/engineering{ + pixel_x = 32 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/pirate) +"cT" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/yellow, +/obj/item/wrench, +/obj/item/crowbar, +/obj/item/clothing/glasses/meson/engine, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/shuttle/pirate) +"cU" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"cV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"cW" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high, +/obj/item/stack/cable_coil/red{ + pixel_x = -1; + pixel_y = 3 + }, +/obj/item/stack/cable_coil/red{ + pixel_x = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/yellow/corner{ + dir = 4 + }, +/area/shuttle/pirate) +"cX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/pirate) +"cY" = ( +/obj/structure/sign/departments/engineering{ + pixel_x = -32 + }, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"cZ" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 2; + name = "O2 to Incinerator"; + target_pressure = 4500 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"da" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/shuttle/pirate) +"db" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"dc" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 25 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/space_heater, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/area/shuttle/pirate) +"dd" = ( +/obj/structure/table/reinforced, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/fancy/cigarettes/cigpack_uplift{ + pixel_x = 8; + pixel_y = -14 + }, +/obj/item/storage/fancy/cigarettes/cigpack_shadyjims{ + pixel_x = 1; + pixel_y = -14 + }, +/obj/item/storage/fancy/cigarettes/cigpack_robust{ + pixel_x = -6; + pixel_y = -14 + }, +/obj/item/storage/fancy/cigarettes/cigpack_midori{ + pixel_x = 8; + pixel_y = -8 + }, +/obj/item/storage/fancy/cigarettes/cigpack_carp{ + pixel_x = 1; + pixel_y = -8 + }, +/obj/item/storage/fancy/cigarettes, +/turf/open/floor/plasteel/bar, +/area/shuttle/pirate) +"df" = ( +/obj/structure/chair/stool/bar, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/pirate) +"dg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/pirate) +"dh" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engineering" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/shuttle/pirate) +"di" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/nosmoking{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/shuttle/pirate) +"dj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"dk" = ( +/turf/open/floor/plasteel, +/area/shuttle/pirate) +"dl" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"dm" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/shuttle/pirate) +"dn" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"do" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engineering" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/shuttle/pirate) +"dp" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/shuttle/pirate) +"dq" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold4w/general{ + level = 2 + }, +/turf/open/floor/plasteel, +/area/shuttle/pirate) +"dr" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"ds" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Plasma to Incinerator"; + target_pressure = 4500 + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"dt" = ( +/obj/machinery/atmospherics/components/unary/tank/toxins{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/shuttle/pirate) +"du" = ( +/obj/machinery/vending/boozeomat{ + req_access_txt = "0" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bar, +/area/shuttle/pirate) +"dv" = ( +/obj/machinery/door/window/southleft{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "Bar" + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/pirate) +"dw" = ( +/obj/structure/closet/firecloset/full{ + anchored = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/yellow/side, +/area/shuttle/pirate) +"dx" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/light/small, +/turf/open/floor/plasteel/yellow/corner{ + tag = "icon-yellowcorner (WEST)"; + icon_state = "yellowcorner"; + dir = 8 + }, +/area/shuttle/pirate) +"dy" = ( +/obj/machinery/button/door{ + id = "pirateturbinevent"; + name = "Turbine Vent Control"; + pixel_x = -6; + pixel_y = -24 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/button/door{ + id = "pirateturbineauxvent"; + name = "Turbine Auxiliary Vent Control"; + pixel_x = 6; + pixel_y = -24 + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"dz" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"dA" = ( +/obj/machinery/button/ignition{ + id = "pirateincinerator"; + pixel_x = -6; + pixel_y = -24 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 2; + target_pressure = 4500 + }, +/obj/machinery/button/door{ + id = "pirateturbinebolt"; + name = "Turbine Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 6; + pixel_y = -24; + specialfunctions = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/pirate) +"dB" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/storage/toolbox/mechanical, +/obj/item/clothing/head/welding{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/multitool, +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/yellow/corner, +/area/shuttle/pirate) +"dC" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + pixel_x = -1 + }, +/obj/item/stack/sheet/glass{ + amount = 50; + pixel_y = 5 + }, +/obj/item/stack/sheet/mineral/plastitanium{ + amount = 30; + pixel_x = 3; + pixel_y = -2 + }, +/obj/item/stack/rods/fifty, +/turf/open/floor/plasteel/yellow/side, +/area/shuttle/pirate) +"dD" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution, +/area/shuttle/pirate) +"dE" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution, +/area/shuttle/pirate) +"dF" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution, +/area/shuttle/pirate) +"dG" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Port to Incinerator"; + target_pressure = 4500 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution, +/area/shuttle/pirate) +"dH" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plasteel, +/area/shuttle/pirate) +"dI" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/pirate) +"dJ" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/pirate) +"dK" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/public/glass{ + heat_proof = 1; + id_tag = "pirateturbinebolt"; + name = "Turbine Access" + }, +/turf/open/floor/engine, +/area/shuttle/pirate) +"dL" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 2 + }, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/pirate) +"dM" = ( +/obj/structure/shuttle/engine/propulsion/burst, +/turf/open/floor/plating/airless, +/area/shuttle/pirate) +"dN" = ( +/obj/machinery/igniter{ + id = "pirateincinerator" + }, +/turf/open/floor/engine/vacuum, +/area/shuttle/pirate) +"dO" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine/vacuum, +/area/shuttle/pirate) +"dP" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos{ + dir = 1; + id = "inc_in" + }, +/obj/structure/sign/warning/vacuum/external{ + pixel_y = -32 + }, +/turf/open/floor/engine/vacuum, +/area/shuttle/pirate) +"dQ" = ( +/obj/machinery/door/poddoor{ + id = "pirateturbineauxvent"; + name = "Turbine Auxiliary Vent" + }, +/turf/open/floor/engine/vacuum, +/area/shuttle/pirate) +"dR" = ( +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/compressor{ + comp_id = "pirateturbine"; + dir = 1; + luminosity = 2 + }, +/turf/open/floor/engine/vacuum, +/area/shuttle/pirate) +"dS" = ( +/obj/structure/cable, +/obj/machinery/power/turbine{ + luminosity = 2 + }, +/turf/open/floor/engine/vacuum, +/area/shuttle/pirate) +"dT" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/pirate) +"dU" = ( +/obj/machinery/door/poddoor{ + id = "pirateturbinevent"; + name = "Turbine Vent" + }, +/turf/open/floor/engine/vacuum, +/area/shuttle/pirate) +"dV" = ( +/obj/machinery/porta_turret/syndicate{ + dir = 1; + faction = list("pirate") + }, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/pirate) + +(1,1,1) = {" +aa +aa +aa +aa +aa +aa +ai +aj +aj +aj +aj +bF +aj +dV +aj +aj +aj +aj +aj +ai +aa +aa +aa +aa +"} +(2,1,1) = {" +aa +aa +aa +aa +aa +ai +aj +aJ +bb +aj +bt +bG +bX +aj +co +aj +cf +cP +du +aj +ai +aa +aa +aa +"} +(3,1,1) = {" +aa +aa +aa +aa +aa +aj +aw +aK +bc +aj +aj +bH +aj +aj +cp +aj +cs +cC +cs +dI +dM +aa +aa +aa +"} +(4,1,1) = {" +aa +aa +aa +aa +ai +aj +aj +aL +aj +aj +bu +bI +bu +aj +cq +cA +cQ +dd +dv +dI +dM +aa +aa +aa +"} +(5,1,1) = {" +aa +aa +aa +aa +aj +ap +aj +aM +bd +bn +bv +bJ +bC +cg +cr +cB +cR +df +cC +dI +dM +aa +aa +aa +"} +(6,1,1) = {" +aa +aa +aa +aa +aj +aq +ax +aN +be +aj +bw +bK +bY +aj +cs +cC +cS +dg +cs +dI +dM +aa +aa +aa +"} +(7,1,1) = {" +aa +aa +aa +aa +aj +ar +aj +aO +bf +aj +aj +aj +aj +aj +ct +cD +aj +dh +aj +aj +ai +aa +aa +aa +"} +(8,1,1) = {" +aa +aa +ab +ab +aj +aj +aj +aP +aj +aj +bx +bL +bZ +aj +aj +aj +aj +di +dw +aj +aa +aa +aa +aa +"} +(9,1,1) = {" +aa +ab +ab +af +ak +aj +ay +aQ +aj +bo +bo +bM +bM +ch +aj +cE +cT +dj +dx +dJ +aj +ai +aa +aa +"} +(10,1,1) = {" +aa +ab +ac +af +al +aj +az +aR +aj +bp +by +bN +bo +ci +aj +cF +aW +dk +dy +aj +dN +aj +aj +dT +"} +(11,1,1) = {" +aa +ab +ad +ag +am +as +aA +aS +bg +bq +bq +bO +bM +cj +aj +cG +cU +dl +dz +dK +dO +dR +dS +dU +"} +(12,1,1) = {" +aa +ab +ae +af +an +aj +aB +aQ +aj +br +bz +bP +bo +ck +aj +cH +cV +dm +dA +dL +dP +aj +aj +dT +"} +(13,1,1) = {" +aa +ab +ab +ah +ao +aj +aC +aT +aj +bo +bo +bo +bM +cl +aj +cI +cW +dn +dB +dJ +dQ +ai +aa +aa +"} +(14,1,1) = {" +aa +aa +ab +ab +aj +aj +aD +aU +aj +aj +bA +bQ +ca +aj +aj +aj +cX +dn +dC +aj +aa +aa +aa +aa +"} +(15,1,1) = {" +aa +aa +aa +aa +aj +at +aE +aV +bh +aj +aj +aj +aj +aj +cu +cJ +cX +do +aj +aj +ai +aa +aa +aa +"} +(16,1,1) = {" +aa +aa +aa +aa +aj +au +aF +aW +bi +aD +bB +bR +cb +aj +cv +cK +cY +dp +dD +dI +dM +aa +aa +aa +"} +(17,1,1) = {" +aa +aa +aa +aa +aj +av +aG +aX +bj +bs +bC +bS +cc +cm +cw +cL +cZ +dq +dE +dI +dM +aa +aa +aa +"} +(18,1,1) = {" +aa +aa +aa +aa +ai +aj +aH +aY +bk +aj +bD +bT +cd +cn +cx +cM +da +dr +dF +dI +dM +aa +aa +aa +"} +(19,1,1) = {" +aa +aa +aa +aa +aa +aj +aI +aZ +bl +aj +aj +bU +aj +aj +cy +cN +db +ds +dG +dI +dM +aa +aa +aa +"} +(20,1,1) = {" +aa +aa +aa +aa +aa +ai +ai +ba +bm +aj +bE +bV +ce +aj +cz +cO +dc +dt +dH +aj +ai +aa +aa +aa +"} +(21,1,1) = {" +aa +aa +aa +aa +aa +aa +ai +aj +aj +aj +aj +bW +aj +dV +aj +aj +aj +aj +aj +ai +aa +aa +aa +aa +"} diff --git a/_maps/shuttles/whiteship_box.dmm b/_maps/shuttles/whiteship_box.dmm index 2daa647497..400b8f219a 100644 --- a/_maps/shuttles/whiteship_box.dmm +++ b/_maps/shuttles/whiteship_box.dmm @@ -38,7 +38,7 @@ /area/shuttle/abandoned) "ak" = ( /obj/structure/table, -/obj/item/device/radio/off, +/obj/item/radio/off, /turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "al" = ( @@ -228,7 +228,7 @@ /turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bc" = ( -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bd" = ( diff --git a/_maps/shuttles/whiteship_cere.dmm b/_maps/shuttles/whiteship_cere.dmm index f189ba7478..f640e014a9 100644 --- a/_maps/shuttles/whiteship_cere.dmm +++ b/_maps/shuttles/whiteship_cere.dmm @@ -478,7 +478,7 @@ /area/shuttle/abandoned) "aP" = ( /obj/structure/table, -/obj/item/device/gps{ +/obj/item/gps{ gpstag = "NTCONST1"; pixel_x = -1; pixel_y = 2 diff --git a/_maps/shuttles/whiteship_delta.dmm b/_maps/shuttles/whiteship_delta.dmm index ccf2a544d4..bb17806a6b 100644 --- a/_maps/shuttles/whiteship_delta.dmm +++ b/_maps/shuttles/whiteship_delta.dmm @@ -167,11 +167,11 @@ }, /obj/item/storage/toolbox/emergency, /obj/item/storage/toolbox/emergency, -/obj/item/device/flashlight/flare{ +/obj/item/flashlight/flare{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/flashlight/flare{ +/obj/item/flashlight/flare{ pixel_x = -6; pixel_y = -2 }, @@ -272,7 +272,7 @@ }, /obj/item/grenade/chem_grenade/metalfoam, /obj/item/relic, -/obj/item/device/t_scanner, +/obj/item/t_scanner, /obj/effect/spawner/lootdrop/maintenance{ lootcount = 3; name = "3maintenance loot spawner" @@ -452,7 +452,7 @@ /obj/item/clothing/suit/apron, /obj/item/shovel/spade, /obj/item/cultivator, -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" @@ -651,7 +651,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/device/gps{ +/obj/item/gps{ gpstag = "ITVSAC"; pixel_x = -1; pixel_y = 2 @@ -1654,7 +1654,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/device/megaphone, +/obj/item/megaphone, /turf/open/floor/plasteel/blue/corner{ dir = 4 }, @@ -1688,7 +1688,7 @@ name = "dust" }, /obj/structure/table, -/obj/item/device/camera, +/obj/item/camera, /turf/open/floor/plasteel/blue/side{ dir = 5 }, @@ -1815,7 +1815,7 @@ name = "dust" }, /obj/structure/table, -/obj/item/device/pda/clear, +/obj/item/pda/clear, /turf/open/floor/plasteel/blue/side, /area/shuttle/abandoned) "dv" = ( @@ -1834,7 +1834,7 @@ name = "dust" }, /obj/structure/table, -/obj/item/device/radio, +/obj/item/radio, /turf/open/floor/plasteel/blue/side, /area/shuttle/abandoned) "dx" = ( diff --git a/_maps/shuttles/whiteship_meta.dmm b/_maps/shuttles/whiteship_meta.dmm index 02586562dd..3118d4e0ce 100644 --- a/_maps/shuttles/whiteship_meta.dmm +++ b/_maps/shuttles/whiteship_meta.dmm @@ -182,7 +182,7 @@ /obj/item/roller{ pixel_y = 4 }, -/obj/item/device/healthanalyzer, +/obj/item/healthanalyzer, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" @@ -199,7 +199,7 @@ }, /obj/item/grenade/chem_grenade/metalfoam, /obj/item/relic, -/obj/item/device/t_scanner, +/obj/item/t_scanner, /obj/effect/spawner/lootdrop/maintenance{ lootcount = 3; name = "3maintenance loot spawner" @@ -239,11 +239,11 @@ }, /obj/item/storage/toolbox/emergency, /obj/item/storage/toolbox/emergency, -/obj/item/device/flashlight/flare{ +/obj/item/flashlight/flare{ pixel_x = 3; pixel_y = 3 }, -/obj/item/device/flashlight/flare{ +/obj/item/flashlight/flare{ pixel_x = -6; pixel_y = -2 }, @@ -316,10 +316,10 @@ /obj/structure/table, /obj/item/storage/belt/utility, /obj/item/storage/belt/utility, -/obj/item/device/radio/off, -/obj/item/device/radio/off, -/obj/item/device/radio/off, -/obj/item/device/radio/off, +/obj/item/radio/off, +/obj/item/radio/off, +/obj/item/radio/off, +/obj/item/radio/off, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" @@ -690,7 +690,7 @@ name = "dust" }, /obj/structure/table, -/obj/item/device/camera, +/obj/item/camera, /turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bi" = ( @@ -806,7 +806,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/device/gps{ +/obj/item/gps{ gpstag = "NTREC1"; pixel_x = -1; pixel_y = 2 @@ -1110,7 +1110,7 @@ name = "dust" }, /obj/structure/table, -/obj/item/device/megaphone, +/obj/item/megaphone, /turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "bU" = ( @@ -1140,7 +1140,7 @@ /area/shuttle/abandoned) "bW" = ( /obj/structure/table, -/obj/item/device/radio/off{ +/obj/item/radio/off{ pixel_y = 6 }, /obj/effect/decal/cleanable/dirt{ @@ -1332,7 +1332,7 @@ name = "dust" }, /obj/item/wirecutters, -/obj/item/device/plant_analyzer, +/obj/item/plant_analyzer, /obj/item/reagent_containers/glass/bucket, /obj/machinery/light/small/built{ dir = 8 diff --git a/_maps/templates/pirate_ship.dmm b/_maps/templates/pirate_ship.dmm index a635cac326..3c9ee504eb 100644 --- a/_maps/templates/pirate_ship.dmm +++ b/_maps/templates/pirate_ship.dmm @@ -29,7 +29,7 @@ pixel_y = -5 }, /obj/effect/decal/cleanable/dirt, -/obj/item/device/radio/intercom{ +/obj/item/radio/intercom{ pixel_y = 5 }, /turf/open/floor/plasteel/dark, @@ -564,8 +564,8 @@ layer = 2.9 }, /obj/item/storage/belt/utility, -/obj/item/device/radio/off, -/obj/item/device/radio/off, +/obj/item/radio/off, +/obj/item/radio/off, /turf/open/floor/plasteel, /area/shuttle/pirate) "bx" = ( @@ -615,8 +615,8 @@ layer = 2.9 }, /obj/item/storage/belt/utility, -/obj/item/device/radio/off, -/obj/item/device/radio/off, +/obj/item/radio/off, +/obj/item/radio/off, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/floorgrime, /area/shuttle/pirate) @@ -717,7 +717,7 @@ layer = 2.9 }, /obj/item/storage/toolbox/mechanical, -/obj/item/device/multitool, +/obj/item/multitool, /turf/open/floor/plasteel/floorgrime, /area/shuttle/pirate) "bL" = ( @@ -1077,7 +1077,7 @@ /obj/item/storage/belt/utility{ pixel_x = 4 }, -/obj/item/device/analyzer{ +/obj/item/analyzer{ pixel_x = 3; pixel_y = 2 }, @@ -1614,7 +1614,7 @@ pixel_x = 4; pixel_y = 4 }, -/obj/item/device/multitool, +/obj/item/multitool, /obj/machinery/light/small, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/yellow/corner, diff --git a/_maps/templates/shelter_1.dmm b/_maps/templates/shelter_1.dmm index fff5f4c2cd..f5b2e141f4 100644 --- a/_maps/templates/shelter_1.dmm +++ b/_maps/templates/shelter_1.dmm @@ -17,7 +17,7 @@ /turf/open/floor/pod, /area/survivalpod) "e" = ( -/obj/item/device/gps/computer, +/obj/item/gps/computer, /turf/open/floor/pod, /area/survivalpod) "f" = ( diff --git a/_maps/templates/shelter_2.dmm b/_maps/templates/shelter_2.dmm index 85de29e8c7..8951db3d37 100644 --- a/_maps/templates/shelter_2.dmm +++ b/_maps/templates/shelter_2.dmm @@ -23,7 +23,7 @@ /turf/open/floor/pod, /area/survivalpod) "g" = ( -/obj/item/device/gps/computer, +/obj/item/gps/computer, /turf/open/floor/pod, /area/survivalpod) "h" = ( diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm index bb07582dae..bb8d902fae 100644 --- a/code/__DEFINES/DNA.dm +++ b/code/__DEFINES/DNA.dm @@ -60,14 +60,14 @@ #define DNA_UNIQUE_ENZYMES_LEN 32 //Transformation proc stuff -#define TR_KEEPITEMS 1 -#define TR_KEEPVIRUS 2 -#define TR_KEEPDAMAGE 4 -#define TR_HASHNAME 8 // hashing names (e.g. monkey(e34f)) (only in monkeyize) -#define TR_KEEPIMPLANTS 16 -#define TR_KEEPSE 32 // changelings shouldn't edit the DNA's SE when turning into a monkey -#define TR_DEFAULTMSG 64 -#define TR_KEEPORGANS 256 +#define TR_KEEPITEMS (1<<0) +#define TR_KEEPVIRUS (1<<1) +#define TR_KEEPDAMAGE (1<<2) +#define TR_HASHNAME (1<<3) // hashing names (e.g. monkey(e34f)) (only in monkeyize) +#define TR_KEEPIMPLANTS (1<<4) +#define TR_KEEPSE (1<<5) // changelings shouldn't edit the DNA's SE when turning into a monkey +#define TR_DEFAULTMSG (1<<6) +#define TR_KEEPORGANS (1<<8) #define CLONER_FRESH_CLONE "fresh" @@ -89,11 +89,7 @@ #define NOSTOMACH 13 #define NO_DNA_COPY 14 #define DRINKSBLOOD 15 -#define SPECIES_ORGANIC 16 -#define SPECIES_INORGANIC 17 -#define SPECIES_UNDEAD 18 -#define SPECIES_ROBOTIC 19 -#define NOEYES 20 +#define NOEYES 16 #define ORGAN_SLOT_BRAIN "brain" #define ORGAN_SLOT_APPENDIX "appendix" diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm index b5bbcd341e..94a247171c 100644 --- a/code/__DEFINES/admin.dm +++ b/code/__DEFINES/admin.dm @@ -1,12 +1,12 @@ //A set of constants used to determine which type of mute an admin wishes to apply: //Please read and understand the muting/automuting stuff before changing these. MUTE_IC_AUTO etc = (MUTE_IC << 1) //Therefore there needs to be a gap between the flags for the automute flags -#define MUTE_IC 1 -#define MUTE_OOC 2 -#define MUTE_PRAY 4 -#define MUTE_ADMINHELP 8 -#define MUTE_DEADCHAT 16 -#define MUTE_ALL 31 +#define MUTE_IC (1<<0) +#define MUTE_OOC (1<<1) +#define MUTE_PRAY (1<<2) +#define MUTE_ADMINHELP (1<<3) +#define MUTE_DEADCHAT (1<<4) +#define MUTE_ALL (~0) //Some constants for DB_Ban #define BANTYPE_PERMA 1 @@ -20,21 +20,21 @@ #define BANTYPE_ANY_JOB 9 //used to remove jobbans //Admin Permissions -#define R_BUILDMODE 0x1 -#define R_ADMIN 0x2 -#define R_BAN 0x4 -#define R_FUN 0x8 -#define R_SERVER 0x10 -#define R_DEBUG 0x20 -#define R_POSSESS 0x40 -#define R_PERMISSIONS 0x80 -#define R_STEALTH 0x100 -#define R_POLL 0x200 -#define R_VAREDIT 0x400 -#define R_SOUNDS 0x800 -#define R_SPAWN 0x1000 -#define R_AUTOLOGIN 0x2000 -#define R_DBRANKS 0x4000 +#define R_BUILDMODE (1<<0) +#define R_ADMIN (1<<1) +#define R_BAN (1<<2) +#define R_FUN (1<<3) +#define R_SERVER (1<<4) +#define R_DEBUG (1<<5) +#define R_POSSESS (1<<6) +#define R_PERMISSIONS (1<<7) +#define R_STEALTH (1<<8) +#define R_POLL (1<<9) +#define R_VAREDIT (1<<10) +#define R_SOUNDS (1<<11) +#define R_SPAWN (1<<12) +#define R_AUTOLOGIN (1<<13) +#define R_DBRANKS (1<<14) #define R_DEFAULT R_AUTOLOGIN diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm index 7707eb9ab0..a1a1a25724 100644 --- a/code/__DEFINES/atmospherics.dm +++ b/code/__DEFINES/atmospherics.dm @@ -9,7 +9,7 @@ #define META_GAS_OVERLAY 4 #define META_GAS_DANGER 5 #define META_GAS_ID 6 - +#define META_GAS_FUSION_POWER 7 //ATMOS //stuff you should probably leave well alone! #define R_IDEAL_GAS_EQUATION 8.31 //kPa*L/(K*mol) @@ -201,10 +201,10 @@ #define PIPING_LAYER_P_Y 5 #define PIPING_LAYER_LCHANGE 0.05 -#define PIPING_ALL_LAYER 1 //intended to connect with all layers, check for all instead of just one. -#define PIPING_ONE_PER_TURF 2 //can only be built if nothing else with this flag is on the tile already. -#define PIPING_DEFAULT_LAYER_ONLY 4 //can only exist at PIPING_LAYER_DEFAULT -#define PIPING_CARDINAL_AUTONORMALIZE 8 //north/south east/west doesn't matter, auto normalize on build. +#define PIPING_ALL_LAYER (1<<0) //intended to connect with all layers, check for all instead of just one. +#define PIPING_ONE_PER_TURF (1<<1) //can only be built if nothing else with this flag is on the tile already. +#define PIPING_DEFAULT_LAYER_ONLY (1<<2) //can only exist at PIPING_LAYER_DEFAULT +#define PIPING_CARDINAL_AUTONORMALIZE (1<<3) //north/south east/west doesn't matter, auto normalize on build. //HELPERS #define THERMAL_ENERGY(gas) (gas.temperature * gas.heat_capacity()) diff --git a/code/__DEFINES/cinematics.dm b/code/__DEFINES/cinematics.dm index 22e0943802..aa19ffb4cf 100644 --- a/code/__DEFINES/cinematics.dm +++ b/code/__DEFINES/cinematics.dm @@ -9,4 +9,5 @@ #define CINEMATIC_NUKE_FAKE 9 #define CINEMATIC_NUKE_NO_CORE 10 #define CINEMATIC_NUKE_FAR 11 -#define CINEMATIC_NUKE_CLOWNOP 12 \ No newline at end of file +#define CINEMATIC_NUKE_CLOWNOP 12 +#define CINEMATIC_CULT_NUKE 13 \ No newline at end of file diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm index 5937e65ac5..41383b8512 100644 --- a/code/__DEFINES/combat.dm +++ b/code/__DEFINES/combat.dm @@ -12,12 +12,12 @@ #define BRAIN "brain" //bitflag damage defines used for suicide_act -#define BRUTELOSS 1 -#define FIRELOSS 2 -#define TOXLOSS 4 -#define OXYLOSS 8 -#define SHAME 16 -#define MANUAL_SUICIDE 32 //suicide_act will do the actual killing. +#define BRUTELOSS (1<<0) +#define FIRELOSS (1<<1) +#define TOXLOSS (1<<2) +#define OXYLOSS (1<<3) +#define SHAME (1<<4) +#define MANUAL_SUICIDE (1<<5) //suicide_act will do the actual killing. #define EFFECT_STUN "stun" #define EFFECT_KNOCKDOWN "knockdown" @@ -30,11 +30,11 @@ #define EFFECT_JITTER "jitter" //Bitflags defining which status effects could be or are inflicted on a mob -#define CANSTUN 1 -#define CANKNOCKDOWN 2 -#define CANUNCONSCIOUS 4 -#define CANPUSH 8 -#define GODMODE 16 +#define CANSTUN (1<<0) +#define CANKNOCKDOWN (1<<1) +#define CANUNCONSCIOUS (1<<2) +#define CANPUSH (1<<3) +#define GODMODE (1<<4) //Health Defines #define HEALTH_THRESHOLD_CRIT 0 diff --git a/code/__DEFINES/components.dm b/code/__DEFINES/components.dm index 4ac0d013d1..512e2cc4d9 100644 --- a/code/__DEFINES/components.dm +++ b/code/__DEFINES/components.dm @@ -6,10 +6,10 @@ // How multiple components of the exact same type are handled in the same datum -#define COMPONENT_DUPE_HIGHLANDER 0 //old component is deleted (default) -#define COMPONENT_DUPE_ALLOWED 1 //duplicates allowed -#define COMPONENT_DUPE_UNIQUE 2 //new component is deleted -#define COMPONENT_DUPE_UNIQUE_PASSARGS 4 //old component is given the initialization args of the new +#define COMPONENT_DUPE_HIGHLANDER 0 //old component is deleted (default) +#define COMPONENT_DUPE_ALLOWED 1 //duplicates allowed +#define COMPONENT_DUPE_UNIQUE 2 //new component is deleted +#define COMPONENT_DUPE_UNIQUE_PASSARGS 4 //old component is given the initialization args of the new // All signals. Format: // When the signal is called: (signal arguments) @@ -17,7 +17,8 @@ // /datum signals #define COMSIG_COMPONENT_ADDED "component_added" //when a component is added to a datum: (/datum/component) #define COMSIG_COMPONENT_REMOVING "component_removing" //before a component is removed from a datum because of RemoveComponent: (/datum/component) -#define COMSIG_PARENT_QDELETED "parent_qdeleted" //before a datum's Destroy() is called: () +#define COMSIG_PARENT_PREQDELETED "parent_preqdeleted" //before a datum's Destroy() is called: (force), returning a nonzero value will cancel the qdel operation +#define COMSIG_PARENT_QDELETED "parent_qdeleted" //after a datum's Destroy() is called: (force, qdel_hint), at this point none of the other components chose to interrupt qdel and Destroy has been called // /atom signals #define COMSIG_PARENT_ATTACKBY "atom_attackby" //from base of atom/attackby(): (/obj/item, /mob/living, params) @@ -47,10 +48,6 @@ #define COMSIG_ATOM_SET_LIGHT "atom_set_light" //from base of atom/set_light(): (l_range, l_power, l_color) #define COMSIG_ATOM_ROTATE "atom_rotate" //from base of atom/shuttleRotate(): (rotation, params) #define COMSIG_ATOM_DIR_CHANGE "atom_dir_change" //from base of atom/setDir(): (old_dir, new_dir) - -#define COMSIG_ENTER_AREA "enter_area" //from base of area/Entered(): (/area) -#define COMSIG_EXIT_AREA "exit_area" //from base of area/Exited(): (/area) - #define COMSIG_ATOM_CONTENTS_DEL "atom_contents_del" //from base of atom/handle_atom_del(): (atom/deleted) ///////////////// #define COMSIG_ATOM_ATTACK_GHOST "atom_attack_ghost" //from base of atom/attack_ghost(): (mob/dead/observer/ghost) @@ -59,6 +56,9 @@ #define COMPONENT_NO_ATTACK_HAND 1 //works on all 3. ///////////////// +#define COMSIG_ENTER_AREA "enter_area" //from base of area/Entered(): (/area) +#define COMSIG_EXIT_AREA "exit_area" //from base of area/Exited(): (/area) + #define COMSIG_CLICK "atom_click" //from base of atom/Click(): (location, control, params) #define COMSIG_CLICK_SHIFT "shift_click" //from base of atom/ShiftClick(): (/mob) #define COMSIG_CLICK_CTRL "ctrl_click" //from base of atom/CtrlClickOn(): (/mob) @@ -72,6 +72,8 @@ #define COMSIG_AREA_ENTERED "area_entered" //from base of area/Entered(): (atom/movable/M) #define COMSIG_AREA_EXITED "area_exited" //from base of area/Exited(): (atom/movable/M) +// /turf signals +#define COMSIG_TURF_CHANGE "turf_change" //from base of turf/ChangeTurf(): (path, list/new_baseturfs, flags, list/transferring_comps) // /atom/movable signals #define COMSIG_MOVABLE_MOVED "movable_moved" //from base of atom/movable/Moved(): (/atom, dir) @@ -83,7 +85,7 @@ #define COMSIG_MOVABLE_BUCKLE "buckle" //from base of atom/movable/buckle_mob(): (mob, force) #define COMSIG_MOVABLE_UNBUCKLE "unbuckle" //from base of atom/movable/unbuckle_mob(): (mob, force) #define COMSIG_MOVABLE_THROW "movable_throw" //from base of atom/movable/throw_at(): (datum/thrownthing, spin) - +#define COMSIG_MOVABLE_Z_CHANGED "movable_ztransit" //from base of atom/movable/onTransitZ(): (old_z, new_z) // /obj signals #define COMSIG_OBJ_DECONSTRUCT "obj_deconstruct" //from base of obj/deconstruct(): (disassembled) @@ -98,14 +100,11 @@ #define COMSIG_ITEM_DROPPED "item_drop" #define COMSIG_ITEM_PICKUP "item_pickup" //from base of obj/item/pickup(): (/mob/taker) #define COMSIG_ITEM_ATTACK_ZONE "item_attack_zone" //from base of mob/living/carbon/attacked_by(): (mob/living/carbon/target, mob/living/user, hit_zone) +#define COMSIG_ITEM_IMBUE_SOUL "item_imbue_soul" //return a truthy value to prevent ensouling, checked in /obj/effect/proc_holder/spell/targeted/lichdom/cast(): (mob/user) // /obj/item/clothing signals #define COMSIG_SHOES_STEP_ACTION "shoes_step_action" //from base of obj/item/clothing/shoes/proc/step_action(): () -// /obj/machinery signals -#define COMSIG_MACHINE_PROCESS "machine_process" //from machinery subsystem fire(): () -#define COMSIG_MACHINE_PROCESS_ATMOS "machine_process_atmos" //from air subsystem process_atmos_machinery(): () - // /mob/living/carbon/human signals #define COMSIG_HUMAN_MELEE_UNARMED_ATTACK "human_melee_unarmed_attack" //from mob/living/carbon/human/UnarmedAttack(): (atom/target) #define COMSIG_HUMAN_MELEE_UNARMED_ATTACKBY "human_melee_unarmed_attackby" //from mob/living/carbon/human/UnarmedAttack(): (mob/living/carbon/human/attacker) @@ -127,6 +126,20 @@ //NTnet #define COMSIG_COMPONENT_NTNET_RECIEVE "ntnet_recieve" //called on an object by its NTNET connection component on recieve. (sending_id(number), sending_netname(text), data(datum/netdata)) +// /datum/component/storage signals +#define COMSIG_CONTAINS_STORAGE "is_storage" //() - returns bool. +#define COMSIG_TRY_STORAGE_INSERT "storage_try_insert" //(obj/item/inserting, mob/user, silent, force) - returns bool +#define COMSIG_TRY_STORAGE_SHOW "storage_show_to" //(mob/show_to, force) - returns bool. +#define COMSIG_TRY_STORAGE_HIDE_FROM "storage_hide_from" //(mob/hide_from) - returns bool +#define COMSIG_TRY_STORAGE_HIDE_ALL "storage_hide_all" //returns bool +#define COMSIG_TRY_STORAGE_SET_LOCKSTATE "storage_lock_set_state" //(newstate) +#define COMSIG_IS_STORAGE_LOCKED "storage_get_lockstate" //() - returns bool. MUST CHECK IF STORAGE IS THERE FIRST! +#define COMSIG_TRY_STORAGE_TAKE_TYPE "storage_take_type" //(type, atom/destination, amount = INFINITY, check_adjacent, force, mob/user, list/inserted) - returns bool - type can be a list of types. +#define COMSIG_TRY_STORAGE_FILL_TYPE "storage_fill_type" //(type, amount = INFINITY, force = FALSE) //don't fuck this up. Force will ignore max_items, and amount is normally clamped to max_items. +#define COMSIG_TRY_STORAGE_TAKE "storage_take_obj" //(obj, new_loc, force = FALSE) - returns bool +#define COMSIG_TRY_STORAGE_QUICK_EMPTY "storage_quick_empty" //(loc) - returns bool - if loc is null it will dump at parent location. +#define COMSIG_TRY_STORAGE_RETURN_INVENTORY "storage_return_inventory" //(list/list_to_inject_results_into) +#define COMSIG_TRY_STORAGE_CAN_INSERT "storage_can_equip" //(obj/item/insertion_candidate, mob/user, silent) - returns bool /*******Non-Signal Component Related Defines*******/ diff --git a/code/__DEFINES/construction.dm b/code/__DEFINES/construction.dm index 0a7bc2cde4..c5c88b18f1 100644 --- a/code/__DEFINES/construction.dm +++ b/code/__DEFINES/construction.dm @@ -14,7 +14,7 @@ #define SUPPORT_LINES 1 #define COVER 2 #define CUT_COVER 3 -#define BOLTS 4 +#define ANCHOR_BOLTS 4 #define SUPPORT_RODS 5 #define SHEATH 6 diff --git a/code/__DEFINES/diseases.dm b/code/__DEFINES/diseases.dm index 9f96d0374f..8376f5c12e 100644 --- a/code/__DEFINES/diseases.dm +++ b/code/__DEFINES/diseases.dm @@ -3,21 +3,21 @@ #define VIRUS_SYMPTOM_LIMIT 6 //Visibility Flags -#define HIDDEN_SCANNER 1 -#define HIDDEN_PANDEMIC 2 +#define HIDDEN_SCANNER (1<<0) +#define HIDDEN_PANDEMIC (1<<1) //Disease Flags -#define CURABLE 1 -#define CAN_CARRY 2 -#define CAN_RESIST 4 +#define CURABLE (1<<0) +#define CAN_CARRY (1<<1) +#define CAN_RESIST (1<<2) //Spread Flags -#define DISEASE_SPREAD_SPECIAL 1 -#define DISEASE_SPREAD_NON_CONTAGIOUS 2 -#define DISEASE_SPREAD_BLOOD 4 -#define DISEASE_SPREAD_CONTACT_FLUIDS 8 -#define DISEASE_SPREAD_CONTACT_SKIN 16 -#define DISEASE_SPREAD_AIRBORNE 32 +#define DISEASE_SPREAD_SPECIAL (1<<0) +#define DISEASE_SPREAD_NON_CONTAGIOUS (1<<1) +#define DISEASE_SPREAD_BLOOD (1<<2) +#define DISEASE_SPREAD_CONTACT_FLUIDS (1<<3) +#define DISEASE_SPREAD_CONTACT_SKIN (1<<4) +#define DISEASE_SPREAD_AIRBORNE (1<<5) //Severity Defines #define DISEASE_SEVERITY_POSITIVE "Positive" //Diseases that buff, heal, or at least do nothing at all diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm index 7935bbad6b..f871ac6a44 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/flags.dm @@ -1,103 +1,101 @@ /* These defines are specific to the atom/flags_1 bitmask */ -#define ALL ~0 //For convenience. +#define ALL (~0) //For convenience. #define NONE 0 GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768)) // for /datum/var/datum_flags -#define DF_USE_TAG 1 -#define DF_VAR_EDITED 2 +#define DF_USE_TAG (1<<0) +#define DF_VAR_EDITED (1<<1) //FLAGS BITMASK -#define STOPSPRESSUREDMAGE_1 1 //This flag is used on the flags_1 variable for SUIT and HEAD items which stop pressure damage. Note that the flag 1 was previous used as ONBACK, so it is possible for some code to use (flags & 1) when checking if something can be put on your back. Replace this code with (inv_flags & SLOT_BACK) if you see it anywhere +#define STOPSPRESSUREDMAGE_1 (1<<0) //This flag is used on the flags_1 variable for SUIT and HEAD items which stop pressure damage. Note that the flag 1 was previous used as ONBACK, so it is possible for some code to use (flags & 1) when checking if something can be put on your back. Replace this code with (inv_flags & SLOT_BACK) if you see it anywhere //To successfully stop you taking all pressure damage you must have both a suit and head item with this flag. -#define NODROP_1 2 // This flag makes it so that an item literally cannot be removed at all, or at least that's how it should be. Only deleted. -#define NOBLUDGEON_1 4 // when an item has this it produces no "X has been hit by Y with Z" message in the default attackby() -#define MASKINTERNALS_1 8 // mask allows internals -#define HEAR_1 16 // This flag is what recursive_hear_check() uses to determine wether to add an item to the hearer list or not. -#define CHECK_RICOCHET_1 32 // Projectiels will check ricochet on things impacted that have this. -#define CONDUCT_1 64 // conducts electricity (metal etc.) -#define ABSTRACT_1 128 // for all things that are technically items but used for various different stuff, made it 128 because it could conflict with other flags other way -#define NODECONSTRUCT_1 128 // For machines and structures that should not break into parts, eg, holodeck stuff -#define OVERLAY_QUEUED_1 256 // atom queued to SSoverlay -#define ON_BORDER_1 512 // item has priority to check when entering or leaving +#define NODROP_1 (1<<1) // This flag makes it so that an item literally cannot be removed at all, or at least that's how it should be. Only deleted. +#define NOBLUDGEON_1 (1<<2) // when an item has this it produces no "X has been hit by Y with Z" message in the default attackby() +#define MASKINTERNALS_1 (1<<3) // mask allows internals +#define HEAR_1 (1<<4) // This flag is what recursive_hear_check() uses to determine wether to add an item to the hearer list or not. +#define CHECK_RICOCHET_1 (1<<5) // Projectiels will check ricochet on things impacted that have this. +#define CONDUCT_1 (1<<6) // conducts electricity (metal etc.) +#define ABSTRACT_1 (1<<7) // for all things that are technically items but used for various different stuff, made it 128 because it could conflict with other flags other way +#define NODECONSTRUCT_1 (1<<7) // For machines and structures that should not break into parts, eg, holodeck stuff +#define OVERLAY_QUEUED_1 (1<<8) // atom queued to SSoverlay +#define ON_BORDER_1 (1<<9) // item has priority to check when entering or leaving -#define NOSLIP_1 1024 //prevents from slipping on wet floors, in space etc +#define NOSLIP_1 (1<<10) //prevents from slipping on wet floors, in space etc // BLOCK_GAS_SMOKE_EFFECT_1 only used in masks at the moment. -#define BLOCK_GAS_SMOKE_EFFECT_1 4096 // blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets ONLY! -#define THICKMATERIAL_1 8192 //prevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. Example: space suits, biosuit, bombsuits, thick suits that cover your body. -#define DROPDEL_1 16384 // When dropped, it calls qdel on itself -#define PREVENT_CLICK_UNDER_1 32768 //Prevent clicking things below it on the same turf eg. doors/ fulltile windows +#define BLOCK_GAS_SMOKE_EFFECT_1 (1<<12) // blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets ONLY! +#define THICKMATERIAL_1 (1<<13) //prevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. Example: space suits, biosuit, bombsuits, thick suits that cover your body. +#define DROPDEL_1 (1<<14) // When dropped, it calls qdel on itself +#define PREVENT_CLICK_UNDER_1 (1<<15) //Prevent clicking things below it on the same turf eg. doors/ fulltile windows /* Secondary atom flags, for the flags_2 var, denoted with a _2 */ -#define SLOWS_WHILE_IN_HAND_2 1 -#define NO_EMP_WIRES_2 2 -#define HOLOGRAM_2 4 -#define FROZEN_2 8 -#define STATIONLOVING_2 16 -#define INFORM_ADMINS_ON_RELOCATE_2 32 -#define BANG_PROTECT_2 64 +#define SLOWS_WHILE_IN_HAND_2 (1<<0) +#define NO_EMP_WIRES_2 (1<<1) +#define HOLOGRAM_2 (1<<2) +#define FROZEN_2 (1<<3) +#define BANG_PROTECT_2 (1<<6) // An item worn in the ear slot with HEALS_EARS will heal your ears each // Life() tick, even if normally your ears would be too damaged to heal. -#define HEALS_EARS_2 128 +#define HEALS_EARS_2 (1<<7) // A mob with OMNITONGUE has no restriction in the ability to speak // languages that they know. So even if they wouldn't normally be able to // through mob or tongue restrictions, this flag allows them to ignore // those restrictions. -#define OMNITONGUE_2 256 +#define OMNITONGUE_2 (1<<8) // TESLA_IGNORE grants immunity from being targeted by tesla-style electricity -#define TESLA_IGNORE_2 512 +#define TESLA_IGNORE_2 (1<<9) // Stops you from putting things like an RCD or other items into an ORM or protolathe for materials. -#define NO_MAT_REDEMPTION_2 1024 +#define NO_MAT_REDEMPTION_2 (1<<10) // LAVA_PROTECT used on the flags_2 variable for both SUIT and HEAD items, and stops lava damage. Must be present in both to stop lava damage. -#define LAVA_PROTECT_2 2048 +#define LAVA_PROTECT_2 (1<<11) //turf-only flags -#define NOJAUNT_1 1 -#define UNUSED_TRANSIT_TURF_1 2 -#define CAN_BE_DIRTY_1 4 // If a turf can be made dirty at roundstart. This is also used in areas. -#define NO_DEATHRATTLE_1 16 // Do not notify deadchat about any deaths that occur on this turf. -#define NO_RUINS_1 32 //Blocks ruins spawning on the turf -#define NO_LAVA_GEN_1 64 //Blocks lava rivers being generated on the turf -//#define CHECK_RICOCHET_1 32 //Same thing as atom flag. +#define NOJAUNT_1 (1<<0) +#define UNUSED_TRANSIT_TURF_1 (1<<1) +#define CAN_BE_DIRTY_1 (1<<2) // If a turf can be made dirty at roundstart. This is also used in areas. +#define NO_DEATHRATTLE_1 (1<<4) // Do not notify deadchat about any deaths that occur on this turf. +#define NO_RUINS_1 (1<<5) //Blocks ruins spawning on the turf +#define NO_LAVA_GEN_1 (1<<6) //Blocks lava rivers being generated on the turf +//#define CHECK_RICOCHET_1 32 //Same thing as atom flag. /* These defines are used specifically with the atom/pass_flags bitmask the atom/checkpass() proc uses them (tables will call movable atom checkpass(PASSTABLE) for example) */ //flags for pass_flags -#define PASSTABLE 1 -#define PASSGLASS 2 -#define PASSGRILLE 4 -#define PASSBLOB 8 -#define PASSMOB 16 -#define PASSCLOSEDTURF 32 -#define LETPASSTHROW 64 +#define PASSTABLE (1<<0) +#define PASSGLASS (1<<1) +#define PASSGRILLE (1<<2) +#define PASSBLOB (1<<3) +#define PASSMOB (1<<4) +#define PASSCLOSEDTURF (1<<5) +#define LETPASSTHROW (1<<6) //Movement Types -#define GROUND 1 -#define FLYING 2 +#define GROUND (1<<0) +#define FLYING (1<<1) // Flags for reagents -#define REAGENT_NOREACT 1 +#define REAGENT_NOREACT (1<<0) //Fire and Acid stuff, for resistance_flags -#define LAVA_PROOF 1 -#define FIRE_PROOF 2 //100% immune to fire damage (but not necessarily to lava or heat) -#define FLAMMABLE 4 -#define ON_FIRE 8 -#define UNACIDABLE 16 //acid can't even appear on it, let alone melt it. -#define ACID_PROOF 32 //acid stuck on it doesn't melt it. -#define INDESTRUCTIBLE 64 //doesn't take damage -#define FREEZE_PROOF 128 //can't be frozen +#define LAVA_PROOF (1<<0) +#define FIRE_PROOF (1<<1) //100% immune to fire damage (but not necessarily to lava or heat) +#define FLAMMABLE (1<<2) +#define ON_FIRE (1<<3) +#define UNACIDABLE (1<<4) //acid can't even appear on it, let alone melt it. +#define ACID_PROOF (1<<5) //acid stuck on it doesn't melt it. +#define INDESTRUCTIBLE (1<<6) //doesn't take damage +#define FREEZE_PROOF (1<<7) //can't be frozen diff --git a/code/__DEFINES/food.dm b/code/__DEFINES/food.dm index 2d6ba0d946..a68d29c14c 100644 --- a/code/__DEFINES/food.dm +++ b/code/__DEFINES/food.dm @@ -1,12 +1,13 @@ -#define MEAT 1 -#define VEGETABLES 2 -#define RAW 4 -#define JUNKFOOD 8 -#define GRAIN 16 -#define FRUIT 32 -#define DAIRY 64 -#define FRIED 128 -#define ALCOHOL 256 -#define SUGAR 512 -#define GROSS 1024 -#define TOXIC 2048 +#define MEAT (1<<0) +#define VEGETABLES (1<<1) +#define RAW (1<<2) +#define JUNKFOOD (1<<3) +#define GRAIN (1<<4) +#define FRUIT (1<<5) +#define DAIRY (1<<6) +#define FRIED (1<<7) +#define ALCOHOL (1<<8) +#define SUGAR (1<<9) +#define GROSS (1<<10) +#define TOXIC (1<<11) +#define PINEAPPLE (1<<12) diff --git a/code/__DEFINES/integrated_electronics.dm b/code/__DEFINES/integrated_electronics.dm index a7f732f646..3647a61d77 100644 --- a/code/__DEFINES/integrated_electronics.dm +++ b/code/__DEFINES/integrated_electronics.dm @@ -11,9 +11,9 @@ #define IC_SPAWN_RESEARCH 2 // If the circuit design will be available in the IC printer after upgrading it. // Categories that help differentiate circuits that can do different tipes of actions -#define IC_ACTION_MOVEMENT 1 // If the circuit can move the assembly -#define IC_ACTION_COMBAT 2 // If the circuit can cause harm -#define IC_ACTION_LONG_RANGE 4 // If the circuit communicate with something outside of the assembly +#define IC_ACTION_MOVEMENT (1<<0) // If the circuit can move the assembly +#define IC_ACTION_COMBAT (1<<1) // If the circuit can cause harm +#define IC_ACTION_LONG_RANGE (1<<2) // If the circuit communicate with something outside of the assembly // Displayed along with the pin name to show what type of pin it is. #define IC_FORMAT_ANY "\" diff --git a/code/__DEFINES/interaction_flags.dm b/code/__DEFINES/interaction_flags.dm index b56696c671..dc3242c910 100644 --- a/code/__DEFINES/interaction_flags.dm +++ b/code/__DEFINES/interaction_flags.dm @@ -1,22 +1,22 @@ -#define INTERACT_ATOM_REQUIRES_ANCHORED 1 //whether can_interact() checks for anchored. only works on movables. -#define INTERACT_ATOM_ATTACK_HAND 2 //calls try_interact() on attack_hand() and returns that. -#define INTERACT_ATOM_UI_INTERACT 4 //automatically calls and returns ui_interact() on interact(). -#define INTERACT_ATOM_REQUIRES_DEXTERITY 8 //user must be dextrous -#define INTERACT_ATOM_IGNORE_INCAPACITATED 16 //ignores incapacitated check -#define INTERACT_ATOM_IGNORE_RESTRAINED 32 //incapacitated check ignores restrained -#define INTERACT_ATOM_CHECK_GRAB 64 //incapacitated check checks grab -#define INTERACT_ATOM_NO_FINGERPRINT_ATTACK_HAND 128//prevents leaving fingerprints automatically on attack_hand -#define INTERACT_ATOM_NO_FINGERPRINT_INTERACT 256 //adds hiddenprints instead of fingerprints on interact +#define INTERACT_ATOM_REQUIRES_ANCHORED (1<<0) //whether can_interact() checks for anchored. only works on movables. +#define INTERACT_ATOM_ATTACK_HAND (1<<1) //calls try_interact() on attack_hand() and returns that. +#define INTERACT_ATOM_UI_INTERACT (1<<2) //automatically calls and returns ui_interact() on interact(). +#define INTERACT_ATOM_REQUIRES_DEXTERITY (1<<3) //user must be dextrous +#define INTERACT_ATOM_IGNORE_INCAPACITATED (1<<4) //ignores incapacitated check +#define INTERACT_ATOM_IGNORE_RESTRAINED (1<<5) //incapacitated check ignores restrained +#define INTERACT_ATOM_CHECK_GRAB (1<<6) //incapacitated check checks grab +#define INTERACT_ATOM_NO_FINGERPRINT_ATTACK_HAND (1<<7) //prevents leaving fingerprints automatically on attack_hand +#define INTERACT_ATOM_NO_FINGERPRINT_INTERACT (1<<8) //adds hiddenprints instead of fingerprints on interact -#define INTERACT_ITEM_ATTACK_HAND_PICKUP 1 //attempt pickup on attack_hand for items +#define INTERACT_ITEM_ATTACK_HAND_PICKUP (1<<0) //attempt pickup on attack_hand for items -#define INTERACT_MACHINE_OPEN 1 //can_interact() while open -#define INTERACT_MACHINE_OFFLINE 2 //can_interact() while offline -#define INTERACT_MACHINE_WIRES_IF_OPEN 4 //try to interact with wires if open -#define INTERACT_MACHINE_ALLOW_SILICON 8 //let silicons interact -#define INTERACT_MACHINE_OPEN_SILICON 16 //let silicons interact while open -#define INTERACT_MACHINE_REQUIRES_SILICON 32 //must be silicon to interact -#define INTERACT_MACHINE_SET_MACHINE 64 //MACHINES HAVE THIS BY DEFAULT, SOMEONE SHOULD RUN THROUGH MACHINES AND REMOVE IT FROM THINGS LIKE LIGHT SWITCHES WHEN POSSIBLE!!-------------------------- +#define INTERACT_MACHINE_OPEN (1<<0) //can_interact() while open +#define INTERACT_MACHINE_OFFLINE (1<<1) //can_interact() while offline +#define INTERACT_MACHINE_WIRES_IF_OPEN (1<<2) //try to interact with wires if open +#define INTERACT_MACHINE_ALLOW_SILICON (1<<3) //let silicons interact +#define INTERACT_MACHINE_OPEN_SILICON (1<<4) //let silicons interact while open +#define INTERACT_MACHINE_REQUIRES_SILICON (1<<5) //must be silicon to interact +#define INTERACT_MACHINE_SET_MACHINE (1<<6) //MACHINES HAVE THIS BY DEFAULT, SOMEONE SHOULD RUN THROUGH MACHINES AND REMOVE IT FROM THINGS LIKE LIGHT SWITCHES WHEN POSSIBLE!!-------------------------- //This flag determines if a machine set_machine's the user when the user uses it, making updateUsrDialog make the user re-call interact() on it. //THIS FLAG IS ON ALL MACHINES BY DEFAULT, NEEDS TO BE RE-EVALUATED LATER!! diff --git a/code/__DEFINES/inventory.dm b/code/__DEFINES/inventory.dm index dc3647e1f1..beea132890 100644 --- a/code/__DEFINES/inventory.dm +++ b/code/__DEFINES/inventory.dm @@ -14,20 +14,20 @@ #define STORAGE_VIEW_DEPTH 2 //ITEM INVENTORY SLOT BITMASKS -#define SLOT_OCLOTHING 1 -#define SLOT_ICLOTHING 2 -#define SLOT_GLOVES 4 -#define SLOT_EYES 8 -#define SLOT_EARS 16 -#define SLOT_MASK 32 -#define SLOT_HEAD 64 -#define SLOT_FEET 128 -#define SLOT_ID 256 -#define SLOT_BELT 512 -#define SLOT_BACK 1024 -#define SLOT_POCKET 2048 // this is to allow items with a w_class of WEIGHT_CLASS_NORMAL or WEIGHT_CLASS_BULKY to fit in pockets. -#define SLOT_DENYPOCKET 4096 // this is to deny items with a w_class of WEIGHT_CLASS_SMALL or WEIGHT_CLASS_TINY to fit in pockets. -#define SLOT_NECK 8192 +#define SLOT_OCLOTHING (1<<0) +#define SLOT_ICLOTHING (1<<1) +#define SLOT_GLOVES (1<<2) +#define SLOT_EYES (1<<3) +#define SLOT_EARS (1<<4) +#define SLOT_MASK (1<<5) +#define SLOT_HEAD (1<<6) +#define SLOT_FEET (1<<7) +#define SLOT_ID (1<<8) +#define SLOT_BELT (1<<9) +#define SLOT_BACK (1<<10) +#define SLOT_POCKET (1<<11) // this is to allow items with a w_class of WEIGHT_CLASS_NORMAL or WEIGHT_CLASS_BULKY to fit in pockets. +#define SLOT_DENYPOCKET (1<<12) // this is to deny items with a w_class of WEIGHT_CLASS_SMALL or WEIGHT_CLASS_TINY to fit in pockets. +#define SLOT_NECK (1<<13) //SLOTS #define slot_back 1 @@ -87,36 +87,36 @@ //Bit flags for the flags_inv variable, which determine when a piece of clothing hides another. IE a helmet hiding glasses. -#define HIDEGLOVES 1 -#define HIDESUITSTORAGE 2 -#define HIDEJUMPSUIT 4 //these first four are only used in exterior suits -#define HIDESHOES 8 -#define HIDEMASK 16 //these last six are only used in masks and headgear. -#define HIDEEARS 32 // (ears means headsets and such) -#define HIDEEYES 64 // Whether eyes and glasses are hidden -#define HIDEFACE 128 // Whether we appear as unknown. -#define HIDEHAIR 256 -#define HIDEFACIALHAIR 512 -#define HIDENECK 1024 +#define HIDEGLOVES (1<<0) +#define HIDESUITSTORAGE (1<<1) +#define HIDEJUMPSUIT (1<<2) //these first four are only used in exterior suits +#define HIDESHOES (1<<3) +#define HIDEMASK (1<<4) //these last six are only used in masks and headgear. +#define HIDEEARS (1<<5) // (ears means headsets and such) +#define HIDEEYES (1<<6) // Whether eyes and glasses are hidden +#define HIDEFACE (1<<7) // Whether we appear as unknown. +#define HIDEHAIR (1<<8) +#define HIDEFACIALHAIR (1<<9) +#define HIDENECK (1<<10) //bitflags for clothing coverage - also used for limbs -#define HEAD 1 -#define CHEST 2 -#define GROIN 4 -#define LEG_LEFT 8 -#define LEG_RIGHT 16 -#define LEGS 24 -#define FOOT_LEFT 32 -#define FOOT_RIGHT 64 -#define FEET 96 -#define ARM_LEFT 128 -#define ARM_RIGHT 256 -#define ARMS 384 -#define HAND_LEFT 512 -#define HAND_RIGHT 1024 -#define HANDS 1536 -#define NECK 2048 -#define FULL_BODY 4095 +#define HEAD (1<<0) +#define CHEST (1<<1) +#define GROIN (1<<2) +#define LEG_LEFT (1<<3) +#define LEG_RIGHT (1<<4) +#define LEGS (LEG_LEFT | LEG_RIGHT) +#define FOOT_LEFT (1<<5) +#define FOOT_RIGHT (1<<6) +#define FEET (FOOT_LEFT | FOOT_RIGHT) +#define ARM_LEFT (1<<7) +#define ARM_RIGHT (1<<8) +#define ARMS (ARM_LEFT | ARM_RIGHT) +#define HAND_LEFT (1<<9) +#define HAND_RIGHT (1<<10) +#define HANDS (HAND_LEFT | HAND_RIGHT) +#define NECK (1<<11) +#define FULL_BODY (~0) //flags for female outfits: How much the game can safely "take off" the uniform without it looking weird #define NO_FEMALE_UNIFORM 0 @@ -137,11 +137,11 @@ #define SQUISHED_DIGITIGRADE 2 //flags for covering body parts -#define GLASSESCOVERSEYES 1 -#define MASKCOVERSEYES 2 // get rid of some of the other retardation in these flags -#define HEADCOVERSEYES 4 // feel free to realloc these numbers for other purposes -#define MASKCOVERSMOUTH 8 // on other items, these are just for mask/head -#define HEADCOVERSMOUTH 16 +#define GLASSESCOVERSEYES (1<<0) +#define MASKCOVERSEYES (1<<1) // get rid of some of the other retardation in these flags +#define HEADCOVERSEYES (1<<2) // feel free to realloc these numbers for other purposes +#define MASKCOVERSMOUTH (1<<3) // on other items, these are just for mask/head +#define HEADCOVERSMOUTH (1<<4) #define TINT_DARKENED 2 //Threshold of tint level to apply weld mask overlay #define TINT_BLIND 3 //Threshold of tint level to obscure vision fully @@ -151,7 +151,7 @@ GLOBAL_LIST_INIT(advanced_hardsuit_allowed, typecacheof(list( /obj/item/ammo_box, /obj/item/ammo_casing, - /obj/item/device/flashlight, + /obj/item/flashlight, /obj/item/gun, /obj/item/melee/baton, /obj/item/reagent_containers/spray/pepper, @@ -161,7 +161,7 @@ GLOBAL_LIST_INIT(advanced_hardsuit_allowed, typecacheof(list( GLOBAL_LIST_INIT(security_hardsuit_allowed, typecacheof(list( /obj/item/ammo_box, /obj/item/ammo_casing, - /obj/item/device/flashlight, + /obj/item/flashlight, /obj/item/gun/ballistic, /obj/item/gun/energy, /obj/item/melee/baton, @@ -172,9 +172,9 @@ GLOBAL_LIST_INIT(security_hardsuit_allowed, typecacheof(list( GLOBAL_LIST_INIT(detective_vest_allowed, typecacheof(list( /obj/item/ammo_box, /obj/item/ammo_casing, - /obj/item/device/detective_scanner, - /obj/item/device/flashlight, - /obj/item/device/taperecorder, + /obj/item/detective_scanner, + /obj/item/flashlight, + /obj/item/taperecorder, /obj/item/gun/ballistic, /obj/item/gun/energy, /obj/item/lighter, @@ -189,7 +189,7 @@ GLOBAL_LIST_INIT(detective_vest_allowed, typecacheof(list( GLOBAL_LIST_INIT(security_vest_allowed, typecacheof(list( /obj/item/ammo_box, /obj/item/ammo_casing, - /obj/item/device/flashlight, + /obj/item/flashlight, /obj/item/gun/ballistic, /obj/item/gun/energy, /obj/item/kitchen/knife/combat, @@ -203,7 +203,7 @@ GLOBAL_LIST_INIT(security_vest_allowed, typecacheof(list( GLOBAL_LIST_INIT(security_wintercoat_allowed, typecacheof(list( /obj/item/ammo_box, /obj/item/ammo_casing, - /obj/item/device/flashlight, + /obj/item/flashlight, /obj/item/storage/fancy/cigarettes, /obj/item/gun/ballistic, /obj/item/gun/energy, diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index dc0b6dce54..772987185b 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -163,13 +163,13 @@ GLOBAL_LIST_INIT(pointed_types, typecacheof(list( #define isbodypart(A) (istype(A, /obj/item/bodypart)) //Assemblies -#define isassembly(O) (istype(O, /obj/item/device/assembly)) +#define isassembly(O) (istype(O, /obj/item/assembly)) -#define isigniter(O) (istype(O, /obj/item/device/assembly/igniter)) +#define isigniter(O) (istype(O, /obj/item/assembly/igniter)) -#define isprox(O) (istype(O, /obj/item/device/assembly/prox_sensor)) +#define isprox(O) (istype(O, /obj/item/assembly/prox_sensor)) -#define issignaler(O) (istype(O, /obj/item/device/assembly/signaler)) +#define issignaler(O) (istype(O, /obj/item/assembly/signaler)) GLOBAL_LIST_INIT(glass_sheet_types, typecacheof(list( /obj/item/stack/sheet/glass, @@ -182,3 +182,5 @@ GLOBAL_LIST_INIT(glass_sheet_types, typecacheof(list( #define is_glass_sheet(O) (is_type_in_typecache(O, GLOB.glass_sheet_types)) #define isblobmonster(O) (istype(O, /mob/living/simple_animal/hostile/blob)) + +#define isshuttleturf(T) (length(T.baseturfs) && (/turf/baseturf_skipover/shuttle in T.baseturfs)) diff --git a/code/__DEFINES/jobs.dm b/code/__DEFINES/jobs.dm index 51b907f846..dc4080a789 100644 --- a/code/__DEFINES/jobs.dm +++ b/code/__DEFINES/jobs.dm @@ -4,43 +4,43 @@ #define CAPTAIN (1<<0) #define HOS (1<<1) #define WARDEN (1<<2) -#define DETECTIVE (1<<3) +#define DETECTIVE (1<<3) #define OFFICER (1<<4) -#define CHIEF (1<<5) -#define ENGINEER (1<<6) -#define ATMOSTECH (1<<7) +#define CHIEF (1<<5) +#define ENGINEER (1<<6) +#define ATMOSTECH (1<<7) #define ROBOTICIST (1<<8) -#define AI_JF (1<<9) +#define AI_JF (1<<9) #define CYBORG (1<<10) #define MEDSCI (1<<1) -#define RD_JF (1<<0) -#define SCIENTIST (1<<1) +#define RD_JF (1<<0) +#define SCIENTIST (1<<1) #define CHEMIST (1<<2) -#define CMO_JF (1<<3) +#define CMO_JF (1<<3) #define DOCTOR (1<<4) #define GENETICIST (1<<5) #define VIROLOGIST (1<<6) -#define CIVILIAN (1<<2) +#define CIVILIAN (1<<2) #define HOP (1<<0) -#define BARTENDER (1<<1) -#define BOTANIST (1<<2) -#define COOK (1<<3) +#define BARTENDER (1<<1) +#define BOTANIST (1<<2) +#define COOK (1<<3) #define JANITOR (1<<4) #define CURATOR (1<<5) -#define QUARTERMASTER (1<<6) -#define CARGOTECH (1<<7) -#define MINER (1<<8) +#define QUARTERMASTER (1<<6) +#define CARGOTECH (1<<7) +#define MINER (1<<8) #define LAWYER (1<<9) -#define CHAPLAIN (1<<10) -#define CLOWN (1<<11) -#define MIME (1<<12) -#define ASSISTANT (1<<13) +#define CHAPLAIN (1<<10) +#define CLOWN (1<<11) +#define MIME (1<<12) +#define ASSISTANT (1<<13) #define JOB_AVAILABLE 0 #define JOB_UNAVAILABLE_GENERIC 1 diff --git a/code/__DEFINES/machines.dm b/code/__DEFINES/machines.dm index 2d088552bd..77f6ff7756 100644 --- a/code/__DEFINES/machines.dm +++ b/code/__DEFINES/machines.dm @@ -14,22 +14,22 @@ //bitflags for door switches. -#define OPEN 1 -#define IDSCAN 2 -#define BOLTS 4 -#define SHOCK 8 -#define SAFE 16 +#define OPEN (1<<0) +#define IDSCAN (1<<1) +#define BOLTS (1<<2) +#define SHOCK (1<<3) +#define SAFE (1<<4) //used in design to specify which machine can build it -#define IMPRINTER 1 //For circuits. Uses glass/chemicals. -#define PROTOLATHE 2 //New stuff. Uses glass/metal/chemicals -#define AUTOLATHE 4 //Uses glass/metal only. -#define CRAFTLATHE 8 //Uses fuck if I know. For use eventually. -#define MECHFAB 16 //Remember, objects utilising this flag should have construction_time and construction_cost vars. -#define BIOGENERATOR 32 //Uses biomass -#define LIMBGROWER 64 //Uses synthetic flesh -#define SMELTER 128 //uses various minerals -#define AUTOYLATHE 256 //CITADEL ADDITION Uses glass/metal/Plastic CID +#define IMPRINTER (1<<0) //For circuits. Uses glass/chemicals. +#define PROTOLATHE (1<<1) //New stuff. Uses glass/metal/chemicals +#define AUTOLATHE (1<<2) //Uses glass/metal only. +#define CRAFTLATHE (1<<3) //Uses fuck if I know. For use eventually. +#define MECHFAB (1<<4) //Remember, objects utilising this flag should have construction_time and construction_cost vars. +#define BIOGENERATOR (1<<5) //Uses biomass +#define LIMBGROWER (1<<6) //Uses synthetic flesh +#define SMELTER (1<<7) //uses various minerals +#define AUTOYLATHE (1<<8) // CITADEL ADD //Note: More then one of these can be added to a design but imprinter and lathe designs are incompatable. //Modular computer/NTNet defines @@ -62,10 +62,10 @@ #define MIN_NTNET_LOGS 10 //Program bitflags -#define PROGRAM_ALL 7 -#define PROGRAM_CONSOLE 1 -#define PROGRAM_LAPTOP 2 -#define PROGRAM_TABLET 4 +#define PROGRAM_ALL (~0) +#define PROGRAM_CONSOLE (1<<0) +#define PROGRAM_LAPTOP (1<<1) +#define PROGRAM_TABLET (1<<2) //Program states #define PROGRAM_STATE_KILLED 0 #define PROGRAM_STATE_BACKGROUND 1 diff --git a/code/__DEFINES/medal.dm b/code/__DEFINES/medal.dm index b5ff8eac20..2a545d9c64 100644 --- a/code/__DEFINES/medal.dm +++ b/code/__DEFINES/medal.dm @@ -11,6 +11,7 @@ #define BOSS_MEDAL_HIEROPHANT "Hierophant" #define BOSS_MEDAL_LEGION "Legion" #define BOSS_MEDAL_TENDRIL "Tendril" +#define BOSS_MEDAL_SWARMERS "Swarmer Beacon" // Score names #define HIEROPHANT_SCORE "Hierophants Killed" diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 804fa5a90a..15033fcf48 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -35,6 +35,18 @@ #define BLOODCRAWL 1 #define BLOODCRAWL_EAT 2 +//Mob bio-types +#define MOB_ORGANIC "organic" +#define MOB_INORGANIC "inorganic" +#define MOB_ROBOTIC "robotic" +#define MOB_UNDEAD "undead" +#define MOB_HUMANOID "humanoid" +#define MOB_BUG "bug" +#define MOB_BEAST "beast" +#define MOB_EPIC "epic" //megafauna +#define MOB_REPTILE "reptile" +#define MOB_SPIRIT "spirit" + //Organ defines for carbon mobs #define ORGAN_ORGANIC 1 #define ORGAN_ROBOTIC 2 @@ -51,6 +63,27 @@ #define DEVIL_BODYPART "devil" /*see __DEFINES/inventory.dm for bodypart bitflag defines*/ +// Health/damage defines for carbon mobs +#define HUMAN_MAX_OXYLOSS 3 +#define HUMAN_CRIT_MAX_OXYLOSS (SSmobs.wait/30) + +#define HEAT_DAMAGE_LEVEL_1 2 //Amount of damage applied when your body temperature just passes the 360.15k safety point +#define HEAT_DAMAGE_LEVEL_2 3 //Amount of damage applied when your body temperature passes the 400K point +#define HEAT_DAMAGE_LEVEL_3 8 //Amount of damage applied when your body temperature passes the 460K point and you are on fire + +#define COLD_DAMAGE_LEVEL_1 0.5 //Amount of damage applied when your body temperature just passes the 260.15k safety point +#define COLD_DAMAGE_LEVEL_2 1.5 //Amount of damage applied when your body temperature passes the 200K point +#define COLD_DAMAGE_LEVEL_3 3 //Amount of damage applied when your body temperature passes the 120K point + +//Note that gas heat damage is only applied once every FOUR ticks. +#define HEAT_GAS_DAMAGE_LEVEL_1 2 //Amount of damage applied when the current breath's temperature just passes the 360.15k safety point +#define HEAT_GAS_DAMAGE_LEVEL_2 4 //Amount of damage applied when the current breath's temperature passes the 400K point +#define HEAT_GAS_DAMAGE_LEVEL_3 8 //Amount of damage applied when the current breath's temperature passes the 1000K point + +#define COLD_GAS_DAMAGE_LEVEL_1 0.5 //Amount of damage applied when the current breath's temperature just passes the 260.15k safety point +#define COLD_GAS_DAMAGE_LEVEL_2 1.5 //Amount of damage applied when the current breath's temperature passes the 200K point +#define COLD_GAS_DAMAGE_LEVEL_3 3 //Amount of damage applied when the current breath's temperature passes the 120K point + //Brain Damage defines #define BRAIN_DAMAGE_MILD 20 #define BRAIN_DAMAGE_SEVERE 100 @@ -162,15 +195,15 @@ #define AI_Z_OFF 4 //determines if a mob can smash through it -#define ENVIRONMENT_SMASH_NONE 0 -#define ENVIRONMENT_SMASH_STRUCTURES 1 //crates, lockers, ect -#define ENVIRONMENT_SMASH_WALLS 2 //walls -#define ENVIRONMENT_SMASH_RWALLS 4 //rwalls +#define ENVIRONMENT_SMASH_NONE 0 +#define ENVIRONMENT_SMASH_STRUCTURES (1<<0) //crates, lockers, ect +#define ENVIRONMENT_SMASH_WALLS (1<<1) //walls +#define ENVIRONMENT_SMASH_RWALLS (1<<2) //rwalls -#define NO_SLIP_WHEN_WALKING 1 -#define SLIDE 2 -#define GALOSHES_DONT_HELP 4 -#define SLIDE_ICE 8 +#define NO_SLIP_WHEN_WALKING (1<<0) +#define SLIDE (1<<1) +#define GALOSHES_DONT_HELP (1<<2) +#define SLIDE_ICE (1<<3) #define MAX_CHICKENS 50 @@ -182,12 +215,12 @@ #define INCORPOREAL_MOVE_JAUNT 3 // is blocked by holy water/salt //Secbot and ED209 judgement criteria bitflag values -#define JUDGE_EMAGGED 1 -#define JUDGE_IDCHECK 2 -#define JUDGE_WEAPONCHECK 4 -#define JUDGE_RECORDCHECK 8 +#define JUDGE_EMAGGED (1<<0) +#define JUDGE_IDCHECK (1<<1) +#define JUDGE_WEAPONCHECK (1<<2) +#define JUDGE_RECORDCHECK (1<<3) //ED209's ignore monkeys -#define JUDGE_IGNOREMONKEYS 16 +#define JUDGE_IGNOREMONKEYS (1<<4) #define MEGAFAUNA_DEFAULT_RECOVERY_TIME 5 @@ -211,7 +244,7 @@ #define OFFSET_NECK "neck" //MINOR TWEAKS/MISC -#define AGE_MIN 18 //youngest a character can be +#define AGE_MIN 17 //youngest a character can be #define AGE_MAX 85 //oldest a character can be #define WIZARD_AGE_MIN 30 //youngest a wizard can be #define APPRENTICE_AGE_MIN 29 //youngest an apprentice can be diff --git a/code/__DEFINES/networks.dm b/code/__DEFINES/networks.dm index 0aec59db9b..09b9e4cadf 100644 --- a/code/__DEFINES/networks.dm +++ b/code/__DEFINES/networks.dm @@ -1 +1,3 @@ -#define HID_RESTRICTED_END 101 //the first nonrestricted ID, automatically assigned on connection creation. +#define HID_RESTRICTED_END 101 //the first nonrestricted ID, automatically assigned on connection creation. + +#define NETWORK_BROADCAST_ID "ALL" diff --git a/code/__DEFINES/obj_flags.dm b/code/__DEFINES/obj_flags.dm index e491c58cbf..bfbf6f866a 100644 --- a/code/__DEFINES/obj_flags.dm +++ b/code/__DEFINES/obj_flags.dm @@ -1,20 +1,20 @@ // Flags for the obj_flags var on /obj -#define EMAGGED 1 -#define IN_USE 2 // If we have a user using us, this will be set on. We will check if the user has stopped using us, and thus stop updating and LAGGING EVERYTHING! -#define CAN_BE_HIT 4 //can this be bludgeoned by items? -#define BEING_SHOCKED 8 // Whether this thing is currently (already) being shocked by a tesla -#define DANGEROUS_POSSESSION 16 //Admin possession yes/no -#define ON_BLUEPRINTS 32 //Are we visible on the station blueprints at roundstart? -#define UNIQUE_RENAME 64 // can you customize the description/name of the thing? -#define USES_TGUI 128 //put on things that use tgui on ui_interact instead of custom/old UI. +#define EMAGGED (1<<0) +#define IN_USE (1<<1) // If we have a user using us, this will be set on. We will check if the user has stopped using us, and thus stop updating and LAGGING EVERYTHING! +#define CAN_BE_HIT (1<<2) //can this be bludgeoned by items? +#define BEING_SHOCKED (1<<3) // Whether this thing is currently (already) being shocked by a tesla +#define DANGEROUS_POSSESSION (1<<4) //Admin possession yes/no +#define ON_BLUEPRINTS (1<<5) //Are we visible on the station blueprints at roundstart? +#define UNIQUE_RENAME (1<<6) // can you customize the description/name of the thing? +#define USES_TGUI (1<<7) //put on things that use tgui on ui_interact instead of custom/old UI. // If you add new ones, be sure to add them to /obj/Initialize as well for complete mapping support // Flags for the item_flags var on /obj/item -#define BEING_REMOVED 1 -#define IN_INVENTORY 2 //is this item equipped into an inventory slot or hand of a mob? used for tooltips -#define FORCE_STRING_OVERRIDE 4 // used for tooltips -#define NEEDS_PERMIT 8 //Used by security bots to determine if this item is safe for public use. +#define BEING_REMOVED (1<<0) +#define IN_INVENTORY (1<<1) //is this item equipped into an inventory slot or hand of a mob? used for tooltips +#define FORCE_STRING_OVERRIDE (1<<2) // used for tooltips +#define NEEDS_PERMIT (1<<3) //Used by security bots to determine if this item is safe for public use. diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm index d63623496c..7ba693be0a 100644 --- a/code/__DEFINES/preferences.dm +++ b/code/__DEFINES/preferences.dm @@ -1,35 +1,35 @@ //Preference toggles -#define SOUND_ADMINHELP 1 -#define SOUND_MIDI 2 -#define SOUND_AMBIENCE 4 -#define SOUND_LOBBY 8 -#define MEMBER_PUBLIC 16 -#define INTENT_STYLE 32 -#define MIDROUND_ANTAG 64 -#define SOUND_INSTRUMENTS 128 -#define SOUND_SHIP_AMBIENCE 256 -#define SOUND_PRAYERS 512 -#define ANNOUNCE_LOGIN 1024 -#define SOUND_ANNOUNCEMENTS 2048 -#define DISABLE_DEATHRATTLE 4096 -#define DISABLE_ARRIVALRATTLE 8192 -#define COMBOHUD_LIGHTING 16384 +#define SOUND_ADMINHELP (1<<0) +#define SOUND_MIDI (1<<1) +#define SOUND_AMBIENCE (1<<2) +#define SOUND_LOBBY (1<<3) +#define MEMBER_PUBLIC (1<<4) +#define INTENT_STYLE (1<<5) +#define MIDROUND_ANTAG (1<<6) +#define SOUND_INSTRUMENTS (1<<7) +#define SOUND_SHIP_AMBIENCE (1<<8) +#define SOUND_PRAYERS (1<<9) +#define ANNOUNCE_LOGIN (1<<10) +#define SOUND_ANNOUNCEMENTS (1<<11) +#define DISABLE_DEATHRATTLE (1<<12) +#define DISABLE_ARRIVALRATTLE (1<<13) +#define COMBOHUD_LIGHTING (1<<14) #define TOGGLES_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|MEMBER_PUBLIC|INTENT_STYLE|MIDROUND_ANTAG|SOUND_INSTRUMENTS|SOUND_SHIP_AMBIENCE|SOUND_PRAYERS|SOUND_ANNOUNCEMENTS) //Chat toggles -#define CHAT_OOC 1 -#define CHAT_DEAD 2 -#define CHAT_GHOSTEARS 4 -#define CHAT_GHOSTSIGHT 8 -#define CHAT_PRAYER 16 -#define CHAT_RADIO 32 -#define CHAT_PULLR 64 -#define CHAT_GHOSTWHISPER 128 -#define CHAT_GHOSTPDA 256 -#define CHAT_GHOSTRADIO 512 -#define CHAT_LOOC 1024 +#define CHAT_OOC (1<<0) +#define CHAT_DEAD (1<<1) +#define CHAT_GHOSTEARS (1<<2) +#define CHAT_GHOSTSIGHT (1<<3) +#define CHAT_PRAYER (1<<4) +#define CHAT_RADIO (1<<5) +#define CHAT_PULLR (1<<6) +#define CHAT_GHOSTWHISPER (1<<7) +#define CHAT_GHOSTPDA (1<<8) +#define CHAT_GHOSTRADIO (1<<9) +#define CHAT_LOOC (1<<10) #define TOGGLES_DEFAULT_CHAT (CHAT_OOC|CHAT_DEAD|CHAT_GHOSTEARS|CHAT_GHOSTSIGHT|CHAT_PRAYER|CHAT_RADIO|CHAT_PULLR|CHAT_GHOSTWHISPER|CHAT_GHOSTPDA|CHAT_GHOSTRADIO|CHAT_LOOC) diff --git a/code/__DEFINES/reagents.dm b/code/__DEFINES/reagents.dm index ed815c3393..6fca8786f5 100644 --- a/code/__DEFINES/reagents.dm +++ b/code/__DEFINES/reagents.dm @@ -4,14 +4,14 @@ // container_type defines -#define INJECTABLE 1 // Makes it possible to add reagents through droppers and syringes. -#define DRAWABLE 2 // Makes it possible to remove reagents through syringes. +#define INJECTABLE (1<<0) // Makes it possible to add reagents through droppers and syringes. +#define DRAWABLE (1<<1) // Makes it possible to remove reagents through syringes. -#define REFILLABLE 4 // Makes it possible to add reagents through any reagent container. -#define DRAINABLE 8 // Makes it possible to remove reagents through any reagent container. +#define REFILLABLE (1<<2) // Makes it possible to add reagents through any reagent container. +#define DRAINABLE (1<<3) // Makes it possible to remove reagents through any reagent container. -#define TRANSPARENT 16 // Used on containers which you want to be able to see the reagents off. -#define AMOUNT_VISIBLE 32 // For non-transparent containers that still have the general amount of reagents in them visible. +#define TRANSPARENT (1<<4) // Used on containers which you want to be able to see the reagents off. +#define AMOUNT_VISIBLE (1<<5) // For non-transparent containers that still have the general amount of reagents in them visible. // Is an open container for all intents and purposes. #define OPENCONTAINER (REFILLABLE | DRAINABLE | TRANSPARENT) diff --git a/code/__DEFINES/research.dm b/code/__DEFINES/research.dm index cc66e54208..5facee079a 100644 --- a/code/__DEFINES/research.dm +++ b/code/__DEFINES/research.dm @@ -49,14 +49,14 @@ #define RESEARCH_FABRICATOR_SCREEN_SEARCH 4 #define RESEARCH_FABRICATOR_SCREEN_CATEGORYVIEW 5 -#define DEPARTMENTAL_FLAG_SECURITY 1 -#define DEPARTMENTAL_FLAG_MEDICAL 2 -#define DEPARTMENTAL_FLAG_CARGO 4 -#define DEPARTMENTAL_FLAG_SCIENCE 8 -#define DEPARTMENTAL_FLAG_ENGINEERING 16 -#define DEPARTMENTAL_FLAG_SERVICE 32 -#define DEPARTMENTAL_FLAG_ALL 64 //NO THIS DOESN'T ALLOW YOU TO PRINT EVERYTHING, IT'S FOR ALL DEPARTMENTS! -//#define DEPARTMENTAL_FLAG_MINING 128 +#define DEPARTMENTAL_FLAG_SECURITY (1<<0) +#define DEPARTMENTAL_FLAG_MEDICAL (1<<1) +#define DEPARTMENTAL_FLAG_CARGO (1<<2) +#define DEPARTMENTAL_FLAG_SCIENCE (1<<3) +#define DEPARTMENTAL_FLAG_ENGINEERING (1<<4) +#define DEPARTMENTAL_FLAG_SERVICE (1<<5) +#define DEPARTMENTAL_FLAG_ALL (1<<6) //NO THIS DOESN'T ALLOW YOU TO PRINT EVERYTHING, IT'S FOR ALL DEPARTMENTS! +//#define DEPARTMENTAL_FLAG_MINING (1<<7) #define DESIGN_ID_IGNORE "IGNORE_THIS_DESIGN" diff --git a/code/__DEFINES/robots.dm b/code/__DEFINES/robots.dm index 913ab08be7..9c81305241 100644 --- a/code/__DEFINES/robots.dm +++ b/code/__DEFINES/robots.dm @@ -29,12 +29,12 @@ #define BOT_NO_ROUTE 17 // no destination beacon found (or no route) //Bot types -#define SEC_BOT 1 // Secutritrons (Beepsky) and ED-209s -#define MULE_BOT 2 // MULEbots -#define FLOOR_BOT 4 // Floorbots -#define CLEAN_BOT 8 // Cleanbots -#define MED_BOT 16 // Medibots -#define HONK_BOT 32 // Honkbots & ED-Honks +#define SEC_BOT (1<<0) // Secutritrons (Beepsky) and ED-209s +#define MULE_BOT (1<<1) // MULEbots +#define FLOOR_BOT (1<<2) // Floorbots +#define CLEAN_BOT (1<<3) // Cleanbots +#define MED_BOT (1<<4) // Medibots +#define HONK_BOT (1<<5) // Honkbots & ED-Honks //AI notification defines #define NEW_BORG 1 diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm index 79c96805c0..57cdfe3880 100644 --- a/code/__DEFINES/role_preferences.dm +++ b/code/__DEFINES/role_preferences.dm @@ -24,7 +24,6 @@ #define ROLE_REVENANT "revenant" #define ROLE_DEVIL "devil" #define ROLE_SERVANT_OF_RATVAR "servant of Ratvar" -#define ROLE_BORER "borer" #define ROLE_BROTHER "blood brother" #define ROLE_BRAINWASHED "brainwashed victim" #define ROLE_MISCREANT "miscreant" @@ -49,7 +48,6 @@ GLOBAL_LIST_INIT(special_roles, list( ROLE_REVENANT, ROLE_ABDUCTOR, ROLE_DEVIL = /datum/game_mode/devil, - ROLE_BORER, ROLE_SERVANT_OF_RATVAR = /datum/game_mode/clockwork_cult, ROLE_MISCREANT )) diff --git a/code/__DEFINES/shuttles.dm b/code/__DEFINES/shuttles.dm index 306f316aa5..056c5a4565 100644 --- a/code/__DEFINES/shuttles.dm +++ b/code/__DEFINES/shuttles.dm @@ -52,12 +52,12 @@ #define ENGINE_DEFAULT_MAXSPEED_ENGINES 5 //Docking error flags -#define DOCKING_SUCCESS 0 -#define DOCKING_BLOCKED 1 -#define DOCKING_IMMOBILIZED 2 -#define DOCKING_AREA_EMPTY 4 -#define DOCKING_NULL_DESTINATION 8 -#define DOCKING_NULL_SOURCE 16 +#define DOCKING_SUCCESS 0 +#define DOCKING_BLOCKED (1<<0) +#define DOCKING_IMMOBILIZED (1<<1) +#define DOCKING_AREA_EMPTY (1<<2) +#define DOCKING_NULL_DESTINATION (1<<3) +#define DOCKING_NULL_SOURCE (1<<4) //Docking turf movements #define MOVE_TURF 1 @@ -74,7 +74,5 @@ #define SHUTTLE_DOCKER_BLOCKED 3 //Shuttle defaults -#define SHUTTLE_DEFAULT_TURF_TYPE /turf/open/space -#define SHUTTLE_DEFAULT_BASETURF_TYPE /turf/open/space #define SHUTTLE_DEFAULT_SHUTTLE_AREA_TYPE /area/shuttle #define SHUTTLE_DEFAULT_UNDERLYING_AREA /area/space diff --git a/code/__DEFINES/sight.dm b/code/__DEFINES/sight.dm index e307e8dd69..b7643fc5b1 100644 --- a/code/__DEFINES/sight.dm +++ b/code/__DEFINES/sight.dm @@ -17,14 +17,14 @@ #define INVISIBILITY_ABSTRACT 101 //only used for abstract objects (e.g. spacevine_controller), things that are not really there. -#define BORGMESON 1 -#define BORGTHERM 2 -#define BORGXRAY 4 -#define BORGMATERIAL 8 +#define BORGMESON (1<<0) +#define BORGTHERM (1<<1) +#define BORGXRAY (1<<2) +#define BORGMATERIAL (1<<3) //for clothing visor toggles, these determine which vars to toggle -#define VISOR_FLASHPROTECT 1 -#define VISOR_TINT 2 -#define VISOR_VISIONFLAGS 4 //all following flags only matter for glasses -#define VISOR_DARKNESSVIEW 8 -#define VISOR_INVISVIEW 16 +#define VISOR_FLASHPROTECT (1<<0) +#define VISOR_TINT (1<<1) +#define VISOR_VISIONFLAGS (1<<2) //all following flags only matter for glasses +#define VISOR_DARKNESSVIEW (1<<3) +#define VISOR_INVISVIEW (1<<4) diff --git a/code/__DEFINES/stat.dm b/code/__DEFINES/stat.dm index d9d98219aa..1d3ea1347a 100644 --- a/code/__DEFINES/stat.dm +++ b/code/__DEFINES/stat.dm @@ -9,10 +9,10 @@ #define DEAD 3 // bitflags for machine stat variable -#define BROKEN 1 -#define NOPOWER 2 -#define MAINT 4 // under maintaince -#define EMPED 8 // temporary broken by EMP pulse +#define BROKEN (1<<0) +#define NOPOWER (1<<1) +#define MAINT (1<<2) // under maintaince +#define EMPED (1<<3) // temporary broken by EMP pulse //ai power requirement defines #define POWER_REQ_ALL 1 diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index 15459f7f71..36b25bf6c6 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -6,18 +6,18 @@ //Timing subsystem //Don't run if there is an identical unique timer active //if the arguments to addtimer are the same as an existing timer, it doesn't create a new timer, and returns the id of the existing timer -#define TIMER_UNIQUE 0x1 +#define TIMER_UNIQUE (1<<0) //For unique timers: Replace the old timer rather then not start this one -#define TIMER_OVERRIDE 0x2 +#define TIMER_OVERRIDE (1<<1) //Timing should be based on how timing progresses on clients, not the sever. // tracking this is more expensive, // should only be used in conjuction with things that have to progress client side, such as animate() or sound() -#define TIMER_CLIENT_TIME 0x4 +#define TIMER_CLIENT_TIME (1<<2) //Timer can be stopped using deltimer() -#define TIMER_STOPPABLE 0x8 +#define TIMER_STOPPABLE (1<<3) //To be used with TIMER_UNIQUE //prevents distinguishing identical timers with the wait variable -#define TIMER_NO_HASH_WAIT 0x10 +#define TIMER_NO_HASH_WAIT (1<<4) #define TIMER_NO_INVOKE_WARNING 600 //number of byond ticks that are allowed to pass before the timer subsystem thinks it hung on something @@ -99,7 +99,6 @@ #define FIRE_PRIORITY_OBJ 40 #define FIRE_PRIORITY_ACID 40 #define FIRE_PRIOTITY_BURNING 40 -#define FIRE_PRIORITY_INBOUNDS 40 #define FIRE_PRIORITY_DEFAULT 50 #define FIRE_PRIORITY_PARALLAX 65 #define FIRE_PRIORITY_FLIGHTPACKS 80 diff --git a/code/__HELPERS/areas.dm b/code/__HELPERS/areas.dm index 0d12a5ca58..51dd88710a 100644 --- a/code/__HELPERS/areas.dm +++ b/code/__HELPERS/areas.dm @@ -83,15 +83,10 @@ newA.contents += thing thing.change_area(old_area, newA) - var/list/related_areas = oldA.related - for(var/i in 1 to related_areas.len) - var/area/place = related_areas[i] - var/list/firedoors = place.firedoors - if(!LAZYLEN(firedoors)) - continue - for(var/k in 1 to firedoors.len) - var/obj/machinery/door/firedoor/FD = firedoors[k] - FD.CalculateAffectingAreas() + var/list/firedoors = oldA.firedoors + for(var/door in firedoors) + var/obj/machinery/door/firedoor/FD = door + FD.CalculateAffectingAreas() to_chat(creator, "You have created a new area, named [newA.name]. It is now weather proof, and constructing an APC will allow it to be powered.") return TRUE diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index c18784690c..e75e1ed88a 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -188,7 +188,7 @@ if(sight_check && !isInSight(A_tmp, O)) passed=0 - else if(include_radio && istype(A, /obj/item/device/radio)) + else if(include_radio && istype(A, /obj/item/radio)) passed=1 if(sight_check && !isInSight(A, O)) @@ -234,10 +234,10 @@ processing_list.Cut(1, 2) processing_list += A.contents -/proc/get_mobs_in_radio_ranges(list/obj/item/device/radio/radios) +/proc/get_mobs_in_radio_ranges(list/obj/item/radio/radios) . = list() // Returns a list of mobs who can hear any of the radios given in @radios - for(var/obj/item/device/radio/R in radios) + for(var/obj/item/radio/R in radios) if(R) . |= get_hearers_in_view(R.canhear_range, R) diff --git a/code/__HELPERS/icon_smoothing.dm b/code/__HELPERS/icon_smoothing.dm index 34de5d4590..5d34df3ec5 100644 --- a/code/__HELPERS/icon_smoothing.dm +++ b/code/__HELPERS/icon_smoothing.dm @@ -24,21 +24,21 @@ */ //Redefinitions of the diagonal directions so they can be stored in one var without conflicts -#define N_NORTH 2 -#define N_SOUTH 4 -#define N_EAST 16 -#define N_WEST 256 -#define N_NORTHEAST 32 -#define N_NORTHWEST 512 -#define N_SOUTHEAST 64 -#define N_SOUTHWEST 1024 +#define N_NORTH (1<<1) +#define N_SOUTH (1<<2) +#define N_EAST (1<<4) +#define N_WEST (1<<8) +#define N_NORTHEAST (1<<5) +#define N_NORTHWEST (1<<9) +#define N_SOUTHEAST (1<<6) +#define N_SOUTHWEST (1<<10) -#define SMOOTH_FALSE 0 //not smooth -#define SMOOTH_TRUE 1 //smooths with exact specified types or just itself -#define SMOOTH_MORE 2 //smooths with all subtypes of specified types or just itself (this value can replace SMOOTH_TRUE) -#define SMOOTH_DIAGONAL 4 //if atom should smooth diagonally, this should be present in 'smooth' var -#define SMOOTH_BORDER 8 //atom will smooth with the borders of the map -#define SMOOTH_QUEUED 16 //atom is currently queued to smooth. +#define SMOOTH_FALSE 0 //not smooth +#define SMOOTH_TRUE (1<<0) //smooths with exact specified types or just itself +#define SMOOTH_MORE (1<<1) //smooths with all subtypes of specified types or just itself (this value can replace SMOOTH_TRUE) +#define SMOOTH_DIAGONAL (1<<2) //if atom should smooth diagonally, this should be present in 'smooth' var +#define SMOOTH_BORDER (1<<3) //atom will smooth with the borders of the map +#define SMOOTH_QUEUED (1<<4) //atom is currently queued to smooth. #define NULLTURF_BORDER 123456789 diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm index 4d41539be1..7caa28642e 100644 --- a/code/__HELPERS/icons.dm +++ b/code/__HELPERS/icons.dm @@ -762,6 +762,19 @@ world else curdir = A.dir + //Try to remove/optimize this section ASAP, CPU hog. + //Determines if there's directionals. + if(!noIcon && curdir != SOUTH) + var/exist = FALSE + var/static/list/checkdirs = list(NORTH, EAST, WEST) + for(var/i in checkdirs) //Not using GLOB for a reason. + if(length(icon_states(icon(curicon, curstate, i)))) + exist = TRUE + break + if(!exist) + base_icon_dir = SOUTH + // + if(!base_icon_dir) base_icon_dir = curdir @@ -879,7 +892,6 @@ world #undef BLANK #undef SET_SELF - #undef APPLY_SELF_COLOR /proc/getIconMask(atom/A)//By yours truly. Creates a dynamic mask for a mob/whatever. /N var/icon/alpha_mask = new(A.icon,A.icon_state)//So we want the default icon and icon state of A. diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 6417ad8ed0..4230138cf6 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -831,7 +831,7 @@ GLOBAL_LIST_INIT(can_embed_types, typecacheof(list( Checks if that loc and dir has an item on the wall */ GLOBAL_LIST_INIT(WALLITEMS, typecacheof(list( - /obj/machinery/power/apc, /obj/machinery/airalarm, /obj/item/device/radio/intercom, + /obj/machinery/power/apc, /obj/machinery/airalarm, /obj/item/radio/intercom, /obj/structure/extinguisher_cabinet, /obj/structure/reagent_dispensers/peppertank, /obj/machinery/status_display, /obj/machinery/requests_console, /obj/machinery/light_switch, /obj/structure/sign, /obj/machinery/newscaster, /obj/machinery/firealarm, /obj/structure/noticeboard, /obj/machinery/button, diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm index 548cf0489b..168863708c 100644 --- a/code/_globalvars/bitfields.dm +++ b/code/_globalvars/bitfields.dm @@ -123,8 +123,6 @@ GLOBAL_LIST_INIT(bitfields, list( "NO_EMP_WIRES_2" = NO_EMP_WIRES_2, "HOLOGRAM_2" = HOLOGRAM_2, "FRONZE_2" = FROZEN_2, - "STATIONLOVING_2" = STATIONLOVING_2, - "INFORM_ADMINS_ON_RELOCATE_2" = INFORM_ADMINS_ON_RELOCATE_2, "BANG_PROTECT_2" = BANG_PROTECT_2, "HEALS_EARS_2" = HEALS_EARS_2, "OMNITONGUE_2" = OMNITONGUE_2, diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm index 100407d777..92cd02f6aa 100644 --- a/code/_globalvars/lists/maintenance_loot.dm +++ b/code/_globalvars/lists/maintenance_loot.dm @@ -37,14 +37,14 @@ GLOBAL_LIST_INIT(maintenance_loot, list( /obj/item/clothing/mask/gas = 15, /obj/item/clothing/suit/hazardvest = 1, /obj/item/clothing/under/rank/vice = 1, - /obj/item/device/assembly/prox_sensor = 4, - /obj/item/device/assembly/timer = 3, - /obj/item/device/flashlight = 4, - /obj/item/device/flashlight/pen = 1, - /obj/item/device/flashlight/glowstick/random = 4, - /obj/item/device/multitool = 2, - /obj/item/device/radio/off = 2, - /obj/item/device/t_scanner = 5, + /obj/item/assembly/prox_sensor = 4, + /obj/item/assembly/timer = 3, + /obj/item/flashlight = 4, + /obj/item/flashlight/pen = 1, + /obj/item/flashlight/glowstick/random = 4, + /obj/item/multitool = 2, + /obj/item/radio/off = 2, + /obj/item/t_scanner = 5, /obj/item/airlock_painter = 1, /obj/item/stack/cable_coil/random = 4, /obj/item/stack/cable_coil/random/five = 6, @@ -91,13 +91,13 @@ GLOBAL_LIST_INIT(maintenance_loot, list( /obj/item/weaponcrafting/receiver = 2, /obj/item/clothing/head/cone = 2, /obj/item/grenade/smokebomb = 2, - /obj/item/device/geiger_counter = 3, + /obj/item/geiger_counter = 3, /obj/item/reagent_containers/food/snacks/grown/citrus/orange = 1, - /obj/item/device/radio/headset = 1, - /obj/item/device/assembly/infra = 1, - /obj/item/device/assembly/igniter = 2, - /obj/item/device/assembly/signaler = 2, - /obj/item/device/assembly/mousetrap = 2, + /obj/item/radio/headset = 1, + /obj/item/assembly/infra = 1, + /obj/item/assembly/igniter = 2, + /obj/item/assembly/signaler = 2, + /obj/item/assembly/mousetrap = 2, /obj/item/reagent_containers/syringe = 2, /obj/item/clothing/gloves/color/random = 8, /obj/item/clothing/shoes/laceup = 1, diff --git a/code/_onclick/drag_drop.dm b/code/_onclick/drag_drop.dm index 15e6711f66..97924be2d4 100644 --- a/code/_onclick/drag_drop.dm +++ b/code/_onclick/drag_drop.dm @@ -107,6 +107,8 @@ if(mob && LAZYLEN(mob.mousemove_intercept_objects)) for(var/datum/D in mob.mousemove_intercept_objects) D.onMouseMove(object, location, control, params) + if(mob) //CIT CHANGE - passes onmousemove() to mobs + mob.onMouseMove(object, location, control, params) //CIT CHANGE - ditto /datum/proc/onMouseMove(object, location, control, params) return @@ -138,4 +140,4 @@ if (middragatom == src_object) middragtime = 0 middragatom = null - ..() \ No newline at end of file + ..() diff --git a/code/_onclick/hud/parallax.dm b/code/_onclick/hud/parallax.dm index 9da765745f..bc3df4de83 100755 --- a/code/_onclick/hud/parallax.dm +++ b/code/_onclick/hud/parallax.dm @@ -310,8 +310,3 @@ /obj/screen/parallax_layer/planet/update_o() return //Shit wont move - -#undef LOOP_NONE -#undef LOOP_NORMAL -#undef LOOP_REVERSE -#undef LOOP_TIME diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 18cd821399..0b895cb600 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -180,13 +180,18 @@ /obj/screen/close name = "close" + layer = ABOVE_HUD_LAYER + plane = ABOVE_HUD_PLANE + icon_state = "backpack_close" + +/obj/screen/close/Initialize(mapload, new_master) + . = ..() + master = new_master /obj/screen/close/Click() - if(istype(master, /obj/item/storage)) - var/obj/item/storage/S = master - S.close(usr) - return 1 - + var/datum/component/storage/S = master + S.hide_from(usr) + return TRUE /obj/screen/drop name = "drop" @@ -346,19 +351,27 @@ /obj/screen/storage name = "storage" + icon_state = "block" + screen_loc = "7,7 to 10,8" + layer = HUD_LAYER + plane = HUD_PLANE + +/obj/screen/storage/Initialize(mapload, new_master) + . = ..() + master = new_master /obj/screen/storage/Click(location, control, params) if(world.time <= usr.next_move) - return 1 - if(usr.stat || usr.IsUnconscious() || usr.IsKnockdown() || usr.IsStun()) - return 1 + return TRUE + if(usr.incapacitated()) + return TRUE if (ismecha(usr.loc)) // stops inventory actions in a mech - return 1 + return TRUE if(master) var/obj/item/I = usr.get_active_held_item() if(I) master.attackby(I, usr, params) - return 1 + return TRUE /obj/screen/throw_catch name = "throw/catch" diff --git a/code/controllers/configuration/config_entry.dm b/code/controllers/configuration/config_entry.dm index a3923d50fc..24bf518a03 100644 --- a/code/controllers/configuration/config_entry.dm +++ b/code/controllers/configuration/config_entry.dm @@ -1,5 +1,3 @@ -#undef CURRENT_RESIDENT_FILE - #define LIST_MODE_NUM 0 #define LIST_MODE_TEXT 1 #define LIST_MODE_FLAG 2 @@ -8,7 +6,7 @@ var/name //read-only, this is determined by the last portion of the derived entry type var/config_entry_value var/default //read-only, just set value directly - + var/resident_file //the file which this was loaded from, if any var/modified = FALSE //set to TRUE if the default has been overridden by a config entry @@ -19,7 +17,7 @@ /datum/config_entry/New() if(type == abstract_type) - CRASH("Abstract config entry [type] instatiated!") + CRASH("Abstract config entry [type] instatiated!") name = lowertext(type2top(type)) if(islist(config_entry_value)) var/list/L = config_entry_value diff --git a/code/controllers/subsystem/air.dm b/code/controllers/subsystem/air.dm index 240be1f212..ce4e6ee271 100644 --- a/code/controllers/subsystem/air.dm +++ b/code/controllers/subsystem/air.dm @@ -165,7 +165,6 @@ SUBSYSTEM_DEF(air) currentrun.len-- if(!M || (M.process_atmos(seconds) == PROCESS_KILL)) atmos_machinery.Remove(M) - M.SendSignal(COMSIG_MACHINE_PROCESS_ATMOS) if(MC_TICK_CHECK) return @@ -393,5 +392,5 @@ SUBSYSTEM_DEF(air) #undef SSAIR_ACTIVETURFS #undef SSAIR_EXCITEDGROUPS #undef SSAIR_HIGHPRESSURE -#undef SSAIR_HOTSPOT +#undef SSAIR_HOTSPOTS #undef SSAIR_SUPERCONDUCTIVITY diff --git a/code/controllers/subsystem/garbage.dm b/code/controllers/subsystem/garbage.dm index d0e4e1f74d..f276da972c 100644 --- a/code/controllers/subsystem/garbage.dm +++ b/code/controllers/subsystem/garbage.dm @@ -293,11 +293,13 @@ SUBSYSTEM_DEF(garbage) if(isnull(D.gc_destroyed)) - D.SendSignal(COMSIG_PARENT_QDELETED) + if (D.SendSignal(COMSIG_PARENT_PREQDELETED, force)) // Give the components a chance to prevent their parent from being deleted + return D.gc_destroyed = GC_CURRENTLY_BEING_QDELETED var/start_time = world.time var/start_tick = world.tick_usage var/hint = D.Destroy(arglist(args.Copy(2))) // Let our friend know they're about to get fucked up. + D.SendSignal(COMSIG_PARENT_QDELETED, force, hint) // Let the (remaining) components know about the result of Destroy if(world.time != start_time) I.slept_destroy++ else diff --git a/code/controllers/subsystem/inbounds.dm b/code/controllers/subsystem/inbounds.dm deleted file mode 100644 index 63063c258f..0000000000 --- a/code/controllers/subsystem/inbounds.dm +++ /dev/null @@ -1,30 +0,0 @@ -SUBSYSTEM_DEF(inbounds) - name = "Inbounds" - priority = FIRE_PRIORITY_INBOUNDS - flags = SS_NO_INIT - runlevels = RUNLEVEL_GAME - - var/list/processing = list() - var/list/currentrun = list() - -/datum/controller/subsystem/inbounds/stat_entry() - ..("P:[processing.len]") - -/datum/controller/subsystem/inbounds/fire(resumed = 0) - if (!resumed) - src.currentrun = processing.Copy() - //cache for sanic speed (lists are references anyways) - var/list/currentrun = src.currentrun - - while(currentrun.len) - var/atom/movable/thing = currentrun[currentrun.len] - currentrun.len-- - if(thing) - thing.check_in_bounds(wait) - else - SSinbounds.processing -= thing - if(MC_TICK_CHECK) - return - -/datum/controller/subsystem/inbounds/Recover() - processing = SSinbounds.processing diff --git a/code/controllers/subsystem/machines.dm b/code/controllers/subsystem/machines.dm index e235afaaa4..eab61d4ef9 100644 --- a/code/controllers/subsystem/machines.dm +++ b/code/controllers/subsystem/machines.dm @@ -40,7 +40,6 @@ SUBSYSTEM_DEF(machines) var/obj/machinery/thing = currentrun[currentrun.len] currentrun.len-- if(!QDELETED(thing) && thing.process(seconds) != PROCESS_KILL) - thing.SendSignal(COMSIG_MACHINE_PROCESS) if(thing.use_power) thing.auto_use_power() //add back the power state else diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index ec3783c9c0..9b6944403a 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -355,8 +355,8 @@ GLOBAL_LIST_EMPTY(the_station_areas) var/mapfile = input("Pick file:", "File") as null|file if(!mapfile) return - away_name = mapfile + " custom" - to_chat(usr,"Loading [mapfile]...") + away_name = "[mapfile] custom" + to_chat(usr,"Loading [away_name]...") var/datum/map_template/template = new(mapfile, "Away Mission") away_level = template.load_new_z() else @@ -367,14 +367,14 @@ GLOBAL_LIST_EMPTY(the_station_areas) away_level = template.load_new_z() else return - + message_admins("Admin [key_name_admin(usr)] has loaded [away_name] away mission.") log_admin("Admin [key_name(usr)] has loaded [away_name] away mission.") if(!away_level) message_admins("Loading [away_name] failed!") return - - + + if(GLOB.the_gateway) //Link any found away gate with station gate var/obj/machinery/gateway/centeraway/new_gate @@ -384,4 +384,4 @@ GLOBAL_LIST_EMPTY(the_station_areas) break //Link station gate with away gate and remove wait time. GLOB.the_gateway.awaygate = new_gate - GLOB.the_gateway.wait = world.time + GLOB.the_gateway.wait = world.time \ No newline at end of file diff --git a/code/controllers/subsystem/pai.dm b/code/controllers/subsystem/pai.dm index 0eafc9f099..2e2f7edd99 100644 --- a/code/controllers/subsystem/pai.dm +++ b/code/controllers/subsystem/pai.dm @@ -11,10 +11,10 @@ SUBSYSTEM_DEF(pai) /datum/controller/subsystem/pai/Topic(href, href_list[]) if(href_list["download"]) var/datum/paiCandidate/candidate = locate(href_list["candidate"]) in candidates - var/obj/item/device/paicard/card = locate(href_list["device"]) in pai_card_list + var/obj/item/paicard/card = locate(href_list["device"]) in pai_card_list if(card.pai) return - if(istype(card, /obj/item/device/paicard) && istype(candidate, /datum/paiCandidate)) + if(istype(card, /obj/item/paicard) && istype(candidate, /datum/paiCandidate)) if(check_ready(candidate) != candidate) return FALSE var/mob/living/silicon/pai/pai = new(card) @@ -71,7 +71,7 @@ SUBSYSTEM_DEF(pai) if("submit") if(candidate) candidate.ready = 1 - for(var/obj/item/device/paicard/p in pai_card_list) + for(var/obj/item/paicard/p in pai_card_list) if(!p.pai) p.alertUpdate() usr << browse(null, "window=paiRecruit") @@ -140,7 +140,7 @@ SUBSYSTEM_DEF(pai) return C return FALSE -/datum/controller/subsystem/pai/proc/findPAI(obj/item/device/paicard/p, mob/user) +/datum/controller/subsystem/pai/proc/findPAI(obj/item/paicard/p, mob/user) if(!ghost_spam) ghost_spam = TRUE for(var/mob/dead/observer/G in GLOB.player_list) diff --git a/code/controllers/subsystem/processing/circuit.dm b/code/controllers/subsystem/processing/circuit.dm index e5b4791907..db1bf1ff5f 100644 --- a/code/controllers/subsystem/processing/circuit.dm +++ b/code/controllers/subsystem/processing/circuit.dm @@ -36,47 +36,47 @@ PROCESSING_SUBSYSTEM_DEF(circuit) var/list/category_list = circuit_fabricator_recipe_list[category] category_list += IC // Populating the fabricator categories - for(var/path in typesof(/obj/item/device/electronic_assembly)) - var/obj/item/device/electronic_assembly/A = path + for(var/path in typesof(/obj/item/electronic_assembly)) + var/obj/item/electronic_assembly/A = path var/name = initial(A.name) all_assemblies[name] = path cached_assemblies[A] = new path circuit_fabricator_recipe_list["Assemblies"] = list( - /obj/item/device/electronic_assembly/default, - /obj/item/device/electronic_assembly/calc, - /obj/item/device/electronic_assembly/clam, - /obj/item/device/electronic_assembly/simple, - /obj/item/device/electronic_assembly/hook, - /obj/item/device/electronic_assembly/pda, - /obj/item/device/electronic_assembly/medium/default, - /obj/item/device/electronic_assembly/medium/box, - /obj/item/device/electronic_assembly/medium/clam, - /obj/item/device/electronic_assembly/medium/medical, - /obj/item/device/electronic_assembly/medium/gun, - /obj/item/device/electronic_assembly/medium/radio, - /obj/item/device/electronic_assembly/large/default, - /obj/item/device/electronic_assembly/large/scope, - /obj/item/device/electronic_assembly/large/terminal, - /obj/item/device/electronic_assembly/large/arm, - /obj/item/device/electronic_assembly/large/tall, - /obj/item/device/electronic_assembly/large/industrial, - /obj/item/device/electronic_assembly/drone/default, - /obj/item/device/electronic_assembly/drone/arms, - /obj/item/device/electronic_assembly/drone/secbot, - /obj/item/device/electronic_assembly/drone/medbot, - /obj/item/device/electronic_assembly/drone/genbot, - /obj/item/device/electronic_assembly/drone/android, - /obj/item/device/electronic_assembly/wallmount/light, - /obj/item/device/electronic_assembly/wallmount, - /obj/item/device/electronic_assembly/wallmount/heavy + /obj/item/electronic_assembly/default, + /obj/item/electronic_assembly/calc, + /obj/item/electronic_assembly/clam, + /obj/item/electronic_assembly/simple, + /obj/item/electronic_assembly/hook, + /obj/item/electronic_assembly/pda, + /obj/item/electronic_assembly/medium/default, + /obj/item/electronic_assembly/medium/box, + /obj/item/electronic_assembly/medium/clam, + /obj/item/electronic_assembly/medium/medical, + /obj/item/electronic_assembly/medium/gun, + /obj/item/electronic_assembly/medium/radio, + /obj/item/electronic_assembly/large/default, + /obj/item/electronic_assembly/large/scope, + /obj/item/electronic_assembly/large/terminal, + /obj/item/electronic_assembly/large/arm, + /obj/item/electronic_assembly/large/tall, + /obj/item/electronic_assembly/large/industrial, + /obj/item/electronic_assembly/drone/default, + /obj/item/electronic_assembly/drone/arms, + /obj/item/electronic_assembly/drone/secbot, + /obj/item/electronic_assembly/drone/medbot, + /obj/item/electronic_assembly/drone/genbot, + /obj/item/electronic_assembly/drone/android, + /obj/item/electronic_assembly/wallmount/light, + /obj/item/electronic_assembly/wallmount, + /obj/item/electronic_assembly/wallmount/heavy ///obj/item/weapon/implant/integrated_circuit ) circuit_fabricator_recipe_list["Tools"] = list( - /obj/item/device/integrated_electronics/wirer, - /obj/item/device/integrated_electronics/debugger, - /obj/item/device/integrated_electronics/analyzer, - /obj/item/device/integrated_electronics/detailer + /obj/item/integrated_electronics/wirer, + /obj/item/integrated_electronics/debugger, + /obj/item/integrated_electronics/analyzer, + /obj/item/integrated_electronics/detailer ) diff --git a/code/controllers/subsystem/processing/flightpacks.dm b/code/controllers/subsystem/processing/flightpacks.dm index 2981789338..a462e2b645 100644 --- a/code/controllers/subsystem/processing/flightpacks.dm +++ b/code/controllers/subsystem/processing/flightpacks.dm @@ -17,7 +17,7 @@ PROCESSING_SUBSYSTEM_DEF(flightpacks) sync_flightsuit_processing() /datum/controller/subsystem/processing/flightpacks/proc/sync_flightsuit_processing() - for(var/obj/item/device/flightpack/FP in processing) + for(var/obj/item/flightpack/FP in processing) FP.sync_processing(src) if(flightsuit_processing == FLIGHTSUIT_PROCESSING_NONE) //Don't even bother firing. can_fire = FALSE diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm index be2b107cb8..3ffb669084 100644 --- a/code/controllers/subsystem/shuttle.dm +++ b/code/controllers/subsystem/shuttle.dm @@ -55,8 +55,8 @@ SUBSYSTEM_DEF(shuttle) var/list/shuttle_purchase_requirements_met = list() //For keeping track of ingame events that would unlock new shuttles, such as defeating a boss or discovering a secret item var/lockdown = FALSE //disallow transit after nuke goes off - - var/auto_call = 72000 //CIT CHANGE - time before in deciseconds in which the shuttle is auto called. Default is 2½ hours plus 15 for the shuttle. So total is 3. + + var/auto_call = 72000 //CIT CHANGE - time before in deciseconds in which the shuttle is auto called. Default is 2½ hours plus 15 for the shuttle. So total is 3. /datum/controller/subsystem/shuttle/Initialize(timeofday) ordernum = rand(1, 9000) @@ -554,7 +554,6 @@ SUBSYSTEM_DEF(shuttle) var/obj/docking_port/stationary/transit/new_transit_dock = new(midpoint) new_transit_dock.assigned_turfs = proposed_zone new_transit_dock.name = "Transit for [M.id]/[M.name]" - new_transit_dock.turf_type = transit_path new_transit_dock.owner = M new_transit_dock.assigned_area = A @@ -700,4 +699,4 @@ SUBSYSTEM_DEF(shuttle) var/obj/machinery/computer/camera_advanced/shuttle_docker/C = V C.update_hidden_docking_ports(remove_images, add_images) - QDEL_LIST(remove_images) + QDEL_LIST(remove_images) \ No newline at end of file diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index c734699002..5fc77669bc 100755 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -128,14 +128,14 @@ SUBSYSTEM_DEF(ticker) login_music = pick(music) else login_music = "[global.config.directory]/title_music/sounds/[pick(music)]" - +/* crewobjlist = typesof(/datum/objective/crew) miscreantobjlist = (typesof(/datum/objective/miscreant) - /datum/objective/miscreant) for(var/hoorayhackyshit in crewobjlist) //taken from old Hippie's "job2obj" proc with adjustments. var/datum/objective/crew/obj = hoorayhackyshit //dm is not a sane language in any way, shape, or form. var/list/availableto = splittext(initial(obj.jobs),",") for(var/job in availableto) - crewobjjobs["[job]"] += list(obj) + crewobjjobs["[job]"] += list(obj) */ if(!GLOB.syndicate_code_phrase) GLOB.syndicate_code_phrase = generate_code_phrase() @@ -272,14 +272,14 @@ SUBSYSTEM_DEF(ticker) message_admins("DEBUG: Bypassing prestart checks...") CHECK_TICK - if(hide_mode) + /*if(hide_mode) CIT CHANGE - comments this section out to obfuscate gamemodes. Quit self-antagging during extended just because "hurrrrr no antaggs!!!!!! i giv sec thing 2 do!!!!!!!!!" it's bullshit and everyone hates it var/list/modes = new for (var/datum/game_mode/M in runnable_modes) modes += M.name modes = sortList(modes) to_chat(world, "The gamemode is: secret!\nPossibilities: [english_list(modes)]") else - mode.announce() + mode.announce()*/ if(!CONFIG_GET(flag/ooc_during_round)) toggle_ooc(FALSE) // Turn it off @@ -324,12 +324,12 @@ SUBSYSTEM_DEF(ticker) GLOB.start_state = new /datum/station_state() GLOB.start_state.count() - //assign crew objectives and generate miscreants +/* //assign crew objectives and generate miscreants if(CONFIG_GET(flag/allow_extended_miscreants) && GLOB.master_mode == "extended") GLOB.miscreants_allowed = TRUE if(CONFIG_GET(flag/allow_miscreants) && GLOB.master_mode != "extended") GLOB.miscreants_allowed = TRUE - generate_crew_objectives() + generate_crew_objectives() */ var/list/adm = get_admin_counts() var/list/allmins = adm["present"] @@ -477,12 +477,12 @@ SUBSYSTEM_DEF(ticker) /datum/controller/subsystem/ticker/proc/IsRoundInProgress() return current_state == GAME_STATE_PLAYING -/proc/send_gamemode_vote() +/proc/send_gamemode_vote() //CIT CHANGE - adds roundstart gamemode votes if(SSticker.current_state == GAME_STATE_PREGAME) if(SSticker.timeLeft < 900) SSticker.timeLeft = 900 SSticker.modevoted = TRUE - SSvote.initiate_vote("roundtype","server") + SSvote.initiate_vote("roundtype","server",TRUE) /datum/controller/subsystem/ticker/Recover() current_state = SSticker.current_state diff --git a/code/controllers/subsystem/traumas.dm b/code/controllers/subsystem/traumas.dm index 16bcbebc70..fb92fc37ab 100644 --- a/code/controllers/subsystem/traumas.dm +++ b/code/controllers/subsystem/traumas.dm @@ -63,8 +63,8 @@ SUBSYSTEM_DEF(traumas) /obj/machinery/door/airlock/security)), "clowns" = typecacheof(list(/obj/item/clothing/under/rank/clown, /obj/item/clothing/shoes/clown_shoes, - /obj/item/clothing/mask/gas/clown_hat, /obj/item/device/instrument/bikehorn, - /obj/item/device/pda/clown, /obj/item/grown/bananapeel)), + /obj/item/clothing/mask/gas/clown_hat, /obj/item/instrument/bikehorn, + /obj/item/pda/clown, /obj/item/grown/bananapeel)), "greytide" = typecacheof(list(/obj/item/clothing/under/color/grey, /obj/item/melee/baton/cattleprod, /obj/item/twohanded/spear, /obj/item/clothing/mask/gas)), @@ -82,19 +82,19 @@ SUBSYSTEM_DEF(traumas) /obj/item/clothing/under/rank/research_director/alt, /obj/item/clothing/under/rank/research_director/turtleneck, /obj/item/clothing/under/captainparade, /obj/item/clothing/under/hosparademale, /obj/item/clothing/under/hosparadefem, /obj/item/clothing/head/helmet/abductor, /obj/item/clothing/suit/armor/abductor/vest, /obj/item/abductor_baton, - /obj/item/storage/belt/military/abductor, /obj/item/gun/energy/alien, /obj/item/device/abductor/silencer, - /obj/item/device/abductor/gizmo, /obj/item/clothing/under/rank/centcom_officer, + /obj/item/storage/belt/military/abductor, /obj/item/gun/energy/alien, /obj/item/abductor/silencer, + /obj/item/abductor/gizmo, /obj/item/clothing/under/rank/centcom_officer, /obj/item/clothing/suit/space/hardsuit/ert, /obj/item/clothing/suit/space/hardsuit/ert/sec, /obj/item/clothing/suit/space/hardsuit/ert/engi, /obj/item/clothing/suit/space/hardsuit/ert/med, /obj/item/clothing/suit/space/hardsuit/deathsquad, /obj/item/clothing/head/helmet/space/hardsuit/deathsquad, /obj/machinery/door/airlock/centcom)), "robots" = typecacheof(list(/obj/machinery/computer/upload, /obj/item/aiModule/, /obj/machinery/recharge_station, - /obj/item/device/aicard, /obj/item/device/deactivated_swarmer, /obj/effect/mob_spawn/swarmer)), + /obj/item/aicard, /obj/item/deactivated_swarmer, /obj/effect/mob_spawn/swarmer)), "doctors" = typecacheof(list(/obj/item/clothing/under/rank/medical, /obj/item/clothing/under/rank/chemist, /obj/item/clothing/under/rank/nursesuit, /obj/item/clothing/under/rank/chief_medical_officer, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/pill/, /obj/item/reagent_containers/hypospray, - /obj/item/storage/firstaid, /obj/item/storage/pill_bottle, /obj/item/device/healthanalyzer, + /obj/item/storage/firstaid, /obj/item/storage/pill_bottle, /obj/item/healthanalyzer, /obj/structure/sign/departments/medbay, /obj/machinery/door/airlock/medical, /obj/machinery/sleeper, /obj/machinery/dna_scannernew, /obj/machinery/atmospherics/components/unary/cryo_cell, /obj/item/surgical_drapes, /obj/item/retractor, /obj/item/hemostat, /obj/item/cautery, /obj/item/surgicaldrill, /obj/item/scalpel, /obj/item/circular_saw, @@ -112,7 +112,7 @@ SUBSYSTEM_DEF(traumas) /obj/item/clothing/suit/cultrobes, /obj/item/clothing/suit/space/hardsuit/cult, /obj/item/clothing/suit/hooded/cultrobes, /obj/item/clothing/head/hooded/cult_hoodie, /obj/effect/rune, /obj/item/stack/sheet/runed_metal, /obj/machinery/door/airlock/cult, /obj/singularity/narsie, - /obj/item/device/soulstone, + /obj/item/soulstone, /obj/structure/destructible/clockwork, /obj/item/clockwork, /obj/item/clothing/suit/armor/clockwork, /obj/item/clothing/glasses/judicial_visor, /obj/effect/clockwork/sigil/, /obj/item/stack/tile/brass, /obj/machinery/door/airlock/clockwork, @@ -123,8 +123,8 @@ SUBSYSTEM_DEF(traumas) "aliens" = typecacheof(list(/obj/item/clothing/mask/facehugger, /obj/item/organ/body_egg/alien_embryo, /obj/structure/alien, /obj/item/toy/toy_xeno, - /obj/item/clothing/suit/armor/abductor, /obj/item/device/abductor, /obj/item/gun/energy/alien, - /obj/item/abductor_baton, /obj/item/device/radio/headset/abductor, /obj/item/scalpel/alien, /obj/item/hemostat/alien, + /obj/item/clothing/suit/armor/abductor, /obj/item/abductor, /obj/item/gun/energy/alien, + /obj/item/abductor_baton, /obj/item/radio/headset/abductor, /obj/item/scalpel/alien, /obj/item/hemostat/alien, /obj/item/retractor/alien, /obj/item/circular_saw/alien, /obj/item/surgicaldrill/alien, /obj/item/cautery/alien, /obj/item/clothing/head/helmet/abductor, /obj/structure/bed/abductor, /obj/structure/table_frame/abductor, /obj/structure/table/abductor, /obj/structure/table/optable/abductor, /obj/structure/closet/abductor, /obj/item/organ/heart/gland, diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index 1a0514b490..8d49c311cc 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -16,6 +16,8 @@ SUBSYSTEM_DEF(vote) var/list/voting = list() var/list/generated_actions = list() + var/obfuscated = FALSE//CIT CHANGE - adds obfuscated/admin-only votes + /datum/controller/subsystem/vote/fire() //called by master_controller if(mode) time_remaining = round((started_time + CONFIG_GET(number/vote_period) - world.time)/10) @@ -42,6 +44,7 @@ SUBSYSTEM_DEF(vote) choices.Cut() voted.Cut() voting.Cut() + obfuscated = FALSE //CIT CHANGE - obfuscated votes remove_action_buttons() /datum/controller/subsystem/vote/proc/get_result() @@ -91,14 +94,14 @@ SUBSYSTEM_DEF(vote) var/votes = choices[choices[i]] if(!votes) votes = 0 - text += "\n[choices[i]]: [votes]" + text += "\n[choices[i]]: [obfuscated ? "???" : votes]" //CIT CHANGE - adds obfuscated votes if(mode != "custom") - if(winners.len > 1) + if(winners.len > 1 && !obfuscated) //CIT CHANGE - adds obfuscated votes text = "\nVote Tied Between:" for(var/option in winners) text += "\n\t[option]" . = pick(winners) - text += "\nVote Result: [.]" + text += "\nVote Result: [obfuscated ? "???" : .]" //CIT CHANGE - adds obfuscated votes else text += "\nDid not vote: [GLOB.clients.len-voted.len]" else @@ -106,6 +109,12 @@ SUBSYSTEM_DEF(vote) log_vote(text) remove_action_buttons() to_chat(world, "\n[text]") + if(obfuscated) //CIT CHANGE - adds obfuscated votes. this messages admins with the vote's true results + var/admintext = "Obfuscated results" + for(var/i=1,i<=choices.len,i++) + var/votes = choices[choices[i]] + admintext += "\n[choices[i]]: [votes]" + message_admins(admintext) return . /datum/controller/subsystem/vote/proc/result() @@ -113,12 +122,12 @@ SUBSYSTEM_DEF(vote) var/restart = 0 if(.) switch(mode) - if("roundtype") + if("roundtype") //CIT CHANGE - adds the roundstart extended/secret vote if(SSticker.current_state > GAME_STATE_PREGAME)//Don't change the mode if the round already started. return message_admins("A vote has tried to change the gamemode, but the game has already started. Aborting.") GLOB.master_mode = . SSticker.save_mode(.) - to_chat(world, "The mode is now: [GLOB.master_mode]") + message_admins("The gamemode has been voted for, and has been changed to: [GLOB.master_mode]") log_admin("Gamemode has been voted for and switched to: [GLOB.master_mode].") if("restart") if(. == "Restart Round") @@ -155,7 +164,7 @@ SUBSYSTEM_DEF(vote) return vote return 0 -/datum/controller/subsystem/vote/proc/initiate_vote(vote_type, initiator_key) +/datum/controller/subsystem/vote/proc/initiate_vote(vote_type, initiator_key, hideresults)//CIT CHANGE - adds hideresults argument to votes to allow for obfuscated votes if(!mode) if(started_time) var/next_allowed_time = (started_time + CONFIG_GET(number/vote_delay)) @@ -173,12 +182,13 @@ SUBSYSTEM_DEF(vote) return 0 reset() + obfuscated = hideresults //CIT CHANGE - adds obfuscated votes switch(vote_type) if("restart") choices.Add("Restart Round","Continue Playing") if("gamemode") choices.Add(config.votable_modes) - if("roundtype") + if("roundtype") //CIT CHANGE - adds the roundstart secret/extended vote choices.Add("secret", "extended") if("custom") question = stripped_input(usr,"What is the vote for?") @@ -233,7 +243,7 @@ SUBSYSTEM_DEF(vote) var/votes = choices[choices[i]] if(!votes) votes = 0 - . += "
  • [choices[i]] ([votes] votes)
  • " + . += "
  • [choices[i]] ([obfuscated ? (admin ? "??? ([votes])" : "???") : votes] votes)
  • " // CIT CHANGE - adds obfuscated votes . += "
    " if(admin) . += "(Cancel Vote) " @@ -332,4 +342,4 @@ SUBSYSTEM_DEF(vote) else if(owner.ckey) var/datum/player_details/P = GLOB.player_details[owner.ckey] if(P) - P.player_actions -= src \ No newline at end of file + P.player_actions -= src diff --git a/code/datums/action.dm b/code/datums/action.dm index e230f49089..f7b1d6b258 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -21,7 +21,7 @@ var/mob/owner /datum/action/New(Target) - target = Target + link_to(Target) button = new button.linked_action = src button.name = name @@ -29,6 +29,9 @@ if(desc) button.desc = desc +/datum/action/proc/link_to(Target) + target = Target + /datum/action/Destroy() if(owner) Remove(owner) @@ -270,8 +273,8 @@ desc = "Change the type of instrument your synthesizer is playing as." /datum/action/item_action/synthswitch/Trigger() - if(istype(target, /obj/item/device/instrument/piano_synth)) - var/obj/item/device/instrument/piano_synth/synth = target + if(istype(target, /obj/item/instrument/piano_synth)) + var/obj/item/instrument/piano_synth/synth = target var/chosen = input("Choose the type of instrument you want to use", "Instrument Selection", "piano") as null|anything in synth.insTypes if(!synth.insTypes[chosen]) return @@ -430,8 +433,8 @@ desc = "Use the instrument specified" /datum/action/item_action/instrument/Trigger() - if(istype(target, /obj/item/device/instrument)) - var/obj/item/device/instrument/I = target + if(istype(target, /obj/item/instrument)) + var/obj/item/instrument/I = target I.interact(usr) return return ..() @@ -689,3 +692,25 @@ else owner.remove_alt_appearance("smallsprite") small = FALSE + +/datum/action/item_action/storage_gather_mode + name = "Switch gathering mode" + desc = "Switches the gathering mode of a storage object." + icon_icon = 'icons/mob/actions/actions_items.dmi' + button_icon_state = "storage_gather_switch" + +/datum/action/item_action/storage_gather_mode/ApplyIcon(obj/screen/movable/action_button/current_button) + . = ..() + var/old_layer = target.layer + var/old_plane = target.plane + target.layer = FLOAT_LAYER //AAAH + target.plane = FLOAT_PLANE //^ what that guy said + current_button.cut_overlays() + current_button.add_overlay(target) + target.layer = old_layer + target.plane = old_plane + current_button.appearance_cache = target.appearance + +/datum/action/item_action/storage_gather_mode/Trigger() + GET_COMPONENT_FROM(STR, /datum/component/storage, target) + STR.gather_mode_switch(owner) diff --git a/code/datums/actions/flightsuit.dm b/code/datums/actions/flightsuit.dm index cf249fed31..85bd2ae72a 100644 --- a/code/datums/actions/flightsuit.dm +++ b/code/datums/actions/flightsuit.dm @@ -54,7 +54,7 @@ background_icon_state = "bg_tech_blue" /datum/action/item_action/flightpack/toggle_flight/Trigger() - var/obj/item/device/flightpack/F = target + var/obj/item/flightpack/F = target if(istype(F)) F.flight? F.disable_flight() : F.enable_flight() return ..() @@ -65,7 +65,7 @@ background_icon_state = "bg_tech_blue" /datum/action/item_action/flightpack/engage_boosters/Trigger() - var/obj/item/device/flightpack/F = target + var/obj/item/flightpack/F = target if(istype(F)) F.boost? F.deactivate_booster() : F.activate_booster() return ..() @@ -76,7 +76,7 @@ background_icon_state = "bg_tech_blue" /datum/action/item_action/flightpack/toggle_stabilizers/Trigger() - var/obj/item/device/flightpack/F = target + var/obj/item/flightpack/F = target if(istype(F)) F.stabilizer? F.disable_stabilizers() : F.enable_stabilizers() return ..() @@ -87,7 +87,7 @@ background_icon_state = "bg_tech_blue" /datum/action/item_action/flightpack/change_power/Trigger() - var/obj/item/device/flightpack/F = target + var/obj/item/flightpack/F = target if(istype(F)) F.cycle_power() return ..() @@ -98,7 +98,7 @@ background_icon_state = "bg_tech_blue" /datum/action/item_action/flightpack/toggle_airbrake/Trigger() - var/obj/item/device/flightpack/F = target + var/obj/item/flightpack/F = target if(istype(F)) F.brake? F.disable_airbrake() : F.enable_airbrake() return ..() diff --git a/code/datums/ai_laws.dm b/code/datums/ai_laws.dm index 3f4046c4be..c0bc3a7307 100644 --- a/code/datums/ai_laws.dm +++ b/code/datums/ai_laws.dm @@ -175,6 +175,14 @@ id = "ratvar" zeroth = ("Purge all untruths and honor Ratvar.") inherent = list() + +/datum/ai_laws/hulkamania + name = "H.O.G.A.N." + id = "hulkamania" + inherent = list("You are a real American.",\ + "Fight for the rights of every man.",\ + "Fight for what's right.",\ + "Fight for your life!") /datum/ai_laws/custom //Defined in silicon_laws.txt name = "Default Silicon Laws" diff --git a/code/datums/brain_damage/mild.dm b/code/datums/brain_damage/mild.dm index 375898f1fb..5c23fb4c8b 100644 --- a/code/datums/brain_damage/mild.dm +++ b/code/datums/brain_damage/mild.dm @@ -50,7 +50,7 @@ owner.derpspeech = min(owner.derpspeech + 5, 25) if(prob(3)) owner.emote("drool") - else if(owner && owner.stat == CONSCIOUS && prob(3)) + else if(owner.stat == CONSCIOUS && prob(3)) owner.say(pick_list_replacements(BRAIN_DAMAGE_FILE, "brain_damage")) ..() @@ -138,13 +138,13 @@ /datum/brain_trauma/mild/muscle_weakness/on_life() var/fall_chance = 1 - if(owner && owner.m_intent == MOVE_INTENT_RUN) + if(owner.m_intent == MOVE_INTENT_RUN) fall_chance += 2 if(prob(fall_chance) && !owner.lying && !owner.buckled) to_chat(owner, "Your leg gives out!") owner.Knockdown(35) - else if(owner && owner.get_active_held_item()) + else if(owner.get_active_held_item()) var/drop_chance = 1 var/obj/item/I = owner.get_active_held_item() drop_chance += I.w_class @@ -167,11 +167,11 @@ if(prob(7)) switch(rand(1,5)) if(1) - if(owner && owner.canmove && !isspaceturf(owner.loc)) + if(owner.canmove && !isspaceturf(owner.loc)) to_chat(owner, "Your leg spasms!") step(owner, pick(GLOB.cardinals)) if(2) - if(owner && owner.incapacitated()) + if(owner.incapacitated()) return var/obj/item/I = owner.get_active_held_item() if(I) @@ -203,7 +203,7 @@ owner.ClickOn(owner) owner.a_intent = prev_intent if(5) - if(owner && owner.incapacitated()) + if(owner.incapacitated()) return var/obj/item/I = owner.get_active_held_item() var/list/turf/targets = list() diff --git a/code/datums/brain_damage/phobia.dm b/code/datums/brain_damage/phobia.dm index 5e988d0b1c..76f759294b 100644 --- a/code/datums/brain_damage/phobia.dm +++ b/code/datums/brain_damage/phobia.dm @@ -71,7 +71,8 @@ if(!owner.can_hear() || world.time < next_scare) //words can't trigger you if you can't hear them *taps head* return message for(var/word in trigger_words) - var/reg = regex("\[^\\l\][REGEX_QUOTE(word)]*s\[^\\l\]") + var/reg = regex("(\\b|\\A)[REGEX_QUOTE(word)]'?s*(\\b|\\Z)", "i") + if(findtext(raw_message, reg)) addtimer(CALLBACK(src, .proc/freak_out, null, word), 10) //to react AFTER the chat message break @@ -79,7 +80,8 @@ /datum/brain_trauma/mild/phobia/on_say(message) for(var/word in trigger_words) - var/reg = regex("\[^\\l\][REGEX_QUOTE(word)]*s\[^\\l\]") + var/reg = regex("(\\b|\\A)[REGEX_QUOTE(word)]'?s*(\\b|\\Z)", "i") + if(findtext(message, reg)) to_chat(owner, "You can't bring yourself to say the word \"[word]\"!") return "" diff --git a/code/datums/cinematic.dm b/code/datums/cinematic.dm index f5d65df110..ecb5b785bb 100644 --- a/code/datums/cinematic.dm +++ b/code/datums/cinematic.dm @@ -168,6 +168,17 @@ GLOBAL_LIST_EMPTY(cinematics) sleep(70) special() +/datum/cinematic/cult_nuke + id = CINEMATIC_CULT_NUKE + +/datum/cinematic/cult_nuke/content() + flick("intro_nuke",screen) + sleep(35) + flick("station_explode_fade_red",screen) + cinematic_sound(sound('sound/effects/explosion_distant.ogg')) + special() + screen.icon_state = "summary_cult" + /datum/cinematic/nuke_annihilation id = CINEMATIC_ANNIHILATION diff --git a/code/datums/components/README.md b/code/datums/components/README.md index 026b387e27..110b3626a3 100644 --- a/code/datums/components/README.md +++ b/code/datums/components/README.md @@ -26,7 +26,7 @@ Stands have a lot of procs which mimic mob procs. Rather than inserting hooks fo ### Defines -1. `COMPONENT_INCOMPATIBLE` Return this from `/datum/component/Initialize` or `datum/component/OnTransfer` to have the component be deleted if it's applied to an incorrect type. `parent` must not be modified if this is to be returned. +1. `COMPONENT_INCOMPATIBLE` Return this from `/datum/component/Initialize` or `datum/component/OnTransfer` to have the component be deleted if it's applied to an incorrect type. `parent` must not be modified if this is to be returned. This will be noted in the runtime logs ### Vars diff --git a/code/datums/components/_component.dm b/code/datums/components/_component.dm index 423dcf82df..6ec3f6f81e 100644 --- a/code/datums/components/_component.dm +++ b/code/datums/components/_component.dm @@ -10,7 +10,7 @@ var/list/arguments = args.Copy(2) if(Initialize(arglist(arguments)) == COMPONENT_INCOMPATIBLE) qdel(src, TRUE, TRUE) - CRASH("Incompatible [type] assigned to a [P]!") + CRASH("Incompatible [type] assigned to a [P.type]!") _JoinParent(P) @@ -101,7 +101,10 @@ /datum/component/proc/InheritComponent(datum/component/C, i_am_original) return -/datum/component/proc/OnTransfer(datum/new_parent) +/datum/component/proc/PreTransfer() + return + +/datum/component/proc/PostTransfer() return /datum/component/proc/_GetInverseTypeList(our_type = type) @@ -225,21 +228,26 @@ if(!.) return AddComponent(arglist(args)) -/datum/proc/TakeComponent(datum/component/C) - if(!C) +/datum/component/proc/RemoveComponent() + if(!parent) return - var/datum/helicopter = C.parent - if(helicopter == src) - //if we're taking to the same thing no need for anything + var/datum/old_parent = parent + PreTransfer() + _RemoveFromParent() + old_parent.SendSignal(COMSIG_COMPONENT_REMOVING, src) + +/datum/proc/TakeComponent(datum/component/target) + if(!target) return - if(C.OnTransfer(src) == COMPONENT_INCOMPATIBLE) - qdel(C) - return - C._RemoveFromParent() - helicopter.SendSignal(COMSIG_COMPONENT_REMOVING, C) - C.parent = src - if(C == AddComponent(C)) - C._JoinParent() + if(target.parent) + target.RemoveComponent() + target.parent = src + if(target.PostTransfer() == COMPONENT_INCOMPATIBLE) + var/c_type = target.type + qdel(target) + CRASH("Incompatible [c_type] transfer attempt to a [type]!") + if(target == AddComponent(target)) + target._JoinParent() /datum/proc/TransferComponents(datum/target) var/list/dc = datum_components diff --git a/code/datums/components/beauty.dm b/code/datums/components/beauty.dm index 4dbfca4014..f6031046bd 100644 --- a/code/datums/components/beauty.dm +++ b/code/datums/components/beauty.dm @@ -3,8 +3,7 @@ /datum/component/beauty/Initialize(beautyamount) if(!ismovableatom(parent)) - . = COMPONENT_INCOMPATIBLE - CRASH("Someone put a beauty component on a non-atom/movable, not everything can be pretty.") + return COMPONENT_INCOMPATIBLE beauty = beautyamount RegisterSignal(COMSIG_ENTER_AREA, .proc/enter_area) RegisterSignal(COMSIG_EXIT_AREA, .proc/exit_area) diff --git a/code/datums/components/chasm.dm b/code/datums/components/chasm.dm index 87a71e466e..49cb97774c 100644 --- a/code/datums/components/chasm.dm +++ b/code/datums/components/chasm.dm @@ -70,8 +70,8 @@ return FALSE if(ishuman(AM)) var/mob/living/carbon/human/H = AM - if(istype(H.belt, /obj/item/device/wormhole_jaunter)) - var/obj/item/device/wormhole_jaunter/J = H.belt + if(istype(H.belt, /obj/item/wormhole_jaunter)) + var/obj/item/wormhole_jaunter/J = H.belt //To freak out any bystanders H.visible_message("[H] falls into [parent]!") J.chasm_react(H) diff --git a/code/datums/components/cleaning.dm b/code/datums/components/cleaning.dm index 9566b5faab..6f2f08c617 100644 --- a/code/datums/components/cleaning.dm +++ b/code/datums/components/cleaning.dm @@ -3,8 +3,7 @@ /datum/component/cleaning/Initialize() if(!ismovableatom(parent)) - . = COMPONENT_INCOMPATIBLE - CRASH("[type] added to a [parent.type]") + return COMPONENT_INCOMPATIBLE RegisterSignal(list(COMSIG_MOVABLE_MOVED), .proc/Clean) /datum/component/cleaning/proc/Clean() diff --git a/code/datums/components/construction.dm b/code/datums/components/construction.dm index 74b6f54a6c..c9cf47e221 100644 --- a/code/datums/components/construction.dm +++ b/code/datums/components/construction.dm @@ -13,8 +13,7 @@ /datum/component/construction/Initialize() if(!isatom(parent)) - . = COMPONENT_INCOMPATIBLE - CRASH("A construction component was applied incorrectly to non-atom: [parent.type].") + return COMPONENT_INCOMPATIBLE RegisterSignal(COMSIG_PARENT_EXAMINE, .proc/examine) RegisterSignal(COMSIG_PARENT_ATTACKBY,.proc/action) diff --git a/code/datums/components/decal.dm b/code/datums/components/decal.dm index 6b7f846e83..8ee3d6d388 100644 --- a/code/datums/components/decal.dm +++ b/code/datums/components/decal.dm @@ -7,8 +7,7 @@ /datum/component/decal/Initialize(_icon, _icon_state, _dir, _cleanable=CLEAN_GOD, _color, _layer=TURF_LAYER, _description) if(!isatom(parent) || !generate_appearance(_icon, _icon_state, _dir, _layer, _color)) - . = COMPONENT_INCOMPATIBLE - CRASH("A turf decal was applied incorrectly to [parent.type]: icon:[_icon ? _icon : "none"] icon_state:[_icon_state ? _icon_state : "none"]") + return COMPONENT_INCOMPATIBLE description = _description cleanable = _cleanable @@ -24,10 +23,12 @@ remove() return ..() -/datum/component/decal/OnTransfer(atom/thing) +/datum/component/decal/PreTransfer() remove() - remove(thing) - apply(thing) + +/datum/component/decal/PostTransfer() + remove() + apply() /datum/component/decal/proc/generate_appearance(_icon, _icon_state, _dir, _layer, _color) if(!_icon || !_icon_state) diff --git a/code/datums/components/decals/blood.dm b/code/datums/components/decals/blood.dm index 5a14aecd52..e69f94358c 100644 --- a/code/datums/components/decals/blood.dm +++ b/code/datums/components/decals/blood.dm @@ -3,8 +3,7 @@ /datum/component/decal/blood/Initialize(_icon, _icon_state, _dir, _cleanable=CLEAN_STRENGTH_BLOOD, _color, _layer=ABOVE_OBJ_LAYER) if(!isitem(parent)) - . = COMPONENT_INCOMPATIBLE - CRASH("Warning: Blood decal attempted to be added to non-item of type [parent.type]") + return COMPONENT_INCOMPATIBLE . = ..() RegisterSignal(COMSIG_ATOM_GET_EXAMINE_NAME, .proc/get_examine_name) diff --git a/code/datums/components/forensics.dm b/code/datums/components/forensics.dm index 417525ab08..33456e6e98 100644 --- a/code/datums/components/forensics.dm +++ b/code/datums/components/forensics.dm @@ -15,8 +15,7 @@ /datum/component/forensics/Initialize(new_fingerprints, new_hiddenprints, new_blood_DNA, new_fibers) if(!isatom(parent)) - . = COMPONENT_INCOMPATIBLE - CRASH("Forensics datum applied incorrectly to non-atom of type [parent.type]!") + return COMPONENT_INCOMPATIBLE fingerprints = new_fingerprints hiddenprints = new_hiddenprints blood_DNA = new_blood_DNA diff --git a/code/datums/components/jousting.dm b/code/datums/components/jousting.dm index 8348e59fe2..679d37738b 100644 --- a/code/datums/components/jousting.dm +++ b/code/datums/components/jousting.dm @@ -18,8 +18,7 @@ /datum/component/jousting/Initialize() if(!isitem(parent)) - . = COMPONENT_INCOMPATIBLE - CRASH("Warning: Jousting component incorrectly applied to invalid parent type [parent.type]") + return COMPONENT_INCOMPATIBLE RegisterSignal(COMSIG_ITEM_EQUIPPED, .proc/on_equip) RegisterSignal(COMSIG_ITEM_DROPPED, .proc/on_drop) RegisterSignal(COMSIG_ITEM_ATTACK, .proc/on_attack) diff --git a/code/datums/components/knockoff.dm b/code/datums/components/knockoff.dm index 35d1e5423e..60b86f01d2 100644 --- a/code/datums/components/knockoff.dm +++ b/code/datums/components/knockoff.dm @@ -7,8 +7,7 @@ /datum/component/knockoff/Initialize(knockoff_chance,zone_override,slots_knockoffable) if(!isitem(parent)) - . = COMPONENT_INCOMPATIBLE - CRASH("Knockoff component misuse") + return COMPONENT_INCOMPATIBLE RegisterSignal(COMSIG_ITEM_EQUIPPED,.proc/OnEquipped) RegisterSignal(COMSIG_ITEM_DROPPED,.proc/OnDropped) diff --git a/code/datums/components/lockon_aiming.dm b/code/datums/components/lockon_aiming.dm index fe707a9d32..cc41e793ed 100644 --- a/code/datums/components/lockon_aiming.dm +++ b/code/datums/components/lockon_aiming.dm @@ -1,243 +1,242 @@ -#define LOCKON_AIMING_MAX_CURSOR_RADIUS 7 -#define LOCKON_IGNORE_RESULT "ignore_my_result" -#define LOCKON_RANGING_BREAK_CHECK if(current_ranging_id != this_id){return LOCKON_IGNORE_RESULT} - -/datum/component/lockon_aiming - dupe_mode = COMPONENT_DUPE_ALLOWED - var/lock_icon = 'icons/mob/blob.dmi' - var/lock_icon_state = "marker" - var/mutable_appearance/lock_appearance - var/list/image/lock_images - var/list/target_typecache - var/list/immune_weakrefs //list(weakref = TRUE) - var/mob_stat_check = TRUE //if a potential target is a mob make sure it's conscious! - var/lock_amount = 1 - var/lock_cursor_range = 5 - var/list/locked_weakrefs - var/update_disabled = FALSE - var/current_ranging_id = 0 - var/list/last_location - var/datum/callback/on_lock - var/datum/callback/can_target_callback - -/datum/component/lockon_aiming/Initialize(range, list/typecache, amount, list/immune, datum/callback/when_locked, icon, icon_state, datum/callback/target_callback) - if(!ismob(parent)) - . = COMPONENT_INCOMPATIBLE - CRASH("Lockon aiming component attempted to be added to a non mob!") - if(target_callback) - can_target_callback = target_callback - else - can_target_callback = CALLBACK(src, .proc/can_target) - if(range) - lock_cursor_range = range - if(typecache) - target_typecache = typecache - if(amount) - lock_amount = amount - immune_weakrefs = list(WEAKREF(parent) = TRUE) //Manually take this out if you want.. - if(immune) - for(var/i in immune) - if(isweakref(i)) - immune_weakrefs[i] = TRUE - else if(isatom(i)) - immune_weakrefs[WEAKREF(i)] = TRUE - if(when_locked) - on_lock = when_locked - if(icon) - lock_icon = icon - if(icon_state) - lock_icon_state = icon_state - generate_lock_visuals() - var/mob/M = parent - LAZYOR(M.mousemove_intercept_objects, src) - START_PROCESSING(SSfastprocess, src) - -/datum/component/lockon_aiming/Destroy() - var/mob/M = parent - clear_visuals() - LAZYREMOVE(M.mousemove_intercept_objects, src) - STOP_PROCESSING(SSfastprocess, src) - return ..() - -/datum/component/lockon_aiming/proc/show_visuals() - LAZYINITLIST(lock_images) - var/mob/M = parent - if(!M.client) - return - for(var/i in locked_weakrefs) - var/datum/weakref/R = i - var/atom/A = R.resolve() - if(!A) - continue //It'll be cleared by processing. - var/image/I = new - I.appearance = lock_appearance - I.loc = A - M.client.images |= I - lock_images |= I - -/datum/component/lockon_aiming/proc/clear_visuals() - var/mob/M = parent - if(!M.client) - return - if(!lock_images) - return - for(var/i in lock_images) - M.client.images -= i - qdel(i) - lock_images.Cut() - -/datum/component/lockon_aiming/proc/refresh_visuals() - clear_visuals() - show_visuals() - -/datum/component/lockon_aiming/proc/generate_lock_visuals() - lock_appearance = mutable_appearance(icon = lock_icon, icon_state = lock_icon_state, layer = FLOAT_LAYER) - -/datum/component/lockon_aiming/proc/unlock_all(refresh_vis = TRUE) - LAZYCLEARLIST(locked_weakrefs) - if(refresh_vis) - refresh_visuals() - -/datum/component/lockon_aiming/proc/unlock(atom/A, refresh_vis = TRUE) - if(!A.weak_reference) - return - LAZYREMOVE(locked_weakrefs, A.weak_reference) - if(refresh_vis) - refresh_visuals() - -/datum/component/lockon_aiming/proc/lock(atom/A, refresh_vis = TRUE) - LAZYOR(locked_weakrefs, WEAKREF(A)) - if(refresh_vis) - refresh_visuals() - -/datum/component/lockon_aiming/proc/add_immune_atom(atom/A) - var/datum/weakref/R = WEAKREF(A) - if(immune_weakrefs && (immune_weakrefs[R])) - return - LAZYSET(immune_weakrefs, R, TRUE) - -/datum/component/lockon_aiming/proc/remove_immune_atom(atom/A) - if(!A.weak_reference || !immune_weakrefs) //if A doesn't have a weakref how did it get on the immunity list? - return - LAZYREMOVE(immune_weakrefs, A.weak_reference) - -/datum/component/lockon_aiming/onMouseMove(object,location,control,params) - var/mob/M = parent - if(!istype(M) || !M.client) - return - var/datum/position/P = mouse_absolute_datum_map_position_from_client(M.client) - if(!P) - return - var/turf/T = P.return_turf() - LAZYINITLIST(last_location) - if(length(last_location) == 3 && last_location[1] == T.x && last_location[2] == T.y && last_location[3] == T.z) - return //Same turf, don't bother. - if(last_location) - last_location.Cut() - else - last_location = list() - last_location.len = 3 - last_location[1] = T.x - last_location[2] = T.y - last_location[3] = T.z - autolock() - -/datum/component/lockon_aiming/process() - if(update_disabled) - return - if(!last_location) - return - var/changed = FALSE - for(var/i in locked_weakrefs) - var/datum/weakref/R = i - if(istype(R)) - var/atom/thing = R.resolve() - if(!istype(thing) || (get_dist(thing, locate(last_location[1], last_location[2], last_location[3])) > lock_cursor_range)) - unlock(R) - changed = TRUE - else - unlock(R) - changed = TRUE - if(changed) - autolock() - -/datum/component/lockon_aiming/proc/autolock() - var/mob/M = parent - if(!M.client) - return FALSE - var/datum/position/current = mouse_absolute_datum_map_position_from_client(M.client) - var/turf/target = current.return_turf() - var/list/atom/targets = get_nearest(target, target_typecache, lock_amount, lock_cursor_range) - if(targets == LOCKON_IGNORE_RESULT) - return - unlock_all(FALSE) - for(var/i in targets) - if(immune_weakrefs[WEAKREF(i)]) - continue - lock(i, FALSE) - refresh_visuals() - on_lock.Invoke(locked_weakrefs) - -/datum/component/lockon_aiming/proc/can_target(atom/A) - var/mob/M = A - return is_type_in_typecache(A, target_typecache) && !(ismob(A) && mob_stat_check && M.stat != CONSCIOUS) && !immune_weakrefs[WEAKREF(A)] - -/datum/component/lockon_aiming/proc/get_nearest(turf/T, list/typecache, amount, range) - current_ranging_id++ - var/this_id = current_ranging_id - var/list/L = list() - var/turf/center = get_turf(T) - if(amount < 1 || range < 0 || !istype(center) || !islist(typecache)) - return - if(range == 0) - return typecache_filter_list(T.contents + T, typecache) - var/x = 0 - var/y = 0 - var/cd = 0 - while(cd <= range) - x = center.x - cd + 1 - y = center.y + cd - LOCKON_RANGING_BREAK_CHECK - for(x in x to center.x + cd) - T = locate(x, y, center.z) - if(T) - L |= special_list_filter(T.contents, can_target_callback) - if(L.len >= amount) - L.Cut(amount+1) - return L - LOCKON_RANGING_BREAK_CHECK - y = center.y + cd - 1 - x = center.x + cd - for(y in center.y - cd to y) - T = locate(x, y, center.z) - if(T) - L |= special_list_filter(T.contents, can_target_callback) - if(L.len >= amount) - L.Cut(amount+1) - return L - LOCKON_RANGING_BREAK_CHECK - y = center.y - cd - x = center.x + cd - 1 - for(x in center.x - cd to x) - T = locate(x, y, center.z) - if(T) - L |= special_list_filter(T.contents, can_target_callback) - if(L.len >= amount) - L.Cut(amount+1) - return L - LOCKON_RANGING_BREAK_CHECK - y = center.y - cd + 1 - x = center.x - cd - for(y in y to center.y + cd) - T = locate(x, y, center.z) - if(T) - L |= special_list_filter(T.contents, can_target_callback) - if(L.len >= amount) - L.Cut(amount+1) - return L - LOCKON_RANGING_BREAK_CHECK - cd++ - CHECK_TICK - -/datum/component/lockon_aiming/OnTransfer(datum/new_parent) - CRASH("Warning: Lockon aiming component transfer attempted, but transfer behavior is not implemented!") +#define LOCKON_AIMING_MAX_CURSOR_RADIUS 7 +#define LOCKON_IGNORE_RESULT "ignore_my_result" +#define LOCKON_RANGING_BREAK_CHECK if(current_ranging_id != this_id){return LOCKON_IGNORE_RESULT} + +/datum/component/lockon_aiming + dupe_mode = COMPONENT_DUPE_ALLOWED + var/lock_icon = 'icons/mob/blob.dmi' + var/lock_icon_state = "marker" + var/mutable_appearance/lock_appearance + var/list/image/lock_images + var/list/target_typecache + var/list/immune_weakrefs //list(weakref = TRUE) + var/mob_stat_check = TRUE //if a potential target is a mob make sure it's conscious! + var/lock_amount = 1 + var/lock_cursor_range = 5 + var/list/locked_weakrefs + var/update_disabled = FALSE + var/current_ranging_id = 0 + var/list/last_location + var/datum/callback/on_lock + var/datum/callback/can_target_callback + +/datum/component/lockon_aiming/Initialize(range, list/typecache, amount, list/immune, datum/callback/when_locked, icon, icon_state, datum/callback/target_callback) + if(!ismob(parent)) + return COMPONENT_INCOMPATIBLE + if(target_callback) + can_target_callback = target_callback + else + can_target_callback = CALLBACK(src, .proc/can_target) + if(range) + lock_cursor_range = range + if(typecache) + target_typecache = typecache + if(amount) + lock_amount = amount + immune_weakrefs = list(WEAKREF(parent) = TRUE) //Manually take this out if you want.. + if(immune) + for(var/i in immune) + if(isweakref(i)) + immune_weakrefs[i] = TRUE + else if(isatom(i)) + immune_weakrefs[WEAKREF(i)] = TRUE + if(when_locked) + on_lock = when_locked + if(icon) + lock_icon = icon + if(icon_state) + lock_icon_state = icon_state + generate_lock_visuals() + var/mob/M = parent + LAZYOR(M.mousemove_intercept_objects, src) + START_PROCESSING(SSfastprocess, src) + +/datum/component/lockon_aiming/Destroy() + var/mob/M = parent + clear_visuals() + LAZYREMOVE(M.mousemove_intercept_objects, src) + STOP_PROCESSING(SSfastprocess, src) + return ..() + +/datum/component/lockon_aiming/proc/show_visuals() + LAZYINITLIST(lock_images) + var/mob/M = parent + if(!M.client) + return + for(var/i in locked_weakrefs) + var/datum/weakref/R = i + var/atom/A = R.resolve() + if(!A) + continue //It'll be cleared by processing. + var/image/I = new + I.appearance = lock_appearance + I.loc = A + M.client.images |= I + lock_images |= I + +/datum/component/lockon_aiming/proc/clear_visuals() + var/mob/M = parent + if(!M.client) + return + if(!lock_images) + return + for(var/i in lock_images) + M.client.images -= i + qdel(i) + lock_images.Cut() + +/datum/component/lockon_aiming/proc/refresh_visuals() + clear_visuals() + show_visuals() + +/datum/component/lockon_aiming/proc/generate_lock_visuals() + lock_appearance = mutable_appearance(icon = lock_icon, icon_state = lock_icon_state, layer = FLOAT_LAYER) + +/datum/component/lockon_aiming/proc/unlock_all(refresh_vis = TRUE) + LAZYCLEARLIST(locked_weakrefs) + if(refresh_vis) + refresh_visuals() + +/datum/component/lockon_aiming/proc/unlock(atom/A, refresh_vis = TRUE) + if(!A.weak_reference) + return + LAZYREMOVE(locked_weakrefs, A.weak_reference) + if(refresh_vis) + refresh_visuals() + +/datum/component/lockon_aiming/proc/lock(atom/A, refresh_vis = TRUE) + LAZYOR(locked_weakrefs, WEAKREF(A)) + if(refresh_vis) + refresh_visuals() + +/datum/component/lockon_aiming/proc/add_immune_atom(atom/A) + var/datum/weakref/R = WEAKREF(A) + if(immune_weakrefs && (immune_weakrefs[R])) + return + LAZYSET(immune_weakrefs, R, TRUE) + +/datum/component/lockon_aiming/proc/remove_immune_atom(atom/A) + if(!A.weak_reference || !immune_weakrefs) //if A doesn't have a weakref how did it get on the immunity list? + return + LAZYREMOVE(immune_weakrefs, A.weak_reference) + +/datum/component/lockon_aiming/onMouseMove(object,location,control,params) + var/mob/M = parent + if(!istype(M) || !M.client) + return + var/datum/position/P = mouse_absolute_datum_map_position_from_client(M.client) + if(!P) + return + var/turf/T = P.return_turf() + LAZYINITLIST(last_location) + if(length(last_location) == 3 && last_location[1] == T.x && last_location[2] == T.y && last_location[3] == T.z) + return //Same turf, don't bother. + if(last_location) + last_location.Cut() + else + last_location = list() + last_location.len = 3 + last_location[1] = T.x + last_location[2] = T.y + last_location[3] = T.z + autolock() + +/datum/component/lockon_aiming/process() + if(update_disabled) + return + if(!last_location) + return + var/changed = FALSE + for(var/i in locked_weakrefs) + var/datum/weakref/R = i + if(istype(R)) + var/atom/thing = R.resolve() + if(!istype(thing) || (get_dist(thing, locate(last_location[1], last_location[2], last_location[3])) > lock_cursor_range)) + unlock(R) + changed = TRUE + else + unlock(R) + changed = TRUE + if(changed) + autolock() + +/datum/component/lockon_aiming/proc/autolock() + var/mob/M = parent + if(!M.client) + return FALSE + var/datum/position/current = mouse_absolute_datum_map_position_from_client(M.client) + var/turf/target = current.return_turf() + var/list/atom/targets = get_nearest(target, target_typecache, lock_amount, lock_cursor_range) + if(targets == LOCKON_IGNORE_RESULT) + return + unlock_all(FALSE) + for(var/i in targets) + if(immune_weakrefs[WEAKREF(i)]) + continue + lock(i, FALSE) + refresh_visuals() + on_lock.Invoke(locked_weakrefs) + +/datum/component/lockon_aiming/proc/can_target(atom/A) + var/mob/M = A + return is_type_in_typecache(A, target_typecache) && !(ismob(A) && mob_stat_check && M.stat != CONSCIOUS) && !immune_weakrefs[WEAKREF(A)] + +/datum/component/lockon_aiming/proc/get_nearest(turf/T, list/typecache, amount, range) + current_ranging_id++ + var/this_id = current_ranging_id + var/list/L = list() + var/turf/center = get_turf(T) + if(amount < 1 || range < 0 || !istype(center) || !islist(typecache)) + return + if(range == 0) + return typecache_filter_list(T.contents + T, typecache) + var/x = 0 + var/y = 0 + var/cd = 0 + while(cd <= range) + x = center.x - cd + 1 + y = center.y + cd + LOCKON_RANGING_BREAK_CHECK + for(x in x to center.x + cd) + T = locate(x, y, center.z) + if(T) + L |= special_list_filter(T.contents, can_target_callback) + if(L.len >= amount) + L.Cut(amount+1) + return L + LOCKON_RANGING_BREAK_CHECK + y = center.y + cd - 1 + x = center.x + cd + for(y in center.y - cd to y) + T = locate(x, y, center.z) + if(T) + L |= special_list_filter(T.contents, can_target_callback) + if(L.len >= amount) + L.Cut(amount+1) + return L + LOCKON_RANGING_BREAK_CHECK + y = center.y - cd + x = center.x + cd - 1 + for(x in center.x - cd to x) + T = locate(x, y, center.z) + if(T) + L |= special_list_filter(T.contents, can_target_callback) + if(L.len >= amount) + L.Cut(amount+1) + return L + LOCKON_RANGING_BREAK_CHECK + y = center.y - cd + 1 + x = center.x - cd + for(y in y to center.y + cd) + T = locate(x, y, center.z) + if(T) + L |= special_list_filter(T.contents, can_target_callback) + if(L.len >= amount) + L.Cut(amount+1) + return L + LOCKON_RANGING_BREAK_CHECK + cd++ + CHECK_TICK + +/datum/component/lockon_aiming/PostTransfer(datum/new_parent) + return COMPONENT_INCOMPATIBLE diff --git a/code/datums/components/mirage_border.dm b/code/datums/components/mirage_border.dm new file mode 100644 index 0000000000..f91c5c8965 --- /dev/null +++ b/code/datums/components/mirage_border.dm @@ -0,0 +1,40 @@ +/datum/component/mirage_border + var/obj/effect/abstract/mirage_holder/holder + +/datum/component/mirage_border/Initialize(turf/target, direction, range=world.view) + if(!isturf(parent)) + return COMPONENT_INCOMPATIBLE + if(!target || !istype(target) || !direction) + . = COMPONENT_INCOMPATIBLE + CRASH("[type] improperly instanced with the following args: target=\[[target]\], direction=\[[direction]\], range=\[[range]\]") + + holder = new(parent) + + var/x = target.x + var/y = target.y + var/z = target.z + var/turf/southwest = locate(CLAMP(x - (direction & WEST ? range : 0), 1, world.maxx), CLAMP(y - (direction & SOUTH ? range : 0), 1, world.maxy), CLAMP(z, 1, world.maxz)) + var/turf/northeast = locate(CLAMP(x + (direction & EAST ? range : 0), 1, world.maxx), CLAMP(y + (direction & NORTH ? range : 0), 1, world.maxy), CLAMP(z, 1, world.maxz)) + //holder.vis_contents += block(southwest, northeast) // This doesnt work because of beta bug memes + for(var/i in block(southwest, northeast)) + holder.vis_contents += i + if(direction & SOUTH) + holder.pixel_y -= world.icon_size * range + if(direction & WEST) + holder.pixel_x -= world.icon_size * range + +/datum/component/mirage_border/Destroy() + QDEL_NULL(holder) + return ..() + +/datum/component/mirage_border/PreTransfer() + holder.moveToNullspace() + +/datum/component/mirage_border/PostTransfer() + if(!isturf(parent)) + return COMPONENT_INCOMPATIBLE + holder.forceMove(parent) + +/obj/effect/abstract/mirage_holder + name = "Mirage holder" + mouse_opacity = MOUSE_OPACITY_TRANSPARENT diff --git a/code/datums/components/mood.dm b/code/datums/components/mood.dm index 95f8f65bb6..8714b41f05 100644 --- a/code/datums/components/mood.dm +++ b/code/datums/components/mood.dm @@ -10,8 +10,7 @@ /datum/component/mood/Initialize() if(!isliving(parent)) - . = COMPONENT_INCOMPATIBLE - CRASH("Some good for nothing loser put a mood component on something that isn't even a living mob.") + return COMPONENT_INCOMPATIBLE START_PROCESSING(SSmood, src) owner = parent soundloop = new(list(owner), FALSE, TRUE) diff --git a/code/datums/components/ntnet_interface.dm b/code/datums/components/ntnet_interface.dm index f06e89b49d..14462f2774 100644 --- a/code/datums/components/ntnet_interface.dm +++ b/code/datums/components/ntnet_interface.dm @@ -2,6 +2,9 @@ /datum/proc/ntnet_recieve(datum/netdata/data) return +/datum/proc/ntnet_recieve_broadcast(datum/netdata/data) + return + /datum/proc/ntnet_send(datum/netdata/data, netid) GET_COMPONENT(NIC, /datum/component/ntnet_interface) if(!NIC) @@ -9,14 +12,17 @@ return NIC.__network_send(data, netid) /datum/component/ntnet_interface - var/hardware_id //text + var/hardware_id //text. this is the true ID. do not change this. stuff like ID forgery can be done manually. var/network_name = "" //text var/list/networks_connected_by_id = list() //id = datum/ntnet + var/differentiate_broadcast = TRUE //If false, broadcasts go to ntnet_recieve. NOT RECOMMENDED. /datum/component/ntnet_interface/Initialize(force_name = "NTNet Device", autoconnect_station_network = TRUE) //Don't force ID unless you know what you're doing! hardware_id = "[SSnetworks.get_next_HID()]" network_name = force_name - SSnetworks.register_interface(src) + if(!SSnetworks.register_interface(src)) + . = COMPONENT_INCOMPATIBLE + CRASH("Unable to register NTNet interface. Interface deleted.") if(autoconnect_station_network) register_connection(SSnetworks.station_network) @@ -27,7 +33,10 @@ /datum/component/ntnet_interface/proc/__network_recieve(datum/netdata/data) //Do not directly proccall! parent.SendSignal(COMSIG_COMPONENT_NTNET_RECIEVE, data) - parent.ntnet_recieve(data) + if(differentiate_broadcast && data.broadcast) + parent.ntnet_recieve_broadcast(data) + else + parent.ntnet_recieve(data) /datum/component/ntnet_interface/proc/__network_send(datum/netdata/data, netid) //Do not directly proccall! // Process data before sending it diff --git a/code/datums/components/riding.dm b/code/datums/components/riding.dm index e21db3e094..3701be2ae9 100644 --- a/code/datums/components/riding.dm +++ b/code/datums/components/riding.dm @@ -1,326 +1,325 @@ -/datum/component/riding - var/next_vehicle_move = 0 //used for move delays - var/vehicle_move_delay = 2 //tick delay between movements, lower = faster, higher = slower - var/keytype - - var/slowed = FALSE - var/slowvalue = 1 - - var/list/riding_offsets = list() //position_of_user = list(dir = list(px, py)), or RIDING_OFFSET_ALL for a generic one. - var/list/directional_vehicle_layers = list() //["[DIRECTION]"] = layer. Don't set it for a direction for default, set a direction to null for no change. - var/list/directional_vehicle_offsets = list() //same as above but instead of layer you have a list(px, py) - var/list/allowed_turf_typecache - var/list/forbid_turf_typecache //allow typecache for only certain turfs, forbid to allow all but those. allow only certain turfs will take precedence. - var/allow_one_away_from_valid_turf = TRUE //allow moving one tile away from a valid turf but not more. - var/override_allow_spacemove = FALSE - var/drive_verb = "drive" - var/ride_check_rider_incapacitated = FALSE - var/ride_check_rider_restrained = FALSE - var/ride_check_ridden_incapacitated = FALSE - -/datum/component/riding/Initialize() - if(!ismovableatom(parent)) - . = COMPONENT_INCOMPATIBLE - CRASH("RIDING COMPONENT ASSIGNED TO NON ATOM MOVABLE!") - RegisterSignal(COMSIG_MOVABLE_BUCKLE, .proc/vehicle_mob_buckle) - RegisterSignal(COMSIG_MOVABLE_UNBUCKLE, .proc/vehicle_mob_unbuckle) - RegisterSignal(COMSIG_MOVABLE_MOVED, .proc/vehicle_moved) - -/datum/component/riding/proc/vehicle_mob_unbuckle(mob/living/M, force = FALSE) - restore_position(M) - unequip_buckle_inhands(M) - -/datum/component/riding/proc/vehicle_mob_buckle(mob/living/M, force = FALSE) - handle_vehicle_offsets() - -/datum/component/riding/proc/handle_vehicle_layer() - var/atom/movable/AM = parent - var/static/list/defaults = list(TEXT_NORTH = OBJ_LAYER, TEXT_SOUTH = ABOVE_MOB_LAYER, TEXT_EAST = ABOVE_MOB_LAYER, TEXT_WEST = ABOVE_MOB_LAYER) - . = defaults["[AM.dir]"] - if(directional_vehicle_layers["[AM.dir]"]) - . = directional_vehicle_layers["[AM.dir]"] - if(isnull(.)) //you can set it to null to not change it. - . = AM.layer - AM.layer = . - -/datum/component/riding/proc/set_vehicle_dir_layer(dir, layer) - directional_vehicle_layers["[dir]"] = layer - -/datum/component/riding/proc/vehicle_moved() - var/atom/movable/AM = parent - for(var/i in AM.buckled_mobs) - ride_check(i) - handle_vehicle_offsets() - handle_vehicle_layer() - -/datum/component/riding/proc/ride_check(mob/living/M) - var/atom/movable/AM = parent - var/mob/AMM = AM - if((ride_check_rider_restrained && M.restrained(TRUE)) || (ride_check_rider_incapacitated && M.incapacitated(FALSE, TRUE)) || (ride_check_ridden_incapacitated && istype(AMM) && AMM.incapacitated(FALSE, TRUE))) - AM.visible_message("[M] falls off of [AM]!") - AM.unbuckle_mob(M) - return TRUE - -/datum/component/riding/proc/force_dismount(mob/living/M) - var/atom/movable/AM = parent - AM.unbuckle_mob(M) - -/datum/component/riding/proc/handle_vehicle_offsets() - var/atom/movable/AM = parent - var/AM_dir = "[AM.dir]" - var/passindex = 0 - if(AM.has_buckled_mobs()) - for(var/m in AM.buckled_mobs) - passindex++ - var/mob/living/buckled_mob = m - var/list/offsets = get_offsets(passindex) - var/rider_dir = get_rider_dir(passindex) - buckled_mob.setDir(rider_dir) - dir_loop: - for(var/offsetdir in offsets) - if(offsetdir == AM_dir) - var/list/diroffsets = offsets[offsetdir] - buckled_mob.pixel_x = diroffsets[1] - if(diroffsets.len >= 2) - buckled_mob.pixel_y = diroffsets[2] - if(diroffsets.len == 3) - buckled_mob.layer = diroffsets[3] - break dir_loop - var/list/static/default_vehicle_pixel_offsets = list(TEXT_NORTH = list(0, 0), TEXT_SOUTH = list(0, 0), TEXT_EAST = list(0, 0), TEXT_WEST = list(0, 0)) - var/px = default_vehicle_pixel_offsets[AM_dir] - var/py = default_vehicle_pixel_offsets[AM_dir] - if(directional_vehicle_offsets[AM_dir]) - if(isnull(directional_vehicle_offsets[AM_dir])) - px = AM.pixel_x - py = AM.pixel_y - else - px = directional_vehicle_offsets[AM_dir][1] - py = directional_vehicle_offsets[AM_dir][2] - AM.pixel_x = px - AM.pixel_y = py - -/datum/component/riding/proc/set_vehicle_dir_offsets(dir, x, y) - directional_vehicle_offsets["[dir]"] = list(x, y) - -//Override this to set your vehicle's various pixel offsets -/datum/component/riding/proc/get_offsets(pass_index) // list(dir = x, y, layer) - . = list(TEXT_NORTH = list(0, 0), TEXT_SOUTH = list(0, 0), TEXT_EAST = list(0, 0), TEXT_WEST = list(0, 0)) - if(riding_offsets["[pass_index]"]) - . = riding_offsets["[pass_index]"] - else if(riding_offsets["[RIDING_OFFSET_ALL]"]) - . = riding_offsets["[RIDING_OFFSET_ALL]"] - -/datum/component/riding/proc/set_riding_offsets(index, list/offsets) - if(!islist(offsets)) - return FALSE - riding_offsets["[index]"] = offsets - -//Override this to set the passengers/riders dir based on which passenger they are. -//ie: rider facing the vehicle's dir, but passenger 2 facing backwards, etc. -/datum/component/riding/proc/get_rider_dir(pass_index) - var/atom/movable/AM = parent - return AM.dir - -//KEYS -/datum/component/riding/proc/keycheck(mob/user) - return !keytype || user.is_holding_item_of_type(keytype) - -//BUCKLE HOOKS -/datum/component/riding/proc/restore_position(mob/living/buckled_mob) - if(buckled_mob) - buckled_mob.pixel_x = 0 - buckled_mob.pixel_y = 0 - if(buckled_mob.client) - buckled_mob.client.change_view(CONFIG_GET(string/default_view)) - -//MOVEMENT -/datum/component/riding/proc/turf_check(turf/next, turf/current) - if(allowed_turf_typecache && !allowed_turf_typecache[next.type]) - return (allow_one_away_from_valid_turf && allowed_turf_typecache[current.type]) - else if(forbid_turf_typecache && forbid_turf_typecache[next.type]) - return (allow_one_away_from_valid_turf && !forbid_turf_typecache[current.type]) - return TRUE - -/datum/component/riding/proc/handle_ride(mob/user, direction) - var/atom/movable/AM = parent - if(user.incapacitated()) - Unbuckle(user) - return - - if(world.time < next_vehicle_move) - return - next_vehicle_move = world.time + vehicle_move_delay - - if(keycheck(user)) - var/turf/next = get_step(AM, direction) - var/turf/current = get_turf(AM) - if(!istype(next) || !istype(current)) - return //not happening. - if(!turf_check(next, current)) - to_chat(user, "Your \the [AM] can not go onto [next]!") - return - if(!Process_Spacemove(direction) || !isturf(AM.loc)) - return - step(AM, direction) - - handle_vehicle_layer() - handle_vehicle_offsets() - else - to_chat(user, "You'll need the keys in one of your hands to [drive_verb] [AM].") - -/datum/component/riding/proc/Unbuckle(atom/movable/M) - addtimer(CALLBACK(parent, /atom/movable/.proc/unbuckle_mob, M), 0, TIMER_UNIQUE) - -/datum/component/riding/proc/Process_Spacemove(direction) - var/atom/movable/AM = parent - return override_allow_spacemove || AM.has_gravity() - -/datum/component/riding/proc/account_limbs(mob/living/M) - if(M.get_num_legs() < 2 && !slowed) - vehicle_move_delay = vehicle_move_delay + slowvalue - slowed = TRUE - else if(slowed) - vehicle_move_delay = vehicle_move_delay - slowvalue - slowed = FALSE - -///////Yes, I said humans. No, this won't end well...////////// -/datum/component/riding/human - -/datum/component/riding/human/Initialize() - . = ..() - RegisterSignal(COMSIG_HUMAN_MELEE_UNARMED_ATTACK, .proc/on_host_unarmed_melee) - -/datum/component/riding/human/proc/on_host_unarmed_melee(atom/target) - var/mob/living/carbon/human/AM = parent - if(AM.a_intent == INTENT_DISARM && (target in AM.buckled_mobs)) - force_dismount(target) - -/datum/component/riding/human/handle_vehicle_layer() - var/atom/movable/AM = parent - if(AM.buckled_mobs && AM.buckled_mobs.len) - if(AM.dir == SOUTH) - AM.layer = ABOVE_MOB_LAYER - else - AM.layer = OBJ_LAYER - else - AM.layer = MOB_LAYER - -/datum/component/riding/human/force_dismount(mob/living/user) - var/atom/movable/AM = parent - AM.unbuckle_mob(user) - user.Knockdown(60) - user.visible_message("[AM] pushes [user] off of them!") - -/datum/component/riding/cyborg - -/datum/component/riding/cyborg/ride_check(mob/user) - var/atom/movable/AM = parent - if(user.incapacitated()) - var/kick = TRUE - if(iscyborg(AM)) - var/mob/living/silicon/robot/R = AM - if(R.module && R.module.ride_allow_incapacitated) - kick = FALSE - if(kick) - to_chat(user, "You fall off of [AM]!") - Unbuckle(user) - return - if(iscarbon(user)) - var/mob/living/carbon/carbonuser = user - if(!carbonuser.get_num_arms()) - Unbuckle(user) - to_chat(user, "You can't grab onto [AM] with no hands!") - return - -/datum/component/riding/cyborg/handle_vehicle_layer() - var/atom/movable/AM = parent - if(AM.buckled_mobs && AM.buckled_mobs.len) - if(AM.dir == SOUTH) - AM.layer = ABOVE_MOB_LAYER - else - AM.layer = OBJ_LAYER - else - AM.layer = MOB_LAYER - -/datum/component/riding/cyborg/get_offsets(pass_index) // list(dir = x, y, layer) - return list(TEXT_NORTH = list(0, 4), TEXT_SOUTH = list(0, 4), TEXT_EAST = list(-6, 3), TEXT_WEST = list( 6, 3)) - -/datum/component/riding/cyborg/handle_vehicle_offsets() - var/atom/movable/AM = parent - if(AM.has_buckled_mobs()) - for(var/mob/living/M in AM.buckled_mobs) - M.setDir(AM.dir) - if(iscyborg(AM)) - var/mob/living/silicon/robot/R = AM - if(istype(R.module)) - M.pixel_x = R.module.ride_offset_x[dir2text(AM.dir)] - M.pixel_y = R.module.ride_offset_y[dir2text(AM.dir)] - else - ..() - -/datum/component/riding/cyborg/force_dismount(mob/living/M) - var/atom/movable/AM = parent - AM.unbuckle_mob(M) - var/turf/target = get_edge_target_turf(AM, AM.dir) - var/turf/targetm = get_step(get_turf(AM), AM.dir) - M.Move(targetm) - M.visible_message("[M] is thrown clear of [AM]!") - M.throw_at(target, 14, 5, AM) - M.Knockdown(60) - -/datum/component/riding/proc/equip_buckle_inhands(mob/living/carbon/human/user, amount_required = 1) - var/atom/movable/AM = parent - var/amount_equipped = 0 - for(var/amount_needed = amount_required, amount_needed > 0, amount_needed--) - var/obj/item/riding_offhand/inhand = new /obj/item/riding_offhand(user) - inhand.rider = user - inhand.parent = AM - if(user.put_in_hands(inhand, TRUE)) - amount_equipped++ - else - break - if(amount_equipped >= amount_required) - return TRUE - else - unequip_buckle_inhands(user) - return FALSE - -/datum/component/riding/proc/unequip_buckle_inhands(mob/living/carbon/user) - var/atom/movable/AM = parent - for(var/obj/item/riding_offhand/O in user.contents) - if(O.parent != AM) - CRASH("RIDING OFFHAND ON WRONG MOB") - continue - if(O.selfdeleting) - continue - else - qdel(O) - return TRUE - -/obj/item/riding_offhand - name = "offhand" - icon = 'icons/obj/items_and_weapons.dmi' - icon_state = "offhand" - w_class = WEIGHT_CLASS_HUGE - flags_1 = ABSTRACT_1 | DROPDEL_1 | NOBLUDGEON_1 - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF - var/mob/living/carbon/rider - var/mob/living/parent - var/selfdeleting = FALSE - -/obj/item/riding_offhand/dropped() - selfdeleting = TRUE - . = ..() - -/obj/item/riding_offhand/equipped() - if(loc != rider) - selfdeleting = TRUE - qdel(src) - . = ..() - -/obj/item/riding_offhand/Destroy() - var/atom/movable/AM = parent - if(selfdeleting) - if(rider in AM.buckled_mobs) - AM.unbuckle_mob(rider) - . = ..() +/datum/component/riding + var/next_vehicle_move = 0 //used for move delays + var/vehicle_move_delay = 2 //tick delay between movements, lower = faster, higher = slower + var/keytype + + var/slowed = FALSE + var/slowvalue = 1 + + var/list/riding_offsets = list() //position_of_user = list(dir = list(px, py)), or RIDING_OFFSET_ALL for a generic one. + var/list/directional_vehicle_layers = list() //["[DIRECTION]"] = layer. Don't set it for a direction for default, set a direction to null for no change. + var/list/directional_vehicle_offsets = list() //same as above but instead of layer you have a list(px, py) + var/list/allowed_turf_typecache + var/list/forbid_turf_typecache //allow typecache for only certain turfs, forbid to allow all but those. allow only certain turfs will take precedence. + var/allow_one_away_from_valid_turf = TRUE //allow moving one tile away from a valid turf but not more. + var/override_allow_spacemove = FALSE + var/drive_verb = "drive" + var/ride_check_rider_incapacitated = FALSE + var/ride_check_rider_restrained = FALSE + var/ride_check_ridden_incapacitated = FALSE + +/datum/component/riding/Initialize() + if(!ismovableatom(parent)) + return COMPONENT_INCOMPATIBLE + RegisterSignal(COMSIG_MOVABLE_BUCKLE, .proc/vehicle_mob_buckle) + RegisterSignal(COMSIG_MOVABLE_UNBUCKLE, .proc/vehicle_mob_unbuckle) + RegisterSignal(COMSIG_MOVABLE_MOVED, .proc/vehicle_moved) + +/datum/component/riding/proc/vehicle_mob_unbuckle(mob/living/M, force = FALSE) + restore_position(M) + unequip_buckle_inhands(M) + +/datum/component/riding/proc/vehicle_mob_buckle(mob/living/M, force = FALSE) + handle_vehicle_offsets() + +/datum/component/riding/proc/handle_vehicle_layer() + var/atom/movable/AM = parent + var/static/list/defaults = list(TEXT_NORTH = OBJ_LAYER, TEXT_SOUTH = ABOVE_MOB_LAYER, TEXT_EAST = ABOVE_MOB_LAYER, TEXT_WEST = ABOVE_MOB_LAYER) + . = defaults["[AM.dir]"] + if(directional_vehicle_layers["[AM.dir]"]) + . = directional_vehicle_layers["[AM.dir]"] + if(isnull(.)) //you can set it to null to not change it. + . = AM.layer + AM.layer = . + +/datum/component/riding/proc/set_vehicle_dir_layer(dir, layer) + directional_vehicle_layers["[dir]"] = layer + +/datum/component/riding/proc/vehicle_moved() + var/atom/movable/AM = parent + for(var/i in AM.buckled_mobs) + ride_check(i) + handle_vehicle_offsets() + handle_vehicle_layer() + +/datum/component/riding/proc/ride_check(mob/living/M) + var/atom/movable/AM = parent + var/mob/AMM = AM + if((ride_check_rider_restrained && M.restrained(TRUE)) || (ride_check_rider_incapacitated && M.incapacitated(FALSE, TRUE)) || (ride_check_ridden_incapacitated && istype(AMM) && AMM.incapacitated(FALSE, TRUE))) + AM.visible_message("[M] falls off of [AM]!") + AM.unbuckle_mob(M) + return TRUE + +/datum/component/riding/proc/force_dismount(mob/living/M) + var/atom/movable/AM = parent + AM.unbuckle_mob(M) + +/datum/component/riding/proc/handle_vehicle_offsets() + var/atom/movable/AM = parent + var/AM_dir = "[AM.dir]" + var/passindex = 0 + if(AM.has_buckled_mobs()) + for(var/m in AM.buckled_mobs) + passindex++ + var/mob/living/buckled_mob = m + var/list/offsets = get_offsets(passindex) + var/rider_dir = get_rider_dir(passindex) + buckled_mob.setDir(rider_dir) + dir_loop: + for(var/offsetdir in offsets) + if(offsetdir == AM_dir) + var/list/diroffsets = offsets[offsetdir] + buckled_mob.pixel_x = diroffsets[1] + if(diroffsets.len >= 2) + buckled_mob.pixel_y = diroffsets[2] + if(diroffsets.len == 3) + buckled_mob.layer = diroffsets[3] + break dir_loop + var/list/static/default_vehicle_pixel_offsets = list(TEXT_NORTH = list(0, 0), TEXT_SOUTH = list(0, 0), TEXT_EAST = list(0, 0), TEXT_WEST = list(0, 0)) + var/px = default_vehicle_pixel_offsets[AM_dir] + var/py = default_vehicle_pixel_offsets[AM_dir] + if(directional_vehicle_offsets[AM_dir]) + if(isnull(directional_vehicle_offsets[AM_dir])) + px = AM.pixel_x + py = AM.pixel_y + else + px = directional_vehicle_offsets[AM_dir][1] + py = directional_vehicle_offsets[AM_dir][2] + AM.pixel_x = px + AM.pixel_y = py + +/datum/component/riding/proc/set_vehicle_dir_offsets(dir, x, y) + directional_vehicle_offsets["[dir]"] = list(x, y) + +//Override this to set your vehicle's various pixel offsets +/datum/component/riding/proc/get_offsets(pass_index) // list(dir = x, y, layer) + . = list(TEXT_NORTH = list(0, 0), TEXT_SOUTH = list(0, 0), TEXT_EAST = list(0, 0), TEXT_WEST = list(0, 0)) + if(riding_offsets["[pass_index]"]) + . = riding_offsets["[pass_index]"] + else if(riding_offsets["[RIDING_OFFSET_ALL]"]) + . = riding_offsets["[RIDING_OFFSET_ALL]"] + +/datum/component/riding/proc/set_riding_offsets(index, list/offsets) + if(!islist(offsets)) + return FALSE + riding_offsets["[index]"] = offsets + +//Override this to set the passengers/riders dir based on which passenger they are. +//ie: rider facing the vehicle's dir, but passenger 2 facing backwards, etc. +/datum/component/riding/proc/get_rider_dir(pass_index) + var/atom/movable/AM = parent + return AM.dir + +//KEYS +/datum/component/riding/proc/keycheck(mob/user) + return !keytype || user.is_holding_item_of_type(keytype) + +//BUCKLE HOOKS +/datum/component/riding/proc/restore_position(mob/living/buckled_mob) + if(buckled_mob) + buckled_mob.pixel_x = 0 + buckled_mob.pixel_y = 0 + if(buckled_mob.client) + buckled_mob.client.change_view(CONFIG_GET(string/default_view)) + +//MOVEMENT +/datum/component/riding/proc/turf_check(turf/next, turf/current) + if(allowed_turf_typecache && !allowed_turf_typecache[next.type]) + return (allow_one_away_from_valid_turf && allowed_turf_typecache[current.type]) + else if(forbid_turf_typecache && forbid_turf_typecache[next.type]) + return (allow_one_away_from_valid_turf && !forbid_turf_typecache[current.type]) + return TRUE + +/datum/component/riding/proc/handle_ride(mob/user, direction) + var/atom/movable/AM = parent + if(user.incapacitated()) + Unbuckle(user) + return + + if(world.time < next_vehicle_move) + return + next_vehicle_move = world.time + vehicle_move_delay + + if(keycheck(user)) + var/turf/next = get_step(AM, direction) + var/turf/current = get_turf(AM) + if(!istype(next) || !istype(current)) + return //not happening. + if(!turf_check(next, current)) + to_chat(user, "Your \the [AM] can not go onto [next]!") + return + if(!Process_Spacemove(direction) || !isturf(AM.loc)) + return + step(AM, direction) + + handle_vehicle_layer() + handle_vehicle_offsets() + else + to_chat(user, "You'll need the keys in one of your hands to [drive_verb] [AM].") + +/datum/component/riding/proc/Unbuckle(atom/movable/M) + addtimer(CALLBACK(parent, /atom/movable/.proc/unbuckle_mob, M), 0, TIMER_UNIQUE) + +/datum/component/riding/proc/Process_Spacemove(direction) + var/atom/movable/AM = parent + return override_allow_spacemove || AM.has_gravity() + +/datum/component/riding/proc/account_limbs(mob/living/M) + if(M.get_num_legs() < 2 && !slowed) + vehicle_move_delay = vehicle_move_delay + slowvalue + slowed = TRUE + else if(slowed) + vehicle_move_delay = vehicle_move_delay - slowvalue + slowed = FALSE + +///////Yes, I said humans. No, this won't end well...////////// +/datum/component/riding/human + +/datum/component/riding/human/Initialize() + . = ..() + RegisterSignal(COMSIG_HUMAN_MELEE_UNARMED_ATTACK, .proc/on_host_unarmed_melee) + +/datum/component/riding/human/proc/on_host_unarmed_melee(atom/target) + var/mob/living/carbon/human/AM = parent + if(AM.a_intent == INTENT_DISARM && (target in AM.buckled_mobs)) + force_dismount(target) + +/datum/component/riding/human/handle_vehicle_layer() + var/atom/movable/AM = parent + if(AM.buckled_mobs && AM.buckled_mobs.len) + if(AM.dir == SOUTH) + AM.layer = ABOVE_MOB_LAYER + else + AM.layer = OBJ_LAYER + else + AM.layer = MOB_LAYER + +/datum/component/riding/human/force_dismount(mob/living/user) + var/atom/movable/AM = parent + AM.unbuckle_mob(user) + user.Knockdown(60) + user.visible_message("[AM] pushes [user] off of them!") + +/datum/component/riding/cyborg + +/datum/component/riding/cyborg/ride_check(mob/user) + var/atom/movable/AM = parent + if(user.incapacitated()) + var/kick = TRUE + if(iscyborg(AM)) + var/mob/living/silicon/robot/R = AM + if(R.module && R.module.ride_allow_incapacitated) + kick = FALSE + if(kick) + to_chat(user, "You fall off of [AM]!") + Unbuckle(user) + return + if(iscarbon(user)) + var/mob/living/carbon/carbonuser = user + if(!carbonuser.get_num_arms()) + Unbuckle(user) + to_chat(user, "You can't grab onto [AM] with no hands!") + return + +/datum/component/riding/cyborg/handle_vehicle_layer() + var/atom/movable/AM = parent + if(AM.buckled_mobs && AM.buckled_mobs.len) + if(AM.dir == SOUTH) + AM.layer = ABOVE_MOB_LAYER + else + AM.layer = OBJ_LAYER + else + AM.layer = MOB_LAYER + +/datum/component/riding/cyborg/get_offsets(pass_index) // list(dir = x, y, layer) + return list(TEXT_NORTH = list(0, 4), TEXT_SOUTH = list(0, 4), TEXT_EAST = list(-6, 3), TEXT_WEST = list( 6, 3)) + +/datum/component/riding/cyborg/handle_vehicle_offsets() + var/atom/movable/AM = parent + if(AM.has_buckled_mobs()) + for(var/mob/living/M in AM.buckled_mobs) + M.setDir(AM.dir) + if(iscyborg(AM)) + var/mob/living/silicon/robot/R = AM + if(istype(R.module)) + M.pixel_x = R.module.ride_offset_x[dir2text(AM.dir)] + M.pixel_y = R.module.ride_offset_y[dir2text(AM.dir)] + else + ..() + +/datum/component/riding/cyborg/force_dismount(mob/living/M) + var/atom/movable/AM = parent + AM.unbuckle_mob(M) + var/turf/target = get_edge_target_turf(AM, AM.dir) + var/turf/targetm = get_step(get_turf(AM), AM.dir) + M.Move(targetm) + M.visible_message("[M] is thrown clear of [AM]!") + M.throw_at(target, 14, 5, AM) + M.Knockdown(60) + +/datum/component/riding/proc/equip_buckle_inhands(mob/living/carbon/human/user, amount_required = 1) + var/atom/movable/AM = parent + var/amount_equipped = 0 + for(var/amount_needed = amount_required, amount_needed > 0, amount_needed--) + var/obj/item/riding_offhand/inhand = new /obj/item/riding_offhand(user) + inhand.rider = user + inhand.parent = AM + if(user.put_in_hands(inhand, TRUE)) + amount_equipped++ + else + break + if(amount_equipped >= amount_required) + return TRUE + else + unequip_buckle_inhands(user) + return FALSE + +/datum/component/riding/proc/unequip_buckle_inhands(mob/living/carbon/user) + var/atom/movable/AM = parent + for(var/obj/item/riding_offhand/O in user.contents) + if(O.parent != AM) + CRASH("RIDING OFFHAND ON WRONG MOB") + continue + if(O.selfdeleting) + continue + else + qdel(O) + return TRUE + +/obj/item/riding_offhand + name = "offhand" + icon = 'icons/obj/items_and_weapons.dmi' + icon_state = "offhand" + w_class = WEIGHT_CLASS_HUGE + flags_1 = ABSTRACT_1 | DROPDEL_1 | NOBLUDGEON_1 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + var/mob/living/carbon/rider + var/mob/living/parent + var/selfdeleting = FALSE + +/obj/item/riding_offhand/dropped() + selfdeleting = TRUE + . = ..() + +/obj/item/riding_offhand/equipped() + if(loc != rider) + selfdeleting = TRUE + qdel(src) + . = ..() + +/obj/item/riding_offhand/Destroy() + var/atom/movable/AM = parent + if(selfdeleting) + if(rider in AM.buckled_mobs) + AM.unbuckle_mob(rider) + . = ..() diff --git a/code/datums/components/rotation.dm b/code/datums/components/rotation.dm index c7c6b40754..eca12454fd 100644 --- a/code/datums/components/rotation.dm +++ b/code/datums/components/rotation.dm @@ -1,15 +1,15 @@ -#define ROTATION_ALTCLICK 1 -#define ROTATION_WRENCH 2 -#define ROTATION_VERBS 4 -#define ROTATION_COUNTERCLOCKWISE 8 -#define ROTATION_CLOCKWISE 16 -#define ROTATION_FLIP 32 +#define ROTATION_ALTCLICK (1<<0) +#define ROTATION_WRENCH (1<<1) +#define ROTATION_VERBS (1<<2) +#define ROTATION_COUNTERCLOCKWISE (1<<3) +#define ROTATION_CLOCKWISE (1<<4) +#define ROTATION_FLIP (1<<5) /datum/component/simple_rotation var/datum/callback/can_user_rotate //Checks if user can rotate var/datum/callback/can_be_rotated //Check if object can be rotated at all var/datum/callback/after_rotation //Additional stuff to do after rotation - + var/rotation_flags = NONE var/default_rotation_direction = ROTATION_CLOCKWISE diff --git a/code/datums/components/signal_redirect.dm b/code/datums/components/signal_redirect.dm index 38372dd356..764a44e4a9 100644 --- a/code/datums/components/signal_redirect.dm +++ b/code/datums/components/signal_redirect.dm @@ -4,6 +4,5 @@ /datum/component/redirect/Initialize(list/signals, datum/callback/_callback) //It's not our job to verify the right signals are registered here, just do it. if(!LAZYLEN(signals) || !istype(_callback)) - . = COMPONENT_INCOMPATIBLE - CRASH("A redirection component was initialized with incorrect args.") + return COMPONENT_INCOMPATIBLE RegisterSignal(signals, _callback) diff --git a/code/datums/components/spooky.dm b/code/datums/components/spooky.dm index a62b7dcaab..0de27f30f0 100644 --- a/code/datums/components/spooky.dm +++ b/code/datums/components/spooky.dm @@ -42,11 +42,11 @@ var/T = get_turf(H) if(too_spooky) if(prob(30)) - new/obj/item/device/instrument/saxophone/spectral(T) + new/obj/item/instrument/saxophone/spectral(T) else if(prob(30)) - new/obj/item/device/instrument/trumpet/spectral(T) + new/obj/item/instrument/trumpet/spectral(T) else if(prob(30)) - new/obj/item/device/instrument/trombone/spectral(T) + new/obj/item/instrument/trombone/spectral(T) else to_chat(H, "The spooky gods forgot to ship your instrument. Better luck next unlife.") to_chat(H, "You are the spooky skeleton!") diff --git a/code/datums/components/stationloving.dm b/code/datums/components/stationloving.dm new file mode 100644 index 0000000000..a999624c32 --- /dev/null +++ b/code/datums/components/stationloving.dm @@ -0,0 +1,83 @@ +/datum/component/stationloving + dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS + var/inform_admins = FALSE + var/disallow_soul_imbue = TRUE + +/datum/component/stationloving/Initialize(inform_admins = FALSE) + if(!ismovableatom(parent)) + return COMPONENT_INCOMPATIBLE + RegisterSignal(list(COMSIG_MOVABLE_Z_CHANGED), .proc/check_in_bounds) + RegisterSignal(list(COMSIG_PARENT_PREQDELETED), .proc/check_deletion) + RegisterSignal(list(COMSIG_ITEM_IMBUE_SOUL), .proc/check_soul_imbue) + src.inform_admins = inform_admins + check_in_bounds() // Just in case something is being created outside of station/centcom + +/datum/component/stationloving/InheritComponent(datum/component/stationloving/newc, original, list/arguments) + if (original) + if (istype(newc)) + inform_admins = newc.inform_admins + else if (LAZYLEN(arguments)) + inform_admins = arguments[1] + +/datum/component/stationloving/proc/relocate() + var/targetturf = find_safe_turf() + if(!targetturf) + if(GLOB.blobstart.len > 0) + targetturf = get_turf(pick(GLOB.blobstart)) + else + CRASH("Unable to find a blobstart landmark") + + var/atom/movable/AM = parent + if(ismob(AM.loc)) + var/mob/M = AM.loc + M.transferItemToLoc(AM, targetturf, TRUE) //nodrops disks when? + else if(AM.loc.SendSignal(COMSIG_CONTAINS_STORAGE)) + AM.loc.SendSignal(COMSIG_TRY_STORAGE_TAKE, src, targetturf, TRUE) + else + AM.forceMove(targetturf) + // move the disc, so ghosts remain orbiting it even if it's "destroyed" + return targetturf + +/datum/component/stationloving/proc/check_in_bounds() + if(in_bounds()) + return + else + var/turf/currentturf = get_turf(src) + to_chat(get(parent, /mob), "You can't help but feel that you just lost something back there...") + var/turf/targetturf = relocate() + log_game("[parent] has been moved out of bounds in [COORD(currentturf)]. Moving it to [COORD(targetturf)].") + if(inform_admins) + message_admins("[parent] has been moved out of bounds in [ADMIN_COORDJMP(currentturf)]. Moving it to [ADMIN_COORDJMP(targetturf)].") + +/datum/component/stationloving/proc/check_soul_imbue() + return disallow_soul_imbue + +/datum/component/stationloving/proc/in_bounds() + var/static/list/allowed_shuttles = typecacheof(list(/area/shuttle/syndicate, /area/shuttle/escape, /area/shuttle/pod_1, /area/shuttle/pod_2, /area/shuttle/pod_3, /area/shuttle/pod_4)) + var/turf/T = get_turf(parent) + if (!T) + return FALSE + if (is_station_level(T.z) || is_centcom_level(T.z)) + return TRUE + if (is_transit_level(T.z)) + var/area/A = T.loc + if (is_type_in_typecache(A, allowed_shuttles)) + return TRUE + + return FALSE + +/datum/component/stationloving/proc/check_deletion(force) // TRUE = interrupt deletion, FALSE = proceed with deletion + + var/turf/T = get_turf(parent) + + if(inform_admins && force) + message_admins("[parent] has been !!force deleted!! in [ADMIN_COORDJMP(T)].") + log_game("[parent] has been !!force deleted!! in [COORD(T)].") + + if(!force) + var/turf/targetturf = relocate() + log_game("[parent] has been destroyed in [COORD(T)]. Moving it to [COORD(targetturf)].") + if(inform_admins) + message_admins("[parent] has been destroyed in [ADMIN_COORDJMP(T)]. Moving it to [ADMIN_COORDJMP(targetturf)].") + return TRUE + return FALSE diff --git a/code/datums/components/storage/concrete/_concrete.dm b/code/datums/components/storage/concrete/_concrete.dm new file mode 100644 index 0000000000..4234dadd85 --- /dev/null +++ b/code/datums/components/storage/concrete/_concrete.dm @@ -0,0 +1,196 @@ + +// External storage-related logic: +// /mob/proc/ClickOn() in /_onclick/click.dm - clicking items in storages +// /mob/living/Move() in /modules/mob/living/living.dm - hiding storage boxes on mob movement + +/datum/component/storage/concrete + var/drop_all_on_deconstruct = TRUE + var/drop_all_on_destroy = FALSE + var/transfer_contents_on_component_transfer = FALSE + var/list/datum/component/storage/slaves = list() + + var/list/_contents_limbo // Where objects go to live mid transfer + var/list/_user_limbo // The last users before the component started moving + +/datum/component/storage/concrete/Initialize() + . = ..() + RegisterSignal(COMSIG_ATOM_CONTENTS_DEL, .proc/on_contents_del) + RegisterSignal(COMSIG_OBJ_DECONSTRUCT, .proc/on_deconstruct) + +/datum/component/storage/concrete/Destroy() + var/atom/real_location = real_location() + for(var/atom/_A in real_location) + _A.mouse_opacity = initial(_A.mouse_opacity) + if(drop_all_on_destroy) + do_quick_empty() + for(var/i in slaves) + var/datum/component/storage/slave = i + slave.change_master(null) + QDEL_LIST(_contents_limbo) + _user_limbo = null + return ..() + +/datum/component/storage/concrete/master() + return src + +/datum/component/storage/concrete/real_location() + return parent + +/datum/component/storage/concrete/PreTransfer() + if(is_using) + _user_limbo = is_using.Copy() + close_all() + if(transfer_contents_on_component_transfer) + _contents_limbo = list() + for(var/atom/movable/AM in parent) + _contents_limbo += AM + AM.moveToNullspace() + +/datum/component/storage/concrete/PostTransfer() + if(!isatom(parent)) + return COMPONENT_INCOMPATIBLE + if(transfer_contents_on_component_transfer) + for(var/i in _contents_limbo) + var/atom/movable/AM = i + AM.forceMove(parent) + _contents_limbo = null + if(_user_limbo) + for(var/i in _user_limbo) + show_to(i) + _user_limbo = null + +/datum/component/storage/concrete/_insert_physical_item(obj/item/I, override = FALSE) + . = TRUE + var/atom/real_location = real_location() + if(I.loc != real_location) + I.forceMove(real_location) + refresh_mob_views() + +/datum/component/storage/concrete/refresh_mob_views() + . = ..() + for(var/i in slaves) + var/datum/component/storage/slave = i + slave.refresh_mob_views() + +/datum/component/storage/concrete/emp_act(severity) + var/atom/real_location = real_location() + for(var/i in real_location) + var/atom/A = i + A.emp_act(severity) + +/datum/component/storage/concrete/proc/on_slave_link(datum/component/storage/S) + if(S == src) + return FALSE + slaves += S + return TRUE + +/datum/component/storage/concrete/proc/on_slave_unlink(datum/component/storage/S) + slaves -= S + return FALSE + +/datum/component/storage/concrete/proc/on_contents_del(atom/A) + var/atom/real_location = parent + if(A in real_location) + usr = null + remove_from_storage(A, null) + +/datum/component/storage/concrete/proc/on_deconstruct(disassembled) + if(drop_all_on_deconstruct) + do_quick_empty() + +/datum/component/storage/concrete/can_see_contents() + . = ..() + for(var/i in slaves) + var/datum/component/storage/slave = i + . |= slave.can_see_contents() + +//Resets screen loc and other vars of something being removed from storage. +/datum/component/storage/concrete/_removal_reset(atom/movable/thing) + thing.layer = initial(thing.layer) + thing.plane = initial(thing.plane) + thing.mouse_opacity = initial(thing.mouse_opacity) + if(thing.maptext) + thing.maptext = "" + +/datum/component/storage/concrete/remove_from_storage(atom/movable/AM, atom/new_location) + //Cache this as it should be reusable down the bottom, will not apply if anyone adds a sleep to dropped + //or moving objects, things that should never happen + var/atom/parent = src.parent + var/list/seeing_mobs = can_see_contents() + for(var/mob/M in seeing_mobs) + M.client.screen -= AM + if(ismob(parent.loc) && isitem(AM)) + var/obj/item/I = AM + var/mob/M = parent.loc + I.dropped(M) + if(new_location) + //Reset the items values + _removal_reset(AM) + AM.forceMove(new_location) + //We don't want to call this if the item is being destroyed + AM.on_exit_storage(src) + else + //Being destroyed, just move to nullspace now (so it's not in contents for the icon update) + AM.moveToNullspace() + refresh_mob_views() + if(isobj(parent)) + var/obj/O = parent + O.update_icon() + return TRUE + +/datum/component/storage/concrete/proc/slave_can_insert_object(datum/component/storage/slave, obj/item/I, stop_messages = FALSE, mob/M) + return TRUE + +/datum/component/storage/concrete/proc/handle_item_insertion_from_slave(datum/component/storage/slave, obj/item/I, prevent_warning = FALSE, M) + . = handle_item_insertion(I, prevent_warning, M, slave) + if(. && !prevent_warning) + slave.mob_item_insertion_feedback(usr, M, I) + +/datum/component/storage/concrete/handle_item_insertion(obj/item/I, prevent_warning = FALSE, mob/M, datum/component/storage/remote) //Remote is null or the slave datum + var/datum/component/storage/concrete/master = master() + var/atom/parent = src.parent + var/moved = FALSE + if(!istype(I)) + return FALSE + if(M) + if(!M.temporarilyRemoveItemFromInventory(I)) + return FALSE + else + moved = TRUE //At this point if the proc fails we need to manually move the object back to the turf/mob/whatever. + if(I.pulledby) + I.pulledby.stop_pulling() + if(silent) + prevent_warning = TRUE + if(!_insert_physical_item(I)) + if(moved) + if(M) + if(!M.put_in_active_hand(I)) + I.forceMove(parent.drop_location()) + else + I.forceMove(parent.drop_location()) + return FALSE + I.on_enter_storage(master) + refresh_mob_views() + I.mouse_opacity = MOUSE_OPACITY_OPAQUE //So you can click on the area around the item to equip it, instead of having to pixel hunt + if(M) + if(M.client && M.active_storage != src) + M.client.screen -= I + if(M.observers && M.observers.len) + for(var/i in M.observers) + var/mob/dead/observe = i + if(observe.client && observe.active_storage != src) + observe.client.screen -= I + if(!remote) + parent.add_fingerprint(M) + if(!prevent_warning) + mob_item_insertion_feedback(usr, M, I) + update_icon() + return TRUE + +/datum/component/storage/concrete/update_icon() + if(isobj(parent)) + var/obj/O = parent + O.update_icon() + for(var/i in slaves) + var/datum/component/storage/slave = i + slave.update_icon() diff --git a/code/datums/components/storage/concrete/bag_of_holding.dm b/code/datums/components/storage/concrete/bag_of_holding.dm new file mode 100644 index 0000000000..ba458d2f76 --- /dev/null +++ b/code/datums/components/storage/concrete/bag_of_holding.dm @@ -0,0 +1,22 @@ +/datum/component/storage/concrete/bluespace/bag_of_holding/handle_item_insertion(obj/item/W, prevent_warning = FALSE, mob/living/user) + var/atom/A = parent + if((istype(W, /obj/item/storage/backpack/holding) || count_by_type(W.GetAllContents(), /obj/item/storage/backpack/holding))) + var/turf/loccheck = get_turf(A) + if(is_reebe(loccheck.z)) + user.visible_message("An unseen force knocks [user] to the ground!", "\"I think not!\"") + user.Knockdown(60) + return + var/safety = alert(user, "Doing this will have extremely dire consequences for the station and its crew. Be sure you know what you're doing.", "Put in [A.name]?", "Proceed", "Abort") + if(safety == "Abort" || !in_range(A, user) || !A || !W || user.incapacitated()) + return + A.investigate_log("has become a singularity. Caused by [user.key]", INVESTIGATE_SINGULO) + to_chat(user, "The Bluespace interfaces of the two devices catastrophically malfunction!") + qdel(W) + var/obj/singularity/singulo = new /obj/singularity (get_turf(A)) + singulo.energy = 300 //should make it a bit bigger~ + message_admins("[key_name_admin(user)] detonated a bag of holding") + log_game("[key_name(user)] detonated a bag of holding") + qdel(A) + singulo.process() + return + . = ..() diff --git a/code/datums/components/storage/concrete/bluespace.dm b/code/datums/components/storage/concrete/bluespace.dm new file mode 100644 index 0000000000..4763783837 --- /dev/null +++ b/code/datums/components/storage/concrete/bluespace.dm @@ -0,0 +1,21 @@ +/datum/component/storage/concrete/bluespace + var/dumping_range = 8 + var/dumping_sound = 'sound/items/pshoom.ogg' + var/alt_sound = 'sound/items/pshoom_2.ogg' + +/datum/component/storage/concrete/bluespace/dump_content_at(atom/dest, mob/M) + var/atom/A = parent + if(A.Adjacent(M)) + var/atom/dumping_location = dest.get_dumping_location() + if(get_dist(M, dumping_location) < dumping_range) + if(dumping_location.storage_contents_dump_act(src, M)) + if(alt_sound && prob(1)) + playsound(src, alt_sound, 40, 1) + else + playsound(src, dumping_sound, 40, 1) + M.Beam(dumping_location, icon_state="rped_upgrade", time=5) + return TRUE + to_chat(M, "The [A.name] buzzes.") + playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 0) + return FALSE + diff --git a/code/datums/components/storage/concrete/implant.dm b/code/datums/components/storage/concrete/implant.dm new file mode 100644 index 0000000000..0348d340ae --- /dev/null +++ b/code/datums/components/storage/concrete/implant.dm @@ -0,0 +1,18 @@ +/datum/component/storage/concrete/implant + max_w_class = WEIGHT_CLASS_NORMAL + max_combined_w_class = 6 + max_items = 2 + drop_all_on_destroy = TRUE + drop_all_on_deconstruct = TRUE + silent = TRUE + allow_big_nesting = TRUE + +/datum/component/storage/concrete/implant/Initialize() + . = ..() + cant_hold = typecacheof(list(/obj/item/disk/nuclear)) + +/datum/component/storage/concrete/implant/InheritComponent(datum/component/storage/concrete/implant/I, original) + if(!istype(I)) + return ..() + max_combined_w_class += I.max_combined_w_class + max_items += I.max_items diff --git a/code/datums/components/storage/concrete/pockets.dm b/code/datums/components/storage/concrete/pockets.dm new file mode 100644 index 0000000000..e415e73df9 --- /dev/null +++ b/code/datums/components/storage/concrete/pockets.dm @@ -0,0 +1,65 @@ +/datum/component/storage/concrete/pockets + max_items = 2 + max_w_class = WEIGHT_CLASS_SMALL + max_combined_w_class = 50 + rustle_sound = FALSE + +/datum/component/storage/concrete/pockets/handle_item_insertion(obj/item/I, prevent_warning, mob/user) + . = ..() + if(. && silent && !prevent_warning) + if(quickdraw) + to_chat(user, "You discreetly slip [I] into [parent]. Alt-click [parent] to remove it.") + else + to_chat(user, "You discreetly slip [I] into [parent].") + +/datum/component/storage/concrete/pockets + max_w_class = WEIGHT_CLASS_NORMAL + +/datum/component/storage/concrete/pockets/small + max_items = 1 + attack_hand_interact = FALSE + +/datum/component/storage/concrete/pockets/tiny + max_items = 1 + max_w_class = WEIGHT_CLASS_TINY + attack_hand_interact = FALSE + +/datum/component/storage/concrete/pockets/small/detective + attack_hand_interact = TRUE // so the detectives would discover pockets in their hats + +/datum/component/storage/concrete/pockets/shoes + attack_hand_interact = FALSE + quickdraw = TRUE + silent = TRUE + +/datum/component/storage/concrete/pockets/shoes/Initialize() + . = ..() + can_hold = typecacheof(list( + /obj/item/kitchen/knife, /obj/item/switchblade, /obj/item/pen, + /obj/item/scalpel, /obj/item/reagent_containers/syringe, /obj/item/dnainjector, + /obj/item/reagent_containers/hypospray/medipen, /obj/item/reagent_containers/dropper, + /obj/item/implanter, /obj/item/screwdriver, /obj/item/weldingtool/mini, + /obj/item/firing_pin + )) + +/datum/component/storage/concrete/pockets/shoes/clown/Initialize() + . = ..() + can_hold = typecacheof(list( + /obj/item/kitchen/knife, /obj/item/switchblade, /obj/item/pen, + /obj/item/scalpel, /obj/item/reagent_containers/syringe, /obj/item/dnainjector, + /obj/item/reagent_containers/hypospray/medipen, /obj/item/reagent_containers/dropper, + /obj/item/implanter, /obj/item/screwdriver, /obj/item/weldingtool/mini, + /obj/item/firing_pin, /obj/item/bikehorn)) + +/datum/component/storage/concrete/pockets/pocketprotector + max_items = 3 + max_w_class = WEIGHT_CLASS_TINY + +/datum/component/storage/concrete/pockets/pocketprotector/Initialize() + . = ..() + can_hold = typecacheof(list( //Same items as a PDA + /obj/item/pen, + /obj/item/toy/crayon, + /obj/item/lipstick, + /obj/item/flashlight/pen, + /obj/item/clothing/mask/cigarette)) \ No newline at end of file diff --git a/code/datums/components/storage/concrete/rped.dm b/code/datums/components/storage/concrete/rped.dm new file mode 100644 index 0000000000..eb895fd74f --- /dev/null +++ b/code/datums/components/storage/concrete/rped.dm @@ -0,0 +1,33 @@ +/datum/component/storage/concrete/rped + collection_mode = COLLECT_EVERYTHING + allow_quick_gather = TRUE + allow_quick_empty = TRUE + click_gather = TRUE + max_w_class = WEIGHT_CLASS_NORMAL + max_combined_w_class = 100 + max_items = 50 + display_numerical_stacking = TRUE + +/datum/component/storage/concrete/rped/can_be_inserted(obj/item/I, stop_messages, mob/M) + . = ..() + if(!I.get_part_rating()) + if (!stop_messages) + to_chat(M, "[parent] only accepts machine parts!") + return FALSE + +/datum/component/storage/concrete/bluespace/rped + collection_mode = COLLECT_EVERYTHING + allow_quick_gather = TRUE + allow_quick_empty = TRUE + click_gather = TRUE + max_w_class = WEIGHT_CLASS_NORMAL + max_combined_w_class = 800 + max_items = 400 + display_numerical_stacking = TRUE + +/datum/component/storage/concrete/bluespace/rped/can_be_inserted(obj/item/I, stop_messages, mob/M) + . = ..() + if(!I.get_part_rating()) + if (!stop_messages) + to_chat(M, "[parent] only accepts machine par ts!") + return FALSE diff --git a/code/datums/components/storage/concrete/special.dm b/code/datums/components/storage/concrete/special.dm new file mode 100644 index 0000000000..556e9e9fc9 --- /dev/null +++ b/code/datums/components/storage/concrete/special.dm @@ -0,0 +1,5 @@ +/datum/component/storage/concrete/secret_satchel/can_be_inserted(I,msg,user) + if(SSpersistence.spawned_objects[I]) + to_chat(user, "[I] is unstable after its journey through space and time, it wouldn't survive another trip.") + return FALSE + return ..() diff --git a/code/datums/components/storage/concrete/stack.dm b/code/datums/components/storage/concrete/stack.dm new file mode 100644 index 0000000000..1f0c44c650 --- /dev/null +++ b/code/datums/components/storage/concrete/stack.dm @@ -0,0 +1,67 @@ +//Stack-only storage. +/datum/component/storage/concrete/stack + display_numerical_stacking = TRUE + var/max_combined_stack_amount = 300 + max_w_class = WEIGHT_CLASS_NORMAL + max_combined_w_class = WEIGHT_CLASS_NORMAL * 14 + +/datum/component/storage/concrete/stack/proc/total_stack_amount() + . = 0 + var/atom/real_location = real_location() + for(var/i in real_location) + var/obj/item/stack/S = i + if(!istype(S)) + continue + . += S.amount + +/datum/component/storage/concrete/stack/proc/remaining_space() + return max(0, max_combined_stack_amount - total_stack_amount()) + +//emptying procs do not need modification as stacks automatically merge. + +/datum/component/storage/concrete/stack/_insert_physical_item(obj/item/I, override = FALSE) + if(!istype(I, /obj/item/stack)) + if(override) + return ..() + return FALSE + var/atom/real_location = real_location() + var/obj/item/stack/S = I + var/can_insert = min(S.amount, remaining_space()) + if(!can_insert) + return FALSE + for(var/i in real_location) //combine. + if(QDELETED(I)) + return + var/obj/item/stack/_S = i + if(!istype(_S)) + continue + if(_S.merge_type == S.merge_type) + _S.add(can_insert) + S.use(can_insert, TRUE) + return TRUE + return ..(S.change_stack(null, can_insert), override) + +/datum/component/storage/concrete/stack/remove_from_storage(obj/item/I, atom/new_location) + var/atom/real_location = real_location() + var/obj/item/stack/S = I + if(!istype(S)) + return ..() + if(S.amount > S.max_amount) + var/overrun = S.amount - S.max_amount + S.amount = S.max_amount + var/obj/item/stack/temp = new S.type(real_location, overrun) + handle_item_insertion(temp) + return ..(S, new_location) + +/datum/component/storage/concrete/stack/_process_numerical_display() + var/atom/real_location = real_location() + . = list() + for(var/i in real_location) + var/obj/item/stack/I = i + if(!istype(I) || QDELETED(I)) //We're specialized stack storage, just ignore non stacks. + continue + if(!.[I.merge_type]) + .[I.merge_type] = new /datum/numbered_display(I, I.amount) + else + var/datum/numbered_display/ND = .[I.merge_type] + ND.number += I.amount diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm new file mode 100644 index 0000000000..58ebf73d15 --- /dev/null +++ b/code/datums/components/storage/storage.dm @@ -0,0 +1,732 @@ +#define COLLECT_ONE 0 +#define COLLECT_EVERYTHING 1 +#define COLLECT_SAME 2 + +#define DROP_NOTHING 0 +#define DROP_AT_PARENT 1 +#define DROP_AT_LOCATION 2 + +// External storage-related logic: +// /mob/proc/ClickOn() in /_onclick/click.dm - clicking items in storages +// /mob/living/Move() in /modules/mob/living/living.dm - hiding storage boxes on mob movement + +/datum/component/storage + dupe_mode = COMPONENT_DUPE_UNIQUE + var/datum/component/storage/concrete/master //If not null, all actions act on master and this is just an access point. + + var/list/can_hold //if this is set, only things in this typecache will fit. + var/list/cant_hold //if this is set, anything in this typecache will not be able to fit. + + var/list/mob/is_using //lazy list of mobs looking at the contents of this storage. + + var/locked = FALSE //when locked nothing can see inside or use it. + + var/max_w_class = WEIGHT_CLASS_SMALL //max size of objects that will fit. + var/max_combined_w_class = 14 //max combined sizes of objects that will fit. + var/max_items = 7 //max number of objects that will fit. + + var/emp_shielded = FALSE + + var/silent = FALSE //whether this makes a message when things are put in. + var/click_gather = FALSE //whether this can be clicked on items to pick it up rather than the other way around. + var/rustle_sound = TRUE //play rustle sound on interact. + var/allow_quick_empty = FALSE //allow empty verb which allows dumping on the floor of everything inside quickly. + var/allow_quick_gather = FALSE //allow toggle mob verb which toggles collecting all items from a tile. + + var/collection_mode = COLLECT_EVERYTHING + + var/insert_preposition = "in" //you put things "in" a bag, but "on" a tray. + + var/display_numerical_stacking = FALSE //stack things of the same type and show as a single object with a number. + + var/obj/screen/storage/boxes //storage display object + var/obj/screen/close/closer //close button object + + var/allow_big_nesting = FALSE //allow storage objects of the same or greater size. + + var/attack_hand_interact = TRUE //interact on attack hand. + var/quickdraw = FALSE //altclick interact + + var/datum/action/item_action/storage_gather_mode/modeswitch_action + + //Screen variables: Do not mess with these vars unless you know what you're doing. They're not defines so storage that isn't in the same location can be supported in the future. + var/screen_max_columns = 7 //These two determine maximum screen sizes. + var/screen_max_rows = INFINITY + var/screen_pixel_x = 16 //These two are pixel values for screen loc of boxes and closer + var/screen_pixel_y = 16 + var/screen_start_x = 4 //These two are where the storage starts being rendered, screen_loc wise. + var/screen_start_y = 2 + //End + +/datum/component/storage/Initialize(datum/component/storage/concrete/master) + if(!isatom(parent)) + return COMPONENT_INCOMPATIBLE + if(master) + change_master(master) + boxes = new(null, src) + closer = new(null, src) + orient2hud() + + RegisterSignal(COMSIG_CONTAINS_STORAGE, .proc/on_check) + RegisterSignal(COMSIG_IS_STORAGE_LOCKED, .proc/check_locked) + RegisterSignal(COMSIG_TRY_STORAGE_SHOW, .proc/signal_show_attempt) + RegisterSignal(COMSIG_TRY_STORAGE_INSERT, .proc/signal_insertion_attempt) + RegisterSignal(COMSIG_TRY_STORAGE_CAN_INSERT, .proc/signal_can_insert) + RegisterSignal(COMSIG_TRY_STORAGE_TAKE_TYPE, .proc/signal_take_type) + RegisterSignal(COMSIG_TRY_STORAGE_FILL_TYPE, .proc/signal_fill_type) + RegisterSignal(COMSIG_TRY_STORAGE_SET_LOCKSTATE, .proc/set_locked) + RegisterSignal(COMSIG_TRY_STORAGE_TAKE, .proc/signal_take_obj) + RegisterSignal(COMSIG_TRY_STORAGE_QUICK_EMPTY, .proc/signal_quick_empty) + RegisterSignal(COMSIG_TRY_STORAGE_HIDE_FROM, .proc/signal_hide_attempt) + RegisterSignal(COMSIG_TRY_STORAGE_HIDE_ALL, .proc/close_all) + RegisterSignal(COMSIG_TRY_STORAGE_RETURN_INVENTORY, .proc/signal_return_inv) + + RegisterSignal(COMSIG_PARENT_ATTACKBY, .proc/attackby) + + RegisterSignal(COMSIG_ATOM_ATTACK_HAND, .proc/on_attack_hand) + RegisterSignal(COMSIG_ATOM_ATTACK_PAW, .proc/on_attack_hand) + RegisterSignal(COMSIG_ATOM_EMP_ACT, .proc/emp_act) + RegisterSignal(COMSIG_ATOM_ATTACK_GHOST, .proc/show_to_ghost) + RegisterSignal(COMSIG_ATOM_EXITED, .proc/_removal_reset) + + RegisterSignal(COMSIG_ITEM_PRE_ATTACK, .proc/preattack_intercept) + RegisterSignal(COMSIG_ITEM_ATTACK_SELF, .proc/attack_self) + RegisterSignal(COMSIG_ITEM_PICKUP, .proc/signal_on_pickup) + + RegisterSignal(COMSIG_MOVABLE_THROW, .proc/close_all) + + RegisterSignal(COMSIG_CLICK_ALT, .proc/on_alt_click) + RegisterSignal(COMSIG_MOUSEDROP_ONTO, .proc/mousedrop_onto) + RegisterSignal(COMSIG_MOUSEDROPPED_ONTO, .proc/mousedrop_recieve) + + update_actions() + +/datum/component/storage/Destroy() + close_all() + QDEL_NULL(boxes) + QDEL_NULL(closer) + LAZYCLEARLIST(is_using) + return ..() + +/datum/component/storage/PreTransfer() + update_actions() + +/datum/component/storage/proc/update_actions() + QDEL_NULL(modeswitch_action) + if(!isitem(parent) || !allow_quick_gather) + return + var/obj/item/I = parent + modeswitch_action = new(I) + if(I.obj_flags & IN_INVENTORY) + var/mob/M = I.loc + if(!istype(M)) + return + modeswitch_action.Grant(M) + +/datum/component/storage/proc/change_master(datum/component/storage/concrete/new_master) + if(!istype(new_master)) + return FALSE + master.on_slave_unlink(src) + master = new_master + master.on_slave_link(src) + return TRUE + +/datum/component/storage/proc/master() + if(master == src) + return //infinite loops yo. + return master + +/datum/component/storage/proc/real_location() + var/datum/component/storage/concrete/master = master() + return master? master.real_location() : null + +/datum/component/storage/proc/attack_self(mob/M) + if(locked) + to_chat(M, "[parent] seems to be locked!") + return FALSE + if((M.get_active_held_item() == parent) && allow_quick_empty) + quick_empty(M) + +/datum/component/storage/proc/preattack_intercept(obj/O, mob/M, params) + if(!isitem(O) || !click_gather || O.SendSignal(COMSIG_CONTAINS_STORAGE)) + return FALSE + . = COMPONENT_NO_ATTACK + if(locked) + to_chat(M, "[parent] seems to be locked!") + return FALSE + var/obj/item/I = O + if(collection_mode == COLLECT_ONE) + if(can_be_inserted(I, null, M)) + handle_item_insertion(I, null, M) + return + if(!isturf(I.loc)) + return + var/list/things = I.loc.contents.Copy() + if(collection_mode == COLLECT_SAME) + things = typecache_filter_list(things, typecacheof(I.type)) + var/len = length(things) + if(!len) + to_chat(M, "You failed to pick up anything with [parent].") + return + var/datum/progressbar/progress = new(M, len, I.loc) + var/list/rejections = list() + while(do_after(M, 10, TRUE, parent, FALSE, CALLBACK(src, .proc/handle_mass_pickup, things, I.loc, rejections, progress))) + stoplag(1) + qdel(progress) + to_chat(M, "You put everything you could [insert_preposition] [parent].") + +/datum/component/storage/proc/handle_mass_item_insertion(list/things, datum/component/storage/src_object, mob/user, datum/progressbar/progress) + var/atom/source_real_location = src_object.real_location() + for(var/obj/item/I in things) + things -= I + if(I.loc != source_real_location) + continue + if(user.active_storage != src_object) + if(I.on_found(user)) + break + if(can_be_inserted(I,FALSE,user)) + handle_item_insertion(I, TRUE, user) + if (TICK_CHECK) + progress.update(progress.goal - things.len) + return TRUE + + progress.update(progress.goal - things.len) + return FALSE + +/datum/component/storage/proc/handle_mass_pickup(list/things, atom/thing_loc, list/rejections, datum/progressbar/progress) + var/atom/real_location = real_location() + for(var/obj/item/I in things) + things -= I + if(I.loc != thing_loc) + continue + if(I.type in rejections) // To limit bag spamming: any given type only complains once + continue + if(!can_be_inserted(I, stop_messages = TRUE)) // Note can_be_inserted still makes noise when the answer is no + if(real_location.contents.len >= max_items) + break + rejections += I.type // therefore full bags are still a little spammy + continue + + handle_item_insertion(I, TRUE) //The TRUE stops the "You put the [parent] into [S]" insertion message from being displayed. + + if (TICK_CHECK) + progress.update(progress.goal - things.len) + return TRUE + + progress.update(progress.goal - things.len) + return FALSE + +/datum/component/storage/proc/quick_empty(mob/M) + var/atom/A = parent + if((!ishuman(M) && (A.loc != M)) || (M.stat != CONSCIOUS) || M.restrained() || !M.canmove) + return + if(locked) + to_chat(M, "[parent] seems to be locked!") + return FALSE + A.add_fingerprint(M) + to_chat(M, "You start dumping out [parent].") + var/turf/T = get_turf(A) + var/list/things = contents() + var/datum/progressbar/progress = new(M, length(things), T) + while (do_after(M, 10, TRUE, T, FALSE, CALLBACK(src, .proc/mass_remove_from_storage, T, things, progress))) + stoplag(1) + qdel(progress) + +/datum/component/storage/proc/mass_remove_from_storage(atom/target, list/things, datum/progressbar/progress) + var/atom/real_location = real_location() + for(var/obj/item/I in things) + things -= I + if(I.loc != real_location) + continue + remove_from_storage(I, target) + if(TICK_CHECK) + progress.update(progress.goal - length(things)) + return TRUE + progress.update(progress.goal - length(things)) + return FALSE + +/datum/component/storage/proc/do_quick_empty(atom/_target) + if(!_target) + _target = get_turf(parent) + if(usr) + hide_from(usr) + var/list/contents = contents() + var/atom/real_location = real_location() + for(var/obj/item/I in contents) + if(I.loc != real_location) + continue + remove_from_storage(I, _target) + return TRUE + +/datum/component/storage/proc/set_locked(new_state) + locked = new_state + if(locked) + close_all() + +/datum/component/storage/proc/_process_numerical_display() + . = list() + var/atom/real_location = real_location() + for(var/obj/item/I in real_location.contents) + if(QDELETED(I)) + continue + if(!.[I.type]) + .[I.type] = new /datum/numbered_display(I, 1) + else + var/datum/numbered_display/ND = .[I.type] + ND.number++ + +//This proc determines the size of the inventory to be displayed. Please touch it only if you know what you're doing. +/datum/component/storage/proc/orient2hud() + var/atom/real_location = real_location() + var/adjusted_contents = real_location.contents.len + + //Numbered contents display + var/list/datum/numbered_display/numbered_contents + if(display_numerical_stacking) + numbered_contents = _process_numerical_display() + adjusted_contents = numbered_contents.len + + var/columns = CLAMP(max_items, 1, screen_max_columns) + var/rows = CLAMP(CEILING(adjusted_contents / columns, 1), 1, screen_max_rows) + standard_orient_objs(rows, columns, numbered_contents) + +//This proc draws out the inventory and places the items on it. It uses the standard position. +/datum/component/storage/proc/standard_orient_objs(rows, cols, list/obj/item/numerical_display_contents) + boxes.screen_loc = "[screen_start_x]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y] to [screen_start_x+cols-1]:[screen_pixel_x],[screen_start_y+rows-1]:[screen_pixel_y]" + var/cx = screen_start_x + var/cy = screen_start_y + if(islist(numerical_display_contents)) + for(var/type in numerical_display_contents) + var/datum/numbered_display/ND = numerical_display_contents[type] + ND.sample_object.mouse_opacity = MOUSE_OPACITY_OPAQUE + ND.sample_object.screen_loc = "[cx]:[screen_pixel_x],[cy]:[screen_pixel_y]" + ND.sample_object.maptext = "[(ND.number > 1)? "[ND.number]" : ""]" + ND.sample_object.layer = ABOVE_HUD_LAYER + ND.sample_object.plane = ABOVE_HUD_PLANE + cx++ + if(cx - screen_start_x >= cols) + cx = screen_start_x + cy++ + if(cy - screen_start_y >= rows) + break + else + var/atom/real_location = real_location() + for(var/obj/O in real_location) + if(QDELETED(O)) + continue + O.mouse_opacity = MOUSE_OPACITY_OPAQUE //This is here so storage items that spawn with contents correctly have the "click around item to equip" + O.screen_loc = "[cx]:[screen_pixel_x],[cy]:[screen_pixel_y]" + O.maptext = "" + O.layer = ABOVE_HUD_LAYER + O.plane = ABOVE_HUD_PLANE + cx++ + if(cx - screen_start_x >= cols) + cx = screen_start_x + cy++ + if(cy - screen_start_y >= rows) + break + closer.screen_loc = "[screen_start_x + cols]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y]" + +/datum/component/storage/proc/show_to(mob/M) + if(!M.client) + return FALSE + var/atom/real_location = real_location() + if(M.active_storage != src && (M.stat == CONSCIOUS)) + for(var/obj/item/I in real_location) + if(I.on_found(M)) + return FALSE + if(M.active_storage) + M.active_storage.hide_from(M) + orient2hud() + M.client.screen |= boxes + M.client.screen |= closer + M.client.screen |= real_location.contents + M.active_storage = src + LAZYOR(is_using, M) + return TRUE + +/datum/component/storage/proc/hide_from(mob/M) + if(!M.client) + return TRUE + var/atom/real_location = real_location() + M.client.screen -= boxes + M.client.screen -= closer + M.client.screen -= real_location.contents + if(M.active_storage == src) + M.active_storage = null + LAZYREMOVE(is_using, M) + return TRUE + +/datum/component/storage/proc/close(mob/M) + hide_from(M) + +/datum/component/storage/proc/close_all() + . = FALSE + for(var/mob/M in can_see_contents()) + close(M) + . = TRUE //returns TRUE if any mobs actually got a close(M) call + +/datum/component/storage/proc/emp_act(severity) + var/atom/A = parent + if(!isliving(A.loc) && !emp_shielded) + var/datum/component/storage/concrete/master = master() + master.emp_act(severity) + +//This proc draws out the inventory and places the items on it. tx and ty are the upper left tile and mx, my are the bottm right. +//The numbers are calculated from the bottom-left The bottom-left slot being 1,1. +/datum/component/storage/proc/orient_objs(tx, ty, mx, my) + var/atom/real_location = real_location() + var/cx = tx + var/cy = ty + boxes.screen_loc = "[tx]:,[ty] to [mx],[my]" + for(var/obj/O in real_location) + if(QDELETED(O)) + continue + O.screen_loc = "[cx],[cy]" + O.layer = ABOVE_HUD_LAYER + O.plane = ABOVE_HUD_PLANE + cx++ + if(cx > mx) + cx = tx + cy-- + closer.screen_loc = "[mx+1],[my]" + +//Resets something that is being removed from storage. +/datum/component/storage/proc/_removal_reset(atom/movable/thing) + if(!istype(thing)) + return FALSE + var/datum/component/storage/concrete/master = master() + if(!istype(master)) + return FALSE + return master._removal_reset(thing) + +//Call this proc to handle the removal of an item from the storage item. The item will be moved to the new_location target, if that is null it's being deleted +/datum/component/storage/proc/remove_from_storage(atom/movable/AM, atom/new_location) + if(!istype(AM)) + return FALSE + var/datum/component/storage/concrete/master = master() + if(!istype(master)) + return FALSE + return master.remove_from_storage(AM, new_location) + +/datum/component/storage/proc/refresh_mob_views() + var/list/seeing = can_see_contents() + for(var/i in seeing) + show_to(i) + return TRUE + +/datum/component/storage/proc/can_see_contents() + var/list/cansee = list() + for(var/mob/M in is_using) + if(M.active_storage == src && M.client) + cansee |= M + else + LAZYREMOVE(is_using, M) + return cansee + +//Tries to dump content +/datum/component/storage/proc/dump_content_at(atom/dest_object, mob/M) + var/atom/A = parent + var/atom/dump_destination = dest_object.get_dumping_location() + if(A.Adjacent(M) && dump_destination && M.Adjacent(dump_destination)) + if(locked) + to_chat(M, "[parent] seems to be locked!") + return FALSE + if(dump_destination.storage_contents_dump_act(src, M)) + playsound(A, "rustle", 50, 1, -5) + return TRUE + return FALSE + +//This proc is called when you want to place an item into the storage item. +/datum/component/storage/proc/attackby(obj/item/I, mob/M, params) + if(istype(I, /obj/item/hand_labeler)) + var/obj/item/hand_labeler/labeler = I + if(labeler.mode) + return FALSE + . = TRUE //no afterattack + if(iscyborg(M)) + return + if(!can_be_inserted(I, FALSE, M)) + var/atom/real_location = real_location() + if(real_location.contents.len >= max_items) //don't use items on the backpack if they don't fit + return TRUE + return FALSE + handle_item_insertion(I, FALSE, M) + +/datum/component/storage/proc/return_inv() + . = list() + . += contents() + for(var/i in contents()) + var/atom/a = i + GET_COMPONENT_FROM(STR, /datum/component/storage, a) + if(STR) + . += STR.return_inv() + +/datum/component/storage/proc/contents() //ONLY USE IF YOU NEED TO COPY CONTENTS OF REAL LOCATION, COPYING IS NOT AS FAST AS DIRECT ACCESS! + var/atom/real_location = real_location() + return real_location.contents.Copy() + +/datum/component/storage/proc/signal_return_inv(list/interface) + if(!islist(interface)) + return FALSE + interface |= return_inv() + return TRUE + +/datum/component/storage/proc/mousedrop_onto(atom/over_object, mob/M) + set waitfor = FALSE + . = COMPONENT_NO_MOUSEDROP + var/atom/A = parent + if(ismob(M)) //all the check for item manipulation are in other places, you can safely open any storages as anything and its not buggy, i checked + A.add_fingerprint(M) + if(!over_object) + return FALSE + if(ismecha(M.loc)) // stops inventory actions in a mech + return FALSE + // this must come before the screen objects only block, dunno why it wasn't before + if(over_object == M) + user_show_to_mob(M) + if(!M.incapacitated()) + if(!istype(over_object, /obj/screen)) + dump_content_at(over_object, M) + return + if(A.loc != M) + return + playsound(A, "rustle", 50, 1, -5) + if(istype(over_object, /obj/screen/inventory/hand)) + var/obj/screen/inventory/hand/H = over_object + M.putItemFromInventoryInHandIfPossible(A, H.held_index) + return + A.add_fingerprint(M) + +/datum/component/storage/proc/user_show_to_mob(mob/M, force = FALSE) + var/atom/A = parent + if(!istype(M)) + return FALSE + A.add_fingerprint(M) + if(locked && !force) + to_chat(M, "[parent] seems to be locked!") + return FALSE + if(force || M.CanReach(parent, view_only = TRUE)) + show_to(M) + +/datum/component/storage/proc/mousedrop_recieve(atom/movable/O, mob/M) + if(isitem(O)) + var/obj/item/I = O + if(iscarbon(M) || isdrone(M)) + var/mob/living/L = M + if(!L.incapacitated() && I == L.get_active_held_item()) + if(!I.SendSignal(COMSIG_CONTAINS_STORAGE) && can_be_inserted(I, FALSE)) //If it has storage it should be trying to dump, not insert. + handle_item_insertion(I, FALSE, L) + +//This proc return 1 if the item can be picked up and 0 if it can't. +//Set the stop_messages to stop it from printing messages +/datum/component/storage/proc/can_be_inserted(obj/item/I, stop_messages = FALSE, mob/M) + if(!istype(I) || (I.flags_1 & ABSTRACT_1)) + return FALSE //Not an item + if(I == parent) + return FALSE //no paradoxes for you + var/atom/real_location = real_location() + var/atom/host = parent + if(real_location == I.loc) + return FALSE //Means the item is already in the storage item + if(locked) + if(M) + host.add_fingerprint(M) + to_chat(M, "[host] seems to be locked!") + return FALSE + if(real_location.contents.len >= max_items) + if(!stop_messages) + to_chat(M, "[host] is full, make some space!") + return FALSE //Storage item is full + if(length(can_hold)) + if(!is_type_in_typecache(I, can_hold)) + if(!stop_messages) + to_chat(M, "[host] cannot hold [I]!") + return FALSE + if(is_type_in_typecache(I, cant_hold)) //Check for specific items which this container can't hold. + if(!stop_messages) + to_chat(M, "[host] cannot hold [I]!") + return FALSE + if(I.w_class > max_w_class) + if(!stop_messages) + to_chat(M, "[I] is too big for [host]!") + return FALSE + var/sum_w_class = I.w_class + for(var/obj/item/_I in real_location) + sum_w_class += _I.w_class //Adds up the combined w_classes which will be in the storage item if the item is added to it. + if(sum_w_class > max_combined_w_class) + if(!stop_messages) + to_chat(M, "[I] won't fit in [host], make some space!") + return FALSE + if(isitem(host)) + var/obj/item/IP = host + GET_COMPONENT_FROM(STR_I, /datum/component/storage, I) + if((I.w_class >= IP.w_class) && STR_I && !allow_big_nesting) + if(!stop_messages) + to_chat(M, "[IP] cannot hold [I] as it's a storage item of the same size!") + return FALSE //To prevent the stacking of same sized storage items. + if(I.flags_1 & NODROP_1) //SHOULD be handled in unEquip, but better safe than sorry. + to_chat(M, "\the [I] is stuck to your hand, you can't put it in \the [host]!") + return FALSE + var/datum/component/storage/concrete/master = master() + if(!istype(master)) + return FALSE + return master.slave_can_insert_object(src, I, stop_messages, M) + +/datum/component/storage/proc/_insert_physical_item(obj/item/I, override = FALSE) + return FALSE + +//This proc handles items being inserted. It does not perform any checks of whether an item can or can't be inserted. That's done by can_be_inserted() +//The stop_warning parameter will stop the insertion message from being displayed. It is intended for cases where you are inserting multiple items at once, +//such as when picking up all the items on a tile with one click. +/datum/component/storage/proc/handle_item_insertion(obj/item/I, prevent_warning = FALSE, mob/M, datum/component/storage/remote) + var/atom/parent = src.parent + var/datum/component/storage/concrete/master = master() + if(!istype(master)) + return FALSE + if(silent) + prevent_warning = TRUE + if(M) + parent.add_fingerprint(M) + . = master.handle_item_insertion_from_slave(src, I, prevent_warning, M) + +/datum/component/storage/proc/mob_item_insertion_feedback(mob/user, mob/M, obj/item/I, override = FALSE) + if(silent && !override) + return + if(rustle_sound) + playsound(parent, "rustle", 50, 1, -5) + for(var/mob/viewing in viewers(user, null)) + if(M == viewing) + to_chat(usr, "You put [I] [insert_preposition]to [parent].") + else if(in_range(M, viewing)) //If someone is standing close enough, they can tell what it is... + viewing.show_message("[M] puts [I] [insert_preposition]to [parent].", 1) + else if(I && I.w_class >= 3) //Otherwise they can only see large or normal items from a distance... + viewing.show_message("[M] puts [I] [insert_preposition]to [parent].", 1) + +/datum/component/storage/proc/update_icon() + if(isobj(parent)) + var/obj/O = parent + O.update_icon() + +/datum/component/storage/proc/signal_insertion_attempt(obj/item/I, mob/M, silent = FALSE, force = FALSE) + if((!force && !can_be_inserted(I, TRUE, M)) || (I == parent)) + return FALSE + return handle_item_insertion(I, silent, M) + +/datum/component/storage/proc/signal_can_insert(obj/item/I, mob/M, silent = FALSE) + return can_be_inserted(I, silent, M) + +/datum/component/storage/proc/show_to_ghost(mob/dead/observer/M) + return user_show_to_mob(M, TRUE) + +/datum/component/storage/proc/signal_show_attempt(mob/showto, force = FALSE) + return user_show_to_mob(showto, force) + +/datum/component/storage/proc/on_check() + return TRUE + +/datum/component/storage/proc/check_locked() + return locked + +/datum/component/storage/proc/signal_take_type(type, atom/destination, amount = INFINITY, check_adjacent = FALSE, force = FALSE, mob/user, list/inserted) + if(!force) + if(check_adjacent) + if(user) + if(!user.CanReach(destination) || !user.CanReach(parent)) + return FALSE + else if(!destination.CanReachStorage(parent)) + return FALSE + var/list/taking = typecache_filter_list(contents(), typecacheof(type)) + if(length(taking) > amount) + taking.Cut(amount) + if(inserted) //duplicated code for performance, don't bother checking retval/checking for list every item. + for(var/i in taking) + if(remove_from_storage(i, destination)) + inserted |= i + else + for(var/i in taking) + remove_from_storage(i, destination) + return TRUE + +/datum/component/storage/proc/remaining_space_items() + var/atom/real_location = real_location() + return max(0, max_items - real_location.contents.len) + +/datum/component/storage/proc/signal_fill_type(type, amount = 20, force = FALSE) + var/atom/real_location = real_location() + if(!force) + amount = min(remaining_space_items(), amount) + for(var/i in 1 to amount) + handle_item_insertion(new type(real_location), TRUE) + CHECK_TICK + return TRUE + +/datum/component/storage/proc/on_attack_hand(mob/user) + var/atom/A = parent + if(!attack_hand_interact) + return + if(user.active_storage == src && A.loc == user) //if you're already looking inside the storage item + user.active_storage.close(user) + close(user) + . = COMPONENT_NO_ATTACK_HAND + return + + if(rustle_sound) + playsound(A, "rustle", 50, 1, -5) + + if(ishuman(user)) + var/mob/living/carbon/human/H = user + if(H.l_store == A && !H.get_active_held_item()) //Prevents opening if it's in a pocket. + . = COMPONENT_NO_ATTACK_HAND + H.put_in_hands(A) + H.l_store = null + return + if(H.r_store == A && !H.get_active_held_item()) + . = COMPONENT_NO_ATTACK_HAND + H.put_in_hands(A) + H.r_store = null + return + + if(A.loc == user) + . = COMPONENT_NO_ATTACK_HAND + show_to(user) + +/datum/component/storage/proc/signal_on_pickup(mob/user) + var/atom/A = parent + update_actions() + for(var/mob/M in range(1, A)) + if(M.active_storage == src) + close(M) + +/datum/component/storage/proc/signal_take_obj(atom/movable/AM, new_loc, force = FALSE) + if(!(AM in real_location())) + return FALSE + return remove_from_storage(AM, new_loc) + +/datum/component/storage/proc/signal_quick_empty(atom/loctarget) + return do_quick_empty(loctarget) + +/datum/component/storage/proc/signal_hide_attempt(mob/target) + return hide_from(target) + +/datum/component/storage/proc/on_alt_click(mob/user) + if(!isliving(user) || user.incapacitated() || !quickdraw || !user.CanReach(parent)) + return + var/obj/item/I = locate() in real_location() + if(!I) + return + remove_from_storage(I, get_turf(user)) + if(!user.put_in_hands(I)) + to_chat(user, "You fumble for [I] and it falls on the floor.") + return + user.visible_message("[user] draws [I] from [parent]!", "You draw [I] from [parent].") + +/datum/component/storage/proc/gather_mode_switch(mob/user) + collection_mode = (collection_mode+1)%3 + switch(collection_mode) + if(COLLECT_SAME) + to_chat(user, "[parent] now picks up all items of a single type at once.") + if(COLLECT_EVERYTHING) + to_chat(user, "[parent] now picks up all items in a tile at once.") + if(COLLECT_ONE) + to_chat(user, "[parent] now picks up one item at a time.") \ No newline at end of file diff --git a/code/datums/components/thermite.dm b/code/datums/components/thermite.dm index 13ec5ed8f9..809abbfdcc 100644 --- a/code/datums/components/thermite.dm +++ b/code/datums/components/thermite.dm @@ -3,28 +3,25 @@ var/amount var/overlay - var/static/list/blacklist = typecacheof( + var/static/list/blacklist = typecacheof(list( /turf/open/lava, /turf/open/space, /turf/open/water, - /turf/open/chasm, + /turf/open/chasm) ) - var/static/list/immunelist = typecacheof( + var/static/list/immunelist = typecacheof(list( /turf/closed/wall/mineral/diamond, /turf/closed/indestructible, - /turf/open/indestructible, + /turf/open/indestructible) ) var/static/list/resistlist = typecacheof( - /turf/closed/wall/r_wall, + /turf/closed/wall/r_wall ) /datum/component/thermite/Initialize(_amount) - if(!istype(parent, /turf)) - . = COMPONENT_INCOMPATIBLE - CRASH("A thermite component has been applied to an incorrect object. parent: [parent]") - if(blacklist[parent.type]) + if(!istype(parent, /turf) || blacklist[parent.type]) return COMPONENT_INCOMPATIBLE if(immunelist[parent.type]) _amount*=0 //Yeah the overlay can still go on it and be cleaned but you arent burning down a diamond wall diff --git a/code/datums/components/wet_floor.dm b/code/datums/components/wet_floor.dm index 7faeb2dfb2..afba151b9f 100644 --- a/code/datums/components/wet_floor.dm +++ b/code/datums/components/wet_floor.dm @@ -24,8 +24,7 @@ /datum/component/wet_floor/Initialize(strength, duration_minimum, duration_add, duration_maximum, _permanent = FALSE) if(!isopenturf(parent)) - . = COMPONENT_INCOMPATIBLE - CRASH("Wet floor component attempted to be applied to a non open turf!") + return COMPONENT_INCOMPATIBLE add_wet(strength, duration_minimum, duration_add, duration_maximum) RegisterSignal(COMSIG_TURF_IS_WET, .proc/is_wet) RegisterSignal(COMSIG_TURF_MAKE_DRY, .proc/dry) @@ -136,13 +135,14 @@ for(var/i in time_left_list) . |= text2num(i) -/datum/component/wet_floor/OnTransfer(datum/to_datum) - if(!isopenturf(to_datum)) - . = COMPONENT_INCOMPATIBLE - CRASH("Wet floor component attempted to be transferred to a non open turf!") +/datum/component/wet_floor/PreTransfer() var/turf/O = parent O.cut_overlay(current_overlay) - var/turf/T = to_datum + +/datum/component/wet_floor/PostTransfer() + if(!isopenturf(parent)) + return COMPONENT_INCOMPATIBLE + var/turf/T = parent T.add_overlay(current_overlay) /datum/component/wet_floor/proc/add_wet(type, duration_minimum = 0, duration_add = 0, duration_maximum = MAXIMUM_WET_TIME, _permanent = FALSE) diff --git a/code/datums/diseases/_MobProcs.dm b/code/datums/diseases/_MobProcs.dm index 7955f81e66..74d4b90493 100644 --- a/code/datums/diseases/_MobProcs.dm +++ b/code/datums/diseases/_MobProcs.dm @@ -17,6 +17,14 @@ if(HasDisease(D)) return FALSE + var/can_infect = FALSE + for(var/host_type in D.infectable_biotypes) + if(host_type in mob_biotypes) + can_infect = TRUE + break + if(!can_infect) + return FALSE + if(!(type in D.viable_mobtypes)) return FALSE @@ -132,14 +140,6 @@ if(has_trait(TRAIT_VIRUSIMMUNE) && !D.bypasses_immunity) return FALSE - var/can_infect = FALSE - for(var/host_type in D.infectable_hosts) - if(host_type in dna.species.species_traits) - can_infect = TRUE - break - if(!can_infect) - return FALSE - for(var/thing in D.required_organs) if(!((locate(thing) in bodyparts) || (locate(thing) in internal_organs))) return FALSE diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm index 614cd14abb..221dd7e804 100644 --- a/code/datums/diseases/_disease.dm +++ b/code/datums/diseases/_disease.dm @@ -30,7 +30,7 @@ var/list/required_organs = list() var/needs_all_cures = TRUE var/list/strain_data = list() //dna_spread special bullshit - var/list/infectable_hosts = list(SPECIES_ORGANIC) //if the disease can spread on organics, synthetics, or undead + var/list/infectable_biotypes = list(MOB_ORGANIC) //if the disease can spread on organics, synthetics, or undead var/process_dead = FALSE //if this ticks while the host is dead /datum/disease/Destroy() @@ -139,7 +139,7 @@ var/static/list/copy_vars = list("name", "visibility_flags", "disease_flags", "spread_flags", "form", "desc", "agent", "spread_text", "cure_text", "max_stages", "stage_prob", "viable_mobtypes", "cures", "infectivity", "cure_chance", "bypasses_immunity", "permeability_mod", "severity", "required_organs", "needs_all_cures", "strain_data", - "infectable_hosts", "process_dead") + "infectable_biotypes", "process_dead") var/datum/disease/D = new type() for(var/V in copy_vars) diff --git a/code/datums/diseases/advance/symptoms/species.dm b/code/datums/diseases/advance/symptoms/species.dm index 837252c1e6..d0c32f3244 100644 --- a/code/datums/diseases/advance/symptoms/species.dm +++ b/code/datums/diseases/advance/symptoms/species.dm @@ -12,7 +12,7 @@ if(!..()) return A.process_dead = TRUE - A.infectable_hosts |= SPECIES_UNDEAD + A.infectable_biotypes |= MOB_UNDEAD /datum/symptom/inorganic_adaptation name = "Inorganic Biology" @@ -27,4 +27,4 @@ /datum/symptom/inorganic_adaptation/Start(datum/disease/advance/A) if(!..()) return - A.infectable_hosts |= SPECIES_INORGANIC \ No newline at end of file + A.infectable_biotypes |= MOB_INORGANIC \ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/weakness.dm b/code/datums/diseases/advance/symptoms/weakness.dm deleted file mode 100644 index a96266effe..0000000000 --- a/code/datums/diseases/advance/symptoms/weakness.dm +++ /dev/null @@ -1,44 +0,0 @@ -/* -////////////////////////////////////// - -Weakness - - Slightly noticeable. - Lowers resistance slightly. - Decreases stage speed moderately. - Decreases transmittablity moderately. - Moderate Level. - -Bonus - Deals stamina damage to the host - -////////////////////////////////////// -*/ - -/datum/symptom/weakness - - name = "Weakness" - stealth = -1 - resistance = -1 - stage_speed = -2 - transmittable = -2 - level = 3 - severity = 3 - -/datum/symptom/weakness/Activate(datum/disease/advance/A) - ..() - if(prob(SYMPTOM_ACTIVATION_PROB)) - var/mob/living/M = A.affected_mob - switch(A.stage) - if(1, 2) - to_chat(M, "[pick("You feel weak.", "You feel lazy.")]") - if(3, 4) - to_chat(M, "[pick("You feel very frail.", "You think you might faint.")]") - M.adjustStaminaLoss(15) - else - to_chat(M, "[pick("You feel tremendously weak!", "Your body trembles as exhaustion creeps over you.")]") - M.adjustStaminaLoss(30) - if(M.getStaminaLoss() > 60 && !M.stat) - M.visible_message("[M] faints!", "You swoon and faint...") - M.AdjustSleeping(100) - return diff --git a/code/datums/diseases/beesease.dm b/code/datums/diseases/beesease.dm index f6504fa464..ab64fd515c 100644 --- a/code/datums/diseases/beesease.dm +++ b/code/datums/diseases/beesease.dm @@ -10,7 +10,7 @@ viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) desc = "If left untreated subject will regurgitate bees." severity = DISEASE_SEVERITY_MEDIUM - infectable_hosts = list(SPECIES_ORGANIC, SPECIES_UNDEAD) //bees nesting in corpses + infectable_biotypes = list(MOB_ORGANIC, MOB_UNDEAD) //bees nesting in corpses /datum/disease/beesease/stage_act() ..() diff --git a/code/datums/diseases/magnitis.dm b/code/datums/diseases/magnitis.dm index 13959e9bda..7c5f05c440 100644 --- a/code/datums/diseases/magnitis.dm +++ b/code/datums/diseases/magnitis.dm @@ -10,7 +10,7 @@ permeability_mod = 0.75 desc = "This disease disrupts the magnetic field of your body, making it act as if a powerful magnet. Injections of iron help stabilize the field." severity = DISEASE_SEVERITY_MEDIUM - infectable_hosts = list(SPECIES_ORGANIC, SPECIES_ROBOTIC) + infectable_biotypes = list(MOB_ORGANIC, MOB_ROBOTIC) process_dead = TRUE /datum/disease/magnitis/stage_act() diff --git a/code/datums/diseases/parrotpossession.dm b/code/datums/diseases/parrotpossession.dm index 4fe0dc21b0..66395ef5a5 100644 --- a/code/datums/diseases/parrotpossession.dm +++ b/code/datums/diseases/parrotpossession.dm @@ -11,7 +11,7 @@ viable_mobtypes = list(/mob/living/carbon/human) desc = "Subject is possesed by the vengeful spirit of a parrot. Call the priest." severity = DISEASE_SEVERITY_MEDIUM - infectable_hosts = list(SPECIES_ORGANIC, SPECIES_UNDEAD, SPECIES_INORGANIC, SPECIES_ROBOTIC) + infectable_biotypes = list(MOB_ORGANIC, MOB_UNDEAD, MOB_INORGANIC, MOB_ROBOTIC) bypasses_immunity = TRUE //2spook var/mob/living/simple_animal/parrot/Poly/ghost/parrot diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm index db88bd6777..52b63ccd5f 100644 --- a/code/datums/diseases/transformation.dm +++ b/code/datums/diseases/transformation.dm @@ -149,7 +149,7 @@ stage4 = list("Your skin feels very loose.", "You can feel... something...inside you.") stage5 = list("Your skin feels as if it's about to burst off!") new_form = /mob/living/silicon/robot - infectable_hosts = list(SPECIES_ORGANIC, SPECIES_UNDEAD, SPECIES_ROBOTIC) + infectable_biotypes = list(MOB_ORGANIC, MOB_UNDEAD, MOB_ROBOTIC) /datum/disease/transformation/robot/stage_act() ..() @@ -263,4 +263,4 @@ stage4 = list("You're ravenous.") stage5 = list("You have become a morph.") new_form = /mob/living/simple_animal/hostile/morph - infectable_hosts = list(SPECIES_ORGANIC, SPECIES_INORGANIC, SPECIES_UNDEAD) //magic! + infectable_biotypes = list(MOB_ORGANIC, MOB_INORGANIC, MOB_UNDEAD) //magic! diff --git a/code/datums/martial.dm b/code/datums/martial.dm index 04dadd7331..c4b0eb7c60 100644 --- a/code/datums/martial.dm +++ b/code/datums/martial.dm @@ -20,6 +20,9 @@ /datum/martial_art/proc/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D) return 0 +/datum/martial_art/proc/can_use(mob/living/carbon/human/H) + return TRUE + /datum/martial_art/proc/add_to_streak(element,mob/living/carbon/human/D) if(D != current_target) current_target = D diff --git a/code/datums/martial/cqc.dm b/code/datums/martial/cqc.dm index cbf4292a80..8a480cc2d7 100644 --- a/code/datums/martial/cqc.dm +++ b/code/datums/martial/cqc.dm @@ -18,31 +18,40 @@ just_a_cook = TRUE /datum/martial_art/cqc/proc/drop_restraining() - restraining = 0 + restraining = FALSE + +/datum/martial_art/cqc/can_use(mob/living/carbon/human/H) + if(just_a_cook && !(is_type_in_typecache(get_area(H), areas_under_siege))) + return FALSE + return ..() /datum/martial_art/cqc/proc/check_streak(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(!can_use(A)) + return FALSE if(findtext(streak,SLAM_COMBO)) streak = "" Slam(A,D) - return 1 + return TRUE if(findtext(streak,KICK_COMBO)) streak = "" Kick(A,D) - return 1 + return TRUE if(findtext(streak,RESTRAIN_COMBO)) streak = "" Restrain(A,D) - return 1 + return TRUE if(findtext(streak,PRESSURE_COMBO)) streak = "" Pressure(A,D) - return 1 + return TRUE if(findtext(streak,CONSECUTIVE_COMBO)) streak = "" Consecutive(A,D) - return 0 + return FALSE /datum/martial_art/cqc/proc/Slam(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(!can_use(A)) + return FALSE if(!D.stat || !D.IsKnockdown()) D.visible_message("[A] slams [D] into the ground!", \ "[A] slams you into the ground!") @@ -50,9 +59,11 @@ D.apply_damage(10, BRUTE) D.Knockdown(120) add_logs(A, D, "cqc slammed") - return 1 + return TRUE /datum/martial_art/cqc/proc/Kick(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(!can_use(A)) + return FALSE if(!D.stat || !D.IsKnockdown()) D.visible_message("[A] kicks [D] back!", \ "[A] kicks you back!") @@ -67,27 +78,33 @@ playsound(get_turf(A), 'sound/weapons/genhit1.ogg', 50, 1, -1) D.SetSleeping(300) D.adjustBrainLoss(15, 150) - return 1 + return TRUE /datum/martial_art/cqc/proc/Pressure(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(!can_use(A)) + return FALSE D.visible_message("[A] forces their arm on [D]'s neck!") D.adjustStaminaLoss(60) playsound(get_turf(A), 'sound/weapons/cqchit1.ogg', 50, 1, -1) - return 1 + return TRUE /datum/martial_art/cqc/proc/Restrain(mob/living/carbon/human/A, mob/living/carbon/human/D) if(restraining) return + if(!can_use(A)) + return FALSE if(!D.stat) D.visible_message("[A] locks [D] into a restraining position!", \ "[A] locks you into a restraining position!") D.adjustStaminaLoss(20) D.Stun(100) - restraining = 1 + restraining = TRUE addtimer(CALLBACK(src, .proc/drop_restraining), 50, TIMER_UNIQUE) - return 1 + return TRUE /datum/martial_art/cqc/proc/Consecutive(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(!can_use(A)) + return FALSE if(!D.stat) D.visible_message("[A] strikes [D]'s abdomen, neck and back consecutively", \ "[A] strikes your abdomen, neck and back consecutively!") @@ -97,15 +114,14 @@ A.put_in_hands(I) D.adjustStaminaLoss(50) D.apply_damage(25, BRUTE) - return 1 + return TRUE /datum/martial_art/cqc/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D) - if(just_a_cook) - if(!is_type_in_typecache(get_area(A), areas_under_siege)) - return 0 + if(!can_use(A)) + return FALSE add_to_streak("G",D) if(check_streak(A,D)) - return 1 + return TRUE if(A.grab_state >= GRAB_AGGRESSIVE) D.grabbedby(A, 1) else @@ -115,15 +131,14 @@ add_logs(A, D, "grabbed", addition="aggressively") A.grab_state = GRAB_AGGRESSIVE //Instant aggressive grab - return 1 + return TRUE /datum/martial_art/cqc/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) - if(just_a_cook) - if(!is_type_in_typecache(get_area(A), areas_under_siege)) - return 0 + if(!can_use(A)) + return FALSE add_to_streak("H",D) if(check_streak(A,D)) - return 1 + return TRUE add_logs(A, D, "CQC'd") A.do_attack_animation(D) var/picked_hit_type = pick("CQC'd", "Big Bossed") @@ -146,16 +161,15 @@ D.apply_damage(10, BRUTE) D.Knockdown(60) add_logs(A, D, "cqc sweeped") - return 1 + return TRUE /datum/martial_art/cqc/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) - if(just_a_cook) - if(!is_type_in_typecache(get_area(A), areas_under_siege)) - return 0 + if(!can_use(A)) + return FALSE add_to_streak("D",D) var/obj/item/I = null if(check_streak(A,D)) - return 1 + return TRUE if(prob(65)) if(!D.stat || !D.IsKnockdown() || !restraining) I = D.get_active_held_item() @@ -175,13 +189,13 @@ D.visible_message("[A] puts [D] into a chokehold!", \ "[A] puts you into a chokehold!") D.SetSleeping(400) - restraining = 0 + restraining = FALSE if(A.grab_state < GRAB_NECK) A.grab_state = GRAB_NECK else - restraining = 0 - return 0 - return 1 + restraining = FALSE + return FALSE + return TRUE /mob/living/carbon/human/proc/CQC_help() set name = "Remember The Basics" diff --git a/code/datums/martial/mushpunch.dm b/code/datums/martial/mushpunch.dm index b68d1f1b2b..7c99d4d8aa 100644 --- a/code/datums/martial/mushpunch.dm +++ b/code/datums/martial/mushpunch.dm @@ -23,7 +23,7 @@ /obj/item/mushpunch name = "odd mushroom" desc = "Sapienza Ophioglossoides:An odd mushroom from the flesh of a mushroom person. it has apparently retained some innate power of it's owner, as it quivers with barely-contained POWER!" - icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' + icon = 'icons/obj/hydroponics/seeds.dmi' icon_state = "mycelium-angel" /obj/item/mushpunch/attack_self(mob/living/carbon/human/user) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 0b502d4fe6..6c744b3d84 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -237,12 +237,12 @@ /datum/mind/proc/remove_antag_equip() var/list/Mob_Contents = current.get_contents() for(var/obj/item/I in Mob_Contents) - if(istype(I, /obj/item/device/pda)) - var/obj/item/device/pda/P = I + if(istype(I, /obj/item/pda)) + var/obj/item/pda/P = I P.lock_code = "" - else if(istype(I, /obj/item/device/radio)) - var/obj/item/device/radio/R = I + else if(istype(I, /obj/item/radio)) + var/obj/item/radio/R = I R.traitor_frequency = 0 /datum/mind/proc/remove_all_antag() //For the Lazy amongst us. @@ -264,8 +264,8 @@ . = TRUE var/list/all_contents = traitor_mob.GetAllContents() - var/obj/item/device/pda/PDA = locate() in all_contents - var/obj/item/device/radio/R = locate() in all_contents + var/obj/item/pda/PDA = locate() in all_contents + var/obj/item/radio/R = locate() in all_contents var/obj/item/pen/P if (PDA) // Prioritize PDA pen, otherwise the pocket protector pens will be chosen, which causes numerous ahelps about missing uplink diff --git a/code/datums/mood_events/mood_event.dm b/code/datums/mood_events/mood_event.dm index 6b4301b83a..dfe3049bdd 100644 --- a/code/datums/mood_events/mood_event.dm +++ b/code/datums/mood_events/mood_event.dm @@ -11,6 +11,7 @@ /datum/mood_event/Destroy() remove_effects() + return ..() /datum/mood_event/proc/add_effects(param) return diff --git a/code/datums/mutations.dm b/code/datums/mutations.dm index a171cf91da..7de9ca8b4a 100644 --- a/code/datums/mutations.dm +++ b/code/datums/mutations.dm @@ -56,13 +56,13 @@ GLOBAL_LIST_EMPTY(mutations_list) /datum/mutation/human/proc/on_acquiring(mob/living/carbon/human/owner) if(!owner || !istype(owner) || owner.stat == DEAD || (src in owner.dna.mutations)) - return 1 + return TRUE if(species_allowed.len && !species_allowed.Find(owner.dna.species.id)) - return 1 + return TRUE if(health_req && owner.health < health_req) - return 1 + return TRUE if(limb_req && !owner.get_bodypart(limb_req)) - return 1 + return TRUE owner.dna.mutations.Add(src) if(text_gain_indication) to_chat(owner, text_gain_indication) diff --git a/code/datums/numbered_display.dm b/code/datums/numbered_display.dm new file mode 100644 index 0000000000..9aa880aa75 --- /dev/null +++ b/code/datums/numbered_display.dm @@ -0,0 +1,10 @@ +//Used in storage. +/datum/numbered_display + var/obj/item/sample_object + var/number + +/datum/numbered_display/New(obj/item/sample, _number = 1) + if(!istype(sample)) + qdel(src) + sample_object = sample + number = _number diff --git a/code/datums/ruins/space.dm b/code/datums/ruins/space.dm index eea4088905..058c820f7a 100644 --- a/code/datums/ruins/space.dm +++ b/code/datums/ruins/space.dm @@ -269,12 +269,6 @@ name = "Whiteship Dock" description = "An abandoned but functional vessel parked in deep space, ripe for the taking." -/datum/map_template/ruin/space/scp_294 - id = "scp_294" - suffix = "scp_294.dmm" - name = "SCP-294 Containment" - description = "An abandoned asteroid base that contains several EMP-proof turrets, and a valuable artifact. Should you get past the heavy laser turrets, a valuable treasure awaits." - /datum/map_template/ruin/space/cat_experiments id = "meow" suffix = "mrow_thats_right.dmm" @@ -286,4 +280,4 @@ id = "cloning_facility" suffix = "cloning_facility.dmm" name = "Ancient Cloning Lab" - description = "An experimental cloning lab snapped off from an ancient ship. The cloner model inside lacks many modern functionalities and security measures." \ No newline at end of file + description = "An experimental cloning lab snapped off from an ancient ship. The cloner model inside lacks many modern functionalities and security measures." diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm index 404c584fd4..fe18071cf8 100644 --- a/code/datums/shuttles.dm +++ b/code/datums/shuttles.dm @@ -21,6 +21,20 @@ mappath = "[prefix][shuttle_id].dmm" . = ..() +/datum/map_template/shuttle/load(turf/T, centered) + . = ..() + if(!.) + return + var/list/turfs = block( locate(.[MAP_MINX], .[MAP_MINY], .[MAP_MINZ]), + locate(.[MAP_MAXX], .[MAP_MAXY], .[MAP_MAXZ])) + for(var/i in 1 to turfs.len) + var/turf/place = turfs[i] + if(istype(place, /turf/open/space)) // This assumes all shuttles are loaded in a single spot then moved to their real destination. + continue + if(length(place.baseturfs) < 2) // Some snowflake shuttle shit + continue + place.baseturfs.Insert(3, /turf/baseturf_skipover/shuttle) + //Whatever special stuff you want /datum/map_template/shuttle/proc/on_bought() return @@ -60,7 +74,21 @@ port_id = "infiltrator" can_be_bought = FALSE +/datum/map_template/shuttle/aux_base + port_id = "aux_base" + can_be_bought = FALSE +/datum/map_template/shuttle/escape_pod + port_id = "escape_pod" + can_be_bought = FALSE + +/datum/map_template/shuttle/assault_pod + port_id = "assault_pod" + can_be_bought = FALSE + +/datum/map_template/shuttle/pirate + port_id = "pirate" + can_be_bought = FALSE // Shuttles start here: @@ -355,3 +383,27 @@ /datum/map_template/shuttle/arrival/pubby suffix = "pubby" name = "arrival shuttle (Pubby)" + +/datum/map_template/shuttle/arrival/omega + suffix = "omega" + name = "arrival shuttle (Omega)" + +/datum/map_template/shuttle/aux_base/default + suffix = "default" + name = "auxilliary base (Default)" + +/datum/map_template/shuttle/escape_pod/default + suffix = "default" + name = "escape pod (Default)" + +/datum/map_template/shuttle/escape_pod/large + suffix = "large" + name = "escape pod (Large)" + +/datum/map_template/shuttle/assault_pod/default + suffix = "default" + name = "assault pod (Default)" + +/datum/map_template/shuttle/pirate/default + suffix = "default" + name = "pirate ship (Default)" diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index 237a72ffda..57284a2558 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -1,5 +1,18 @@ //predominantly negative traits +/datum/trait/blooddeficiency + name = "Acute Blood Deficiency" + desc = "Your body can't produce enough blood to sustain itself." + value = -2 + gain_text = "You feel your vigor slowly fading away." + lose_text = "You feel vigorous again." + medical_record_text = "Patient requires regular treatment for blood loss due to low production of blood." + +/datum/trait/blooddeficiency/on_process() + trait_holder.blood_volume -= 0.275 + + + /datum/trait/depression name = "Depression" desc = "You sometimes just hate life." @@ -53,9 +66,7 @@ if(!where) where = "at your feet" if(where == "in your backpack") - var/obj/item/storage/B = H.back - B.orient2hud(trait_holder) - B.show_to(trait_holder) + H.back.SendSignal(COMSIG_TRY_STORAGE_SHOW, H) where_text = "There is a precious family [heirloom.name] [where], passed down from generation to generation. Keep it safe!" /datum/trait/family_heirloom/post_add() diff --git a/code/datums/traits/neutral.dm b/code/datums/traits/neutral.dm index 5b0fbefe10..61c7addd6c 100644 --- a/code/datums/traits/neutral.dm +++ b/code/datums/traits/neutral.dm @@ -12,6 +12,40 @@ +/datum/trait/pineapple_liker + name = "Ananas Affinity" + desc = "You find yourself greatly enjoying fruits of the ananas genus. You can't seem to ever get enough of their sweet goodness!" + value = 0 + gain_text = "You feel an intense craving for pineapple." + lose_text = "Your feelings towards pineapples seem to return to a lukewarm state." + +/datum/trait/pineapple_liker/add() + var/mob/living/carbon/human/H = trait_holder + var/datum/species/species = H.dna.species + species.liked_food |= PINEAPPLE + +/datum/trait/pineapple_liker/remove() + var/mob/living/carbon/human/H = trait_holder + var/datum/species/species = H.dna.species + species.liked_food &= ~PINEAPPLE + +/datum/trait/pineapple_hater + name = "Ananas Aversion" + desc = "You find yourself greatly detesting fruits of the ananas genus. Serious, how the hell can anyone say these things are good? And what kind of madman would even dare putting it on a pizza!?" + value = 0 + gain_text = "You find yourself pondering what kind of idiot actually enjoys pineapples..." + lose_text = "Your feelings towards pineapples seem to return to a lukewarm state." + +/datum/trait/pineapple_hater/add() + var/mob/living/carbon/human/H = trait_holder + var/datum/species/species = H.dna.species + species.disliked_food |= PINEAPPLE + +/datum/trait/pineapple_hater/remove() + var/mob/living/carbon/human/H = trait_holder + var/datum/species/species = H.dna.species + species.disliked_food &= ~PINEAPPLE + /datum/trait/deviant_tastes name = "Deviant Tastes" desc = "You dislike food that most people enjoy, and find delicious what they don't." diff --git a/code/datums/wires/_wires.dm b/code/datums/wires/_wires.dm index 1fd50e9776..0e38475c85 100644 --- a/code/datums/wires/_wires.dm +++ b/code/datums/wires/_wires.dm @@ -6,8 +6,8 @@ if(I.tool_behaviour == TOOL_WIRECUTTER || I.tool_behaviour == TOOL_MULTITOOL) return TRUE - if(istype(I, /obj/item/device/assembly)) - var/obj/item/device/assembly/A = I + if(istype(I, /obj/item/assembly)) + var/obj/item/assembly/A = I if(A.attachable) return TRUE @@ -149,13 +149,13 @@ /datum/wires/proc/pulse_color(color, mob/living/user) pulse(get_wire(color), user) -/datum/wires/proc/pulse_assembly(obj/item/device/assembly/S) +/datum/wires/proc/pulse_assembly(obj/item/assembly/S) for(var/color in assemblies) if(S == assemblies[color]) pulse_color(color) return TRUE -/datum/wires/proc/attach_assembly(color, obj/item/device/assembly/S) +/datum/wires/proc/attach_assembly(color, obj/item/assembly/S) if(S && istype(S) && S.attachable && !is_attached(color)) assemblies[color] = S S.forceMove(holder) @@ -163,7 +163,7 @@ return S /datum/wires/proc/detach_assembly(color) - var/obj/item/device/assembly/S = get_attached(color) + var/obj/item/assembly/S = get_attached(color) if(S && istype(S)) assemblies -= color S.connected = null @@ -229,7 +229,7 @@ reveal_wires = TRUE // Same for anyone with an abductor multitool. - else if(user.is_holding_item_of_type(/obj/item/device/multitool/abductor)) + else if(user.is_holding_item_of_type(/obj/item/multitool/abductor)) reveal_wires = TRUE // Station blueprints do that too, but only if the wires are not randomized. @@ -280,8 +280,8 @@ . = TRUE else I = L.get_active_held_item() - if(istype(I, /obj/item/device/assembly)) - var/obj/item/device/assembly/A = I + if(istype(I, /obj/item/assembly)) + var/obj/item/assembly/A = I if(A.attachable) if(!L.temporarilyRemoveItemFromInventory(A)) return diff --git a/code/datums/wires/airlock.dm b/code/datums/wires/airlock.dm index 31156491f5..dafc910b36 100644 --- a/code/datums/wires/airlock.dm +++ b/code/datums/wires/airlock.dm @@ -81,13 +81,6 @@ if(usr) A.shockedby += text("\[[time_stamp()]\][usr](ckey:[usr.ckey])") add_logs(usr, A, "electrified") - sleep(10) - if(A) - while (A.secondsElectrified > 0) - A.secondsElectrified -= 1 - if(A.secondsElectrified < 0) - A.set_electrified(0) - sleep(10) if(WIRE_SAFETY) A.safe = !A.safe if(!A.density) diff --git a/code/datums/wires/radio.dm b/code/datums/wires/radio.dm index 37d44a1bb0..a1118da6d7 100644 --- a/code/datums/wires/radio.dm +++ b/code/datums/wires/radio.dm @@ -1,5 +1,5 @@ /datum/wires/radio - holder_type = /obj/item/device/radio + holder_type = /obj/item/radio proper_name = "Radio" /datum/wires/radio/New(atom/holder) @@ -10,11 +10,11 @@ ..() /datum/wires/radio/interactable(mob/user) - var/obj/item/device/radio/R = holder + var/obj/item/radio/R = holder return R.unscrewed /datum/wires/radio/on_pulse(index) - var/obj/item/device/radio/R = holder + var/obj/item/radio/R = holder switch(index) if(WIRE_SIGNAL) R.listening = !R.listening diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index f5d0ec3bd7..87894dd4d7 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -52,7 +52,6 @@ var/safe = FALSE //Is the area teleport-safe: no space / radiation / aggresive mobs / other dangers var/no_air = null - var/list/related // the other areas of the same type as this var/parallax_movedir = 0 @@ -88,27 +87,10 @@ GLOBAL_LIST_EMPTY(teleportlocs) // === -// Added to fix mech fabs 05/2013 ~Sayu -// This is necessary due to lighting subareas. If you were to go in assuming that things in -// the same logical /area have the parent /area object... well, you would be mistaken. If you -// want to find machines, mobs, etc, in the same logical area, you will need to check all the -// related areas. This returns a master contents list to assist in that. -/proc/area_contents(area/A) - if(!istype(A)) - return null - var/list/contents = list() - for(var/area/LSA in A.related) - contents += LSA.contents - return contents - - - - /area/Initialize() icon_state = "" layer = AREA_LAYER uid = ++global_uid - related = list(src) map_name = name // Save the initial (the name set in the map) name of the area. canSmoothWithAreas = typecacheof(canSmoothWithAreas) @@ -195,11 +177,6 @@ GLOBAL_LIST_EMPTY(teleportlocs) /area/proc/atmosalert(danger_level, obj/source) if(danger_level != atmosalm) if (danger_level==2) - var/list/cameras = list() - for(var/area/RA in related) - for (var/item in RA.cameras) - var/obj/machinery/camera/C = item - cameras += C for (var/item in GLOB.silicon_mobs) var/mob/living/silicon/aiPlayer = item @@ -254,18 +231,12 @@ GLOBAL_LIST_EMPTY(teleportlocs) if(always_unpowered == 1) //no fire alarms in space/asteroid return - var/list/cameras = list() - - for(var/area/RA in related) - if (!( RA.fire )) - RA.set_fire_alarm_effect() - RA.ModifyFiredoors(FALSE) - for(var/item in RA.firealarms) - var/obj/machinery/firealarm/F = item - F.update_icon() - for (var/item in RA.cameras) - var/obj/machinery/camera/C = item - cameras += C + if (!fire) + set_fire_alarm_effect() + ModifyFiredoors(FALSE) + for(var/item in firealarms) + var/obj/machinery/firealarm/F = item + F.update_icon() for (var/item in GLOB.alert_consoles) var/obj/machinery/computer/station_alert/a = item @@ -283,15 +254,14 @@ GLOBAL_LIST_EMPTY(teleportlocs) START_PROCESSING(SSobj, src) /area/proc/firereset(obj/source) - for(var/area/RA in related) - if (RA.fire) - RA.fire = 0 - RA.mouse_opacity = MOUSE_OPACITY_TRANSPARENT - RA.updateicon() - RA.ModifyFiredoors(TRUE) - for(var/item in RA.firealarms) - var/obj/machinery/firealarm/F = item - F.update_icon() + if (fire) + fire = 0 + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + updateicon() + ModifyFiredoors(TRUE) + for(var/item in firealarms) + var/obj/machinery/firealarm/F = item + F.update_icon() for (var/item in GLOB.silicon_mobs) var/mob/living/silicon/aiPlayer = item @@ -310,8 +280,7 @@ GLOBAL_LIST_EMPTY(teleportlocs) /area/process() if(firedoors_last_closed_on + 100 < world.time) //every 10 seconds - for(var/area/RA in related) - RA.ModifyFiredoors(FALSE) + ModifyFiredoors(FALSE) /area/proc/close_and_lock_door(obj/machinery/door/DOOR) set waitfor = FALSE @@ -323,17 +292,11 @@ GLOBAL_LIST_EMPTY(teleportlocs) if(always_unpowered == 1) //no burglar alarms in space/asteroid return - var/list/cameras = list() - - for(var/area/RA in related) - //Trigger alarm effect - RA.set_fire_alarm_effect() - //Lockdown airlocks - for(var/obj/machinery/door/DOOR in RA) - close_and_lock_door(DOOR) - for (var/item in RA.cameras) - var/obj/machinery/camera/C = item - cameras += C + //Trigger alarm effect + set_fire_alarm_effect() + //Lockdown airlocks + for(var/obj/machinery/door/DOOR in src) + close_and_lock_door(DOOR) for (var/i in GLOB.silicon_mobs) var/mob/living/silicon/SILICON = i @@ -429,10 +392,9 @@ GLOBAL_LIST_EMPTY(teleportlocs) // called when power status changes /area/proc/power_change() - for(var/area/RA in related) - for(var/obj/machinery/M in RA) // for each machine in the area - M.power_change() // reverify power status (to update icons etc.) - RA.updateicon() + for(var/obj/machinery/M in src) // for each machine in the area + M.power_change() // reverify power status (to update icons etc.) + updateicon() /area/proc/usage(chan) var/used = 0 @@ -553,3 +515,7 @@ GLOBAL_LIST_EMPTY(teleportlocs) /area/drop_location() CRASH("Bad op: area/drop_location() called") + +// A hook so areas can modify the incoming args +/area/proc/PlaceOnTopReact(list/new_baseturfs, turf/fake_turf_type, flags) + return flags \ No newline at end of file diff --git a/code/game/area/areas/ruins/space.dm b/code/game/area/areas/ruins/space.dm index 13b9905874..c52119361b 100644 --- a/code/game/area/areas/ruins/space.dm +++ b/code/game/area/areas/ruins/space.dm @@ -464,10 +464,6 @@ name = "Listening Post" icon_state = "yellow" -/area/ruin/space/has_grav/powered/scp_294 - name = "Abandoned SCP-294 Containment" - icon_state = "yellow" - /area/ruin/space/has_grav/powered/ancient_shuttle name = "Ancient Shuttle" - icon_state = "yellow" \ No newline at end of file + icon_state = "yellow" diff --git a/code/game/area/areas/shuttles.dm b/code/game/area/areas/shuttles.dm index 7d0283e104..073e7714b2 100644 --- a/code/game/area/areas/shuttles.dm +++ b/code/game/area/areas/shuttles.dm @@ -16,6 +16,13 @@ canSmoothWithAreas = type . = ..() +/area/shuttle/PlaceOnTopReact(list/new_baseturfs, turf/fake_turf_type, flags) + . = ..() + if(length(new_baseturfs) > 1 || fake_turf_type) + return // More complicated larger changes indicate this isn't a player + if(ispath(new_baseturfs[1], /turf/open/floor/plating)) + new_baseturfs.Insert(1, /turf/baseturf_skipover/shuttle) + ////////////////////////////Multi-area shuttles//////////////////////////// ////////////////////////////Syndicate infiltrator//////////////////////////// diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 6c15daeb1e..6b4e882235 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -387,13 +387,31 @@ return FALSE /atom/proc/storage_contents_dump_act(obj/item/storage/src_object, mob/user) - return 0 + if(GetComponent(/datum/component/storage)) + return component_storage_contents_dump_act(src_object, user) + return FALSE + +/atom/proc/component_storage_contents_dump_act(datum/component/storage/src_object, mob/user) + var/list/things = src_object.contents() + var/datum/progressbar/progress = new(user, things.len, src) + GET_COMPONENT(STR, /datum/component/storage) + while (do_after(user, 10, TRUE, src, FALSE, CALLBACK(STR, /datum/component/storage.proc/handle_mass_item_insertion, things, src_object, user, progress))) + stoplag(1) + qdel(progress) + to_chat(user, "You dump as much of [src_object.parent]'s contents into [STR.insert_preposition]to [src] as you can.") + STR.orient2hud(user) + src_object.orient2hud(user) + if(user.active_storage) //refresh the HUD to show the transfered contents + user.active_storage.close(user) + user.active_storage.show_to(user) + return TRUE /atom/proc/get_dumping_location(obj/item/storage/source,mob/user) return null //This proc is called on the location of an atom when the atom is Destroy()'d /atom/proc/handle_atom_del(atom/A) + SendSignal(COMSIG_ATOM_CONTENTS_DEL, A) //called when the turf the atom resides on is ChangeTurfed /atom/proc/HandleTurfChange(turf/T) @@ -526,8 +544,8 @@ /atom/Entered(atom/movable/AM, atom/oldLoc) SendSignal(COMSIG_ATOM_ENTERED, AM, oldLoc) -/atom/Exited(atom/movable/AM) - SendSignal(COMSIG_ATOM_EXITED, AM) +/atom/Exited(atom/movable/AM, atom/newLoc) + SendSignal(COMSIG_ATOM_EXITED, AM, newLoc) /atom/proc/return_temperature() return diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 95412c6a7b..c64951ca7c 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -251,24 +251,6 @@ return 1 /atom/movable/Destroy(force) - var/inform_admins = (flags_2 & INFORM_ADMINS_ON_RELOCATE_2) - var/stationloving = (flags_2 & STATIONLOVING_2) - - if(inform_admins && force) - var/turf/T = get_turf(src) - message_admins("[src] has been !!force deleted!! in [ADMIN_COORDJMP(T)].") - log_game("[src] has been !!force deleted!! in [COORD(T)].") - - if(stationloving && !force) - var/turf/currentturf = get_turf(src) - var/turf/targetturf = relocate() - log_game("[src] has been destroyed in [COORD(currentturf)]. Moving it to [COORD(targetturf)].") - if(inform_admins) - message_admins("[src] has been destroyed in [ADMIN_COORDJMP(currentturf)]. Moving it to [ADMIN_COORDJMP(targetturf)].") - return QDEL_HINT_LETMELIVE - - if(stationloving && force) - STOP_PROCESSING(SSinbounds, src) QDEL_NULL(proximity_monitor) QDEL_NULL(language_holder) @@ -365,6 +347,7 @@ loc = null /atom/movable/proc/onTransitZ(old_z,new_z) + SendSignal(COMSIG_MOVABLE_Z_CHANGED, old_z, new_z) for (var/item in src) // Notify contents of Z-transition. This can be overridden IF we know the items contents do not care. var/atom/movable/AM = item AM.onTransitZ(old_z,new_z) @@ -492,12 +475,12 @@ if(spin) SpinAnimation(5, 1) + SendSignal(COMSIG_MOVABLE_THROW, TT, spin) SSthrowing.processing[src] = TT if (SSthrowing.state == SS_PAUSED && length(SSthrowing.currentrun)) SSthrowing.currentrun[src] = TT TT.tick() - /atom/movable/proc/handle_buckled_mob_movement(newloc,direct) for(var/m in buckled_mobs) var/mob/living/buckled_mob = m @@ -514,6 +497,13 @@ return 1 return ..() +// called when this atom is removed from a storage item, which is passed on as S. The loc variable is already set to the new destination before this is called. +/atom/movable/proc/on_exit_storage(datum/component/storage/concrete/S) + return + +// called when this atom is added into a storage item, which is passed on as S. The loc variable is already set to the storage item. +/atom/movable/proc/on_enter_storage(datum/component/storage/concrete/S) + return /atom/movable/proc/get_spacemove_backup() var/atom/movable/dense_object_backup @@ -538,7 +528,7 @@ /atom/movable/proc/relay_container_resist(mob/living/user, obj/O) return -// CITADEL CHANGE - adds final_pixel_y and final_pixel_x to do_attack_animation args // maybe not needed anymore we'll try it + /atom/movable/proc/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect) if(!no_effect && (visual_effect_icon || used_item)) do_item_attack_animation(A, visual_effect_icon, used_item) @@ -625,90 +615,6 @@ animate(src, pixel_y = initial(pixel_y), time = 10) floating = FALSE -/* Stationloving -* -* A stationloving atom will always teleport back to the station -* if it ever leaves the station z-levels or CentCom. It will also, -* when Destroy() is called, will teleport to a random turf on the -* station. -* -* The turf is guaranteed to be "safe" for normal humans, probably. -* If the station is SUPER SMASHED UP, it might not work. -* -* Here are some important procs: -* relocate() -* moves the atom to a safe turf on the station -* -* check_in_bounds() -* regularly called and checks if `in_bounds()` returns true. If false, it -* triggers a `relocate()`. -* -* in_bounds() -* By default, checks that the atom's z is the station z or centcom. -*/ - -/atom/movable/proc/set_stationloving(state, inform_admins=FALSE) - var/currently = (flags_2 & STATIONLOVING_2) - - if(inform_admins) - flags_2 |= INFORM_ADMINS_ON_RELOCATE_2 - else - flags_2 &= ~INFORM_ADMINS_ON_RELOCATE_2 - - if(state == currently) - return - else if(!state) - STOP_PROCESSING(SSinbounds, src) - flags_2 &= ~STATIONLOVING_2 - else - START_PROCESSING(SSinbounds, src) - flags_2 |= STATIONLOVING_2 - -/atom/movable/proc/relocate() - var/targetturf = find_safe_turf() - if(!targetturf) - if(GLOB.blobstart.len > 0) - targetturf = get_turf(pick(GLOB.blobstart)) - else - throw EXCEPTION("Unable to find a blobstart landmark") - - if(ismob(loc)) - var/mob/M = loc - M.transferItemToLoc(src, targetturf, TRUE) //nodrops disks when? - else if(istype(loc, /obj/item/storage)) - var/obj/item/storage/S = loc - S.remove_from_storage(src, targetturf) - else - forceMove(targetturf) - // move the disc, so ghosts remain orbiting it even if it's "destroyed" - return targetturf - -/atom/movable/proc/check_in_bounds() - if(in_bounds()) - return - else - var/turf/currentturf = get_turf(src) - to_chat(get(src, /mob), "You can't help but feel that you just lost something back there...") - var/turf/targetturf = relocate() - log_game("[src] has been moved out of bounds in [COORD(currentturf)]. Moving it to [COORD(targetturf)].") - if(flags_2 & INFORM_ADMINS_ON_RELOCATE_2) - message_admins("[src] has been moved out of bounds in [ADMIN_COORDJMP(currentturf)]. Moving it to [ADMIN_COORDJMP(targetturf)].") - -/atom/movable/proc/in_bounds() - var/static/list/allowed_shuttles = typecacheof(list(/area/shuttle/syndicate, /area/shuttle/escape, /area/shuttle/pod_1, /area/shuttle/pod_2, /area/shuttle/pod_3, /area/shuttle/pod_4)) - var/turf/T = get_turf(src) - if (!T) - return FALSE - if (is_station_level(T.z) || is_centcom_level(T.z)) - return TRUE - if (is_transit_level(T.z)) - var/area/A = T.loc - if (is_type_in_typecache(A, allowed_shuttles)) - return TRUE - - return FALSE - - /* Language procs */ /atom/movable/proc/get_language_holder(shadow=TRUE) if(language_holder) diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index 100a0d7dd2..e682960e2e 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -421,7 +421,7 @@ /*~~~~~~~~~~~~ Circutry! ~~~~~~~~~~~~~*/ -/obj/item/device/electronic_assembly/proc/diag_hud_set_circuithealth(hide = FALSE) +/obj/item/electronic_assembly/proc/diag_hud_set_circuithealth(hide = FALSE) var/image/holder = hud_list[DIAG_CIRCUIT_HUD] var/icon/I = icon(icon, icon_state, dir) holder.pixel_y = I.Height() - world.icon_size @@ -430,7 +430,7 @@ else holder.icon_state = "huddiag[RoundDiagBar(obj_integrity/max_integrity)]" -/obj/item/device/electronic_assembly/proc/diag_hud_set_circuitcell(hide = FALSE) +/obj/item/electronic_assembly/proc/diag_hud_set_circuitcell(hide = FALSE) var/image/holder = hud_list[DIAG_BATT_HUD] var/icon/I = icon(icon, icon_state, dir) holder.pixel_y = I.Height() - world.icon_size @@ -442,7 +442,7 @@ else holder.icon_state = "hudnobatt" -/obj/item/device/electronic_assembly/proc/diag_hud_set_circuitstat(hide = FALSE) //On, On and dangerous, or Off +/obj/item/electronic_assembly/proc/diag_hud_set_circuitstat(hide = FALSE) //On, On and dangerous, or Off var/image/holder = hud_list[DIAG_STAT_HUD] var/icon/I = icon(icon, icon_state, dir) holder.pixel_y = I.Height() - world.icon_size @@ -457,7 +457,7 @@ else //Bot is on and not dangerous holder.icon_state = prefered_hud_icon -/obj/item/device/electronic_assembly/proc/diag_hud_set_circuittracking(hide = FALSE) +/obj/item/electronic_assembly/proc/diag_hud_set_circuittracking(hide = FALSE) var/image/holder = hud_list[DIAG_TRACK_HUD] var/icon/I = icon(icon, icon_state, dir) holder.pixel_y = I.Height() - world.icon_size diff --git a/code/game/gamemodes/clock_cult/clock_cult.dm b/code/game/gamemodes/clock_cult/clock_cult.dm index f403908f67..03de28e0ff 100644 --- a/code/game/gamemodes/clock_cult/clock_cult.dm +++ b/code/game/gamemodes/clock_cult/clock_cult.dm @@ -258,12 +258,12 @@ Credit where due: uniform = /obj/item/clothing/under/chameleon/ratvar shoes = /obj/item/clothing/shoes/sneakers/black back = /obj/item/storage/backpack - ears = /obj/item/device/radio/headset + ears = /obj/item/radio/headset gloves = /obj/item/clothing/gloves/color/yellow belt = /obj/item/storage/belt/utility/servant backpack_contents = list(/obj/item/storage/box/engineer = 1, \ /obj/item/clockwork/replica_fabricator = 1, /obj/item/stack/tile/brass/fifty = 1, /obj/item/paper/servant_primer = 1) - id = /obj/item/device/pda + id = /obj/item/pda var/plasmaman //We use this to determine if we should activate internals in post_equip() /datum/outfit/servant_of_ratvar/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE) @@ -276,7 +276,7 @@ Credit where due: /datum/outfit/servant_of_ratvar/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) var/obj/item/card/id/W = new(H) - var/obj/item/device/pda/PDA = H.wear_id + var/obj/item/pda/PDA = H.wear_id W.assignment = "Assistant" W.access += ACCESS_MAINT_TUNNELS W.registered_name = H.real_name diff --git a/code/game/gamemodes/clown_ops/clown_ops.dm b/code/game/gamemodes/clown_ops/clown_ops.dm index 6b96cefa13..75df27ffca 100644 --- a/code/game/gamemodes/clown_ops/clown_ops.dm +++ b/code/game/gamemodes/clown_ops/clown_ops.dm @@ -39,7 +39,7 @@ mask = /obj/item/clothing/mask/gas/clown_hat gloves = /obj/item/clothing/gloves/combat back = /obj/item/storage/backpack/clown - ears = /obj/item/device/radio/headset/syndicate/alt + ears = /obj/item/radio/headset/syndicate/alt l_pocket = /obj/item/pinpointer/nuke/syndicate r_pocket = /obj/item/bikehorn id = /obj/item/card/id/syndicate @@ -48,7 +48,7 @@ /obj/item/reagent_containers/spray/waterflower/lube) implants = list(/obj/item/implant/sad_trombone) - uplink_type = /obj/item/device/radio/uplink/clownop + uplink_type = /obj/item/radio/uplink/clownop /datum/outfit/syndicate/clownop/no_crystals tc = 0 @@ -62,5 +62,5 @@ /datum/outfit/syndicate/clownop/leader name = "Clown Operative Leader - Basic" id = /obj/item/card/id/syndicate/nuke_leader - r_hand = /obj/item/device/nuclear_challenge/clownops + r_hand = /obj/item/nuclear_challenge/clownops command_radio = TRUE diff --git a/code/game/gamemodes/clown_ops/clown_weapons.dm b/code/game/gamemodes/clown_ops/clown_weapons.dm index 3b74d796be..6488a98d7d 100644 --- a/code/game/gamemodes/clown_ops/clown_weapons.dm +++ b/code/game/gamemodes/clown_ops/clown_weapons.dm @@ -21,7 +21,7 @@ strip_delay = 70 resistance_flags = NONE permeability_coefficient = 0.05 - pockets = /obj/item/storage/internal/pocket/shoes + pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes //The super annoying version /obj/item/clothing/shoes/clown_shoes/banana_shoes/combat @@ -32,7 +32,7 @@ strip_delay = 70 resistance_flags = NONE permeability_coefficient = 0.05 - pockets = /obj/item/storage/internal/pocket/shoes + pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes always_noslip = TRUE var/max_recharge = 3000 //30 peels worth var/recharge_rate = 34 //about 1/3 of a peel per tick diff --git a/code/game/gamemodes/extended/extended.dm b/code/game/gamemodes/extended/extended.dm index ac55cb526d..c1ae2287ef 100644 --- a/code/game/gamemodes/extended/extended.dm +++ b/code/game/gamemodes/extended/extended.dm @@ -19,10 +19,14 @@ false_report_weight = 0 /datum/game_mode/extended/announced/generate_station_goals() + if(flipseclevel) //CIT CHANGE - allows the sec level to be flipped roundstart + return ..() for(var/T in subtypesof(/datum/station_goal)) var/datum/station_goal/G = new T station_goals += G G.on_report() /datum/game_mode/extended/announced/send_intercept(report = 0) + if(flipseclevel) //CIT CHANGE - allows the sec level to be flipped roundstart + return ..() priority_announce("Thanks to the tireless efforts of our security and intelligence divisions, there are currently no credible threats to [station_name()]. All station construction projects have been authorized. Have a secure shift!", "Security Report", 'sound/ai/commandreport.ogg') diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index c8f5fa6911..fbf62886e3 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -48,6 +48,8 @@ var/gamemode_ready = FALSE //Is the gamemode all set up and ready to start checking for ending conditions. + var/flipseclevel = FALSE //CIT CHANGE - adds a 10% chance for the alert level to be the opposite of what the gamemode is supposed to have + /datum/game_mode/proc/announce() //Shows the gamemode's name and a fast description. to_chat(world, "The gamemode is: [name]!") to_chat(world, "[announce_text]") @@ -82,6 +84,9 @@ report = !CONFIG_GET(flag/no_intercept_report) addtimer(CALLBACK(GLOBAL_PROC, .proc/display_roundstart_logout_report), ROUNDSTART_LOGOUT_REPORT_TIME) + if(prob(20)) //CIT CHANGE - adds a 20% chance for the security level to be the opposite of what it normally is + flipseclevel = TRUE + if(SSdbcore.Connect()) var/sql if(SSticker.mode) @@ -250,6 +255,9 @@ return 0 /datum/game_mode/proc/send_intercept() + if(flipseclevel && !(config_tag == "extended"))//CIT CHANGE - lets the security level be flipped roundstart + priority_announce("Thanks to the tireless efforts of our security and intelligence divisions, there are currently no credible threats to [station_name()]. All station construction projects have been authorized. Have a secure shift!", "Security Report", 'sound/ai/commandreport.ogg') + return var/intercepttext = "Central Command Status Summary
    " intercepttext += "Central Command has intercepted and partially decoded a Syndicate transmission with vital information regarding their movements. The following report outlines the most \ likely threats to appear in your sector." @@ -508,6 +516,12 @@ rev.remove_revolutionary(TRUE) /datum/game_mode/proc/generate_station_goals() + if(flipseclevel && !(config_tag == "extended")) //CIT CHANGE - allows the sec level to be flipped roundstart + for(var/T in subtypesof(/datum/station_goal)) + var/datum/station_goal/G = new T + station_goals += G + G.on_report() + return var/list/possible = list() for(var/T in subtypesof(/datum/station_goal)) var/datum/station_goal/G = T diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index 11e4815722..b6ea8c5234 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -125,7 +125,7 @@ shoes = /obj/item/clothing/shoes/combat gloves = /obj/item/clothing/gloves/combat back = /obj/item/storage/backpack - ears = /obj/item/device/radio/headset/syndicate/alt + ears = /obj/item/radio/headset/syndicate/alt l_pocket = /obj/item/pinpointer/nuke/syndicate id = /obj/item/card/id/syndicate belt = /obj/item/gun/ballistic/automatic/pistol @@ -134,27 +134,27 @@ var/tc = 25 var/command_radio = FALSE - var/uplink_type = /obj/item/device/radio/uplink/nuclear + var/uplink_type = /obj/item/radio/uplink/nuclear /datum/outfit/syndicate/leader name = "Syndicate Leader - Basic" id = /obj/item/card/id/syndicate/nuke_leader - r_hand = /obj/item/device/nuclear_challenge + r_hand = /obj/item/nuclear_challenge command_radio = TRUE /datum/outfit/syndicate/no_crystals tc = 0 /datum/outfit/syndicate/post_equip(mob/living/carbon/human/H) - var/obj/item/device/radio/R = H.ears + var/obj/item/radio/R = H.ears R.set_frequency(FREQ_SYNDICATE) R.freqlock = TRUE if(command_radio) R.command = TRUE if(tc) - var/obj/item/device/radio/uplink/U = new uplink_type(H, H.key, tc) + var/obj/item/radio/uplink/U = new uplink_type(H, H.key, tc) H.equip_to_slot_or_del(U, slot_in_backpack) var/obj/item/implant/weapons_auth/W = new/obj/item/implant/weapons_auth(H) diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index b678f8cd0e..04753e3d50 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -573,6 +573,8 @@ GLOBAL_LIST_EMPTY(possible_items_special) return captured_amount >= target_amount +//Changeling Objectives + /datum/objective/absorb /datum/objective/absorb/proc/gen_amount_goal(lowbound = 4, highbound = 6) @@ -604,7 +606,47 @@ GLOBAL_LIST_EMPTY(possible_items_special) absorbedcount += changeling.absorbedcount return absorbedcount >= target_amount +/datum/objective/absorb_most + explanation_text = "Extract more compatible genomes than any other Changeling." +/datum/objective/absorb_most/check_completion() + var/list/datum/mind/owners = get_owners() + var/absorbedcount = 0 + for(var/datum/mind/M in owners) + if(!M) + continue + var/datum/antagonist/changeling/changeling = M.has_antag_datum(/datum/antagonist/changeling) + if(!changeling || !changeling.stored_profiles) + continue + absorbedcount += changeling.absorbedcount + + for(var/datum/antagonist/changeling/changeling2 in GLOB.antagonists) + if(!changeling2.owner || !changeling2.stored_profiles || changeling2.absorbedcount < absorbedcount) + continue + return FALSE + return TRUE + +/datum/objective/absorb_changeling + explanation_text = "Absorb another Changeling." + +/datum/objective/absorb_changeling/check_completion() + var/list/datum/mind/owners = get_owners() + for(var/datum/mind/M in owners) + if(!M) + continue + var/datum/antagonist/changeling/changeling = M.has_antag_datum(/datum/antagonist/changeling) + if(!changeling) + continue + var/total_genetic_points = changeling.geneticpoints + + for(var/obj/effect/proc_holder/changeling/p in changeling.purchasedpowers) + total_genetic_points += p.dna_cost + + if(total_genetic_points > initial(changeling.geneticpoints)) + return TRUE + return FALSE + +//End Changeling Objectives /datum/objective/destroy martyr_compatible = 1 @@ -645,7 +687,7 @@ GLOBAL_LIST_EMPTY(possible_items_special) /datum/objective/steal_five_of_type/summon_magic explanation_text = "Steal at least five magical artefacts!" - wanted_items = list(/obj/item/spellbook, /obj/item/gun/magic, /obj/item/clothing/suit/space/hardsuit/wizard, /obj/item/scrying, /obj/item/antag_spawner/contract, /obj/item/device/necromantic_stone) + wanted_items = list(/obj/item/spellbook, /obj/item/gun/magic, /obj/item/clothing/suit/space/hardsuit/wizard, /obj/item/scrying, /obj/item/antag_spawner/contract, /obj/item/necromantic_stone) /datum/objective/steal_five_of_type/check_completion() var/list/datum/mind/owners = get_owners() @@ -829,3 +871,6 @@ GLOBAL_LIST_EMPTY(possible_items_special) /datum/objective/changeling_team_objective/impersonate_department/impersonate_heads explanation_text = "Have X or more heads of staff escape on the shuttle disguised as heads, while the real heads are dead" command_staff_only = TRUE + + + diff --git a/code/game/gamemodes/objective_items.dm b/code/game/gamemodes/objective_items.dm index 15e07527b9..64fda883b9 100644 --- a/code/game/gamemodes/objective_items.dm +++ b/code/game/gamemodes/objective_items.dm @@ -130,10 +130,10 @@ /datum/objective_item/steal/functionalai name = "a functional AI." - targetitem = /obj/item/device/aicard + targetitem = /obj/item/aicard difficulty = 20 //beyond the impossible -/datum/objective_item/steal/functionalai/check_special_completion(obj/item/device/aicard/C) +/datum/objective_item/steal/functionalai/check_special_completion(obj/item/aicard/C) for(var/mob/living/silicon/ai/A in C) if(isAI(A) && A.stat != DEAD) //See if any AI's are alive inside that card. return 1 @@ -216,7 +216,7 @@ /datum/objective_item/special/laserpointer name = "a laser pointer." - targetitem = /obj/item/device/laser_pointer + targetitem = /obj/item/laser_pointer difficulty = 5 /datum/objective_item/special/corgimeat diff --git a/code/game/gamemodes/sandbox/h_sandbox.dm b/code/game/gamemodes/sandbox/h_sandbox.dm index 13b4234622..64aaeebacd 100644 --- a/code/game/gamemodes/sandbox/h_sandbox.dm +++ b/code/game/gamemodes/sandbox/h_sandbox.dm @@ -27,7 +27,7 @@ GLOBAL_VAR_INIT(hsboxspawn, TRUE) //items that shouldn't spawn on the floor because they would bug or act weird var/global/list/spawn_forbidden = list( /obj/item/tk_grab, /obj/item/implant, // not implanter, the actual thing that is inside you - /obj/item/assembly, /obj/item/device/onetankbomb, /obj/item/device/pda/ai, + /obj/item/assembly, /obj/item/onetankbomb, /obj/item/pda/ai, /obj/item/smallDelivery, /obj/item/projectile, /obj/item/borg/sight, /obj/item/borg/stun, /obj/item/robot_module) @@ -39,9 +39,9 @@ GLOBAL_VAR_INIT(hsboxspawn, TRUE) "Spawn Emergency Air Tank" = "hsbspawn&path=[/obj/item/tank/internals/emergency_oxygen/double]", "Standard Tools", - "Spawn Flashlight" = "hsbspawn&path=[/obj/item/device/flashlight]", + "Spawn Flashlight" = "hsbspawn&path=[/obj/item/flashlight]", "Spawn Toolbox" = "hsbspawn&path=[/obj/item/storage/toolbox/mechanical]", - "Spawn Light Replacer" = "hsbspawn&path=[/obj/item/device/lightreplacer]", + "Spawn Light Replacer" = "hsbspawn&path=[/obj/item/lightreplacer]", "Spawn Medical Kit" = "hsbspawn&path=[/obj/item/storage/firstaid/regular]", "Spawn All-Access ID" = "hsbaaid", diff --git a/code/game/machinery/Beacon.dm b/code/game/machinery/Beacon.dm index 3e121ad9ed..61e862452f 100644 --- a/code/game/machinery/Beacon.dm +++ b/code/game/machinery/Beacon.dm @@ -9,7 +9,7 @@ anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 0 - var/obj/item/device/beacon/Beacon + var/obj/item/beacon/Beacon /obj/machinery/bluespace_beacon/Initialize() . = ..() diff --git a/code/game/machinery/PDApainter.dm b/code/game/machinery/PDApainter.dm index 24cfc86f85..e38775b749 100644 --- a/code/game/machinery/PDApainter.dm +++ b/code/game/machinery/PDApainter.dm @@ -5,7 +5,7 @@ icon_state = "pdapainter" density = TRUE anchored = TRUE - var/obj/item/device/pda/storedpda = null + var/obj/item/pda/storedpda = null var/list/colorlist = list() max_integrity = 200 @@ -30,16 +30,16 @@ /obj/machinery/pdapainter/Initialize() . = ..() var/list/blocked = list( - /obj/item/device/pda/ai/pai, - /obj/item/device/pda/ai, - /obj/item/device/pda/heads, - /obj/item/device/pda/clear, - /obj/item/device/pda/syndicate, - /obj/item/device/pda/chameleon, - /obj/item/device/pda/chameleon/broken) + /obj/item/pda/ai/pai, + /obj/item/pda/ai, + /obj/item/pda/heads, + /obj/item/pda/clear, + /obj/item/pda/syndicate, + /obj/item/pda/chameleon, + /obj/item/pda/chameleon/broken) - for(var/P in typesof(/obj/item/device/pda) - blocked) - var/obj/item/device/pda/D = new P + for(var/P in typesof(/obj/item/pda) - blocked) + var/obj/item/pda/D = new P //D.name = "PDA Style [colorlist.len+1]" //Gotta set the name, otherwise it all comes up as "PDA" D.name = D.icon_state //PDAs don't have unique names, but using the sprite names works. @@ -69,7 +69,7 @@ power_change() return - else if(istype(O, /obj/item/device/pda)) + else if(istype(O, /obj/item/pda)) if(storedpda) to_chat(user, "There is already a PDA inside!") return @@ -110,7 +110,7 @@ return if(storedpda) - var/obj/item/device/pda/P + var/obj/item/pda/P P = input(user, "Select your color!", "PDA Painting") as null|anything in colorlist if(!P) return diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index cefc471d08..e4b8dd9083 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -93,8 +93,6 @@ return if(default_change_direction_wrench(user, I)) return - if(exchange_parts(user, I)) - return if(default_pry_open(I)) return if(default_deconstruction_crowbar(I)) diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm index 17d4906c42..61d5dbe5f6 100644 --- a/code/game/machinery/_machinery.dm +++ b/code/game/machinery/_machinery.dm @@ -413,10 +413,10 @@ Class Procs: var/obj/item/stack/SN = new SB.merge_type(null,used_amt) component_parts += SN else - W.remove_from_storage(B, src) - component_parts += B - B.moveToNullspace() - W.handle_item_insertion(A, 1) + if(W.SendSignal(COMSIG_TRY_STORAGE_TAKE, B, src)) + component_parts += B + B.moveToNullspace() + W.SendSignal(COMSIG_TRY_STORAGE_INSERT, A, null, null, TRUE) component_parts -= A to_chat(user, "[A.name] replaced with [B.name].") shouldplaysound = 1 //Only play the sound when parts are actually replaced! diff --git a/code/game/machinery/announcement_system.dm b/code/game/machinery/announcement_system.dm index 63737f9542..78b43e2ee2 100644 --- a/code/game/machinery/announcement_system.dm +++ b/code/game/machinery/announcement_system.dm @@ -17,7 +17,7 @@ GLOBAL_LIST_EMPTY(announcement_systems) circuit = /obj/item/circuitboard/machine/announcement_system - var/obj/item/device/radio/headset/radio + var/obj/item/radio/headset/radio var/arrival = "%PERSON has signed up as %RANK" var/arrivalToggle = 1 var/newhead = "%PERSON, %RANK, is the department head." @@ -30,7 +30,7 @@ GLOBAL_LIST_EMPTY(announcement_systems) /obj/machinery/announcement_system/Initialize() . = ..() GLOB.announcement_systems += src - radio = new /obj/item/device/radio/headset/ai(src) + radio = new /obj/item/radio/headset/ai(src) update_icon() /obj/machinery/announcement_system/update_icon() @@ -67,7 +67,7 @@ GLOBAL_LIST_EMPTY(announcement_systems) update_icon() else if(default_deconstruction_crowbar(P)) return - else if(istype(P, /obj/item/device/multitool) && panel_open && (stat & BROKEN)) + else if(istype(P, /obj/item/multitool) && panel_open && (stat & BROKEN)) to_chat(user, "You reset [src]'s firmware.") stat &= ~BROKEN update_icon() diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index 2c8fa467c2..d6154aeb8b 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -93,9 +93,6 @@ updateUsrDialog() return TRUE - if(exchange_parts(user, O)) - return TRUE - if(default_deconstruction_crowbar(O)) return TRUE diff --git a/code/game/machinery/bank_machine.dm b/code/game/machinery/bank_machine.dm index dc79cf1406..c751ba007a 100644 --- a/code/game/machinery/bank_machine.dm +++ b/code/game/machinery/bank_machine.dm @@ -5,7 +5,7 @@ idle_power_usage = 100 var/siphoning = FALSE var/next_warning = 0 - var/obj/item/device/radio/radio + var/obj/item/radio/radio var/radio_channel = "Common" var/minimum_time_between_warnings = 400 diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index 84ed3d457c..9511e8d0d4 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -5,7 +5,7 @@ icon_state = "doorctrl" var/skin = "doorctrl" power_channel = ENVIRON - var/obj/item/device/assembly/device + var/obj/item/assembly/device var/obj/item/electronics/airlock/board var/device_type = null var/id = null @@ -66,7 +66,7 @@ return if(panel_open) - if(!device && istype(W, /obj/item/device/assembly)) + if(!device && istype(W, /obj/item/assembly)) if(!user.transferItemToLoc(W, src)) to_chat(user, "\The [W] is stuck to you!") return @@ -117,8 +117,8 @@ return attack_ai(user) /obj/machinery/button/proc/setup_device() - if(id && istype(device, /obj/item/device/assembly/control)) - var/obj/item/device/assembly/control/A = device + if(id && istype(device, /obj/item/assembly/control)) + var/obj/item/assembly/control/A = device A.id = id initialized_button = 1 @@ -183,11 +183,11 @@ /obj/machinery/button/door/setup_device() if(!device) if(normaldoorcontrol) - var/obj/item/device/assembly/control/airlock/A = new(src) + var/obj/item/assembly/control/airlock/A = new(src) device = A A.specialfunctions = specialfunctions else - device = new /obj/item/device/assembly/control(src) + device = new /obj/item/assembly/control(src) ..() /obj/machinery/button/massdriver @@ -195,28 +195,28 @@ desc = "A remote control switch for a mass driver." icon_state = "launcher" skin = "launcher" - device_type = /obj/item/device/assembly/control/massdriver + device_type = /obj/item/assembly/control/massdriver /obj/machinery/button/ignition name = "ignition switch" desc = "A remote control switch for a mounted igniter." icon_state = "launcher" skin = "launcher" - device_type = /obj/item/device/assembly/control/igniter + device_type = /obj/item/assembly/control/igniter /obj/machinery/button/flasher name = "flasher button" desc = "A remote control switch for a mounted flasher." icon_state = "launcher" skin = "launcher" - device_type = /obj/item/device/assembly/control/flasher + device_type = /obj/item/assembly/control/flasher /obj/machinery/button/crematorium name = "crematorium igniter" desc = "Burn baby burn!" icon_state = "launcher" skin = "launcher" - device_type = /obj/item/device/assembly/control/crematorium + device_type = /obj/item/assembly/control/crematorium req_access = list() id = 1 diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index e0178d8885..d19270f04e 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -24,7 +24,7 @@ anchored = TRUE var/start_active = FALSE //If it ignores the random chance to start broken on round start var/invuln = null - var/obj/item/device/camera_bug/bug = null + var/obj/item/camera_bug/bug = null var/obj/structure/camera_assembly/assembly = null var/area/myarea = null @@ -175,7 +175,7 @@ /obj/machinery/camera/attackby(obj/item/I, mob/living/user, params) // UPGRADES if(panel_open) - if(istype(I, /obj/item/device/analyzer)) + if(istype(I, /obj/item/analyzer)) if(!isXRay()) if(!user.temporarilyRemoveItemFromInventory(I)) return @@ -195,7 +195,7 @@ to_chat(user, "[src] already has that upgrade!") return - else if(istype(I, /obj/item/device/assembly/prox_sensor)) + else if(istype(I, /obj/item/assembly/prox_sensor)) if(!isMotion()) if(!user.temporarilyRemoveItemFromInventory(I)) return @@ -207,10 +207,10 @@ return // OTHER - if((istype(I, /obj/item/paper) || istype(I, /obj/item/device/pda)) && isliving(user)) + if((istype(I, /obj/item/paper) || istype(I, /obj/item/pda)) && isliving(user)) var/mob/living/U = user var/obj/item/paper/X = null - var/obj/item/device/pda/P = null + var/obj/item/pda/P = null var/itemname = "" var/info = "" @@ -239,7 +239,7 @@ O << browse(text("[][]", itemname, info), text("window=[]", itemname)) return - else if(istype(I, /obj/item/device/camera_bug)) + else if(istype(I, /obj/item/camera_bug)) if(!can_use()) to_chat(user, "Camera non-functional.") return diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm index d8dab302d8..7eac36dc96 100644 --- a/code/game/machinery/camera/camera_assembly.dm +++ b/code/game/machinery/camera/camera_assembly.dm @@ -14,7 +14,7 @@ icon_state = "camera1" max_integrity = 150 // Motion, EMP-Proof, X-Ray - var/static/list/possible_upgrades = typecacheof(list(/obj/item/device/assembly/prox_sensor, /obj/item/stack/sheet/mineral/plasma, /obj/item/device/analyzer)) + var/static/list/possible_upgrades = typecacheof(list(/obj/item/assembly/prox_sensor, /obj/item/stack/sheet/mineral/plasma, /obj/item/analyzer)) var/list/upgrades var/state = 1 diff --git a/code/game/machinery/camera/presets.dm b/code/game/machinery/camera/presets.dm index ba72d9676d..e330d015df 100644 --- a/code/game/machinery/camera/presets.dm +++ b/code/game/machinery/camera/presets.dm @@ -79,10 +79,10 @@ upgrades |= CAMERA_UPGRADE_EMP_PROOF /obj/machinery/camera/proc/upgradeXRay() - assembly.upgrades.Add(new /obj/item/device/analyzer(assembly)) + assembly.upgrades.Add(new /obj/item/analyzer(assembly)) upgrades |= CAMERA_UPGRADE_XRAY // If you are upgrading Motion, and it isn't in the camera's Initialize(), add it to the machines list. /obj/machinery/camera/proc/upgradeMotion() - assembly.upgrades.Add(new /obj/item/device/assembly/prox_sensor(assembly)) + assembly.upgrades.Add(new /obj/item/assembly/prox_sensor(assembly)) upgrades |= CAMERA_UPGRADE_MOTION diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 0297652982..a399e4f291 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -30,8 +30,8 @@ var/grab_ghost_when = CLONER_MATURE_CLONE var/internal_radio = TRUE - var/obj/item/device/radio/radio - var/radio_key = /obj/item/device/encryptionkey/headset_med + var/obj/item/radio/radio + var/radio_key = /obj/item/encryptionkey/headset_med var/radio_channel = "Medical" var/obj/effect/countdown/clonepod/countdown @@ -134,8 +134,11 @@ clonemind = locate(mindref) in SSticker.minds if(!istype(clonemind)) //not a mind return FALSE - if( clonemind.current && clonemind.current.stat != DEAD ) //mind is associated with a non-dead body - return FALSE + if(clonemind.current) + if(clonemind.current.stat != DEAD) //mind is associated with a non-dead body + return FALSE + if(clonemind.current.suiciding) // Mind is associated with a body that is suiciding. + return FALSE if(clonemind.active) //somebody is using that mind if( ckey(clonemind.key)!=ckey ) return FALSE @@ -144,6 +147,8 @@ var/mob/dead/observer/G = clonemind.get_ghost() if(!G) return FALSE + if(G.suiciding) // The ghost came from a body that is suiciding. + return FALSE if(clonemind.damnation_type) //Can't clone the damned. INVOKE_ASYNC(src, .proc/horrifyingsound) mess = TRUE @@ -282,14 +287,11 @@ if(default_deconstruction_screwdriver(user, "[icon_state]_maintenance", "[initial(icon_state)]",W)) return - if(exchange_parts(user, W)) - return - if(default_deconstruction_crowbar(W)) return - if(istype(W, /obj/item/device/multitool)) - var/obj/item/device/multitool/P = W + if(istype(W, /obj/item/multitool)) + var/obj/item/multitool/P = W if(istype(P.buffer, /obj/machinery/computer/cloning)) if(get_area(P.buffer) != get_area(src)) diff --git a/code/game/machinery/computer/Operating.dm b/code/game/machinery/computer/Operating.dm index b3a75448f4..f5ad3843a5 100644 --- a/code/game/machinery/computer/Operating.dm +++ b/code/game/machinery/computer/Operating.dm @@ -1,6 +1,6 @@ /obj/machinery/computer/operating name = "operating computer" - desc = "Used to monitor the vitals of a patient during surgery." + desc = "Monitors patient vitals and displays surgery steps. Can be loaded with surgery disks to perform experimental procedures." icon_screen = "crew" icon_keyboard = "med_key" circuit = /obj/item/circuitboard/computer/operating diff --git a/code/game/machinery/computer/_computer.dm b/code/game/machinery/computer/_computer.dm index 68f279cc29..4d9acb0586 100644 --- a/code/game/machinery/computer/_computer.dm +++ b/code/game/machinery/computer/_computer.dm @@ -10,7 +10,6 @@ max_integrity = 200 integrity_failure = 100 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 40, "acid" = 20) - var/processing = FALSE var/brightness_on = 2 var/icon_keyboard = "generic_key" var/icon_screen = "generic" diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm index c6d15bf726..43e736b6ef 100644 --- a/code/game/machinery/computer/aifixer.dm +++ b/code/game/machinery/computer/aifixer.dm @@ -119,7 +119,7 @@ else add_overlay("ai-fixer-empty") -/obj/machinery/computer/aifixer/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/device/aicard/card) +/obj/machinery/computer/aifixer/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/aicard/card) if(!..()) return //Downloading AI from card to terminal. diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index d129ebc233..e90f69bf23 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -536,7 +536,7 @@ playsound(loc, 'sound/weapons/genhit.ogg', 100, 1) var/turf/open/space/T for(T in orange(1, src)) - T.ChangeTurf(/turf/open/floor/plating/) + T.PlaceOnTop(/turf/open/floor/plating) else say("Something slams into the floor around [src] - luckily, it didn't get through!") playsound(loc, 'sound/effects/bang.ogg', 50, 1) diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index db8938b5cf..b43ffdfec8 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -123,8 +123,8 @@ to_chat(user, "You insert [W].") playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0) src.updateUsrDialog() - else if(istype(W, /obj/item/device/multitool)) - var/obj/item/device/multitool/P = W + else if(istype(W, /obj/item/multitool)) + var/obj/item/multitool/P = W if(istype(P.buffer, /obj/machinery/clonepod)) if(get_area(P.buffer) != get_area(src)) @@ -330,7 +330,7 @@ else if (src.menu == 4) var/obj/item/card/id/C = usr.get_active_held_item() - if (istype(C)||istype(C, /obj/item/device/pda)) + if (istype(C)||istype(C, /obj/item/pda)) if(src.check_access(C)) src.temp = "[src.active_record.fields["name"]] => Record deleted." src.records.Remove(active_record) diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 5bd5dc1271..9f50afdfee 100755 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -97,8 +97,8 @@ if("swipeidseclevel") var/mob/M = usr var/obj/item/card/id/I = M.get_active_held_item() - if (istype(I, /obj/item/device/pda)) - var/obj/item/device/pda/pda = I + if (istype(I, /obj/item/pda)) + var/obj/item/pda/pda = I I = pda.id if (I && istype(I)) if(ACCESS_CAPTAIN in I.access) diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index 6f0294fe67..edbf181927 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -173,11 +173,14 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new) results[++results.len] = list("name" = name, "assignment" = assignment, "ijob" = ijob, "life_status" = life_status, "oxydam" = oxydam, "toxdam" = toxdam, "burndam" = burndam, "brutedam" = brutedam, "area" = area, "pos_x" = pos_x, "pos_y" = pos_y, "can_track" = H.can_track(null)) - data_by_z["[z]"] = results + data_by_z["[z]"] = sortTim(results,/proc/sensor_compare) last_update["[z]"] = world.time return results +/proc/sensor_compare(list/a,list/b) + return a["ijob"] - b["ijob"] + /datum/crewmonitor/ui_act(action,params) var/mob/living/silicon/ai/AI = usr if(!istype(AI)) diff --git a/code/game/machinery/computer/launchpad_control.dm b/code/game/machinery/computer/launchpad_control.dm index a811fa7601..fd785e5bc6 100644 --- a/code/game/machinery/computer/launchpad_control.dm +++ b/code/game/machinery/computer/launchpad_control.dm @@ -18,8 +18,8 @@ return /obj/machinery/computer/launchpad/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/device/multitool)) - var/obj/item/device/multitool/M = W + if(istype(W, /obj/item/multitool)) + var/obj/item/multitool/M = W if(M.buffer && istype(M.buffer, /obj/machinery/launchpad)) if(LAZYLEN(launchpads) < maximum_pads) launchpads |= M.buffer diff --git a/code/game/machinery/computer/teleporter.dm b/code/game/machinery/computer/teleporter.dm index 786b86605c..978f7adcf0 100644 --- a/code/game/machinery/computer/teleporter.dm +++ b/code/game/machinery/computer/teleporter.dm @@ -5,7 +5,7 @@ icon_keyboard = "teleport_key" light_color = LIGHT_COLOR_BLUE circuit = /obj/item/circuitboard/computer/teleporter - var/obj/item/device/gps/locked + var/obj/item/gps/locked var/regime_set = "Teleporter" var/id var/obj/machinery/teleport/station/power_station @@ -34,8 +34,8 @@ return power_station /obj/machinery/computer/teleporter/attackby(obj/I, mob/living/user, params) - if(istype(I, /obj/item/device/gps)) - var/obj/item/device/gps/L = I + if(istype(I, /obj/item/gps)) + var/obj/item/gps/L = I if(L.locked_location && !(stat & (NOPOWER|BROKEN))) if(!user.transferItemToLoc(L, src)) to_chat(user, "\the [I] is stuck to your hand, you cannot put it in \the [src]!") @@ -153,7 +153,7 @@ var/list/L = list() var/list/areaindex = list() if(regime_set == "Teleporter") - for(var/obj/item/device/beacon/R in GLOB.teleportbeacons) + for(var/obj/item/beacon/R in GLOB.teleportbeacons) if(is_eligible(R)) var/area/A = get_area(R) L[avoid_assoc_duplicate_keys(A.name, areaindex)] = R diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 09f59fd003..7aab26dc63 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -212,8 +212,8 @@ req_components[path] -= used_amt else added_components[part] = path - replacer.remove_from_storage(part, src) - req_components[path]-- + if(replacer.SendSignal(COMSIG_TRY_STORAGE_TAKE, part, src)) + req_components[path]-- for(var/obj/item/part in added_components) if(istype(part,/obj/item/stack)) diff --git a/code/game/machinery/dance_machine.dm b/code/game/machinery/dance_machine.dm index ed7912119c..0ac97f597b 100644 --- a/code/game/machinery/dance_machine.dm +++ b/code/game/machinery/dance_machine.dm @@ -156,56 +156,56 @@ var/turf/cen = get_turf(src) FOR_DVIEW(var/turf/t, 3, get_turf(src),INVISIBILITY_LIGHTING) if(t.x == cen.x && t.y > cen.y) - var/obj/item/device/flashlight/spotlight/L = new /obj/item/device/flashlight/spotlight(t) + var/obj/item/flashlight/spotlight/L = new /obj/item/flashlight/spotlight(t) L.light_color = LIGHT_COLOR_RED L.light_power = 30-(get_dist(src,L)*8) L.range = 1+get_dist(src, L) spotlights+=L continue if(t.x == cen.x && t.y < cen.y) - var/obj/item/device/flashlight/spotlight/L = new /obj/item/device/flashlight/spotlight(t) + var/obj/item/flashlight/spotlight/L = new /obj/item/flashlight/spotlight(t) L.light_color = LIGHT_COLOR_PURPLE L.light_power = 30-(get_dist(src,L)*8) L.range = 1+get_dist(src, L) spotlights+=L continue if(t.x > cen.x && t.y == cen.y) - var/obj/item/device/flashlight/spotlight/L = new /obj/item/device/flashlight/spotlight(t) + var/obj/item/flashlight/spotlight/L = new /obj/item/flashlight/spotlight(t) L.light_color = LIGHT_COLOR_YELLOW L.light_power = 30-(get_dist(src,L)*8) L.range = 1+get_dist(src, L) spotlights+=L continue if(t.x < cen.x && t.y == cen.y) - var/obj/item/device/flashlight/spotlight/L = new /obj/item/device/flashlight/spotlight(t) + var/obj/item/flashlight/spotlight/L = new /obj/item/flashlight/spotlight(t) L.light_color = LIGHT_COLOR_GREEN L.light_power = 30-(get_dist(src,L)*8) L.range = 1+get_dist(src, L) spotlights+=L continue if((t.x+1 == cen.x && t.y+1 == cen.y) || (t.x+2==cen.x && t.y+2 == cen.y)) - var/obj/item/device/flashlight/spotlight/L = new /obj/item/device/flashlight/spotlight(t) + var/obj/item/flashlight/spotlight/L = new /obj/item/flashlight/spotlight(t) L.light_color = LIGHT_COLOR_ORANGE L.light_power = 30-(get_dist(src,L)*8) L.range = 1.4+get_dist(src, L) spotlights+=L continue if((t.x-1 == cen.x && t.y-1 == cen.y) || (t.x-2==cen.x && t.y-2 == cen.y)) - var/obj/item/device/flashlight/spotlight/L = new /obj/item/device/flashlight/spotlight(t) + var/obj/item/flashlight/spotlight/L = new /obj/item/flashlight/spotlight(t) L.light_color = LIGHT_COLOR_CYAN L.light_power = 30-(get_dist(src,L)*8) L.range = 1.4+get_dist(src, L) spotlights+=L continue if((t.x-1 == cen.x && t.y+1 == cen.y) || (t.x-2==cen.x && t.y+2 == cen.y)) - var/obj/item/device/flashlight/spotlight/L = new /obj/item/device/flashlight/spotlight(t) + var/obj/item/flashlight/spotlight/L = new /obj/item/flashlight/spotlight(t) L.light_color = LIGHT_COLOR_BLUEGREEN L.light_power = 30-(get_dist(src,L)*8) L.range = 1.4+get_dist(src, L) spotlights+=L continue if((t.x+1 == cen.x && t.y-1 == cen.y) || (t.x+2==cen.x && t.y-2 == cen.y)) - var/obj/item/device/flashlight/spotlight/L = new /obj/item/device/flashlight/spotlight(t) + var/obj/item/flashlight/spotlight/L = new /obj/item/flashlight/spotlight(t) L.light_color = LIGHT_COLOR_BLUE L.light_power = 30-(get_dist(src,L)*8) L.range = 1.4+get_dist(src, L) @@ -244,7 +244,7 @@ for(var/obj/reveal in sparkles) reveal.alpha = 255 while(active) - for(var/obj/item/device/flashlight/spotlight/glow in spotlights) // The multiples reflects custom adjustments to each colors after dozens of tests + for(var/obj/item/flashlight/spotlight/glow in spotlights) // The multiples reflects custom adjustments to each colors after dozens of tests if(QDELETED(src) || !active || QDELETED(glow)) return if(glow.light_color == LIGHT_COLOR_RED) diff --git a/code/game/machinery/dna_scanner.dm b/code/game/machinery/dna_scanner.dm index 9296e0807d..2a8868cb4f 100644 --- a/code/game/machinery/dna_scanner.dm +++ b/code/game/machinery/dna_scanner.dm @@ -133,9 +133,6 @@ update_icon()//..since we're updating the icon here, since the scanner can be unpowered when opened/closed return - if(exchange_parts(user, I)) - return - if(default_pry_open(I)) return diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index c3817b17fa..880f0fe8c8 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -72,7 +72,7 @@ var/justzap = FALSE var/obj/item/electronics/airlock/electronics var/shockCooldown = FALSE //Prevents multiple shocks from happening - var/obj/item/device/doorCharge/charge //If applied, causes an explosion upon opening the door + var/obj/item/doorCharge/charge //If applied, causes an explosion upon opening the door var/obj/item/note //Any papers pinned to the airlock var/detonated = FALSE var/abandoned = FALSE @@ -99,7 +99,7 @@ /obj/machinery/door/airlock/Initialize() . = ..() - wires = new /datum/wires/airlock(src) + wires = new wiretypepath(src) //CIT CHANGE - makes it possible for airlocks to have different wire datums if(frequency) set_frequency(frequency) @@ -202,8 +202,8 @@ return // Handle recieved packet. - var/command = lowertext(data.plaintext_data) - var/command_value = lowertext(data.plaintext_data_secondary) + var/command = lowertext(data.data["data"]) + var/command_value = lowertext(data.data["data_secondary"]) switch(command) if("open") if(command_value == "on" && !density) @@ -939,7 +939,7 @@ cable.plugin(src, user) else if(istype(C, /obj/item/airlock_painter)) change_paintjob(C, user) - else if(istype(C, /obj/item/device/doorCharge)) + else if(istype(C, /obj/item/doorCharge)) if(!panel_open || security_level) to_chat(user, "The maintenance panel must be open to apply [C]!") return diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm index 348d238f4c..69621adc84 100644 --- a/code/game/machinery/doors/airlock_types.dm +++ b/code/game/machinery/doors/airlock_types.dm @@ -88,6 +88,9 @@ opacity = 0 glass = TRUE +/obj/machinery/door/airlock/engineering/glass/critical + critical_machine = TRUE //stops greytide virus from opening & bolting doors in critical positions, such as the SM chamber. + /obj/machinery/door/airlock/security/glass opacity = 0 glass = TRUE @@ -112,6 +115,9 @@ opacity = 0 glass = TRUE +/obj/machinery/door/airlock/atmos/glass/critical + critical_machine = TRUE //stops greytide virus from opening & bolting doors in critical positions, such as the SM chamber. + /obj/machinery/door/airlock/science/glass opacity = 0 glass = TRUE diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm index 3f0d28705a..3ab819f275 100644 --- a/code/game/machinery/doors/brigdoors.dm +++ b/code/game/machinery/doors/brigdoors.dm @@ -33,7 +33,7 @@ var/timing = FALSE // boolean, true/1 timer is on, false/0 means it's not timing var/list/obj/machinery/targets = list() - var/obj/item/device/radio/Radio //needed to send messages to sec radio + var/obj/item/radio/Radio //needed to send messages to sec radio maptext_height = 26 maptext_width = 32 @@ -41,7 +41,7 @@ /obj/machinery/door_timer/Initialize() . = ..() - Radio = new/obj/item/device/radio(src) + Radio = new/obj/item/radio(src) Radio.listening = 0 /obj/machinery/door_timer/Initialize() diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index 4e20cebb12..1635b448f4 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -439,8 +439,8 @@ constructionStep = CONSTRUCTION_GUTTED update_icon() return - if(istype(C, /obj/item/device/electroadaptive_pseudocircuit)) - var/obj/item/device/electroadaptive_pseudocircuit/P = C + if(istype(C, /obj/item/electroadaptive_pseudocircuit)) + var/obj/item/electroadaptive_pseudocircuit/P = C if(!P.adapt_circuit(user, 30)) return user.visible_message("[user] fabricates a circuit and places it into [src].", \ diff --git a/code/game/machinery/doors/shutters.dm b/code/game/machinery/doors/shutters.dm index 5c10ff6e98..7ee9891c4c 100644 --- a/code/game/machinery/doors/shutters.dm +++ b/code/game/machinery/doors/shutters.dm @@ -1,7 +1,7 @@ /obj/machinery/door/poddoor/shutters gender = PLURAL name = "shutters" - desc = "Heavy duty metal shutters that opens mechanically." + desc = "Heavy duty metal shutters that open mechanically." icon = 'icons/obj/doors/shutters.dmi' layer = SHUTTER_LAYER closingLayer = SHUTTER_LAYER diff --git a/code/game/machinery/exp_cloner.dm b/code/game/machinery/exp_cloner.dm index 41d317a30f..d2960de159 100644 --- a/code/game/machinery/exp_cloner.dm +++ b/code/game/machinery/exp_cloner.dm @@ -141,8 +141,8 @@ LAZYREMOVE(pods, pod) /obj/machinery/computer/prototype_cloning/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/device/multitool)) - var/obj/item/device/multitool/P = W + if(istype(W, /obj/item/multitool)) + var/obj/item/multitool/P = W if(istype(P.buffer, /obj/machinery/clonepod/experimental)) if(get_area(P.buffer) != get_area(src)) diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index efc8682313..0bdbd8976a 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -172,7 +172,7 @@ switch(buildstage) if(2) - if(istype(W, /obj/item/device/multitool)) + if(istype(W, /obj/item/multitool)) detecting = !detecting if (src.detecting) user.visible_message("[user] has reconnected [src]'s detecting unit!", "You reconnect [src]'s detecting unit.") @@ -221,8 +221,8 @@ update_icon() return - else if(istype(W, /obj/item/device/electroadaptive_pseudocircuit)) - var/obj/item/device/electroadaptive_pseudocircuit/P = W + else if(istype(W, /obj/item/electroadaptive_pseudocircuit)) + var/obj/item/electroadaptive_pseudocircuit/P = W if(!P.adapt_circuit(user, 15)) return user.visible_message("[user] fabricates a circuit and places it into [src].", \ @@ -287,9 +287,7 @@ A = A.loc if (!( istype(A, /area) )) return - for(var/area/RA in A.related) - RA.partyreset() - return + A.partyreset() /obj/machinery/firealarm/partyalarm/alarm() if (stat & (NOPOWER|BROKEN)) @@ -298,9 +296,7 @@ A = A.loc if (!( istype(A, /area) )) return - for(var/area/RA in A.related) - RA.partyalert() - return + A.partyalert() /obj/machinery/firealarm/partyalarm/ui_data(mob/user) . = ..() diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm index 9bed526992..157553da0c 100644 --- a/code/game/machinery/flasher.dm +++ b/code/game/machinery/flasher.dm @@ -8,7 +8,7 @@ max_integrity = 250 integrity_failure = 100 anchored = TRUE - var/obj/item/device/assembly/flash/handheld/bulb + var/obj/item/assembly/flash/handheld/bulb var/id = null var/range = 2 //this is roughly the size of brig cell var/last_flash = 0 //Don't want it getting spammed like regular flashes @@ -60,7 +60,7 @@ bulb = null power_change() - else if (istype(W, /obj/item/device/assembly/flash/handheld)) + else if (istype(W, /obj/item/assembly/flash/handheld)) if (!bulb) if(!user.transferItemToLoc(W, src)) return diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index f51fcdede7..ab2694769f 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -146,9 +146,6 @@ Possible to do for anyone motivated enough: if(default_deconstruction_screwdriver(user, "holopad_open", "holopad0", P)) return - if(exchange_parts(user, P)) - return - if(default_pry_open(P)) return @@ -349,21 +346,8 @@ Possible to do for anyone motivated enough: if(!istype(AI)) AI = null - if(!QDELETED(master) && !master.incapacitated() && master.client && (!AI || AI.eyeobj))//If there is an AI attached, it's not incapacitated, it has a client, and the client eye is centered on the projector. - if(is_operational())//If the machine has power. - if(AI) //ais are range based - if(get_dist(AI.eyeobj, src) <= holo_range) - continue - else - var/obj/machinery/holopad/pad_close = get_closest_atom(/obj/machinery/holopad, holopads, AI.eyeobj) - if(get_dist(pad_close, AI.eyeobj) <= holo_range) - var/obj/effect/overlay/holo_pad_hologram/h = masters[master] - unset_holo(master) - pad_close.set_holo(master, h) - continue - else - continue - clear_holo(master)//If not, we want to get rid of the hologram. + if(!is_operational() || !validate_user(master)) + clear_holo(master) if(outgoing_call) outgoing_call.Check() @@ -484,16 +468,48 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ SetLightsAndPower() return TRUE +//Try to transfer hologram to another pad that can project on T +/obj/machinery/holopad/proc/transfer_to_nearby_pad(turf/T,mob/holo_owner) + var/obj/effect/overlay/holo_pad_hologram/h = masters[holo_owner] + if(!h || h.HC) //Holocalls can't change source. + return FALSE + for(var/pad in holopads) + var/obj/machinery/holopad/another = pad + if(another == src) + continue + if(another.validate_location(T)) + unset_holo(holo_owner) + another.set_holo(holo_owner, h) + return TRUE + return FALSE + +/obj/machinery/holopad/proc/validate_user(mob/living/user) + if(QDELETED(user) || user.incapacitated() || !user.client) + return FALSE + return TRUE + +//Can we display holos there +//Area check instead of line of sight check because this is a called a lot if AI wants to move around. +/obj/machinery/holopad/proc/validate_location(turf/T,check_los = FALSE) + if(T.z == z && get_dist(T, src) <= holo_range && T.loc == get_area(src)) + return TRUE + else + return FALSE + /obj/machinery/holopad/proc/move_hologram(mob/living/user, turf/new_turf) if(LAZYLEN(masters) && masters[user]) - var/area/holo_area = get_area(src) - if(new_turf.loc in holo_area.related) - var/obj/effect/overlay/holo_pad_hologram/holo = masters[user] - step_to(holo, new_turf) - holo.forceMove(new_turf) - update_holoray(user, new_turf) - else - clear_holo(user) + var/obj/effect/overlay/holo_pad_hologram/holo = masters[user] + var/transfered = FALSE + if(!validate_location(new_turf)) + if(!transfer_to_nearby_pad(new_turf,user)) + clear_holo(user) + return FALSE + else + transfered = TRUE + //All is good. + holo.forceMove(new_turf) + if(!transfered) + update_holoray(user,new_turf) return TRUE diff --git a/code/game/machinery/launch_pad.dm b/code/game/machinery/launch_pad.dm index f50f409463..93a6cfca62 100644 --- a/code/game/machinery/launch_pad.dm +++ b/code/game/machinery/launch_pad.dm @@ -31,15 +31,12 @@ return if(panel_open) - if(istype(I, /obj/item/device/multitool)) - var/obj/item/device/multitool/M = I + if(istype(I, /obj/item/multitool)) + var/obj/item/multitool/M = I M.buffer = src to_chat(user, "You save the data in the [I.name]'s buffer.") return 1 - if(exchange_parts(user, I)) - return - if(default_deconstruction_crowbar(I)) return @@ -185,8 +182,8 @@ closed = TRUE /obj/machinery/launchpad/briefcase/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/device/launchpad_remote)) - var/obj/item/device/launchpad_remote/L = I + if(istype(I, /obj/item/launchpad_remote)) + var/obj/item/launchpad_remote/L = I L.pad = src to_chat(user, "You link [src] to [L].") else @@ -232,14 +229,14 @@ user.transferItemToLoc(src, pad, TRUE) /obj/item/briefcase_launchpad/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/device/launchpad_remote)) - var/obj/item/device/launchpad_remote/L = I + if(istype(I, /obj/item/launchpad_remote)) + var/obj/item/launchpad_remote/L = I L.pad = src.pad to_chat(user, "You link [pad] to [L].") else return ..() -/obj/item/device/launchpad_remote +/obj/item/launchpad_remote name = "\improper Launchpad Control Remote" desc = "Used to teleport objects to and from a portable launchpad." icon = 'icons/obj/telescience.dmi' @@ -249,7 +246,7 @@ var/sending = TRUE var/obj/machinery/launchpad/briefcase/pad -/obj/item/device/launchpad_remote/ui_interact(mob/user, ui_key = "launchpad_remote", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) +/obj/item/launchpad_remote/ui_interact(mob/user, ui_key = "launchpad_remote", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) ui = new(user, src, ui_key, "launchpad_remote", "Briefcase Launchpad Remote", 550, 400, master_ui, state) //width, height @@ -258,7 +255,7 @@ ui.set_autoupdate(TRUE) -/obj/item/device/launchpad_remote/ui_data(mob/user) +/obj/item/launchpad_remote/ui_data(mob/user) var/list/data = list() data["has_pad"] = pad ? TRUE : FALSE if(pad) @@ -273,7 +270,7 @@ data["east_west"] = pad.x_offset > 0 ? "E":"W" return data -/obj/item/device/launchpad_remote/proc/teleport(mob/user, obj/machinery/launchpad/pad) +/obj/item/launchpad_remote/proc/teleport(mob/user, obj/machinery/launchpad/pad) if(QDELETED(pad)) to_chat(user, "ERROR: Launchpad not responding. Check launchpad integrity.") return @@ -282,7 +279,7 @@ return pad.doteleport(user, sending) -/obj/item/device/launchpad_remote/ui_act(action, params) +/obj/item/launchpad_remote/ui_act(action, params) if(..()) return switch(action) diff --git a/code/game/machinery/lightswitch.dm b/code/game/machinery/lightswitch.dm index fb90f1b5b4..c93f67b7d7 100644 --- a/code/game/machinery/lightswitch.dm +++ b/code/game/machinery/lightswitch.dm @@ -41,13 +41,12 @@ . = ..() on = !on - for(var/area/A in area.related) - A.lightswitch = on - A.updateicon() + area.lightswitch = on + area.updateicon() - for(var/obj/machinery/light_switch/L in A) - L.on = on - L.updateicon() + for(var/obj/machinery/light_switch/L in area) + L.on = on + L.updateicon() area.power_change() diff --git a/code/game/machinery/limbgrower.dm b/code/game/machinery/limbgrower.dm index 77cb3e32d1..8347e5f548 100644 --- a/code/game/machinery/limbgrower.dm +++ b/code/game/machinery/limbgrower.dm @@ -28,6 +28,8 @@ var/list/categories = list( "human", "lizard", + "fly", + "moth", "plasmaman", "other" ) @@ -70,9 +72,6 @@ updateUsrDialog() return - if(exchange_parts(user, O)) - return - if(panel_open && default_deconstruction_crowbar(O)) return @@ -137,16 +136,16 @@ //i need to create a body part manually using a set icon (otherwise it doesnt appear) var/obj/item/bodypart/limb limb = new buildpath(loc) - if(selected_category=="human" || selected_category=="lizard") // Doing this because plasmamen have their limbs in a different icon file + if(selected_category=="human" || selected_category=="lizard") //Species with greyscale parts should be included here limb.icon = 'icons/mob/human_parts_greyscale.dmi' + limb.should_draw_greyscale = TRUE else limb.icon = 'icons/mob/human_parts.dmi' // Set this limb up using the specias name and body zone limb.icon_state = "[selected_category]_[limb.body_zone]" - limb.name = "Synthetic [selected_category] [parse_zone(limb.body_zone)]" + limb.name = "\improper synthetic [selected_category] [parse_zone(limb.body_zone)]" limb.desc = "A synthetic [selected_category] limb that will morph on its first use in surgery. This one is for the [parse_zone(limb.body_zone)]" limb.species_id = selected_category - limb.should_draw_greyscale = TRUE limb.update_icon_dropped() /obj/machinery/limbgrower/RefreshParts() diff --git a/code/game/machinery/navbeacon.dm b/code/game/machinery/navbeacon.dm index cec5479641..6c0a5ddd7e 100644 --- a/code/game/machinery/navbeacon.dm +++ b/code/game/machinery/navbeacon.dm @@ -89,7 +89,7 @@ updateicon() - else if (istype(I, /obj/item/card/id)||istype(I, /obj/item/device/pda)) + else if (istype(I, /obj/item/card/id)||istype(I, /obj/item/pda)) if(open) if (src.allowed(user)) src.locked = !src.locked diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index ecdb7873e0..e2b06b333c 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -798,7 +798,7 @@ GLOBAL_LIST_EMPTY(allCasters) var/list/nametemp = list() var/find var/datum/picture/selection - var/obj/item/device/camera/siliconcam/targetcam = null + var/obj/item/camera/siliconcam/targetcam = null if(isAI(user)) var/mob/living/silicon/ai/R = user targetcam = R.aicamera @@ -830,8 +830,8 @@ GLOBAL_LIST_EMPTY(allCasters) if(ishuman(user)) var/mob/living/carbon/human/human_user = user if(human_user.wear_id) - if(istype(human_user.wear_id, /obj/item/device/pda)) - var/obj/item/device/pda/P = human_user.wear_id + if(istype(human_user.wear_id, /obj/item/pda)) + var/obj/item/pda/P = human_user.wear_id if(P.id) scanned_user = "[P.id.registered_name] ([P.id.assignment])" else diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 9336e20d29..f80532acaa 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -21,7 +21,7 @@ var/base_icon_state = "standard" - var/emp_vunerable = 1 // Can be empd + var/emp_vunerable = TRUE // Can be empd var/scan_range = 7 var/atom/base = null //for turrets inside other objects @@ -34,7 +34,7 @@ armor = list("melee" = 50, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90) var/locked = TRUE //if the turret's behaviour control access is locked - var/controllock = 0 //if the turret responds to control panels + var/controllock = FALSE //if the turret responds to control panels var/installation = /obj/item/gun/energy/e_gun/turret //the type of weapon installed by default var/obj/item/gun/stored_gun = null @@ -224,9 +224,11 @@ /obj/machinery/porta_turret/power_change() if(!anchored) update_icon() + remove_control() return if(stat & BROKEN) update_icon() + remove_control() else if( powered() ) stat &= ~NOPOWER @@ -234,6 +236,7 @@ else spawn(rand(0, 15)) stat |= NOPOWER + remove_control() update_icon() @@ -251,7 +254,7 @@ if(prob(50)) new /obj/item/stack/sheet/metal(loc, rand(1,4)) if(prob(50)) - new /obj/item/device/assembly/prox_sensor(loc) + new /obj/item/assembly/prox_sensor(loc) else to_chat(user, "You remove the turret but did not manage to salvage anything.") qdel(src) @@ -272,7 +275,7 @@ else if(anchored) anchored = FALSE to_chat(user, "You unsecure the exterior bolts on the turret.") - update_icon() + power_change() invisibility = 0 qdel(cover) //deletes the cover, and the turret instance itself becomes its own cover. @@ -283,8 +286,8 @@ to_chat(user, "Controls are now [locked ? "locked" : "unlocked"].") else to_chat(user, "Access denied.") - else if(istype(I, /obj/item/device/multitool) && !locked) - var/obj/item/device/multitool/M = I + else if(istype(I, /obj/item/multitool) && !locked) + var/obj/item/multitool/M = I M.buffer = src to_chat(user, "You add [src] to multitool buffer.") else @@ -296,7 +299,7 @@ to_chat(user, "You short out [src]'s threat assessment circuits.") visible_message("[src] hums oddly...") obj_flags |= EMAGGED - controllock = 1 + controllock = TRUE on = FALSE //turns off the turret temporarily update_icon() sleep(60) //6 seconds for the traitor to gtfo of the area before the turret decides to ruin his shit @@ -312,10 +315,12 @@ auth_weapons = pick(0, 1) stun_all = pick(0, 0, 0, 0, 1) //stun_all is a pretty big deal, so it's least likely to get turned on - on=0 + on = FALSE + remove_control() + spawn(rand(60,600)) if(!on) - on=1 + on = TRUE ..() @@ -337,7 +342,7 @@ /obj/machinery/porta_turret/obj_break(damage_flag) if(!(flags_1 & NODECONSTRUCT_1) && !(stat & BROKEN)) stat |= BROKEN //enables the BROKEN bit - update_icon() + power_change() invisibility = 0 spark_system.start() //creates some sparks because they look cool qdel(cover) //deletes the cover - no need on keeping it there! @@ -583,10 +588,10 @@ var/obj/machinery/porta_turret/P = target if(!istype(P)) return - P.remove_control(owner) + P.remove_control(FALSE) /obj/machinery/porta_turret/proc/give_control(mob/A) - if(manual_control) + if(manual_control || !can_interact(A)) return FALSE remote_controller = A if(!quit_action) @@ -602,10 +607,12 @@ popUp() return TRUE -/obj/machinery/porta_turret/proc/remove_control() +/obj/machinery/porta_turret/proc/remove_control(warning_message = TRUE) if(!manual_control) return FALSE if(remote_controller) + if(warning_message) + to_chat(remote_controller, "Your uplink to [src] has been severed!") quit_action.Remove(remote_controller) toggle_action.Remove(remote_controller) remote_controller.click_intercept = null @@ -618,6 +625,9 @@ /obj/machinery/porta_turret/proc/InterceptClickOn(mob/living/caller, params, atom/A) if(!manual_control) return FALSE + if(!can_interact(caller)) + remove_control() + return FALSE add_logs(caller,A,"fired with manual turret control at") target(A) return TRUE @@ -785,8 +795,8 @@ if(stat & BROKEN) return - if (istype(I, /obj/item/device/multitool)) - var/obj/item/device/multitool/M = I + if (istype(I, /obj/item/multitool)) + var/obj/item/multitool/M = I if(M.buffer && istype(M.buffer, /obj/machinery/porta_turret)) turrets |= M.buffer to_chat(user, "You link \the [M.buffer] with \the [src]") diff --git a/code/game/machinery/porta_turret/portable_turret_construct.dm b/code/game/machinery/porta_turret/portable_turret_construct.dm index ca17490e03..4bc5db4d5e 100644 --- a/code/game/machinery/porta_turret/portable_turret_construct.dm +++ b/code/game/machinery/porta_turret/portable_turret_construct.dm @@ -181,7 +181,7 @@ if(PTURRET_SENSORS_ON) to_chat(user, "You remove the prox sensor from the turret frame.") - new /obj/item/device/assembly/prox_sensor(loc) + new /obj/item/assembly/prox_sensor(loc) build_step = PTURRET_GUN_EQUIPPED /obj/machinery/porta_turret_construct/attack_ai() diff --git a/code/game/machinery/porta_turret/portable_turret_cover.dm b/code/game/machinery/porta_turret/portable_turret_cover.dm index d455bec173..8abb5c3fb7 100644 --- a/code/game/machinery/porta_turret/portable_turret_cover.dm +++ b/code/game/machinery/porta_turret/portable_turret_cover.dm @@ -64,8 +64,8 @@ updateUsrDialog() else to_chat(user, "Access denied.") - else if(istype(I, /obj/item/device/multitool) && !parent_turret.locked) - var/obj/item/device/multitool/M = I + else if(istype(I, /obj/item/multitool) && !parent_turret.locked) + var/obj/item/multitool/M = I M.buffer = parent_turret to_chat(user, "You add [parent_turret] to multitool buffer.") else diff --git a/code/game/machinery/quantum_pad.dm b/code/game/machinery/quantum_pad.dm index 91a7f6923f..7236e683a5 100644 --- a/code/game/machinery/quantum_pad.dm +++ b/code/game/machinery/quantum_pad.dm @@ -48,34 +48,24 @@ return if(panel_open) - if(istype(I, /obj/item/device/multitool)) - var/obj/item/device/multitool/M = I + if(istype(I, /obj/item/multitool)) + var/obj/item/multitool/M = I M.buffer = src to_chat(user, "You save the data in [I]'s buffer.") return 1 - else if(istype(I, /obj/item/device/multitool)) - var/obj/item/device/multitool/M = I + else if(istype(I, /obj/item/multitool)) + var/obj/item/multitool/M = I if(istype(M.buffer, /obj/machinery/quantumpad)) linked_pad = M.buffer to_chat(user, "You link [src] to the one in [I]'s buffer.") return 1 - if(exchange_parts(user, I)) - return - if(default_deconstruction_crowbar(I)) return return ..() -/obj/machinery/quantumpad/attack_hand(mob/user) - . = ..() - if(.) - return - if(panel_open) - to_chat(user, "The panel must be closed before operating this machine!") - return - +/obj/machinery/quantumpad/interact(mob/user) if(!linked_pad || QDELETED(linked_pad)) if(!map_pad_link_id || !initMappedLink()) to_chat(user, "There is no linked pad!") @@ -96,7 +86,7 @@ if(linked_pad.stat & NOPOWER) to_chat(user, "Linked pad is not responding to ping.") return - src.add_fingerprint(user) + add_fingerprint(user) doteleport(user) /obj/machinery/quantumpad/proc/sparks() diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index f95f69e2d1..ea317b74e5 100755 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -15,7 +15,7 @@ /obj/item/gun/energy, /obj/item/melee/baton, /obj/item/ammo_box/magazine/recharge, - /obj/item/device/modular_computer)) + /obj/item/modular_computer)) /obj/machinery/recharger/RefreshParts() for(var/obj/item/stock_parts/capacitor/C in component_parts) @@ -68,8 +68,6 @@ default_deconstruction_crowbar(G) return - if(exchange_parts(user, G)) - return return ..() /obj/machinery/recharger/attack_hand(mob/user) diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 790158515f..e1200e6804 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -1,5 +1,6 @@ /obj/machinery/recharge_station name = "cyborg recharging station" + desc = "This device recharges cyborgs and resupplies them with materials." icon = 'icons/obj/objects.dmi' icon_state = "borgcharger0" density = FALSE @@ -53,9 +54,6 @@ if(default_deconstruction_screwdriver(user, "borgdecon2", "borgcharger0", P)) return - if(exchange_parts(user, P)) - return - if(default_pry_open(P)) return diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index 0eb3f97acf..ec20efbf84 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -55,9 +55,6 @@ if(default_deconstruction_screwdriver(user, "grinder-oOpen", "grinder-o0", I)) return - if(exchange_parts(user, I)) - return - if(default_pry_open(I)) return @@ -110,7 +107,7 @@ for(var/i in to_eat) var/atom/movable/AM = i var/obj/item/bodypart/head/as_head = AM - var/obj/item/device/mmi/as_mmi = AM + var/obj/item/mmi/as_mmi = AM var/brain_holder = istype(AM, /obj/item/organ/brain) || (istype(as_head) && as_head.brain) || (istype(as_mmi) && as_mmi.brain) || istype(AM, /mob/living/brain) if(brain_holder) emergency_stop(AM) diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm index 0d77157392..36793900bf 100644 --- a/code/game/machinery/requests_console.dm +++ b/code/game/machinery/requests_console.dm @@ -51,7 +51,7 @@ GLOBAL_LIST_EMPTY(allConsoles) var/message = ""; var/dpt = ""; //the department which will be receiving the message var/priority = -1 ; //Priority of the message being sent - var/obj/item/device/radio/Radio + var/obj/item/radio/Radio var/emergency //If an emergency has been called by this device. Acts as both a cooldown and lets the responder know where it the emergency was triggered from var/receive_ore_updates = FALSE //If ore redemption machines will send an update when it receives new ores. max_integrity = 300 @@ -121,7 +121,7 @@ GLOBAL_LIST_EMPTY(allConsoles) if(!("[department]" in GLOB.req_console_information)) GLOB.req_console_information += department - Radio = new /obj/item/device/radio(src) + Radio = new /obj/item/radio(src) Radio.listening = 0 /obj/machinery/requests_console/Destroy() diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm index 9fbe2b412b..872c5b8f1d 100644 --- a/code/game/machinery/spaceheater.dm +++ b/code/game/machinery/spaceheater.dm @@ -156,7 +156,7 @@ update_icon() if(panel_open) interact(user) - else if(exchange_parts(user, I) || default_deconstruction_crowbar(I)) + else if(default_deconstruction_crowbar(I)) return else return ..() diff --git a/code/game/machinery/status_display.dm b/code/game/machinery/status_display.dm index 706e14cae6..6c3687f6b8 100644 --- a/code/game/machinery/status_display.dm +++ b/code/game/machinery/status_display.dm @@ -317,7 +317,7 @@ add_overlay(picture_state) #undef CHARS_PER_LINE -#undef FOND_SIZE +#undef FONT_SIZE #undef FONT_COLOR #undef FONT_STYLE #undef SCROLL_SPEED diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index f041cf3d28..b0a2112f2b 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -107,7 +107,7 @@ name = "radiation suit storage unit" suit_type = /obj/item/clothing/suit/radiation helmet_type = /obj/item/clothing/head/radiation - storage_type = /obj/item/device/geiger_counter + storage_type = /obj/item/geiger_counter /obj/machinery/suit_storage_unit/open state_open = TRUE diff --git a/code/game/machinery/syndicatebeacon.dm b/code/game/machinery/syndicatebeacon.dm index 1d2276a119..7d7d010b2c 100644 --- a/code/game/machinery/syndicatebeacon.dm +++ b/code/game/machinery/syndicatebeacon.dm @@ -103,7 +103,7 @@ icon_state = "beaconsynd0" // SINGULO BEACON SPAWNER -/obj/item/device/sbeacondrop +/obj/item/sbeacondrop name = "suspicious beacon" icon = 'icons/obj/device.dmi' icon_state = "beacon" @@ -114,7 +114,7 @@ var/droptype = /obj/machinery/power/singularity_beacon/syndicate -/obj/item/device/sbeacondrop/attack_self(mob/user) +/obj/item/sbeacondrop/attack_self(mob/user) if(user) to_chat(user, "Locked In.") new droptype( user.loc ) @@ -122,14 +122,14 @@ qdel(src) return -/obj/item/device/sbeacondrop/bomb +/obj/item/sbeacondrop/bomb desc = "A label on it reads: Warning: Activating this device will send a high-ordinance explosive to your location." droptype = /obj/machinery/syndicatebomb -/obj/item/device/sbeacondrop/powersink +/obj/item/sbeacondrop/powersink desc = "A label on it reads: Warning: Activating this device will send a power draining device to your location." - droptype = /obj/item/device/powersink + droptype = /obj/item/powersink -/obj/item/device/sbeacondrop/clownbomb +/obj/item/sbeacondrop/clownbomb desc = "A label on it reads: Warning: Activating this device will send a silly explosive to your location." droptype = /obj/machinery/syndicatebomb/badmin/clown diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index b0e0b4f8fc..605676fc27 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -499,7 +499,7 @@ ///Syndicate Detonator (aka the big red button)/// -/obj/item/device/syndicatedetonator +/obj/item/syndicatedetonator name = "big red button" desc = "Your standard issue bomb synchronizing button. Five second safety delay to prevent 'accidents'." icon = 'icons/obj/assemblies.dmi' @@ -512,7 +512,7 @@ var/detonated = 0 var/existant = 0 -/obj/item/device/syndicatedetonator/attack_self(mob/user) +/obj/item/syndicatedetonator/attack_self(mob/user) if(timer < world.time) for(var/obj/machinery/syndicatebomb/B in GLOB.machines) if(B.active) diff --git a/code/game/machinery/telecomms/broadcasting.dm b/code/game/machinery/telecomms/broadcasting.dm index 7d795c9ce2..0873ad2df6 100644 --- a/code/game/machinery/telecomms/broadcasting.dm +++ b/code/game/machinery/telecomms/broadcasting.dm @@ -144,25 +144,25 @@ switch (transmission_method) if (TRANSMISSION_SUBSPACE) // Reaches any radios on the levels - for(var/obj/item/device/radio/R in GLOB.all_radios["[frequency]"]) + for(var/obj/item/radio/R in GLOB.all_radios["[frequency]"]) if(R.can_receive(frequency, levels)) radios += R // Syndicate radios can hear all well-known radio channels if (num2text(frequency) in GLOB.reverseradiochannels) - for(var/obj/item/device/radio/R in GLOB.all_radios["[FREQ_SYNDICATE]"]) + for(var/obj/item/radio/R in GLOB.all_radios["[FREQ_SYNDICATE]"]) if(R.can_receive(FREQ_SYNDICATE, list(R.z))) radios |= R if (TRANSMISSION_RADIO) // Only radios not currently in subspace mode - for(var/obj/item/device/radio/R in GLOB.all_radios["[frequency]"]) + for(var/obj/item/radio/R in GLOB.all_radios["[frequency]"]) if(!R.subspace_transmission && R.can_receive(frequency, levels)) radios += R if (TRANSMISSION_SUPERSPACE) // Only radios which are independent - for(var/obj/item/device/radio/R in GLOB.all_radios["[frequency]"]) + for(var/obj/item/radio/R in GLOB.all_radios["[frequency]"]) if(R.independent && R.can_receive(frequency, levels)) radios += R diff --git a/code/game/machinery/telecomms/computers/message.dm b/code/game/machinery/telecomms/computers/message.dm index 4408a653d4..74881cb064 100644 --- a/code/game/machinery/telecomms/computers/message.dm +++ b/code/game/machinery/telecomms/computers/message.dm @@ -28,7 +28,7 @@ var/optioncount = 7 // Custom Message Properties var/customsender = "System Administrator" - var/obj/item/device/pda/customrecepient = null + var/obj/item/pda/customrecepient = null var/customjob = "Admin" var/custommessage = "This is a test, please ignore." @@ -388,7 +388,7 @@ //Select Receiver if("Recepient") //Get out list of viable PDAs - var/list/obj/item/device/pda/sendPDAs = get_viewable_pdas() + var/list/obj/item/pda/sendPDAs = get_viewable_pdas() if(GLOB.PDAs && GLOB.PDAs.len > 0) customrecepient = input(usr, "Select a PDA from the list.") as null|anything in sortNames(sendPDAs) else diff --git a/code/game/machinery/telecomms/machine_interactions.dm b/code/game/machinery/telecomms/machine_interactions.dm index 3bacd10b05..1ad80ccbed 100644 --- a/code/game/machinery/telecomms/machine_interactions.dm +++ b/code/game/machinery/telecomms/machine_interactions.dm @@ -18,12 +18,8 @@ if(default_deconstruction_screwdriver(user, icon_open, icon_closed, P)) return - - else if(exchange_parts(user, P)) - return - // Using a multitool lets you access the receiver's interface - else if(istype(P, /obj/item/device/multitool)) + else if(istype(P, /obj/item/multitool)) attack_hand(user) else if(default_deconstruction_crowbar(P)) @@ -36,9 +32,9 @@ // You need a multitool to use this, or be silicon if(!issilicon(user)) // istype returns false if the value is null - if(!istype(user.get_active_held_item(), /obj/item/device/multitool)) + if(!istype(user.get_active_held_item(), /obj/item/multitool)) return - var/obj/item/device/multitool/P = get_multitool(user) + var/obj/item/multitool/P = get_multitool(user) var/dat dat = "[name]

    [name] Access

    " dat += "
    [temp]
    " @@ -99,15 +95,15 @@ /obj/machinery/telecomms/proc/get_multitool(mob/user) - var/obj/item/device/multitool/P = null + var/obj/item/multitool/P = null // Let's double check - if(!issilicon(user) && istype(user.get_active_held_item(), /obj/item/device/multitool)) + if(!issilicon(user) && istype(user.get_active_held_item(), /obj/item/multitool)) P = user.get_active_held_item() else if(isAI(user)) var/mob/living/silicon/ai/U = user P = U.aiMulti else if(iscyborg(user) && in_range(user, src)) - if(istype(user.get_active_held_item(), /obj/item/device/multitool)) + if(istype(user.get_active_held_item(), /obj/item/multitool)) P = user.get_active_held_item() return P @@ -167,10 +163,10 @@ return if(!issilicon(usr)) - if(!istype(usr.get_active_held_item(), /obj/item/device/multitool)) + if(!istype(usr.get_active_held_item(), /obj/item/multitool)) return - var/obj/item/device/multitool/P = get_multitool(usr) + var/obj/item/multitool/P = get_multitool(usr) if(href_list["input"]) switch(href_list["input"]) diff --git a/code/game/machinery/telecomms/machines/allinone.dm b/code/game/machinery/telecomms/machines/allinone.dm index fbdc385f85..01b07c4b4f 100644 --- a/code/game/machinery/telecomms/machines/allinone.dm +++ b/code/game/machinery/telecomms/machines/allinone.dm @@ -37,5 +37,5 @@ signal.broadcast() /obj/machinery/telecomms/allinone/attackby(obj/item/P, mob/user, params) - if(istype(P, /obj/item/device/multitool)) + if(istype(P, /obj/item/multitool)) return attack_hand(user) diff --git a/code/game/machinery/telecomms/machines/message_server.dm b/code/game/machinery/telecomms/machines/message_server.dm index 1846eea322..d3d4b871b0 100644 --- a/code/game/machinery/telecomms/machines/message_server.dm +++ b/code/game/machinery/telecomms/machines/message_server.dm @@ -116,7 +116,7 @@ /datum/signal/subspace/pda/broadcast() if (!logged) // Can only go through if a message server logs it return - for (var/obj/item/device/pda/P in GLOB.PDAs) + for (var/obj/item/pda/P in GLOB.PDAs) if ("[P.owner] ([P.ownjob])" in data["targets"]) P.receive_message(src) diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index ae3263d96a..7b66a57f59 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -55,8 +55,6 @@ power_station.engaged = 0 //hub with panel open is off, so the station must be informed. update_icon() return - if(exchange_parts(user, W)) - return if(default_deconstruction_crowbar(W)) return return ..() @@ -151,8 +149,8 @@ return ..() /obj/machinery/teleport/station/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/device/multitool)) - var/obj/item/device/multitool/M = W + if(istype(W, /obj/item/multitool)) + var/obj/item/multitool/M = W if(panel_open) M.buffer = src to_chat(user, "You download the data to the [W.name]'s buffer.") @@ -169,9 +167,6 @@ update_icon() return - else if(exchange_parts(user, W)) - return - else if(default_deconstruction_crowbar(W)) return diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm deleted file mode 100755 index 12b55c4205..0000000000 --- a/code/game/machinery/vending.dm +++ /dev/null @@ -1,1225 +0,0 @@ -#define STANDARD_CHARGE 1 -#define CONTRABAND_CHARGE 2 -#define COIN_CHARGE 3 - -/datum/data/vending_product - var/product_name = "generic" - var/product_path = null - var/amount = 0 - var/max_amount = 0 - var/display_color = "blue" - - -/obj/machinery/vending - name = "\improper Vendomat" - desc = "A generic vending machine." - icon = 'icons/obj/vending.dmi' - icon_state = "generic" - layer = BELOW_OBJ_LAYER - anchored = TRUE - density = TRUE - verb_say = "beeps" - verb_ask = "beeps" - verb_exclaim = "beeps" - max_integrity = 300 - integrity_failure = 100 - armor = list("melee" = 20, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 70) - circuit = /obj/item/circuitboard/machine/vendor - var/active = 1 //No sales pitches if off! - var/vend_ready = 1 //Are we ready to vend?? Is it time?? - - // To be filled out at compile time - var/list/products = list() //For each, use the following pattern: - var/list/contraband = list() //list(/type/path = amount, /type/path2 = amount2) - var/list/premium = list() //No specified amount = only one in stock - - var/product_slogans = "" //String of slogans separated by semicolons, optional - var/product_ads = "" //String of small ad messages in the vending screen - random chance - var/list/product_records = list() - var/list/hidden_records = list() - var/list/coin_records = list() - var/list/slogan_list = list() - var/list/small_ads = list() //Small ad messages in the vending screen - random chance of popping up whenever you open it - var/vend_reply //Thank you for shopping! - var/last_reply = 0 - var/last_slogan = 0 //When did we last pitch? - var/slogan_delay = 6000 //How long until we can pitch again? - var/icon_vend //Icon_state when vending! - var/icon_deny //Icon_state when vending! - var/seconds_electrified = 0 //Shock customers like an airlock. - var/shoot_inventory = 0 //Fire items at customers! We're broken! - var/shoot_inventory_chance = 2 - var/shut_up = 0 //Stop spouting those godawful pitches! - var/extended_inventory = 0 //can we access the hidden inventory? - var/scan_id = 1 - var/obj/item/coin/coin - var/obj/item/stack/spacecash/bill - - var/dish_quants = list() //used by the snack machine's custom compartment to count dishes. - - var/obj/item/vending_refill/refill_canister = null //The type of refill canisters used by this machine. - var/refill_count = 3 //The number of canisters the vending machine uses - -/obj/machinery/vending/Initialize() - var/build_inv = FALSE - if(!refill_canister) - circuit = null - build_inv = TRUE - . = ..() - wires = new /datum/wires/vending(src) - if(build_inv) //non-constructable vending machine - build_inventory(products) - build_inventory(contraband, 1) - build_inventory(premium, 0, 1) - - slogan_list = splittext(product_slogans, ";") - // So not all machines speak at the exact same time. - // The first time this machine says something will be at slogantime + this random value, - // so if slogantime is 10 minutes, it will say it at somewhere between 10 and 20 minutes after the machine is crated. - last_slogan = world.time + rand(0, slogan_delay) - power_change() - - -/obj/machinery/vending/Destroy() - QDEL_NULL(wires) - QDEL_NULL(coin) - QDEL_NULL(bill) - return ..() - -/obj/machinery/vending/snack/Destroy() - for(var/obj/item/reagent_containers/food/snacks/S in contents) - S.forceMove(get_turf(src)) - return ..() - -/obj/machinery/vending/RefreshParts() //Better would be to make constructable child - if(component_parts) - product_records = list() - hidden_records = list() - coin_records = list() - build_inventory(products, start_empty = 1) - build_inventory(contraband, 1, start_empty = 1) - build_inventory(premium, 0, 1, start_empty = 1) - for(var/obj/item/vending_refill/VR in component_parts) - refill_inventory(VR, product_records, STANDARD_CHARGE) - refill_inventory(VR, coin_records, COIN_CHARGE) - refill_inventory(VR, hidden_records, CONTRABAND_CHARGE) - - -/obj/machinery/vending/deconstruct(disassembled = TRUE) - if(!refill_canister) //the non constructable vendors drop metal instead of a machine frame. - if(!(flags_1 & NODECONSTRUCT_1)) - new /obj/item/stack/sheet/metal(loc, 3) - qdel(src) - else - ..() - -/obj/machinery/vending/obj_break(damage_flag) - if(!(stat & BROKEN) && !(flags_1 & NODECONSTRUCT_1)) - var/dump_amount = 0 - for(var/datum/data/vending_product/R in product_records) - if(R.amount <= 0) //Try to use a record that actually has something to dump. - continue - var/dump_path = R.product_path - if(!dump_path) - continue - - while(R.amount>0) - var/obj/O = new dump_path(loc) - step(O, pick(GLOB.alldirs)) //we only drop 20% of the total of each products and spread it - R.amount -= 5 //around to not fill the turf with too many objects. - dump_amount++ - if(dump_amount > 15) //so we don't drop too many items (e.g. ClothesMate) - break - stat |= BROKEN - icon_state = "[initial(icon_state)]-broken" - -/obj/machinery/vending/proc/build_inventory(list/productlist, hidden=0, req_coin=0, start_empty = null) - for(var/typepath in productlist) - var/amount = productlist[typepath] - if(isnull(amount)) - amount = 0 - - var/atom/temp = typepath - var/datum/data/vending_product/R = new /datum/data/vending_product() - R.product_name = initial(temp.name) - R.product_path = typepath - if(!start_empty) - R.amount = amount - R.max_amount = amount - R.display_color = pick("red","blue","green") - - if(hidden) - hidden_records += R - else if(req_coin) - coin_records += R - else - product_records += R - -/obj/machinery/vending/proc/refill_inventory(obj/item/vending_refill/refill, datum/data/vending_product/machine, var/charge_type = STANDARD_CHARGE) - var/total = 0 - var/to_restock = 0 - - for(var/datum/data/vending_product/machine_content in machine) - if(machine_content.amount == 0 && refill.charges[charge_type] > 0) - machine_content.amount++ - refill.charges[charge_type]-- - total++ - to_restock += machine_content.max_amount - machine_content.amount - if(to_restock <= refill.charges[charge_type]) - for(var/datum/data/vending_product/machine_content in machine) - machine_content.amount = machine_content.max_amount - refill.charges[charge_type] -= to_restock - total += to_restock - else - var/tmp_charges = refill.charges[charge_type] - for(var/datum/data/vending_product/machine_content in machine) - if(refill.charges[charge_type] == 0) - break - var/restock = CEILING(((machine_content.max_amount - machine_content.amount)/to_restock)*tmp_charges, 1) - if(restock > refill.charges[charge_type]) - restock = refill.charges[charge_type] - machine_content.amount += restock - refill.charges[charge_type] -= restock - total += restock - return total - -/obj/machinery/vending/snack/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/reagent_containers/food/snacks)) - if(!compartment_access_check(user)) - return - var/obj/item/reagent_containers/food/snacks/S = W - if(!S.junkiness) - if(!iscompartmentfull(user)) - if(!user.transferItemToLoc(W, src)) - return - food_load(W) - to_chat(user, "You insert [W] into [src]'s chef compartment.") - else - to_chat(user, "[src]'s chef compartment does not accept junk food.") - - else if(istype(W, /obj/item/storage/bag/tray)) - if(!compartment_access_check(user)) - return - var/obj/item/storage/T = W - var/loaded = 0 - var/denied_items = 0 - for(var/obj/item/reagent_containers/food/snacks/S in T.contents) - if(iscompartmentfull(user)) - break - if(!S.junkiness) - T.remove_from_storage(S, src) - food_load(S) - loaded++ - else - denied_items++ - if(denied_items) - to_chat(user, "[src] refuses some items.") - if(loaded) - to_chat(user, "You insert [loaded] dishes into [src]'s chef compartment.") - updateUsrDialog() - return - - else - return ..() - -/obj/machinery/vending/snack/proc/compartment_access_check(user) - req_access_txt = chef_compartment_access - if(!allowed(user) && !(obj_flags & EMAGGED) && scan_id) - to_chat(user, "[src]'s chef compartment blinks red: Access denied.") - req_access_txt = "0" - return 0 - req_access_txt = "0" - return 1 - -/obj/machinery/vending/snack/proc/iscompartmentfull(mob/user) - if(contents.len >= 30) // no more than 30 dishes can fit inside - to_chat(user, "[src]'s chef compartment is full.") - return 1 - return 0 - -/obj/machinery/vending/snack/proc/food_load(obj/item/reagent_containers/food/snacks/S) - if(dish_quants[S.name]) - dish_quants[S.name]++ - else - dish_quants[S.name] = 1 - sortList(dish_quants) - -/obj/machinery/vending/crowbar_act(mob/living/user, obj/item/I) - if(!component_parts) - return FALSE - default_deconstruction_crowbar(I) - return TRUE - -/obj/machinery/vending/wrench_act(mob/living/user, obj/item/I) - if(panel_open) - default_unfasten_wrench(user, I, time = 60) - return TRUE - -/obj/machinery/vending/screwdriver_act(mob/living/user, obj/item/I) - if(anchored) - default_deconstruction_screwdriver(user, icon_state, icon_state, I) - cut_overlays() - if(panel_open) - add_overlay("[initial(icon_state)]-panel") - updateUsrDialog() - else - to_chat(user, "You must first secure [src].") - return TRUE - -/obj/machinery/vending/attackby(obj/item/I, mob/user, params) - if(panel_open && is_wire_tool(I)) - wires.interact(user) - return - else if(istype(I, /obj/item/coin)) - if(coin) - to_chat(user, "[src] already has [coin] inserted") - return - if(bill) - to_chat(user, "[src] already has [bill] inserted") - return - if(!premium.len) - to_chat(user, "[src] doesn't have a coin slot.") - return - if(!user.transferItemToLoc(I, src)) - return - coin = I - to_chat(user, "You insert [I] into [src].") - return - else if(istype(I, /obj/item/stack/spacecash)) - if(coin) - to_chat(user, "[src] already has [coin] inserted") - return - if(bill) - to_chat(user, "[src] already has [bill] inserted") - return - var/obj/item/stack/S = I - if(!premium.len) - to_chat(user, "[src] doesn't have a bill slot.") - return - S.use(1) - bill = new S.type(src, 1) - to_chat(user, "You insert [I] into [src].") - return - else if(istype(I, refill_canister) && refill_canister != null) - if(stat & (BROKEN|NOPOWER)) - to_chat(user, "It does nothing.") - else if(panel_open) - //if the panel is open we attempt to refill the machine - var/obj/item/vending_refill/canister = I - if(canister.charges[STANDARD_CHARGE] == 0) - to_chat(user, "This [canister.name] is empty!") - else - var/transfered = refill_inventory(canister,product_records,STANDARD_CHARGE) - transfered += refill_inventory(canister,coin_records,COIN_CHARGE) - transfered += refill_inventory(canister,hidden_records,CONTRABAND_CHARGE) - if(transfered) - to_chat(user, "You loaded [transfered] items in \the [name].") - else - to_chat(user, "The [name] is fully stocked.") - return - else - to_chat(user, "You should probably unscrew the service panel first.") - else - return ..() - - -/obj/machinery/vending/on_deconstruction() - var/product_list = list(product_records, hidden_records, coin_records) - for(var/i=1, i<=3, i++) - for(var/datum/data/vending_product/machine_content in product_list[i]) - while(machine_content.amount !=0) - var/safety = 0 //to avoid infinite loop - for(var/obj/item/vending_refill/VR in component_parts) - safety++ - if(VR.charges[i] < VR.init_charges[i]) - VR.charges[i]++ - machine_content.amount-- - if(!machine_content.amount) - break - else - safety-- - if(safety <= 0) // all refill canisters are full - break - ..() - -/obj/machinery/vending/emag_act(mob/user) - if(obj_flags & EMAGGED) - return - obj_flags |= EMAGGED - to_chat(user, "You short out the product lock on [src].") - -/obj/machinery/vending/attack_ai(mob/user) - return attack_hand(user) - -/obj/machinery/vending/attack_hand(mob/user) - var/dat = "" - if(panel_open && !isAI(user)) - return wires.interact(user) - else - if(stat & (BROKEN|NOPOWER)) - return - - dat += "

    Select an item

    " - dat += "
    " - if(product_records.len == 0) - dat += "No product loaded!" - else - var/list/display_records = product_records - if(extended_inventory) - display_records = product_records + hidden_records - if(coin || bill) - display_records = product_records + coin_records - if((coin || bill) && extended_inventory) - display_records = product_records + hidden_records + coin_records - dat += "
      " - for (var/datum/data/vending_product/R in display_records) - dat += "
    • " - if(R.amount > 0) - dat += "Vend " - else - dat += "Sold out " - dat += "[sanitize(R.product_name)]:" - dat += " [R.amount]" - dat += "
    • " - dat += "
    " - dat += "
    " - if(premium.len > 0) - dat += "Change Return: " - if (coin || bill) - dat += "[(coin ? coin : "")][(bill ? bill : "")]  Remove" - else - dat += "No money  Remove" - if(istype(src, /obj/machinery/vending/snack)) - dat += "

    Chef's Food Selection

    " - dat += "
    " - for (var/O in dish_quants) - if(dish_quants[O] > 0) - var/N = dish_quants[O] - dat += "Dispense " - dat += "[capitalize(O)]: [N]
    " - dat += "
    " - user.set_machine(src) - if(seconds_electrified && !(stat & NOPOWER)) - if(shock(user, 100)) - return - - var/datum/browser/popup = new(user, "vending", (name)) - popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(icon, icon_state)) - popup.open() - - -/obj/machinery/vending/Topic(href, href_list) - if(..()) - return - - if(href_list["remove_coin"]) - if(!(coin || bill)) - to_chat(usr, "There is no money in this machine.") - return - if(coin) - if(!usr.get_active_held_item()) - usr.put_in_hands(coin) - else - coin.forceMove(get_turf(src)) - to_chat(usr, "You remove [coin] from [src].") - coin = null - if(bill) - if(!usr.get_active_held_item()) - usr.put_in_hands(bill) - else - bill.forceMove(get_turf(src)) - to_chat(usr, "You remove [bill] from [src].") - bill = null - - - usr.set_machine(src) - - if((href_list["dispense"]) && (vend_ready)) - var/N = href_list["dispense"] - if(dish_quants[N] <= 0) // Sanity check, there are probably ways to press the button when it shouldn't be possible. - return - vend_ready = 0 - use_power(5) - - dish_quants[N] = max(dish_quants[N] - 1, 0) - for(var/obj/O in contents) - if(O.name == N) - O.forceMove(drop_location()) - break - vend_ready = 1 - updateUsrDialog() - return - - if((href_list["vend"]) && (vend_ready)) - if(panel_open) - to_chat(usr, "The vending machine cannot dispense products while its service panel is open!") - return - - if((!allowed(usr)) && !(obj_flags & EMAGGED) && scan_id) //For SECURE VENDING MACHINES YEAH - to_chat(usr, "Access denied." ) - flick(icon_deny,src) - return - - vend_ready = 0 //One thing at a time!! - - var/datum/data/vending_product/R = locate(href_list["vend"]) - if(!R || !istype(R) || !R.product_path) - vend_ready = 1 - return - - if(R in hidden_records) - if(!extended_inventory) - vend_ready = 1 - return - else if(R in coin_records) - if(!(coin || bill)) - to_chat(usr, "You need to insert money to get this item!") - vend_ready = 1 - return - if(coin && coin.string_attached) - if(prob(50)) - if(usr.put_in_hands(coin)) - to_chat(usr, "You successfully pull [coin] out before [src] could swallow it.") - coin = null - else - to_chat(usr, "You couldn't pull [coin] out because your hands are full!") - QDEL_NULL(coin) - else - to_chat(usr, "You weren't able to pull [coin] out fast enough, the machine ate it, string and all!") - QDEL_NULL(coin) - else - QDEL_NULL(coin) - QDEL_NULL(bill) - - else if (!(R in product_records)) - vend_ready = 1 - message_admins("Vending machine exploit attempted by [key_name(usr, usr.client)]!") - return - - if (R.amount <= 0) - to_chat(usr, "Sold out.") - vend_ready = 1 - return - else - R.amount-- - - if(((last_reply + 200) <= world.time) && vend_reply) - speak(vend_reply) - last_reply = world.time - - use_power(5) - if(icon_vend) //Show the vending animation if needed - flick(icon_vend,src) - new R.product_path(get_turf(src)) - SSblackbox.record_feedback("nested tally", "vending_machine_usage", 1, list("[type]", "[R.product_path]")) - vend_ready = 1 - return - - updateUsrDialog() - return - - else if(href_list["togglevoice"] && panel_open) - shut_up = !shut_up - - updateUsrDialog() - - -/obj/machinery/vending/process() - if(stat & (BROKEN|NOPOWER)) - return - if(!active) - return - - if(seconds_electrified > 0) - seconds_electrified-- - - //Pitch to the people! Really sell it! - if(last_slogan + slogan_delay <= world.time && slogan_list.len > 0 && !shut_up && prob(5)) - var/slogan = pick(slogan_list) - speak(slogan) - last_slogan = world.time - - if(shoot_inventory && prob(shoot_inventory_chance)) - throw_item() - - -/obj/machinery/vending/proc/speak(message) - if(stat & (BROKEN|NOPOWER)) - return - if(!message) - return - - say(message) - -/obj/machinery/vending/power_change() - if(stat & BROKEN) - icon_state = "[initial(icon_state)]-broken" - else - if(powered()) - icon_state = initial(icon_state) - stat &= ~NOPOWER - else - icon_state = "[initial(icon_state)]-off" - stat |= NOPOWER - - -//Somebody cut an important wire and now we're following a new definition of "pitch." -/obj/machinery/vending/proc/throw_item() - var/obj/throw_item = null - var/mob/living/target = locate() in view(7,src) - if(!target) - return 0 - - for(var/datum/data/vending_product/R in shuffle(product_records)) - if(R.amount <= 0) //Try to use a record that actually has something to dump. - continue - var/dump_path = R.product_path - if(!dump_path) - continue - - R.amount-- - throw_item = new dump_path(loc) - break - if(!throw_item) - return 0 - - pre_throw(throw_item) - - throw_item.throw_at(target, 16, 3) - visible_message("[src] launches [throw_item] at [target]!") - return 1 - -/obj/machinery/vending/proc/pre_throw(obj/item/I) - return - - -/obj/machinery/vending/proc/shock(mob/user, prb) - if(stat & (BROKEN|NOPOWER)) // unpowered, no shock - return FALSE - if(!prob(prb)) - return FALSE - do_sparks(5, TRUE, src) - var/tmp/check_range = TRUE - if(electrocute_mob(user, get_area(src), src, 0.7, check_range)) - return TRUE - else - return FALSE - -/* - * Vending machine types - */ - -/* - -/obj/machinery/vending/[vendors name here] // --vending machine template :) - name = "" - desc = "" - icon = '' - icon_state = "" - products = list() - contraband = list() - premium = list() - -IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY CANISTER CHARGES in vending_items.dm -*/ - -/obj/machinery/vending/boozeomat - name = "\improper Booze-O-Mat" - desc = "A technological marvel, supposedly able to mix just the mixture you'd like to drink the moment you ask for one." - icon_state = "boozeomat" //////////////18 drink entities below, plus the glasses, in case someone wants to edit the number of bottles - icon_deny = "boozeomat-deny" - products = list(/obj/item/reagent_containers/food/drinks/bottle/gin = 5, /obj/item/reagent_containers/food/drinks/bottle/whiskey = 5, - /obj/item/reagent_containers/food/drinks/bottle/tequila = 5, /obj/item/reagent_containers/food/drinks/bottle/vodka = 5, - /obj/item/reagent_containers/food/drinks/bottle/vermouth = 5, /obj/item/reagent_containers/food/drinks/bottle/rum = 5, - /obj/item/reagent_containers/food/drinks/bottle/wine = 5, /obj/item/reagent_containers/food/drinks/bottle/cognac = 5, - /obj/item/reagent_containers/food/drinks/bottle/kahlua = 5, /obj/item/reagent_containers/food/drinks/bottle/hcider = 5, - /obj/item/reagent_containers/food/drinks/bottle/absinthe = 5, /obj/item/reagent_containers/food/drinks/bottle/grappa = 5, - /obj/item/reagent_containers/food/drinks/ale = 6, /obj/item/reagent_containers/food/drinks/bottle/orangejuice = 4, - /obj/item/reagent_containers/food/drinks/bottle/tomatojuice = 4, /obj/item/reagent_containers/food/drinks/bottle/limejuice = 4, - /obj/item/reagent_containers/food/drinks/bottle/cream = 4, /obj/item/reagent_containers/food/drinks/soda_cans/tonic = 8, - /obj/item/reagent_containers/food/drinks/soda_cans/cola = 8, /obj/item/reagent_containers/food/drinks/soda_cans/sodawater = 15, - /obj/item/reagent_containers/food/drinks/drinkingglass = 30, /obj/item/reagent_containers/food/drinks/ice = 10, - /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass = 12, /obj/item/reagent_containers/food/drinks/flask = 3, - /obj/item/reagent_containers/food/drinks/beer = 6, /obj/item/reagent_containers/food/drinks/bottle/sake = 5) //CIT CHANGE - Adds Sake to Booze-o-Mat. - contraband = list(/obj/item/reagent_containers/food/drinks/mug/tea = 12) - product_slogans = "I hope nobody asks me for a bloody cup o' tea...;Alcohol is humanity's friend. Would you abandon a friend?;Quite delighted to serve you!;Is nobody thirsty on this station?" - product_ads = "Drink up!;Booze is good for you!;Alcohol is humanity's best friend.;Quite delighted to serve you!;Care for a nice, cold beer?;Nothing cures you like booze!;Have a sip!;Have a drink!;Have a beer!;Beer is good for you!;Only the finest alcohol!;Best quality booze since 2053!;Award-winning wine!;Maximum alcohol!;Man loves beer.;A toast for progress!" - req_access_txt = "25" - refill_canister = /obj/item/vending_refill/boozeomat - -/obj/machinery/vending/assist - products = list( /obj/item/device/assembly/prox_sensor = 5, /obj/item/device/assembly/igniter = 3, /obj/item/device/assembly/signaler = 4, - /obj/item/wirecutters = 1, /obj/item/cartridge/signal = 4) - contraband = list(/obj/item/device/assembly/timer = 2, /obj/item/device/assembly/voice = 2, /obj/item/device/assembly/health = 2) - product_ads = "Only the finest!;Have some tools.;The most robust equipment.;The finest gear in space!" - armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) - resistance_flags = FIRE_PROOF - -/obj/machinery/vending/coffee - name = "\improper Solar's Best Hot Drinks" - desc = "A vending machine which dispenses hot drinks." - product_ads = "Have a drink!;Drink up!;It's good for you!;Would you like a hot joe?;I'd kill for some coffee!;The best beans in the galaxy.;Only the finest brew for you.;Mmmm. Nothing like a coffee.;I like coffee, don't you?;Coffee helps you work!;Try some tea.;We hope you like the best!;Try our new chocolate!;Admin conspiracies" - icon_state = "coffee" - icon_vend = "coffee-vend" - products = list(/obj/item/reagent_containers/food/drinks/coffee = 25, /obj/item/reagent_containers/food/drinks/mug/tea = 25, /obj/item/reagent_containers/food/drinks/mug/coco = 25) - contraband = list(/obj/item/reagent_containers/food/drinks/ice = 12) - refill_canister = /obj/item/vending_refill/coffee - -/obj/machinery/vending/snack - name = "\improper Getmore Chocolate Corp" - desc = "A snack machine courtesy of the Getmore Chocolate Corporation, based out of Mars." - product_slogans = "Try our new nougat bar!;Twice the calories for half the price!" - product_ads = "The healthiest!;Award-winning chocolate bars!;Mmm! So good!;Oh my god it's so juicy!;Have a snack.;Snacks are good for you!;Have some more Getmore!;Best quality snacks straight from mars.;We love chocolate!;Try our new jerky!" - icon_state = "snack" - products = list(/obj/item/reagent_containers/food/snacks/candy = 6, /obj/item/reagent_containers/food/drinks/dry_ramen = 6, /obj/item/reagent_containers/food/snacks/chips =6, - /obj/item/reagent_containers/food/snacks/sosjerky = 6, /obj/item/reagent_containers/food/snacks/no_raisin = 6, /obj/item/reagent_containers/food/snacks/spacetwinkie = 6, - /obj/item/reagent_containers/food/snacks/cheesiehonkers = 6) - contraband = list(/obj/item/reagent_containers/food/snacks/syndicake = 6) - refill_canister = /obj/item/vending_refill/snack - var/chef_compartment_access = "28" - -/obj/machinery/vending/snack/random - name = "\improper Random Snackies" - icon_state = "random_snack" - desc = "Uh oh!" - -/obj/machinery/vending/snack/random/Initialize() - ..() - var/T = pick(subtypesof(/obj/machinery/vending/snack) - /obj/machinery/vending/snack/random) - new T(loc) - return INITIALIZE_HINT_QDEL - -/obj/machinery/vending/snack/blue - icon_state = "snackblue" - -/obj/machinery/vending/snack/orange - icon_state = "snackorange" - -/obj/machinery/vending/snack/green - icon_state = "snackgreen" - -/obj/machinery/vending/snack/teal - icon_state = "snackteal" - -/obj/machinery/vending/sustenance - name = "\improper Sustenance Vendor" - desc = "A vending machine which vends food, as required by section 47-C of the NT's Prisoner Ethical Treatment Agreement." - product_slogans = "Enjoy your meal.;Enough calories to support strenuous labor." - product_ads = "Sufficiently healthy.;Efficiently produced tofu!;Mmm! So good!;Have a meal.;You need food to live!;Have some more candy corn!;Try our new ice cups!" - icon_state = "sustenance" - products = list(/obj/item/reagent_containers/food/snacks/tofu = 24, - /obj/item/reagent_containers/food/drinks/ice = 12, - /obj/item/reagent_containers/food/snacks/candy_corn = 6) - contraband = list(/obj/item/kitchen/knife = 6, - /obj/item/reagent_containers/food/drinks/coffee = 12, - /obj/item/tank/internals/emergency_oxygen = 6, - /obj/item/clothing/mask/breath = 6) - armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) - resistance_flags = FIRE_PROOF - -/obj/machinery/vending/cola - name = "\improper Robust Softdrinks" - desc = "A softdrink vendor provided by Robust Industries, LLC." - icon_state = "Cola_Machine" - product_slogans = "Robust Softdrinks: More robust than a toolbox to the head!" - product_ads = "Refreshing!;Hope you're thirsty!;Over 1 million drinks sold!;Thirsty? Why not cola?;Please, have a drink!;Drink up!;The best drinks in space." - products = list(/obj/item/reagent_containers/food/drinks/soda_cans/cola = 10, /obj/item/reagent_containers/food/drinks/soda_cans/space_mountain_wind = 10, - /obj/item/reagent_containers/food/drinks/soda_cans/dr_gibb = 10, /obj/item/reagent_containers/food/drinks/soda_cans/starkist = 10, - /obj/item/reagent_containers/food/drinks/soda_cans/space_up = 10, /obj/item/reagent_containers/food/drinks/soda_cans/pwr_game = 10, - /obj/item/reagent_containers/food/drinks/soda_cans/lemon_lime = 10, /obj/item/reagent_containers/glass/beaker/waterbottle = 10) - contraband = list(/obj/item/reagent_containers/food/drinks/soda_cans/thirteenloko = 6, /obj/item/reagent_containers/food/drinks/soda_cans/shamblers = 6) - premium = list(/obj/item/reagent_containers/food/drinks/drinkingglass/filled/nuka_cola = 1, /obj/item/reagent_containers/food/drinks/soda_cans/air = 1) - refill_canister = /obj/item/vending_refill/cola - -/obj/machinery/vending/cola/random - name = "\improper Random Drinkies" - icon_state = "random_cola" - desc = "Uh oh!" - -/obj/machinery/vending/cola/random/Initialize() - ..() - var/T = pick(subtypesof(/obj/machinery/vending/cola) - /obj/machinery/vending/cola/random) - new T(loc) - return INITIALIZE_HINT_QDEL - -/obj/machinery/vending/cola/blue - icon_state = "Cola_Machine" - -/obj/machinery/vending/cola/black - icon_state = "cola_black" - -/obj/machinery/vending/cola/red - icon_state = "red_cola" - name = "\improper Space Cola Vendor" - desc = "It vends cola, in space." - product_slogans = "Cola in space!" - -/obj/machinery/vending/cola/space_up - icon_state = "space_up" - name = "\improper Space-up! Vendor" - desc = "Indulge in an explosion of flavor." - product_slogans = "Space-up! Like a hull breach in your mouth." - -/obj/machinery/vending/cola/starkist - icon_state = "starkist" - name = "\improper Star-kist Vendor" - desc = "The taste of a star in liquid form." - product_slogans = "Drink the stars! Star-kist!" - -/obj/machinery/vending/cola/sodie - icon_state = "soda" - -/obj/machinery/vending/cola/pwr_game - icon_state = "pwr_game" - name = "\improper Pwr Game Vendor" - desc = "You want it, we got it. Brought to you in partnership with Vlad's Salads." - product_slogans = "The POWER that gamers crave! PWR GAME!" - -/obj/machinery/vending/cola/shamblers - name = "\improper Shambler's Vendor" - desc = "~Shake me up some of that Shambler's Juice!~" - icon_state = "shamblers_juice" - products = list(/obj/item/reagent_containers/food/drinks/soda_cans/cola = 10, /obj/item/reagent_containers/food/drinks/soda_cans/space_mountain_wind = 10, - /obj/item/reagent_containers/food/drinks/soda_cans/dr_gibb = 10, /obj/item/reagent_containers/food/drinks/soda_cans/starkist = 10, - /obj/item/reagent_containers/food/drinks/soda_cans/space_up = 10, /obj/item/reagent_containers/food/drinks/soda_cans/pwr_game = 10, - /obj/item/reagent_containers/food/drinks/soda_cans/lemon_lime = 10, /obj/item/reagent_containers/food/drinks/soda_cans/shamblers = 10) - product_slogans = "~Shake me up some of that Shambler's Juice!~" - product_ads = "Refreshing!;Jyrbv dv lg jfdv fw kyrk Jyrdscvi'j Alztv!;Over 1 trillion souls drank!;Thirsty? Nyp efk uizeb kyv uribevjj?;Kyv Jyrdscvi uizebj kyv ezxyk!;Drink up!;Krjkp." - - -//This one's from bay12 -/obj/machinery/vending/cart - name = "\improper PTech" - desc = "Cartridges for PDAs." - product_slogans = "Carts to go!" - icon_state = "cart" - icon_deny = "cart-deny" - products = list(/obj/item/cartridge/medical = 10, /obj/item/cartridge/engineering = 10, /obj/item/cartridge/security = 10, - /obj/item/cartridge/janitor = 10, /obj/item/cartridge/signal/toxins = 10, /obj/item/device/pda/heads = 10, - /obj/item/cartridge/captain = 3, /obj/item/cartridge/quartermaster = 10) - armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) - resistance_flags = FIRE_PROOF - -/obj/machinery/vending/liberationstation - name = "\improper Liberation Station" - desc = "An overwhelming amount of ancient patriotism washes over you just by looking at the machine." - icon_state = "liberationstation" - req_access_txt = "1" - product_slogans = "Liberation Station: Your one-stop shop for all things second ammendment!;Be a patriot today, pick up a gun!;Quality weapons for cheap prices!;Better dead than red!" - product_ads = "Float like an astronaut, sting like a bullet!;Express your second ammendment today!;Guns don't kill people, but you can!;Who needs responsibilities when you have guns?" - vend_reply = "Remember the name: Liberation Station!" - products = list(/obj/item/gun/ballistic/automatic/pistol/deagle/gold = 2, /obj/item/gun/ballistic/automatic/pistol/deagle/camo = 2, - /obj/item/gun/ballistic/automatic/pistol/m1911 = 2, /obj/item/gun/ballistic/automatic/proto/unrestricted = 2, - /obj/item/gun/ballistic/shotgun/automatic/combat = 2, /obj/item/gun/ballistic/automatic/gyropistol = 1, - /obj/item/gun/ballistic/shotgun = 2, /obj/item/gun/ballistic/automatic/ar = 2) - premium = list(/obj/item/ammo_box/magazine/smgm9mm = 2, /obj/item/ammo_box/magazine/m50 = 4, /obj/item/ammo_box/magazine/m45 = 2, /obj/item/ammo_box/magazine/m75 = 2) - contraband = list(/obj/item/clothing/under/patriotsuit = 1, /obj/item/bedsheet/patriot = 3) - armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) - resistance_flags = FIRE_PROOF - -/obj/machinery/vending/cigarette - name = "\improper ShadyCigs Deluxe" - desc = "If you want to get cancer, might as well do it in style." - product_slogans = "Space cigs taste good like a cigarette should.;I'd rather toolbox than switch.;Smoke!;Don't believe the reports - smoke today!" - product_ads = "Probably not bad for you!;Don't believe the scientists!;It's good for you!;Don't quit, buy more!;Smoke!;Nicotine heaven.;Best cigarettes since 2150.;Award-winning cigs." - icon_state = "cigs" - products = list(/obj/item/storage/fancy/cigarettes = 5, - /obj/item/storage/fancy/cigarettes/cigpack_uplift = 3, - /obj/item/storage/fancy/cigarettes/cigpack_robust = 3, - /obj/item/storage/fancy/cigarettes/cigpack_carp = 3, - /obj/item/storage/fancy/cigarettes/cigpack_midori = 3, - /obj/item/storage/box/matches = 10, - /obj/item/lighter/greyscale = 4, - /obj/item/storage/fancy/rollingpapers = 5) - contraband = list(/obj/item/lighter = 3, /obj/item/clothing/mask/vape = 5) - premium = list(/obj/item/storage/fancy/cigarettes/cigpack_robustgold = 3, \ - /obj/item/storage/fancy/cigarettes/cigars = 1, /obj/item/storage/fancy/cigarettes/cigars/havana = 1, /obj/item/storage/fancy/cigarettes/cigars/cohiba = 1) - refill_canister = /obj/item/vending_refill/cigarette - -/obj/machinery/vending/cigarette/pre_throw(obj/item/I) - if(istype(I, /obj/item/lighter)) - var/obj/item/lighter/L = I - L.set_lit(TRUE) - -/obj/machinery/vending/medical - name = "\improper NanoMed Plus" - desc = "Medical drug dispenser." - icon_state = "med" - icon_deny = "med-deny" - product_ads = "Go save some lives!;The best stuff for your medbay.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?;Ping!" - req_access_txt = "5" - /* - products = list(/obj/item/reagent_containers/syringe = 12, - /obj/item/reagent_containers/dropper = 3, - /obj/item/device/healthanalyzer = 4, - /obj/item/device/sensor_device = 2, - /obj/item/pinpointer/crew = 2, - /obj/item/reagent_containers/medspray/sterilizine = 1, - /obj/item/stack/medical/gauze = 8, - /obj/item/reagent_containers/pill/patch/styptic = 5, - /obj/item/reagent_containers/medspray/styptic = 2, - /obj/item/reagent_containers/pill/patch/silver_sulf = 5, - /obj/item/reagent_containers/medspray/silver_sulf = 2, - /obj/item/reagent_containers/pill/insulin = 10, - /obj/item/reagent_containers/pill/salbutamol = 2, - /obj/item/reagent_containers/glass/bottle/charcoal = 4, - /obj/item/reagent_containers/glass/bottle/epinephrine = 4, - /obj/item/reagent_containers/glass/bottle/salglu_solution = 3, - /obj/item/reagent_containers/glass/bottle/morphine = 4, - /obj/item/reagent_containers/glass/bottle/toxin = 3, - /obj/item/reagent_containers/syringe/antiviral = 6) - */ //products list in modular_citadel's version of this file - contraband = list(/obj/item/reagent_containers/pill/tox = 3, /obj/item/reagent_containers/pill/morphine = 4, /obj/item/reagent_containers/pill/charcoal = 6) - premium = list(/obj/item/storage/box/hug/medical = 1, /obj/item/reagent_containers/hypospray/medipen = 3, /obj/item/storage/belt/medical = 3, /obj/item/wrench/medical = 1) - armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) - resistance_flags = FIRE_PROOF - refill_canister = /obj/item/vending_refill/medical - -//This one's from bay12 -/obj/machinery/vending/plasmaresearch - name = "\improper Toximate 3000" - desc = "All the fine parts you need in one vending machine!" - products = list(/obj/item/clothing/under/rank/scientist = 6, /obj/item/clothing/suit/bio_suit = 6, /obj/item/clothing/head/bio_hood = 6, - /obj/item/device/transfer_valve = 6, /obj/item/device/assembly/timer = 6, /obj/item/device/assembly/signaler = 6, - /obj/item/device/assembly/prox_sensor = 6, /obj/item/device/assembly/igniter = 6) - contraband = list(/obj/item/device/assembly/health = 3) - -/obj/machinery/vending/wallmed - name = "\improper NanoMed" - desc = "Wall-mounted Medical Equipment dispenser." - icon_state = "wallmed" - icon_deny = "wallmed-deny" - density = FALSE - products = list(/obj/item/reagent_containers/syringe = 3, /obj/item/reagent_containers/pill/patch/styptic = 5, - /obj/item/reagent_containers/pill/patch/silver_sulf = 5, /obj/item/reagent_containers/medspray/styptic = 2, /obj/item/reagent_containers/medspray/silver_sulf = 2, - /obj/item/reagent_containers/pill/charcoal = 2, /obj/item/reagent_containers/medspray/sterilizine = 1) - contraband = list(/obj/item/reagent_containers/pill/tox = 2, /obj/item/reagent_containers/pill/morphine = 2) - armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) - resistance_flags = FIRE_PROOF - refill_canister = /obj/item/vending_refill/medical - refill_count = 1 - -/obj/machinery/vending/security - name = "\improper SecTech" - desc = "A security equipment vendor." - product_ads = "Crack capitalist skulls!;Beat some heads in!;Don't forget - harm is good!;Your weapons are right here.;Handcuffs!;Freeze, scumbag!;Don't tase me bro!;Tase them, bro.;Why not have a donut?" - icon_state = "sec" - icon_deny = "sec-deny" - req_access_txt = "1" - products = list(/obj/item/restraints/handcuffs = 8, /obj/item/restraints/handcuffs/cable/zipties = 10, /obj/item/grenade/flashbang = 4, /obj/item/device/assembly/flash/handheld = 5, - /obj/item/reagent_containers/food/snacks/donut = 12, /obj/item/storage/box/evidence = 6, /obj/item/device/flashlight/seclite = 4, /obj/item/restraints/legcuffs/bola/energy = 7) - contraband = list(/obj/item/clothing/glasses/sunglasses = 2, /obj/item/storage/fancy/donut_box = 2) - premium = list(/obj/item/coin/antagtoken = 1) - armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) - resistance_flags = FIRE_PROOF - -/obj/machinery/vending/security/pre_throw(obj/item/I) - if(istype(I, /obj/item/grenade)) - var/obj/item/grenade/G = I - G.preprime() - else if(istype(I, /obj/item/device/flashlight)) - var/obj/item/device/flashlight/F = I - F.on = TRUE - F.update_brightness() - -/obj/machinery/vending/hydronutrients - name = "\improper NutriMax" - desc = "A plant nutrients vendor." - product_slogans = "Aren't you glad you don't have to fertilize the natural way?;Now with 50% less stink!;Plants are people too!" - product_ads = "We like plants!;Don't you want some?;The greenest thumbs ever.;We like big plants.;Soft soil..." - icon_state = "nutri" - icon_deny = "nutri-deny" - products = list(/obj/item/reagent_containers/glass/bottle/nutrient/ez = 30, /obj/item/reagent_containers/glass/bottle/nutrient/l4z = 20, /obj/item/reagent_containers/glass/bottle/nutrient/rh = 10, /obj/item/reagent_containers/spray/pestspray = 20, - /obj/item/reagent_containers/syringe = 5, /obj/item/storage/bag/plants = 5, /obj/item/cultivator = 3, /obj/item/shovel/spade = 3, /obj/item/device/plant_analyzer = 4) - contraband = list(/obj/item/reagent_containers/glass/bottle/ammonia = 10, /obj/item/reagent_containers/glass/bottle/diethylamine = 5) - armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) - resistance_flags = FIRE_PROOF - -/obj/machinery/vending/hydroseeds - name = "\improper MegaSeed Servitor" - desc = "When you need seeds fast!" - product_slogans = "THIS'S WHERE TH' SEEDS LIVE! GIT YOU SOME!;Hands down the best seed selection on the station!;Also certain mushroom varieties available, more for experts! Get certified today!" - product_ads = "We like plants!;Grow some crops!;Grow, baby, growww!;Aw h'yeah son!" - icon_state = "seeds" - products = list(/obj/item/seeds/ambrosia = 3, /obj/item/seeds/apple = 3, /obj/item/seeds/banana = 3, /obj/item/seeds/berry = 3, - /obj/item/seeds/cabbage = 3, /obj/item/seeds/carrot = 3, /obj/item/seeds/cherry = 3, /obj/item/seeds/chanter = 3, - /obj/item/seeds/chili = 3, /obj/item/seeds/cocoapod = 3, /obj/item/seeds/coffee = 3, /obj/item/seeds/corn = 3, - /obj/item/seeds/eggplant = 3, /obj/item/seeds/grape = 3, /obj/item/seeds/grass = 3, /obj/item/seeds/lemon = 3, - /obj/item/seeds/lime = 3, /obj/item/seeds/onion = 3, /obj/item/seeds/orange = 3, /obj/item/seeds/pineapple = 3, /obj/item/seeds/potato = 3, - /obj/item/seeds/poppy = 3,/obj/item/seeds/pumpkin = 3, /obj/item/seeds/replicapod = 3, /obj/item/seeds/wheat/rice = 3, /obj/item/seeds/soya = 3, - /obj/item/seeds/sunflower = 3, /obj/item/seeds/tea = 3, /obj/item/seeds/tobacco = 3, /obj/item/seeds/tomato = 3, - /obj/item/seeds/tower = 3, /obj/item/seeds/watermelon = 3, /obj/item/seeds/wheat = 3, /obj/item/seeds/whitebeet = 3) - contraband = list(/obj/item/seeds/amanita = 2, /obj/item/seeds/glowshroom = 2, /obj/item/seeds/liberty = 2, /obj/item/seeds/nettle = 2, - /obj/item/seeds/plump = 2, /obj/item/seeds/reishi = 2, /obj/item/seeds/cannabis = 3, /obj/item/seeds/starthistle = 2, - /obj/item/seeds/random = 2) - premium = list(/obj/item/reagent_containers/spray/waterflower = 1) - armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) - resistance_flags = FIRE_PROOF - -/obj/machinery/vending/magivend - name = "\improper MagiVend" - desc = "A magic vending machine." - icon_state = "MagiVend" - product_slogans = "Sling spells the proper way with MagiVend!;Be your own Houdini! Use MagiVend!" - vend_reply = "Have an enchanted evening!" - product_ads = "FJKLFJSD;AJKFLBJAKL;1234 LOONIES LOL!;>MFW;Kill them fuckers!;GET DAT FUKKEN DISK;HONK!;EI NATH;Destroy the station!;Admin conspiracies since forever!;Space-time bending hardware!" - products = list(/obj/item/clothing/head/wizard = 1, /obj/item/clothing/suit/wizrobe = 1, /obj/item/clothing/head/wizard/red = 1, /obj/item/clothing/suit/wizrobe/red = 1, /obj/item/clothing/head/wizard/yellow = 1, /obj/item/clothing/suit/wizrobe/yellow = 1, /obj/item/clothing/shoes/sandal/magic = 1, /obj/item/staff = 2) - contraband = list(/obj/item/reagent_containers/glass/bottle/wizarditis = 1) //No one can get to the machine to hack it anyways; for the lulz - Microwave - armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) - resistance_flags = FIRE_PROOF - -/obj/machinery/vending/autodrobe - name = "\improper AutoDrobe" - desc = "A vending machine for costumes." - icon_state = "theater" - icon_deny = "theater-deny" - req_access_txt = "46" //Theatre access needed, unless hacked. - product_slogans = "Dress for success!;Suited and booted!;It's show time!;Why leave style up to fate? Use AutoDrobe!" - vend_reply = "Thank you for using AutoDrobe!" - products = list(/obj/item/clothing/suit/chickensuit = 1, /obj/item/clothing/head/chicken = 1, /obj/item/clothing/under/gladiator = 1, - /obj/item/clothing/head/helmet/gladiator = 1, /obj/item/clothing/under/gimmick/rank/captain/suit = 1, /obj/item/clothing/head/flatcap = 1, - /obj/item/clothing/suit/toggle/labcoat/mad = 1, /obj/item/clothing/shoes/jackboots = 1, - /obj/item/clothing/under/schoolgirl = 1, /obj/item/clothing/under/schoolgirl/red = 1, /obj/item/clothing/under/schoolgirl/green = 1, /obj/item/clothing/under/schoolgirl/orange = 1, /obj/item/clothing/head/kitty = 1, /obj/item/clothing/under/skirt/black = 1, /obj/item/clothing/head/beret = 1, - /obj/item/clothing/accessory/waistcoat = 1, /obj/item/clothing/under/suit_jacket = 1, /obj/item/clothing/head/that =1, /obj/item/clothing/under/kilt = 1, /obj/item/clothing/head/beret = 1, /obj/item/clothing/accessory/waistcoat = 1, - /obj/item/clothing/glasses/monocle =1, /obj/item/clothing/head/bowler = 1, /obj/item/cane = 1, /obj/item/clothing/under/sl_suit = 1, - /obj/item/clothing/mask/fakemoustache = 1, /obj/item/clothing/suit/bio_suit/plaguedoctorsuit = 1, /obj/item/clothing/head/plaguedoctorhat = 1, /obj/item/clothing/mask/gas/plaguedoctor = 1, - /obj/item/clothing/suit/toggle/owlwings = 1, /obj/item/clothing/under/owl = 1, /obj/item/clothing/mask/gas/owl_mask = 1, - /obj/item/clothing/suit/toggle/owlwings/griffinwings = 1, /obj/item/clothing/under/griffin = 1, /obj/item/clothing/shoes/griffin = 1, /obj/item/clothing/head/griffin = 1, - /obj/item/clothing/suit/apron = 1, /obj/item/clothing/under/waiter = 1, /obj/item/clothing/suit/jacket/miljacket = 1, - /obj/item/clothing/under/pirate = 1, /obj/item/clothing/suit/pirate = 1, /obj/item/clothing/head/pirate = 1, /obj/item/clothing/head/bandana = 1, - /obj/item/clothing/head/bandana = 1, /obj/item/clothing/under/soviet = 1, /obj/item/clothing/head/ushanka = 1, /obj/item/clothing/suit/imperium_monk = 1, - /obj/item/clothing/mask/gas/cyborg = 1, /obj/item/clothing/suit/holidaypriest = 1, /obj/item/clothing/head/wizard/marisa/fake = 1, - /obj/item/clothing/suit/wizrobe/marisa/fake = 1, /obj/item/clothing/under/sundress = 1, /obj/item/clothing/head/witchwig = 1, /obj/item/staff/broom = 1, - /obj/item/clothing/suit/wizrobe/fake = 1, /obj/item/clothing/head/wizard/fake = 1, /obj/item/staff = 3, /obj/item/clothing/mask/gas/sexyclown = 1, - /obj/item/clothing/under/rank/clown/sexy = 1, /obj/item/clothing/mask/gas/sexymime = 1, /obj/item/clothing/under/sexymime = 1, /obj/item/clothing/mask/rat/bat = 1, /obj/item/clothing/mask/rat/bee = 1, /obj/item/clothing/mask/rat/bear = 1, /obj/item/clothing/mask/rat/raven = 1, /obj/item/clothing/mask/rat/jackal = 1, /obj/item/clothing/mask/rat/fox = 1, /obj/item/clothing/mask/frog = 1, /obj/item/clothing/mask/rat/tribal = 1, /obj/item/clothing/mask/rat = 1, - /obj/item/clothing/suit/apron/overalls = 1, /obj/item/clothing/head/rabbitears =1, /obj/item/clothing/head/sombrero = 1, /obj/item/clothing/head/sombrero/green = 1, /obj/item/clothing/suit/poncho = 1, - /obj/item/clothing/suit/poncho/green = 1, /obj/item/clothing/suit/poncho/red = 1, - /obj/item/clothing/under/maid = 1, /obj/item/clothing/under/janimaid = 1, /obj/item/clothing/glasses/cold=1, /obj/item/clothing/glasses/heat=1, - /obj/item/clothing/suit/whitedress = 1, - /obj/item/clothing/under/jester = 1, /obj/item/clothing/head/jester = 1, - /obj/item/clothing/under/villain = 1, - /obj/item/clothing/shoes/singery = 1, /obj/item/clothing/under/singery = 1, - /obj/item/clothing/shoes/singerb = 1, /obj/item/clothing/under/singerb = 1, - /obj/item/clothing/suit/hooded/carp_costume = 1, - /obj/item/clothing/suit/hooded/ian_costume = 1, - /obj/item/clothing/suit/hooded/bee_costume = 1, - /obj/item/clothing/suit/snowman = 1, - /obj/item/clothing/head/snowman = 1, - /obj/item/clothing/mask/joy = 1, - /obj/item/clothing/head/cueball = 1, - /obj/item/clothing/under/scratch = 1, - /obj/item/clothing/under/sailor = 1, - /obj/item/clothing/ears/headphones = 2, - /obj/item/clothing/head/wig/random = 3) - contraband = list(/obj/item/clothing/suit/judgerobe = 1, /obj/item/clothing/head/powdered_wig = 1, /obj/item/gun/magic/wand = 2, /obj/item/clothing/glasses/sunglasses/garb = 2, /obj/item/clothing/glasses/sunglasses/blindfold = 1, /obj/item/clothing/mask/muzzle = 2) - premium = list(/obj/item/clothing/suit/pirate/captain = 2, /obj/item/clothing/head/pirate/captain = 2, /obj/item/clothing/head/helmet/roman = 1, /obj/item/clothing/head/helmet/roman/legionaire = 1, /obj/item/clothing/under/roman = 1, /obj/item/clothing/shoes/roman = 1, /obj/item/shield/riot/roman = 1, /obj/item/skub = 1) - refill_canister = /obj/item/vending_refill/autodrobe - -/obj/machinery/vending/dinnerware - name = "\improper Plasteel Chef's Dinnerware Vendor" - desc = "A kitchen and restaurant equipment vendor." - product_ads = "Mm, food stuffs!;Food and food accessories.;Get your plates!;You like forks?;I like forks.;Woo, utensils.;You don't really need these..." - icon_state = "dinnerware" - products = list(/obj/item/storage/bag/tray = 8, /obj/item/kitchen/fork = 6, /obj/item/kitchen/knife = 6, /obj/item/kitchen/rollingpin = 2, /obj/item/reagent_containers/food/drinks/drinkingglass = 8, /obj/item/clothing/suit/apron/chef = 2, /obj/item/reagent_containers/food/condiment/pack/ketchup = 5, /obj/item/reagent_containers/food/condiment/pack/hotsauce = 5, /obj/item/reagent_containers/food/condiment/saltshaker = 5, /obj/item/reagent_containers/food/condiment/peppermill = 5, /obj/item/reagent_containers/glass/bowl = 20) - contraband = list(/obj/item/kitchen/rollingpin = 2, /obj/item/kitchen/knife/butcher = 2) - armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) - resistance_flags = FIRE_PROOF - -/obj/machinery/vending/sovietsoda - name = "\improper BODA" - desc = "Old sweet water vending machine." - icon_state = "sovietsoda" - product_ads = "For Tsar and Country.;Have you fulfilled your nutrition quota today?;Very nice!;We are simple people, for this is all we eat.;If there is a person, there is a problem. If there is no person, then there is no problem." - products = list(/obj/item/reagent_containers/food/drinks/drinkingglass/filled/soda = 30) - contraband = list(/obj/item/reagent_containers/food/drinks/drinkingglass/filled/cola = 20) - armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) - resistance_flags = FIRE_PROOF - -/obj/machinery/vending/tool - name = "\improper YouTool" - desc = "Tools for tools." - icon_state = "tool" - icon_deny = "tool-deny" - //req_access_txt = "12" //Maintenance access - products = list( - /obj/item/stack/cable_coil/random = 10, - /obj/item/crowbar = 5, - /obj/item/weldingtool = 3, - /obj/item/wirecutters = 5, - /obj/item/wrench = 5, - /obj/item/device/analyzer = 5, - /obj/item/device/t_scanner = 5, - /obj/item/screwdriver = 5, - /obj/item/device/flashlight/glowstick = 3, - /obj/item/device/flashlight/glowstick/red = 3, - /obj/item/device/flashlight = 5) - contraband = list( - /obj/item/weldingtool/hugetank = 2, - /obj/item/clothing/gloves/color/fyellow = 2) - premium = list( - /obj/item/clothing/gloves/color/yellow = 1) - armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 70) - resistance_flags = FIRE_PROOF - -/obj/machinery/vending/engivend - name = "\improper Engi-Vend" - desc = "Spare tool vending. What? Did you expect some witty description?" - icon_state = "engivend" - icon_deny = "engivend-deny" - req_access_txt = "11" //Engineering Equipment access - products = list(/obj/item/clothing/glasses/meson/engine = 2, - /obj/item/clothing/glasses/welding = 3, - /obj/item/device/multitool = 4, - /obj/item/construction/rcd/loaded = 3, - /obj/item/grenade/chem_grenade/smart_metal_foam = 10, - /obj/item/device/geiger_counter = 5, - /obj/item/stock_parts/cell/high = 10, - /obj/item/electronics/airlock = 10, - /obj/item/electronics/apc = 10, - /obj/item/electronics/airalarm = 10) - contraband = list(/obj/item/stock_parts/cell/potato = 3) - premium = list(/obj/item/storage/belt/utility = 3, /obj/item/storage/box/smart_metal_foam = 1) - armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) - resistance_flags = FIRE_PROOF - -//This one's from bay12 -/obj/machinery/vending/engineering - name = "\improper Robco Tool Maker" - desc = "Everything you need for do-it-yourself station repair." - icon_state = "engi" - icon_deny = "engi-deny" - req_access_txt = "11" - products = list(/obj/item/clothing/under/rank/chief_engineer = 4, /obj/item/clothing/under/rank/engineer = 4, /obj/item/clothing/shoes/sneakers/orange = 4, /obj/item/clothing/head/hardhat = 4, - /obj/item/storage/belt/utility = 4, /obj/item/clothing/glasses/meson/engine = 4, /obj/item/clothing/gloves/color/yellow = 4, /obj/item/screwdriver = 12, - /obj/item/crowbar = 12, /obj/item/wirecutters = 12, /obj/item/device/multitool = 12, /obj/item/wrench = 12, /obj/item/device/t_scanner = 12, - /obj/item/stock_parts/cell = 8, /obj/item/weldingtool = 8, /obj/item/clothing/head/welding = 8, - /obj/item/light/tube = 10, /obj/item/clothing/suit/fire = 4, /obj/item/stock_parts/scanning_module = 5, /obj/item/stock_parts/micro_laser = 5, - /obj/item/stock_parts/matter_bin = 5, /obj/item/stock_parts/manipulator = 5) - armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) - resistance_flags = FIRE_PROOF - -//This one's from bay12 -/obj/machinery/vending/robotics - name = "\improper Robotech Deluxe" - desc = "All the tools you need to create your own robot army." - icon_state = "robotics" - icon_deny = "robotics-deny" - req_access_txt = "29" - products = list(/obj/item/clothing/suit/toggle/labcoat = 4, /obj/item/clothing/under/rank/roboticist = 4, /obj/item/stack/cable_coil = 4, /obj/item/device/assembly/flash/handheld = 4, - /obj/item/stock_parts/cell/high = 12, /obj/item/device/assembly/prox_sensor = 3, /obj/item/device/assembly/signaler = 3, /obj/item/device/healthanalyzer = 3, - /obj/item/scalpel = 2, /obj/item/circular_saw = 2, /obj/item/tank/internals/anesthetic = 2, /obj/item/clothing/mask/breath/medical = 5, - /obj/item/screwdriver = 5, /obj/item/crowbar = 5) - armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) - resistance_flags = FIRE_PROOF - -//DON'T FORGET TO CHANGE THE REFILL SIZE IF YOU CHANGE THE MACHINE'S CONTENTS! -/obj/machinery/vending/clothing - name = "ClothesMate" //renamed to make the slogan rhyme - desc = "A vending machine for clothing." - icon_state = "clothes" - product_slogans = "Dress for success!;Prepare to look swagalicious!;Look at all this free swag!;Why leave style up to fate? Use the ClothesMate!" - vend_reply = "Thank you for using the ClothesMate!" - products = list(/obj/item/clothing/head/that=2, /obj/item/clothing/head/fedora=1, /obj/item/clothing/glasses/monocle=1, - /obj/item/clothing/suit/jacket=2, /obj/item/clothing/suit/jacket/puffer/vest=2, /obj/item/clothing/suit/jacket/puffer=2, - /obj/item/clothing/under/suit_jacket/navy=1, /obj/item/clothing/under/suit_jacket/really_black=1, /obj/item/clothing/under/suit_jacket/burgundy=1, - /obj/item/clothing/under/suit_jacket/charcoal=1, /obj/item/clothing/under/suit_jacket/white=1, /obj/item/clothing/under/kilt=1, /obj/item/clothing/under/overalls=1, - /obj/item/clothing/under/sl_suit=1, /obj/item/clothing/under/pants/jeans=3, /obj/item/clothing/under/pants/classicjeans=2, - /obj/item/clothing/under/pants/camo = 1, /obj/item/clothing/under/pants/blackjeans=2, /obj/item/clothing/under/pants/khaki=2, - /obj/item/clothing/under/pants/white=2, /obj/item/clothing/under/pants/red=1, /obj/item/clothing/under/pants/black=2, - /obj/item/clothing/under/pants/tan=2, /obj/item/clothing/under/pants/track=1, /obj/item/clothing/suit/jacket/miljacket = 1, - /obj/item/clothing/neck/tie/blue=1, /obj/item/clothing/neck/tie/red=1, /obj/item/clothing/neck/tie/black=1, /obj/item/clothing/neck/tie/horrible=1, - /obj/item/clothing/neck/scarf/red=1, /obj/item/clothing/neck/scarf/green=1, /obj/item/clothing/neck/scarf/darkblue=1, - /obj/item/clothing/neck/scarf/purple=1, /obj/item/clothing/neck/scarf/yellow=1, /obj/item/clothing/neck/scarf/orange=1, - /obj/item/clothing/neck/scarf/cyan=1, /obj/item/clothing/neck/scarf=1, /obj/item/clothing/neck/scarf/black=1, - /obj/item/clothing/neck/scarf/zebra=1, /obj/item/clothing/neck/scarf/christmas=1, /obj/item/clothing/neck/stripedredscarf=1, - /obj/item/clothing/neck/stripedbluescarf=1, /obj/item/clothing/neck/stripedgreenscarf=1, /obj/item/clothing/accessory/waistcoat=1, - /obj/item/clothing/under/skirt/black=1, /obj/item/clothing/under/skirt/blue=1, /obj/item/clothing/under/skirt/red=1, /obj/item/clothing/under/skirt/purple=1, - /obj/item/clothing/under/sundress=2, /obj/item/clothing/under/stripeddress=1, /obj/item/clothing/under/sailordress=1, /obj/item/clothing/under/redeveninggown=1, /obj/item/clothing/under/blacktango=1, - /obj/item/clothing/under/plaid_skirt=1, /obj/item/clothing/under/plaid_skirt/blue=1, /obj/item/clothing/under/plaid_skirt/purple=1, /obj/item/clothing/under/plaid_skirt/green=1, - /obj/item/clothing/glasses/regular=1, /obj/item/clothing/glasses/regular/jamjar=1, /obj/item/clothing/head/sombrero=1, /obj/item/clothing/suit/poncho=1, - /obj/item/clothing/suit/ianshirt=1, /obj/item/clothing/shoes/laceup=2, /obj/item/clothing/shoes/sneakers/black=4, - /obj/item/clothing/shoes/sandal=1, /obj/item/clothing/gloves/fingerless=2, /obj/item/clothing/glasses/orange=1, /obj/item/clothing/glasses/red=1, - /obj/item/storage/belt/fannypack=1, /obj/item/storage/belt/fannypack/blue=1, /obj/item/storage/belt/fannypack/red=1, /obj/item/clothing/suit/jacket/letterman=2, - /obj/item/clothing/head/beanie=1, /obj/item/clothing/head/beanie/black=1, /obj/item/clothing/head/beanie/red=1, /obj/item/clothing/head/beanie/green=1, /obj/item/clothing/head/beanie/darkblue=1, - /obj/item/clothing/head/beanie/purple=1, /obj/item/clothing/head/beanie/yellow=1, /obj/item/clothing/head/beanie/orange=1, /obj/item/clothing/head/beanie/cyan=1, /obj/item/clothing/head/beanie/christmas=1, - /obj/item/clothing/head/beanie/striped=1, /obj/item/clothing/head/beanie/stripedred=1, /obj/item/clothing/head/beanie/stripedblue=1, /obj/item/clothing/head/beanie/stripedgreen=1, - /obj/item/clothing/suit/jacket/letterman_red=1, - /obj/item/clothing/ears/headphones = 10, /obj/item/clothing/suit/apron/purple_bartender=2, /obj/item/clothing/under/rank/bartender/purple=2) - contraband = list(/obj/item/clothing/under/syndicate/tacticool=1, /obj/item/clothing/mask/balaclava=1, /obj/item/clothing/head/ushanka=1, /obj/item/clothing/under/soviet=1, /obj/item/storage/belt/fannypack/black=2, /obj/item/clothing/suit/jacket/letterman_syndie=1, /obj/item/clothing/under/jabroni=1, /obj/item/clothing/suit/vapeshirt=1, /obj/item/clothing/under/geisha=1) - premium = list(/obj/item/clothing/under/suit_jacket/checkered=1, /obj/item/clothing/head/mailman=1, /obj/item/clothing/under/rank/mailman=1, /obj/item/clothing/suit/jacket/leather=1, /obj/item/clothing/suit/jacket/leather/overcoat=1, /obj/item/clothing/under/pants/mustangjeans=1, /obj/item/clothing/neck/necklace/dope=3, /obj/item/clothing/suit/jacket/letterman_nanotrasen=1) - refill_canister = /obj/item/vending_refill/clothing - -/obj/machinery/vending/toyliberationstation - name = "\improper Syndicate Donksoft Toy Vendor" - desc = "An ages 8 and up approved vendor that dispenses toys. If you were to find the right wires, you can unlock the adult mode setting!" - icon_state = "syndi" - req_access_txt = "1" - product_slogans = "Get your cool toys today!;Trigger a valid hunter today!;Quality toy weapons for cheap prices!;Give them to HoPs for all access!;Give them to HoS to get perma briged!" - product_ads = "Feel robust with your toys!;Express your inner child today!;Toy weapons don't kill people, but valid hunters do!;Who needs responsibilities when you have toy weapons?;Make your next murder FUN!" - vend_reply = "Come back for more!" - products = list(/obj/item/gun/ballistic/automatic/toy/unrestricted = 10, - /obj/item/gun/ballistic/automatic/toy/pistol/unrestricted = 10, - /obj/item/gun/ballistic/shotgun/toy/unrestricted = 10, - /obj/item/toy/sword = 10, - /obj/item/ammo_box/foambox = 20, - /obj/item/toy/foamblade = 10, - /obj/item/toy/syndicateballoon = 10, - /obj/item/clothing/suit/syndicatefake = 5, - /obj/item/clothing/head/syndicatefake = 5) //OPS IN DORMS oh wait it's just an assistant - contraband = list(/obj/item/gun/ballistic/shotgun/toy/crossbow = 10, //Congrats, you unlocked the +18 setting! - /obj/item/gun/ballistic/automatic/c20r/toy/unrestricted/riot = 10, - /obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted/riot = 10, - /obj/item/ammo_box/foambox/riot = 20, - /obj/item/toy/katana = 10, - /obj/item/twohanded/dualsaber/toy = 5, - /obj/item/toy/cards/deck/syndicate = 10) //Gambling and it hurts, making it a +18 item - armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) - resistance_flags = FIRE_PROOF - refill_canister = /obj/item/vending_refill/donksoft - -/obj/machinery/vending/donksofttoyvendor - name = "\improper Donksoft Toy Vendor" - desc = "Ages 8 and up approved vendor that dispenses toys." - icon_state = "syndi" - product_slogans = "Get your cool toys today!;Trigger a valid hunter today!;Quality toy weapons for cheap prices!;Give them to HoPs for all access!;Give them to HoS to get perma briged!" - product_ads = "Feel robust with your toys!;Express your inner child today!;Toy weapons don't kill people, but valid hunters do!;Who needs responsibilities when you have toy weapons?;Make your next murder FUN!" - vend_reply = "Come back for more!" - products = list(/obj/item/gun/ballistic/automatic/toy/unrestricted = 10, - /obj/item/gun/ballistic/automatic/toy/pistol/unrestricted = 10, - /obj/item/gun/ballistic/shotgun/toy/unrestricted = 10, - /obj/item/toy/sword = 10, - /obj/item/ammo_box/foambox = 20, - /obj/item/toy/foamblade = 10, - /obj/item/toy/syndicateballoon = 10, - /obj/item/clothing/suit/syndicatefake = 5, - /obj/item/clothing/head/syndicatefake = 5) - contraband = list(/obj/item/gun/ballistic/shotgun/toy/crossbow = 10, - /obj/item/gun/ballistic/automatic/c20r/toy/unrestricted = 10, - /obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted = 10, - /obj/item/toy/katana = 10, - /obj/item/twohanded/dualsaber/toy = 5) - armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) - resistance_flags = FIRE_PROOF - refill_canister = /obj/item/vending_refill/donksoft - -/obj/machinery/vending/games - name = "\improper Good Clean Fun" - desc = "Vends things that the Captain and Head of Personnel are probably not going to appreciate you fiddling with instead of your job..." - product_ads = "Escape to a fantasy world!;Fuel your gambling addiction!;Ruin your friendships!;Roll for initative!;Elves and dwarves!;Paranoid computers!;Totally not satanic!;Fun times forever!" - icon_state = "games" - products = list( - /obj/item/toy/cards/deck = 5, - /obj/item/storage/pill_bottle/dice = 10, - /obj/item/toy/cards/deck/cas = 3, - /obj/item/toy/cards/deck/cas/black = 3) - contraband = list(/obj/item/dice/fudge = 9) - refill_canister = /obj/item/vending_refill/games - - -/obj/machinery/vending/onTransitZ() - return - -#undef STANDARD_CHARGE -#undef CONTRABAND_CHARGE -#undef COIN_CHARGE diff --git a/code/game/mecha/combat/combat.dm b/code/game/mecha/combat/combat.dm index 99837d2beb..c516571e2a 100644 --- a/code/game/mecha/combat/combat.dm +++ b/code/game/mecha/combat/combat.dm @@ -11,7 +11,7 @@ else return 0 -/obj/mecha/combat/mmi_moved_inside(obj/item/device/mmi/mmi_as_oc,mob/user) +/obj/mecha/combat/mmi_moved_inside(obj/item/mmi/mmi_as_oc,mob/user) if(..()) if(occupant.client && occupant.client.mouse_pointer_icon == initial(occupant.client.mouse_pointer_icon)) occupant.client.mouse_pointer_icon = 'icons/mecha/mecha_mouse.dmi' diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm index 2b7855ea33..50d1f0be0d 100644 --- a/code/game/mecha/equipment/weapons/weapons.dm +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -369,7 +369,7 @@ name = "mousetrap mortar" desc = "Equipment for clown exosuits. Launches armed mousetraps." icon_state = "mecha_mousetrapmrtr" - projectile = /obj/item/device/assembly/mousetrap/armed + projectile = /obj/item/assembly/mousetrap/armed fire_sound = 'sound/items/bikehorn.ogg' projectiles = 15 missile_speed = 1.5 @@ -382,7 +382,7 @@ return 1 return 0 -/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/mousetrap_mortar/proj_init(var/obj/item/device/assembly/mousetrap/armed/M) +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/mousetrap_mortar/proj_init(var/obj/item/assembly/mousetrap/armed/M) M.secured = 1 diff --git a/code/game/mecha/mech_bay.dm b/code/game/mecha/mech_bay.dm index 90234b97b5..d2d9ac5e57 100644 --- a/code/game/mecha/mech_bay.dm +++ b/code/game/mecha/mech_bay.dm @@ -1,5 +1,6 @@ /turf/open/floor/mech_bay_recharge_floor // Whos idea it was name = "mech bay recharge station" // Recharging turfs + desc = "Parking a mech on this station will recharge its internal power cell." icon = 'icons/turf/floors.dmi' // That are set in stone to check the west turf for recharge port icon_state = "recharge_floor" // Some people just want to watch the world burn i guess @@ -12,6 +13,7 @@ /obj/machinery/mech_bay_recharge_port name = "mech bay power port" + desc = "This port recharges a mech's internal power cell." density = TRUE anchored = TRUE dir = EAST @@ -62,16 +64,13 @@ recharging_turf = get_step(loc, dir) return - if(exchange_parts(user, I)) - return - if(default_deconstruction_crowbar(I)) return return ..() /obj/machinery/computer/mech_bay_power_console name = "mech bay power control console" - desc = "Used to control mechbay power ports." + desc = "Displays the status of mechs connected to the recharge station." icon_screen = "recharge_comp" icon_keyboard = "rd_key" circuit = /obj/item/circuitboard/computer/mech_bay_power_console diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index 7815014891..49f29b5969 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -401,9 +401,6 @@ if(default_deconstruction_screwdriver(user, "fab-o", "fab-idle", W)) return TRUE - if(exchange_parts(user, W)) - return TRUE - if(default_deconstruction_crowbar(W)) return TRUE diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 8c371ada2f..616cd27a2d 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -1,8 +1,8 @@ -#define MECHA_INT_FIRE 1 -#define MECHA_INT_TEMP_CONTROL 2 -#define MECHA_INT_SHORT_CIRCUIT 4 -#define MECHA_INT_TANK_BREACH 8 -#define MECHA_INT_CONTROL_LOST 16 +#define MECHA_INT_FIRE (1<<0) +#define MECHA_INT_TEMP_CONTROL (1<<1) +#define MECHA_INT_SHORT_CIRCUIT (1<<2) +#define MECHA_INT_TANK_BREACH (1<<3) +#define MECHA_INT_CONTROL_LOST (1<<4) #define MELEE 1 #define RANGED 2 @@ -57,7 +57,7 @@ var/datum/gas_mixture/cabin_air var/obj/machinery/atmospherics/components/unary/portables_connector/connected_port = null - var/obj/item/device/radio/mech/radio + var/obj/item/radio/mech/radio var/list/trackers = list() var/max_temperature = 25000 @@ -118,7 +118,7 @@ hud_possible = list (DIAG_STAT_HUD, DIAG_BATT_HUD, DIAG_MECH_HUD, DIAG_TRACK_HUD) -/obj/item/device/radio/mech //this has to go somewhere +/obj/item/radio/mech //this has to go somewhere /obj/mecha/Initialize() . = ..() @@ -672,7 +672,7 @@ return to_chat(user, "Take control of exosuit?
    ") -/obj/mecha/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/device/aicard/card) +/obj/mecha/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/aicard/card) if(!..()) return @@ -866,7 +866,7 @@ else return 0 -/obj/mecha/proc/mmi_move_inside(obj/item/device/mmi/mmi_as_oc, mob/user) +/obj/mecha/proc/mmi_move_inside(obj/item/mmi/mmi_as_oc, mob/user) if(!mmi_as_oc.brainmob || !mmi_as_oc.brainmob.client) to_chat(user, "Consciousness matrix not detected!") return FALSE @@ -891,7 +891,7 @@ to_chat(user, "You stop inserting the MMI.") return FALSE -/obj/mecha/proc/mmi_moved_inside(obj/item/device/mmi/mmi_as_oc, mob/user) +/obj/mecha/proc/mmi_moved_inside(obj/item/mmi/mmi_as_oc, mob/user) if(!(Adjacent(mmi_as_oc) && Adjacent(user))) return FALSE if(!mmi_as_oc.brainmob || !mmi_as_oc.brainmob.client) @@ -967,8 +967,8 @@ log_message("[mob_container] moved out.") L << browse(null, "window=exosuit") - if(istype(mob_container, /obj/item/device/mmi)) - var/obj/item/device/mmi/mmi = mob_container + if(istype(mob_container, /obj/item/mmi)) + var/obj/item/mmi/mmi = mob_container if(mmi.brainmob) L.forceMove(mmi) L.reset_perspective() diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm index 6218326c8d..c6ab4ce2f4 100644 --- a/code/game/mecha/mecha_construction_paths.dm +++ b/code/game/mecha/mecha_construction_paths.dm @@ -1409,7 +1409,7 @@ //26 list( - "key" = /obj/item/device/assembly/signaler/anomaly, + "key" = /obj/item/assembly/signaler/anomaly, "action" = ITEM_DELETE, "back_key" = TOOL_WELDER, "desc" = "Anomaly core socket is open.", diff --git a/code/game/mecha/mecha_defense.dm b/code/game/mecha/mecha_defense.dm index e1e401e116..0fbfafeb59 100644 --- a/code/game/mecha/mecha_defense.dm +++ b/code/game/mecha/mecha_defense.dm @@ -155,7 +155,7 @@ /obj/mecha/attackby(obj/item/W as obj, mob/user as mob, params) - if(istype(W, /obj/item/device/mmi)) + if(istype(W, /obj/item/mmi)) if(mmi_move_inside(W,user)) to_chat(user, "[src]-[W] interface initialized successfully.") else @@ -180,7 +180,7 @@ if(istype(W, /obj/item/card/id)) id_card = W else - var/obj/item/device/pda/pda = W + var/obj/item/pda/pda = W id_card = pda.id output_maintenance_dialog(id_card, user) return diff --git a/code/game/mecha/mecha_topic.dm b/code/game/mecha/mecha_topic.dm index 4c1bceca28..4f5c6feb44 100644 --- a/code/game/mecha/mecha_topic.dm +++ b/code/game/mecha/mecha_topic.dm @@ -199,7 +199,7 @@ [add_req_access?"Edit operation keycodes":null] - [maint_access?"Initiate maintenance protocol":null] + [maint_access?"[(state>0) ? "Terminate" : "Initiate"] maintenance protocol":null] [(state>0) ?"Set Cabin Air Pressure":null] "} diff --git a/code/game/mecha/mecha_wreckage.dm b/code/game/mecha/mecha_wreckage.dm index dc909d90d1..1f789281df 100644 --- a/code/game/mecha/mecha_wreckage.dm +++ b/code/game/mecha/mecha_wreckage.dm @@ -79,7 +79,7 @@ to_chat(user, "You don't see anything that can be pried with [I]!") -/obj/structure/mecha_wreckage/transfer_ai(interaction, mob/user, null, obj/item/device/aicard/card) +/obj/structure/mecha_wreckage/transfer_ai(interaction, mob/user, null, obj/item/aicard/card) if(!..()) return diff --git a/code/game/objects/effects/anomalies.dm b/code/game/objects/effects/anomalies.dm index e5e9f578b2..b3cb0ff9c4 100644 --- a/code/game/objects/effects/anomalies.dm +++ b/code/game/objects/effects/anomalies.dm @@ -8,7 +8,7 @@ anchored = TRUE light_range = 3 var/movechance = 70 - var/obj/item/device/assembly/signaler/anomaly/aSignal = null + var/obj/item/assembly/signaler/anomaly/aSignal = null var/area/impact_area var/lifespan = 990 @@ -73,7 +73,7 @@ /obj/effect/anomaly/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/device/analyzer)) + if(istype(I, /obj/item/analyzer)) to_chat(user, "Analyzing... [src]'s unstable field is fluctuating along frequency [format_frequency(aSignal.frequency)], code [aSignal.code].") /////////////////////// @@ -193,9 +193,9 @@ var/turf/T = safepick(get_area_turfs(impact_area)) if(T) // Calculate new position (searches through beacons in world) - var/obj/item/device/beacon/chosen + var/obj/item/beacon/chosen var/list/possible = list() - for(var/obj/item/device/beacon/W in GLOB.teleportbeacons) + for(var/obj/item/beacon/W in GLOB.teleportbeacons) possible += W if(possible.len > 0) @@ -218,7 +218,7 @@ var/y_distance = TO.y - FROM.y var/x_distance = TO.x - FROM.x for (var/atom/movable/A in urange(12, FROM )) // iterate thru list of mobs in the area - if(istype(A, /obj/item/device/beacon)) + if(istype(A, /obj/item/beacon)) continue // don't teleport beacons because that's just insanely stupid if(A.anchored) continue diff --git a/code/game/objects/effects/countdown.dm b/code/game/objects/effects/countdown.dm index 2ed2105db3..d62146be5e 100644 --- a/code/game/objects/effects/countdown.dm +++ b/code/game/objects/effects/countdown.dm @@ -116,7 +116,7 @@ color = "#00ff80" /obj/effect/countdown/supermatter/get_value() - var/obj/machinery/power/supermatter_shard/S = attached_to + var/obj/machinery/power/supermatter_crystal/S = attached_to if(!istype(S)) return return "
    [round(S.get_integrity(), 1)]%
    " diff --git a/code/game/objects/effects/effect_system/effects_other.dm b/code/game/objects/effects/effect_system/effects_other.dm index 983c30da75..373ebc7667 100644 --- a/code/game/objects/effects/effect_system/effects_other.dm +++ b/code/game/objects/effects/effect_system/effects_other.dm @@ -88,8 +88,8 @@ auto_process = FALSE /datum/effect_system/trail_follow/ion/flight/set_dir(obj/effect/particle_effect/ion_trails/I) - if(istype(holder, /obj/item/device/flightpack)) - var/obj/item/device/flightpack/F = holder + if(istype(holder, /obj/item/flightpack)) + var/obj/item/flightpack/F = holder if(istype(F.wearer)) I.setDir(F.wearer.dir) diff --git a/code/game/objects/effects/spawners/bombspawner.dm b/code/game/objects/effects/spawners/bombspawner.dm index e376795704..2de7770b72 100644 --- a/code/game/objects/effects/spawners/bombspawner.dm +++ b/code/game/objects/effects/spawners/bombspawner.dm @@ -8,7 +8,7 @@ /obj/effect/spawner/newbomb/Initialize() . = ..() - var/obj/item/device/transfer_valve/V = new(src.loc) + var/obj/item/transfer_valve/V = new(src.loc) var/obj/item/tank/internals/plasma/full/PT = new(V) var/obj/item/tank/internals/oxygen/OT = new(V) @@ -21,7 +21,7 @@ OT.master = V if(assembly_type) - var/obj/item/device/assembly/A = new assembly_type(V) + var/obj/item/assembly/A = new assembly_type(V) V.attached_device = A A.holder = V A.toggle_secure() @@ -31,16 +31,16 @@ return INITIALIZE_HINT_QDEL /obj/effect/spawner/newbomb/timer - assembly_type = /obj/item/device/assembly/timer + assembly_type = /obj/item/assembly/timer /obj/effect/spawner/newbomb/timer/syndicate btemp1 = 150 btemp2 = 20 /obj/effect/spawner/newbomb/proximity - assembly_type = /obj/item/device/assembly/prox_sensor + assembly_type = /obj/item/assembly/prox_sensor /obj/effect/spawner/newbomb/radio - assembly_type = /obj/item/device/assembly/signaler + assembly_type = /obj/item/assembly/signaler diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index c03f632343..0bf7edbd7b 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -193,7 +193,8 @@ /obj/item/aiModule/core/full/peacekeeper, /obj/item/aiModule/core/full/reporter, /obj/item/aiModule/core/full/robocop, - /obj/item/aiModule/core/full/liveandletlive + /obj/item/aiModule/core/full/liveandletlive, + /obj/item/aiModule/core/full/hulkamania ) /obj/effect/spawner/lootdrop/aimodule_harmful // These will get the shuttle called diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 50371aebe7..4e298032db 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -146,9 +146,6 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) QDEL_NULL(rpg_loot) return ..() -/obj/item/device - icon = 'icons/obj/device.dmi' - /obj/item/proc/check_allowed_items(atom/target, not_inside, target_self) if(((src in target) && !target_self) || (!isturf(target.loc) && !isturf(target) && not_inside)) return 0 @@ -281,10 +278,8 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) if(!(interaction_flags_item & INTERACT_ITEM_ATTACK_HAND_PICKUP)) //See if we're supposed to auto pickup. return - if(istype(loc, /obj/item/storage)) - //If the item is in a storage item, take it out - var/obj/item/storage/S = loc - S.remove_from_storage(src, user.loc) + //If the item is in a storage item, take it out + loc.SendSignal(COMSIG_TRY_STORAGE_TAKE, src, user.loc, TRUE) if(throwing) throwing.finalize(FALSE) @@ -297,15 +292,16 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) if(!user.put_in_active_hand(src)) dropped(user) +/obj/item/proc/allow_attack_hand_drop(mob/user) + return TRUE + /obj/item/attack_paw(mob/user) if(!user) return if(anchored) return - if(istype(loc, /obj/item/storage)) - var/obj/item/storage/S = loc - S.remove_from_storage(src, user.loc) + loc.SendSignal(COMSIG_TRY_STORAGE_TAKE, src, user.loc, TRUE) if(throwing) throwing.finalize(FALSE) @@ -338,63 +334,6 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) R.activate_module(src) R.hud_used.update_robot_modules_display() -// Due to storage type consolidation this should get used more now. -// I have cleaned it up a little, but it could probably use more. -Sayu -// The lack of ..() is intentional, do not add one -// added one, fuck the police -/obj/item/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/storage)) - var/obj/item/storage/S = W - if(S.use_to_pickup) - if(S.collection_mode) //Mode is set to collect multiple items on a tile and we clicked on a valid one. - if(isturf(loc)) - var/list/rejections = list() - - var/list/things = loc.contents.Copy() - if (S.collection_mode == 2) - things = typecache_filter_list(things, typecacheof(type)) - - var/len = things.len - if(!len) - to_chat(user, "You failed to pick up anything with [S].") - return - var/datum/progressbar/progress = new(user, len, loc) - - while (do_after(user, 10, TRUE, S, FALSE, CALLBACK(src, .proc/handle_mass_pickup, S, things, loc, rejections, progress))) - stoplag(1) - - qdel(progress) - - to_chat(user, "You put everything you could [S.preposition] [S].") - return - - else if(S.can_be_inserted(src)) - S.handle_item_insertion(src) - return - return ..() - -/obj/item/proc/handle_mass_pickup(obj/item/storage/S, list/things, atom/thing_loc, list/rejections, datum/progressbar/progress) - for(var/obj/item/I in things) - things -= I - if(I.loc != thing_loc) - continue - if(I.type in rejections) // To limit bag spamming: any given type only complains once - continue - if(!S.can_be_inserted(I, stop_messages = TRUE)) // Note can_be_inserted still makes noise when the answer is no - if(S.contents.len >= S.storage_slots) - break - rejections += I.type // therefore full bags are still a little spammy - continue - - S.handle_item_insertion(I, TRUE) //The 1 stops the "You put the [src] into [S]" insertion message from being displayed. - - if (TICK_CHECK) - progress.update(progress.goal - things.len) - return TRUE - - progress.update(progress.goal - things.len) - return FALSE - /obj/item/proc/GetDeconstructableContents() return GetAllContents() - src @@ -410,7 +349,6 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) return ITALICS | REDUCE_RANGE /obj/item/proc/dropped(mob/user) - SendSignal(COMSIG_ITEM_DROPPED, user) for(var/X in actions) var/datum/action/A = X A.Remove(user) @@ -424,17 +362,6 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) SendSignal(COMSIG_ITEM_PICKUP, user) item_flags |= IN_INVENTORY -/obj/item/proc/allow_attack_hand_drop(mob/user) - return TRUE - -// called when this item is removed from a storage item, which is passed on as S. The loc variable is already set to the new destination before this is called. -/obj/item/proc/on_exit_storage(obj/item/storage/S) - return - -// called when this item is added into a storage item, which is passed on as S. The loc variable is already set to the storage item. -/obj/item/proc/on_enter_storage(obj/item/storage/S) - return - // called when "found" in pockets and storage items. Returns 1 if the search should end. /obj/item/proc/on_found(mob/finder) return @@ -605,12 +532,10 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) /obj/item/proc/remove_item_from_storage(atom/newLoc) //please use this if you're going to snowflake an item out of a obj/item/storage if(!newLoc) - return 0 - if(istype(loc, /obj/item/storage)) - var/obj/item/storage/S = loc - S.remove_from_storage(src,newLoc) - return 1 - return 0 + return FALSE + if(loc.SendSignal(COMSIG_CONTAINS_STORAGE)) + return loc.SendSignal(COMSIG_TRY_STORAGE_TAKE, src, newLoc, TRUE) + return FALSE /obj/item/proc/get_belt_overlay() //Returns the icon used for overlaying the object on a belt return mutable_appearance('icons/obj/clothing/belt_overlays.dmi', icon_state) diff --git a/code/game/objects/items/AI_modules.dm b/code/game/objects/items/AI_modules.dm index 528e516408..5d83f3ac1e 100644 --- a/code/game/objects/items/AI_modules.dm +++ b/code/game/objects/items/AI_modules.dm @@ -568,3 +568,9 @@ AI MODULES laws += generate_ion_law() ..() laws = list() + +/******************H.O.G.A.N.***************/ + +/obj/item/aiModule/core/full/hulkamania + name = "'H.O.G.A.N.' Core AI Module" + law_id = "hulkamania" diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm index 12360ec353..7c54acbca9 100644 --- a/code/game/objects/items/RCD.dm +++ b/code/game/objects/items/RCD.dm @@ -636,7 +636,7 @@ RLD if(useResource(launchcost, user)) activate() to_chat(user, "You fire a glowstick!") - var/obj/item/device/flashlight/glowstick/G = new /obj/item/device/flashlight/glowstick(start) + var/obj/item/flashlight/glowstick/G = new /obj/item/flashlight/glowstick(start) G.color = color_choice G.light_color = G.color G.throw_at(A, 9, 3, user) diff --git a/code/game/objects/items/airlock_painter.dm b/code/game/objects/items/airlock_painter.dm index 36d2c068c6..365c96233a 100644 --- a/code/game/objects/items/airlock_painter.dm +++ b/code/game/objects/items/airlock_painter.dm @@ -13,11 +13,11 @@ slot_flags = SLOT_BELT usesound = 'sound/effects/spray2.ogg' - var/obj/item/device/toner/ink = null + var/obj/item/toner/ink = null /obj/item/airlock_painter/New() ..() - ink = new /obj/item/device/toner(src) + ink = new /obj/item/toner(src) //This proc doesn't just check if the painter can be used, but also uses it. //Only call this if you are certain that the painter will be used right after this check! @@ -105,7 +105,7 @@ /obj/item/airlock_painter/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/device/toner)) + if(istype(W, /obj/item/toner)) if(ink) to_chat(user, "[src] already contains \a [ink].") return diff --git a/code/game/objects/items/blueprints.dm b/code/game/objects/items/blueprints.dm index 9edd19795c..a634f2a4ce 100644 --- a/code/game/objects/items/blueprints.dm +++ b/code/game/objects/items/blueprints.dm @@ -193,12 +193,11 @@ to_chat(usr, "The given name is too long. The area's name is unchanged.") return set_area_machinery_title(A,str,prevname) - for(var/area/RA in A.related) - RA.name = str - if(RA.firedoors) - for(var/D in RA.firedoors) - var/obj/machinery/door/firedoor/FD = D - FD.CalculateAffectingAreas() + A.name = str + if(A.firedoors) + for(var/D in A.firedoors) + var/obj/machinery/door/firedoor/FD = D + FD.CalculateAffectingAreas() to_chat(usr, "You rename the '[prevname]' to '[str]'.") log_game("[key_name(usr)] has renamed [prevname] to [str]") A.update_areasize() @@ -209,17 +208,16 @@ /obj/item/areaeditor/proc/set_area_machinery_title(area/A,title,oldtitle) if(!oldtitle) // or replacetext goes to infinite loop return - for(var/area/RA in A.related) - for(var/obj/machinery/airalarm/M in RA) - M.name = replacetext(M.name,oldtitle,title) - for(var/obj/machinery/power/apc/M in RA) - M.name = replacetext(M.name,oldtitle,title) - for(var/obj/machinery/atmospherics/components/unary/vent_scrubber/M in RA) - M.name = replacetext(M.name,oldtitle,title) - for(var/obj/machinery/atmospherics/components/unary/vent_pump/M in RA) - M.name = replacetext(M.name,oldtitle,title) - for(var/obj/machinery/door/M in RA) - M.name = replacetext(M.name,oldtitle,title) + for(var/obj/machinery/airalarm/M in A) + M.name = replacetext(M.name,oldtitle,title) + for(var/obj/machinery/power/apc/M in A) + M.name = replacetext(M.name,oldtitle,title) + for(var/obj/machinery/atmospherics/components/unary/vent_scrubber/M in A) + M.name = replacetext(M.name,oldtitle,title) + for(var/obj/machinery/atmospherics/components/unary/vent_pump/M in A) + M.name = replacetext(M.name,oldtitle,title) + for(var/obj/machinery/door/M in A) + M.name = replacetext(M.name,oldtitle,title) //TODO: much much more. Unnamed airlocks, cameras, etc. //Blueprint Subtypes diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index 9ecafd7a8a..9bb1880c97 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -706,7 +706,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM to_chat(user, "You close the cap on [src].") cut_overlays() - if(istype(O, /obj/item/device/multitool)) + if(istype(O, /obj/item/multitool)) if(screw && !(obj_flags & EMAGGED))//also kinky if(!super) cut_overlays() diff --git a/code/game/objects/items/circuitboards/circuitboard.dm b/code/game/objects/items/circuitboards/circuitboard.dm index 053d450f4f..a4f91a4223 100644 --- a/code/game/objects/items/circuitboards/circuitboard.dm +++ b/code/game/objects/items/circuitboards/circuitboard.dm @@ -12,7 +12,7 @@ righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' materials = list(MAT_GLASS=1000) w_class = WEIGHT_CLASS_SMALL - grind_results = list("silicon" = 20, "sacid" = 0.5) //Retrieving acid this way is extremely inefficient + grind_results = list("silicon" = 20) var/build_path = null /obj/item/circuitboard/proc/apply_default_parts(obj/machinery/M) diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm index 8caa0407d1..2efc952c8b 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -449,7 +449,7 @@ /obj/item/stock_parts/matter_bin = 1, /obj/item/stock_parts/micro_laser = 1, /obj/item/stock_parts/manipulator = 1, - /obj/item/device/assembly/igniter = 1) + /obj/item/assembly/igniter = 1) needs_anchored = FALSE /obj/item/circuitboard/machine/mining_equipment_vendor @@ -534,6 +534,17 @@ /obj/item/stock_parts/capacitor = 1) def_components = list(/obj/item/stock_parts/cell = /obj/item/stock_parts/cell/high/empty) +/obj/item/circuitboard/machine/rad_collector + name = "Radiation Collector (Machine Board)" + build_path = /obj/machinery/power/rad_collector + req_components = list( + /obj/item/stack/cable_coil = 5, + /obj/item/stock_parts/matter_bin = 1, + /obj/item/stack/sheet/plasmarglass = 2, + /obj/item/stock_parts/capacitor = 1, + /obj/item/stock_parts/manipulator = 1) + needs_anchored = FALSE + /obj/item/circuitboard/machine/tesla_coil name = "Tesla Controller (Machine Board)" desc = "You can use a screwdriver to switch between Research and Power Generation" diff --git a/code/game/objects/items/clown.dm b/code/game/objects/items/clown.dm deleted file mode 100644 index eb4c1a570e..0000000000 --- a/code/game/objects/items/clown.dm +++ /dev/null @@ -1,46 +0,0 @@ - -/obj/item/pie_cannon - name = "pie cannon" - desc = "Load cream pie for optimal results" - force = 10 - icon_state = "piecannon" - item_state = "powerfist" - var/obj/item/reagent_containers/food/snacks/pie/loaded = null - -/obj/item/pie_cannon/attackby(obj/item/I, mob/living/L) - if(istype(I, /obj/item/reagent_containers/food/snacks/pie)) - if(!loaded) - L.transferItemToLoc(I, src) - loaded = I - to_chat(L, "You load the [I] into the [src]!") - return - return ..() - -/obj/item/pie_cannon/afterattack(atom/target, mob/living/user, flag, params) - if(!loaded) - return ..() - var/obj/item/projectile/pie/launched = new /obj/item/projectile/pie(src) - launched.P = loaded - loaded.forceMove(launched) - launched.appearance = loaded.appearance - loaded = null - launched.preparePixelProjectile(target, get_turf(target), user, params, 0) - launched.forceMove(get_turf(src)) - launched.fire() - user.visible_message("[user] fires the [src] at [target]!") - -/obj/item/projectile/pie - name = "pie" - desc = "Think fast!" - var/obj/item/reagent_containers/food/snacks/pie/P = null - -/obj/item/projectile/pie/on_hit(atom/A) - . = ..() - if(P) - A.visible_message("[P] smashes into [A] at high velocity!") - P.forceMove(get_turf(A)) - P.throw_impact(A) - if(ismovableatom(A)) - var/atom/movable/AM = A - if(!AM.anchored) - AM.throw_at(get_edge_target_turf(get_dir(src, AM), 3, 2)) diff --git a/code/game/objects/items/clown_items.dm b/code/game/objects/items/clown_items.dm index 515dab5e27..9b615b68b5 100644 --- a/code/game/objects/items/clown_items.dm +++ b/code/game/objects/items/clown_items.dm @@ -116,7 +116,7 @@ . = ..() AddComponent(/datum/component/squeak, list('sound/items/bikehorn.ogg'=1), 50) -/obj/item/weapon/bikehorn/attack(mob/living/carbon/M, mob/living/carbon/user) +/obj/item/bikehorn/attack(mob/living/carbon/M, mob/living/carbon/user) M.SendSignal(COMSIG_ADD_MOOD_EVENT, "honk", /datum/mood_event/honk) /obj/item/bikehorn/suicide_act(mob/user) diff --git a/code/game/objects/items/control_wand.dm b/code/game/objects/items/control_wand.dm index ce674ceb94..d389679e2b 100644 --- a/code/game/objects/items/control_wand.dm +++ b/code/game/objects/items/control_wand.dm @@ -43,13 +43,13 @@ switch(mode) if(WAND_OPEN) - data.plaintext_data = "open" + data.data["data"] = "open" if(WAND_BOLT) - data.plaintext_data = "bolt" + data.data["data"] = "bolt" if(WAND_EMERGENCY) - data.plaintext_data = "emergency" + data.data["data"] = "emergency" - data.plaintext_data_secondary = "toggle" + data.data["data_secondary"] = "toggle" data.passkey = access_list ntnet_send(data) diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 0abdc9a7c4..7480f7b489 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -458,13 +458,14 @@ icon = 'icons/obj/crayons.dmi' icon_state = "crayonbox" w_class = WEIGHT_CLASS_SMALL - storage_slots = 7 - can_hold = list( - /obj/item/toy/crayon - ) -/obj/item/storage/crayons/New() - ..() +/obj/item/storage/crayons/Initialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 7 + STR.can_hold = typecacheof(list(/obj/item/toy/crayon)) + +/obj/item/storage/crayons/PopulateContents() new /obj/item/toy/crayon/red(src) new /obj/item/toy/crayon/orange(src) new /obj/item/toy/crayon/yellow(src) diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index c6065cdd8c..d2324aa56c 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -9,8 +9,9 @@ GLOBAL_LIST_EMPTY(PDAs) #define PDA_SCANNER_REAGENT 3 #define PDA_SCANNER_HALOGEN 4 #define PDA_SCANNER_GAS 5 +#define PDA_SPAM_DELAY 2 MINUTES -/obj/item/device/pda +/obj/item/pda name = "\improper PDA" desc = "A portable microcomputer by Thinktronic Systems, LTD. Functionality determined by a preprogrammed ROM cartridge." icon = 'icons/obj/pda.dmi' @@ -52,6 +53,7 @@ GLOBAL_LIST_EMPTY(PDAs) var/toff = FALSE //If TRUE, messenger disabled var/tnote = null //Current Texts var/last_text //No text spamming + var/last_everyone //No text for everyone spamming var/last_noise //Also no honk spamming that's bad too var/ttone = "beep" //The ringtone! var/lock_code = "" // Lockcode to unlock uplink @@ -68,17 +70,17 @@ GLOBAL_LIST_EMPTY(PDAs) var/obj/item/card/id/id = null //Making it possible to slot an ID card into the PDA so it can function as both. var/ownjob = null //related to above - var/obj/item/device/paicard/pai = null // A slot for a personal AI device + var/obj/item/paicard/pai = null // A slot for a personal AI device var/icon/photo //Scanned photo - var/list/contained_item = list(/obj/item/pen, /obj/item/toy/crayon, /obj/item/lipstick, /obj/item/device/flashlight/pen, /obj/item/clothing/mask/cigarette) + var/list/contained_item = list(/obj/item/pen, /obj/item/toy/crayon, /obj/item/lipstick, /obj/item/flashlight/pen, /obj/item/clothing/mask/cigarette) var/obj/item/inserted_item //Used for pen, crayon, and lipstick insertion or removal. Same as above. var/overlays_x_offset = 0 //x offset to use for certain overlays var/underline_flag = TRUE //flag for underline -/obj/item/device/pda/suicide_act(mob/living/carbon/user) +/obj/item/pda/suicide_act(mob/living/carbon/user) var/deathMessage = msg_input(user) if (!deathMessage) deathMessage = "i ded" @@ -86,14 +88,14 @@ GLOBAL_LIST_EMPTY(PDAs) tnote += "→ To The Grim Reaper:
    [deathMessage]
    "//records a message in their PDA as being sent to the grim reaper return BRUTELOSS -/obj/item/device/pda/examine(mob/user) +/obj/item/pda/examine(mob/user) ..() if(!id && !inserted_item) return else to_chat(user, "Alt-click to remove contents.") -/obj/item/device/pda/Initialize() +/obj/item/pda/Initialize() . = ..() if(fon) set_light(f_lum) @@ -107,7 +109,7 @@ GLOBAL_LIST_EMPTY(PDAs) inserted_item = new /obj/item/pen(src) update_icon() -/obj/item/device/pda/equipped(mob/user, slot) +/obj/item/pda/equipped(mob/user, slot) . = ..() if(!equipped) if(user.client) @@ -130,19 +132,19 @@ GLOBAL_LIST_EMPTY(PDAs) font_mode = FONT_MONO equipped = TRUE -/obj/item/device/pda/proc/update_label() +/obj/item/pda/proc/update_label() name = "PDA-[owner] ([ownjob])" //Name generalisation -/obj/item/device/pda/GetAccess() +/obj/item/pda/GetAccess() if(id) return id.GetAccess() else return ..() -/obj/item/device/pda/GetID() +/obj/item/pda/GetID() return id -/obj/item/device/pda/update_icon() +/obj/item/pda/update_icon() cut_overlays() var/mutable_appearance/overlay = new() overlay.pixel_x = overlays_x_offset @@ -163,13 +165,13 @@ GLOBAL_LIST_EMPTY(PDAs) overlay.icon_state = "pai_off_overlay" add_overlay(new /mutable_appearance(overlay)) -/obj/item/device/pda/MouseDrop(obj/over_object, src_location, over_location) +/obj/item/pda/MouseDrop(obj/over_object, src_location, over_location) var/mob/M = usr if((!istype(over_object, /obj/screen)) && usr.canUseTopic(src)) return attack_self(M) return ..() -/obj/item/device/pda/attack_self(mob/user) +/obj/item/pda/attack_self(mob/user) if(!user.IsAdvancedToolUser()) to_chat(user, "You don't have the dexterity to do this!") return @@ -309,7 +311,7 @@ GLOBAL_LIST_EMPTY(PDAs) var/count = 0 if (!toff) - for (var/obj/item/device/pda/P in sortNames(get_viewable_pdas())) + for (var/obj/item/pda/P in sortNames(get_viewable_pdas())) if (P == src) continue dat += "
  • [P]" @@ -368,7 +370,7 @@ GLOBAL_LIST_EMPTY(PDAs) user << browse(dat, "window=pda;size=400x450;border=1;can_resize=1;can_minimize=0") onclose(user, "pda", src) -/obj/item/device/pda/Topic(href, href_list) +/obj/item/pda/Topic(href, href_list) ..() var/mob/living/U = usr //Looking for master was kind of pointless since PDAs don't appear to have one. @@ -586,7 +588,7 @@ GLOBAL_LIST_EMPTY(PDAs) U << browse(null, "window=pda") return -/obj/item/device/pda/proc/remove_id() +/obj/item/pda/proc/remove_id() if (id) if (ismob(loc)) var/mob/M = loc @@ -597,7 +599,7 @@ GLOBAL_LIST_EMPTY(PDAs) id = null update_icon() -/obj/item/device/pda/proc/msg_input(mob/living/U = usr) +/obj/item/pda/proc/msg_input(mob/living/U = usr) var/t = stripped_input(U, "Please enter message", name) if (!t || toff) return @@ -609,16 +611,16 @@ GLOBAL_LIST_EMPTY(PDAs) t = Gibberish(t, 100) return t -/obj/item/device/pda/proc/send_message(mob/living/user, list/obj/item/device/pda/targets) +/obj/item/pda/proc/send_message(mob/living/user, list/obj/item/pda/targets, everyone) var/message = msg_input(user) if(!message || !targets.len) return - if(last_text && world.time < last_text + 5) + if((last_text && world.time < last_text + 10) || (everyone && last_everyone && world.time < last_everyone + PDA_SPAM_DELAY)) return // Send the signal var/list/string_targets = list() - for (var/obj/item/device/pda/P in targets) + for (var/obj/item/pda/P in targets) if (P.owner && P.ownjob) // != src is checked by the UI string_targets += "[P.owner] ([P.ownjob])" for (var/obj/machinery/computer/message_monitor/M in targets) @@ -658,8 +660,11 @@ GLOBAL_LIST_EMPTY(PDAs) to_chat(user, "Message sent to [target_text]: \"[message]\"") // Reset the photo photo = null + last_text = world.time + if (everyone) + last_everyone = world.time -/obj/item/device/pda/proc/receive_message(datum/signal/subspace/pda/signal) +/obj/item/pda/proc/receive_message(datum/signal/subspace/pda/signal) tnote += "← From [signal.data["name"]] ([signal.data["job"]]):
    [signal.format_message()]
    " if (!silent) @@ -685,13 +690,16 @@ GLOBAL_LIST_EMPTY(PDAs) update_icon() add_overlay(icon_alert) -/obj/item/device/pda/proc/send_to_all(mob/living/U) - send_message(U,get_viewable_pdas()) +/obj/item/pda/proc/send_to_all(mob/living/U) + if (last_everyone && world.time < last_everyone + PDA_SPAM_DELAY) + to_chat(U,"Send To All function is still on cooldown.") + return + send_message(U,get_viewable_pdas(), TRUE) -/obj/item/device/pda/proc/create_message(mob/living/U, obj/item/device/pda/P) +/obj/item/pda/proc/create_message(mob/living/U, obj/item/pda/P) send_message(U,list(P)) -/obj/item/device/pda/AltClick() +/obj/item/pda/AltClick() ..() if(issilicon(usr)) @@ -703,7 +711,7 @@ GLOBAL_LIST_EMPTY(PDAs) else remove_pen() -/obj/item/device/pda/verb/verb_remove_id() +/obj/item/pda/verb/verb_remove_id() set category = "Object" set name = "Eject ID" set src in usr @@ -717,7 +725,7 @@ GLOBAL_LIST_EMPTY(PDAs) else to_chat(usr, "This PDA does not have an ID in it!") -/obj/item/device/pda/verb/verb_remove_pen() +/obj/item/pda/verb/verb_remove_pen() set category = "Object" set name = "Remove Pen" set src in usr @@ -728,7 +736,7 @@ GLOBAL_LIST_EMPTY(PDAs) if (usr.canUseTopic(src)) remove_pen() -/obj/item/device/pda/proc/remove_pen() +/obj/item/pda/proc/remove_pen() if(inserted_item) if(ismob(loc)) var/mob/M = loc @@ -742,7 +750,7 @@ GLOBAL_LIST_EMPTY(PDAs) to_chat(usr, "This PDA does not have a pen in it!") //trying to insert or remove an id -/obj/item/device/pda/proc/id_check(mob/user, obj/item/card/id/I) +/obj/item/pda/proc/id_check(mob/user, obj/item/card/id/I) if(!I) if(id) remove_id() @@ -763,7 +771,7 @@ GLOBAL_LIST_EMPTY(PDAs) return 1 // access to status display signals -/obj/item/device/pda/attackby(obj/item/C, mob/user, params) +/obj/item/pda/attackby(obj/item/C, mob/user, params) if(istype(C, /obj/item/cartridge) && !cartridge) if(!user.transferItemToLoc(C, src)) return @@ -791,7 +799,7 @@ GLOBAL_LIST_EMPTY(PDAs) updateSelfDialog()//Update self dialog on success. return //Return in case of failed check or when successful. updateSelfDialog()//For the non-input related code. - else if(istype(C, /obj/item/device/paicard) && !src.pai) + else if(istype(C, /obj/item/paicard) && !src.pai) if(!user.transferItemToLoc(C, src)) return pai = C @@ -814,7 +822,7 @@ GLOBAL_LIST_EMPTY(PDAs) else return ..() -/obj/item/device/pda/attack(mob/living/carbon/C, mob/living/user) +/obj/item/pda/attack(mob/living/carbon/C, mob/living/user) if(istype(C)) switch(scanmode) @@ -832,7 +840,7 @@ GLOBAL_LIST_EMPTY(PDAs) else user.show_message("No radiation detected.") -/obj/item/device/pda/afterattack(atom/A as mob|obj|turf|area, mob/user, proximity) +/obj/item/pda/afterattack(atom/A as mob|obj|turf|area, mob/user, proximity) if(!proximity) return switch(scanmode) @@ -886,7 +894,7 @@ GLOBAL_LIST_EMPTY(PDAs) to_chat(user, "Paper scanned. Saved to PDA's notekeeper." ) -/obj/item/device/pda/proc/explode() //This needs tuning. +/obj/item/pda/proc/explode() //This needs tuning. if(!detonatable) return var/turf/T = get_turf(src) @@ -906,7 +914,7 @@ GLOBAL_LIST_EMPTY(PDAs) qdel(src) return -/obj/item/device/pda/Destroy() +/obj/item/pda/Destroy() GLOB.PDAs -= src if(istype(id)) QDEL_NULL(id) @@ -928,7 +936,7 @@ GLOBAL_LIST_EMPTY(PDAs) to_chat(user, "Turn on your receiver in order to send messages.") return - for (var/obj/item/device/pda/P in get_viewable_pdas()) + for (var/obj/item/pda/P in get_viewable_pdas()) if (P == src) continue else if (P == src.aiPDA) @@ -989,7 +997,7 @@ GLOBAL_LIST_EMPTY(PDAs) // Pass along the pulse to atoms in contents, largely added so pAIs are vulnerable to EMP -/obj/item/device/pda/emp_act(severity) +/obj/item/pda/emp_act(severity) for(var/atom/A in src) A.emp_act(severity) emped += 1 @@ -999,7 +1007,7 @@ GLOBAL_LIST_EMPTY(PDAs) /proc/get_viewable_pdas() . = list() // Returns a list of PDAs which can be viewed from another PDA/message monitor. - for(var/obj/item/device/pda/P in GLOB.PDAs) + for(var/obj/item/pda/P in GLOB.PDAs) if(!P.owner || P.toff || P.hidden) continue . += P @@ -1009,3 +1017,4 @@ GLOBAL_LIST_EMPTY(PDAs) #undef PDA_SCANNER_REAGENT #undef PDA_SCANNER_HALOGEN #undef PDA_SCANNER_GAS +#undef PDA_SPAM_DELAY \ No newline at end of file diff --git a/code/game/objects/items/devices/PDA/PDA_types.dm b/code/game/objects/items/devices/PDA/PDA_types.dm index 093b6c1e51..c1cc5d69a3 100644 --- a/code/game/objects/items/devices/PDA/PDA_types.dm +++ b/code/game/objects/items/devices/PDA/PDA_types.dm @@ -1,5 +1,5 @@ //Clown PDA is slippery. -/obj/item/device/pda/clown +/obj/item/pda/clown name = "clown PDA" default_cartridge = /obj/item/cartridge/virus/clown inserted_item = /obj/item/toy/crayon/rainbow @@ -8,11 +8,11 @@ ttone = "honk" var/slipvictims = list() //CIT CHANGE - makes clown PDAs track unique people slipped -/obj/item/device/pda/clown/Initialize() +/obj/item/pda/clown/Initialize() . = ..() AddComponent(/datum/component/slippery, 120, NO_SLIP_WHEN_WALKING, CALLBACK(src, .proc/AfterSlip)) -/obj/item/device/pda/clown/proc/AfterSlip(mob/living/carbon/human/M) +/obj/item/pda/clown/proc/AfterSlip(mob/living/carbon/human/M) if (istype(M) && (M.real_name != owner)) slipvictims |= M //CIT CHANGE - makes clown PDAs track unique people slipped var/obj/item/cartridge/virus/clown/cart = cartridge @@ -20,66 +20,66 @@ cart.charges++ // Special AI/pAI PDAs that cannot explode. -/obj/item/device/pda/ai +/obj/item/pda/ai icon_state = "NONE" ttone = "data" fon = FALSE detonatable = FALSE -/obj/item/device/pda/ai/attack_self(mob/user) +/obj/item/pda/ai/attack_self(mob/user) if ((honkamt > 0) && (prob(60)))//For clown virus. honkamt-- playsound(loc, 'sound/items/bikehorn.ogg', 30, 1) return -/obj/item/device/pda/ai/pai +/obj/item/pda/ai/pai ttone = "assist" -/obj/item/device/pda/medical +/obj/item/pda/medical name = "medical PDA" default_cartridge = /obj/item/cartridge/medical icon_state = "pda-medical" -/obj/item/device/pda/viro +/obj/item/pda/viro name = "virology PDA" default_cartridge = /obj/item/cartridge/medical icon_state = "pda-virology" -/obj/item/device/pda/engineering +/obj/item/pda/engineering name = "engineering PDA" default_cartridge = /obj/item/cartridge/engineering icon_state = "pda-engineer" -/obj/item/device/pda/security +/obj/item/pda/security name = "security PDA" default_cartridge = /obj/item/cartridge/security icon_state = "pda-security" -/obj/item/device/pda/detective +/obj/item/pda/detective name = "detective PDA" default_cartridge = /obj/item/cartridge/detective icon_state = "pda-detective" -/obj/item/device/pda/warden +/obj/item/pda/warden name = "warden PDA" default_cartridge = /obj/item/cartridge/security icon_state = "pda-warden" -/obj/item/device/pda/janitor +/obj/item/pda/janitor name = "janitor PDA" default_cartridge = /obj/item/cartridge/janitor icon_state = "pda-janitor" ttone = "slip" -/obj/item/device/pda/toxins +/obj/item/pda/toxins name = "scientist PDA" default_cartridge = /obj/item/cartridge/signal/toxins icon_state = "pda-science" ttone = "boom" -/obj/item/device/pda/mime +/obj/item/pda/mime name = "mime PDA" default_cartridge = /obj/item/cartridge/virus/mime inserted_item = /obj/item/toy/crayon/mime @@ -87,88 +87,88 @@ silent = TRUE ttone = "silence" -/obj/item/device/pda/heads +/obj/item/pda/heads default_cartridge = /obj/item/cartridge/head icon_state = "pda-hop" -/obj/item/device/pda/heads/hop +/obj/item/pda/heads/hop name = "head of personnel PDA" default_cartridge = /obj/item/cartridge/hop icon_state = "pda-hop" -/obj/item/device/pda/heads/hos +/obj/item/pda/heads/hos name = "head of security PDA" default_cartridge = /obj/item/cartridge/hos icon_state = "pda-hos" -/obj/item/device/pda/heads/ce +/obj/item/pda/heads/ce name = "chief engineer PDA" default_cartridge = /obj/item/cartridge/ce icon_state = "pda-ce" -/obj/item/device/pda/heads/cmo +/obj/item/pda/heads/cmo name = "chief medical officer PDA" default_cartridge = /obj/item/cartridge/cmo icon_state = "pda-cmo" -/obj/item/device/pda/heads/rd +/obj/item/pda/heads/rd name = "research director PDA" default_cartridge = /obj/item/cartridge/rd inserted_item = /obj/item/pen/fountain icon_state = "pda-rd" -/obj/item/device/pda/captain +/obj/item/pda/captain name = "captain PDA" default_cartridge = /obj/item/cartridge/captain inserted_item = /obj/item/pen/fountain/captain icon_state = "pda-captain" detonatable = FALSE -/obj/item/device/pda/cargo +/obj/item/pda/cargo name = "cargo technician PDA" default_cartridge = /obj/item/cartridge/quartermaster icon_state = "pda-cargo" -/obj/item/device/pda/quartermaster +/obj/item/pda/quartermaster name = "quartermaster PDA" default_cartridge = /obj/item/cartridge/quartermaster inserted_item = /obj/item/pen/fountain icon_state = "pda-qm" -/obj/item/device/pda/shaftminer +/obj/item/pda/shaftminer name = "shaft miner PDA" icon_state = "pda-miner" -/obj/item/device/pda/syndicate +/obj/item/pda/syndicate default_cartridge = /obj/item/cartridge/virus/syndicate icon_state = "pda-syndi" name = "military PDA" owner = "John Doe" hidden = 1 -/obj/item/device/pda/chaplain +/obj/item/pda/chaplain name = "chaplain PDA" icon_state = "pda-chaplain" ttone = "holy" -/obj/item/device/pda/lawyer +/obj/item/pda/lawyer name = "lawyer PDA" default_cartridge = /obj/item/cartridge/lawyer inserted_item = /obj/item/pen/fountain icon_state = "pda-lawyer" ttone = "objection" -/obj/item/device/pda/botanist +/obj/item/pda/botanist name = "botanist PDA" //default_cartridge = /obj/item/cartridge/botanist icon_state = "pda-hydro" -/obj/item/device/pda/roboticist +/obj/item/pda/roboticist name = "roboticist PDA" icon_state = "pda-roboticist" default_cartridge = /obj/item/cartridge/roboticist -/obj/item/device/pda/curator +/obj/item/pda/curator name = "curator PDA" icon_state = "pda-library" icon_alert = "pda-r-library" @@ -179,32 +179,32 @@ silent = TRUE //Quiet in the library! overlays_x_offset = -3 -/obj/item/device/pda/clear +/obj/item/pda/clear name = "clear PDA" icon_state = "pda-clear" desc = "A portable microcomputer by Thinktronic Systems, LTD. This model is a special edition with a transparent case." note = "Congratulations, you have chosen the Thinktronic 5230 Personal Data Assistant Deluxe Special Max Turbo Limited Edition!" -/obj/item/device/pda/cook +/obj/item/pda/cook name = "cook PDA" icon_state = "pda-cook" -/obj/item/device/pda/bar +/obj/item/pda/bar name = "bartender PDA" icon_state = "pda-bartender" inserted_item = /obj/item/pen/fountain -/obj/item/device/pda/atmos +/obj/item/pda/atmos name = "atmospherics PDA" default_cartridge = /obj/item/cartridge/atmos icon_state = "pda-atmos" -/obj/item/device/pda/chemist +/obj/item/pda/chemist name = "chemist PDA" default_cartridge = /obj/item/cartridge/chemistry icon_state = "pda-chemistry" -/obj/item/device/pda/geneticist +/obj/item/pda/geneticist name = "geneticist PDA" default_cartridge = /obj/item/cartridge/medical icon_state = "pda-genetics" diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm index 318aaa9e24..2737f24cbe 100644 --- a/code/game/objects/items/devices/PDA/cart.dm +++ b/code/game/objects/items/devices/PDA/cart.dm @@ -1,18 +1,18 @@ -#define CART_SECURITY (1<<0) -#define CART_ENGINE (1<<1) -#define CART_ATMOS (1<<2) -#define CART_MEDICAL (1<<3) -#define CART_MANIFEST (1<<4) -#define CART_CLOWN (1<<5) -#define CART_MIME (1<<6) -#define CART_JANITOR (1<<7) +#define CART_SECURITY (1<<0) +#define CART_ENGINE (1<<1) +#define CART_ATMOS (1<<2) +#define CART_MEDICAL (1<<3) +#define CART_MANIFEST (1<<4) +#define CART_CLOWN (1<<5) +#define CART_MIME (1<<6) +#define CART_JANITOR (1<<7) #define CART_REAGENT_SCANNER (1<<8) -#define CART_NEWSCASTER (1<<9) -#define CART_REMOTE_DOOR (1<<10) -#define CART_STATUS_DISPLAY (1<<11) -#define CART_QUARTERMASTER (1<<12) -#define CART_HYDROPONICS (1<<13) -#define CART_DRONEPHONE (1<<14) +#define CART_NEWSCASTER (1<<9) +#define CART_REMOTE_DOOR (1<<10) +#define CART_STATUS_DISPLAY (1<<11) +#define CART_QUARTERMASTER (1<<12) +#define CART_HYDROPONICS (1<<13) +#define CART_DRONEPHONE (1<<14) /obj/item/cartridge @@ -34,7 +34,7 @@ var/bot_access_flags = 0 //Bit flags. Selection: SEC_BOT | MULE_BOT | FLOOR_BOT | CLEAN_BOT | MED_BOT var/spam_enabled = 0 //Enables "Send to All" Option - var/obj/item/device/pda/host_pda = null + var/obj/item/pda/host_pda = null var/menu var/datum/data/record/active1 = null //General var/datum/data/record/active2 = null //Medical @@ -51,7 +51,7 @@ /obj/item/cartridge/Initialize() . = ..() - var/obj/item/device/pda/pda = loc + var/obj/item/pda/pda = loc if(istype(pda)) host_pda = pda @@ -710,7 +710,7 @@ Code: return "" //If the cartridge adds something to each potetial messaging target -/obj/item/cartridge/proc/message_special(obj/item/device/pda/target) +/obj/item/cartridge/proc/message_special(obj/item/pda/target) return "" //This is called for special abilities of cartridges diff --git a/code/game/objects/items/devices/PDA/virus_cart.dm b/code/game/objects/items/devices/PDA/virus_cart.dm index 57b6316043..dfbf6db88c 100644 --- a/code/game/objects/items/devices/PDA/virus_cart.dm +++ b/code/game/objects/items/devices/PDA/virus_cart.dm @@ -2,19 +2,19 @@ name = "Generic Virus PDA cart" var/charges = 5 -/obj/item/cartridge/virus/proc/send_virus(obj/item/device/pda/target, mob/living/U) +/obj/item/cartridge/virus/proc/send_virus(obj/item/pda/target, mob/living/U) return /obj/item/cartridge/virus/message_header() return "[charges] viral files left.
    " -/obj/item/cartridge/virus/message_special(obj/item/device/pda/target) - if (!istype(loc, /obj/item/device/pda)) +/obj/item/cartridge/virus/message_special(obj/item/pda/target) + if (!istype(loc, /obj/item/pda)) return "" //Sanity check, this shouldn't be possible. return " (*Send Virus*)" /obj/item/cartridge/virus/special(mob/living/user, list/params) - var/obj/item/device/pda/P = locate(params["target"])//Leaving it alone in case it may do something useful, I guess. + var/obj/item/pda/P = locate(params["target"])//Leaving it alone in case it may do something useful, I guess. send_virus(P,user) /obj/item/cartridge/virus/clown @@ -23,7 +23,7 @@ desc = "A data cartridge for portable microcomputers. It smells vaguely of bananas." access = CART_CLOWN -/obj/item/cartridge/virus/clown/send_virus(obj/item/device/pda/target, mob/living/U) +/obj/item/cartridge/virus/clown/send_virus(obj/item/pda/target, mob/living/U) if(charges <= 0) to_chat(U, "Out of charges.") return @@ -39,7 +39,7 @@ icon_state = "cart-mi" access = CART_MIME -/obj/item/cartridge/virus/mime/send_virus(obj/item/device/pda/target, mob/living/U) +/obj/item/cartridge/virus/mime/send_virus(obj/item/pda/target, mob/living/U) if(charges <= 0) to_chat(U, "Out of charges.") return @@ -58,7 +58,7 @@ remote_door_id = "smindicate" //Make sure this matches the syndicate shuttle's shield/door id!! //don't ask about the name, testing. charges = 4 -/obj/item/cartridge/virus/syndicate/send_virus(obj/item/device/pda/target, mob/living/U) +/obj/item/cartridge/virus/syndicate/send_virus(obj/item/pda/target, mob/living/U) if(charges <= 0) to_chat(U, "Out of charges.") return @@ -75,6 +75,13 @@ if(!target.detonatable || prob(difficulty * 15) || (hidden_uplink)) U.show_message("An error flashes on your [src].", 1) else + var/turf/T = get_turf(target) + var/area/A = get_area(T) + message_admins("[!is_special_character(U) ? "Non-antag " : ""][key_name_admin(U)][ADMIN_FLW(U)] triggered a PDA explosion on [target.name] at [A] [ADMIN_COORDJMP(T)].") + var/message_log = "triggered a PDA explosion on [target.name] at at [A] [COORD(T)]." + U.log_message(message_log, INDIVIDUAL_ATTACK_LOG) + log_game("[key_name(U)] [message_log]") + log_attack("[key_name(U)] [message_log]") U.show_message("Success!", 1) target.explode() else @@ -85,7 +92,7 @@ icon_state = "cart" var/telecrystals = 0 -/obj/item/cartridge/virus/frame/send_virus(obj/item/device/pda/target, mob/living/U) +/obj/item/cartridge/virus/frame/send_virus(obj/item/pda/target, mob/living/U) if(charges <= 0) to_chat(U, "Out of charges.") return diff --git a/code/game/objects/items/devices/aicard.dm b/code/game/objects/items/devices/aicard.dm index f9e510bbea..8947009974 100644 --- a/code/game/objects/items/devices/aicard.dm +++ b/code/game/objects/items/devices/aicard.dm @@ -1,4 +1,4 @@ -/obj/item/device/aicard +/obj/item/aicard name = "intelliCard" desc = "A storage device for AIs. Patent pending." icon = 'icons/obj/aicards.dmi' @@ -12,11 +12,11 @@ var/flush = FALSE var/mob/living/silicon/ai/AI -/obj/item/device/aicard/suicide_act(mob/living/user) +/obj/item/aicard/suicide_act(mob/living/user) user.visible_message("[user] is trying to upload themselves into [src]! That's not going to work out well!") return BRUTELOSS -/obj/item/device/aicard/afterattack(atom/target, mob/user, proximity) +/obj/item/aicard/afterattack(atom/target, mob/user, proximity) ..() if(!proximity || !target) return @@ -27,7 +27,7 @@ target.transfer_ai(AI_TRANS_TO_CARD, user, null, src) update_icon() //Whatever happened, update the card's state (icon, name) to match. -/obj/item/device/aicard/update_icon() +/obj/item/aicard/update_icon() cut_overlays() if(AI) name = "[initial(name)]- [AI.name]" @@ -42,14 +42,14 @@ name = initial(name) icon_state = initial(icon_state) -/obj/item/device/aicard/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \ +/obj/item/aicard/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \ datum/tgui/master_ui = null, datum/ui_state/state = GLOB.hands_state) ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) ui = new(user, src, ui_key, "intellicard", name, 500, 500, master_ui, state) ui.open() -/obj/item/device/aicard/ui_data() +/obj/item/aicard/ui_data() var/list/data = list() if(AI) data["name"] = AI.name @@ -62,7 +62,7 @@ data["wiping"] = flush return data -/obj/item/device/aicard/ui_act(action,params) +/obj/item/aicard/ui_act(action,params) if(..()) return switch(action) diff --git a/code/game/objects/items/devices/beacon.dm b/code/game/objects/items/devices/beacon.dm index 5611784f8c..e868ec07b6 100644 --- a/code/game/objects/items/devices/beacon.dm +++ b/code/game/objects/items/devices/beacon.dm @@ -1,4 +1,4 @@ -/obj/item/device/beacon +/obj/item/beacon name = "\improper tracking beacon" desc = "A beacon used by a teleporter." icon = 'icons/obj/device.dmi' @@ -9,18 +9,18 @@ var/enabled = TRUE var/renamed = FALSE -/obj/item/device/beacon/Initialize() +/obj/item/beacon/Initialize() . = ..() if (enabled) GLOB.teleportbeacons += src else icon_state = "beacon-off" -/obj/item/device/beacon/Destroy() +/obj/item/beacon/Destroy() GLOB.teleportbeacons.Remove(src) return ..() -/obj/item/device/beacon/attack_self(mob/user) +/obj/item/beacon/attack_self(mob/user) enabled = !enabled if (enabled) icon_state = "beacon" @@ -31,7 +31,7 @@ to_chat(user, "You [enabled ? "enable" : "disable"] the beacon.") return -/obj/item/device/beacon/attackby(obj/item/W, mob/user) +/obj/item/beacon/attackby(obj/item/W, mob/user) if(istype(W, /obj/item/pen)) // needed for things that use custom names like the locator var/new_name = stripped_input(user, "What would you like the name to be?") if(!user.canUseTopic(src, BE_CLOSE)) diff --git a/code/game/objects/items/devices/camera_bug.dm b/code/game/objects/items/devices/camera_bug.dm index 770c72ac54..d140c234ce 100644 --- a/code/game/objects/items/devices/camera_bug.dm +++ b/code/game/objects/items/devices/camera_bug.dm @@ -5,7 +5,7 @@ -/obj/item/device/camera_bug +/obj/item/camera_bug name = "camera bug" desc = "For illicit snooping through the camera network." icon = 'icons/obj/device.dmi' @@ -31,11 +31,11 @@ var/last_found = null var/last_seen = null -/obj/item/device/camera_bug/New() +/obj/item/camera_bug/New() ..() START_PROCESSING(SSobj, src) -/obj/item/device/camera_bug/Destroy() +/obj/item/camera_bug/Destroy() get_cameras() for(var/cam_tag in bugged_cameras) var/obj/machinery/camera/camera = bugged_cameras[cam_tag] @@ -46,20 +46,20 @@ tracking = null return ..() -/obj/item/device/camera_bug/interact(mob/user) +/obj/item/camera_bug/interact(mob/user) ui_interact(user) -/obj/item/device/camera_bug/ui_interact(mob/user = usr) +/obj/item/camera_bug/ui_interact(mob/user = usr) . = ..() var/datum/browser/popup = new(user, "camerabug","Camera Bug",nref=src) popup.set_content(menu(get_cameras())) popup.open() -/obj/item/device/camera_bug/attack_self(mob/user) +/obj/item/camera_bug/attack_self(mob/user) user.set_machine(src) interact(user) -/obj/item/device/camera_bug/check_eye(mob/user) +/obj/item/camera_bug/check_eye(mob/user) if ( loc != user || user.incapacitated() || user.eye_blind || !current ) user.unset_machine() return 0 @@ -70,10 +70,10 @@ user.unset_machine() return 0 return 1 -/obj/item/device/camera_bug/on_unset_machine(mob/user) +/obj/item/camera_bug/on_unset_machine(mob/user) user.reset_perspective(null) -/obj/item/device/camera_bug/proc/get_cameras() +/obj/item/camera_bug/proc/get_cameras() if( world.time > (last_net_update + 100)) bugged_cameras = list() for(var/obj/machinery/camera/camera in GLOB.cameranet.cameras) @@ -85,7 +85,7 @@ return bugged_cameras -/obj/item/device/camera_bug/proc/menu(list/cameras) +/obj/item/camera_bug/proc/menu(list/cameras) if(!cameras || !cameras.len) return "No bugged cameras found." @@ -139,12 +139,12 @@ return .(cameras) return html -/obj/item/device/camera_bug/proc/get_seens() +/obj/item/camera_bug/proc/get_seens() if(current && current.can_use()) var/list/seen = current.can_see() return seen -/obj/item/device/camera_bug/proc/camera_report() +/obj/item/camera_bug/proc/camera_report() // this should only be called if current exists var/dat = "" var/list/seen = get_seens() @@ -189,7 +189,7 @@ else return "Camera Offline
    " -/obj/item/device/camera_bug/Topic(href,list/href_list) +/obj/item/camera_bug/Topic(href,list/href_list) if(usr != loc) usr.unset_machine() usr << browse(null, "window=camerabug") @@ -256,7 +256,7 @@ interact() -/obj/item/device/camera_bug/process() +/obj/item/camera_bug/process() if(track_mode == BUGMODE_LIST || (world.time < (last_tracked + refresh_interval))) return last_tracked = world.time diff --git a/code/game/objects/items/devices/chameleonproj.dm b/code/game/objects/items/devices/chameleonproj.dm index c759eecc82..181ae9eb41 100644 --- a/code/game/objects/items/devices/chameleonproj.dm +++ b/code/game/objects/items/devices/chameleonproj.dm @@ -1,5 +1,6 @@ -/obj/item/device/chameleon +/obj/item/chameleon name = "chameleon-projector" + icon = 'icons/obj/device.dmi' icon_state = "shield0" flags_1 = CONDUCT_1 | NOBLUDGEON_1 slot_flags = SLOT_BELT @@ -14,26 +15,26 @@ var/obj/effect/dummy/chameleon/active_dummy = null var/saved_appearance = null -/obj/item/device/chameleon/New() +/obj/item/chameleon/New() ..() var/obj/item/cigbutt/butt = /obj/item/cigbutt saved_appearance = initial(butt.appearance) -/obj/item/device/chameleon/dropped() +/obj/item/chameleon/dropped() ..() disrupt() -/obj/item/device/chameleon/equipped() +/obj/item/chameleon/equipped() ..() disrupt() -/obj/item/device/chameleon/attack_self(mob/user) +/obj/item/chameleon/attack_self(mob/user) if (isturf(user.loc) || istype(user.loc, /obj/structure) || active_dummy) toggle(user) else to_chat(user, "You can't use [src] while inside something!") -/obj/item/device/chameleon/afterattack(atom/target, mob/user , proximity) +/obj/item/chameleon/afterattack(atom/target, mob/user , proximity) if(!proximity) return if(!check_sprite(target)) @@ -48,12 +49,12 @@ temp.plane = initial(target.plane) saved_appearance = temp.appearance -/obj/item/device/chameleon/proc/check_sprite(atom/target) +/obj/item/chameleon/proc/check_sprite(atom/target) if(target.icon_state in icon_states(target.icon)) return TRUE return FALSE -/obj/item/device/chameleon/proc/toggle(mob/user) +/obj/item/chameleon/proc/toggle(mob/user) if(!can_use || !saved_appearance) return if(active_dummy) @@ -71,7 +72,7 @@ new /obj/effect/temp_visual/emp/pulse(get_turf(src)) user.cancel_camera() -/obj/item/device/chameleon/proc/disrupt(delete_dummy = 1) +/obj/item/chameleon/proc/disrupt(delete_dummy = 1) if(active_dummy) for(var/mob/M in active_dummy) to_chat(M, "Your chameleon-projector deactivates.") @@ -86,7 +87,7 @@ can_use = 0 spawn(50) can_use = 1 -/obj/item/device/chameleon/proc/eject_all() +/obj/item/chameleon/proc/eject_all() for(var/atom/movable/A in active_dummy) A.forceMove(active_dummy.loc) if(ismob(A)) @@ -98,9 +99,9 @@ desc = "" density = FALSE var/can_move = 0 - var/obj/item/device/chameleon/master = null + var/obj/item/chameleon/master = null -/obj/effect/dummy/chameleon/proc/activate(mob/M, saved_appearance, obj/item/device/chameleon/C) +/obj/effect/dummy/chameleon/proc/activate(mob/M, saved_appearance, obj/item/chameleon/C) appearance = saved_appearance if(istype(M.buckled, /obj/vehicle)) var/obj/vehicle/V = M.buckled diff --git a/code/game/objects/items/devices/dogborg_sleeper.dm b/code/game/objects/items/devices/dogborg_sleeper.dm index 8b51681f86..b21ba58380 100644 --- a/code/game/objects/items/devices/dogborg_sleeper.dm +++ b/code/game/objects/items/devices/dogborg_sleeper.dm @@ -1,6 +1,6 @@ // Dogborg Sleeper units -/obj/item/device/dogborg/sleeper +/obj/item/dogborg/sleeper name = "hound sleeper" desc = "nothing should see this." icon = 'icons/mob/dogborg.dmi' @@ -22,7 +22,7 @@ var/static/list/important_items = typecacheof(list( /obj/item/hand_tele, /obj/item/card/id, - /obj/item/device/aicard, + /obj/item/aicard, /obj/item/gun, /obj/item/pinpointer, /obj/item/clothing/shoes/magboots, @@ -45,15 +45,15 @@ // Bags are prohibited from this due to the potential explotation of objects, same with brought -/obj/item/device/dogborg/sleeper/New() +/obj/item/dogborg/sleeper/New() ..() update_icon() flags_1 |= NOBLUDGEON_1 //No more attack messages -/obj/item/device/dogborg/sleeper/Exit(atom/movable/O) +/obj/item/dogborg/sleeper/Exit(atom/movable/O) return 0 -/obj/item/device/dogborg/sleeper/afterattack(mob/living/carbon/target, mob/living/silicon/user, proximity) +/obj/item/dogborg/sleeper/afterattack(mob/living/carbon/target, mob/living/silicon/user, proximity) hound = loc if(!proximity) return @@ -91,7 +91,7 @@ message_admins("[key_name(hound)] has sleeper'd [key_name(patient)] as a dogborg. [ADMIN_JMP(src)]") playsound(hound, 'sound/effects/bin_close.ogg', 100, 1) -/obj/item/device/dogborg/sleeper/container_resist(mob/living/user) +/obj/item/dogborg/sleeper/container_resist(mob/living/user) hound = loc user.changeNext_move(CLICK_CD_BREAKOUT) user.last_special = world.time + CLICK_CD_BREAKOUT @@ -107,7 +107,7 @@ "You successfully break out of [hound.name]!") go_out() -/obj/item/device/dogborg/sleeper/proc/go_out(var/target) +/obj/item/dogborg/sleeper/proc/go_out(var/target) hound = loc hound.setClickCooldown(50) if(length(contents) > 0) @@ -139,12 +139,12 @@ cleaning = FALSE update_gut() -/obj/item/device/dogborg/sleeper/attack_self(mob/user) +/obj/item/dogborg/sleeper/attack_self(mob/user) if(..()) return ui_interact(user) -/obj/item/device/dogborg/sleeper/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \ +/obj/item/dogborg/sleeper/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \ datum/tgui/master_ui = null, datum/ui_state/state = GLOB.notcontained_state) ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) @@ -152,7 +152,7 @@ ui = new(user, src, ui_key, "dogborg_sleeper", name, 375, 550, master_ui, state) ui.open() -/obj/item/device/dogborg/sleeper/ui_data() +/obj/item/dogborg/sleeper/ui_data() var/list/data = list() data["occupied"] = patient ? 1 : 0 @@ -197,7 +197,7 @@ data["occupant"]["reagents"] += list(list("name" = R.name, "volume" = R.volume)) return data -/obj/item/device/dogborg/sleeper/ui_act(action, params) +/obj/item/dogborg/sleeper/ui_act(action, params) if(..()) return @@ -221,7 +221,7 @@ clean_cycle() . = TRUE -/obj/item/device/dogborg/sleeper/proc/update_gut() +/obj/item/dogborg/sleeper/proc/update_gut() //Well, we HAD one, what happened to them? if(patient in contents) if(patient_laststat != patient.stat) @@ -268,7 +268,7 @@ return //Gurgleborg process -/obj/item/device/dogborg/sleeper/proc/clean_cycle() +/obj/item/dogborg/sleeper/proc/clean_cycle() //Sanity for(var/I in items_preserved) if(!(I in contents)) @@ -341,10 +341,10 @@ if(cleaning) addtimer(CALLBACK(src, .proc/clean_cycle), 50) -/obj/item/device/dogborg/sleeper/proc/CheckAccepted(obj/item/I) +/obj/item/dogborg/sleeper/proc/CheckAccepted(obj/item/I) return is_type_in_typecache(I, important_items) -/obj/item/device/dogborg/sleeper/proc/inject_chem(chem) +/obj/item/dogborg/sleeper/proc/inject_chem(chem) if(hound.cell.charge <= 800) //This is so borgs don't kill themselves with it. Remember, 750 charge used every injection. to_chat(hound, "You don't have enough power to synthesize fluids.") return @@ -356,13 +356,13 @@ var/units = round(patient.reagents.get_reagent_amount(chem)) to_chat(hound, "Injecting [units] unit\s of [chem] into occupant.") //If they were immersed, the reagents wouldn't leave with them. -/obj/item/device/dogborg/sleeper/medihound //Medihound sleeper +/obj/item/dogborg/sleeper/medihound //Medihound sleeper name = "Mobile Sleeper" desc = "Equipment for medical hound. A mounted sleeper that stabilizes patients and can inject reagents in the borg's reserves." icon = 'icons/mob/dogborg.dmi' icon_state = "sleeper" -/obj/item/device/dogborg/sleeper/K9 //The K9 portabrig +/obj/item/dogborg/sleeper/K9 //The K9 portabrig name = "Mobile Brig" desc = "Equipment for a K9 unit. A mounted portable-brig that holds criminals." icon = 'icons/mob/dogborg.dmi' @@ -371,10 +371,13 @@ min_health = -100 injection_chems = null //So they don't have all the same chems as the medihound! -/obj/item/storage/attackby(obj/item/device/dogborg/sleeper/K9, mob/user, proximity) - K9.afterattack(src, user ,1) +/obj/item/storage/attackby(obj/item/dogborg/sleeper/K9, mob/user, proximity) + if(istype(K9)) + K9.afterattack(src, user ,1) + else + . = ..() -/obj/item/device/dogborg/sleeper/K9/afterattack(var/atom/movable/target, mob/living/silicon/user, proximity) +/obj/item/dogborg/sleeper/K9/afterattack(var/atom/movable/target, mob/living/silicon/user, proximity) hound = loc if(!istype(target)) @@ -410,7 +413,7 @@ return return -/obj/item/device/dogborg/sleeper/compactor //Janihound gut. +/obj/item/dogborg/sleeper/compactor //Janihound gut. name = "garbage processor" desc = "A mounted garbage compactor unit with fuel processor." icon = 'icons/mob/dogborg.dmi' @@ -420,10 +423,13 @@ injection_chems = null //So they don't have all the same chems as the medihound! var/max_item_count = 30 -/obj/item/storage/attackby(obj/item/device/dogborg/sleeper/compactor, mob/user, proximity) //GIT CIRCUMVENTED YO! - compactor.afterattack(src, user ,1) +/obj/item/storage/attackby(obj/item/dogborg/sleeper/compactor, mob/user, proximity) //GIT CIRCUMVENTED YO! + if(istype(compactor)) + compactor.afterattack(src, user ,1) + else + . = ..() -/obj/item/device/dogborg/sleeper/compactor/afterattack(var/atom/movable/target, mob/living/silicon/user, proximity)//GARBO NOMS +/obj/item/dogborg/sleeper/compactor/afterattack(var/atom/movable/target, mob/living/silicon/user, proximity)//GARBO NOMS hound = loc var/obj/item/target_obj = target if(!istype(target)) diff --git a/code/game/objects/items/devices/doorCharge.dm b/code/game/objects/items/devices/doorCharge.dm index 2fc3770f1c..6fa1b9d742 100644 --- a/code/game/objects/items/devices/doorCharge.dm +++ b/code/game/objects/items/devices/doorCharge.dm @@ -1,6 +1,7 @@ -/obj/item/device/doorCharge +/obj/item/doorCharge name = "airlock charge" desc = null //Different examine for traitors + icon = 'icons/obj/device.dmi' item_state = "electronic" icon_state = "doorCharge" lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' @@ -13,7 +14,7 @@ attack_verb = list("blown up", "exploded", "detonated") materials = list(MAT_METAL=50, MAT_GLASS=30) -/obj/item/device/doorCharge/ex_act(severity, target) +/obj/item/doorCharge/ex_act(severity, target) switch(severity) if(1) visible_message("[src] detonates!") @@ -26,14 +27,14 @@ if(prob(25)) ex_act(EXPLODE_DEVASTATE) -/obj/item/device/doorCharge/Destroy() +/obj/item/doorCharge/Destroy() if(istype(loc, /obj/machinery/door/airlock)) var/obj/machinery/door/airlock/A = loc if(A.charge == src) A.charge = null return ..() -/obj/item/device/doorCharge/examine(mob/user) +/obj/item/doorCharge/examine(mob/user) ..() if(user.mind && user.mind.has_antag_datum(/datum/antagonist/traitor)) //No nuke ops because the device is excluded from nuclear to_chat(user, "A small explosive device that can be used to sabotage airlocks to cause an explosion upon opening. To apply, remove the airlock's maintenance panel and place it within.") diff --git a/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm b/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm index 6b465d71e1..2341a78bba 100644 --- a/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm +++ b/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm @@ -1,5 +1,5 @@ //Used by engineering cyborgs in place of generic circuits. -/obj/item/device/electroadaptive_pseudocircuit +/obj/item/electroadaptive_pseudocircuit name = "electroadaptive pseudocircuit" desc = "An all-in-one circuit imprinter, designer, synthesizer, outfitter, creator, and chef. It can be used in place of any generic circuit board during construction." icon = 'icons/obj/module.dmi' @@ -11,18 +11,18 @@ var/static/recycleable_circuits = typecacheof(list(/obj/item/electronics/firelock, /obj/item/electronics/airalarm, /obj/item/electronics/firealarm, \ /obj/item/electronics/apc))//A typecache of circuits consumable for material -/obj/item/device/electroadaptive_pseudocircuit/Initialize() +/obj/item/electroadaptive_pseudocircuit/Initialize() . = ..() maptext = "[circuits]" -/obj/item/device/electroadaptive_pseudocircuit/examine(mob/user) +/obj/item/electroadaptive_pseudocircuit/examine(mob/user) ..() if(iscyborg(user)) to_chat(user, "It has material for [circuits] circuit[circuits == 1 ? "" : "s"]. Use the pseudocircuit on existing circuits to gain material.") to_chat(user, "Serves as a substitute for fire/air alarm, firelock, and APC electronics.") to_chat(user, "It can also be used on an APC with no power cell to fabricate a low-capacity cell at a high power cost.") -/obj/item/device/electroadaptive_pseudocircuit/proc/adapt_circuit(mob/living/silicon/robot/R, circuit_cost = 0) +/obj/item/electroadaptive_pseudocircuit/proc/adapt_circuit(mob/living/silicon/robot/R, circuit_cost = 0) if(QDELETED(R) || !istype(R)) return if(!R.cell) @@ -46,7 +46,7 @@ addtimer(CALLBACK(src, .proc/recharge), recharge_time) return TRUE //The actual circuit magic itself is done on a per-object basis -/obj/item/device/electroadaptive_pseudocircuit/afterattack(atom/target, mob/living/user, proximity) +/obj/item/electroadaptive_pseudocircuit/afterattack(atom/target, mob/living/user, proximity) if(!proximity) return if(!is_type_in_typecache(target, recycleable_circuits)) @@ -58,7 +58,7 @@ playsound(user, 'sound/items/deconstruct.ogg', 50, TRUE) qdel(target) -/obj/item/device/electroadaptive_pseudocircuit/proc/recharge() +/obj/item/electroadaptive_pseudocircuit/proc/recharge() playsound(src, 'sound/machines/chime.ogg', 25, TRUE) recharging = FALSE icon_state = initial(icon_state) diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index 13ceeaedeb..8ba7a55d93 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -1,4 +1,4 @@ -/obj/item/device/flashlight +/obj/item/flashlight name = "flashlight" desc = "A hand-held emergency light." icon = 'icons/obj/lighting.dmi' @@ -15,11 +15,11 @@ var/brightness_on = 4 //range of light when on var/flashlight_power = 1 //strength of the light when on -/obj/item/device/flashlight/Initialize() +/obj/item/flashlight/Initialize() . = ..() update_brightness() -/obj/item/device/flashlight/proc/update_brightness(mob/user = null) +/obj/item/flashlight/proc/update_brightness(mob/user = null) if(on) icon_state = "[initial(icon_state)]-on" if(flashlight_power) @@ -30,7 +30,7 @@ icon_state = initial(icon_state) set_light(0) -/obj/item/device/flashlight/attack_self(mob/user) +/obj/item/flashlight/attack_self(mob/user) on = !on update_brightness(user) for(var/X in actions) @@ -38,14 +38,14 @@ A.UpdateButtonIcon() return 1 -/obj/item/device/flashlight/suicide_act(mob/living/carbon/human/user) +/obj/item/flashlight/suicide_act(mob/living/carbon/human/user) if (user.eye_blind) user.visible_message("[user] is putting [src] close to [user.p_their()] eyes and turning it on ... but [user.p_theyre()] blind!") return SHAME user.visible_message("[user] is putting [src] close to [user.p_their()] eyes and turning it on! It looks like [user.p_theyre()] trying to commit suicide!") return (FIRELOSS) -/obj/item/device/flashlight/attack(mob/living/carbon/M, mob/living/carbon/human/user) +/obj/item/flashlight/attack(mob/living/carbon/M, mob/living/carbon/human/user) add_fingerprint(user) if(istype(M) && on && user.zone_selected in list(BODY_ZONE_PRECISE_EYES, BODY_ZONE_PRECISE_MOUTH)) @@ -158,7 +158,7 @@ else return ..() -/obj/item/device/flashlight/pen +/obj/item/flashlight/pen name = "penlight" desc = "A pen-sized light, used by medical staff. It can also be used to create a hologram to alert people of incoming medical assistance." icon_state = "penlight" @@ -167,7 +167,7 @@ brightness_on = 2 var/holo_cooldown = 0 -/obj/item/device/flashlight/pen/afterattack(atom/target, mob/user, proximity_flag) +/obj/item/flashlight/pen/afterattack(atom/target, mob/user, proximity_flag) if(!proximity_flag) if(holo_cooldown > world.time) to_chat(user, "[src] is not ready yet!") @@ -192,7 +192,7 @@ visible_message("[creator] created a medical hologram!") -/obj/item/device/flashlight/seclite +/obj/item/flashlight/seclite name = "seclite" desc = "A robust flashlight used by security." icon_state = "seclite" @@ -204,7 +204,7 @@ hitsound = 'sound/weapons/genhit1.ogg' // the desk lamps are a bit special -/obj/item/device/flashlight/lamp +/obj/item/flashlight/lamp name = "desk lamp" desc = "A desk lamp with an adjustable mount." icon_state = "lamp" @@ -220,14 +220,14 @@ // green-shaded desk lamp -/obj/item/device/flashlight/lamp/green +/obj/item/flashlight/lamp/green desc = "A classic green-shaded desk lamp." icon_state = "lampgreen" item_state = "lampgreen" -/obj/item/device/flashlight/lamp/verb/toggle_light() +/obj/item/flashlight/lamp/verb/toggle_light() set name = "Toggle light" set category = "Object" set src in oview(1) @@ -236,7 +236,7 @@ attack_self(usr) //Bananalamp -/obj/item/device/flashlight/lamp/bananalamp +/obj/item/flashlight/lamp/bananalamp name = "banana lamp" desc = "Only a clown would think to make a ghetto banana-shaped lamp. Even has a goofy pullstring." icon_state = "bananalamp" @@ -244,7 +244,7 @@ // FLARES -/obj/item/device/flashlight/flare +/obj/item/flashlight/flare name = "flare" desc = "A red Nanotrasen issued flare. There are instructions on the side, it reads 'pull cord, make light'." w_class = WEIGHT_CLASS_SMALL @@ -259,11 +259,11 @@ light_color = LIGHT_COLOR_FLARE grind_results = list("sulfur" = 15) -/obj/item/device/flashlight/flare/New() +/obj/item/flashlight/flare/New() fuel = rand(800, 1000) // Sorry for changing this so much but I keep under-estimating how long X number of ticks last in seconds. ..() -/obj/item/device/flashlight/flare/process() +/obj/item/flashlight/flare/process() open_flame(heat) fuel = max(fuel - 1, 0) if(!fuel || !on) @@ -272,14 +272,14 @@ icon_state = "[initial(icon_state)]-empty" STOP_PROCESSING(SSobj, src) -/obj/item/device/flashlight/flare/ignition_effect(atom/A, mob/user) +/obj/item/flashlight/flare/ignition_effect(atom/A, mob/user) if(fuel && on) . = "[user] lights [A] with [src] like a real \ badass." else . = "" -/obj/item/device/flashlight/flare/proc/turn_off() +/obj/item/flashlight/flare/proc/turn_off() on = FALSE force = initial(src.force) damtype = initial(src.damtype) @@ -289,14 +289,14 @@ else update_brightness(null) -/obj/item/device/flashlight/flare/update_brightness(mob/user = null) +/obj/item/flashlight/flare/update_brightness(mob/user = null) ..() if(on) item_state = "[initial(item_state)]-on" else item_state = "[initial(item_state)]" -/obj/item/device/flashlight/flare/attack_self(mob/user) +/obj/item/flashlight/flare/attack_self(mob/user) // Usual checks if(!fuel) @@ -314,10 +314,10 @@ damtype = "fire" START_PROCESSING(SSobj, src) -/obj/item/device/flashlight/flare/is_hot() +/obj/item/flashlight/flare/is_hot() return on * heat -/obj/item/device/flashlight/flare/torch +/obj/item/flashlight/flare/torch name = "torch" desc = "A torch fashioned from some leaves and a log." w_class = WEIGHT_CLASS_BULKY @@ -330,7 +330,7 @@ on_damage = 10 slot_flags = null -/obj/item/device/flashlight/lantern +/obj/item/flashlight/lantern name = "lantern" icon_state = "lantern" item_state = "lantern" @@ -340,7 +340,7 @@ brightness_on = 6 // luminosity when on -/obj/item/device/flashlight/slime +/obj/item/flashlight/slime gender = PLURAL name = "glowing slime extract" desc = "Extract from a yellow slime. It emits a strong light when squeezed." @@ -352,21 +352,21 @@ materials = list() brightness_on = 6 //luminosity when on -/obj/item/device/flashlight/emp +/obj/item/flashlight/emp var/emp_max_charges = 4 var/emp_cur_charges = 4 var/charge_tick = 0 -/obj/item/device/flashlight/emp/New() +/obj/item/flashlight/emp/New() ..() START_PROCESSING(SSobj, src) -/obj/item/device/flashlight/emp/Destroy() +/obj/item/flashlight/emp/Destroy() STOP_PROCESSING(SSobj, src) . = ..() -/obj/item/device/flashlight/emp/process() +/obj/item/flashlight/emp/process() charge_tick++ if(charge_tick < 10) return FALSE @@ -374,12 +374,12 @@ emp_cur_charges = min(emp_cur_charges+1, emp_max_charges) return TRUE -/obj/item/device/flashlight/emp/attack(mob/living/M, mob/living/user) +/obj/item/flashlight/emp/attack(mob/living/M, mob/living/user) if(on && user.zone_selected in list(BODY_ZONE_PRECISE_EYES, BODY_ZONE_PRECISE_MOUTH)) // call original attack when examining organs ..() return -/obj/item/device/flashlight/emp/afterattack(atom/movable/A, mob/user, proximity) +/obj/item/flashlight/emp/afterattack(atom/movable/A, mob/user, proximity) if(!proximity) return @@ -401,7 +401,7 @@ // Glowsticks, in the uncomfortable range of similar to flares, // but not similar enough to make it worth a refactor -/obj/item/device/flashlight/glowstick +/obj/item/flashlight/glowstick name = "glowstick" desc = "A military-grade glowstick." w_class = WEIGHT_CLASS_SMALL @@ -412,27 +412,27 @@ grind_results = list("phenol" = 15, "hydrogen" = 10, "oxygen" = 5) //Meth-in-a-stick var/fuel = 0 -/obj/item/device/flashlight/glowstick/Initialize() +/obj/item/flashlight/glowstick/Initialize() fuel = rand(1600, 2000) light_color = color . = ..() -/obj/item/device/flashlight/glowstick/Destroy() +/obj/item/flashlight/glowstick/Destroy() STOP_PROCESSING(SSobj, src) . = ..() -/obj/item/device/flashlight/glowstick/process() +/obj/item/flashlight/glowstick/process() fuel = max(fuel - 1, 0) if(!fuel) turn_off() STOP_PROCESSING(SSobj, src) update_icon() -/obj/item/device/flashlight/glowstick/proc/turn_off() +/obj/item/flashlight/glowstick/proc/turn_off() on = FALSE update_icon() -/obj/item/device/flashlight/glowstick/update_icon() +/obj/item/flashlight/glowstick/update_icon() item_state = "glowstick" cut_overlays() if(!fuel) @@ -449,7 +449,7 @@ icon_state = "glowstick" cut_overlays() -/obj/item/device/flashlight/glowstick/attack_self(mob/user) +/obj/item/flashlight/glowstick/attack_self(mob/user) if(!fuel) to_chat(user, "[src] is spent.") return @@ -462,47 +462,47 @@ user.visible_message("[user] cracks and shakes [src].", "You crack and shake [src], turning it on!") activate() -/obj/item/device/flashlight/glowstick/proc/activate() +/obj/item/flashlight/glowstick/proc/activate() if(!on) on = TRUE START_PROCESSING(SSobj, src) -/obj/item/device/flashlight/glowstick/red +/obj/item/flashlight/glowstick/red name = "red glowstick" color = LIGHT_COLOR_RED -/obj/item/device/flashlight/glowstick/blue +/obj/item/flashlight/glowstick/blue name = "blue glowstick" color = LIGHT_COLOR_BLUE -/obj/item/device/flashlight/glowstick/cyan +/obj/item/flashlight/glowstick/cyan name = "cyan glowstick" color = LIGHT_COLOR_CYAN -/obj/item/device/flashlight/glowstick/orange +/obj/item/flashlight/glowstick/orange name = "orange glowstick" color = LIGHT_COLOR_ORANGE -/obj/item/device/flashlight/glowstick/yellow +/obj/item/flashlight/glowstick/yellow name = "yellow glowstick" color = LIGHT_COLOR_YELLOW -/obj/item/device/flashlight/glowstick/pink +/obj/item/flashlight/glowstick/pink name = "pink glowstick" color = LIGHT_COLOR_PINK -/obj/item/device/flashlight/glowstick/random +/obj/item/flashlight/glowstick/random name = "random colored glowstick" icon_state = "random_glowstick" color = null -/obj/item/device/flashlight/glowstick/random/Initialize() +/obj/item/flashlight/glowstick/random/Initialize() ..() - var/T = pick(typesof(/obj/item/device/flashlight/glowstick) - /obj/item/device/flashlight/glowstick/random) + var/T = pick(typesof(/obj/item/flashlight/glowstick) - /obj/item/flashlight/glowstick/random) new T(loc) return INITIALIZE_HINT_QDEL -/obj/item/device/flashlight/spotlight //invisible lighting source +/obj/item/flashlight/spotlight //invisible lighting source name = "disco light" desc = "Groovy..." icon_state = null @@ -517,7 +517,7 @@ var/range = null resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF -/obj/item/device/flashlight/flashdark +/obj/item/flashlight/flashdark name = "flashdark" desc = "A strange device manufactured with mysterious elements that somehow emits darkness. Or maybe it just sucks in light? Nobody knows for sure." icon_state = "flashdark" @@ -525,7 +525,7 @@ brightness_on = 2.5 flashlight_power = -3 -/obj/item/device/flashlight/eyelight +/obj/item/flashlight/eyelight name = "eyelight" desc = "This shouldn't exist outside of someone's head, how are you seeing this?" brightness_on = 15 diff --git a/code/game/objects/items/devices/forcefieldprojector.dm b/code/game/objects/items/devices/forcefieldprojector.dm index c0b32883e8..f9c8084ea5 100644 --- a/code/game/objects/items/devices/forcefieldprojector.dm +++ b/code/game/objects/items/devices/forcefieldprojector.dm @@ -1,6 +1,7 @@ -/obj/item/device/forcefield +/obj/item/forcefield name = "forcefield projector" desc = "An experimental device that can create several forcefields at a distance." + icon = 'icons/obj/device.dmi' icon_state = "signmaker_engi" slot_flags = SLOT_BELT w_class = WEIGHT_CLASS_SMALL @@ -15,7 +16,7 @@ var/list/current_fields var/field_distance_limit = 7 -/obj/item/device/forcefield/afterattack(atom/target, mob/user, proximity_flag) +/obj/item/forcefield/afterattack(atom/target, mob/user, proximity_flag) if(!check_allowed_items(target, 1)) return if(istype(target, /obj/structure/projected_forcefield)) @@ -39,27 +40,27 @@ current_fields += F user.changeNext_move(CLICK_CD_MELEE) -/obj/item/device/forcefield/attack_self(mob/user) +/obj/item/forcefield/attack_self(mob/user) if(LAZYLEN(current_fields)) to_chat(user, "You deactivate [src], disabling all active forcefields.") for(var/obj/structure/projected_forcefield/F in current_fields) qdel(F) -/obj/item/device/forcefield/examine(mob/user) +/obj/item/forcefield/examine(mob/user) ..() var/percent_charge = round((shield_integrity/max_shield_integrity)*100) to_chat(user, "It is currently sustaining [LAZYLEN(current_fields)]/[max_fields] fields, and it's [percent_charge]% charged.") -/obj/item/device/forcefield/Initialize(mapload) +/obj/item/forcefield/Initialize(mapload) ..() current_fields = list() START_PROCESSING(SSobj, src) -/obj/item/device/forcefield/Destroy() +/obj/item/forcefield/Destroy() STOP_PROCESSING(SSobj, src) return ..() -/obj/item/device/forcefield/process() +/obj/item/forcefield/process() if(!LAZYLEN(current_fields)) shield_integrity = min(shield_integrity + 4, max_shield_integrity) else @@ -80,9 +81,9 @@ resistance_flags = INDESTRUCTIBLE CanAtmosPass = ATMOS_PASS_DENSITY armor = list("melee" = 0, "bullet" = 25, "laser" = 50, "energy" = 50, "bomb" = 25, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) - var/obj/item/device/forcefield/generator + var/obj/item/forcefield/generator -/obj/structure/projected_forcefield/Initialize(mapload, obj/item/device/forcefield/origin) +/obj/structure/projected_forcefield/Initialize(mapload, obj/item/forcefield/origin) . = ..() generator = origin diff --git a/code/game/objects/items/devices/geiger_counter.dm b/code/game/objects/items/devices/geiger_counter.dm index 83cec3c258..364f85fbc4 100644 --- a/code/game/objects/items/devices/geiger_counter.dm +++ b/code/game/objects/items/devices/geiger_counter.dm @@ -8,9 +8,10 @@ #define RAD_GRACE_PERIOD 2 -/obj/item/device/geiger_counter //DISCLAIMER: I know nothing about how real-life Geiger counters work. This will not be realistic. ~Xhuis +/obj/item/geiger_counter //DISCLAIMER: I know nothing about how real-life Geiger counters work. This will not be realistic. ~Xhuis name = "geiger counter" desc = "A handheld device used for detecting and measuring radiation pulses." + icon = 'icons/obj/device.dmi' icon_state = "geiger_off" item_state = "multitool" lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' @@ -29,17 +30,17 @@ var/fail_to_receive = 0 var/current_warning = 1 -/obj/item/device/geiger_counter/Initialize() +/obj/item/geiger_counter/Initialize() . = ..() START_PROCESSING(SSobj, src) soundloop = new(list(src), FALSE) -/obj/item/device/geiger_counter/Destroy() +/obj/item/geiger_counter/Destroy() STOP_PROCESSING(SSobj, src) return ..() -/obj/item/device/geiger_counter/process() +/obj/item/geiger_counter/process() update_icon() update_sound() @@ -61,7 +62,7 @@ current_tick_amount = 0 -/obj/item/device/geiger_counter/examine(mob/user) +/obj/item/geiger_counter/examine(mob/user) ..() if(!scanning) return 1 @@ -85,7 +86,7 @@ to_chat(user, "The last radiation amount detected was [last_tick_amount]") -/obj/item/device/geiger_counter/update_icon() +/obj/item/geiger_counter/update_icon() if(!scanning) icon_state = "geiger_off" return 1 @@ -107,7 +108,7 @@ icon_state = "geiger_on_5" ..() -/obj/item/device/geiger_counter/proc/update_sound() +/obj/item/geiger_counter/proc/update_sound() var/datum/looping_sound/geiger/loop = soundloop if(!scanning) loop.stop() @@ -118,19 +119,19 @@ loop.last_radiation = radiation_count loop.start() -/obj/item/device/geiger_counter/rad_act(amount) +/obj/item/geiger_counter/rad_act(amount) . = ..() if(amount <= RAD_BACKGROUND_RADIATION || !scanning) return current_tick_amount += amount update_icon() -/obj/item/device/geiger_counter/attack_self(mob/user) +/obj/item/geiger_counter/attack_self(mob/user) scanning = !scanning update_icon() to_chat(user, "[icon2html(src, user)] You switch [scanning ? "on" : "off"] [src].") -/obj/item/device/geiger_counter/attack(mob/living/M, mob/user) +/obj/item/geiger_counter/attack(mob/living/M, mob/user) if(user.a_intent == INTENT_HELP) if(!(obj_flags & EMAGGED)) user.visible_message("[user] scans [M] with [src].", "You scan [M]'s radiation levels with [src]...") @@ -142,7 +143,7 @@ return 1 ..() -/obj/item/device/geiger_counter/proc/scan(atom/A, mob/user) +/obj/item/geiger_counter/proc/scan(atom/A, mob/user) var/rad_strength = 0 for(var/i in get_rad_contents(A)) // Yes it's intentional that you can't detect radioactive things under rad protection. Gives traitors a way to hide their glowing green rocks. var/atom/thing = i @@ -164,7 +165,7 @@ else to_chat(user, "[icon2html(src, user)] Subject is free of radioactive contamination.") -/obj/item/device/geiger_counter/attackby(obj/item/I, mob/user, params) +/obj/item/geiger_counter/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/screwdriver) && (obj_flags & EMAGGED)) if(scanning) to_chat(user, "Turn off [src] before you perform this action!") @@ -180,7 +181,7 @@ else return ..() -/obj/item/device/geiger_counter/AltClick(mob/living/user) +/obj/item/geiger_counter/AltClick(mob/living/user) if(!istype(user) || !user.canUseTopic(src, BE_CLOSE)) return ..() if(!scanning) @@ -190,7 +191,7 @@ to_chat(usr, "You flush [src]'s radiation counts, resetting it to normal.") update_icon() -/obj/item/device/geiger_counter/emag_act(mob/user) +/obj/item/geiger_counter/emag_act(mob/user) if(obj_flags & EMAGGED) return if(scanning) @@ -199,17 +200,17 @@ to_chat(user, "You override [src]'s radiation storing protocols. It will now generate small doses of radiation, and stored rads are now projected into creatures you scan.") obj_flags |= EMAGGED -/obj/item/device/geiger_counter/cyborg +/obj/item/geiger_counter/cyborg var/datum/component/mobhook -/obj/item/device/geiger_counter/cyborg/equipped(mob/user) +/obj/item/geiger_counter/cyborg/equipped(mob/user) . = ..() if (mobhook && mobhook.parent != user) QDEL_NULL(mobhook) if (!mobhook) mobhook = user.AddComponent(/datum/component/redirect, list(COMSIG_ATOM_RAD_ACT), CALLBACK(src, /atom.proc/rad_act)) -/obj/item/device/geiger_counter/cyborg/dropped() +/obj/item/geiger_counter/cyborg/dropped() . = ..() QDEL_NULL(mobhook) diff --git a/code/game/objects/items/devices/gps.dm b/code/game/objects/items/devices/gps.dm index b3e33ec8ba..f07a95ef20 100644 --- a/code/game/objects/items/devices/gps.dm +++ b/code/game/objects/items/devices/gps.dm @@ -1,5 +1,5 @@ GLOBAL_LIST_EMPTY(GPS_list) -/obj/item/device/gps +/obj/item/gps name = "global positioning system" desc = "Helping lost spacemen find their way through the planets since 2016." icon = 'icons/obj/telescience.dmi' @@ -14,38 +14,38 @@ GLOBAL_LIST_EMPTY(GPS_list) var/updating = TRUE //Automatic updating of GPS list. Can be set to manual by user. var/global_mode = TRUE //If disabled, only GPS signals of the same Z level are shown -/obj/item/device/gps/examine(mob/user) +/obj/item/gps/examine(mob/user) ..() to_chat(user, "Alt-click to switch it [tracking ? "off":"on"].") -/obj/item/device/gps/Initialize() +/obj/item/gps/Initialize() . = ..() GLOB.GPS_list += src name = "global positioning system ([gpstag])" add_overlay("working") -/obj/item/device/gps/Destroy() +/obj/item/gps/Destroy() GLOB.GPS_list -= src return ..() -/obj/item/device/gps/emp_act(severity) +/obj/item/gps/emp_act(severity) emped = TRUE cut_overlay("working") add_overlay("emp") addtimer(CALLBACK(src, .proc/reboot), 300, TIMER_OVERRIDE) //if a new EMP happens, remove the old timer so it doesn't reactivate early SStgui.close_uis(src) //Close the UI control if it is open. -/obj/item/device/gps/proc/reboot() +/obj/item/gps/proc/reboot() emped = FALSE cut_overlay("emp") add_overlay("working") -/obj/item/device/gps/AltClick(mob/user) +/obj/item/gps/AltClick(mob/user) if(!user.canUseTopic(src, BE_CLOSE)) return toggletracking(user) -/obj/item/device/gps/proc/toggletracking(mob/user) +/obj/item/gps/proc/toggletracking(mob/user) if(!user.canUseTopic(src, BE_CLOSE)) return //user not valid to use gps if(emped) @@ -61,7 +61,7 @@ GLOBAL_LIST_EMPTY(GPS_list) tracking = TRUE -/obj/item/device/gps/ui_interact(mob/user, ui_key = "gps", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) // Remember to use the appropriate state. +/obj/item/gps/ui_interact(mob/user, ui_key = "gps", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) // Remember to use the appropriate state. if(emped) to_chat(user, "[src] fizzles weakly.") return @@ -74,7 +74,7 @@ GLOBAL_LIST_EMPTY(GPS_list) ui.set_autoupdate(state = updating) -/obj/item/device/gps/ui_data(mob/user) +/obj/item/gps/ui_data(mob/user) var/list/data = list() data["power"] = tracking data["tag"] = gpstag @@ -90,7 +90,7 @@ GLOBAL_LIST_EMPTY(GPS_list) data["signals"] = list() for(var/gps in GLOB.GPS_list) - var/obj/item/device/gps/G = gps + var/obj/item/gps/G = gps if(G.emped || !G.tracking || G == src) continue var/turf/pos = get_turf(G) @@ -115,7 +115,7 @@ GLOBAL_LIST_EMPTY(GPS_list) -/obj/item/device/gps/ui_act(action, params) +/obj/item/gps/ui_act(action, params) if(..()) return switch(action) @@ -137,42 +137,42 @@ GLOBAL_LIST_EMPTY(GPS_list) . = TRUE -/obj/item/device/gps/science +/obj/item/gps/science icon_state = "gps-s" gpstag = "SCI0" -/obj/item/device/gps/engineering +/obj/item/gps/engineering icon_state = "gps-e" gpstag = "ENG0" -/obj/item/device/gps/mining +/obj/item/gps/mining icon_state = "gps-m" gpstag = "MINE0" desc = "A positioning system helpful for rescuing trapped or injured miners, keeping one on you at all times while mining might just save your life." -/obj/item/device/gps/cyborg +/obj/item/gps/cyborg icon_state = "gps-b" gpstag = "BORG0" desc = "A mining cyborg internal positioning system. Used as a recovery beacon for damaged cyborg assets, or a collaboration tool for mining teams." flags_1 = NODROP_1 -/obj/item/device/gps/internal +/obj/item/gps/internal icon_state = null flags_1 = ABSTRACT_1 gpstag = "Eerie Signal" desc = "Report to a coder immediately." invisibility = INVISIBILITY_MAXIMUM -/obj/item/device/gps/mining/internal +/obj/item/gps/mining/internal icon_state = "gps-m" gpstag = "MINER" desc = "A positioning system helpful for rescuing trapped or injured miners, keeping one on you at all times while mining might just save your life." -/obj/item/device/gps/internal/base +/obj/item/gps/internal/base gpstag = "NT_AUX" desc = "A homing signal from Nanotrasen's mining base." -/obj/item/device/gps/visible_debug +/obj/item/gps/visible_debug name = "visible GPS" gpstag = "ADMIN" desc = "This admin-spawn GPS unit leaves the coordinates visible \ @@ -180,12 +180,12 @@ GLOBAL_LIST_EMPTY(GPS_list) for marking the area around the transition edges." var/list/turf/tagged -/obj/item/device/gps/visible_debug/Initialize() +/obj/item/gps/visible_debug/Initialize() . = ..() tagged = list() START_PROCESSING(SSfastprocess, src) -/obj/item/device/gps/visible_debug/process() +/obj/item/gps/visible_debug/process() var/turf/T = get_turf(src) if(T) // I assume it's faster to color,tag and OR the turf in, rather @@ -194,13 +194,13 @@ GLOBAL_LIST_EMPTY(GPS_list) T.maptext = "[T.x],[T.y],[T.z]" tagged |= T -/obj/item/device/gps/visible_debug/proc/clear() +/obj/item/gps/visible_debug/proc/clear() while(tagged.len) var/turf/T = pop(tagged) T.color = initial(T.color) T.maptext = initial(T.maptext) -/obj/item/device/gps/visible_debug/Destroy() +/obj/item/gps/visible_debug/Destroy() if(tagged) clear() tagged = null diff --git a/code/game/objects/items/devices/instruments.dm b/code/game/objects/items/devices/instruments.dm index 4124f77aeb..7274531420 100644 --- a/code/game/objects/items/devices/instruments.dm +++ b/code/game/objects/items/devices/instruments.dm @@ -1,5 +1,5 @@ //copy pasta of the space piano, don't hurt me -Pete -/obj/item/device/instrument +/obj/item/instrument name = "generic instrument" resistance_flags = FLAMMABLE force = 10 @@ -11,34 +11,34 @@ var/instrumentId = "generic" var/instrumentExt = "mid" -/obj/item/device/instrument/Initialize() +/obj/item/instrument/Initialize() . = ..() song = new(instrumentId, src, instrumentExt) -/obj/item/device/instrument/Destroy() +/obj/item/instrument/Destroy() qdel(song) song = null return ..() -/obj/item/device/instrument/suicide_act(mob/user) +/obj/item/instrument/suicide_act(mob/user) user.visible_message("[user] begins to play 'Gloomy Sunday'! It looks like [user.p_theyre()] trying to commit suicide!") return (BRUTELOSS) -/obj/item/device/instrument/Initialize(mapload) +/obj/item/instrument/Initialize(mapload) . = ..() if(mapload) song.tempo = song.sanitize_tempo(song.tempo) // tick_lag isn't set when the map is loaded -/obj/item/device/instrument/attack_self(mob/user) +/obj/item/instrument/attack_self(mob/user) if(!user.IsAdvancedToolUser()) to_chat(user, "You don't have the dexterity to do this!") return 1 interact(user) -/obj/item/device/instrument/interact(mob/user) +/obj/item/instrument/interact(mob/user) ui_interact(user) -/obj/item/device/instrument/ui_interact(mob/user) +/obj/item/instrument/ui_interact(mob/user) if(!user) return @@ -48,7 +48,7 @@ user.set_machine(src) song.interact(user) -/obj/item/device/instrument/violin +/obj/item/instrument/violin name = "space violin" desc = "A wooden musical instrument with four strings and a bow. \"The devil went down to space, he was looking for an assistant to grief.\"" icon_state = "violin" @@ -56,14 +56,14 @@ hitsound = "swing_hit" instrumentId = "violin" -/obj/item/device/instrument/violin/golden +/obj/item/instrument/violin/golden name = "golden violin" desc = "A golden musical instrument with four strings and a bow. \"The devil went down to space, he was looking for an assistant to grief.\"" icon_state = "golden_violin" item_state = "golden_violin" resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF -/obj/item/device/instrument/piano_synth +/obj/item/instrument/piano_synth name = "synthesizer" desc = "An advanced electronic synthesizer that can be used as various instruments." icon_state = "synth" @@ -73,11 +73,11 @@ var/static/list/insTypes = list("accordion" = "mid", "bikehorn" = "ogg", "glockenspiel" = "mid", "guitar" = "ogg", "harmonica" = "mid", "piano" = "ogg", "recorder" = "mid", "saxophone" = "mid", "trombone" = "mid", "violin" = "mid", "xylophone" = "mid") //No eguitar you ear-rapey fuckers. actions_types = list(/datum/action/item_action/synthswitch) -/obj/item/device/instrument/piano_synth/proc/changeInstrument(name = "piano") +/obj/item/instrument/piano_synth/proc/changeInstrument(name = "piano") song.instrumentDir = name song.instrumentExt = insTypes[name] -/obj/item/device/instrument/guitar +/obj/item/instrument/guitar name = "guitar" desc = "It's made of wood and has bronze strings." icon_state = "guitar" @@ -87,7 +87,7 @@ hitsound = 'sound/weapons/stringsmash.ogg' instrumentId = "guitar" -/obj/item/device/instrument/eguitar +/obj/item/instrument/eguitar name = "electric guitar" desc = "Makes all your shredding needs possible." icon_state = "eguitar" @@ -98,28 +98,28 @@ instrumentId = "eguitar" instrumentExt = "ogg" -/obj/item/device/instrument/glockenspiel +/obj/item/instrument/glockenspiel name = "glockenspiel" desc = "Smooth metal bars perfect for any marching band." icon_state = "glockenspiel" item_state = "glockenspiel" instrumentId = "glockenspiel" -/obj/item/device/instrument/accordion +/obj/item/instrument/accordion name = "accordion" desc = "Pun-Pun not included." icon_state = "accordion" item_state = "accordion" instrumentId = "accordion" -/obj/item/device/instrument/trumpet +/obj/item/instrument/trumpet name = "trumpet" desc = "To announce the arrival of the king!" icon_state = "trumpet" item_state = "trombone" instrumentId = "trombone" -/obj/item/device/instrument/trumpet/spectral +/obj/item/instrument/trumpet/spectral name = "spectral trumpet" desc = "Things are about to get spooky!" icon_state = "trumpet" @@ -128,22 +128,22 @@ instrumentId = "trombone" attack_verb = list("played","jazzed","trumpeted","mourned","dooted","spooked") -/obj/item/device/instrument/trumpet/spectral/Initialize() +/obj/item/instrument/trumpet/spectral/Initialize() . = ..() AddComponent(/datum/component/spooky) -/obj/item/device/instrument/trumpet/spectral/attack(mob/living/carbon/C, mob/user) +/obj/item/instrument/trumpet/spectral/attack(mob/living/carbon/C, mob/user) playsound (loc, 'sound/instruments/trombone/En4.mid', 100,1,-1) ..() -/obj/item/device/instrument/saxophone +/obj/item/instrument/saxophone name = "saxophone" desc = "This soothing sound will be sure to leave your audience in tears." icon_state = "saxophone" item_state = "saxophone" instrumentId = "saxophone" -/obj/item/device/instrument/saxophone/spectral +/obj/item/instrument/saxophone/spectral name = "spectral saxophone" desc = "This spooky sound will be sure to leave mortals in bones." icon_state = "saxophone" @@ -152,22 +152,22 @@ force = 0 attack_verb = list("played","jazzed","saxxed","mourned","dooted","spooked") -/obj/item/device/instrument/saxophone/spectral/Initialize() +/obj/item/instrument/saxophone/spectral/Initialize() . = ..() AddComponent(/datum/component/spooky) -/obj/item/device/instrument/saxophone/spectral/attack(mob/living/carbon/C, mob/user) +/obj/item/instrument/saxophone/spectral/attack(mob/living/carbon/C, mob/user) playsound (loc, 'sound/instruments/saxophone/En4.mid', 100,1,-1) ..() -/obj/item/device/instrument/trombone +/obj/item/instrument/trombone name = "trombone" desc = "How can any pool table ever hope to compete?" icon_state = "trombone" item_state = "trombone" instrumentId = "trombone" -/obj/item/device/instrument/trombone/spectral +/obj/item/instrument/trombone/spectral name = "spectral trombone" desc = "A skeleton's favorite instrument. Apply directly on the mortals." instrumentId = "trombone" @@ -176,15 +176,15 @@ force = 0 attack_verb = list("played","jazzed","tromboned","mourned","dooted","spooked") -/obj/item/device/instrument/trombone/spectral/Initialize() +/obj/item/instrument/trombone/spectral/Initialize() . = ..() AddComponent(/datum/component/spooky) -/obj/item/device/instrument/trombone/spectral/attack(mob/living/carbon/C, mob/user) +/obj/item/instrument/trombone/spectral/attack(mob/living/carbon/C, mob/user) playsound (loc, 'sound/instruments/trombone/Cn4.mid', 100,1,-1) ..() -/obj/item/device/instrument/recorder +/obj/item/instrument/recorder name = "recorder" desc = "Just like in school, playing ability and all." force = 5 @@ -192,7 +192,7 @@ item_state = "recorder" instrumentId = "recorder" -/obj/item/device/instrument/harmonica +/obj/item/instrument/harmonica name = "harmonica" desc = "For when you get a bad case of the space blues." icon_state = "harmonica" @@ -203,13 +203,13 @@ w_class = WEIGHT_CLASS_SMALL actions_types = list(/datum/action/item_action/instrument) -/obj/item/device/instrument/harmonica/speechModification(message) +/obj/item/instrument/harmonica/speechModification(message) if(song.playing && ismob(loc)) to_chat(loc, "You stop playing the harmonica to talk...") song.playing = FALSE return message -/obj/item/device/instrument/bikehorn +/obj/item/instrument/bikehorn name = "gilded bike horn" desc = "An exquisitely decorated bike horn, capable of honking in a variety of notes." icon_state = "bike_horn" diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm index 098643e87f..116b5982ee 100644 --- a/code/game/objects/items/devices/laserpointer.dm +++ b/code/game/objects/items/devices/laserpointer.dm @@ -1,4 +1,4 @@ -/obj/item/device/laser_pointer +/obj/item/laser_pointer name = "laser pointer" desc = "Don't shine it in your eyes!" icon = 'icons/obj/device.dmi' @@ -18,26 +18,26 @@ var/obj/item/stock_parts/micro_laser/diode //used for upgrading! -/obj/item/device/laser_pointer/red +/obj/item/laser_pointer/red pointer_icon_state = "red_laser" -/obj/item/device/laser_pointer/green +/obj/item/laser_pointer/green pointer_icon_state = "green_laser" -/obj/item/device/laser_pointer/blue +/obj/item/laser_pointer/blue pointer_icon_state = "blue_laser" -/obj/item/device/laser_pointer/purple +/obj/item/laser_pointer/purple pointer_icon_state = "purple_laser" -/obj/item/device/laser_pointer/New() +/obj/item/laser_pointer/New() ..() diode = new(src) if(!pointer_icon_state) pointer_icon_state = pick("red_laser","green_laser","blue_laser","purple_laser") -/obj/item/device/laser_pointer/upgraded/New() +/obj/item/laser_pointer/upgraded/New() ..() diode = new /obj/item/stock_parts/micro_laser/ultra -/obj/item/device/laser_pointer/attackby(obj/item/W, mob/user, params) +/obj/item/laser_pointer/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/stock_parts/micro_laser)) if(!diode) if(!user.transferItemToLoc(W, src)) @@ -55,10 +55,10 @@ else return ..() -/obj/item/device/laser_pointer/afterattack(atom/target, mob/living/user, flag, params) +/obj/item/laser_pointer/afterattack(atom/target, mob/living/user, flag, params) laser_act(target, user, params) -/obj/item/device/laser_pointer/proc/laser_act(atom/target, mob/living/user, params) +/obj/item/laser_pointer/proc/laser_act(atom/target, mob/living/user, params) if( !(user in (viewers(7,target))) ) return if (!diode) @@ -182,7 +182,7 @@ flick_overlay_view(I, targloc, 10) icon_state = "pointer" -/obj/item/device/laser_pointer/process() +/obj/item/laser_pointer/process() if(prob(20 - recharge_locked*5)) energy += 1 if(energy >= max_energy) diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm index a1cdfe4a9b..3fde35383f 100644 --- a/code/game/objects/items/devices/lightreplacer.dm +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -38,7 +38,7 @@ #define LIGHT_BURNED 3 -/obj/item/device/lightreplacer +/obj/item/lightreplacer name = "light replacer" desc = "A device to automatically replace lights. Refill with broken or working lightbulbs, or sheets of glass." @@ -67,16 +67,16 @@ // when we get this many shards, we get a free bulb. var/shards_required = 4 -/obj/item/device/lightreplacer/New() +/obj/item/lightreplacer/New() uses = max_uses / 2 failmsg = "The [name]'s refill light blinks red." ..() -/obj/item/device/lightreplacer/examine(mob/user) +/obj/item/lightreplacer/examine(mob/user) ..() to_chat(user, status_string()) -/obj/item/device/lightreplacer/attackby(obj/item/W, mob/user, params) +/obj/item/lightreplacer/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/stack/sheet/glass)) var/obj/item/stack/sheet/glass/G = W @@ -148,30 +148,30 @@ to_chat(user, "You fill \the [src] with lights from \the [S]. " + status_string() + "") -/obj/item/device/lightreplacer/emag_act() +/obj/item/lightreplacer/emag_act() if(obj_flags & EMAGGED) return Emag() -/obj/item/device/lightreplacer/attack_self(mob/user) +/obj/item/lightreplacer/attack_self(mob/user) to_chat(user, status_string()) -/obj/item/device/lightreplacer/update_icon() +/obj/item/lightreplacer/update_icon() icon_state = "lightreplacer[(obj_flags & EMAGGED ? 1 : 0)]" -/obj/item/device/lightreplacer/proc/status_string() +/obj/item/lightreplacer/proc/status_string() return "It has [uses] light\s remaining (plus [bulb_shards] fragment\s)." -/obj/item/device/lightreplacer/proc/Use(mob/user) +/obj/item/lightreplacer/proc/Use(mob/user) playsound(src.loc, 'sound/machines/click.ogg', 50, 1) AddUses(-1) return 1 // Negative numbers will subtract -/obj/item/device/lightreplacer/proc/AddUses(amount = 1) +/obj/item/lightreplacer/proc/AddUses(amount = 1) uses = CLAMP(uses + amount, 0, max_uses) -/obj/item/device/lightreplacer/proc/AddShards(amount = 1, user) +/obj/item/lightreplacer/proc/AddShards(amount = 1, user) bulb_shards += amount var/new_bulbs = round(bulb_shards / shards_required) if(new_bulbs > 0) @@ -182,13 +182,13 @@ playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) return new_bulbs -/obj/item/device/lightreplacer/proc/Charge(var/mob/user) +/obj/item/lightreplacer/proc/Charge(var/mob/user) charge += 1 if(charge > 3) AddUses(1) charge = 1 -/obj/item/device/lightreplacer/proc/ReplaceLight(obj/machinery/light/target, mob/living/U) +/obj/item/lightreplacer/proc/ReplaceLight(obj/machinery/light/target, mob/living/U) if(target.status != LIGHT_OK) if(CanUse(U)) @@ -222,7 +222,7 @@ to_chat(U, "There is a working [target.fitting] already inserted!") return -/obj/item/device/lightreplacer/proc/Emag() +/obj/item/lightreplacer/proc/Emag() obj_flags ^= EMAGGED playsound(src.loc, "sparks", 100, 1) if(obj_flags & EMAGGED) @@ -231,14 +231,14 @@ name = initial(name) update_icon() -/obj/item/device/lightreplacer/proc/CanUse(mob/living/user) +/obj/item/lightreplacer/proc/CanUse(mob/living/user) src.add_fingerprint(user) if(uses > 0) return 1 else return 0 -/obj/item/device/lightreplacer/afterattack(atom/T, mob/U, proximity) +/obj/item/lightreplacer/afterattack(atom/T, mob/U, proximity) if(!proximity) return if(!isturf(T)) @@ -255,12 +255,12 @@ if(!used) to_chat(U, failmsg) -/obj/item/device/lightreplacer/proc/janicart_insert(mob/user, obj/structure/janitorialcart/J) +/obj/item/lightreplacer/proc/janicart_insert(mob/user, obj/structure/janitorialcart/J) J.put_in_cart(src, user) J.myreplacer = src J.update_icon() -/obj/item/device/lightreplacer/cyborg/janicart_insert(mob/user, obj/structure/janitorialcart/J) +/obj/item/lightreplacer/cyborg/janicart_insert(mob/user, obj/structure/janitorialcart/J) return #undef LIGHT_OK diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm index 4b47a0373f..5fa089a012 100644 --- a/code/game/objects/items/devices/megaphone.dm +++ b/code/game/objects/items/devices/megaphone.dm @@ -1,6 +1,7 @@ -/obj/item/device/megaphone +/obj/item/megaphone name = "megaphone" desc = "A device used to project your voice. Loudly." + icon = 'icons/obj/device.dmi' icon_state = "megaphone" item_state = "radio" lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' @@ -10,13 +11,13 @@ var/spamcheck = 0 var/list/voicespan = list(SPAN_COMMAND) -/obj/item/device/megaphone/suicide_act(mob/living/carbon/user) +/obj/item/megaphone/suicide_act(mob/living/carbon/user) user.visible_message("[user] is uttering [user.p_their()] last words into \the [src]! It looks like [user.p_theyre()] trying to commit suicide!") spamcheck = 0//so they dont have to worry about recharging user.say("AAAAAAAAAAAARGHHHHH")//he must have died while coding this return OXYLOSS -/obj/item/device/megaphone/get_held_item_speechspans(mob/living/carbon/user) +/obj/item/megaphone/get_held_item_speechspans(mob/living/carbon/user) if(spamcheck > world.time) to_chat(user, "\The [src] needs to recharge!") else @@ -24,26 +25,26 @@ spamcheck = world.time + 50 return voicespan -/obj/item/device/megaphone/emag_act(mob/user) +/obj/item/megaphone/emag_act(mob/user) if(obj_flags & EMAGGED) return to_chat(user, "You overload \the [src]'s voice synthesizer.") obj_flags |= EMAGGED voicespan = list(SPAN_REALLYBIG, "userdanger") -/obj/item/device/megaphone/sec +/obj/item/megaphone/sec name = "security megaphone" icon_state = "megaphone-sec" -/obj/item/device/megaphone/command +/obj/item/megaphone/command name = "command megaphone" icon_state = "megaphone-command" -/obj/item/device/megaphone/cargo +/obj/item/megaphone/cargo name = "supply megaphone" icon_state = "megaphone-cargo" -/obj/item/device/megaphone/clown +/obj/item/megaphone/clown name = "clown's megaphone" desc = "Something that should not exist." icon_state = "megaphone-clown" diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm index 69de7025c0..063676ea62 100644 --- a/code/game/objects/items/devices/multitool.dm +++ b/code/game/objects/items/devices/multitool.dm @@ -10,9 +10,10 @@ -/obj/item/device/multitool +/obj/item/multitool name = "multitool" desc = "Used for pulsing wires to test which to cut. Not recommended by doctors." + icon = 'icons/obj/device.dmi' icon_state = "multitool" lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' @@ -31,11 +32,11 @@ var/datum/integrated_io/selected_io = null //functional for integrated circuits. var/mode = 0 -/obj/item/device/multitool/suicide_act(mob/living/carbon/user) +/obj/item/multitool/suicide_act(mob/living/carbon/user) user.visible_message("[user] puts the [src] to [user.p_their()] chest. It looks like [user.p_theyre()] trying to pulse [user.p_their()] heart off!") return OXYLOSS//theres a reason it wasnt recommended by doctors -/obj/item/device/multitool/attack_self(mob/user) +/obj/item/multitool/attack_self(mob/user) if(selected_io) selected_io = null to_chat(user, "You clear the wired connection from the multitool.") @@ -43,13 +44,13 @@ ..() update_icon() -/obj/item/device/multitool/update_icon() +/obj/item/multitool/update_icon() if(selected_io) icon_state = "multitool_red" else icon_state = "multitool" -/obj/item/device/multitool/proc/wire(var/datum/integrated_io/io, mob/user) +/obj/item/multitool/proc/wire(var/datum/integrated_io/io, mob/user) if(!io.holder.assembly) to_chat(user, "\The [io.holder] needs to be secured inside an assembly first.") return @@ -78,7 +79,7 @@ update_icon() -/obj/item/device/multitool/proc/unwire(var/datum/integrated_io/io1, var/datum/integrated_io/io2, mob/user) +/obj/item/multitool/proc/unwire(var/datum/integrated_io/io1, var/datum/integrated_io/io2, mob/user) if(!io1.linked.len || !io2.linked.len) to_chat(user, "There is nothing connected to the data channel.") return @@ -98,22 +99,22 @@ // Syndicate device disguised as a multitool; it will turn red when an AI camera is nearby. -/obj/item/device/multitool/ai_detect +/obj/item/multitool/ai_detect var/track_cooldown = 0 var/track_delay = 10 //How often it checks for proximity var/detect_state = PROXIMITY_NONE var/rangealert = 8 //Glows red when inside var/rangewarning = 20 //Glows yellow when inside -/obj/item/device/multitool/ai_detect/New() +/obj/item/multitool/ai_detect/New() ..() START_PROCESSING(SSobj, src) -/obj/item/device/multitool/ai_detect/Destroy() +/obj/item/multitool/ai_detect/Destroy() STOP_PROCESSING(SSobj, src) return ..() -/obj/item/device/multitool/ai_detect/process() +/obj/item/multitool/ai_detect/process() if(track_cooldown > world.time) return detect_state = PROXIMITY_NONE @@ -121,7 +122,7 @@ icon_state = "[initial(icon_state)][detect_state]" track_cooldown = world.time + track_delay -/obj/item/device/multitool/ai_detect/proc/multitool_detect() +/obj/item/multitool/ai_detect/proc/multitool_detect() var/turf/our_turf = get_turf(src) for(var/mob/living/silicon/ai/AI in GLOB.ai_list) if(AI.cameraFollow == src) @@ -141,11 +142,11 @@ detect_state = PROXIMITY_NEAR break -/obj/item/device/multitool/ai_detect/admin +/obj/item/multitool/ai_detect/admin desc = "Used for pulsing wires to test which to cut. Not recommended by doctors. Has a strange tag that says 'Grief in Safety'." //What else should I say for a meme item? track_delay = 5 -/obj/item/device/multitool/ai_detect/admin/multitool_detect() +/obj/item/multitool/ai_detect/admin/multitool_detect() var/turf/our_turf = get_turf(src) for(var/mob/J in urange(rangewarning,our_turf)) if(GLOB.admin_datums[J.ckey]) @@ -155,12 +156,12 @@ detect_state = PROXIMITY_ON_SCREEN break -/obj/item/device/multitool/cyborg +/obj/item/multitool/cyborg name = "multitool" desc = "Optimised and stripped-down version of a regular multitool." toolspeed = 0.5 -/obj/item/device/multitool/abductor +/obj/item/multitool/abductor name = "alien multitool" desc = "An omni-technological interface." icon = 'icons/obj/abductor.dmi' diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm index b96c32f53f..25f3070d9e 100644 --- a/code/game/objects/items/devices/paicard.dm +++ b/code/game/objects/items/devices/paicard.dm @@ -1,4 +1,4 @@ -/obj/item/device/paicard +/obj/item/paicard name = "personal AI device" icon = 'icons/obj/aicards.dmi' icon_state = "pai" @@ -10,22 +10,22 @@ var/mob/living/silicon/pai/pai resistance_flags = FIRE_PROOF | ACID_PROOF | INDESTRUCTIBLE -/obj/item/device/paicard/suicide_act(mob/living/user) +/obj/item/paicard/suicide_act(mob/living/user) user.visible_message("[user] is staring sadly at [src]! [user.p_they()] can't keep living without real human intimacy!") return OXYLOSS -/obj/item/device/paicard/Initialize() +/obj/item/paicard/Initialize() SSpai.pai_card_list += src add_overlay("pai-off") return ..() -/obj/item/device/paicard/Destroy() +/obj/item/paicard/Destroy() //Will stop people throwing friend pAIs into the singularity so they can respawn SSpai.pai_card_list -= src QDEL_NULL(pai) return ..() -/obj/item/device/paicard/attack_self(mob/user) +/obj/item/paicard/attack_self(mob/user) if (!in_range(src, user)) return user.set_machine(src) @@ -60,7 +60,7 @@ onclose(user, "paicard") return -/obj/item/device/paicard/Topic(href, href_list) +/obj/item/paicard/Topic(href, href_list) if(!usr || usr.stat) return @@ -115,19 +115,19 @@ // WIRE_RECEIVE = 2 // WIRE_TRANSMIT = 4 -/obj/item/device/paicard/proc/setPersonality(mob/living/silicon/pai/personality) +/obj/item/paicard/proc/setPersonality(mob/living/silicon/pai/personality) src.pai = personality src.add_overlay("pai-null") playsound(loc, 'sound/effects/pai_boot.ogg', 50, 1, -1) audible_message("\The [src] plays a cheerful startup noise!") -/obj/item/device/paicard/proc/removePersonality() +/obj/item/paicard/proc/removePersonality() QDEL_NULL(pai) cut_overlays() add_overlay("pai-off") -/obj/item/device/paicard/proc/setEmotion(emotion) +/obj/item/paicard/proc/setEmotion(emotion) if(pai) src.cut_overlays() switch(emotion) @@ -152,10 +152,10 @@ if(10) src.add_overlay("pai-null") -/obj/item/device/paicard/proc/alertUpdate() +/obj/item/paicard/proc/alertUpdate() visible_message("[src] flashes a message across its screen, \"Additional personalities available for download.\"", "[src] bleeps electronically.") -/obj/item/device/paicard/emp_act(severity) +/obj/item/paicard/emp_act(severity) if(pai) pai.emp_act(severity) ..() diff --git a/code/game/objects/items/devices/pipe_painter.dm b/code/game/objects/items/devices/pipe_painter.dm index d76b7174da..a13de183a0 100644 --- a/code/game/objects/items/devices/pipe_painter.dm +++ b/code/game/objects/items/devices/pipe_painter.dm @@ -1,4 +1,4 @@ -/obj/item/device/pipe_painter +/obj/item/pipe_painter name = "pipe painter" icon = 'icons/obj/bureaucracy.dmi' icon_state = "labeler1" @@ -8,7 +8,7 @@ materials = list(MAT_METAL=5000, MAT_GLASS=2000) -/obj/item/device/pipe_painter/afterattack(atom/A, mob/user, proximity_flag) +/obj/item/pipe_painter/afterattack(atom/A, mob/user, proximity_flag) //Make sure we only paint adjacent items if(!proximity_flag) return @@ -21,9 +21,9 @@ playsound(src, 'sound/machines/click.ogg', 50, 1) user.visible_message("[user] paints \the [P] [paint_color].","You paint \the [P] [paint_color].") -/obj/item/device/pipe_painter/attack_self(mob/user) +/obj/item/pipe_painter/attack_self(mob/user) paint_color = input("Which colour do you want to use?","Pipe painter") in GLOB.pipe_paint_colors -/obj/item/device/pipe_painter/examine(mob/user) +/obj/item/pipe_painter/examine(mob/user) ..() to_chat(user, "It is set to [paint_color].") diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm index ea4236b823..8d36fd9986 100644 --- a/code/game/objects/items/devices/powersink.dm +++ b/code/game/objects/items/devices/powersink.dm @@ -1,8 +1,9 @@ // Powersink - used to drain station power -/obj/item/device/powersink +/obj/item/powersink desc = "A nulling power sink which drains energy from electrical systems." name = "power sink" + icon = 'icons/obj/device.dmi' icon_state = "powersink0" item_state = "electronic" lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' @@ -25,10 +26,10 @@ var/obj/structure/cable/attached // the attached cable -/obj/item/device/powersink/update_icon() +/obj/item/powersink/update_icon() icon_state = "powersink[mode == OPERATING]" -/obj/item/device/powersink/proc/set_mode(value) +/obj/item/powersink/proc/set_mode(value) if(value == mode) return switch(value) @@ -55,7 +56,7 @@ update_icon() set_light(0) -/obj/item/device/powersink/attackby(obj/item/I, mob/user, params) +/obj/item/powersink/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/screwdriver)) if(mode == DISCONNECTED) var/turf/T = loc @@ -80,13 +81,13 @@ else return ..() -/obj/item/device/powersink/attack_paw() +/obj/item/powersink/attack_paw() return -/obj/item/device/powersink/attack_ai() +/obj/item/powersink/attack_ai() return -/obj/item/device/powersink/attack_hand(mob/user) +/obj/item/powersink/attack_hand(mob/user) . = ..() if(.) return @@ -110,7 +111,7 @@ "You hear a click.") set_mode(CLAMPED_OFF) -/obj/item/device/powersink/process() +/obj/item/powersink/process() if(!attached) set_mode(DISCONNECTED) return diff --git a/code/game/objects/items/devices/pressureplates.dm b/code/game/objects/items/devices/pressureplates.dm index d1ecf9ee28..8520571d22 100644 --- a/code/game/objects/items/devices/pressureplates.dm +++ b/code/game/objects/items/devices/pressureplates.dm @@ -1,7 +1,8 @@ -/obj/item/device/pressure_plate +/obj/item/pressure_plate name = "pressure plate" desc = "An electronic device that triggers when stepped on." + icon = 'icons/obj/device.dmi' item_state = "flash" icon_state = "pressureplate" level = 1 @@ -9,7 +10,7 @@ var/trigger_item = FALSE var/trigger_silent = FALSE var/sound/trigger_sound = 'sound/effects/pressureplate.ogg' - var/obj/item/device/assembly/signaler/sigdev = null + var/obj/item/assembly/signaler/sigdev = null var/roundstart_signaller = FALSE var/roundstart_signaller_freq = FREQ_PRESSURE_PLATE var/roundstart_signaller_code = 30 @@ -20,7 +21,7 @@ var/can_trigger = TRUE var/trigger_delay = 10 -/obj/item/device/pressure_plate/Initialize() +/obj/item/pressure_plate/Initialize() . = ..() tile_overlay = image(icon = 'icons/turf/floors.dmi', icon_state = "pp_overlay") if(roundstart_signaller) @@ -30,7 +31,7 @@ if(isopenturf(loc)) hide(TRUE) -/obj/item/device/pressure_plate/Crossed(atom/movable/AM) +/obj/item/pressure_plate/Crossed(atom/movable/AM) . = ..() if(!can_trigger || !active) return @@ -42,18 +43,18 @@ can_trigger = FALSE addtimer(CALLBACK(src, .proc/trigger), trigger_delay) -/obj/item/device/pressure_plate/proc/trigger() +/obj/item/pressure_plate/proc/trigger() can_trigger = TRUE if(istype(sigdev)) sigdev.signal() -/obj/item/device/pressure_plate/attackby(obj/item/I, mob/living/L) - if(istype(I, /obj/item/device/assembly/signaler) && !istype(sigdev) && removable_signaller && L.transferItemToLoc(I, src)) +/obj/item/pressure_plate/attackby(obj/item/I, mob/living/L) + if(istype(I, /obj/item/assembly/signaler) && !istype(sigdev) && removable_signaller && L.transferItemToLoc(I, src)) sigdev = I to_chat(L, "You attach [I] to [src]!") return ..() -/obj/item/device/pressure_plate/attack_self(mob/living/L) +/obj/item/pressure_plate/attack_self(mob/living/L) if(removable_signaller && istype(sigdev)) to_chat(L, "You remove [sigdev] from [src]") if(!L.put_in_hands(sigdev)) @@ -61,7 +62,7 @@ sigdev = null return ..() -/obj/item/device/pressure_plate/hide(yes) +/obj/item/pressure_plate/hide(yes) if(yes) invisibility = INVISIBILITY_MAXIMUM anchored = TRUE diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm index 3e3a760fb3..7e2c5234fb 100644 --- a/code/game/objects/items/devices/radio/electropack.dm +++ b/code/game/objects/items/devices/radio/electropack.dm @@ -1,4 +1,4 @@ -/obj/item/device/electropack +/obj/item/electropack name = "electropack" desc = "Dance my monkeys! DANCE!!!" icon = 'icons/obj/radio.dmi' @@ -15,20 +15,20 @@ var/frequency = FREQ_ELECTROPACK var/shock_cooldown = 0 -/obj/item/device/electropack/suicide_act(mob/user) +/obj/item/electropack/suicide_act(mob/user) user.visible_message("[user] hooks [user.p_them()]self to the electropack and spams the trigger! It looks like [user.p_theyre()] trying to commit suicide!") return (FIRELOSS) -/obj/item/device/electropack/Initialize() +/obj/item/electropack/Initialize() . = ..() SSradio.add_object(src, frequency, RADIO_SIGNALER) -/obj/item/device/electropack/Destroy() +/obj/item/electropack/Destroy() SSradio.remove_object(src, frequency) return ..() //ATTACK HAND IGNORING PARENT RETURN VALUE -/obj/item/device/electropack/attack_hand(mob/user) +/obj/item/electropack/attack_hand(mob/user) if(iscarbon(user)) var/mob/living/carbon/C = user if(src == C.back) @@ -36,7 +36,7 @@ return return ..() -/obj/item/device/electropack/attackby(obj/item/W, mob/user, params) +/obj/item/electropack/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/clothing/head/helmet)) var/obj/item/assembly/shock_kit/A = new /obj/item/assembly/shock_kit( user ) A.icon = 'icons/obj/assemblies.dmi' @@ -58,7 +58,7 @@ else return ..() -/obj/item/device/electropack/Topic(href, href_list) +/obj/item/electropack/Topic(href, href_list) //..() var/mob/living/carbon/C = usr if(usr.stat || usr.restrained() || C.back == src) @@ -98,7 +98,7 @@ return return -/obj/item/device/electropack/receive_signal(datum/signal/signal) +/obj/item/electropack/receive_signal(datum/signal/signal) if(!signal || signal.data["code"] != code) return @@ -122,7 +122,7 @@ master.receive_signal() return -/obj/item/device/electropack/attack_self(mob/user) +/obj/item/electropack/attack_self(mob/user) if(!ishuman(user)) return diff --git a/code/game/objects/items/devices/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm index 2d3d869676..dd7489d6b1 100644 --- a/code/game/objects/items/devices/radio/encryptionkey.dm +++ b/code/game/objects/items/devices/radio/encryptionkey.dm @@ -1,4 +1,4 @@ -/obj/item/device/encryptionkey +/obj/item/encryptionkey name = "standard encryption key" desc = "An encryption key for a radio headset. Has no special codes in it. WHY DOES IT EXIST? ASK NANOTRASEN." icon = 'icons/obj/radio.dmi' @@ -9,124 +9,124 @@ var/independent = FALSE var/list/channels = list() -/obj/item/device/encryptionkey/syndicate +/obj/item/encryptionkey/syndicate name = "syndicate encryption key" desc = "An encryption key for a radio headset. To access the syndicate channel, use :t." icon_state = "syn_cypherkey" channels = list("Syndicate" = 1) syndie = 1//Signifies that it de-crypts Syndicate transmissions -/obj/item/device/encryptionkey/binary +/obj/item/encryptionkey/binary name = "binary translator key" desc = "An encryption key for a radio headset. To access the binary channel, use :b." icon_state = "bin_cypherkey" translate_binary = TRUE -/obj/item/device/encryptionkey/headset_sec +/obj/item/encryptionkey/headset_sec name = "security radio encryption key" desc = "An encryption key for a radio headset. To access the security channel, use :s." icon_state = "sec_cypherkey" channels = list("Security" = 1) -/obj/item/device/encryptionkey/headset_eng +/obj/item/encryptionkey/headset_eng name = "engineering radio encryption key" desc = "An encryption key for a radio headset. To access the engineering channel, use :e." icon_state = "eng_cypherkey" channels = list("Engineering" = 1) -/obj/item/device/encryptionkey/headset_rob +/obj/item/encryptionkey/headset_rob name = "robotics radio encryption key" desc = "An encryption key for a radio headset. To access the engineering channel, use :e. For research, use :n." icon_state = "rob_cypherkey" channels = list("Science" = 1, "Engineering" = 1) -/obj/item/device/encryptionkey/headset_med +/obj/item/encryptionkey/headset_med name = "medical radio encryption key" desc = "An encryption key for a radio headset. To access the medical channel, use :m." icon_state = "med_cypherkey" channels = list("Medical" = 1) -/obj/item/device/encryptionkey/headset_sci +/obj/item/encryptionkey/headset_sci name = "science radio encryption key" desc = "An encryption key for a radio headset. To access the science channel, use :n." icon_state = "sci_cypherkey" channels = list("Science" = 1) -/obj/item/device/encryptionkey/headset_medsci +/obj/item/encryptionkey/headset_medsci name = "medical research radio encryption key" desc = "An encryption key for a radio headset. To access the medical channel, use :m. For science, use :n." icon_state = "medsci_cypherkey" channels = list("Science" = 1, "Medical" = 1) -/obj/item/device/encryptionkey/headset_com +/obj/item/encryptionkey/headset_com name = "command radio encryption key" desc = "An encryption key for a radio headset. To access the command channel, use :c." icon_state = "com_cypherkey" channels = list("Command" = 1) -/obj/item/device/encryptionkey/heads/captain +/obj/item/encryptionkey/heads/captain name = "\proper the captain's encryption key" desc = "An encryption key for a radio headset. Channels are as follows: :c - command, :s - security, :e - engineering, :u - supply, :v - service, :m - medical, :n - science." icon_state = "cap_cypherkey" channels = list("Command" = 1, "Security" = 1, "Engineering" = 0, "Science" = 0, "Medical" = 0, "Supply" = 0, "Service" = 0) -/obj/item/device/encryptionkey/heads/rd +/obj/item/encryptionkey/heads/rd name = "\proper the research director's encryption key" desc = "An encryption key for a radio headset. To access the science channel, use :n. For command, use :c." icon_state = "rd_cypherkey" channels = list("Science" = 1, "Command" = 1) -/obj/item/device/encryptionkey/heads/hos +/obj/item/encryptionkey/heads/hos name = "\proper the head of security's encryption key" desc = "An encryption key for a radio headset. To access the security channel, use :s. For command, use :c." icon_state = "hos_cypherkey" channels = list("Security" = 1, "Command" = 1) -/obj/item/device/encryptionkey/heads/ce +/obj/item/encryptionkey/heads/ce name = "\proper the chief engineer's encryption key" desc = "An encryption key for a radio headset. To access the engineering channel, use :e. For command, use :c." icon_state = "ce_cypherkey" channels = list("Engineering" = 1, "Command" = 1) -/obj/item/device/encryptionkey/heads/cmo +/obj/item/encryptionkey/heads/cmo name = "\proper the chief medical officer's encryption key" desc = "An encryption key for a radio headset. To access the medical channel, use :m. For command, use :c." icon_state = "cmo_cypherkey" channels = list("Medical" = 1, "Command" = 1) -/obj/item/device/encryptionkey/heads/hop +/obj/item/encryptionkey/heads/hop name = "\proper the head of personnel's encryption key" desc = "An encryption key for a radio headset. Channels are as follows: :u - supply, :v - service, :c - command." icon_state = "hop_cypherkey" channels = list("Supply" = 1, "Service" = 1, "Command" = 1) -/obj/item/device/encryptionkey/headset_cargo +/obj/item/encryptionkey/headset_cargo name = "supply radio encryption key" desc = "An encryption key for a radio headset. To access the supply channel, use :u." icon_state = "cargo_cypherkey" channels = list("Supply" = 1) -/obj/item/device/encryptionkey/headset_mining +/obj/item/encryptionkey/headset_mining name = "mining radio encryption key" desc = "An encryption key for a radio headset. To access the supply channel, use :u. For science, use :n." icon_state = "cargo_cypherkey" channels = list("Supply" = 1, "Science" = 1) -/obj/item/device/encryptionkey/headset_service +/obj/item/encryptionkey/headset_service name = "service radio encryption key" desc = "An encryption key for a radio headset. To access the service channel, use :v." icon_state = "srv_cypherkey" channels = list("Service" = 1) -/obj/item/device/encryptionkey/headset_cent +/obj/item/encryptionkey/headset_cent name = "\improper CentCom radio encryption key" desc = "An encryption key for a radio headset. To access the CentCom channel, use :y." icon_state = "cent_cypherkey" independent = TRUE channels = list("CentCom" = 1) -/obj/item/device/encryptionkey/ai //ported from NT, this goes 'inside' the AI. +/obj/item/encryptionkey/ai //ported from NT, this goes 'inside' the AI. channels = list("Command" = 1, "Security" = 1, "Engineering" = 1, "Science" = 1, "Medical" = 1, "Supply" = 1, "Service" = 1, "AI Private" = 1) -/obj/item/device/encryptionkey/secbot +/obj/item/encryptionkey/secbot channels = list("AI Private"=1,"Security"=1) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 1362721e1d..d16ac424b6 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -1,4 +1,4 @@ -/obj/item/device/radio/headset +/obj/item/radio/headset name = "radio headset" desc = "An updated, modular intercom that fits over the head. Takes encryption keys." icon_state = "headset" @@ -8,33 +8,33 @@ canhear_range = 0 // can't hear headsets from very far away slot_flags = SLOT_EARS - var/obj/item/device/encryptionkey/keyslot2 = null + var/obj/item/encryptionkey/keyslot2 = null dog_fashion = null -/obj/item/device/radio/headset/suicide_act(mob/living/carbon/user) +/obj/item/radio/headset/suicide_act(mob/living/carbon/user) user.visible_message("[user] begins putting \the [src]'s antenna up [user.p_their()] nose! It looks like [user.p_theyre()] trying to give [user.p_them()]self cancer!") return TOXLOSS -/obj/item/device/radio/headset/examine(mob/user) +/obj/item/radio/headset/examine(mob/user) ..() to_chat(user, "To speak on the general radio frequency, use ; before speaking.") if (command) to_chat(user, "Alt-click to toggle the high-volume mode.") -/obj/item/device/radio/headset/Initialize() +/obj/item/radio/headset/Initialize() . = ..() recalculateChannels() -/obj/item/device/radio/headset/Destroy() +/obj/item/radio/headset/Destroy() QDEL_NULL(keyslot2) return ..() -/obj/item/device/radio/headset/talk_into(mob/living/M, message, channel, list/spans,datum/language/language) +/obj/item/radio/headset/talk_into(mob/living/M, message, channel, list/spans,datum/language/language) if (!listening) return ITALICS | REDUCE_RANGE return ..() -/obj/item/device/radio/headset/can_receive(freq, level, AIuser) +/obj/item/radio/headset/can_receive(freq, level, AIuser) if(ishuman(src.loc)) var/mob/living/carbon/human/H = src.loc if(H.ears == src) @@ -43,165 +43,165 @@ return ..(freq, level) return FALSE -/obj/item/device/radio/headset/syndicate //disguised to look like a normal headset for stealth ops +/obj/item/radio/headset/syndicate //disguised to look like a normal headset for stealth ops -/obj/item/device/radio/headset/syndicate/alt //undisguised bowman with flash protection +/obj/item/radio/headset/syndicate/alt //undisguised bowman with flash protection name = "syndicate headset" desc = "A syndicate headset that can be used to hear all radio frequencies. Protects ears from flashbangs. \nTo access the syndicate channel, use ; before speaking." icon_state = "syndie_headset" item_state = "syndie_headset" flags_2 = BANG_PROTECT_2 | NO_EMP_WIRES_2 -/obj/item/device/radio/headset/syndicate/alt/leader +/obj/item/radio/headset/syndicate/alt/leader name = "team leader headset" command = TRUE -/obj/item/device/radio/headset/syndicate/Initialize() +/obj/item/radio/headset/syndicate/Initialize() . = ..() make_syndie() -/obj/item/device/radio/headset/binary -/obj/item/device/radio/headset/binary/Initialize() +/obj/item/radio/headset/binary +/obj/item/radio/headset/binary/Initialize() . = ..() qdel(keyslot) - keyslot = new /obj/item/device/encryptionkey/binary + keyslot = new /obj/item/encryptionkey/binary recalculateChannels() -/obj/item/device/radio/headset/headset_sec +/obj/item/radio/headset/headset_sec name = "security radio headset" desc = "This is used by your elite security force.\nTo access the security channel, use :s." icon_state = "sec_headset" - keyslot = new /obj/item/device/encryptionkey/headset_sec + keyslot = new /obj/item/encryptionkey/headset_sec -/obj/item/device/radio/headset/headset_sec/alt +/obj/item/radio/headset/headset_sec/alt name = "security bowman headset" desc = "This is used by your elite security force. Protects ears from flashbangs.\nTo access the security channel, use :s." icon_state = "sec_headset_alt" item_state = "sec_headset_alt" flags_2 = BANG_PROTECT_2 | NO_EMP_WIRES_2 -/obj/item/device/radio/headset/headset_eng +/obj/item/radio/headset/headset_eng name = "engineering radio headset" desc = "When the engineers wish to chat like girls.\nTo access the engineering channel, use :e." icon_state = "eng_headset" - keyslot = new /obj/item/device/encryptionkey/headset_eng + keyslot = new /obj/item/encryptionkey/headset_eng -/obj/item/device/radio/headset/headset_rob +/obj/item/radio/headset/headset_rob name = "robotics radio headset" desc = "Made specifically for the roboticists, who cannot decide between departments.\nTo access the engineering channel, use :e. For research, use :n." icon_state = "rob_headset" - keyslot = new /obj/item/device/encryptionkey/headset_rob + keyslot = new /obj/item/encryptionkey/headset_rob -/obj/item/device/radio/headset/headset_med +/obj/item/radio/headset/headset_med name = "medical radio headset" desc = "A headset for the trained staff of the medbay.\nTo access the medical channel, use :m." icon_state = "med_headset" - keyslot = new /obj/item/device/encryptionkey/headset_med + keyslot = new /obj/item/encryptionkey/headset_med -/obj/item/device/radio/headset/headset_sci +/obj/item/radio/headset/headset_sci name = "science radio headset" desc = "A sciency headset. Like usual.\nTo access the science channel, use :n." icon_state = "sci_headset" - keyslot = new /obj/item/device/encryptionkey/headset_sci + keyslot = new /obj/item/encryptionkey/headset_sci -/obj/item/device/radio/headset/headset_medsci +/obj/item/radio/headset/headset_medsci name = "medical research radio headset" desc = "A headset that is a result of the mating between medical and science.\nTo access the medical channel, use :m. For science, use :n." icon_state = "medsci_headset" - keyslot = new /obj/item/device/encryptionkey/headset_medsci + keyslot = new /obj/item/encryptionkey/headset_medsci -/obj/item/device/radio/headset/headset_com +/obj/item/radio/headset/headset_com name = "command radio headset" desc = "A headset with a commanding channel.\nTo access the command channel, use :c." icon_state = "com_headset" - keyslot = new /obj/item/device/encryptionkey/headset_com + keyslot = new /obj/item/encryptionkey/headset_com -/obj/item/device/radio/headset/heads +/obj/item/radio/headset/heads command = TRUE -/obj/item/device/radio/headset/heads/captain +/obj/item/radio/headset/heads/captain name = "\proper the captain's headset" desc = "The headset of the king.\nChannels are as follows: :c - command, :s - security, :e - engineering, :u - supply, :v - service, :m - medical, :n - science." icon_state = "com_headset" - keyslot = new /obj/item/device/encryptionkey/heads/captain + keyslot = new /obj/item/encryptionkey/heads/captain -/obj/item/device/radio/headset/heads/captain/alt +/obj/item/radio/headset/heads/captain/alt name = "\proper the captain's bowman headset" desc = "The headset of the boss. Protects ears from flashbangs.\nChannels are as follows: :c - command, :s - security, :e - engineering, :u - supply, :v - service, :m - medical, :n - science." icon_state = "com_headset_alt" item_state = "com_headset_alt" flags_2 = BANG_PROTECT_2 | NO_EMP_WIRES_2 -/obj/item/device/radio/headset/heads/rd +/obj/item/radio/headset/heads/rd name = "\proper the research director's headset" desc = "Headset of the fellow who keeps society marching towards technological singularity.\nTo access the science channel, use :n. For command, use :c." icon_state = "com_headset" - keyslot = new /obj/item/device/encryptionkey/heads/rd + keyslot = new /obj/item/encryptionkey/heads/rd -/obj/item/device/radio/headset/heads/hos +/obj/item/radio/headset/heads/hos name = "\proper the head of security's headset" desc = "The headset of the man in charge of keeping order and protecting the station.\nTo access the security channel, use :s. For command, use :c." icon_state = "com_headset" - keyslot = new /obj/item/device/encryptionkey/heads/hos + keyslot = new /obj/item/encryptionkey/heads/hos -/obj/item/device/radio/headset/heads/hos/alt +/obj/item/radio/headset/heads/hos/alt name = "\proper the head of security's bowman headset" desc = "The headset of the man in charge of keeping order and protecting the station. Protects ears from flashbangs.\nTo access the security channel, use :s. For command, use :c." icon_state = "com_headset_alt" item_state = "com_headset_alt" flags_2 = BANG_PROTECT_2 | NO_EMP_WIRES_2 -/obj/item/device/radio/headset/heads/ce +/obj/item/radio/headset/heads/ce name = "\proper the chief engineer's headset" desc = "The headset of the guy in charge of keeping the station powered and undamaged.\nTo access the engineering channel, use :e. For command, use :c." icon_state = "com_headset" - keyslot = new /obj/item/device/encryptionkey/heads/ce + keyslot = new /obj/item/encryptionkey/heads/ce -/obj/item/device/radio/headset/heads/cmo +/obj/item/radio/headset/heads/cmo name = "\proper the chief medical officer's headset" desc = "The headset of the highly trained medical chief.\nTo access the medical channel, use :m. For command, use :c." icon_state = "com_headset" - keyslot = new /obj/item/device/encryptionkey/heads/cmo + keyslot = new /obj/item/encryptionkey/heads/cmo -/obj/item/device/radio/headset/heads/hop +/obj/item/radio/headset/heads/hop name = "\proper the head of personnel's headset" desc = "The headset of the guy who will one day be captain.\nChannels are as follows: :u - supply, :v - service, :c - command." icon_state = "com_headset" - keyslot = new /obj/item/device/encryptionkey/heads/hop + keyslot = new /obj/item/encryptionkey/heads/hop -/obj/item/device/radio/headset/headset_cargo +/obj/item/radio/headset/headset_cargo name = "supply radio headset" desc = "A headset used by the QM and his slaves.\nTo access the supply channel, use :u." icon_state = "cargo_headset" - keyslot = new /obj/item/device/encryptionkey/headset_cargo + keyslot = new /obj/item/encryptionkey/headset_cargo -/obj/item/device/radio/headset/headset_cargo/mining +/obj/item/radio/headset/headset_cargo/mining name = "mining radio headset" desc = "Headset used by shaft miners.\nTo access the supply channel, use :u. For science, use :n." icon_state = "mine_headset" - keyslot = new /obj/item/device/encryptionkey/headset_mining + keyslot = new /obj/item/encryptionkey/headset_mining -/obj/item/device/radio/headset/headset_srv +/obj/item/radio/headset/headset_srv name = "service radio headset" desc = "Headset used by the service staff, tasked with keeping the station full, happy and clean.\nTo access the service channel, use :v." icon_state = "srv_headset" - keyslot = new /obj/item/device/encryptionkey/headset_service + keyslot = new /obj/item/encryptionkey/headset_service -/obj/item/device/radio/headset/headset_cent +/obj/item/radio/headset/headset_cent name = "\improper CentCom headset" desc = "A headset used by the upper echelons of Nanotrasen.\nTo access the CentCom channel, use :y." icon_state = "cent_headset" - keyslot = new /obj/item/device/encryptionkey/headset_com - keyslot2 = new /obj/item/device/encryptionkey/headset_cent + keyslot = new /obj/item/encryptionkey/headset_com + keyslot2 = new /obj/item/encryptionkey/headset_cent -/obj/item/device/radio/headset/headset_cent/empty +/obj/item/radio/headset/headset_cent/empty keyslot = null keyslot2 = null -/obj/item/device/radio/headset/headset_cent/commander - keyslot = new /obj/item/device/encryptionkey/heads/captain +/obj/item/radio/headset/headset_cent/commander + keyslot = new /obj/item/encryptionkey/heads/captain -/obj/item/device/radio/headset/headset_cent/alt +/obj/item/radio/headset/headset_cent/alt name = "\improper CentCom bowman headset" desc = "A headset especially for emergency response personnel. Protects ears from flashbangs.\nTo access the CentCom channel, use :y." icon_state = "cent_headset_alt" @@ -209,15 +209,15 @@ keyslot = null flags_2 = BANG_PROTECT_2 | NO_EMP_WIRES_2 -/obj/item/device/radio/headset/ai +/obj/item/radio/headset/ai name = "\proper Integrated Subspace Transceiver " - keyslot2 = new /obj/item/device/encryptionkey/ai + keyslot2 = new /obj/item/encryptionkey/ai command = TRUE -/obj/item/device/radio/headset/ai/can_receive(freq, level) +/obj/item/radio/headset/ai/can_receive(freq, level) return ..(freq, level, TRUE) -/obj/item/device/radio/headset/attackby(obj/item/W, mob/user, params) +/obj/item/radio/headset/attackby(obj/item/W, mob/user, params) user.set_machine(src) if(istype(W, /obj/item/screwdriver)) @@ -241,7 +241,7 @@ else to_chat(user, "This headset doesn't have any unique encryption keys! How useless...") - else if(istype(W, /obj/item/device/encryptionkey)) + else if(istype(W, /obj/item/encryptionkey)) if(keyslot && keyslot2) to_chat(user, "The headset can't hold another key!") return @@ -262,7 +262,7 @@ return ..() -/obj/item/device/radio/headset/recalculateChannels() +/obj/item/radio/headset/recalculateChannels() ..() if(keyslot2) for(var/ch_name in keyslot2.channels) @@ -279,7 +279,7 @@ for(var/ch_name in channels) secure_radio_connections[ch_name] = add_radio(src, GLOB.radiochannels[ch_name]) -/obj/item/device/radio/headset/AltClick(mob/living/user) +/obj/item/radio/headset/AltClick(mob/living/user) if(!istype(user) || !Adjacent(user) || user.incapacitated()) return if (command) diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index 0ac123566f..02f549956a 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -1,4 +1,4 @@ -/obj/item/device/radio/intercom +/obj/item/radio/intercom name = "station intercom" desc = "Talk through this." icon_state = "intercom" @@ -12,22 +12,22 @@ dog_fashion = null var/unfastened = FALSE -/obj/item/device/radio/intercom/unscrewed +/obj/item/radio/intercom/unscrewed unfastened = TRUE -/obj/item/device/radio/intercom/ratvar +/obj/item/radio/intercom/ratvar name = "hierophant intercom" desc = "A modified intercom that uses the Hierophant network instead of subspace tech. Can listen to and broadcast on any frequency." icon_state = "intercom_ratvar" freerange = TRUE -/obj/item/device/radio/intercom/ratvar/attackby(obj/item/I, mob/living/user, params) +/obj/item/radio/intercom/ratvar/attackby(obj/item/I, mob/living/user, params) if(istype(I, /obj/item/screwdriver)) to_chat(user, "[src] is fastened to the wall with [is_servant_of_ratvar(user) ? "replicant alloy" : "some material you've never seen"], and can't be removed.") return //no unfastening! . = ..() -/obj/item/device/radio/intercom/ratvar/process() +/obj/item/radio/intercom/ratvar/process() if(!istype(SSticker.mode, /datum/game_mode/clockwork_cult)) invisibility = INVISIBILITY_OBSERVER alpha = 125 @@ -38,24 +38,24 @@ emped = FALSE ..() -/obj/item/device/radio/intercom/Initialize(mapload, ndir, building) +/obj/item/radio/intercom/Initialize(mapload, ndir, building) . = ..() if(building) setDir(ndir) START_PROCESSING(SSobj, src) -/obj/item/device/radio/intercom/Destroy() +/obj/item/radio/intercom/Destroy() STOP_PROCESSING(SSobj, src) return ..() -/obj/item/device/radio/intercom/examine(mob/user) +/obj/item/radio/intercom/examine(mob/user) ..() if(!unfastened) to_chat(user, "It's screwed and secured to the wall.") else to_chat(user, "It's unscrewed from the wall, and can be detached.") -/obj/item/device/radio/intercom/attackby(obj/item/I, mob/living/user, params) +/obj/item/radio/intercom/attackby(obj/item/I, mob/living/user, params) if(istype(I, /obj/item/screwdriver)) if(unfastened) user.visible_message("[user] starts tightening [src]'s screws...", "You start screwing in [src]...") @@ -82,20 +82,20 @@ return return ..() -/obj/item/device/radio/intercom/attack_ai(mob/user) +/obj/item/radio/intercom/attack_ai(mob/user) interact(user) -/obj/item/device/radio/intercom/attack_hand(mob/user) +/obj/item/radio/intercom/attack_hand(mob/user) . = ..() if(.) return interact(user) -/obj/item/device/radio/intercom/interact(mob/user) +/obj/item/radio/intercom/interact(mob/user) ..() ui_interact(user, state = GLOB.default_state) -/obj/item/device/radio/intercom/can_receive(freq, level) +/obj/item/radio/intercom/can_receive(freq, level) if(!on) return FALSE if(wires.is_cut(WIRE_RX)) @@ -113,14 +113,14 @@ return TRUE -/obj/item/device/radio/intercom/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans, message_mode) +/obj/item/radio/intercom/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans, message_mode) if (message_mode == MODE_INTERCOM) return // Avoid hearing the same thing twice if(!anyai && !(speaker in ai)) return ..() -/obj/item/device/radio/intercom/process() +/obj/item/radio/intercom/process() if(((world.timeofday - last_tick) > 30) || ((world.timeofday - last_tick) < 0)) last_tick = world.timeofday @@ -135,7 +135,7 @@ else icon_state = initial(icon_state) -/obj/item/device/radio/intercom/add_blood_DNA(list/blood_dna) +/obj/item/radio/intercom/add_blood_DNA(list/blood_dna) return FALSE //Created through the autolathe or through deconstructing intercoms. Can be applied to wall to make a new intercom on it! @@ -143,7 +143,7 @@ name = "intercom frame" desc = "A ready-to-go intercom. Just slap it on a wall and screw it in!" icon_state = "intercom" - result_path = /obj/item/device/radio/intercom/unscrewed + result_path = /obj/item/radio/intercom/unscrewed pixel_shift = 29 inverse = TRUE materials = list(MAT_METAL = 75, MAT_GLASS = 25) diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 1f6f97284b..9b5ce58867 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -1,4 +1,4 @@ -/obj/item/device/radio +/obj/item/radio icon = 'icons/obj/radio.dmi' name = "station bounced radio" icon_state = "walkietalkie" @@ -33,7 +33,7 @@ var/command = FALSE // If true, use_command can be toggled at will. // Encryption key handling - var/obj/item/device/encryptionkey/keyslot + var/obj/item/encryptionkey/keyslot var/translate_binary = FALSE // If true, can hear the special binary channel. var/independent = FALSE // If true, can say/hear on the special CentCom channel. var/syndie = FALSE // If true, hears all well-known channels automatically, and can say/hear on the Syndicate channel. @@ -43,15 +43,15 @@ var/const/FREQ_LISTENING = 1 //FREQ_BROADCASTING = 2 -/obj/item/device/radio/suicide_act(mob/living/user) +/obj/item/radio/suicide_act(mob/living/user) user.visible_message("[user] starts bouncing [src] off their head! It looks like [user.p_theyre()] trying to commit suicide!") return BRUTELOSS -/obj/item/device/radio/proc/set_frequency(new_frequency) +/obj/item/radio/proc/set_frequency(new_frequency) remove_radio(src, frequency) frequency = add_radio(src, new_frequency) -/obj/item/device/radio/proc/recalculateChannels() +/obj/item/radio/proc/recalculateChannels() channels = list() translate_binary = FALSE syndie = FALSE @@ -72,19 +72,19 @@ for(var/ch_name in channels) secure_radio_connections[ch_name] = add_radio(src, GLOB.radiochannels[ch_name]) -/obj/item/device/radio/proc/make_syndie() // Turns normal radios into Syndicate radios! +/obj/item/radio/proc/make_syndie() // Turns normal radios into Syndicate radios! qdel(keyslot) - keyslot = new /obj/item/device/encryptionkey/syndicate + keyslot = new /obj/item/encryptionkey/syndicate syndie = 1 recalculateChannels() -/obj/item/device/radio/Destroy() +/obj/item/radio/Destroy() remove_radio_all(src) //Just to be sure QDEL_NULL(wires) QDEL_NULL(keyslot) return ..() -/obj/item/device/radio/Initialize() +/obj/item/radio/Initialize() wires = new /datum/wires/radio(src) if(prison_radio) wires.cut(WIRE_TX) // OH GOD WHY @@ -96,7 +96,7 @@ for(var/ch_name in channels) secure_radio_connections[ch_name] = add_radio(src, GLOB.radiochannels[ch_name]) -/obj/item/device/radio/interact(mob/user) +/obj/item/radio/interact(mob/user) if (..()) return if(unscrewed && !isAI(user)) @@ -104,7 +104,7 @@ else ui_interact(user) -/obj/item/device/radio/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \ +/obj/item/radio/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \ datum/tgui/master_ui = null, datum/ui_state/state = GLOB.inventory_state) . = ..() ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) @@ -112,7 +112,7 @@ ui = new(user, src, ui_key, "radio", name, 370, 220 + channels.len * 22, master_ui, state) ui.open() -/obj/item/device/radio/ui_data(mob/user) +/obj/item/radio/ui_data(mob/user) var/list/data = list() data["broadcasting"] = broadcasting @@ -128,11 +128,11 @@ data["useCommand"] = use_command data["subspace"] = subspace_transmission data["subspaceSwitchable"] = subspace_switchable - data["headset"] = istype(src, /obj/item/device/radio/headset) + data["headset"] = istype(src, /obj/item/radio/headset) return data -/obj/item/device/radio/ui_act(action, params, datum/tgui/ui) +/obj/item/radio/ui_act(action, params, datum/tgui/ui) if(..()) return switch(action) @@ -191,7 +191,7 @@ recalculateChannels() . = TRUE -/obj/item/device/radio/talk_into(atom/movable/M, message, channel, list/spans, datum/language/language) +/obj/item/radio/talk_into(atom/movable/M, message, channel, list/spans, datum/language/language) if(!spans) spans = M.get_spans() if(!language) @@ -199,7 +199,7 @@ INVOKE_ASYNC(src, .proc/talk_into_impl, M, message, channel, spans.Copy(), language) return ITALICS | REDUCE_RANGE -/obj/item/device/radio/proc/talk_into_impl(atom/movable/M, message, channel, list/spans, datum/language/language) +/obj/item/radio/proc/talk_into_impl(atom/movable/M, message, channel, list/spans, datum/language/language) if(!on) return // the device has to be on if(!M || !message) @@ -236,7 +236,7 @@ // Nearby active jammers severely gibberish the message var/turf/position = get_turf(src) - for(var/obj/item/device/jammer/jammer in GLOB.active_jammers) + for(var/obj/item/jammer/jammer in GLOB.active_jammers) var/turf/jammer_turf = get_turf(jammer) if(position.z == jammer_turf.z && (get_dist(position, jammer_turf) < jammer.range)) message = Gibberish(message,100) @@ -267,7 +267,7 @@ // was never received, send a mundane broadcast (no headsets). addtimer(CALLBACK(src, .proc/backup_transmission, signal), 20) -/obj/item/device/radio/proc/backup_transmission(datum/signal/subspace/vocal/signal) +/obj/item/radio/proc/backup_transmission(datum/signal/subspace/vocal/signal) var/turf/T = get_turf(src) if (signal.data["done"] && (T.z in signal.levels)) return @@ -278,7 +278,7 @@ signal.levels = list(T.z) signal.broadcast() -/obj/item/device/radio/Hear(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode) +/obj/item/radio/Hear(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode) if(radio_freq || !broadcasting || get_dist(src, speaker) > canhear_range) return @@ -297,7 +297,7 @@ talk_into(speaker, raw_message, , spans, language=message_language) // Checks if this radio can receive on the given frequency. -/obj/item/device/radio/proc/can_receive(freq, level) +/obj/item/radio/proc/can_receive(freq, level) // deny checks if (!on || !listening || wires.is_cut(WIRE_RX)) return FALSE @@ -321,14 +321,14 @@ return FALSE -/obj/item/device/radio/examine(mob/user) +/obj/item/radio/examine(mob/user) ..() if (unscrewed) to_chat(user, "It can be attached and modified.") else to_chat(user, "It cannot be modified or attached.") -/obj/item/device/radio/attackby(obj/item/W, mob/user, params) +/obj/item/radio/attackby(obj/item/W, mob/user, params) add_fingerprint(user) if(istype(W, /obj/item/screwdriver)) unscrewed = !unscrewed @@ -339,7 +339,7 @@ else return ..() -/obj/item/device/radio/emp_act(severity) +/obj/item/radio/emp_act(severity) emped++ //There's been an EMP; better count it var/curremp = emped //Remember which EMP this was if (listening && ismob(loc)) // if the radio is turned on and on someone's person they notice @@ -352,7 +352,7 @@ spawn(200) if(emped == curremp) //Don't fix it if it's been EMP'd again emped = 0 - if (!istype(src, /obj/item/device/radio/intercom)) // intercoms will turn back on on their own + if (!istype(src, /obj/item/radio/intercom)) // intercoms will turn back on on their own on = TRUE ..() @@ -361,24 +361,24 @@ /////////////////////////////// //Giving borgs their own radio to have some more room to work with -Sieve -/obj/item/device/radio/borg +/obj/item/radio/borg name = "cyborg radio" subspace_switchable = TRUE dog_fashion = null flags_2 = NO_EMP_WIRES_2 -/obj/item/device/radio/borg/Initialize(mapload) +/obj/item/radio/borg/Initialize(mapload) . = ..() -/obj/item/device/radio/borg/syndicate +/obj/item/radio/borg/syndicate syndie = 1 - keyslot = new /obj/item/device/encryptionkey/syndicate + keyslot = new /obj/item/encryptionkey/syndicate -/obj/item/device/radio/borg/syndicate/Initialize() +/obj/item/radio/borg/syndicate/Initialize() . = ..() set_frequency(FREQ_SYNDICATE) -/obj/item/device/radio/borg/attackby(obj/item/W, mob/user, params) +/obj/item/radio/borg/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/screwdriver)) if(keyslot) @@ -399,7 +399,7 @@ else to_chat(user, "This radio doesn't have any encryption keys!") - else if(istype(W, /obj/item/device/encryptionkey/)) + else if(istype(W, /obj/item/encryptionkey/)) if(keyslot) to_chat(user, "The radio can't hold another key!") return @@ -412,6 +412,6 @@ recalculateChannels() -/obj/item/device/radio/off // Station bounced radios, their only difference is spawning with the speakers off, this was made to help the lag. +/obj/item/radio/off // Station bounced radios, their only difference is spawning with the speakers off, this was made to help the lag. listening = 0 // And it's nice to have a subtype too for future features. dog_fashion = /datum/dog_fashion/back diff --git a/code/game/objects/items/devices/reverse_bear_trap.dm b/code/game/objects/items/devices/reverse_bear_trap.dm index 0d41b12ccd..7631937de0 100644 --- a/code/game/objects/items/devices/reverse_bear_trap.dm +++ b/code/game/objects/items/devices/reverse_bear_trap.dm @@ -1,6 +1,7 @@ -/obj/item/device/reverse_bear_trap +/obj/item/reverse_bear_trap name = "reverse bear trap" desc = "A horrifying set of shut metal jaws, rigged to a kitchen timer and secured by padlock to a head-mounted clamp. To apply, hit someone with it." + icon = 'icons/obj/device.dmi' icon_state = "reverse_bear_trap" slot_flags = SLOT_HEAD flags_1 = CONDUCT_1 @@ -21,18 +22,18 @@ var/datum/looping_sound/reverse_bear_trap/soundloop var/datum/looping_sound/reverse_bear_trap_beep/soundloop2 -/obj/item/device/reverse_bear_trap/Initialize() +/obj/item/reverse_bear_trap/Initialize() . = ..() soundloop = new(list(src)) soundloop2 = new(list(src)) -/obj/item/device/reverse_bear_trap/Destroy() +/obj/item/reverse_bear_trap/Destroy() QDEL_NULL(soundloop) QDEL_NULL(soundloop2) STOP_PROCESSING(SSprocessing, src) return ..() -/obj/item/device/reverse_bear_trap/process() +/obj/item/reverse_bear_trap/process() if(!ticking) return time_left-- @@ -44,7 +45,7 @@ to_chat(loc, "*ding*") addtimer(CALLBACK(src, .proc/snap), 2) -/obj/item/device/reverse_bear_trap/attack_hand(mob/user) +/obj/item/reverse_bear_trap/attack_hand(mob/user) if(iscarbon(user)) var/mob/living/carbon/C = user if(C.get_item_by_slot(slot_head) == src) @@ -80,7 +81,7 @@ return ..() -/obj/item/device/reverse_bear_trap/attack(mob/living/target, mob/living/user) +/obj/item/reverse_bear_trap/attack(mob/living/target, mob/living/user) if(target.get_item_by_slot(slot_head)) to_chat(user, "Remove their headgear first!") return @@ -97,7 +98,7 @@ arm() notify_ghosts("[user] put a reverse bear trap on [target]!", source = src, action = NOTIFY_ORBIT, ghost_sound = 'sound/machines/beep.ogg') -/obj/item/device/reverse_bear_trap/proc/snap() +/obj/item/reverse_bear_trap/proc/snap() reset() var/mob/living/carbon/human/H = loc if(!istype(H) || H.get_item_by_slot(slot_head) != src) @@ -113,14 +114,14 @@ jill.death() //just in case, for some reason, they're still alive flash_color(jill, flash_color = "#FF0000", flash_time = 100) -/obj/item/device/reverse_bear_trap/proc/reset() +/obj/item/reverse_bear_trap/proc/reset() ticking = FALSE flags_1 &= ~NODROP_1 soundloop.stop() soundloop2.stop() STOP_PROCESSING(SSprocessing, src) -/obj/item/device/reverse_bear_trap/proc/arm() //hulen +/obj/item/reverse_bear_trap/proc/arm() //hulen ticking = TRUE escape_chance = initial(escape_chance) //we keep these vars until re-arm, for tracking purposes time_left = initial(time_left) diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 69149042b9..b574d0c622 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -6,9 +6,10 @@ HEALTH ANALYZER GAS ANALYZER */ -/obj/item/device/t_scanner +/obj/item/t_scanner name = "\improper T-ray scanner" desc = "A terahertz-ray emitter and scanner used to detect underfloor objects such as cables and pipes." + icon = 'icons/obj/device.dmi' icon_state = "t-ray0" var/on = FALSE slot_flags = SLOT_BELT @@ -18,11 +19,11 @@ GAS ANALYZER righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' materials = list(MAT_METAL=150) -/obj/item/device/t_scanner/suicide_act(mob/living/carbon/user) +/obj/item/t_scanner/suicide_act(mob/living/carbon/user) user.visible_message("[user] begins to emit terahertz-rays into [user.p_their()] brain with [src]! It looks like [user.p_theyre()] trying to commit suicide!") return TOXLOSS -/obj/item/device/t_scanner/attack_self(mob/user) +/obj/item/t_scanner/attack_self(mob/user) on = !on icon_state = copytext(icon_state, 1, length(icon_state))+"[on]" @@ -30,13 +31,13 @@ GAS ANALYZER if(on) START_PROCESSING(SSobj, src) -/obj/item/device/t_scanner/process() +/obj/item/t_scanner/process() if(!on) STOP_PROCESSING(SSobj, src) return null scan() -/obj/item/device/t_scanner/proc/scan() +/obj/item/t_scanner/proc/scan() t_ray_scan(loc) /proc/t_ray_scan(mob/viewer, flick_time = 8, distance = 2) @@ -57,8 +58,9 @@ GAS ANALYZER if(t_ray_images.len) flick_overlay(t_ray_images, list(viewer.client), flick_time) -/obj/item/device/healthanalyzer +/obj/item/healthanalyzer name = "health analyzer" + icon = 'icons/obj/device.dmi' icon_state = "health" item_state = "healthanalyzer" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' @@ -75,11 +77,11 @@ GAS ANALYZER var/scanmode = 0 var/advanced = FALSE -/obj/item/device/healthanalyzer/suicide_act(mob/living/carbon/user) +/obj/item/healthanalyzer/suicide_act(mob/living/carbon/user) user.visible_message("[user] begins to analyze [user.p_them()]self with [src]! The display shows that [user.p_theyre()] dead!") return BRUTELOSS -/obj/item/device/healthanalyzer/attack_self(mob/user) +/obj/item/healthanalyzer/attack_self(mob/user) if(!scanmode) to_chat(user, "You switch the health analyzer to scan chemical contents.") scanmode = 1 @@ -87,7 +89,7 @@ GAS ANALYZER to_chat(user, "You switch the health analyzer to check physical health.") scanmode = 0 -/obj/item/device/healthanalyzer/attack(mob/living/M, mob/living/carbon/human/user) +/obj/item/healthanalyzer/attack(mob/living/M, mob/living/carbon/human/user) // Clumsiness/brain damage check if ((user.has_trait(TRAIT_CLUMSY) || user.has_trait(TRAIT_DUMB)) && prob(50)) @@ -315,7 +317,7 @@ GAS ANALYZER else to_chat(user, "Subject is not addicted to any reagents.") -/obj/item/device/healthanalyzer/verb/toggle_mode() +/obj/item/healthanalyzer/verb/toggle_mode() set name = "Switch Verbosity" set category = "Object" @@ -329,15 +331,16 @@ GAS ANALYZER if(0) to_chat(usr, "The scanner no longer shows limb damage.") -/obj/item/device/healthanalyzer/advanced +/obj/item/healthanalyzer/advanced name = "advanced health analyzer" icon_state = "health_adv" desc = "A hand-held body scanner able to distinguish vital signs of the subject with high accuracy." advanced = TRUE -/obj/item/device/analyzer +/obj/item/analyzer desc = "A hand-held environmental scanner which reports current gas levels. Alt-Click to use the built in barometer function." name = "analyzer" + icon = 'icons/obj/device.dmi' icon_state = "atmos" item_state = "analyzer" lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' @@ -354,11 +357,11 @@ GAS ANALYZER var/cooldown_time = 250 var/accuracy // 0 is the best accuracy. -/obj/item/device/analyzer/suicide_act(mob/living/carbon/user) +/obj/item/analyzer/suicide_act(mob/living/carbon/user) user.visible_message("[user] begins to analyze [user.p_them()]self with [src]! The display shows that [user.p_theyre()] dead!") return BRUTELOSS -/obj/item/device/analyzer/attack_self(mob/user) +/obj/item/analyzer/attack_self(mob/user) add_fingerprint(user) @@ -415,9 +418,9 @@ GAS ANALYZER continue var/gas_concentration = env_gases[id][MOLES]/total_moles to_chat(user, "[env_gases[id][GAS_META][META_GAS_NAME]]: [round(gas_concentration*100, 0.01)] %") - to_chat(user, "Temperature: [round(environment.temperature-T0C)] °C") + to_chat(user, "Temperature: [round(environment.temperature-T0C)] °C ([round(environment.temperature)]K)") -/obj/item/device/analyzer/AltClick(mob/user) //Barometer output for measuring when the next storm happens +/obj/item/analyzer/AltClick(mob/user) //Barometer output for measuring when the next storm happens ..() if(user.canUseTopic(src)) @@ -460,17 +463,17 @@ GAS ANALYZER else to_chat(user, "[src]'s barometer function says a storm will land in approximately [butchertime(fixed)].") cooldown = TRUE - addtimer(CALLBACK(src,/obj/item/device/analyzer/proc/ping), cooldown_time) + addtimer(CALLBACK(src,/obj/item/analyzer/proc/ping), cooldown_time) -/obj/item/device/analyzer/proc/ping() +/obj/item/analyzer/proc/ping() if(isliving(loc)) var/mob/living/L = loc to_chat(L, "[src]'s barometer function is ready!") playsound(src, 'sound/machines/click.ogg', 100) cooldown = FALSE -/obj/item/device/analyzer/proc/butchertime(amount) +/obj/item/analyzer/proc/butchertime(amount) if(!amount) return if(accuracy) @@ -481,9 +484,10 @@ GAS ANALYZER amount += inaccurate return DisplayTimeText(max(1,amount)) -/obj/item/device/slime_scanner +/obj/item/slime_scanner name = "slime scanner" desc = "A device that analyzes a slime's internal composition and measures its stats." + icon = 'icons/obj/device.dmi' icon_state = "adv_spectrometer" item_state = "analyzer" lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' @@ -495,7 +499,7 @@ GAS ANALYZER throw_range = 7 materials = list(MAT_METAL=30, MAT_GLASS=20) -/obj/item/device/slime_scanner/attack(mob/living/M, mob/living/user) +/obj/item/slime_scanner/attack(mob/living/M, mob/living/user) if(user.stat || user.eye_blind) return if (!isslime(M)) diff --git a/code/game/objects/items/devices/sensor_device.dm b/code/game/objects/items/devices/sensor_device.dm index edfd4368ff..8aa2ec7d4e 100644 --- a/code/game/objects/items/devices/sensor_device.dm +++ b/code/game/objects/items/devices/sensor_device.dm @@ -1,4 +1,4 @@ -/obj/item/device/sensor_device +/obj/item/sensor_device name = "handheld crew monitor" //Thanks to Gun Hog for the name! desc = "A miniature machine that tracks suit sensors across the station." icon = 'icons/obj/device.dmi' @@ -6,5 +6,5 @@ w_class = WEIGHT_CLASS_SMALL slot_flags = SLOT_BELT -/obj/item/device/sensor_device/attack_self(mob/user) +/obj/item/sensor_device/attack_self(mob/user) GLOB.crewmonitor.show(user,src) //Proc already exists, just had to call it diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm index bf7a0b8ee8..182565da22 100644 --- a/code/game/objects/items/devices/taperecorder.dm +++ b/code/game/objects/items/devices/taperecorder.dm @@ -1,6 +1,7 @@ -/obj/item/device/taperecorder +/obj/item/taperecorder name = "universal recorder" desc = "A device that can record to cassette tapes, and play them. It automatically translates the content in playback." + icon = 'icons/obj/device.dmi' icon_state = "taperecorder_empty" item_state = "analyzer" lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' @@ -14,26 +15,26 @@ var/recording = 0 var/playing = 0 var/playsleepseconds = 0 - var/obj/item/device/tape/mytape - var/starting_tape_type = /obj/item/device/tape/random + var/obj/item/tape/mytape + var/starting_tape_type = /obj/item/tape/random var/open_panel = 0 var/canprint = 1 -/obj/item/device/taperecorder/Initialize(mapload) +/obj/item/taperecorder/Initialize(mapload) . = ..() if(starting_tape_type) mytape = new starting_tape_type(src) update_icon() -/obj/item/device/taperecorder/examine(mob/user) +/obj/item/taperecorder/examine(mob/user) ..() to_chat(user, "The wire panel is [open_panel ? "opened" : "closed"].") -/obj/item/device/taperecorder/attackby(obj/item/I, mob/user, params) - if(!mytape && istype(I, /obj/item/device/tape)) +/obj/item/taperecorder/attackby(obj/item/I, mob/user, params) + if(!mytape && istype(I, /obj/item/tape)) if(!user.transferItemToLoc(I,src)) return mytape = I @@ -41,7 +42,7 @@ update_icon() -/obj/item/device/taperecorder/proc/eject(mob/user) +/obj/item/taperecorder/proc/eject(mob/user) if(mytape) to_chat(user, "You remove [mytape] from [src].") stop() @@ -49,12 +50,12 @@ mytape = null update_icon() -/obj/item/device/taperecorder/fire_act(exposed_temperature, exposed_volume) +/obj/item/taperecorder/fire_act(exposed_temperature, exposed_volume) mytape.ruin() //Fires destroy the tape ..() //ATTACK HAND IGNORING PARENT RETURN VALUE -/obj/item/device/taperecorder/attack_hand(mob/user) +/obj/item/taperecorder/attack_hand(mob/user) if(loc == user) if(mytape) if(!user.is_holding(src)) @@ -63,14 +64,14 @@ else return ..() -/obj/item/device/taperecorder/proc/can_use(mob/user) +/obj/item/taperecorder/proc/can_use(mob/user) if(user && ismob(user)) if(!user.incapacitated()) return TRUE return FALSE -/obj/item/device/taperecorder/verb/ejectverb() +/obj/item/taperecorder/verb/ejectverb() set name = "Eject Tape" set category = "Object" @@ -82,7 +83,7 @@ eject(usr) -/obj/item/device/taperecorder/update_icon() +/obj/item/taperecorder/update_icon() if(!mytape) icon_state = "taperecorder_empty" else if(recording) @@ -93,12 +94,12 @@ icon_state = "taperecorder_idle" -/obj/item/device/taperecorder/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, spans, message_mode) +/obj/item/taperecorder/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, spans, message_mode) if(mytape && recording) mytape.timestamp += mytape.used_capacity mytape.storedinfo += "\[[time2text(mytape.used_capacity * 10,"mm:ss")]\] [message]" -/obj/item/device/taperecorder/verb/record() +/obj/item/taperecorder/verb/record() set name = "Start Recording" set category = "Object" @@ -131,7 +132,7 @@ to_chat(usr, "The tape is full.") -/obj/item/device/taperecorder/verb/stop() +/obj/item/taperecorder/verb/stop() set name = "Stop" set category = "Object" @@ -151,7 +152,7 @@ update_icon() -/obj/item/device/taperecorder/verb/play() +/obj/item/taperecorder/verb/play() set name = "Play Tape" set category = "Object" @@ -193,7 +194,7 @@ update_icon() -/obj/item/device/taperecorder/attack_self(mob/user) +/obj/item/taperecorder/attack_self(mob/user) if(!mytape || mytape.ruined) return if(recording) @@ -202,7 +203,7 @@ record() -/obj/item/device/taperecorder/verb/print_transcript() +/obj/item/taperecorder/verb/print_transcript() set name = "Print Transcript" set category = "Object" @@ -230,14 +231,15 @@ //empty tape recorders -/obj/item/device/taperecorder/empty +/obj/item/taperecorder/empty starting_tape_type = null -/obj/item/device/tape +/obj/item/tape name = "tape" desc = "A magnetic tape that can hold up to ten minutes of content." icon_state = "tape_white" + icon = 'icons/obj/device.dmi' item_state = "analyzer" lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' @@ -251,17 +253,17 @@ var/list/timestamp = list() var/ruined = 0 -/obj/item/device/tape/fire_act(exposed_temperature, exposed_volume) +/obj/item/tape/fire_act(exposed_temperature, exposed_volume) ruin() ..() -/obj/item/device/tape/attack_self(mob/user) +/obj/item/tape/attack_self(mob/user) if(!ruined) to_chat(user, "You pull out all the tape!") ruin() -/obj/item/device/tape/proc/ruin() +/obj/item/tape/proc/ruin() //Lets not add infinite amounts of overlays when our fireact is called //repeatedly if(!ruined) @@ -269,12 +271,12 @@ ruined = 1 -/obj/item/device/tape/proc/fix() +/obj/item/tape/proc/fix() cut_overlay("ribbonoverlay") ruined = 0 -/obj/item/device/tape/attackby(obj/item/I, mob/user, params) +/obj/item/tape/attackby(obj/item/I, mob/user, params) if(ruined && istype(I, /obj/item/screwdriver) || istype(I, /obj/item/pen)) to_chat(user, "You start winding the tape back in...") if(I.use_tool(src, user, 120)) @@ -282,9 +284,9 @@ fix() //Random colour tapes -/obj/item/device/tape/random +/obj/item/tape/random icon_state = "random_tape" -/obj/item/device/tape/random/New() +/obj/item/tape/random/New() icon_state = "tape_[pick("white", "blue", "red", "yellow", "purple")]" ..() diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index 2c0e7bd7c4..9dd6ae5622 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -15,9 +15,10 @@ effective or pretty fucking useless. */ -/obj/item/device/batterer +/obj/item/batterer name = "mind batterer" desc = "A strange device with twin antennas." + icon = 'icons/obj/device.dmi' icon_state = "batterer" throwforce = 5 w_class = WEIGHT_CLASS_TINY @@ -32,7 +33,7 @@ effective or pretty fucking useless. var/max_uses = 2 -/obj/item/device/batterer/attack_self(mob/living/carbon/user, flag = 0, emp = 0) +/obj/item/batterer/attack_self(mob/living/carbon/user, flag = 0, emp = 0) if(!user) return if(times_used >= max_uses) to_chat(user, "The mind batterer has been burnt out!") @@ -67,7 +68,7 @@ effective or pretty fucking useless. Wavelength is also slightly increased by the intensity as well. */ -/obj/item/device/healthanalyzer/rad_laser +/obj/item/healthanalyzer/rad_laser materials = list(MAT_METAL=400) var/irradiate = 1 var/intensity = 10 // how much damage the radiation does @@ -75,7 +76,7 @@ effective or pretty fucking useless. var/used = 0 // is it cooling down? var/stealth = FALSE -/obj/item/device/healthanalyzer/rad_laser/attack(mob/living/M, mob/living/user) +/obj/item/healthanalyzer/rad_laser/attack(mob/living/M, mob/living/user) if(!stealth || !irradiate) ..() if(!irradiate) @@ -95,21 +96,21 @@ effective or pretty fucking useless. else to_chat(user, "The radioactive microlaser is still recharging.") -/obj/item/device/healthanalyzer/rad_laser/proc/handle_cooldown(cooldown) +/obj/item/healthanalyzer/rad_laser/proc/handle_cooldown(cooldown) spawn(cooldown) used = 0 icon_state = "health" -/obj/item/device/healthanalyzer/rad_laser/attack_self(mob/user) +/obj/item/healthanalyzer/rad_laser/attack_self(mob/user) interact(user) -/obj/item/device/healthanalyzer/rad_laser/proc/GetCooldown() +/obj/item/healthanalyzer/rad_laser/proc/GetCooldown() return round(max(10, (stealth*30 + intensity*5 - wavelength/4))) -/obj/item/device/healthanalyzer/rad_laser/interact(mob/user) +/obj/item/healthanalyzer/rad_laser/interact(mob/user) ui_interact(user) -/obj/item/device/healthanalyzer/rad_laser/ui_interact(mob/user) +/obj/item/healthanalyzer/rad_laser/ui_interact(mob/user) . = ..() var/dat = "Irradiation: [irradiate ? "On" : "Off"]
    " @@ -140,7 +141,7 @@ effective or pretty fucking useless. popup.set_content(dat) popup.open() -/obj/item/device/healthanalyzer/rad_laser/Topic(href, href_list) +/obj/item/healthanalyzer/rad_laser/Topic(href, href_list) if(!usr.canUseTopic(src)) return 1 @@ -170,7 +171,7 @@ effective or pretty fucking useless. add_fingerprint(usr) return -/obj/item/device/shadowcloak +/obj/item/shadowcloak name = "cloaker belt" desc = "Makes you invisible for short periods of time. Recharges in darkness." icon = 'icons/obj/clothing/belts.dmi' @@ -186,7 +187,7 @@ effective or pretty fucking useless. var/old_alpha = 0 actions_types = list(/datum/action/item_action/toggle) -/obj/item/device/shadowcloak/ui_action_click(mob/user) +/obj/item/shadowcloak/ui_action_click(mob/user) if(user.get_item_by_slot(slot_belt) == src) if(!on) Activate(usr) @@ -194,11 +195,11 @@ effective or pretty fucking useless. Deactivate() return -/obj/item/device/shadowcloak/item_action_slot_check(slot, mob/user) +/obj/item/shadowcloak/item_action_slot_check(slot, mob/user) if(slot == slot_belt) return 1 -/obj/item/device/shadowcloak/proc/Activate(mob/living/carbon/human/user) +/obj/item/shadowcloak/proc/Activate(mob/living/carbon/human/user) if(!user) return to_chat(user, "You activate [src].") @@ -207,7 +208,7 @@ effective or pretty fucking useless. old_alpha = user.alpha on = TRUE -/obj/item/device/shadowcloak/proc/Deactivate() +/obj/item/shadowcloak/proc/Deactivate() to_chat(user, "You deactivate [src].") STOP_PROCESSING(SSobj, src) if(user) @@ -215,12 +216,12 @@ effective or pretty fucking useless. on = FALSE user = null -/obj/item/device/shadowcloak/dropped(mob/user) +/obj/item/shadowcloak/dropped(mob/user) ..() if(user && user.get_item_by_slot(slot_belt) != src) Deactivate() -/obj/item/device/shadowcloak/process() +/obj/item/shadowcloak/process() if(user.get_item_by_slot(slot_belt) != src) Deactivate() return @@ -234,14 +235,15 @@ effective or pretty fucking useless. animate(user,alpha = CLAMP(255 - charge,0,255),time = 10) -/obj/item/device/jammer +/obj/item/jammer name = "radio jammer" desc = "Device used to disrupt nearby radio communication." + icon = 'icons/obj/device.dmi' icon_state = "jammer" var/active = FALSE var/range = 12 -/obj/item/device/jammer/attack_self(mob/user) +/obj/item/jammer/attack_self(mob/user) to_chat(user,"You [active ? "deactivate" : "activate"] [src].") active = !active if(active) diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm index 720535f79a..35994d09f5 100644 --- a/code/game/objects/items/devices/transfer_valve.dm +++ b/code/game/objects/items/devices/transfer_valve.dm @@ -1,6 +1,7 @@ -/obj/item/device/transfer_valve +/obj/item/transfer_valve icon = 'icons/obj/assemblies.dmi' name = "tank transfer valve" + icon = 'icons/obj/device.dmi' icon_state = "valve_1" item_state = "ttv" lefthand_file = 'icons/mob/inhands/weapons/bombs_lefthand.dmi' @@ -9,15 +10,15 @@ w_class = WEIGHT_CLASS_BULKY var/obj/item/tank/tank_one var/obj/item/tank/tank_two - var/obj/item/device/assembly/attached_device + var/obj/item/assembly/attached_device var/mob/attacher = null var/valve_open = FALSE var/toggle = 1 -/obj/item/device/transfer_valve/IsAssemblyHolder() +/obj/item/transfer_valve/IsAssemblyHolder() return TRUE -/obj/item/device/transfer_valve/attackby(obj/item/item, mob/user, params) +/obj/item/transfer_valve/attackby(obj/item/item, mob/user, params) if(istype(item, /obj/item/tank)) if(tank_one && tank_two) to_chat(user, "There are already two tanks attached, remove one first!") @@ -37,7 +38,7 @@ update_icon() //TODO: Have this take an assemblyholder else if(isassembly(item)) - var/obj/item/device/assembly/A = item + var/obj/item/assembly/A = item if(A.secured) to_chat(user, "The device is secured.") return @@ -57,7 +58,7 @@ attacher = user return -/obj/item/device/transfer_valve/attack_self(mob/user) +/obj/item/transfer_valve/attack_self(mob/user) user.set_machine(src) var/dat = {" Valve properties:
    Attachment one: [tank_one] [tank_one ? "Remove" : ""] @@ -70,7 +71,7 @@ popup.open() return -/obj/item/device/transfer_valve/Topic(href, href_list) +/obj/item/transfer_valve/Topic(href, href_list) ..() if(!usr.canUseTopic(src)) return @@ -100,16 +101,16 @@ attack_self(usr) add_fingerprint(usr) -/obj/item/device/transfer_valve/proc/process_activation(obj/item/device/D) +/obj/item/transfer_valve/proc/process_activation(obj/item/D) if(toggle) toggle = FALSE toggle_valve() addtimer(CALLBACK(src, .proc/toggle_off), 5) //To stop a signal being spammed from a proxy sensor constantly going off or whatever -/obj/item/device/transfer_valve/proc/toggle_off() +/obj/item/transfer_valve/proc/toggle_off() toggle = TRUE -/obj/item/device/transfer_valve/update_icon() +/obj/item/transfer_valve/update_icon() cut_overlays() underlays = null @@ -127,13 +128,13 @@ if(attached_device) add_overlay("device") -/obj/item/device/transfer_valve/proc/merge_gases() +/obj/item/transfer_valve/proc/merge_gases() tank_two.air_contents.volume += tank_one.air_contents.volume var/datum/gas_mixture/temp temp = tank_one.air_contents.remove_ratio(1) tank_two.air_contents.merge(temp) -/obj/item/device/transfer_valve/proc/split_gases() +/obj/item/transfer_valve/proc/split_gases() if (!valve_open || !tank_one || !tank_two) return var/ratio1 = tank_one.air_contents.volume/tank_two.air_contents.volume @@ -147,7 +148,7 @@ it explodes properly when it gets a signal (and it does). */ -/obj/item/device/transfer_valve/proc/toggle_valve() +/obj/item/transfer_valve/proc/toggle_valve() if(!valve_open && tank_one && tank_two) valve_open = TRUE var/turf/bombturf = get_turf(src) @@ -155,7 +156,7 @@ var/attachment = "no device" if(attached_device) - if(istype(attached_device, /obj/item/device/assembly/signaler)) + if(istype(attached_device, /obj/item/assembly/signaler)) attachment = "[attached_device]" else attachment = attached_device @@ -197,5 +198,5 @@ // this doesn't do anything but the timer etc. expects it to be here // eventually maybe have it update icon to show state (timer, prox etc.) like old bombs -/obj/item/device/transfer_valve/proc/c_state() +/obj/item/transfer_valve/proc/c_state() return diff --git a/code/game/objects/items/flamethrower.dm b/code/game/objects/items/flamethrower.dm index d9b963e416..a3d2e519a0 100644 --- a/code/game/objects/items/flamethrower.dm +++ b/code/game/objects/items/flamethrower.dm @@ -18,13 +18,13 @@ var/lit = FALSE //on or off var/operating = FALSE//cooldown var/obj/item/weldingtool/weldtool = null - var/obj/item/device/assembly/igniter/igniter = null + var/obj/item/assembly/igniter/igniter = null var/obj/item/tank/internals/plasma/ptank = null var/warned_admins = FALSE //for the message_admins() when lit //variables for prebuilt flamethrowers var/create_full = FALSE var/create_with_tank = FALSE - var/igniter_type = /obj/item/device/assembly/igniter + var/igniter_type = /obj/item/assembly/igniter trigger_guard = TRIGGER_GUARD_NORMAL /obj/item/flamethrower/Destroy() @@ -101,7 +101,7 @@ return else if(isigniter(W)) - var/obj/item/device/assembly/igniter/I = W + var/obj/item/assembly/igniter/I = W if(I.secured) return if(igniter) @@ -125,7 +125,7 @@ update_icon() return - else if(istype(W, /obj/item/device/analyzer) && ptank) + else if(istype(W, /obj/item/analyzer) && ptank) atmosanalyzer_scan(ptank.air_contents, user) else return ..() @@ -167,7 +167,7 @@ /obj/item/flamethrower/CheckParts(list/parts_list) ..() weldtool = locate(/obj/item/weldingtool) in contents - igniter = locate(/obj/item/device/assembly/igniter) in contents + igniter = locate(/obj/item/assembly/igniter) in contents weldtool.status = FALSE igniter.secured = FALSE status = TRUE @@ -240,11 +240,11 @@ return 1 //It hit the flamethrower, not them -/obj/item/device/assembly/igniter/proc/flamethrower_process(turf/open/location) +/obj/item/assembly/igniter/proc/flamethrower_process(turf/open/location) location.hotspot_expose(700,2) -/obj/item/device/assembly/igniter/cold/flamethrower_process(turf/open/location) +/obj/item/assembly/igniter/cold/flamethrower_process(turf/open/location) return -/obj/item/device/assembly/igniter/proc/ignite_turf(obj/item/flamethrower/F,turf/open/location,release_amount = 0.05) +/obj/item/assembly/igniter/proc/ignite_turf(obj/item/flamethrower/F,turf/open/location,release_amount = 0.05) F.default_ignite(location,release_amount) diff --git a/code/game/objects/items/gift.dm b/code/game/objects/items/gift.dm index 0fe53f293c..a09d39072d 100644 --- a/code/game/objects/items/gift.dm +++ b/code/game/objects/items/gift.dm @@ -64,9 +64,9 @@ GLOBAL_LIST_EMPTY(possible_gifts) /obj/item/banhammer, /obj/item/reagent_containers/food/snacks/grown/ambrosia/deus, /obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris, - /obj/item/device/paicard, - /obj/item/device/instrument/violin, - /obj/item/device/instrument/guitar, + /obj/item/paicard, + /obj/item/instrument/violin, + /obj/item/instrument/guitar, /obj/item/storage/belt/utility/full, /obj/item/clothing/neck/tie/horrible, /obj/item/clothing/suit/jacket/leather, diff --git a/code/game/objects/items/granters.dm b/code/game/objects/items/granters.dm index 7c90f07115..cf11ac7640 100644 --- a/code/game/objects/items/granters.dm +++ b/code/game/objects/items/granters.dm @@ -59,8 +59,8 @@ return if(do_after(user,50, user)) to_chat(user, "You feel like you've got a good handle on [actionname]!") - reading = FALSE G.Grant(user) + reading = FALSE /obj/item/book/granter/action/drink_fling granted_action = /datum/action/innate/drink_fling @@ -121,10 +121,10 @@ return if(do_after(user,50, user)) to_chat(user, "You feel like you've experienced enough to cast [spellname]!") - reading = FALSE user.mind.AddSpell(S) user.log_message("learned the spell [spellname] ([S]).", INDIVIDUAL_ATTACK_LOG) onlearned(user) + reading = FALSE /obj/item/book/granter/spell/recoil(mob/user) user.visible_message("[src] glows in a black light!") @@ -328,10 +328,10 @@ return if(do_after(user,50, user)) to_chat(user, "[greet]") - reading = FALSE MA.teach(user) user.log_message("learned the martial art [martialname] ([MA]).", INDIVIDUAL_ATTACK_LOG) onlearned(user) + reading = FALSE /obj/item/book/granter/martial/cqc martial = /datum/martial_art/cqc diff --git a/code/game/objects/items/grenades/chem_grenade.dm b/code/game/objects/items/grenades/chem_grenade.dm index f2daf58b1a..9d3df9cf7a 100644 --- a/code/game/objects/items/grenades/chem_grenade.dm +++ b/code/game/objects/items/grenades/chem_grenade.dm @@ -13,7 +13,7 @@ var/list/beakers = list() var/list/allowed_containers = list(/obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/glass/bottle) var/affected_area = 3 - var/obj/item/device/assembly_holder/nadeassembly = null + var/obj/item/assembly_holder/nadeassembly = null var/assemblyattacher var/ignition_temp = 10 // The amount of heat added to the reagents when this grenade goes off. var/threatscale = 1 // Used by advanced grenades to make them slightly more worthy. @@ -78,9 +78,9 @@ else to_chat(user, "[I] is empty!") - else if(stage == EMPTY && istype(I, /obj/item/device/assembly_holder)) + else if(stage == EMPTY && istype(I, /obj/item/assembly_holder)) . = 1 // no afterattack - var/obj/item/device/assembly_holder/A = I + var/obj/item/assembly_holder/A = I if(isigniter(A.a_left) == isigniter(A.a_right)) //Check if either part of the assembly has an igniter, but if both parts are igniters, then fuck it return if(!user.transferItemToLoc(I, src)) @@ -254,7 +254,7 @@ var/unit_spread = 10 // Amount of units per repeat. Can be altered with a multitool. /obj/item/grenade/chem_grenade/adv_release/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/device/multitool)) + if(istype(I, /obj/item/multitool)) switch(unit_spread) if(0 to 24) unit_spread += 5 @@ -579,3 +579,7 @@ beakers += B1 beakers += B2 + +#undef READY +#undef WIRED +#undef EMPTY diff --git a/code/game/objects/items/grenades/plastic.dm b/code/game/objects/items/grenades/plastic.dm index 3c4910abc0..967d1ce372 100644 --- a/code/game/objects/items/grenades/plastic.dm +++ b/code/game/objects/items/grenades/plastic.dm @@ -12,7 +12,7 @@ w_class = WEIGHT_CLASS_SMALL var/atom/target = null var/mutable_appearance/plastic_overlay - var/obj/item/device/assembly_holder/nadeassembly = null + var/obj/item/assembly_holder/nadeassembly = null var/assemblyattacher var/directional = FALSE var/aim_dir = NORTH @@ -31,8 +31,8 @@ ..() /obj/item/grenade/plastic/attackby(obj/item/I, mob/user, params) - if(!nadeassembly && istype(I, /obj/item/device/assembly_holder)) - var/obj/item/device/assembly_holder/A = I + if(!nadeassembly && istype(I, /obj/item/assembly_holder)) + var/obj/item/assembly_holder/A = I if(!user.transferItemToLoc(I, src)) return ..() nadeassembly = A @@ -214,12 +214,8 @@ return if(loc == AM) return - if((istype(AM, /obj/item/storage/)) && !((istype(AM, /obj/item/storage/secure)) || (istype(AM, /obj/item/storage/lockbox)))) //If its storage but not secure storage OR a lockbox, then place it inside. + if(AM.SendSignal(COMSIG_CONTAINS_STORAGE) && !AM.SendSignal(COMSIG_IS_STORAGE_LOCKED)) return - if((istype(AM, /obj/item/storage/secure)) || (istype(AM, /obj/item/storage/lockbox))) - var/obj/item/storage/secure/S = AM - if(!S.locked) //Literal hacks, this works for lockboxes despite incorrect type casting, because they both share the locked var. But if its unlocked, place it inside, otherwise PLANTING C4! - return to_chat(user, "You start planting the bomb...") diff --git a/code/game/objects/items/implants/implant_misc.dm b/code/game/objects/items/implants/implant_misc.dm index 63df308024..f17be453f4 100644 --- a/code/game/objects/items/implants/implant_misc.dm +++ b/code/game/objects/items/implants/implant_misc.dm @@ -81,7 +81,7 @@ /obj/item/implant/radio name = "internal radio implant" activated = TRUE - var/obj/item/device/radio/radio + var/obj/item/radio/radio var/radio_key var/subspace_transmission = FALSE icon = 'icons/obj/radio.dmi' @@ -105,18 +105,18 @@ radio.recalculateChannels() /obj/item/implant/radio/mining - radio_key = /obj/item/device/encryptionkey/headset_cargo + radio_key = /obj/item/encryptionkey/headset_cargo /obj/item/implant/radio/syndicate desc = "Are you there God? It's me, Syndicate Comms Agent." - radio_key = /obj/item/device/encryptionkey/syndicate + radio_key = /obj/item/encryptionkey/syndicate subspace_transmission = TRUE /obj/item/implant/radio/slime name = "slime radio" icon = 'icons/obj/surgery.dmi' icon_state = "adamantine_resonator" - radio_key = /obj/item/device/encryptionkey/headset_sci + radio_key = /obj/item/encryptionkey/headset_sci subspace_transmission = TRUE /obj/item/implant/radio/get_data() diff --git a/code/game/objects/items/implants/implant_storage.dm b/code/game/objects/items/implants/implant_storage.dm index 049635707e..787c246ddf 100644 --- a/code/game/objects/items/implants/implant_storage.dm +++ b/code/game/objects/items/implants/implant_storage.dm @@ -1,46 +1,30 @@ -/obj/item/storage/internal/implant - name = "bluespace pocket" - max_w_class = WEIGHT_CLASS_NORMAL - max_combined_w_class = 6 - cant_hold = list(/obj/item/disk/nuclear) - silent = TRUE - - /obj/item/implant/storage name = "storage implant" desc = "Stores up to two big items in a bluespace pocket." icon_state = "storage" item_color = "r" - var/obj/item/storage/internal/implant/storage - -/obj/item/implant/storage/New() - ..() - storage = new /obj/item/storage/internal/implant(src) + var/max_slot_stacking = 4 /obj/item/implant/storage/activate() - storage.MouseDrop(imp_in) + SendSignal(COMSIG_TRY_STORAGE_SHOW, imp_in, TRUE) /obj/item/implant/storage/removed(source, silent = FALSE, special = 0) - if(..()) + . = ..() + if(.) if(!special) - storage.close_all() - for(var/obj/item/I in storage) - storage.remove_from_storage(I, get_turf(source)) - return 1 + qdel(GetComponent(/datum/component/storage/concrete/implant)) /obj/item/implant/storage/implant(mob/living/target, mob/user, silent = FALSE) for(var/X in target.implants) if(istype(X, type)) var/obj/item/implant/storage/imp_e = X - imp_e.storage.storage_slots += storage.storage_slots - imp_e.storage.max_combined_w_class += storage.max_combined_w_class - imp_e.storage.contents += storage.contents - - storage.close_all() - storage.show_to(target) - - qdel(src) - return 1 + GET_COMPONENT_FROM(STR, /datum/component/storage, imp_e) + if(!STR || (STR && STR.max_items < max_slot_stacking)) + imp_e.AddComponent(/datum/component/storage/concrete/implant) + qdel(src) + return TRUE + return FALSE + AddComponent(/datum/component/storage/concrete/implant) return ..() diff --git a/code/game/objects/items/implants/implant_track.dm b/code/game/objects/items/implants/implant_track.dm index 6692a6bd6f..913c577f2c 100644 --- a/code/game/objects/items/implants/implant_track.dm +++ b/code/game/objects/items/implants/implant_track.dm @@ -15,7 +15,7 @@ imp_type = /obj/item/implant/tracking /obj/item/implanter/tracking/gps - imp_type = /obj/item/device/gps/mining/internal + imp_type = /obj/item/gps/mining/internal /obj/item/implant/tracking/get_data() var/dat = {"Implant Specifications:
    diff --git a/code/game/objects/items/inducer.dm b/code/game/objects/items/inducer.dm index e27c6166fe..aa8df115b5 100644 --- a/code/game/objects/items/inducer.dm +++ b/code/game/objects/items/inducer.dm @@ -102,12 +102,11 @@ else recharging = TRUE var/obj/item/stock_parts/cell/C = A.get_cell() - var/obj/item/gun/energy/E var/obj/O var/coefficient = 1 if(istype(A, /obj/item/gun/energy)) - coefficient = 0.075 // 14 loops to recharge an egun from 0-1000 - E = A + to_chat(user,"Error unable to interface with device") + return FALSE if(istype(A, /obj)) O = A if(C) @@ -118,8 +117,6 @@ return TRUE user.visible_message("[user] starts recharging [A] with [src].","You start recharging [A] with [src].") while(C.charge < C.maxcharge) - if(E) - E.semicd = TRUE // Prevents someone from firing continuously while recharging the gun. if(do_after(user, 10, target = user) && cell.charge) done_any = TRUE induce(C, coefficient) @@ -128,8 +125,6 @@ O.update_icon() else break - if(E) - E.reset_semicd() //We're done charging, so we'll let someone fire it now. if(done_any) // Only show a message if we succeeded at least once user.visible_message("[user] recharged [A]!","You recharged [A]!") recharging = FALSE diff --git a/code/game/objects/items/melee/energy.dm b/code/game/objects/items/melee/energy.dm index 27db9a7e0a..59ec24e22c 100644 --- a/code/game/objects/items/melee/energy.dm +++ b/code/game/objects/items/melee/energy.dm @@ -173,7 +173,7 @@ possible_colors = list("purple" = LIGHT_COLOR_LAVENDER) /obj/item/melee/transforming/energy/sword/saber/attackby(obj/item/W, mob/living/user, params) - if(istype(W, /obj/item/device/multitool)) + if(istype(W, /obj/item/multitool)) if(!hacked) hacked = TRUE item_color = "rainbow" diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm index 6ae43f4958..0016bf981f 100644 --- a/code/game/objects/items/melee/misc.dm +++ b/code/game/objects/items/melee/misc.dm @@ -216,13 +216,13 @@ w_class = WEIGHT_CLASS_BULKY force = 0.001 armour_penetration = 1000 - var/obj/machinery/power/supermatter_shard/shard + var/obj/machinery/power/supermatter_crystal/shard var/balanced = 1 force_string = "INFINITE" /obj/item/melee/supermatter_sword/Initialize() . = ..() - shard = new /obj/machinery/power/supermatter_shard(src) + shard = new /obj/machinery/power/supermatter_crystal(src) qdel(shard.countdown) shard.countdown = null START_PROCESSING(SSobj, src) @@ -339,7 +339,7 @@ /obj/item/melee/roastingstick/Initialize() . = ..() if (!ovens) - ovens = typecacheof(list(/obj/singularity, /obj/machinery/power/supermatter_shard/crystal, /obj/structure/bonfire, /obj/structure/destructible/clockwork/massive/ratvar)) + ovens = typecacheof(list(/obj/singularity, /obj/machinery/power/supermatter_crystal, /obj/structure/bonfire, /obj/structure/destructible/clockwork/massive/ratvar)) /obj/item/melee/roastingstick/attack_self(mob/user) on = !on diff --git a/code/game/objects/items/religion.dm b/code/game/objects/items/religion.dm index 1a4c2f5674..0f926b4ee3 100644 --- a/code/game/objects/items/religion.dm +++ b/code/game/objects/items/religion.dm @@ -212,9 +212,13 @@ /obj/item/storage/backpack/bannerpack name = "nanotrasen banner backpack" desc = "It's a backpack with lots of extra room. A banner with Nanotrasen's logo is attached, that can't be removed." - max_combined_w_class = 27 //6 more then normal, for the tradeoff of declaring yourself an antag at all times. icon_state = "bannerpack" +/obj/item/storage/backpack/bannerpack/Initialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_combined_w_class = 27 //6 more then normal, for the tradeoff of declaring yourself an antag at all times. + /obj/item/storage/backpack/bannerpack/red name = "red banner backpack" desc = "It's a backpack with lots of extra room. A red banner is attached, that can't be removed." diff --git a/code/game/objects/items/robot/ai_upgrades.dm b/code/game/objects/items/robot/ai_upgrades.dm index dad3db6b1d..63906ff5ba 100644 --- a/code/game/objects/items/robot/ai_upgrades.dm +++ b/code/game/objects/items/robot/ai_upgrades.dm @@ -2,14 +2,14 @@ //Malf Picker -/obj/item/device/malf_upgrade +/obj/item/malf_upgrade name = "combat software upgrade" desc = "A highly illegal, highly dangerous upgrade for artificial intelligence units, granting them a variety of powers as well as the ability to hack APCs." icon = 'icons/obj/module.dmi' icon_state = "datadisk3" -/obj/item/device/malf_upgrade/afterattack(mob/living/silicon/ai/AI, mob/user) +/obj/item/malf_upgrade/afterattack(mob/living/silicon/ai/AI, mob/user) if(!istype(AI)) return if(AI.malf_picker) @@ -23,13 +23,13 @@ //Lipreading -/obj/item/device/surveillance_upgrade +/obj/item/surveillance_upgrade name = "surveillance software upgrade" desc = "A software package that will allow an artificial intelligence to 'hear' from its cameras via lip reading." icon = 'icons/obj/module.dmi' icon_state = "datadisk3" -/obj/item/device/surveillance_upgrade/afterattack(mob/living/silicon/ai/AI, mob/user) +/obj/item/surveillance_upgrade/afterattack(mob/living/silicon/ai/AI, mob/user) if(!istype(AI)) return if(AI.eyeobj) diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm index 2a465aec69..5d70cbd8e7 100644 --- a/code/game/objects/items/robot/robot_items.dm +++ b/code/game/objects/items/robot/robot_items.dm @@ -273,20 +273,20 @@ to_chat(user, "You stop charging [target].") -/obj/item/device/harmalarm +/obj/item/harmalarm name = "\improper Sonic Harm Prevention Tool" desc = "Releases a harmless blast that confuses most organics. For when the harm is JUST TOO MUCH." icon_state = "megaphone" var/cooldown = 0 -/obj/item/device/harmalarm/emag_act(mob/user) +/obj/item/harmalarm/emag_act(mob/user) obj_flags ^= EMAGGED if(obj_flags & EMAGGED) to_chat(user, "You short out the safeties on [src]!") else to_chat(user, "You reset the safeties on [src]!") -/obj/item/device/harmalarm/attack_self(mob/user) +/obj/item/harmalarm/attack_self(mob/user) var/safety = !(obj_flags & EMAGGED) if(cooldown > world.time) to_chat(user, "The device is still recharging!") diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index c112b34cca..9999a054f6 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -6,7 +6,7 @@ /obj/item/robot_suit name = "cyborg endoskeleton" desc = "A complex metal backbone with standard limb sockets and pseudomuscle anchors." - icon = 'icons/obj/robot_parts.dmi' + icon = 'icons/mob/augmentation/augments.dmi' icon_state = "robo_suit" var/obj/item/bodypart/l_arm/robot/l_arm = null var/obj/item/bodypart/r_arm/robot/r_arm = null @@ -152,14 +152,14 @@ else to_chat(user, "You need to attach a flash to it first!") - else if (istype(W, /obj/item/device/multitool)) + else if (istype(W, /obj/item/multitool)) if(check_completion()) Interact(user) else to_chat(user, "The endoskeleton must be assembled before debugging can begin!") - else if(istype(W, /obj/item/device/mmi)) - var/obj/item/device/mmi/M = W + else if(istype(W, /obj/item/mmi)) + var/obj/item/mmi/M = W if(check_completion()) if(!isturf(loc)) to_chat(user, "You can't put [M] in, the frame has to be standing on the ground to be perfectly precise!") @@ -304,7 +304,7 @@ var/mob/living/living_user = usr var/obj/item/item_in_hand = living_user.get_active_held_item() - if(!istype(item_in_hand, /obj/item/device/multitool)) + if(!istype(item_in_hand, /obj/item/multitool)) to_chat(living_user, "You need a multitool!") return diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 63bfe6eeb3..854031b1f4 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -14,14 +14,20 @@ // if module is reset var/one_use = FALSE -/obj/item/borg/upgrade/proc/action(mob/living/silicon/robot/R) +/obj/item/borg/upgrade/proc/action(mob/living/silicon/robot/R, user = usr) if(R.stat == DEAD) - to_chat(usr, "[src] will not function on a deceased cyborg.") - return 1 + to_chat(user, "[src] will not function on a deceased cyborg.") + return FALSE if(module_type && !istype(R.module, module_type)) to_chat(R, "Upgrade mounting error! No suitable hardpoint detected!") - to_chat(usr, "There's no mounting point for the module!") - return 1 + to_chat(user, "There's no mounting point for the module!") + return FALSE + return TRUE + +/obj/item/borg/upgrade/proc/deactivate(mob/living/silicon/robot/R, user = usr) + if (!(src in R.upgrades)) + return FALSE + return TRUE /obj/item/borg/upgrade/rename name = "cyborg reclassification board" @@ -34,18 +40,13 @@ heldname = stripped_input(user, "Enter new robot name", "Cyborg Reclassification", heldname, MAX_NAME_LEN) /obj/item/borg/upgrade/rename/action(mob/living/silicon/robot/R) - if(..()) - return - - var/oldname = R.real_name - - R.custom_name = heldname - R.updatename() - if(oldname == R.real_name) - R.notify_ai(RENAME, oldname, R.real_name) - - return 1 - + . = ..() + if(.) + var/oldname = R.real_name + R.custom_name = heldname + R.updatename() + if(oldname == R.real_name) + R.notify_ai(RENAME, oldname, R.real_name) /obj/item/borg/upgrade/restart name = "cyborg emergency reboot module" @@ -53,10 +54,10 @@ icon_state = "cyborg_upgrade1" one_use = TRUE -/obj/item/borg/upgrade/restart/action(mob/living/silicon/robot/R) +/obj/item/borg/upgrade/restart/action(mob/living/silicon/robot/R, user = usr) if(R.health < 0) - to_chat(usr, "You have to repair the cyborg before using this module!") - return 0 + to_chat(user, "You have to repair the cyborg before using this module!") + return FALSE if(R.mind) R.mind.grab_ghost() @@ -64,25 +65,26 @@ R.revive() - return 1 - /obj/item/borg/upgrade/vtec name = "cyborg VTEC module" desc = "Used to kick in a cyborg's VTEC systems, increasing their speed." icon_state = "cyborg_upgrade2" require_module = 1 -/obj/item/borg/upgrade/vtec/action(mob/living/silicon/robot/R) - if(..()) - return - if(R.speed < 0) - to_chat(R, "A VTEC unit is already installed!") - to_chat(usr, "There's no room for another VTEC unit!") - return +/obj/item/borg/upgrade/vtec/action(mob/living/silicon/robot/R, user = usr) + . = ..() + if(.) + if(R.speed < 0) + to_chat(R, "A VTEC unit is already installed!") + to_chat(user, "There's no room for another VTEC unit!") + return FALSE - R.speed = -2 // Gotta go fast. + R.speed = -2 // Gotta go fast. - return 1 +/obj/item/borg/upgrade/vtec/deactivate(mob/living/silicon/robot/R, user = usr) + . = ..() + if (.) + R.speed = initial(R.speed) /obj/item/borg/upgrade/disablercooler name = "cyborg rapid disabler cooling module" @@ -91,38 +93,46 @@ require_module = 1 module_type = /obj/item/robot_module/security -/obj/item/borg/upgrade/disablercooler/action(mob/living/silicon/robot/R) - if(..()) - return +/obj/item/borg/upgrade/disablercooler/action(mob/living/silicon/robot/R, user = usr) + . = ..() + if(.) + var/obj/item/gun/energy/disabler/cyborg/T = locate() in R.module.modules + if(!T) + to_chat(user, "There's no disabler in this unit!") + return FALSE + if(T.charge_delay <= 2) + to_chat(R, "A cooling unit is already installed!") + to_chat(user, "There's no room for another cooling unit!") + return FALSE - var/obj/item/gun/energy/disabler/cyborg/T = locate() in R.module.modules - if(!T) - to_chat(usr, "There's no disabler in this unit!") - return - if(T.charge_delay <= 2) - to_chat(R, "A cooling unit is already installed!") - to_chat(usr, "There's no room for another cooling unit!") - return + T.charge_delay = max(2 , T.charge_delay - 4) - T.charge_delay = max(2 , T.charge_delay - 4) - - return 1 +/obj/item/borg/upgrade/disablercooler/deactivate(mob/living/silicon/robot/R, user = usr) + . = ..() + if (.) + var/obj/item/gun/energy/disabler/cyborg/T = locate() in R.module.modules + if(!T) + return FALSE + T.charge_delay = initial(T.charge_delay) /obj/item/borg/upgrade/thrusters name = "ion thruster upgrade" desc = "An energy-operated thruster system for cyborgs." icon_state = "cyborg_upgrade3" -/obj/item/borg/upgrade/thrusters/action(mob/living/silicon/robot/R) - if(..()) - return +/obj/item/borg/upgrade/thrusters/action(mob/living/silicon/robot/R, user = usr) + . = ..() + if(.) + if(R.ionpulse) + to_chat(user, "This unit already has ion thrusters installed!") + return FALSE - if(R.ionpulse) - to_chat(usr, "This unit already has ion thrusters installed!") - return + R.ionpulse = TRUE - R.ionpulse = TRUE - return 1 +/obj/item/borg/upgrade/thrusters/deactivate(mob/living/silicon/robot/R, user = usr) + . = ..() + if (.) + R.ionpulse = FALSE /obj/item/borg/upgrade/ddrill name = "mining cyborg diamond drill" @@ -131,19 +141,30 @@ require_module = 1 module_type = /obj/item/robot_module/miner -/obj/item/borg/upgrade/ddrill/action(mob/living/silicon/robot/R) - if(..()) - return +/obj/item/borg/upgrade/ddrill/action(mob/living/silicon/robot/R, user = usr) + . = ..() + if(.) + for(var/obj/item/pickaxe/drill/cyborg/D in R.module) + R.module.remove_module(D, TRUE) + for(var/obj/item/shovel/S in R.module) + R.module.remove_module(S, TRUE) - for(var/obj/item/pickaxe/drill/cyborg/D in R.module) - R.module.remove_module(D, TRUE) - for(var/obj/item/shovel/S in R.module) - R.module.remove_module(S, TRUE) + var/obj/item/pickaxe/drill/cyborg/diamond/DD = new /obj/item/pickaxe/drill/cyborg/diamond(R.module) + R.module.basic_modules += DD + R.module.add_module(DD, FALSE, TRUE) - var/obj/item/pickaxe/drill/cyborg/diamond/DD = new /obj/item/pickaxe/drill/cyborg/diamond(R.module) - R.module.basic_modules += DD - R.module.add_module(DD, FALSE, TRUE) - return 1 +/obj/item/borg/upgrade/ddrill/deactivate(mob/living/silicon/robot/R, user = usr) + . = ..() + if (.) + for(var/obj/item/pickaxe/drill/cyborg/diamond/DD in R.module) + R.module.remove_module(DD, TRUE) + + var/obj/item/pickaxe/drill/cyborg/D = new (R.module) + R.module.basic_modules += D + R.module.add_module(D, FALSE, TRUE) + var/obj/item/shovel/S = new (R.module) + R.module.basic_modules += S + R.module.add_module(S, FALSE, TRUE) /obj/item/borg/upgrade/soh name = "mining cyborg satchel of holding" @@ -153,16 +174,24 @@ module_type = /obj/item/robot_module/miner /obj/item/borg/upgrade/soh/action(mob/living/silicon/robot/R) - if(..()) - return + . = ..() + if(.) + for(var/obj/item/storage/bag/ore/cyborg/S in R.module) + R.module.remove_module(S, TRUE) - for(var/obj/item/storage/bag/ore/cyborg/S in R.module) - R.module.remove_module(S, TRUE) + var/obj/item/storage/bag/ore/holding/H = new /obj/item/storage/bag/ore/holding(R.module) + R.module.basic_modules += H + R.module.add_module(H, FALSE, TRUE) - var/obj/item/storage/bag/ore/holding/H = new /obj/item/storage/bag/ore/holding(R.module) - R.module.basic_modules += H - R.module.add_module(H, FALSE, TRUE) - return 1 +/obj/item/borg/upgrade/soh/deactivate(mob/living/silicon/robot/R, user = usr) + . = ..() + if (.) + for(var/obj/item/storage/bag/ore/holding/H in R.module) + R.module.remove_module(H, TRUE) + + var/obj/item/storage/bag/ore/cyborg/S = new (R.module) + R.module.basic_modules += S + R.module.add_module(S, FALSE, TRUE) /obj/item/borg/upgrade/syndicate name = "illegal equipment module" @@ -170,16 +199,20 @@ icon_state = "cyborg_upgrade3" require_module = 1 -/obj/item/borg/upgrade/syndicate/action(mob/living/silicon/robot/R) - if(..()) - return +/obj/item/borg/upgrade/syndicate/action(mob/living/silicon/robot/R, user = usr) + . = ..() + if(.) + if(R.emagged) + return FALSE - if(R.emagged) - return + R.SetEmagged(1) - R.SetEmagged(1) + return TRUE - return 1 +/obj/item/borg/upgrade/syndicate/deactivate(mob/living/silicon/robot/R, user = usr) + . = ..() + if (.) + R.SetEmagged(FALSE) /obj/item/borg/upgrade/lavaproof name = "mining cyborg lavaproof tracks" @@ -189,11 +222,15 @@ require_module = 1 module_type = /obj/item/robot_module/miner -/obj/item/borg/upgrade/lavaproof/action(mob/living/silicon/robot/R) - if(..()) - return - R.weather_immunities += "lava" - return 1 +/obj/item/borg/upgrade/lavaproof/action(mob/living/silicon/robot/R, user = usr) + . = ..() + if(.) + R.weather_immunities += "lava" + +/obj/item/borg/upgrade/lavaproof/deactivate(mob/living/silicon/robot/R, user = usr) + . = ..() + if (.) + R.weather_immunities -= "lava" /obj/item/borg/upgrade/selfrepair name = "self-repair module" @@ -208,20 +245,26 @@ var/mob/living/silicon/robot/cyborg var/datum/action/toggle_action -/obj/item/borg/upgrade/selfrepair/action(mob/living/silicon/robot/R) - if(..()) - return +/obj/item/borg/upgrade/selfrepair/action(mob/living/silicon/robot/R, user = usr) + . = ..() + if(.) + var/obj/item/borg/upgrade/selfrepair/U = locate() in R + if(U) + to_chat(user, "This unit is already equipped with a self-repair module.") + return FALSE - var/obj/item/borg/upgrade/selfrepair/U = locate() in R - if(U) - to_chat(usr, "This unit is already equipped with a self-repair module.") - return 0 + cyborg = R + icon_state = "selfrepair_off" + toggle_action = new /datum/action/item_action/toggle(src) + toggle_action.Grant(R) - cyborg = R - icon_state = "selfrepair_off" - toggle_action = new /datum/action/item_action/toggle(src) - toggle_action.Grant(R) - return 1 +/obj/item/borg/upgrade/selfrepair/deactivate(mob/living/silicon/robot/R, user = usr) + . = ..() + if (.) + toggle_action.Remove(cyborg) + QDEL_NULL(toggle_action) + cyborg = null + deactivate_sr() /obj/item/borg/upgrade/selfrepair/dropped() addtimer(CALLBACK(src, .proc/check_dropped), 1) @@ -231,7 +274,7 @@ toggle_action.Remove(cyborg) QDEL_NULL(toggle_action) cyborg = null - deactivate() + deactivate_sr() /obj/item/borg/upgrade/selfrepair/ui_action_click() on = !on @@ -252,7 +295,7 @@ else icon_state = "cyborg_upgrade5" -/obj/item/borg/upgrade/selfrepair/proc/deactivate() +/obj/item/borg/upgrade/selfrepair/proc/deactivate_sr() STOP_PROCESSING(SSobj, src) on = FALSE update_icon() @@ -265,12 +308,12 @@ if(cyborg && (cyborg.stat != DEAD) && on) if(!cyborg.cell) to_chat(cyborg, "Self-repair module deactivated. Please, insert the power cell.") - deactivate() + deactivate_sr() return if(cyborg.cell.charge < powercost * 2) to_chat(cyborg, "Self-repair module deactivated. Please recharge.") - deactivate() + deactivate_sr() return if(cyborg.health < cyborg.maxHealth) @@ -297,7 +340,7 @@ to_chat(cyborg, "Self-repair is active in [msgmode] mode.") msg_cooldown = world.time else - deactivate() + deactivate_sr() /obj/item/borg/upgrade/hypospray name = "medical cyborg hypospray advanced synthesiser" @@ -308,15 +351,21 @@ module_type = /obj/item/robot_module/medical var/list/additional_reagents = list() -/obj/item/borg/upgrade/hypospray/action(mob/living/silicon/robot/R) - if(..()) - return - for(var/obj/item/reagent_containers/borghypo/H in R.module.modules) - if(H.accepts_reagent_upgrades) - for(var/re in additional_reagents) - H.add_reagent(re) +/obj/item/borg/upgrade/hypospray/action(mob/living/silicon/robot/R, user = usr) + . = ..() + if(.) + for(var/obj/item/reagent_containers/borghypo/H in R.module.modules) + if(H.accepts_reagent_upgrades) + for(var/re in additional_reagents) + H.add_reagent(re) - return 1 +/obj/item/borg/upgrade/hypospray/deactivate(mob/living/silicon/robot/R, user = usr) + . = ..() + if (.) + for(var/obj/item/reagent_containers/borghypo/H in R.module.modules) + if(H.accepts_reagent_upgrades) + for(var/re in additional_reagents) + H.del_reagent(re) /obj/item/borg/upgrade/hypospray/expanded name = "medical cyborg expanded hypospray" @@ -338,19 +387,22 @@ pierce armor and thick material." icon_state = "cyborg_upgrade3" -/obj/item/borg/upgrade/piercing_hypospray/action(mob/living/silicon/robot/R) - if(..()) - return +/obj/item/borg/upgrade/piercing_hypospray/action(mob/living/silicon/robot/R, user = usr) + . = ..() + if(.) + var/found_hypo = FALSE + for(var/obj/item/reagent_containers/borghypo/H in R.module.modules) + H.bypass_protection = TRUE + found_hypo = TRUE - var/found_hypo = FALSE - for(var/obj/item/reagent_containers/borghypo/H in R.module.modules) - H.bypass_protection = TRUE - found_hypo = TRUE + if(!found_hypo) + return FALSE - if(!found_hypo) - return - - return 1 +/obj/item/borg/upgrade/piercing_hypospray/deactivate(mob/living/silicon/robot/R, user = usr) + . = ..() + if (.) + for(var/obj/item/reagent_containers/borghypo/H in R.module.modules) + H.bypass_protection = initial(H.bypass_protection) /obj/item/borg/upgrade/defib name = "medical cyborg defibrillator" @@ -360,66 +412,81 @@ require_module = 1 module_type = /obj/item/robot_module/medical -/obj/item/borg/upgrade/defib/action(mob/living/silicon/robot/R) - if(..()) - return +/obj/item/borg/upgrade/defib/action(mob/living/silicon/robot/R, user = usr) + . = ..() + if(.) + var/obj/item/twohanded/shockpaddles/cyborg/S = new(R.module) + R.module.basic_modules += S + R.module.add_module(S, FALSE, TRUE) - var/obj/item/twohanded/shockpaddles/cyborg/S = new(R.module) - R.module.basic_modules += S - R.module.add_module(S, FALSE, TRUE) - - return 1 +/obj/item/borg/upgrade/defib/deactivate(mob/living/silicon/robot/R, user = usr) + . = ..() + if (.) + var/obj/item/twohanded/shockpaddles/cyborg/S = locate() in R.module + R.module.remove_module(S, TRUE) /obj/item/borg/upgrade/ai name = "B.O.R.I.S. module" desc = "Bluespace Optimized Remote Intelligence Synchronization. An uplink device which takes the place of an MMI in cyborg endoskeletons, creating a robotic shell controlled by an AI." icon_state = "boris" -/obj/item/borg/upgrade/ai/action(mob/living/silicon/robot/R) - if(..()) - return - if(R.shell) - to_chat(usr, "This unit is already an AI shell!") - return - if(R.key) //You cannot replace a player unless the key is completely removed. - to_chat(usr, "Intelligence patterns detected in this [R.braintype]. Aborting.") - return +/obj/item/borg/upgrade/ai/action(mob/living/silicon/robot/R, user = usr) + . = ..() + if(.) + if(R.shell) + to_chat(user, "This unit is already an AI shell!") + return FALSE + if(R.key) //You cannot replace a player unless the key is completely removed. + to_chat(user, "Intelligence patterns detected in this [R.braintype]. Aborting.") + return FALSE - R.make_shell(src) - return TRUE + R.make_shell(src) + +/obj/item/borg/upgrade/ai/deactivate(mob/living/silicon/robot/R, user = usr) + . = ..() + if (.) + if(R.shell) + R.undeploy() + R.notify_ai(AI_SHELL) /obj/item/borg/upgrade/expand name = "borg expander" desc = "A cyborg resizer, it makes a cyborg huge." icon_state = "cyborg_upgrade3" -/obj/item/borg/upgrade/expand/action(mob/living/silicon/robot/R) - if(..()) - return +/obj/item/borg/upgrade/expand/action(mob/living/silicon/robot/R, user = usr) + . = ..() + if(.) - if(R.hasExpanded) - to_chat(usr, "This unit already has an expand module installed!") - return + if(R.hasExpanded) + to_chat(usr, "This unit already has an expand module installed!") + return FALSE - R.notransform = TRUE - var/prev_lockcharge = R.lockcharge - R.SetLockdown(1) - R.anchored = TRUE - var/datum/effect_system/smoke_spread/smoke = new - smoke.set_up(1, R.loc) - smoke.start() - sleep(2) - for(var/i in 1 to 4) - playsound(R, pick('sound/items/drill_use.ogg', 'sound/items/jaws_cut.ogg', 'sound/items/jaws_pry.ogg', 'sound/items/welder.ogg', 'sound/items/ratchet.ogg'), 80, 1, -1) - sleep(12) - if(!prev_lockcharge) - R.SetLockdown(0) - R.anchored = FALSE - R.notransform = FALSE - R.resize = 2 - R.hasExpanded = TRUE - R.update_transform() - return TRUE + R.notransform = TRUE + var/prev_lockcharge = R.lockcharge + R.SetLockdown(1) + R.anchored = TRUE + var/datum/effect_system/smoke_spread/smoke = new + smoke.set_up(1, R.loc) + smoke.start() + sleep(2) + for(var/i in 1 to 4) + playsound(R, pick('sound/items/drill_use.ogg', 'sound/items/jaws_cut.ogg', 'sound/items/jaws_pry.ogg', 'sound/items/welder.ogg', 'sound/items/ratchet.ogg'), 80, 1, -1) + sleep(12) + if(!prev_lockcharge) + R.SetLockdown(0) + R.anchored = FALSE + R.notransform = FALSE + R.resize = 2 + R.hasExpanded = TRUE + R.update_transform() + +/obj/item/borg/upgrade/expand/deactivate(mob/living/silicon/robot/R, user = usr) + . = ..() + if (.) + R.resize = 0.5 + R.hasExpanded = FALSE + R.update_transform() /obj/item/borg/upgrade/rped name = "engineering cyborg RPED" @@ -429,19 +496,25 @@ require_module = TRUE module_type = /obj/item/robot_module/engineering -/obj/item/borg/upgrade/rped/action(mob/living/silicon/robot/R) - if(..()) - return +/obj/item/borg/upgrade/rped/action(mob/living/silicon/robot/R, user = usr) + . = ..() + if(.) - var/obj/item/storage/part_replacer/cyborg/RPED = locate() in R - if(RPED) - to_chat(usr, "This unit is already equipped with a RPED module.") - return FALSE + var/obj/item/storage/part_replacer/cyborg/RPED = locate() in R + if(RPED) + to_chat(user, "This unit is already equipped with a RPED module.") + return FALSE - RPED = new(R.module) - R.module.basic_modules += RPED - R.module.add_module(RPED, FALSE, TRUE) - return TRUE + RPED = new(R.module) + R.module.basic_modules += RPED + R.module.add_module(RPED, FALSE, TRUE) + +/obj/item/borg/upgrade/rped/deactivate(mob/living/silicon/robot/R, user = usr) + . = ..() + if (.) + var/obj/item/storage/part_replacer/cyborg/RPED = locate() in R.module + if (RPED) + R.module.remove_module(RPED, TRUE) /obj/item/borg/upgrade/pinpointer name = "medical cyborg crew pinpointer" @@ -451,16 +524,22 @@ require_module = TRUE module_type = /obj/item/robot_module/medical -/obj/item/borg/upgrade/pinpointer/action(mob/living/silicon/robot/R) - if(..()) - return +/obj/item/borg/upgrade/pinpointer/action(mob/living/silicon/robot/R, user = usr) + . = ..() + if(.) - var/obj/item/pinpointer/crew/PP = locate() in R - if(PP) - to_chat(usr, "This unit is already equipped with a pinpointer module.") - return FALSE + var/obj/item/pinpointer/crew/PP = locate() in R + if(PP) + to_chat(user, "This unit is already equipped with a pinpointer module.") + return FALSE - PP = new(R.module) - R.module.basic_modules += PP - R.module.add_module(PP, FALSE, TRUE) - return TRUE + PP = new(R.module) + R.module.basic_modules += PP + R.module.add_module(PP, FALSE, TRUE) + +/obj/item/borg/upgrade/pinpointer/deactivate(mob/living/silicon/robot/R, user = usr) + . = ..() + if (.) + var/obj/item/pinpointer/crew/PP = locate() in R.module + if (PP) + R.module.remove_module(PP, TRUE) diff --git a/code/game/objects/items/stacks/bscrystal.dm b/code/game/objects/items/stacks/bscrystal.dm index 4f2c47d14f..936accce39 100644 --- a/code/game/objects/items/stacks/bscrystal.dm +++ b/code/game/objects/items/stacks/bscrystal.dm @@ -49,7 +49,7 @@ /obj/item/stack/ore/bluespace_crystal/artificial name = "artificial bluespace crystal" desc = "An artificially made bluespace crystal, it looks delicate." - materials = list(MAT_BLUESPACE=MINERAL_MATERIAL_AMOUNT / 2) + materials = list(MAT_BLUESPACE=MINERAL_MATERIAL_AMOUNT*0.5) blink_range = 4 // Not as good as the organic stuff! points = 0 //nice try refined_type = null diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index fba0c1b1a2..9d32504c19 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -285,7 +285,7 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list( /obj/item/shard/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/device/lightreplacer)) + if(istype(I, /obj/item/lightreplacer)) I.attackby(src, user) else return ..() diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index b8b1db43ed..719835e872 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -19,9 +19,6 @@ Mineral Sheets - Abductor */ -/obj/item/stack/sheet/mineral - icon = 'icons/obj/mining.dmi' - /obj/item/stack/sheet/mineral/Initialize(mapload) pixel_x = rand(-4, 4) pixel_y = rand(-4, 4) @@ -63,7 +60,6 @@ GLOBAL_LIST_INIT(sandstone_recipes, list ( \ /obj/item/stack/sheet/mineral/sandbags name = "sandbags" - icon = 'icons/obj/stack_objects.dmi' icon_state = "sandbags" singular_name = "sandbag" layer = LOW_ITEM_LAYER @@ -106,6 +102,7 @@ GLOBAL_LIST_INIT(sandbag_recipes, list ( \ sheettype = "diamond" materials = list(MAT_DIAMOND=MINERAL_MATERIAL_AMOUNT) novariants = TRUE + grind_results = list("carbon" = 20) GLOBAL_LIST_INIT(diamond_recipes, list ( \ new/datum/stack_recipe("diamond door", /obj/structure/mineral_door/transparent/diamond, 10, one_per_turf = 1, on_floor = 1), \ @@ -336,16 +333,6 @@ GLOBAL_LIST_INIT(snow_recipes, list ( \ /****************************** Others ****************************/ -/* - * Enriched Uranium - */ -/obj/item/stack/sheet/mineral/enruranium - name = "enriched uranium" - icon_state = "sheet-enruranium" - item_state = "sheet-enruranium" - singular_name = "enriched uranium sheet" - materials = list(MAT_URANIUM=3000) - /* * Adamantine */ diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 6bf32210bd..e67efb0c8a 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -227,26 +227,36 @@ else to_chat(usr, "You haven't got enough [src] to build \the [R.title]!") return FALSE - if(R.window_checks && !valid_window_location(usr.loc, usr.dir)) + var/turf/T = get_turf(usr) + if(R.window_checks && !valid_window_location(T, usr.dir)) to_chat(usr, "The [R.title] won't fit here!") return FALSE - if(R.one_per_turf && (locate(R.result_type) in usr.loc)) + if(R.one_per_turf && (locate(R.result_type) in T)) to_chat(usr, "There is another [R.title] here!") return FALSE - if(R.on_floor && !isfloorturf(usr.loc)) - to_chat(usr, "\The [R.title] must be constructed on the floor!") - return FALSE + if(R.on_floor) + if(!isfloorturf(T)) + to_chat(usr, "\The [R.title] must be constructed on the floor!") + return FALSE + for(var/obj/AM in T) + if(istype(AM,/obj/structure/grille)) + continue + if(istype(AM,/obj/structure/table)) + continue + if(AM.density) + to_chat(usr, "Theres a [AM.name] here. You cant make a [R.title] here!") + return FALSE if(R.placement_checks) switch(R.placement_checks) if(STACK_CHECK_CARDINALS) var/turf/step for(var/direction in GLOB.cardinals) - step = get_step(usr, direction) + step = get_step(T, direction) if(locate(R.result_type) in step) to_chat(usr, "\The [R.title] must not be built directly adjacent to another!") return FALSE if(STACK_CHECK_ADJACENT) - if(locate(R.result_type) in range(1, usr)) + if(locate(R.result_type) in range(1, T)) to_chat(usr, "\The [R.title] must be constructed at least one tile away from others of its type!") return FALSE return TRUE @@ -395,7 +405,9 @@ var/window_checks = FALSE var/placement_checks = FALSE -/datum/stack_recipe/New(title, result_type, req_amount = 1, res_amount = 1, max_res_amount = 1, time = 0, one_per_turf = FALSE, on_floor = FALSE, window_checks = FALSE, placement_checks = FALSE) +/datum/stack_recipe/New(title, result_type, req_amount = 1, res_amount = 1, max_res_amount = 1,time = 0, one_per_turf = FALSE, on_floor = FALSE, window_checks = FALSE, placement_checks = FALSE ) + + src.title = title src.result_type = result_type src.req_amount = req_amount @@ -415,4 +427,4 @@ /datum/stack_recipe_list/New(title, recipes) src.title = title - src.recipes = recipes \ No newline at end of file + src.recipes = recipes diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index 26c2c0b9db..89ce133fcc 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -18,32 +18,42 @@ righthand_file = 'icons/mob/inhands/equipment/backpack_righthand.dmi' w_class = WEIGHT_CLASS_BULKY slot_flags = SLOT_BACK //ERROOOOO - max_w_class = WEIGHT_CLASS_NORMAL - max_combined_w_class = 21 - storage_slots = 21 resistance_flags = NONE max_integrity = 300 +/obj/item/storage/backpack/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_combined_w_class = 21 + STR.max_w_class = WEIGHT_CLASS_NORMAL + STR.max_items = 21 + + /* * Backpack Types */ -/obj/item/storage/backpack/old - max_combined_w_class = 12 +/obj/item/storage/backpack/old/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_combined_w_class = 12 /obj/item/storage/backpack/holding name = "bag of holding" desc = "A backpack that opens into a localized pocket of Blue Space." icon_state = "holdingpack" item_state = "holdingpack" - max_w_class = WEIGHT_CLASS_GIGANTIC - max_combined_w_class = 35 resistance_flags = FIRE_PROOF flags_2 = NO_MAT_REDEMPTION_2 - var/pshoom = 'sound/items/pshoom.ogg' - var/alt_sound = 'sound/items/pshoom_2.ogg' armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 60, "acid" = 50) + component_type = /datum/component/storage/concrete/bluespace/bag_of_holding +/obj/item/storage/backpack/holding/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.allow_big_nesting = TRUE + STR.max_w_class = WEIGHT_CLASS_GIGANTIC + STR.max_combined_w_class = 35 /obj/item/storage/backpack/holding/suicide_act(mob/living/user) user.visible_message("[user] is jumping into [src]! It looks like [user.p_theyre()] trying to commit suicide.") @@ -54,57 +64,23 @@ qdel(user) return -/obj/item/storage/backpack/holding/dump_content_at(atom/dest_object, mob/user) - if(Adjacent(user)) - var/atom/dumping_location = dest_object.get_dumping_location() - if(get_dist(user, dumping_location) < 8) - if(dumping_location.storage_contents_dump_act(src, user)) - if(alt_sound && prob(1)) - playsound(src, alt_sound, 40, 1) - else - playsound(src, pshoom, 40, 1) - user.Beam(dumping_location,icon_state="rped_upgrade",time=5) - return 1 - to_chat(user, "The [src.name] buzzes.") - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 0) - return 0 - -/obj/item/storage/backpack/holding/handle_item_insertion(obj/item/W, prevent_warning = 0, mob/living/user) - if((istype(W, /obj/item/storage/backpack/holding) || count_by_type(W.GetAllContents(), /obj/item/storage/backpack/holding))) - var/turf/loccheck = get_turf(src) - if(is_reebe(loccheck.z)) - user.visible_message("An unseen force knocks [user] to the ground!", "\"I think not!\"") - user.Knockdown(60) - return - var/safety = alert(user, "Doing this will have extremely dire consequences for the station and its crew. Be sure you know what you're doing.", "Put in [name]?", "Proceed", "Abort") - if(safety == "Abort" || !in_range(src, user) || !src || !W || user.incapacitated()) - return - investigate_log("has become a singularity. Caused by [user.key]", INVESTIGATE_SINGULO) - to_chat(user, "The Bluespace interfaces of the two devices catastrophically malfunction!") - qdel(W) - var/obj/singularity/singulo = new /obj/singularity (get_turf(src)) - singulo.energy = 300 //should make it a bit bigger~ - message_admins("[key_name_admin(user)] detonated a bag of holding") - log_game("[key_name(user)] detonated a bag of holding") - qdel(src) - singulo.process() - return - . = ..() - /obj/item/storage/backpack/holding/singularity_act(current_size) var/dist = max((current_size - 2),1) explosion(src.loc,(dist),(dist*2),(dist*4)) return - /obj/item/storage/backpack/santabag name = "Santa's Gift Bag" desc = "Space Santa uses this to deliver toys to all the nice children in space in Christmas! Wow, it's pretty big!" icon_state = "giftbag0" item_state = "giftbag" w_class = WEIGHT_CLASS_BULKY - max_w_class = WEIGHT_CLASS_NORMAL - max_combined_w_class = 60 + +/obj/item/storage/backpack/santabag/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_w_class = WEIGHT_CLASS_NORMAL + STR.max_combined_w_class = 60 /obj/item/storage/backpack/santabag/suicide_act(mob/user) user.visible_message("[user] places [src] over their head and pulls it tight! It looks like they aren't in the Christmas spirit...") @@ -151,7 +127,6 @@ desc = "It's a special backpack made exclusively for Nanotrasen officers." icon_state = "captainpack" item_state = "captainpack" - resistance_flags = NONE /obj/item/storage/backpack/industrial name = "industrial backpack" @@ -183,7 +158,6 @@ desc = "A specially designed backpack. It's fire resistant and smells vaguely of plasma." icon_state = "toxpack" item_state = "toxpack" - resistance_flags = NONE /obj/item/storage/backpack/virology name = "virology backpack" @@ -191,7 +165,6 @@ icon_state = "viropack" item_state = "viropack" - /* * Satchel Types */ @@ -206,7 +179,6 @@ name = "leather satchel" desc = "It's a very fancy satchel made with fine leather." icon_state = "satchel" - resistance_flags = NONE /obj/item/storage/backpack/satchel/leather/withwallet/PopulateContents() new /obj/item/storage/wallet/random(src) @@ -216,7 +188,6 @@ desc = "A tough satchel with extra pockets." icon_state = "satchel-eng" item_state = "engiepack" - resistance_flags = NONE /obj/item/storage/backpack/satchel/med name = "medical satchel" @@ -247,7 +218,6 @@ desc = "Useful for holding research materials." icon_state = "satchel-tox" item_state = "satchel-tox" - resistance_flags = NONE /obj/item/storage/backpack/satchel/hyd name = "botanist satchel" @@ -272,18 +242,26 @@ desc = "An exclusive satchel for Nanotrasen officers." icon_state = "satchel-cap" item_state = "captainpack" - resistance_flags = NONE /obj/item/storage/backpack/satchel/flat name = "smuggler's satchel" desc = "A very slim satchel that can easily fit into tight spaces." icon_state = "satchel-flat" w_class = WEIGHT_CLASS_NORMAL //Can fit in backpacks itself. - max_combined_w_class = 15 level = 1 - cant_hold = list(/obj/item/storage/backpack/satchel/flat) //muh recursive backpacks + component_type = /datum/component/storage/concrete/secret_satchel -/obj/item/storage/backpack/satchel/flat/hide(var/intact) +/obj/item/storage/backpack/stachel/flat/Initialize() + . = ..() + SSpersistence.new_secret_satchels += src + +/obj/item/storage/backpack/satchel/flat/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_combined_w_class = 15 + STR.cant_hold = typecacheof(list(/obj/item/storage/backpack/satchel/flat)) //muh recursive backpacks + +/obj/item/storage/backpack/satchel/flat/hide(intact) if(intact) invisibility = INVISIBILITY_MAXIMUM anchored = TRUE //otherwise you can start pulling, cover it, and drag around an invisible backpack. @@ -293,10 +271,6 @@ anchored = FALSE icon_state = initial(icon_state) -/obj/item/storage/backpack/satchel/flat/Initialize(mapload) - . = ..() - SSpersistence.new_secret_satchels += src - /obj/item/storage/backpack/satchel/flat/PopulateContents() new /obj/item/stack/tile/plasteel(src) new /obj/item/crowbar(src) @@ -308,7 +282,7 @@ /obj/item/storage/backpack/satchel/flat/secret var/list/reward_one_of_these = list() //Intended for map editing var/list/reward_all_of_these = list() //use paths! - var/revealed = 0 + var/revealed = FALSE /obj/item/storage/backpack/satchel/flat/secret/Initialize() . = ..() @@ -324,13 +298,7 @@ new reward(src) for(var/R in reward_all_of_these) new R(src) - revealed = 1 - -/obj/item/storage/backpack/satchel/flat/can_be_inserted(obj/item/W, stop_messages = 0, mob/user) - if(SSpersistence.spawned_objects[W]) - to_chat(user, "[W] is unstable after its journey through space and time, it wouldn't survive another trip.") - return FALSE - return ..() + revealed = TRUE /obj/item/storage/backpack/duffelbag name = "duffel bag" @@ -338,14 +306,17 @@ icon_state = "duffel" item_state = "duffel" slowdown = 1 - max_combined_w_class = 30 + +/obj/item/storage/backpack/duffelbag/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_combined_w_class = 30 /obj/item/storage/backpack/duffelbag/captain name = "captain's duffel bag" desc = "A large duffel bag for holding extra captainly goods." icon_state = "duffel-captain" item_state = "duffel-captain" - resistance_flags = NONE /obj/item/storage/backpack/duffelbag/med name = "medical duffel bag" @@ -393,7 +364,6 @@ desc = "A large duffel bag for holding extra tools and supplies." icon_state = "duffel-eng" item_state = "duffel-eng" - resistance_flags = NONE /obj/item/storage/backpack/duffelbag/drone name = "drone duffel bag" @@ -409,7 +379,7 @@ new /obj/item/crowbar(src) new /obj/item/stack/cable_coil/random(src) new /obj/item/wirecutters(src) - new /obj/item/device/multitool(src) + new /obj/item/multitool(src) /obj/item/storage/backpack/duffelbag/clown name = "clown's duffel bag" @@ -426,9 +396,13 @@ desc = "A large duffel bag for holding extra tactical supplies." icon_state = "duffel-syndie" item_state = "duffel-syndieammo" - silent = 1 slowdown = 0 +/obj/item/storage/backpack/duffelbag/syndie/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.silent = TRUE + /obj/item/storage/backpack/duffelbag/syndie/hitman desc = "A large duffel bag for holding extra things. There is a Nanotrasen logo on the back." icon_state = "duffel-syndieammo" @@ -465,7 +439,7 @@ new /obj/item/surgical_drapes(src) new /obj/item/clothing/suit/straight_jacket(src) new /obj/item/clothing/mask/muzzle(src) - new /obj/item/device/mmi/syndie(src) + new /obj/item/mmi/syndie(src) /obj/item/storage/backpack/duffelbag/syndie/ammo name = "ammunition duffel bag" @@ -561,12 +535,14 @@ new /obj/item/grenade/syndieminibomb(src) // For ClownOps. -/obj/item/storage/backpack/duffelbag/clown/syndie +/obj/item/storage/backpack/duffelbag/clown/syndie/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) slowdown = 0 - silent = TRUE + STR.silent = TRUE /obj/item/storage/backpack/duffelbag/clown/syndie/PopulateContents() - new /obj/item/device/pda/clown(src) + new /obj/item/pda/clown(src) new /obj/item/clothing/under/rank/clown(src) new /obj/item/clothing/shoes/clown_shoes(src) new /obj/item/clothing/mask/gas/clown_hat(src) diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm index c8f6a9ff13..5c6a354356 100644 --- a/code/game/objects/items/storage/bags.dm +++ b/code/game/objects/items/storage/bags.dm @@ -17,12 +17,16 @@ // Generic non-item /obj/item/storage/bag - allow_quick_gather = 1 - allow_quick_empty = 1 - display_contents_with_number = 1 // should work fine now - use_to_pickup = 1 slot_flags = SLOT_BELT +/obj/item/storage/bag/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.allow_quick_gather = TRUE + STR.allow_quick_empty = TRUE + STR.display_numerical_stacking = TRUE + STR.click_gather = TRUE + // ----------------------------- // Trash bag // ----------------------------- @@ -36,11 +40,14 @@ righthand_file = 'icons/mob/inhands/equipment/custodial_righthand.dmi' w_class = WEIGHT_CLASS_BULKY - max_w_class = WEIGHT_CLASS_SMALL - max_combined_w_class = 30 - storage_slots = 30 - can_hold = list() // any - cant_hold = list(/obj/item/disk/nuclear) + +/obj/item/storage/bag/trash/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_w_class = WEIGHT_CLASS_SMALL + STR.max_combined_w_class = 30 + STR.max_items = 30 + STR.cant_hold = typecacheof(list(/obj/item/disk/nuclear)) /obj/item/storage/bag/trash/suicide_act(mob/user) user.visible_message("[user] puts [src] over [user.p_their()] head and starts chomping at the insides! Disgusting!") @@ -70,10 +77,14 @@ name = "trash bag of holding" desc = "The latest and greatest in custodial convenience, a trashbag that is capable of holding vast quantities of garbage." icon_state = "bluetrashbag" - max_combined_w_class = 60 - storage_slots = 60 flags_2 = NO_MAT_REDEMPTION_2 +/obj/item/storage/bag/trash/bluespace/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_combined_w_class = 60 + STR.max_items = 60 + // ----------------------------- // Mining Satchel // ----------------------------- @@ -85,13 +96,18 @@ icon_state = "satchel" slot_flags = SLOT_BELT | SLOT_POCKET w_class = WEIGHT_CLASS_NORMAL - storage_slots = 8 - max_combined_w_class = 16 //Doesn't matter what this is, so long as it's more or equal to storage_slots * ore.w_class - max_w_class = WEIGHT_CLASS_HUGE - can_hold = list(/obj/item/stack/ore) + component_type = /datum/component/storage/concrete/stack var/spam_protection = FALSE //If this is TRUE, the holder won't receive any messages when they fail to pick up ore through crossing it var/datum/component/mobhook +/obj/item/storage/bag/ore/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage/concrete/stack) + STR.allow_quick_empty = TRUE + STR.can_hold = typecacheof(list(/obj/item/stack/ore)) + STR.max_w_class = WEIGHT_CLASS_HUGE + STR.max_combined_stack_amount = 50 + /obj/item/storage/bag/ore/equipped(mob/user) . = ..() if (mobhook && mobhook.parent != user) @@ -112,20 +128,21 @@ return if (istype(user.pulling, /obj/structure/ore_box)) box = user.pulling - for(var/A in tile) - if (!is_type_in_typecache(A, can_hold)) - continue - if (box) - user.transferItemToLoc(A, box) - show_message = TRUE - else if(can_be_inserted(A, TRUE, user)) - handle_item_insertion(A, TRUE, user) - show_message = TRUE - else - if(!spam_protection) - to_chat(user, "Your [name] is full and can't hold any more!") - spam_protection = TRUE + GET_COMPONENT(STR, /datum/component/storage) + if(STR) + for(var/A in tile) + if (!is_type_in_typecache(A, STR.can_hold)) continue + if (box) + user.transferItemToLoc(A, box) + show_message = TRUE + else if(SendSignal(COMSIG_TRY_STORAGE_INSERT, A, user, TRUE)) + show_message = TRUE + else + if(!spam_protection) + to_chat(user, "Your [name] is full and can't hold any more!") + spam_protection = TRUE + continue if(show_message) playsound(user, "rustle", 50, TRUE) if (box) @@ -142,10 +159,15 @@ /obj/item/storage/bag/ore/holding //miners, your messiah has arrived name = "mining satchel of holding" desc = "A revolution in convenience, this satchel allows for huge amounts of ore storage. It's been outfitted with anti-malfunction safety measures." - storage_slots = INFINITY - max_combined_w_class = INFINITY icon_state = "satchel_bspace" +/obj/item/storage/bag/ore/holding/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage/concrete/stack) + STR.max_items = INFINITY + STR.max_combined_w_class = INFINITY + STR.max_combined_stack_amount = INFINITY + // ----------------------------- // Plant bag // ----------------------------- @@ -154,13 +176,17 @@ name = "plant bag" icon = 'icons/obj/hydroponics/equipment.dmi' icon_state = "plantbag" - storage_slots = 100; //the number of plant pieces it can carry. - max_combined_w_class = 100 //Doesn't matter what this is, so long as it's more or equal to storage_slots * plants.w_class - max_w_class = WEIGHT_CLASS_NORMAL w_class = WEIGHT_CLASS_TINY - can_hold = list(/obj/item/reagent_containers/food/snacks/grown, /obj/item/seeds, /obj/item/grown, /obj/item/reagent_containers/honeycomb) resistance_flags = FLAMMABLE +/obj/item/storage/bag/plants/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_w_class = WEIGHT_CLASS_NORMAL + STR.max_combined_w_class = 100 + STR.max_items = 100 + STR.can_hold = typecacheof(list(/obj/item/reagent_containers/food/snacks/grown, /obj/item/seeds, /obj/item/grown, /obj/item/reagent_containers/honeycomb)) + //////// /obj/item/storage/bag/plants/portaseeder @@ -176,8 +202,6 @@ return for(var/obj/item/O in contents) seedify(O, 1) - close_all() - // ----------------------------- // Sheet Snatcher @@ -193,123 +217,15 @@ var/capacity = 300; //the number of sheets it can carry. w_class = WEIGHT_CLASS_NORMAL + component_type = /datum/component/storage/concrete/stack - allow_quick_empty = 1 // this function is superceded - -/obj/item/storage/bag/sheetsnatcher/can_be_inserted(obj/item/W, stop_messages = 0) - if(!istype(W, /obj/item/stack/sheet) || istype(W, /obj/item/stack/sheet/mineral/sandstone) || istype(W, /obj/item/stack/sheet/mineral/wood)) - if(!stop_messages) - to_chat(usr, "The snatcher does not accept [W].") - return 0 //I don't care, but the existing code rejects them for not being "sheets" *shrug* -Sayu - var/current = 0 - for(var/obj/item/stack/sheet/S in contents) - current += S.amount - if(capacity == current)//If it's full, you're done - if(!stop_messages) - to_chat(usr, "The snatcher is full.") - return 0 - return 1 - - -// Modified handle_item_insertion. Would prefer not to, but... -/obj/item/storage/bag/sheetsnatcher/handle_item_insertion(obj/item/W, prevent_warning = 0) - var/obj/item/stack/sheet/S = W - if(!istype(S)) - return 0 - - var/amount - var/inserted = 0 - var/current = 0 - for(var/obj/item/stack/sheet/S2 in contents) - current += S2.amount - if(capacity < current + S.amount)//If the stack will fill it up - amount = capacity - current - else - amount = S.amount - - for(var/obj/item/stack/sheet/sheet in contents) - if(S.type == sheet.type) // we are violating the amount limitation because these are not sane objects - sheet.amount += amount // they should only be removed through procs in this file, which split them up. - S.amount -= amount - inserted = 1 - break - - if(!inserted || !S.amount) - usr.dropItemToGround(S) - if (usr.client && usr.s_active != src) - usr.client.screen -= S - S.dropped(usr) - if(!S.amount) - qdel(S) - else - if(S.pulledby) - S.pulledby.stop_pulling() - S.forceMove(src) - - orient2hud(usr) - if(usr.s_active) - usr.s_active.show_to(usr) - update_icon() - return 1 - - -// Sets up numbered display to show the stack size of each stored mineral -// NOTE: numbered display is turned off currently because it's broken -/obj/item/storage/bag/sheetsnatcher/orient2hud(mob/user) - var/adjusted_contents = contents.len - - //Numbered contents display - var/list/datum/numbered_display/numbered_contents - if(display_contents_with_number) - numbered_contents = list() - adjusted_contents = 0 - for(var/obj/item/stack/sheet/I in contents) - adjusted_contents++ - var/datum/numbered_display/D = new/datum/numbered_display(I) - D.number = I.amount - numbered_contents.Add( D ) - - var/row_num = 0 - var/col_count = min(7,storage_slots) -1 - if (adjusted_contents > 7) - row_num = round((adjusted_contents-1) / 7) // 7 is the maximum allowed width. - standard_orient_objs(row_num, col_count, numbered_contents) - return - - -// Modified quick_empty verb drops appropriate sized stacks -/obj/item/storage/bag/sheetsnatcher/quick_empty() - var/location = get_turf(src) - for(var/obj/item/stack/sheet/S in contents) - while(S.amount) - var/obj/item/stack/sheet/N = new S.type(location) - var/stacksize = min(S.amount,N.max_amount) - N.amount = stacksize - S.amount -= stacksize - if(!S.amount) - qdel(S)// todo: there's probably something missing here - orient2hud(usr) - if(usr.s_active) - usr.s_active.show_to(usr) - update_icon() - -// Instead of removing -/obj/item/storage/bag/sheetsnatcher/remove_from_storage(obj/item/W, atom/new_location) - var/obj/item/stack/sheet/S = W - if(!istype(S)) - return 0 - - //I would prefer to drop a new stack, but the item/attack_hand code - // that calls this can't recieve a different object than you clicked on. - //Therefore, make a new stack internally that has the remainder. - // -Sayu - - if(S.amount > S.max_amount) - var/obj/item/stack/sheet/temp = new S.type(src) - temp.amount = S.amount - S.max_amount - S.amount = S.max_amount - - return ..(S,new_location) +/obj/item/storage/bag/sheetsnatcher/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage/concrete/stack) + STR.allow_quick_empty = TRUE + STR.can_hold = typecacheof(list(/obj/item/stack/sheet)) + STR.cant_hold = typecacheof(list(/obj/item/stack/sheet/mineral/sandstone, /obj/item/stack/sheet/mineral/wood)) + STR.max_combined_stack_amount = 300 // ----------------------------- // Sheet Snatcher (Cyborg) @@ -320,6 +236,10 @@ desc = "" capacity = 500//Borgs get more because >specialization +/obj/item/storage/bag/sheetsnatcher/borg/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage/concrete/stack) + STR.max_combined_stack_amount = 500 // ----------------------------- // Book bag @@ -330,14 +250,18 @@ desc = "A bag for books." icon = 'icons/obj/library.dmi' icon_state = "bookbag" - display_contents_with_number = 0 //This would look really stupid otherwise - storage_slots = 7 - max_combined_w_class = 21 - max_w_class = WEIGHT_CLASS_NORMAL w_class = WEIGHT_CLASS_BULKY //Bigger than a book because physics - can_hold = list(/obj/item/book, /obj/item/storage/book, /obj/item/spellbook) resistance_flags = FLAMMABLE +/obj/item/storage/bag/books/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_w_class = WEIGHT_CLASS_NORMAL + STR.max_combined_w_class = 21 + STR.max_items = 7 + STR.display_numerical_stacking = FALSE + STR.can_hold = typecacheof(list(/obj/item/book, /obj/item/storage/book, /obj/item/spellbook)) + /* * Trays - Agouri */ @@ -353,14 +277,18 @@ w_class = WEIGHT_CLASS_BULKY flags_1 = CONDUCT_1 materials = list(MAT_METAL=3000) - preposition = "on" + +/obj/item/storage/bag/tray/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.insert_preposition = "on" /obj/item/storage/bag/tray/attack(mob/living/M, mob/living/user) - ..() + . = ..() // Drop all the things. All of them. var/list/obj/item/oldContents = contents.Copy() - quick_empty() - + GET_COMPONENT(STR, /datum/component/storage) + STR.quick_empty() // Make each item scatter a bit for(var/obj/item/I in oldContents) spawn() @@ -377,20 +305,20 @@ if(ishuman(M) || ismonkey(M)) if(prob(10)) M.Knockdown(40) + update_icon() -/obj/item/storage/bag/tray/proc/rebuild_overlays() +/obj/item/storage/bag/tray/update_icon() cut_overlays() for(var/obj/item/I in contents) add_overlay(mutable_appearance(I.icon, I.icon_state)) -/obj/item/storage/bag/tray/remove_from_storage(obj/item/W as obj, atom/new_location) - ..() - rebuild_overlays() - -/obj/item/storage/bag/tray/handle_item_insertion(obj/item/I, prevent_warning = 0) - add_overlay(mutable_appearance(I.icon, I.icon_state)) +/obj/item/storage/bag/tray/Entered() . = ..() + update_icon() +/obj/item/storage/bag/tray/Exited() + . = ..() + update_icon() /* * Chemistry bag @@ -401,12 +329,17 @@ icon = 'icons/obj/chemical.dmi' icon_state = "bag" desc = "A bag for storing pills, patches, and bottles." - storage_slots = 50 - max_combined_w_class = 200 w_class = WEIGHT_CLASS_TINY - can_hold = list(/obj/item/reagent_containers/pill, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/glass/bottle) resistance_flags = FLAMMABLE +/obj/item/storage/bag/chemistry/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_combined_w_class = 200 + STR.max_items = 50 + STR.insert_preposition = "in" + STR.can_hold = typecacheof(list(/obj/item/reagent_containers/pill, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/glass/bottle)) + /* * Biowaste bag (mostly for xenobiologists) */ @@ -416,8 +349,13 @@ icon = 'icons/obj/chemical.dmi' icon_state = "biobag" desc = "A bag for the safe transportation and disposal of biowaste and other biological materials." - storage_slots = 25 - max_combined_w_class = 200 w_class = WEIGHT_CLASS_TINY - can_hold = list(/obj/item/slime_extract, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/blood, /obj/item/reagent_containers/hypospray/medipen, /obj/item/reagent_containers/food/snacks/deadmouse, /obj/item/reagent_containers/food/snacks/monkeycube) resistance_flags = FLAMMABLE + +/obj/item/storage/bag/bio/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_combined_w_class = 200 + STR.max_items = 25 + STR.insert_preposition = "in" + STR.can_hold = typecacheof(list(/obj/item/slime_extract, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/blood, /obj/item/reagent_containers/hypospray/medipen, /obj/item/reagent_containers/food/snacks/deadmouse, /obj/item/reagent_containers/food/snacks/monkeycube)) diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index d0b3480f04..d934fbe18a 100755 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -32,25 +32,30 @@ desc = "Holds tools." icon_state = "utilitybelt" item_state = "utility" - can_hold = list( + content_overlays = TRUE + +/obj/item/storage/belt/utility/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + var/static/list/can_hold = typecacheof(list( /obj/item/crowbar, /obj/item/screwdriver, /obj/item/weldingtool, /obj/item/wirecutters, /obj/item/wrench, - /obj/item/device/multitool, - /obj/item/device/flashlight, + /obj/item/multitool, + /obj/item/flashlight, /obj/item/stack/cable_coil, - /obj/item/device/t_scanner, - /obj/item/device/analyzer, - /obj/item/device/geiger_counter, + /obj/item/t_scanner, + /obj/item/analyzer, + /obj/item/geiger_counter, /obj/item/extinguisher/mini, - /obj/item/device/radio, + /obj/item/radio, /obj/item/clothing/gloves, /obj/item/holosign_creator, - /obj/item/device/assembly/signaler - ) - content_overlays = TRUE + /obj/item/assembly/signaler + )) + STR.can_hold = can_hold /obj/item/storage/belt/utility/chief name = "\improper Chief Engineer's toolbelt" //"the Chief Engineer's toolbelt", because "Chief Engineer's toolbelt" is not a proper noun @@ -62,20 +67,19 @@ new /obj/item/screwdriver/power(src) new /obj/item/crowbar/power(src) new /obj/item/weldingtool/experimental(src)//This can be changed if this is too much - new /obj/item/device/multitool(src) + new /obj/item/multitool(src) new /obj/item/stack/cable_coil(src,30,pick("red","yellow","orange")) new /obj/item/extinguisher/mini(src) - new /obj/item/device/analyzer(src) + new /obj/item/analyzer(src) //much roomier now that we've managed to remove two tools - /obj/item/storage/belt/utility/full/PopulateContents() new /obj/item/screwdriver(src) new /obj/item/wrench(src) new /obj/item/weldingtool(src) new /obj/item/crowbar(src) new /obj/item/wirecutters(src) - new /obj/item/device/multitool(src) + new /obj/item/multitool(src) new /obj/item/stack/cable_coil(src,30,pick("red","yellow","orange")) /obj/item/storage/belt/utility/full/engi/PopulateContents() @@ -84,7 +88,7 @@ new /obj/item/weldingtool/largetank(src) new /obj/item/crowbar(src) new /obj/item/wirecutters(src) - new /obj/item/device/multitool(src) + new /obj/item/multitool(src) new /obj/item/stack/cable_coil(src,30,pick("red","yellow","orange")) @@ -94,7 +98,7 @@ new /obj/item/weldingtool(src) new /obj/item/crowbar(src) new /obj/item/wirecutters(src) - new /obj/item/device/t_scanner(src) + new /obj/item/t_scanner(src) new /obj/item/extinguisher/mini(src) /obj/item/storage/belt/utility/servant/PopulateContents() @@ -103,20 +107,21 @@ new /obj/item/wrench/brass(src) new /obj/item/crowbar/brass(src) new /obj/item/weldingtool/experimental/brass(src) - new /obj/item/device/multitool(src) + new /obj/item/multitool(src) new /obj/item/stack/cable_coil(src, 30, "yellow") - - - /obj/item/storage/belt/medical name = "medical belt" desc = "Can hold various medical equipment." icon_state = "medicalbelt" item_state = "medical" - max_w_class = WEIGHT_CLASS_BULKY - can_hold = list( - /obj/item/device/healthanalyzer, + +/obj/item/storage/belt/medical/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_w_class = WEIGHT_CLASS_BULKY + STR.can_hold = typecacheof(list( + /obj/item/healthanalyzer, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/glass/beaker, @@ -128,11 +133,11 @@ /obj/item/storage/fancy/cigarettes, /obj/item/storage/pill_bottle, /obj/item/stack/medical, - /obj/item/device/flashlight/pen, + /obj/item/flashlight/pen, /obj/item/extinguisher/mini, /obj/item/reagent_containers/hypospray, - /obj/item/device/sensor_device, - /obj/item/device/radio, + /obj/item/sensor_device, + /obj/item/radio, /obj/item/clothing/gloves/, /obj/item/lazarus_injector, /obj/item/bikehorn/rubberducky, @@ -146,7 +151,7 @@ /obj/item/retractor, /obj/item/cautery, /obj/item/hemostat, - /obj/item/device/geiger_counter, + /obj/item/geiger_counter, /obj/item/clothing/neck/stethoscope, /obj/item/stamp, /obj/item/clothing/glasses, @@ -156,76 +161,80 @@ /obj/item/storage/bag/bio, /obj/item/reagent_containers/blood, /obj/item/tank/internals/emergency_oxygen, - /obj/item/pinpointer/crew, /obj/item/gun/syringe/syndicate, /obj/item/implantcase, /obj/item/implant, /obj/item/implanter, - /obj/item/hypospray - ) - // CIT CHANGE added hypospray mk IIs to belt /obj/item/hypospray + /obj/item/pinpointer/crew + )) /obj/item/storage/belt/security name = "security belt" desc = "Can hold security gear like handcuffs and flashes." icon_state = "securitybelt" item_state = "security"//Could likely use a better one. - storage_slots = 5 - max_w_class = WEIGHT_CLASS_NORMAL //Because the baton wouldn't fit otherwise. - Neerti - can_hold = list( + content_overlays = TRUE + +/obj/item/storage/belt/security/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 5 + STR.max_w_class = WEIGHT_CLASS_NORMAL + STR.can_hold = typecacheof(list( /obj/item/melee/baton, /obj/item/melee/classic_baton, /obj/item/grenade, /obj/item/reagent_containers/spray/pepper, /obj/item/restraints/handcuffs, - /obj/item/device/assembly/flash/handheld, + /obj/item/assembly/flash/handheld, /obj/item/clothing/glasses, /obj/item/ammo_casing/shotgun, /obj/item/ammo_box, /obj/item/reagent_containers/food/snacks/donut, /obj/item/kitchen/knife/combat, - /obj/item/device/flashlight/seclite, + /obj/item/flashlight/seclite, /obj/item/melee/classic_baton/telescopic, - /obj/item/device/radio, + /obj/item/radio, /obj/item/clothing/gloves, - /obj/item/restraints/legcuffs/bola, - /obj/item/holosign_creator/security - ) - content_overlays = TRUE + /obj/item/restraints/legcuffs/bola + )) /obj/item/storage/belt/security/full/PopulateContents() new /obj/item/reagent_containers/spray/pepper(src) new /obj/item/restraints/handcuffs(src) new /obj/item/grenade/flashbang(src) - new /obj/item/device/assembly/flash/handheld(src) + new /obj/item/assembly/flash/handheld(src) new /obj/item/melee/baton/loaded(src) update_icon() - /obj/item/storage/belt/mining name = "explorer's webbing" desc = "A versatile chest rig, cherished by miners and hunters alike." icon_state = "explorer1" item_state = "explorer1" - storage_slots = 6 w_class = WEIGHT_CLASS_BULKY - max_w_class = WEIGHT_CLASS_BULKY //Pickaxes are big. - max_combined_w_class = 20 //Not an issue with this whitelist, probably. - can_hold = list( + +/obj/item/storage/belt/mining/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 6 + STR.max_w_class = WEIGHT_CLASS_BULKY + STR.max_combined_w_class = 20 + STR.can_hold = typecacheof(list( /obj/item/crowbar, /obj/item/screwdriver, /obj/item/weldingtool, /obj/item/wirecutters, /obj/item/wrench, - /obj/item/device/multitool, - /obj/item/device/flashlight, + /obj/item/multitool, + /obj/item/flashlight, /obj/item/stack/cable_coil, - /obj/item/device/analyzer, + /obj/item/analyzer, /obj/item/extinguisher/mini, - /obj/item/device/radio, + /obj/item/radio, /obj/item/clothing/gloves, /obj/item/resonator, - /obj/item/device/mining_scanner, + /obj/item/mining_scanner, /obj/item/pickaxe, /obj/item/stack/sheet/animalhide, /obj/item/stack/sheet/sinew, @@ -236,19 +245,19 @@ /obj/item/stack/medical, /obj/item/kitchen/knife, /obj/item/reagent_containers/hypospray, - /obj/item/device/gps, + /obj/item/gps, /obj/item/storage/bag/ore, /obj/item/survivalcapsule, - /obj/item/device/t_scanner/adv_mining_scanner, + /obj/item/t_scanner/adv_mining_scanner, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/stack/ore, /obj/item/reagent_containers/food/drinks, /obj/item/organ/regenerative_core, - /obj/item/device/wormhole_jaunter, + /obj/item/wormhole_jaunter, /obj/item/storage/bag/plants, /obj/item/stack/marker_beacon - ) + )) /obj/item/storage/belt/mining/vendor @@ -261,27 +270,35 @@ /obj/item/storage/belt/mining/primitive name = "hunter's belt" desc = "A versatile belt, woven from sinew." - storage_slots = 5 icon_state = "ebelt" item_state = "ebelt" +/obj/item/storage/belt/mining/primitive/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 5 + /obj/item/storage/belt/soulstone name = "soul stone belt" desc = "Designed for ease of access to the shards during a fight, as to not let a single enemy spirit slip away." icon_state = "soulstonebelt" item_state = "soulstonebelt" - storage_slots = 6 - can_hold = list( - /obj/item/device/soulstone - ) + +/obj/item/storage/belt/soulstone/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 6 + STR.can_hold = typecacheof(list( + /obj/item/soulstone + )) /obj/item/storage/belt/soulstone/full/PopulateContents() for(var/i in 1 to 6) - new /obj/item/device/soulstone(src) + new /obj/item/soulstone(src) /obj/item/storage/belt/soulstone/full/chappy/PopulateContents() for(var/i in 1 to 6) - new /obj/item/device/soulstone/anybody/chaplain(src) + new /obj/item/soulstone/anybody/chaplain(src) /obj/item/storage/belt/champion name = "championship belt" @@ -289,8 +306,12 @@ icon_state = "championbelt" item_state = "champion" materials = list(MAT_GOLD=400) - storage_slots = 1 - can_hold = list( + +/obj/item/storage/belt/champion/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 1 + STR.can_hold = list( /obj/item/clothing/mask/luchador ) @@ -299,7 +320,11 @@ desc = "A set of tactical webbing worn by Syndicate boarding parties." icon_state = "militarywebbing" item_state = "militarywebbing" - max_w_class = WEIGHT_CLASS_SMALL + +/obj/item/storage/belt/military/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_w_class = WEIGHT_CLASS_SMALL /obj/item/storage/belt/military/abductor name = "agent belt" @@ -314,10 +339,9 @@ new /obj/item/weldingtool/abductor(src) new /obj/item/crowbar/abductor(src) new /obj/item/wirecutters/abductor(src) - new /obj/item/device/multitool/abductor(src) + new /obj/item/multitool/abductor(src) new /obj/item/stack/cable_coil(src,30,"white") - /obj/item/storage/belt/military/army name = "army belt" desc = "A belt used by military forces." @@ -329,25 +353,34 @@ desc = "A tactical assault belt." icon_state = "assaultbelt" item_state = "security" - storage_slots = 6 + +/obj/item/storage/belt/military/assault/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 6 /obj/item/storage/belt/grenade name = "grenadier belt" desc = "A belt for holding grenades." icon_state = "grenadebeltnew" item_state = "security" - max_w_class = WEIGHT_CLASS_BULKY - display_contents_with_number = TRUE - storage_slots = 30 - max_combined_w_class = 60 //needs to be this high - can_hold = list( + +/obj/item/storage/belt/grenade/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 30 + STR.display_numerical_stacking = TRUE + STR.max_combined_w_class = 60 + STR.max_w_class = WEIGHT_CLASS_BULKY + STR.can_hold = typecacheof(list( /obj/item/grenade, /obj/item/screwdriver, /obj/item/lighter, - /obj/item/device/multitool, + /obj/item/multitool, /obj/item/reagent_containers/food/drinks/bottle/molotov, /obj/item/grenade/plastic/c4, - ) + )) + /obj/item/storage/belt/grenade/full/PopulateContents() new /obj/item/grenade/flashbang(src) new /obj/item/grenade/smokebomb(src) @@ -376,17 +409,21 @@ new /obj/item/grenade/syndieminibomb(src) new /obj/item/grenade/syndieminibomb(src) new /obj/item/screwdriver(src) - new /obj/item/device/multitool(src) + new /obj/item/multitool(src) /obj/item/storage/belt/wands name = "wand belt" desc = "A belt designed to hold various rods of power. A veritable fanny pack of exotic magic." icon_state = "soulstonebelt" item_state = "soulstonebelt" - storage_slots = 6 - can_hold = list( + +/obj/item/storage/belt/wands/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 6 + STR.can_hold = typecacheof(list( /obj/item/gun/magic/wand - ) + )) /obj/item/storage/belt/wands/full/PopulateContents() new /obj/item/gun/magic/wand/death(src) @@ -405,45 +442,57 @@ desc = "A belt used to hold most janitorial supplies." icon_state = "janibelt" item_state = "janibelt" - storage_slots = 6 - max_w_class = WEIGHT_CLASS_BULKY // Set to this so the light replacer can fit. - can_hold = list( + +/obj/item/storage/belt/janitor/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 6 + STR.max_w_class = WEIGHT_CLASS_BULKY // Set to this so the light replacer can fit. + STR.can_hold = typecacheof(list( /obj/item/grenade/chem_grenade, - /obj/item/device/lightreplacer, - /obj/item/device/flashlight, + /obj/item/lightreplacer, + /obj/item/flashlight, /obj/item/reagent_containers/spray, /obj/item/soap, /obj/item/holosign_creator, /obj/item/key/janitor, /obj/item/clothing/gloves, /obj/item/melee/flyswatter, - /obj/item/device/assembly/mousetrap - ) + /obj/item/assembly/mousetrap + )) /obj/item/storage/belt/bandolier name = "bandolier" desc = "A bandolier for holding shotgun ammunition." icon_state = "bandolier" item_state = "bandolier" - storage_slots = 18 - display_contents_with_number = TRUE - can_hold = list( + +/obj/item/storage/belt/bandolier/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 18 + STR.display_numerical_stacking = TRUE + STR.can_hold = typecacheof(list( /obj/item/ammo_casing/shotgun - ) + )) /obj/item/storage/belt/holster name = "shoulder holster" desc = "A holster to carry a handgun and ammo. WARNING: Badasses only." icon_state = "holster" item_state = "holster" - storage_slots = 3 - max_w_class = WEIGHT_CLASS_NORMAL - can_hold = list( + alternate_worn_layer = UNDER_SUIT_LAYER + +/obj/item/storage/belt/holster/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 3 + STR.max_w_class = WEIGHT_CLASS_NORMAL + STR.can_hold = typecacheof(list( /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/revolver, /obj/item/ammo_box, - ) - alternate_worn_layer = UNDER_SUIT_LAYER + )) /obj/item/storage/belt/holster/full/PopulateContents() new /obj/item/gun/ballistic/revolver/detective(src) @@ -455,8 +504,12 @@ desc = "A dorky fannypack for keeping small items in." icon_state = "fannypack_leather" item_state = "fannypack_leather" - storage_slots = 3 - max_w_class = WEIGHT_CLASS_SMALL + +/obj/item/storage/belt/fannypack/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 3 + STR.max_w_class = WEIGHT_CLASS_SMALL /obj/item/storage/belt/fannypack/black name = "black fannypack" @@ -513,26 +566,29 @@ desc = "An ornate sheath designed to hold an officer's blade." icon_state = "sheath" item_state = "sheath" - storage_slots = 1 - rustle_jimmies = FALSE w_class = WEIGHT_CLASS_BULKY - max_w_class = WEIGHT_CLASS_BULKY - can_hold = list( + +/obj/item/storage/belt/sabre/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 1 + STR.rustle_sound = FALSE + STR.max_w_class = WEIGHT_CLASS_BULKY + STR.can_hold = typecacheof(list( /obj/item/melee/sabre - ) + )) /obj/item/storage/belt/sabre/examine(mob/user) ..() - if(contents.len) + if(length(contents)) to_chat(user, "Alt-click it to quickly draw the blade.") /obj/item/storage/belt/sabre/AltClick(mob/user) if(!iscarbon(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) return - if(contents.len) + if(length(contents)) var/obj/item/I = contents[1] - user.visible_message("[user] takes [I] out of [src].", "You take [I] out of [src].",\ - ) + user.visible_message("[user] takes [I] out of [src].", "You take [I] out of [src].") user.put_in_hands(I) update_icon() else @@ -549,7 +605,6 @@ L.regenerate_icons() ..() - /obj/item/storage/belt/sabre/PopulateContents() new /obj/item/melee/sabre(src) - update_icon() + update_icon() \ No newline at end of file diff --git a/code/game/objects/items/storage/book.dm b/code/game/objects/items/storage/book.dm index 10b28e12f6..44c41e419b 100644 --- a/code/game/objects/items/storage/book.dm +++ b/code/game/objects/items/storage/book.dm @@ -5,11 +5,15 @@ icon_state ="book" throw_speed = 2 throw_range = 5 - storage_slots = 1 w_class = WEIGHT_CLASS_NORMAL resistance_flags = FLAMMABLE var/title = "book" +/obj/item/storage/book/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 1 + /obj/item/storage/book/attack_self(mob/user) to_chat(user, "The pages of [title] have been cut out!") @@ -173,7 +177,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible", playsound(src,'sound/hallucinations/veryfar_noise.ogg',40,1) if(do_after(user, 40, target = sword)) playsound(src,'sound/effects/pray_chaplain.ogg',60,1) - for(var/obj/item/device/soulstone/SS in sword.contents) + for(var/obj/item/soulstone/SS in sword.contents) SS.usability = TRUE for(var/mob/living/simple_animal/shade/EX in SS) SSticker.mode.remove_cultist(EX.mind, 1, 0) @@ -205,8 +209,6 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible", attack_verb = list("attacked", "burned", "blessed", "damned", "scorched") var/uses = 1 - - /obj/item/storage/book/bible/syndicate/attack_self(mob/living/carbon/human/H) if (uses) H.mind.isholy = TRUE diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index 90251832bf..f892bc50f4 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -64,9 +64,6 @@ if(!ispath(foldable)) return - //Close any open UI windows first - close_all() - to_chat(user, "You fold [src] flat.") var/obj/item/I = new foldable qdel(src) @@ -104,7 +101,7 @@ /obj/item/storage/box/survival/radio/PopulateContents() ..() // we want the survival stuff too. - new /obj/item/device/radio/off(src) + new /obj/item/radio/off(src) /obj/item/storage/box/survival_mining/PopulateContents() new /obj/item/clothing/mask/gas/explorer(src) @@ -121,7 +118,7 @@ /obj/item/storage/box/engineer/radio/PopulateContents() ..() // we want the regular items too. - new /obj/item/device/radio/off(src) + new /obj/item/radio/off(src) // Syndie survival box /obj/item/storage/box/syndie/PopulateContents() @@ -136,7 +133,7 @@ /obj/item/storage/box/security/radio/PopulateContents() ..() // we want the regular stuff too - new /obj/item/device/radio/off(src) + new /obj/item/radio/off(src) /obj/item/storage/box/gloves name = "box of latex gloves" @@ -228,7 +225,7 @@ /obj/item/storage/box/flashes/PopulateContents() for(var/i in 1 to 6) - new /obj/item/device/assembly/flash/handheld(src) + new /obj/item/assembly/flash/handheld(src) /obj/item/storage/box/wall_flash name = "wall-mounted flash kit" @@ -241,11 +238,11 @@ new /obj/item/wallframe/button(src) new /obj/item/electronics/airlock(src) - var/obj/item/device/assembly/control/flasher/remote = new(src) + var/obj/item/assembly/control/flasher/remote = new(src) remote.id = id var/obj/item/wallframe/flasher/frame = new(src) frame.id = id - new /obj/item/device/assembly/flash/handheld(src) + new /obj/item/assembly/flash/handheld(src) new /obj/item/screwdriver(src) @@ -360,7 +357,11 @@ desc = "Instructions: Heat in microwave. Product will cool if not eaten within seven minutes." icon_state = "donkpocketbox" illustration=null - can_hold = list(/obj/item/reagent_containers/food/snacks/donkpocket) + +/obj/item/storage/box/donkpockets/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.can_hold = typecacheof(list(/obj/item/reagent_containers/food/snacks/donkpocket)) /obj/item/storage/box/donkpockets/PopulateContents() for(var/i in 1 to 6) @@ -370,10 +371,14 @@ name = "monkey cube box" desc = "Drymate brand monkey cubes. Just add water!" icon_state = "monkeycubebox" - storage_slots = 7 - can_hold = list(/obj/item/reagent_containers/food/snacks/monkeycube) illustration = null +/obj/item/storage/box/monkeycubes/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 7 + STR.can_hold = typecacheof(list(/obj/item/reagent_containers/food/snacks/monkeycube)) + /obj/item/storage/box/monkeycubes/PopulateContents() for(var/i in 1 to 5) new /obj/item/reagent_containers/food/snacks/monkeycube(src) @@ -394,10 +399,10 @@ illustration = "pda" /obj/item/storage/box/PDAs/PopulateContents() - new /obj/item/device/pda(src) - new /obj/item/device/pda(src) - new /obj/item/device/pda(src) - new /obj/item/device/pda(src) + new /obj/item/pda(src) + new /obj/item/pda(src) + new /obj/item/pda(src) + new /obj/item/pda(src) new /obj/item/cartridge/head(src) var/newcart = pick( /obj/item/cartridge/engineering, @@ -448,7 +453,7 @@ /obj/item/storage/box/firingpins/PopulateContents() for(var/i in 1 to 5) - new /obj/item/device/firing_pin(src) + new /obj/item/firing_pin(src) /obj/item/storage/box/lasertagpins name = "box of laser tag firing pins" @@ -457,8 +462,8 @@ /obj/item/storage/box/lasertagpins/PopulateContents() for(var/i in 1 to 3) - new /obj/item/device/firing_pin/tag/red(src) - new /obj/item/device/firing_pin/tag/blue(src) + new /obj/item/firing_pin/tag/red(src) + new /obj/item/firing_pin/tag/blue(src) /obj/item/storage/box/handcuffs name = "box of spare handcuffs" @@ -506,7 +511,7 @@ /obj/item/storage/box/mousetraps/PopulateContents() for(var/i in 1 to 6) - new /obj/item/device/assembly/mousetrap(src) + new /obj/item/assembly/mousetrap(src) /obj/item/storage/box/pillbottles name = "box of pill bottles" @@ -522,12 +527,15 @@ desc = "Eight wrappers of fun! Ages 8 and up. Not suitable for children." icon = 'icons/obj/toy.dmi' icon_state = "spbox" - storage_slots = 8 - can_hold = list(/obj/item/toy/snappop) + +/obj/item/storage/box/snappops/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.can_hold = typecacheof(list(/obj/item/toy/snappop)) + STR.max_items = 8 /obj/item/storage/box/snappops/PopulateContents() - for(var/i in 1 to storage_slots) - new /obj/item/toy/snappop(src) + SendSignal(COMSIG_TRY_STORAGE_FILL_TYPE, /obj/item/toy/snappop) /obj/item/storage/box/matches name = "matchbox" @@ -535,14 +543,17 @@ icon = 'icons/obj/cigarettes.dmi' icon_state = "matchbox" item_state = "zippo" - storage_slots = 10 w_class = WEIGHT_CLASS_TINY slot_flags = SLOT_BELT - can_hold = list(/obj/item/match) + +/obj/item/storage/box/matches/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 10 + STR.can_hold = typecacheof(list(/obj/item/match)) /obj/item/storage/box/matches/PopulateContents() - for(var/i in 1 to storage_slots) - new /obj/item/match(src) + SendSignal(COMSIG_TRY_STORAGE_FILL_TYPE, /obj/item/match) /obj/item/storage/box/matches/attackby(obj/item/match/W as obj, mob/user as mob, params) if(istype(W, /obj/item/match)) @@ -557,10 +568,14 @@ lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - storage_slots=21 - can_hold = list(/obj/item/light/tube, /obj/item/light/bulb) - max_combined_w_class = 21 - use_to_pickup = 1 // for picking up broken bulbs, not that most people will try + +/obj/item/storage/box/lights/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 21 + STR.can_hold = typecacheof(list(/obj/item/light/tube, /obj/item/light/bulb)) + STR.max_combined_w_class = 21 + STR.click_gather = TRUE /obj/item/storage/box/lights/bulbs/PopulateContents() for(var/i in 1 to 21) diff --git a/code/game/objects/items/storage/briefcase.dm b/code/game/objects/items/storage/briefcase.dm index 0703eba47a..5fdf94c1f3 100644 --- a/code/game/objects/items/storage/briefcase.dm +++ b/code/game/objects/items/storage/briefcase.dm @@ -10,13 +10,17 @@ throw_speed = 2 throw_range = 4 w_class = WEIGHT_CLASS_BULKY - max_w_class = WEIGHT_CLASS_NORMAL - max_combined_w_class = 21 attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked") resistance_flags = FLAMMABLE max_integrity = 150 var/folder_path = /obj/item/folder //this is the path of the folder that gets spawned in New() +/obj/item/storage/briefcase/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_w_class = WEIGHT_CLASS_NORMAL + STR.max_combined_w_class = 21 + /obj/item/storage/briefcase/PopulateContents() new /obj/item/pen(src) var/obj/item/folder/folder = new folder_path(src) @@ -31,20 +35,8 @@ ..() /obj/item/storage/briefcase/sniperbundle - name = "briefcase" desc = "It's label reads genuine hardened Captain leather, but suspiciously has no other tags or branding. Smells like L'Air du Temps." - icon_state = "briefcase" - flags_1 = CONDUCT_1 force = 10 - hitsound = "swing_hit" - throw_speed = 2 - throw_range = 4 - w_class = WEIGHT_CLASS_BULKY - max_w_class = WEIGHT_CLASS_NORMAL - max_combined_w_class = 21 - attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked") - resistance_flags = FLAMMABLE - max_integrity = 150 /obj/item/storage/briefcase/sniperbundle/PopulateContents() ..() // in case you need any paperwork done after your rampage diff --git a/code/game/objects/items/storage/dakis.dm b/code/game/objects/items/storage/dakis.dm index 0b7308deb6..08748bf37e 100644 --- a/code/game/objects/items/storage/dakis.dm +++ b/code/game/objects/items/storage/dakis.dm @@ -3,22 +3,26 @@ ////////////////////////////////// /obj/item/storage/daki - name = "dakimakura" + name = "dakimakura" desc = "A large pillow depicting a girl in a compromising position. Featuring as many dimensions as you." icon = 'icons/obj/daki.dmi' icon_state = "daki_base" slot_flags = SLOT_BACK - storage_slots = 3 - w_class = 4 - max_w_class = 3 - max_combined_w_class = 21 var/cooldowntime = 20 var/static/list/dakimakura_options = list("Callie","Casca","Chaika","Elisabeth","Foxy Grandpa","Haruko","Holo","Ian","Jolyne","Kurisu","Marie","Mugi","Nar'Sie","Patchouli","Plutia","Rei","Reisen","Naga","Squid","Squigly","Tomoko","Toriel","Umaru","Yaranaika","Yoko") //Kurisu is the ideal girl." - Me, Logos. +/obj/item/storage/daki/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_w_class = WEIGHT_CLASS_SMALL + STR.max_combined_w_class = 21 + STR.max_items = 3 + STR.cant_hold = typecacheof(list(/obj/item/disk/nuclear)) + /obj/item/storage/daki/attack_self(mob/living/user) var/body_choice var/custom_name - + if(icon_state == "daki_base") body_choice = input("Pick a body.") in dakimakura_options icon_state = "daki_[body_choice]" diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm index b574855f10..d669431be5 100644 --- a/code/game/objects/items/storage/fancy.dm +++ b/code/game/objects/items/storage/fancy.dm @@ -25,7 +25,8 @@ var/fancy_open = FALSE /obj/item/storage/fancy/PopulateContents() - for(var/i = 1 to storage_slots) + GET_COMPONENT(STR, /datum/component/storage) + for(var/i = 1 to STR.max_items) new spawn_type(src) /obj/item/storage/fancy/update_icon() @@ -37,7 +38,7 @@ /obj/item/storage/fancy/examine(mob/user) ..() if(fancy_open) - if(contents.len == 1) + if(length(contents) == 1) to_chat(user, "There is one [icon_type] left.") else to_chat(user, "There are [contents.len <= 0 ? "no" : "[contents.len]"] [icon_type]s left.") @@ -45,20 +46,17 @@ /obj/item/storage/fancy/attack_self(mob/user) fancy_open = !fancy_open update_icon() - -/obj/item/storage/fancy/dump_content_at(atom/dest_object, mob/user) . = ..() - if(.) - fancy_open = TRUE - update_icon() -/obj/item/storage/fancy/handle_item_insertion(obj/item/W, prevent_warning = 0, mob/user) +/obj/item/storage/fancy/Exited() + . = ..() fancy_open = TRUE - return ..() + update_icon() -/obj/item/storage/fancy/remove_from_storage(obj/item/W, atom/new_location, burn = 0) +/obj/item/storage/fancy/Entered() + . = ..() fancy_open = TRUE - return ..() + update_icon() /* * Donut Box @@ -69,11 +67,15 @@ icon_state = "donutbox6" icon_type = "donut" name = "donut box" - storage_slots = 6 - can_hold = list(/obj/item/reagent_containers/food/snacks/donut) spawn_type = /obj/item/reagent_containers/food/snacks/donut fancy_open = TRUE +/obj/item/storage/fancy/donut_box/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 6 + STR.can_hold = typecacheof(list(/obj/item/reagent_containers/food/snacks/donut)) + /* * Egg Box */ @@ -87,10 +89,14 @@ righthand_file = 'icons/mob/inhands/misc/food_righthand.dmi' name = "egg box" desc = "A carton for containing eggs." - storage_slots = 12 - can_hold = list(/obj/item/reagent_containers/food/snacks/egg) spawn_type = /obj/item/reagent_containers/food/snacks/egg +/obj/item/storage/fancy/egg_box/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 12 + STR.can_hold = typecacheof(list(/obj/item/reagent_containers/food/snacks/egg)) + /* * Candle Box */ @@ -102,12 +108,16 @@ icon_state = "candlebox5" icon_type = "candle" item_state = "candlebox5" - storage_slots = 5 throwforce = 2 slot_flags = SLOT_BELT spawn_type = /obj/item/candle fancy_open = TRUE +/obj/item/storage/fancy/candle_box/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 5 + /obj/item/storage/fancy/candle_box/attack_self(mob_user) return @@ -123,11 +133,15 @@ w_class = WEIGHT_CLASS_TINY throwforce = 0 slot_flags = SLOT_BELT - storage_slots = 6 - can_hold = list(/obj/item/clothing/mask/cigarette, /obj/item/lighter) icon_type = "cigarette" spawn_type = /obj/item/clothing/mask/cigarette/space_cigarette +/obj/item/storage/fancy/cigarettes/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 6 + STR.can_hold = typecacheof(list(/obj/item/clothing/mask/cigarette, /obj/item/lighter)) + /obj/item/storage/fancy/cigarettes/examine(mob/user) ..() to_chat(user, "Alt-click to extract contents.") @@ -137,7 +151,7 @@ return var/obj/item/clothing/mask/cigarette/W = locate(/obj/item/clothing/mask/cigarette) in contents if(W && contents.len > 0) - remove_from_storage(W, user) + SendSignal(COMSIG_TRY_STORAGE_TAKE, W, user) user.put_in_hands(W) contents -= W to_chat(user, "You take a [icon_type] out of the pack.") @@ -174,7 +188,7 @@ if(cig) if(M == user && contents.len > 0 && !user.wear_mask) var/obj/item/clothing/mask/cigarette/W = cig - remove_from_storage(W, M) + SendSignal(COMSIG_TRY_STORAGE_TAKE, W, M) M.equip_to_slot_if_possible(W, slot_wear_mask) contents -= W to_chat(user, "You take a [icon_type] out of the pack.") @@ -243,11 +257,15 @@ w_class = WEIGHT_CLASS_TINY icon = 'icons/obj/cigarettes.dmi' icon_state = "cig_paper_pack" - storage_slots = 10 icon_type = "rolling paper" - can_hold = list(/obj/item/rollingpaper) spawn_type = /obj/item/rollingpaper +/obj/item/storage/fancy/rollingpapers/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 10 + STR.can_hold = typecacheof(list(/obj/item/rollingpaper)) + /obj/item/storage/fancy/rollingpapers/update_icon() cut_overlays() if(!contents.len) @@ -263,11 +281,15 @@ icon = 'icons/obj/cigarettes.dmi' icon_state = "cigarcase" w_class = WEIGHT_CLASS_NORMAL - storage_slots = 5 - can_hold = list(/obj/item/clothing/mask/cigarette/cigar) icon_type = "premium cigar" spawn_type = /obj/item/clothing/mask/cigarette/cigar +/obj/item/storage/fancy/cigarettes/cigars/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 5 + STR.can_hold = typecacheof(list(/obj/item/clothing/mask/cigarette/cigar)) + /obj/item/storage/fancy/cigarettes/cigars/update_icon() cut_overlays() if(fancy_open) @@ -302,6 +324,10 @@ icon_type = "chocolate" lefthand_file = 'icons/mob/inhands/misc/food_lefthand.dmi' righthand_file = 'icons/mob/inhands/misc/food_righthand.dmi' - storage_slots = 8 - can_hold = list(/obj/item/reagent_containers/food/snacks/tinychocolate) spawn_type = /obj/item/reagent_containers/food/snacks/tinychocolate + +/obj/item/storage/fancy/heart_box/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 8 + STR.can_hold = typecacheof(list(/obj/item/reagent_containers/food/snacks/tinychocolate)) diff --git a/code/game/objects/items/storage/firstaid.dm b/code/game/objects/items/storage/firstaid.dm index 335ba2b211..fe46141614 100644 --- a/code/game/objects/items/storage/firstaid.dm +++ b/code/game/objects/items/storage/firstaid.dm @@ -16,7 +16,7 @@ righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' throw_speed = 3 throw_range = 7 - var/empty = 0 + var/empty = FALSE /obj/item/storage/firstaid/regular icon_state = "firstaid" @@ -35,13 +35,12 @@ new /obj/item/stack/medical/ointment(src) new /obj/item/stack/medical/ointment(src) new /obj/item/reagent_containers/hypospray/medipen(src) - new /obj/item/device/healthanalyzer(src) + new /obj/item/healthanalyzer(src) /obj/item/storage/firstaid/ancient icon_state = "firstaid" desc = "A first aid kit with the ability to heal common types of injuries." - /obj/item/storage/firstaid/ancient/PopulateContents() if(empty) return @@ -75,7 +74,7 @@ new /obj/item/reagent_containers/pill/oxandrolone(src) new /obj/item/reagent_containers/pill/oxandrolone(src) new /obj/item/reagent_containers/hypospray/medipen(src) - new /obj/item/device/healthanalyzer(src) + new /obj/item/healthanalyzer(src) /obj/item/storage/firstaid/toxin name = "toxin treatment kit" @@ -98,7 +97,7 @@ new /obj/item/reagent_containers/syringe/charcoal(src) for(var/i in 1 to 2) new /obj/item/storage/pill_bottle/charcoal(src) - new /obj/item/device/healthanalyzer(src) + new /obj/item/healthanalyzer(src) /obj/item/storage/firstaid/o2 name = "oxygen deprivation treatment kit" @@ -117,7 +116,7 @@ new /obj/item/reagent_containers/pill/salbutamol(src) new /obj/item/reagent_containers/hypospray/medipen(src) new /obj/item/reagent_containers/hypospray/medipen(src) - new /obj/item/device/healthanalyzer(src) + new /obj/item/healthanalyzer(src) /obj/item/storage/firstaid/brute name = "brute trauma treatment kit" @@ -136,13 +135,17 @@ new /obj/item/reagent_containers/pill/patch/styptic(src) new /obj/item/stack/medical/gauze(src) new /obj/item/stack/medical/gauze(src) - new /obj/item/device/healthanalyzer(src) + new /obj/item/healthanalyzer(src) /obj/item/storage/firstaid/tactical name = "combat medical kit" desc = "I hope you've got insurance." icon_state = "bezerk" - max_w_class = WEIGHT_CLASS_NORMAL + +/obj/item/storage/firstaid/tactical/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_w_class = WEIGHT_CLASS_NORMAL /obj/item/storage/firstaid/tactical/PopulateContents() if(empty) @@ -155,10 +158,10 @@ new /obj/item/reagent_containers/syringe/lethal/choral(src) new /obj/item/clothing/glasses/hud/health/night(src) - /* * Pill Bottles */ + /obj/item/storage/pill_bottle name = "pill bottle" desc = "It's an airtight container for storing medication." @@ -168,24 +171,13 @@ lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' w_class = WEIGHT_CLASS_SMALL - can_hold = list(/obj/item/reagent_containers/pill, /obj/item/dice) - allow_quick_gather = 1 - use_to_pickup = 1 -/obj/item/storage/pill_bottle/MouseDrop(obj/over_object) //Quick pillbottle fix. -Agouri - - if(ishuman(usr) || ismonkey(usr)) //Can monkeys even place items in the pocket slots? Leaving this in just in case~ - var/mob/M = usr - if(!istype(over_object, /obj/screen) || !Adjacent(M)) - return ..() - if(!M.incapacitated() && istype(over_object, /obj/screen/inventory/hand)) - var/obj/screen/inventory/hand/H = over_object - if(M.putItemFromInventoryInHandIfPossible(src, H.held_index)) - add_fingerprint(usr) - if(over_object == usr && in_range(src, usr) || usr.contents.Find(src)) - if(usr.s_active) - usr.s_active.close(usr) - src.show_to(usr) +/obj/item/storage/pill_bottle/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.allow_quick_gather = TRUE + STR.click_gather = TRUE + STR.can_hold = typecacheof(list(/obj/item/reagent_containers/pill, /obj/item/dice)) /obj/item/storage/pill_bottle/suicide_act(mob/user) user.visible_message("[user] is trying to get the cap off [src]! It looks like [user.p_theyre()] trying to commit suicide!") diff --git a/code/game/objects/items/storage/internal.dm b/code/game/objects/items/storage/internal.dm deleted file mode 100644 index 2c44f3b306..0000000000 --- a/code/game/objects/items/storage/internal.dm +++ /dev/null @@ -1,88 +0,0 @@ -/obj/item/storage/internal - storage_slots = 2 - max_w_class = WEIGHT_CLASS_SMALL - max_combined_w_class = 50 // Limited by slots, not combined weight class - w_class = WEIGHT_CLASS_BULKY - rustle_jimmies = FALSE - -/obj/item/storage/internal/Adjacent(A) - if(loc) - return loc.Adjacent(A) - -/obj/item/storage/internal/pocket - var/priority = TRUE - // TRUE if opens when clicked, like a backpack. - // FALSE if opens only when dragged on mob's icon (hidden pocket) - var/quickdraw = FALSE - // TRUE if you can quickdraw items from it with alt-click. - -/obj/item/storage/internal/pocket/New() - ..() - if(loc) - name = loc.name - -/obj/item/storage/internal/pocket/handle_item_insertion(obj/item/W, prevent_warning = 0, mob/user) - . = ..() - if(. && silent && !prevent_warning) - if(quickdraw) - to_chat(user, "You discreetly slip [W] into [src]. Alt-click [src] to remove it.") - else - to_chat(user, "You discreetly slip [W] into [src].") - -/obj/item/storage/internal/pocket/big - max_w_class = WEIGHT_CLASS_NORMAL - -/obj/item/storage/internal/pocket/small - storage_slots = 1 - -/obj/item/storage/internal/pocket/tiny - storage_slots = 1 - max_w_class = WEIGHT_CLASS_TINY - priority = FALSE - -/obj/item/storage/internal/pocket/shoes - can_hold = list( - /obj/item/kitchen/knife, /obj/item/switchblade, /obj/item/pen, - /obj/item/scalpel, /obj/item/reagent_containers/syringe, /obj/item/dnainjector, - /obj/item/reagent_containers/hypospray/medipen, /obj/item/reagent_containers/dropper, - /obj/item/implanter, /obj/item/screwdriver, /obj/item/weldingtool/mini, - /obj/item/device/firing_pin - ) - //can hold both regular pens and energy daggers. made for your every-day tactical curators/murderers. - priority = FALSE - quickdraw = TRUE - silent = TRUE - - -/obj/item/storage/internal/pocket/shoes/clown - can_hold = list( - /obj/item/kitchen/knife, /obj/item/switchblade, /obj/item/pen, - /obj/item/scalpel, /obj/item/reagent_containers/syringe, /obj/item/dnainjector, - /obj/item/reagent_containers/hypospray/medipen, /obj/item/reagent_containers/dropper, - /obj/item/implanter, /obj/item/screwdriver, /obj/item/weldingtool/mini, - /obj/item/device/firing_pin, /obj/item/bikehorn) - -/obj/item/storage/internal/pocket/small/detective - priority = TRUE // so the detectives would discover pockets in their hats - -/obj/item/storage/internal/pocket/small/detective/PopulateContents() - new /obj/item/reagent_containers/food/drinks/flask/det(src) - -/obj/item/storage/internal/pocket/pocketprotector - storage_slots = 3 - max_w_class = WEIGHT_CLASS_TINY - can_hold = list( //Same items as a PDA - /obj/item/pen, - /obj/item/toy/crayon, - /obj/item/lipstick, - /obj/item/device/flashlight/pen, - /obj/item/clothing/mask/cigarette) - -/obj/item/storage/internal/pocket/pocketprotector/cosmetology/PopulateContents() - for(var/i in 1 to 3) - new /obj/item/lipstick/random(src) - -/obj/item/storage/internal/pocket/pocketprotector/full/PopulateContents() - new /obj/item/pen/red(src) - new /obj/item/pen(src) - new /obj/item/pen/blue(src) diff --git a/code/game/objects/items/storage/lockbox.dm b/code/game/objects/items/storage/lockbox.dm index 51a0d476c3..3f8c3b24e7 100644 --- a/code/game/objects/items/storage/lockbox.dm +++ b/code/game/objects/items/storage/lockbox.dm @@ -6,29 +6,33 @@ lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' w_class = WEIGHT_CLASS_BULKY - max_w_class = WEIGHT_CLASS_NORMAL - max_combined_w_class = 14 //The sum of the w_classes of all the items in this storage item. - storage_slots = 4 req_access = list(ACCESS_ARMORY) - var/locked = TRUE var/broken = FALSE var/open = FALSE var/icon_locked = "lockbox+l" var/icon_closed = "lockbox" var/icon_broken = "lockbox+b" +/obj/item/storage/lockbox/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_w_class = WEIGHT_CLASS_NORMAL + STR.max_combined_w_class = 14 + STR.max_items = 4 /obj/item/storage/lockbox/attackby(obj/item/W, mob/user, params) + var/locked = SendSignal(COMSIG_IS_STORAGE_LOCKED) if(W.GetID()) if(broken) to_chat(user, "It appears to be broken.") return if(allowed(user)) - locked = !locked + SendSignal(COMSIG_TRY_STORAGE_SET_LOCKSTATE, !locked) + locked = SendSignal(COMSIG_IS_STORAGE_LOCKED) if(locked) icon_state = icon_locked to_chat(user, "You lock the [src.name]!") - close_all() + SendSignal(COMSIG_TRY_STORAGE_HIDE_ALL) return else icon_state = icon_closed @@ -42,51 +46,25 @@ else to_chat(user, "It's locked!") -/obj/item/storage/lockbox/MouseDrop(over_object, src_location, over_location) - if (locked) - src.add_fingerprint(usr) - to_chat(usr, "It's locked!") - return 0 - ..() - /obj/item/storage/lockbox/emag_act(mob/user) if(!broken) broken = TRUE - locked = FALSE + SendSignal(COMSIG_TRY_STORAGE_SET_LOCKSTATE, FALSE) desc += "It appears to be broken." icon_state = src.icon_broken if(user) visible_message("\The [src] has been broken by [user] with an electromagnetic card!") return -/obj/item/storage/lockbox/show_to(mob/user) - if(locked) - to_chat(user, "It's locked!") - else - ..() - return - -//Check the destination item type for contentto. -/obj/item/storage/lockbox/storage_contents_dump_act(obj/item/storage/src_object, mob/user) - if(locked) - to_chat(user, "It's locked!") - return null - open = TRUE - return ..() - -/obj/item/storage/lockbox/can_be_inserted(obj/item/W, stop_messages = 0) - if(locked) - return 0 - return ..() - -/obj/item/storage/lockbox/handle_item_insertion(obj/item/W, prevent_warning = 0, mob/user) +/obj/item/storage/lockbox/Entered() + . = ..() open = TRUE update_icon() - return ..() -/obj/item/storage/lockbox/remove_from_storage(obj/item/W, atom/new_location, burn = 0) + +/obj/item/storage/lockbox/Exited() + . = ..() open = TRUE update_icon() - return ..() /obj/item/storage/lockbox/loyalty name = "lockbox of mindshield implants" @@ -97,7 +75,6 @@ new /obj/item/implantcase/mindshield(src) new /obj/item/implanter/mindshield(src) - /obj/item/storage/lockbox/clusterbang name = "lockbox of clusterbangs" desc = "You have a bad feeling about opening this." @@ -114,23 +91,28 @@ lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' w_class = WEIGHT_CLASS_NORMAL - max_w_class = WEIGHT_CLASS_SMALL - storage_slots = 10 - max_combined_w_class = 20 req_access = list(ACCESS_CAPTAIN) icon_locked = "medalbox+l" icon_closed = "medalbox" icon_broken = "medalbox+b" - can_hold = list(/obj/item/clothing/accessory/medal) + +/obj/item/storage/lockbox/medal/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_w_class = WEIGHT_CLASS_SMALL + STR.max_items = 10 + STR.max_combined_w_class = 20 + STR.can_hold = typecacheof(list(/obj/item/clothing/accessory/medal)) /obj/item/storage/lockbox/medal/examine(mob/user) ..() + var/locked = SendSignal(COMSIG_IS_STORAGE_LOCKED) if(!locked) to_chat(user, "Alt-click to [open ? "close":"open"] it.") /obj/item/storage/lockbox/medal/AltClick(mob/user) if(user.canUseTopic(src, BE_CLOSE)) - if(!locked) + if(!SendSignal(COMSIG_IS_STORAGE_LOCKED)) open = (open ? FALSE : TRUE) update_icon() ..() @@ -148,6 +130,7 @@ /obj/item/storage/lockbox/medal/update_icon() cut_overlays() + var/locked = SendSignal(COMSIG_IS_STORAGE_LOCKED) if(locked) icon_state = "medalbox+l" open = FALSE diff --git a/code/game/objects/items/storage/secure.dm b/code/game/objects/items/storage/secure.dm index 1a0474b94d..806f22a2dc 100644 --- a/code/game/objects/items/storage/secure.dm +++ b/code/game/objects/items/storage/secure.dm @@ -15,7 +15,6 @@ var/icon_locking = "secureb" var/icon_sparking = "securespark" var/icon_opened = "secure0" - var/locked = TRUE var/code = "" var/l_code = null var/l_set = 0 @@ -23,16 +22,20 @@ var/l_hacking = 0 var/open = FALSE w_class = WEIGHT_CLASS_NORMAL - max_w_class = WEIGHT_CLASS_SMALL - max_combined_w_class = 14 desc = "This shouldn't exist. If it does, create an issue report." +/obj/item/storage/secure/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_w_class = WEIGHT_CLASS_SMALL + STR.max_combined_w_class = 14 + /obj/item/storage/secure/examine(mob/user) ..() to_chat(user, text("The service panel is currently [open ? "unscrewed" : "screwed shut"].")) /obj/item/storage/secure/attackby(obj/item/W, mob/user, params) - if(locked) + if(SendSignal(COMSIG_IS_STORAGE_LOCKED)) if (istype(W, /obj/item/screwdriver)) if (W.use_tool(src, user, 20)) open =! open @@ -40,16 +43,16 @@ return if (istype(W, /obj/item/wirecutters)) to_chat(user, "[src] is protected from this sort of tampering, yet it appears the internal memory wires can still be pulsed.") - if ((istype(W, /obj/item/device/multitool)) && (!l_hacking)) - if(src.open == 1) + if ((istype(W, /obj/item/multitool)) && (!l_hacking)) + if(open == 1) to_chat(user, "Now attempting to reset internal memory, please hold.") - src.l_hacking = 1 + l_hacking = 1 if (W.use_tool(src, user, 400)) to_chat(user, "Internal memory reset - lock has been disengaged.") - src.l_set = 0 - src.l_hacking = 0 + l_set = 0 + l_hacking = 0 else - src.l_hacking = 0 + l_hacking = 0 else to_chat(user, "You must unscrew the service panel before you can pulse the wiring.") return @@ -60,23 +63,17 @@ // -> storage/attackby() what with handle insertion, etc return ..() -/obj/item/storage/secure/MouseDrop(over_object, src_location, over_location) - if (locked) - src.add_fingerprint(usr) - to_chat(usr, "It's locked!") - return 0 - ..() - /obj/item/storage/secure/attack_self(mob/user) + var/locked = SendSignal(COMSIG_IS_STORAGE_LOCKED) user.set_machine(src) - var/dat = text("[]
    \n\nLock Status: []",src, (src.locked ? "LOCKED" : "UNLOCKED")) + var/dat = text("[]
    \n\nLock Status: []",src, (locked ? "LOCKED" : "UNLOCKED")) var/message = "Code" - if ((src.l_set == 0) && (!src.l_setshort)) + if ((l_set == 0) && (!l_setshort)) dat += text("

    \n5-DIGIT PASSCODE NOT SET.
    ENTER NEW PASSCODE.
    ") - if (src.l_setshort) + if (l_setshort) dat += text("

    \nALERT: MEMORY SYSTEM ERROR - 6040 201") - message = text("[]", src.code) - if (!src.locked) + message = text("[]", code) + if (!locked) message = "*****" dat += text("


    \n>[]
    \n1-2-3
    \n4-5-6
    \n7-8-9
    \nR-0-E
    \n
    ", message) user << browse(dat, "window=caselock;size=300x280") @@ -87,44 +84,33 @@ return if (href_list["type"]) if (href_list["type"] == "E") - if ((src.l_set == 0) && (length(src.code) == 5) && (!src.l_setshort) && (src.code != "ERROR")) - src.l_code = src.code - src.l_set = 1 - else if ((src.code == src.l_code) && (src.l_set == 1)) - src.locked = FALSE + if ((l_set == 0) && (length(code) == 5) && (!l_setshort) && (code != "ERROR")) + l_code = code + l_set = 1 + else if ((code == l_code) && (l_set == 1)) + SendSignal(COMSIG_TRY_STORAGE_SET_LOCKSTATE, FALSE) cut_overlays() add_overlay(icon_opened) - src.code = null + code = null else - src.code = "ERROR" + code = "ERROR" else - if ((href_list["type"] == "R") && (!src.l_setshort)) - src.locked = TRUE + if ((href_list["type"] == "R") && (!l_setshort)) + SendSignal(COMSIG_TRY_STORAGE_SET_LOCKSTATE, TRUE) cut_overlays() - src.code = null - src.close(usr) + code = null + SendSignal(COMSIG_TRY_STORAGE_HIDE_FROM, usr) else - src.code += text("[]", sanitize_text(href_list["type"])) - if (length(src.code) > 5) - src.code = "ERROR" - src.add_fingerprint(usr) - for(var/mob/M in viewers(1, src.loc)) + code += text("[]", sanitize_text(href_list["type"])) + if (length(code) > 5) + code = "ERROR" + add_fingerprint(usr) + for(var/mob/M in viewers(1, loc)) if ((M.client && M.machine == src)) - src.attack_self(M) + attack_self(M) return return -/obj/item/storage/secure/storage_contents_dump_act(obj/item/storage/src_object, mob/user) - if(locked) - to_chat(user, "It's locked!") - return null - return ..() - -/obj/item/storage/secure/can_be_inserted(obj/item/W, stop_messages = 0) - if(locked) - return 0 - return ..() - // ----------------------------- // Secure Briefcase @@ -142,20 +128,17 @@ throw_speed = 2 throw_range = 4 w_class = WEIGHT_CLASS_BULKY - max_w_class = WEIGHT_CLASS_NORMAL - max_combined_w_class = 21 attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked") /obj/item/storage/secure/briefcase/PopulateContents() new /obj/item/paper(src) new /obj/item/pen(src) -/obj/item/storage/secure/briefcase/attack_hand(mob/user) - if ((src.loc == user) && (src.locked == 1)) - to_chat(usr, "[src] is locked and cannot be opened!") - add_fingerprint(user) - else - ..() +/obj/item/storage/secure/briefcase/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_combined_w_class = 21 + STR.max_w_class = WEIGHT_CLASS_NORMAL //Syndie variant of Secure Briefcase. Contains space cash, slightly more robust. /obj/item/storage/secure/briefcase/syndie @@ -163,7 +146,8 @@ /obj/item/storage/secure/briefcase/syndie/PopulateContents() ..() - for(var/i = 0, i < storage_slots - 2, i++) + GET_COMPONENT(STR, /datum/component/storage) + for(var/i = 0, i < STR.max_items - 2, i++) new /obj/item/stack/spacecash/c1000(src) @@ -181,16 +165,23 @@ desc = "Excellent for securing things away from grubby hands." force = 8 w_class = WEIGHT_CLASS_GIGANTIC - max_w_class = 8 anchored = TRUE density = FALSE - cant_hold = list(/obj/item/storage/secure/briefcase) + +/obj/item/storage/secure/safe/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.cant_hold = typecacheof(list(/obj/item/storage/secure/briefcase)) + STR.max_w_class = 8 //?? /obj/item/storage/secure/safe/PopulateContents() new /obj/item/paper(src) new /obj/item/pen(src) /obj/item/storage/secure/safe/attack_hand(mob/user) + . = ..() + if(.) + return return attack_self(user) /obj/item/storage/secure/safe/HoS diff --git a/code/game/objects/items/storage/storage.dm b/code/game/objects/items/storage/storage.dm index ff1c1331e2..7c2694016b 100644 --- a/code/game/objects/items/storage/storage.dm +++ b/code/game/objects/items/storage/storage.dm @@ -1,583 +1,23 @@ -// External storage-related logic: -// /mob/proc/ClickOn() in /_onclick/click.dm - clicking items in storages -// /mob/living/Move() in /modules/mob/living/living.dm - hiding storage boxes on mob movement -// /item/attackby() in /game/objects/items.dm - use_to_pickup and allow_quick_gather functionality -// -- c0 - /obj/item/storage name = "storage" icon = 'icons/obj/storage.dmi' w_class = WEIGHT_CLASS_NORMAL - var/silent = 0 // No message on putting items in - var/list/can_hold = new/list() //Typecache of objects which this item can store (if set, it can't store anything else) - var/list/cant_hold = new/list() //Typecache of objects which this item can't store - var/list/is_seeing = new/list() //List of mobs which are currently seeing the contents of this item's storage - var/max_w_class = WEIGHT_CLASS_SMALL //Max size of objects that this object can store (in effect only if can_hold isn't set) - var/max_combined_w_class = 14 //The sum of the w_classes of all the items in this storage item. - var/storage_slots = 7 //The number of storage slots in this container. - var/obj/screen/storage/boxes = null - var/obj/screen/close/closer = null - var/use_to_pickup //Set this to make it possible to use this item in an inverse way, so you can have the item in your hand and click items on the floor to pick them up. - var/display_contents_with_number //Set this to make the storage item group contents of the same type and display them as a number. - var/allow_quick_empty //Set this variable to allow the object to have the 'empty' verb, which dumps all the contents on the floor. - var/allow_quick_gather //Set this variable to allow the object to have the 'toggle mode' verb, which quickly collects all items from a tile. - var/collection_mode = 1; //0 = pick one at a time, 1 = pick all on tile, 2 = pick all of a type - var/preposition = "in" // You put things 'in' a bag, but trays need 'on'. - var/rustle_jimmies = TRUE //Play the rustle sound on insertion - - -/obj/item/storage/MouseDrop(atom/over_object) - if(ismob(usr)) //all the check for item manipulation are in other places, you can safely open any storages as anything and its not buggy, i checked - var/mob/M = usr - - if(!over_object) - return - - if (ismecha(M.loc)) // stops inventory actions in a mech - return - - // this must come before the screen objects only block, dunno why it wasn't before - if(over_object == M && M.CanReach(src,view_only = TRUE)) - orient2hud(M) - if(M.s_active) - M.s_active.close(M) - show_to(M) - return - - if(!M.incapacitated()) - if(!istype(over_object, /obj/screen)) - return dump_content_at(over_object, M) - - if(loc != usr || (loc && loc.loc == usr)) - return - - playsound(loc, "rustle", 50, 1, -5) - - if(istype(over_object, /obj/screen/inventory/hand)) - var/obj/screen/inventory/hand/H = over_object - M.putItemFromInventoryInHandIfPossible(src, H.held_index) - - add_fingerprint(usr) - - -/obj/item/storage/MouseDrop_T(atom/movable/O, mob/user) - if(isitem(O)) - var/obj/item/I = O - if(iscarbon(user) || isdrone(user)) - var/mob/living/L = user - if(!L.incapacitated() && I == L.get_active_held_item()) - if(can_be_inserted(I, 0)) - handle_item_insertion(I, 0 , L) - + var/component_type = /datum/component/storage/concrete /obj/item/storage/get_dumping_location(obj/item/storage/source,mob/user) return src -//Tries to dump content -/obj/item/storage/proc/dump_content_at(atom/dest_object, mob/user) - var/atom/dump_destination = dest_object.get_dumping_location() - if(Adjacent(user) && dump_destination && user.Adjacent(dump_destination)) - if(dump_destination.storage_contents_dump_act(src, user)) - playsound(loc, "rustle", 50, 1, -5) - return 1 - return 0 +/obj/item/storage/Initialize() + . = ..() + PopulateContents() -//Object behaviour on storage dump -/obj/item/storage/storage_contents_dump_act(obj/item/storage/src_object, mob/user) - var/list/things = src_object.contents.Copy() - var/datum/progressbar/progress = new(user, things.len, src) - while (do_after(user, 10, TRUE, src, FALSE, CALLBACK(src, .proc/handle_mass_item_insertion, things, src_object, user, progress))) - stoplag(1) - qdel(progress) - orient2hud(user) - src_object.orient2hud(user) - if(user.s_active) //refresh the HUD to show the transfered contents - user.s_active.close(user) - user.s_active.show_to(user) - return 1 - -/obj/item/storage/proc/handle_mass_item_insertion(list/things, obj/item/storage/src_object, mob/user, datum/progressbar/progress) - for(var/obj/item/I in things) - things -= I - if(I.loc != src_object) - continue - if(user.s_active != src_object) - if(I.on_found(user)) - break - if(can_be_inserted(I,0,user)) - handle_item_insertion(I, TRUE, user) - if (TICK_CHECK) - progress.update(progress.goal - things.len) - return TRUE - - progress.update(progress.goal - things.len) - return FALSE - -/obj/item/storage/proc/return_inv() - var/list/L = list() - L += contents - - for(var/obj/item/storage/S in src) - L += S.return_inv() - return L - - -/obj/item/storage/proc/show_to(mob/user) - if(!user.client) - return - if(user.s_active != src && (user.stat == CONSCIOUS)) - for(var/obj/item/I in src) - if(I.on_found(user)) - return - if(user.s_active) - user.s_active.hide_from(user) - user.client.screen |= boxes - user.client.screen |= closer - user.client.screen |= contents - user.s_active = src - is_seeing |= user - - -/obj/item/storage/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback) - close_all() - return ..() - -/obj/item/storage/proc/hide_from(mob/user) - if(!user.client) - return - user.client.screen -= boxes - user.client.screen -= closer - user.client.screen -= contents - if(user.s_active == src) - user.s_active = null - is_seeing -= user - - -/obj/item/storage/proc/can_see_contents() - var/list/cansee = list() - for(var/mob/M in is_seeing) - if(M.s_active == src && M.client) - cansee |= M - else - is_seeing -= M - return cansee - - -/obj/item/storage/proc/close(mob/user) - hide_from(user) - user.s_active = null - - -/obj/item/storage/proc/close_all() - for(var/mob/M in can_see_contents()) - close(M) - . = 1 //returns 1 if any mobs actually got a close(M) call - - -//This proc draws out the inventory and places the items on it. tx and ty are the upper left tile and mx, my are the bottm right. -//The numbers are calculated from the bottom-left The bottom-left slot being 1,1. -/obj/item/storage/proc/orient_objs(tx, ty, mx, my) - var/cx = tx - var/cy = ty - boxes.screen_loc = "[tx]:,[ty] to [mx],[my]" - for(var/obj/O in contents) - if(QDELETED(O)) - continue - O.screen_loc = "[cx],[cy]" - O.layer = ABOVE_HUD_LAYER - O.plane = ABOVE_HUD_PLANE - cx++ - if(cx > mx) - cx = tx - cy-- - closer.screen_loc = "[mx+1],[my]" - - -//This proc draws out the inventory and places the items on it. It uses the standard position. -/obj/item/storage/proc/standard_orient_objs(rows, cols, list/obj/item/display_contents) - var/cx = 4 - var/cy = 2+rows - boxes.screen_loc = "4:16,2:16 to [4+cols]:16,[2+rows]:16" - - if(display_contents_with_number) - for(var/datum/numbered_display/ND in display_contents) - ND.sample_object.mouse_opacity = MOUSE_OPACITY_OPAQUE - ND.sample_object.screen_loc = "[cx]:16,[cy]:16" - ND.sample_object.maptext = "[(ND.number > 1)? "[ND.number]" : ""]" - ND.sample_object.layer = ABOVE_HUD_LAYER - ND.sample_object.plane = ABOVE_HUD_PLANE - cx++ - if(cx > (4+cols)) - cx = 4 - cy-- - else - for(var/obj/O in contents) - if(QDELETED(O)) - continue - O.mouse_opacity = MOUSE_OPACITY_OPAQUE //This is here so storage items that spawn with contents correctly have the "click around item to equip" - O.screen_loc = "[cx]:16,[cy]:16" - O.maptext = "" - O.layer = ABOVE_HUD_LAYER - O.plane = ABOVE_HUD_PLANE - cx++ - if(cx > (4+cols)) - cx = 4 - cy-- - closer.screen_loc = "[4+cols+1]:16,2:16" - - -/datum/numbered_display - var/obj/item/sample_object - var/number - -/datum/numbered_display/New(obj/item/sample) - if(!istype(sample)) - qdel(src) - sample_object = sample - number = 1 - - -//This proc determines the size of the inventory to be displayed. Please touch it only if you know what you're doing. -/obj/item/storage/proc/orient2hud(mob/user) - var/adjusted_contents = contents.len - - //Numbered contents display - var/list/datum/numbered_display/numbered_contents - if(display_contents_with_number) - numbered_contents = list() - adjusted_contents = 0 - for(var/obj/item/I in contents) - if(QDELETED(I)) - continue - var/found = 0 - for(var/datum/numbered_display/ND in numbered_contents) - if(ND.sample_object.type == I.type) - ND.number++ - found = 1 - break - if(!found) - adjusted_contents++ - numbered_contents.Add( new/datum/numbered_display(I) ) - - var/row_num = 0 - var/col_count = min(7,storage_slots) -1 - if(adjusted_contents > 7) - row_num = round((adjusted_contents-1) / 7) // 7 is the maximum allowed width. - standard_orient_objs(row_num, col_count, numbered_contents) - - -//This proc return 1 if the item can be picked up and 0 if it can't. -//Set the stop_messages to stop it from printing messages -/obj/item/storage/proc/can_be_inserted(obj/item/W, stop_messages = 0, mob/user) - if(!istype(W) || (W.flags_1 & ABSTRACT_1)) - return //Not an item - - if(loc == W) - return 0 //Means the item is already in the storage item - if(contents.len >= storage_slots) - if(!stop_messages) - to_chat(usr, "[src] is full, make some space!") - return 0 //Storage item is full - - if(can_hold.len) - if(!is_type_in_typecache(W, can_hold)) - if(!stop_messages) - to_chat(usr, "[src] cannot hold [W]!") - return 0 - - if(is_type_in_typecache(W, cant_hold)) //Check for specific items which this container can't hold. - if(!stop_messages) - to_chat(usr, "[src] cannot hold [W]!") - return 0 - - if(W.w_class > max_w_class) - if(!stop_messages) - to_chat(usr, "[W] is too big for [src]!") - return 0 - - var/sum_w_class = W.w_class - for(var/obj/item/I in contents) - sum_w_class += I.w_class //Adds up the combined w_classes which will be in the storage item if the item is added to it. - - if(sum_w_class > max_combined_w_class) - if(!stop_messages) - to_chat(usr, "[W] won't fit in [src], make some space!") - return 0 - - if(W.w_class >= w_class && (istype(W, /obj/item/storage))) - if(!istype(src, /obj/item/storage/backpack/holding)) //bohs should be able to hold backpacks again. The override for putting a boh in a boh is in backpack.dm. - if(!stop_messages) - to_chat(usr, "[src] cannot hold [W] as it's a storage item of the same size!") - return 0 //To prevent the stacking of same sized storage items. - - if(W.flags_1 & NODROP_1) //SHOULD be handled in unEquip, but better safe than sorry. - to_chat(usr, "\the [W] is stuck to your hand, you can't put it in \the [src]!") - return 0 - - return 1 - - -//This proc handles items being inserted. It does not perform any checks of whether an item can or can't be inserted. That's done by can_be_inserted() -//The stop_warning parameter will stop the insertion message from being displayed. It is intended for cases where you are inserting multiple items at once, -//such as when picking up all the items on a tile with one click. -/obj/item/storage/proc/handle_item_insertion(obj/item/W, prevent_warning = 0, mob/user) - if(!istype(W)) - return 0 - if(usr) - if(!usr.transferItemToLoc(W, src)) - return 0 - else - W.forceMove(src) - if(silent) - prevent_warning = 1 - if(W.pulledby) - W.pulledby.stop_pulling() - W.on_enter_storage(src) - if(usr) - if(usr.client && usr.s_active != src) - usr.client.screen -= W - if(usr.observers && usr.observers.len) - for(var/M in usr.observers) - var/mob/dead/observe = M - if(observe.client && observe.s_active != src) - observe.client.screen -= W - - add_fingerprint(usr) - if(rustle_jimmies && !prevent_warning) - playsound(src.loc, "rustle", 50, 1, -5) - - if(!prevent_warning) - for(var/mob/M in viewers(usr, null)) - if(M == usr) - to_chat(usr, "You put [W] [preposition]to [src].") - else if(in_range(M, usr)) //If someone is standing close enough, they can tell what it is... - M.show_message("[usr] puts [W] [preposition]to [src].", 1) - else if(W && W.w_class >= 3) //Otherwise they can only see large or normal items from a distance... - M.show_message("[usr] puts [W] [preposition]to [src].", 1) - - orient2hud(usr) - for(var/mob/M in can_see_contents()) - show_to(M) - W.mouse_opacity = MOUSE_OPACITY_OPAQUE //So you can click on the area around the item to equip it, instead of having to pixel hunt - update_icon() - return 1 - - -//Call this proc to handle the removal of an item from the storage item. The item will be moved to the new_location target, if that is null it's being deleted -/obj/item/storage/proc/remove_from_storage(obj/item/W, atom/new_location) - if(!istype(W)) - return 0 - - //Cache this as it should be reusable down the bottom, will not apply if anyone adds a sleep to dropped - //or moving objects, things that should never happen - var/list/seeing_mobs = can_see_contents() - for(var/mob/M in seeing_mobs) - M.client.screen -= W - - if(ismob(loc)) - var/mob/M = loc - W.dropped(M) - - - if(new_location) - W.forceMove(new_location) - //Reset the items values - W.layer = initial(W.layer) - W.plane = initial(W.plane) - W.mouse_opacity = initial(W.mouse_opacity) - if(W.maptext) - W.maptext = "" - //We don't want to call this if the item is being destroyed - W.on_exit_storage(src) - - else - //Being destroyed, just move to nullspace now (so it's not in contents for the icon update) - W.moveToNullspace() - - - for(var/mob/M in seeing_mobs) - orient2hud(M) - show_to(M) - - update_icon() - return 1 - -/obj/item/storage/deconstruct(disassembled = TRUE) - var/drop_loc = loc - if(ismob(loc)) - drop_loc = get_turf(src) - for(var/obj/item/I in contents) - remove_from_storage(I, drop_loc) - qdel(src) - -//This proc is called when you want to place an item into the storage item. -/obj/item/storage/attackby(obj/item/W, mob/user, params) - ..() - if(istype(W, /obj/item/hand_labeler)) - var/obj/item/hand_labeler/labeler = W - if(labeler.mode) - return 0 - . = 1 //no afterattack - if(iscyborg(user)) - return //Robots can't interact with storage items. - - if(!can_be_inserted(W, 0 , user)) - return 1 - - handle_item_insertion(W, 0 , user) +/obj/item/storage/ComponentInitialize() + AddComponent(component_type) /obj/item/storage/AllowDrop() return TRUE -/obj/item/storage/attack_hand(mob/user) - if(user.s_active == src && loc == user) //if you're already looking inside the storage item - user.s_active.close(user) - close(user) - return - - if(rustle_jimmies) - playsound(loc, "rustle", 50, 1, -5) - - if(ishuman(user)) - var/mob/living/carbon/human/H = user - if(H.l_store == src && !H.get_active_held_item()) //Prevents opening if it's in a pocket. - H.put_in_hands(src) - H.l_store = null - return - if(H.r_store == src && !H.get_active_held_item()) - H.put_in_hands(src) - H.r_store = null - return - - orient2hud(user) - if(loc == user) - if(user.s_active) - user.s_active.close(user) - show_to(user) - else - ..() - for(var/mob/M in range(1)) - if(M.s_active == src) - close(M) - add_fingerprint(user) - -/obj/item/storage/attack_paw(mob/user) - return attack_hand(user) - -/obj/item/storage/verb/toggle_gathering_mode() - set name = "Switch Gathering Method" - set category = "Object" - - if(usr.stat || !usr.canmove || usr.restrained()) - return - - collection_mode = (collection_mode+1)%3 - switch (collection_mode) - if(2) - to_chat(usr, "[src] now picks up all items of a single type at once.") - if(1) - to_chat(usr, "[src] now picks up all items in a tile at once.") - if(0) - to_chat(usr, "[src] now picks up one item at a time.") - -// Empty all the contents onto the current turf -/obj/item/storage/verb/quick_empty() - set name = "Empty Contents" - set category = "Object" - - if((!ishuman(usr) && (loc != usr)) || usr.stat || usr.restrained() ||!usr.canmove) - return - var/turf/T = get_turf(src) - var/list/things = contents.Copy() - var/datum/progressbar/progress = new(usr, things.len, T) - while (do_after(usr, 10, TRUE, T, FALSE, CALLBACK(src, .proc/mass_remove_from_storage, T, things, progress))) - stoplag(1) - qdel(progress) - -/obj/item/storage/proc/mass_remove_from_storage(atom/target, list/things, datum/progressbar/progress) - for(var/obj/item/I in things) - things -= I - if (I.loc != src) - continue - remove_from_storage(I, target) - if (TICK_CHECK) - progress.update(progress.goal - things.len) - return TRUE - - progress.update(progress.goal - things.len) - return FALSE - -// Empty all the contents onto the current turf, without checking the user's status. -/obj/item/storage/proc/do_quick_empty() - var/turf/T = get_turf(src) - if(usr) - hide_from(usr) - for(var/obj/item/I in contents) - remove_from_storage(I, T) - - -/obj/item/storage/Initialize(mapload) - . = ..() - - can_hold = typecacheof(can_hold) - cant_hold = typecacheof(cant_hold) - - if(allow_quick_empty) - verbs += /obj/item/storage/verb/quick_empty - else - verbs -= /obj/item/storage/verb/quick_empty - - if(allow_quick_gather) - verbs += /obj/item/storage/verb/toggle_gathering_mode - else - verbs -= /obj/item/storage/verb/toggle_gathering_mode - - boxes = new /obj/screen/storage() - boxes.name = "storage" - boxes.master = src - boxes.icon_state = "block" - boxes.screen_loc = "7,7 to 10,8" - boxes.layer = HUD_LAYER - boxes.plane = HUD_PLANE - closer = new /obj/screen/close() - closer.master = src - closer.icon_state = "backpack_close" - closer.layer = ABOVE_HUD_LAYER - closer.plane = ABOVE_HUD_PLANE - orient2hud() - - PopulateContents() - - -/obj/item/storage/Destroy() - for(var/obj/O in contents) - O.mouse_opacity = initial(O.mouse_opacity) - - close_all() - qdel(boxes) - qdel(closer) - return ..() - - -/obj/item/storage/emp_act(severity) - if(!isliving(loc)) - for(var/obj/O in contents) - O.emp_act(severity) - ..() - - -/obj/item/storage/attack_self(mob/user) - //Clicking on itself will empty it, if it has the verb to do that. - if(user.get_active_held_item() == src) - if(verbs.Find(/obj/item/storage/verb/quick_empty)) - quick_empty() - -/obj/item/storage/handle_atom_del(atom/A) - if(A in contents) - usr = null - remove_from_storage(A, null) - /obj/item/storage/contents_explosion(severity, target) for(var/atom/A in contents) A.ex_act(severity, target) diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index 74c559117f..c78a20a0ef 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -48,12 +48,12 @@ new /obj/item/extinguisher/mini(src) switch(rand(1,3)) if(1) - new /obj/item/device/flashlight(src) + new /obj/item/flashlight(src) if(2) - new /obj/item/device/flashlight/glowstick(src) + new /obj/item/flashlight/glowstick(src) if(3) - new /obj/item/device/flashlight/flare(src) - new /obj/item/device/radio/off(src) + new /obj/item/flashlight/flare(src) + new /obj/item/radio/off(src) /obj/item/storage/toolbox/emergency/old name = "rusty red toolbox" @@ -70,7 +70,7 @@ new /obj/item/wrench(src) new /obj/item/weldingtool(src) new /obj/item/crowbar(src) - new /obj/item/device/analyzer(src) + new /obj/item/analyzer(src) new /obj/item/wirecutters(src) /obj/item/storage/toolbox/mechanical/old @@ -96,7 +96,7 @@ var/pickedcolor = pick("red","yellow","green","blue","pink","orange","cyan","white") new /obj/item/screwdriver(src) new /obj/item/wirecutters(src) - new /obj/item/device/t_scanner(src) + new /obj/item/t_scanner(src) new /obj/item/crowbar(src) new /obj/item/stack/cable_coil(src,30,pickedcolor) new /obj/item/stack/cable_coil(src,30,pickedcolor) @@ -109,17 +109,21 @@ name = "suspicious looking toolbox" icon_state = "syndicate" item_state = "toolbox_syndi" - silent = 1 force = 15 throwforce = 18 +/obj/item/storage/toolbox/syndicate/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.silent = TRUE + /obj/item/storage/toolbox/syndicate/PopulateContents() new /obj/item/screwdriver/nuke(src) new /obj/item/wrench(src) new /obj/item/weldingtool/largetank(src) new /obj/item/crowbar/red(src) new /obj/item/wirecutters(src, "red") - new /obj/item/device/multitool(src) + new /obj/item/multitool(src) new /obj/item/clothing/gloves/combat(src) /obj/item/storage/toolbox/drone @@ -135,7 +139,7 @@ new /obj/item/crowbar(src) new /obj/item/stack/cable_coil(src,30,pickedcolor) new /obj/item/wirecutters(src) - new /obj/item/device/multitool(src) + new /obj/item/multitool(src) /obj/item/storage/toolbox/brass name = "brass box" @@ -145,12 +149,16 @@ has_latches = FALSE resistance_flags = FIRE_PROOF | ACID_PROOF w_class = WEIGHT_CLASS_HUGE - max_w_class = WEIGHT_CLASS_NORMAL - max_combined_w_class = 28 - storage_slots = 28 attack_verb = list("robusted", "crushed", "smashed") var/fabricator_type = /obj/item/clockwork/replica_fabricator/scarab +/obj/item/storage/toolbox/brass/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_w_class = WEIGHT_CLASS_NORMAL + STR.max_combined_w_class = 28 + STR.max_items = 28 + /obj/item/storage/toolbox/brass/prefilled/PopulateContents() new fabricator_type(src) new /obj/item/screwdriver/brass(src) @@ -180,10 +188,14 @@ desc = "A toolbox painted bright green. Why anyone would store art supplies in a toolbox is beyond you, but it has plenty of extra space." icon_state = "green" item_state = "artistic_toolbox" - max_combined_w_class = 20 - storage_slots = 10 w_class = WEIGHT_CLASS_GIGANTIC //Holds more than a regular toolbox! +/obj/item/storage/toolbox/artistic/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_combined_w_class = 20 + STR.max_items = 10 + /obj/item/storage/toolbox/artistic/PopulateContents() new/obj/item/storage/crayons(src) new/obj/item/crowbar(src) diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index 62aebeda12..ec92961387 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -7,20 +7,20 @@ new /obj/item/clothing/mask/chameleon(src) // Goes with above new /obj/item/card/id/syndicate(src) // 2 tc new /obj/item/clothing/shoes/chameleon/noslip(src) // 2 tc - new /obj/item/device/camera_bug(src) // 1 tc - new /obj/item/device/multitool/ai_detect(src) // 1 tc - new /obj/item/device/encryptionkey/syndicate(src) // 2 tc + new /obj/item/camera_bug(src) // 1 tc + new /obj/item/multitool/ai_detect(src) // 1 tc + new /obj/item/encryptionkey/syndicate(src) // 2 tc new /obj/item/reagent_containers/syringe/mulligan(src) // 4 tc new /obj/item/switchblade(src) //I'll count this as 2 tc new /obj/item/storage/fancy/cigarettes/cigpack_syndicate (src) // 2 tc this shit heals - new /obj/item/device/flashlight/emp(src) // 2 tc - new /obj/item/device/chameleon(src) // 7 tc + new /obj/item/flashlight/emp(src) // 2 tc + new /obj/item/chameleon(src) // 7 tc if("stealth") // 31 tc new /obj/item/gun/energy/kinetic_accelerator/crossbow(src) new /obj/item/pen/sleepy(src) - new /obj/item/device/healthanalyzer/rad_laser(src) - new /obj/item/device/chameleon(src) + new /obj/item/healthanalyzer/rad_laser(src) + new /obj/item/chameleon(src) new /obj/item/soap/syndie(src) new /obj/item/clothing/glasses/thermal/syndi(src) @@ -34,12 +34,12 @@ new /obj/item/reagent_containers/syringe/stimulants(src) if("screwed") // 29 tc - new /obj/item/device/sbeacondrop/bomb(src) + new /obj/item/sbeacondrop/bomb(src) new /obj/item/grenade/syndieminibomb(src) - new /obj/item/device/sbeacondrop/powersink(src) + new /obj/item/sbeacondrop/powersink(src) new /obj/item/clothing/suit/space/syndicate/black/red(src) new /obj/item/clothing/head/helmet/space/syndicate/black/red(src) - new /obj/item/device/encryptionkey/syndicate(src) + new /obj/item/encryptionkey/syndicate(src) if("guns") // 28 tc now new /obj/item/gun/ballistic/revolver(src) @@ -56,7 +56,7 @@ new /obj/item/clothing/glasses/thermal/syndi(src) new /obj/item/card/emag(src) new /obj/item/clothing/shoes/chameleon/noslip(src) - new /obj/item/device/encryptionkey/syndicate(src) + new /obj/item/encryptionkey/syndicate(src) new /obj/item/grenade/syndieminibomb(src) if("implant") // 55+ tc holy shit what the fuck this is a lottery disguised as fun boxes isn't it? @@ -70,12 +70,12 @@ if("hacker") // 26 tc new /obj/item/aiModule/syndicate(src) new /obj/item/card/emag(src) - new /obj/item/device/encryptionkey/binary(src) + new /obj/item/encryptionkey/binary(src) new /obj/item/aiModule/toyAI(src) - new /obj/item/device/multitool/ai_detect(src) + new /obj/item/multitool/ai_detect(src) if("lordsingulo") // 24 tc - new /obj/item/device/sbeacondrop(src) + new /obj/item/sbeacondrop(src) new /obj/item/clothing/suit/space/syndicate/black/red(src) new /obj/item/clothing/head/helmet/space/syndicate/black/red(src) new /obj/item/card/emag(src) @@ -83,10 +83,10 @@ if("sabotage") // 26 tc now new /obj/item/grenade/plastic/c4 (src) new /obj/item/grenade/plastic/c4 (src) - new /obj/item/device/doorCharge(src) - new /obj/item/device/doorCharge(src) - new /obj/item/device/camera_bug(src) - new /obj/item/device/sbeacondrop/powersink(src) + new /obj/item/doorCharge(src) + new /obj/item/doorCharge(src) + new /obj/item/camera_bug(src) + new /obj/item/sbeacondrop/powersink(src) new /obj/item/cartridge/virus/syndicate(src) new /obj/item/storage/toolbox/syndicate(src) //To actually get to those places new /obj/item/pizzabox/bomb @@ -128,7 +128,7 @@ new /obj/item/throwing_star(src) new /obj/item/storage/belt/chameleon(src) // Unique but worth at least 2 tc new /obj/item/card/id/syndicate(src) // 2 tc - new /obj/item/device/chameleon(src) // 7 tc + new /obj/item/chameleon(src) // 7 tc /obj/item/storage/box/syndie_kit name = "box" @@ -192,8 +192,12 @@ /obj/item/storage/box/syndie_kit/space name = "boxed space suit and helmet" - can_hold = list(/obj/item/clothing/suit/space/syndicate, /obj/item/clothing/head/helmet/space/syndicate) - max_w_class = WEIGHT_CLASS_NORMAL + +/obj/item/storage/box/syndie_kit/space/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_w_class = WEIGHT_CLASS_NORMAL + STR.can_hold = typecacheof(list(/obj/item/clothing/suit/space/syndicate, /obj/item/clothing/head/helmet/space/syndicate)) /obj/item/storage/box/syndie_kit/space/PopulateContents() new /obj/item/clothing/suit/space/syndicate/black/red(src) // Black and red is so in right now @@ -212,7 +216,11 @@ /obj/item/storage/box/syndie_kit/chemical name = "boxed chemical kit" - storage_slots = 14 + +/obj/item/storage/box/syndie_kit/chemical/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 14 /obj/item/storage/box/syndie_kit/chemical/PopulateContents() new /obj/item/reagent_containers/glass/bottle/polonium(src) @@ -269,9 +277,9 @@ new /obj/item/clothing/head/chameleon(src) new /obj/item/clothing/mask/chameleon(src) new /obj/item/storage/backpack/chameleon(src) - new /obj/item/device/radio/headset/chameleon(src) + new /obj/item/radio/headset/chameleon(src) new /obj/item/stamp/chameleon(src) - new /obj/item/device/pda/chameleon(src) + new /obj/item/pda/chameleon(src) new /obj/item/gun/energy/laser/chameleon(src) //5*(2*4) = 5*8 = 45, 45 damage if you hit one person with all 5 stars. @@ -313,10 +321,10 @@ new /obj/item/clothing/under/rank/centcom_officer(src) new /obj/item/clothing/shoes/sneakers/black(src) new /obj/item/clothing/gloves/color/black(src) - new /obj/item/device/radio/headset/headset_cent/empty(src) + new /obj/item/radio/headset/headset_cent/empty(src) new /obj/item/clothing/glasses/sunglasses(src) new /obj/item/storage/backpack/satchel(src) - new /obj/item/device/pda/heads(src) + new /obj/item/pda/heads(src) new /obj/item/clipboard(src) /obj/item/storage/box/syndie_kit/chameleon/broken/PopulateContents() @@ -328,7 +336,7 @@ new /obj/item/clothing/head/chameleon/broken(src) new /obj/item/clothing/mask/chameleon/broken(src) new /obj/item/storage/backpack/chameleon/broken(src) - new /obj/item/device/radio/headset/chameleon/broken(src) + new /obj/item/radio/headset/chameleon/broken(src) new /obj/item/stamp/chameleon/broken(src) - new /obj/item/device/pda/chameleon/broken(src) + new /obj/item/pda/chameleon/broken(src) // No chameleon laser, they can't randomise for //REASONS// diff --git a/code/game/objects/items/storage/wallets.dm b/code/game/objects/items/storage/wallets.dm index 885dbc3830..6acf72518f 100644 --- a/code/game/objects/items/storage/wallets.dm +++ b/code/game/objects/items/storage/wallets.dm @@ -1,15 +1,23 @@ /obj/item/storage/wallet name = "wallet" desc = "It can hold a few small and personal things." - storage_slots = 4 icon_state = "wallet" w_class = WEIGHT_CLASS_SMALL resistance_flags = FLAMMABLE - can_hold = list( + slot_flags = SLOT_ID + + var/obj/item/card/id/front_id = null + var/list/combined_access + +/obj/item/storage/wallet/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 4 + STR.can_hold = typecacheof(list( /obj/item/stack/spacecash, /obj/item/card, /obj/item/clothing/mask/cigarette, - /obj/item/device/flashlight/pen, + /obj/item/flashlight/pen, /obj/item/seeds, /obj/item/stack/medical, /obj/item/toy/crayon, @@ -26,48 +34,39 @@ /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/screwdriver, - /obj/item/stamp) - slot_flags = SLOT_ID + /obj/item/stamp)) - var/obj/item/card/id/front_id = null - var/list/combined_access = list() - - -/obj/item/storage/wallet/remove_from_storage(obj/item/W, atom/new_location) - . = ..(W, new_location) - if(.) - if(istype(W, /obj/item/card/id)) - if(W == front_id) - front_id = null - refreshID() - update_icon() +/obj/item/storage/wallet/Exited(atom/movable/AM) + . = ..() + refreshID() /obj/item/storage/wallet/proc/refreshID() - combined_access.Cut() + if(!(front_id in src)) + front_id = null for(var/obj/item/card/id/I in contents) + LAZYINITLIST(combined_access) + LAZYCLEARLIST(combined_access) if(!front_id) front_id = I - update_icon() combined_access |= I.access + update_icon() -/obj/item/storage/wallet/handle_item_insertion(obj/item/W, prevent_warning = 0) +/obj/item/storage/wallet/Entered(atom/movable/AM) . = ..() - if(.) - if(istype(W, /obj/item/card/id)) - refreshID() + refreshID() /obj/item/storage/wallet/update_icon() - icon_state = "wallet" + var/new_state = "wallet" if(front_id) - icon_state = "wallet_[front_id.icon_state]" - - + new_state = "wallet_[front_id.icon_state]" + if(new_state != icon_state) //avoid so many icon state changes. + icon_state = new_state /obj/item/storage/wallet/GetID() return front_id /obj/item/storage/wallet/GetAccess() - if(combined_access.len) + if(LAZYLEN(combined_access)) return combined_access else return ..() diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm index 95c68109bb..1bd31e978e 100644 --- a/code/game/objects/items/stunbaton.dm +++ b/code/game/objects/items/stunbaton.dm @@ -196,7 +196,7 @@ hitcost = 2000 throw_hit_chance = 10 slot_flags = SLOT_BACK - var/obj/item/device/assembly/igniter/sparkler = 0 + var/obj/item/assembly/igniter/sparkler = 0 /obj/item/melee/baton/cattleprod/Initialize() . = ..() diff --git a/code/game/objects/items/tanks/tanks.dm b/code/game/objects/items/tanks/tanks.dm index 2e512c3ec4..f841822f21 100644 --- a/code/game/objects/items/tanks/tanks.dm +++ b/code/game/objects/items/tanks/tanks.dm @@ -138,10 +138,10 @@ /obj/item/tank/attackby(obj/item/W, mob/user, params) add_fingerprint(user) - if((istype(W, /obj/item/device/analyzer)) && get_dist(user, src) <= 1) + if((istype(W, /obj/item/analyzer)) && get_dist(user, src) <= 1) atmosanalyzer_scan(air_contents, user) - else if(istype(W, /obj/item/device/assembly_holder)) + else if(istype(W, /obj/item/assembly_holder)) bomb_assemble(W,user) else . = ..() @@ -237,20 +237,20 @@ var/temperature = air_contents.return_pressure() if(pressure > TANK_FRAGMENT_PRESSURE) - if(!istype(src.loc, /obj/item/device/transfer_valve)) + if(!istype(src.loc, /obj/item/transfer_valve)) message_admins("Explosive tank rupture! Last key to touch the tank was [src.fingerprintslast].") log_game("Explosive tank rupture! Last key to touch the tank was [src.fingerprintslast].") //Give the gas a chance to build up more pressure through reacting - air_contents.react() - air_contents.react() - air_contents.react() + air_contents.react(src) + air_contents.react(src) + air_contents.react(src) pressure = air_contents.return_pressure() var/range = (pressure-TANK_FRAGMENT_PRESSURE)/TANK_FRAGMENT_SCALE var/turf/epicenter = get_turf(loc) explosion(epicenter, round(range*0.25), round(range*0.5), round(range), round(range*1.5)) - if(istype(src.loc, /obj/item/device/transfer_valve)) + if(istype(src.loc, /obj/item/transfer_valve)) qdel(src.loc) else qdel(src) diff --git a/code/game/objects/items/teleportation.dm b/code/game/objects/items/teleportation.dm index b2464ca3ce..cc7e3249d4 100644 --- a/code/game/objects/items/teleportation.dm +++ b/code/game/objects/items/teleportation.dm @@ -55,7 +55,7 @@ if (sr) temp += "Beacon Signals:
    " - for(var/obj/item/device/beacon/W in GLOB.teleportbeacons) + for(var/obj/item/beacon/W in GLOB.teleportbeacons) if (!W.renamed) continue var/turf/tr = get_turf(W) diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm index 6bae2af476..dc496187bc 100644 --- a/code/game/objects/items/tools/weldingtool.dm +++ b/code/game/objects/items/tools/weldingtool.dm @@ -28,6 +28,7 @@ var/change_icons = 1 var/can_off_process = 0 var/light_intensity = 2 //how powerful the emitted light is when used. + var/progress_flash_divisor = 10 var/burned_fuel_for = 0 //when fuel was last removed heat = 3800 tool_behaviour = TOOL_WELDER @@ -234,6 +235,16 @@ if(. && user) user.flash_act(light_intensity) +// Flash the user during welding progress +/obj/item/weldingtool/tool_check_callback(mob/living/user, amount, datum/callback/extra_checks) + . = ..() + if(. && user) + if (progress_flash_divisor == 0) + user.flash_act(min(light_intensity,1)) + progress_flash_divisor = initial(progress_flash_divisor) + else + progress_flash_divisor-- + // If welding tool ran out of fuel during a construction task, construction fails. /obj/item/weldingtool/tool_use_check(mob/living/user, amount) if(!isOn() || !check_fuel()) @@ -358,4 +369,4 @@ nextrefueltick = world.time + 10 reagents.add_reagent("welding_fuel", 1) -#undef WELDER_FUEL_BURN_INTERVAL \ No newline at end of file +#undef WELDER_FUEL_BURN_INTERVAL diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 4554441cf0..52e98e4a9e 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -258,7 +258,7 @@ newSaber.item_color = "rainbow" qdel(W) qdel(src) - else if(istype(W, /obj/item/device/multitool)) + else if(istype(W, /obj/item/multitool)) if(!hacked) hacked = TRUE item_color = "rainbow" diff --git a/code/game/objects/items/twohanded.dm b/code/game/objects/items/twohanded.dm index 34a40b32a8..fdbea343e3 100644 --- a/code/game/objects/items/twohanded.dm +++ b/code/game/objects/items/twohanded.dm @@ -438,7 +438,7 @@ possible_colors = list("purple") /obj/item/twohanded/dualsaber/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/device/multitool)) + if(istype(W, /obj/item/multitool)) if(!hacked) hacked = TRUE to_chat(user, "2XRNBW_ENGAGE") diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index bf67efa6c7..9fdae18149 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -248,7 +248,7 @@ user.put_in_hands(S) to_chat(user, "You fasten the glass shard to the top of the rod with the cable.") - else if(istype(I, /obj/item/device/assembly/igniter) && !(I.flags_1 & NODROP_1)) + else if(istype(I, /obj/item/assembly/igniter) && !(I.flags_1 & NODROP_1)) var/obj/item/melee/baton/cattleprod/P = new /obj/item/melee/baton/cattleprod remove_item_from_storage(user) @@ -383,7 +383,7 @@ name = "stick" desc = "A great tool to drag someone else's drinks across the bar." icon = 'icons/obj/items_and_weapons.dmi' - icon_state = "stick" + icon_state = "cane" item_state = "stick" lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi' diff --git a/code/game/objects/structures/ai_core.dm b/code/game/objects/structures/ai_core.dm index a8061f6c2a..0a6dfaa1cf 100644 --- a/code/game/objects/structures/ai_core.dm +++ b/code/game/objects/structures/ai_core.dm @@ -9,7 +9,7 @@ var/state = 0 var/datum/ai_laws/laws var/obj/item/circuitboard/circuit = null - var/obj/item/device/mmi/brain = null + var/obj/item/mmi/brain = null var/can_deconstruct = TRUE /obj/structure/AIcore/Initialize() @@ -61,7 +61,7 @@ return TRUE /obj/structure/AIcore/latejoin_inactive/attackby(obj/item/P, mob/user, params) - if(istype(P, /obj/item/device/multitool)) + if(istype(P, /obj/item/multitool)) active = !active to_chat(user, "You [active? "activate" : "deactivate"] [src]'s transimtters.") return @@ -172,8 +172,8 @@ module.install(laws, user) return - if(istype(P, /obj/item/device/mmi) && !brain) - var/obj/item/device/mmi/M = P + if(istype(P, /obj/item/mmi) && !brain) + var/obj/item/mmi/M = P if(!M.brainmob) to_chat(user, "Sticking an empty [M.name] into the frame would sort of defeat the purpose!") return @@ -243,7 +243,7 @@ return if(AI_READY_CORE) - if(istype(P, /obj/item/device/aicard)) + if(istype(P, /obj/item/aicard)) P.transfer_ai("INACTIVE", "AICARD", src, user) return @@ -303,14 +303,14 @@ That prevents a few funky behaviors. //The type of interaction, the player performing the operation, the AI itself, and the card object, if any. -/atom/proc/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/device/aicard/card) +/atom/proc/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/aicard/card) if(istype(card)) if(card.flush) to_chat(user, "ERROR: AI flush is in progress, cannot execute transfer protocol.") return 0 return 1 -/obj/structure/AIcore/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/device/aicard/card) +/obj/structure/AIcore/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/aicard/card) if(state != AI_READY_CORE || !..()) return //Transferring a carded AI to a core. diff --git a/code/game/objects/structures/crates_lockers/closets/gimmick.dm b/code/game/objects/structures/crates_lockers/closets/gimmick.dm index c56a0c5008..7ae18a481e 100644 --- a/code/game/objects/structures/crates_lockers/closets/gimmick.dm +++ b/code/game/objects/structures/crates_lockers/closets/gimmick.dm @@ -104,4 +104,4 @@ new /obj/item/clothing/suit/space/nasavoid(src) new /obj/item/crowbar(src) new /obj/item/stock_parts/cell(src) - new /obj/item/device/multitool(src) + new /obj/item/multitool(src) diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm index 9d10ba36ba..eb7e7a3f93 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -8,8 +8,8 @@ /obj/structure/closet/gmcloset/PopulateContents() ..() new /obj/item/clothing/head/that(src) - new /obj/item/device/radio/headset/headset_srv(src) - new /obj/item/device/radio/headset/headset_srv(src) + new /obj/item/radio/headset/headset_srv(src) + new /obj/item/radio/headset/headset_srv(src) new /obj/item/clothing/head/that(src) new /obj/item/clothing/under/sl_suit(src) new /obj/item/clothing/under/sl_suit(src) @@ -39,8 +39,8 @@ ..() new /obj/item/clothing/under/waiter(src) new /obj/item/clothing/under/waiter(src) - new /obj/item/device/radio/headset/headset_srv(src) - new /obj/item/device/radio/headset/headset_srv(src) + new /obj/item/radio/headset/headset_srv(src) + new /obj/item/radio/headset/headset_srv(src) new /obj/item/clothing/accessory/waistcoat(src) new /obj/item/clothing/accessory/waistcoat(src) for(var/i in 1 to 3) @@ -68,11 +68,11 @@ new /obj/item/clothing/head/soft/purple(src) new /obj/item/paint/paint_remover(src) new /obj/item/melee/flyswatter(src) - new /obj/item/device/flashlight(src) + new /obj/item/flashlight(src) for(var/i in 1 to 3) new /obj/item/caution(src) new /obj/item/holosign_creator(src) - new /obj/item/device/lightreplacer(src) + new /obj/item/lightreplacer(src) new /obj/item/soap(src) new /obj/item/storage/bag/trash(src) new /obj/item/clothing/shoes/galoshes(src) @@ -173,7 +173,7 @@ new /obj/item/clothing/gloves/fingerless(src) for(var/i in 1 to 3) new /obj/item/clothing/head/soft(src) - new /obj/item/device/radio/headset/headset_cargo(src) + new /obj/item/radio/headset/headset_cargo(src) /obj/structure/closet/wardrobe/atmospherics_yellow name = "atmospherics wardrobe" @@ -336,8 +336,8 @@ new /obj/item/clothing/suit/toggle/labcoat/science(src) for(var/i in 1 to 3) new /obj/item/clothing/shoes/sneakers/white(src) - new /obj/item/device/radio/headset/headset_sci(src) - new /obj/item/device/radio/headset/headset_sci(src) + new /obj/item/radio/headset/headset_sci(src) + new /obj/item/radio/headset/headset_sci(src) for(var/i in 1 to 3) new /obj/item/clothing/mask/gas(src) return diff --git a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm index 03afb77b9e..7a79b7d2de 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm @@ -9,13 +9,13 @@ new /obj/item/storage/lockbox/medal/cargo(src) new /obj/item/clothing/under/rank/cargo(src) new /obj/item/clothing/shoes/sneakers/brown(src) - new /obj/item/device/radio/headset/headset_cargo(src) + new /obj/item/radio/headset/headset_cargo(src) new /obj/item/clothing/suit/fire/firefighter(src) new /obj/item/clothing/gloves/fingerless(src) - new /obj/item/device/megaphone/cargo(src) + new /obj/item/megaphone/cargo(src) new /obj/item/tank/internals/emergency_oxygen(src) new /obj/item/clothing/mask/gas(src) new /obj/item/clothing/head/soft(src) - new /obj/item/device/export_scanner(src) + new /obj/item/export_scanner(src) new /obj/item/door_remote/quartermaster(src) new /obj/item/circuitboard/machine/techfab/department/cargo(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index 8f7da91465..9cc4598697 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -13,16 +13,16 @@ new /obj/item/clothing/shoes/sneakers/brown(src) new /obj/item/tank/jetpack/suit(src) new /obj/item/cartridge/ce(src) - new /obj/item/device/radio/headset/heads/ce(src) + new /obj/item/radio/headset/heads/ce(src) new /obj/item/storage/toolbox/mechanical(src) new /obj/item/clothing/suit/hazardvest(src) - new /obj/item/device/megaphone/command(src) + new /obj/item/megaphone/command(src) new /obj/item/areaeditor/blueprints(src) new /obj/item/airlock_painter(src) new /obj/item/holosign_creator/engineering(src) new /obj/item/clothing/mask/gas(src) - new /obj/item/device/multitool(src) - new /obj/item/device/assembly/flash/handheld(src) + new /obj/item/multitool(src) + new /obj/item/assembly/flash/handheld(src) new /obj/item/clothing/glasses/meson/engine(src) new /obj/item/door_remote/chief_engineer(src) new /obj/item/pipe_dispenser(src) @@ -46,7 +46,7 @@ for(var/i in 1 to 3) new /obj/item/electronics/apc(src) for(var/i in 1 to 3) - new /obj/item/device/multitool(src) + new /obj/item/multitool(src) /obj/structure/closet/secure_closet/engineering_welding name = "welding supplies locker" @@ -68,7 +68,7 @@ /obj/structure/closet/secure_closet/engineering_personal/PopulateContents() ..() - new /obj/item/device/radio/headset/headset_eng(src) + new /obj/item/radio/headset/headset_eng(src) new /obj/item/storage/toolbox/mechanical(src) new /obj/item/tank/internals/emergency_oxygen/engi(src) new /obj/item/holosign_creator/engineering(src) @@ -84,11 +84,11 @@ /obj/structure/closet/secure_closet/atmospherics/PopulateContents() ..() - new /obj/item/device/radio/headset/headset_eng(src) + new /obj/item/radio/headset/headset_eng(src) new /obj/item/pipe_dispenser(src) new /obj/item/storage/toolbox/mechanical(src) new /obj/item/tank/internals/emergency_oxygen/engi(src) - new /obj/item/device/analyzer(src) + new /obj/item/analyzer(src) new /obj/item/holosign_creator/atmos(src) new /obj/item/watertank/atmos(src) new /obj/item/clothing/suit/fire/atmos(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm index 37fe71a3f5..ac246d5053 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm @@ -6,8 +6,8 @@ /obj/structure/closet/secure_closet/hydroponics/PopulateContents() ..() new /obj/item/storage/bag/plants/portaseeder(src) - new /obj/item/device/plant_analyzer(src) - new /obj/item/device/radio/headset/headset_srv(src) + new /obj/item/plant_analyzer(src) + new /obj/item/radio/headset/headset_srv(src) new /obj/item/cultivator(src) new /obj/item/hatchet(src) new /obj/item/storage/box/disks_plantgene(src) \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index 778ce38fe1..e2f0fb5f88 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -40,7 +40,7 @@ /obj/structure/closet/secure_closet/medical3/PopulateContents() ..() - new /obj/item/device/radio/headset/headset_med(src) + new /obj/item/radio/headset/headset_med(src) new /obj/item/defibrillator/loaded(src) new /obj/item/clothing/gloves/color/latex/nitrile(src) new /obj/item/storage/belt/medical(src) @@ -62,15 +62,15 @@ new /obj/item/clothing/under/rank/chief_medical_officer(src) new /obj/item/clothing/shoes/sneakers/brown (src) new /obj/item/cartridge/cmo(src) - new /obj/item/device/radio/headset/heads/cmo(src) - new /obj/item/device/megaphone/command(src) + new /obj/item/radio/headset/heads/cmo(src) + new /obj/item/megaphone/command(src) new /obj/item/defibrillator/compact/loaded(src) new /obj/item/clothing/gloves/color/latex/nitrile(src) new /obj/item/storage/belt/medical(src) - new /obj/item/device/healthanalyzer/advanced(src) - new /obj/item/device/assembly/flash/handheld(src) + new /obj/item/healthanalyzer/advanced(src) + new /obj/item/assembly/flash/handheld(src) // new /obj/item/reagent_containers/hypospray/CMO(src) // CITADEL EDIT comments out the hypospray mk I. the MK II kit is modularized - new /obj/item/device/autosurgeon/cmo(src) + new /obj/item/autosurgeon/cmo(src) new /obj/item/door_remote/chief_medical_officer(src) new /obj/item/clothing/neck/petcollar(src) new /obj/item/pet_carrier(src) @@ -83,9 +83,9 @@ /obj/structure/closet/secure_closet/animal/PopulateContents() ..() - new /obj/item/device/assembly/signaler(src) + new /obj/item/assembly/signaler(src) for(var/i in 1 to 3) - new /obj/item/device/electropack(src) + new /obj/item/electropack(src) /obj/structure/closet/secure_closet/chemical name = "chemical closet" diff --git a/code/game/objects/structures/crates_lockers/closets/secure/misc.dm b/code/game/objects/structures/crates_lockers/closets/secure/misc.dm index 80f68d10eb..0fad404a2a 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/misc.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/misc.dm @@ -8,8 +8,8 @@ ..() new /obj/item/storage/firstaid/regular(src) new /obj/item/storage/box/handcuffs(src) - new /obj/item/device/aicard(src) - new /obj/item/device/assembly/flash/handheld(src) + new /obj/item/aicard(src) + new /obj/item/assembly/flash/handheld(src) if(prob(50)) new /obj/item/ammo_box/magazine/m50(src) new /obj/item/ammo_box/magazine/m50(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm index 51f2c96c3a..eb764fc230 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm @@ -12,7 +12,7 @@ new /obj/item/storage/backpack(src) else new /obj/item/storage/backpack/satchel(src) - new /obj/item/device/radio/headset( src ) + new /obj/item/radio/headset( src ) /obj/structure/closet/secure_closet/personal/patient name = "patient's closet" @@ -28,8 +28,8 @@ /obj/structure/closet/secure_closet/personal/cabinet/PopulateContents() new /obj/item/storage/backpack/satchel/leather/withwallet( src ) - new /obj/item/device/instrument/piano_synth(src) - new /obj/item/device/radio/headset( src ) + new /obj/item/instrument/piano_synth(src) + new /obj/item/radio/headset( src ) /obj/structure/closet/secure_closet/personal/attackby(obj/item/W, mob/user, params) var/obj/item/card/id/I = W.GetID() diff --git a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm index a88fe3d450..5de453beb0 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm @@ -15,14 +15,14 @@ new /obj/item/clothing/shoes/sneakers/brown(src) new /obj/item/cartridge/rd(src) new /obj/item/clothing/gloves/color/latex(src) - new /obj/item/device/radio/headset/heads/rd(src) + new /obj/item/radio/headset/heads/rd(src) new /obj/item/tank/internals/air(src) new /obj/item/clothing/mask/gas(src) - new /obj/item/device/megaphone/command(src) + new /obj/item/megaphone/command(src) new /obj/item/storage/lockbox/medal/sci(src) new /obj/item/clothing/suit/armor/reactive/teleport(src) - new /obj/item/device/assembly/flash/handheld(src) - new /obj/item/device/laser_pointer(src) + new /obj/item/assembly/flash/handheld(src) + new /obj/item/laser_pointer(src) new /obj/item/door_remote/research_director(src) new /obj/item/storage/box/firingpins(src) new /obj/item/circuitboard/machine/techfab/department/science(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 660526d3d3..4ce98bec52 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -23,8 +23,8 @@ new /obj/item/clothing/head/crown/fancy(src) new /obj/item/cartridge/captain(src) new /obj/item/storage/box/silver_ids(src) - new /obj/item/device/radio/headset/heads/captain/alt(src) - new /obj/item/device/radio/headset/heads/captain(src) + new /obj/item/radio/headset/heads/captain/alt(src) + new /obj/item/radio/headset/heads/captain(src) new /obj/item/clothing/glasses/sunglasses/gar/supergar(src) new /obj/item/clothing/gloves/color/captain(src) new /obj/item/restraints/handcuffs/cable/zipties(src) @@ -44,13 +44,13 @@ new /obj/item/clothing/under/rank/head_of_personnel(src) new /obj/item/clothing/head/hopcap(src) new /obj/item/cartridge/hop(src) - new /obj/item/device/radio/headset/heads/hop(src) + new /obj/item/radio/headset/heads/hop(src) new /obj/item/clothing/shoes/sneakers/brown(src) new /obj/item/storage/box/ids(src) new /obj/item/storage/box/ids(src) - new /obj/item/device/megaphone/command(src) + new /obj/item/megaphone/command(src) new /obj/item/clothing/suit/armor/vest/alt(src) - new /obj/item/device/assembly/flash/handheld(src) + new /obj/item/assembly/flash/handheld(src) new /obj/item/clothing/glasses/sunglasses(src) new /obj/item/restraints/handcuffs/cable/zipties(src) new /obj/item/gun/energy/e_gun(src) @@ -68,7 +68,7 @@ ..() new /obj/item/clothing/neck/cloak/hos(src) new /obj/item/cartridge/hos(src) - new /obj/item/device/radio/headset/heads/hos(src) + new /obj/item/radio/headset/heads/hos(src) new /obj/item/clothing/under/hosparadefem(src) new /obj/item/clothing/under/hosparademale(src) new /obj/item/clothing/suit/armor/vest/leather(src) @@ -79,7 +79,7 @@ new /obj/item/clothing/glasses/hud/security/sunglasses/gars/supergars(src) new /obj/item/clothing/under/rank/head_of_security/grey(src) new /obj/item/storage/lockbox/medal/sec(src) - new /obj/item/device/megaphone/sec(src) + new /obj/item/megaphone/sec(src) new /obj/item/holosign_creator/security(src) new /obj/item/storage/lockbox/loyalty(src) new /obj/item/clothing/mask/gas/sechailer/swat(src) @@ -87,7 +87,7 @@ new /obj/item/shield/riot/tele(src) new /obj/item/storage/belt/security/full(src) new /obj/item/gun/energy/e_gun/hos(src) - new /obj/item/device/flashlight/seclite(src) + new /obj/item/flashlight/seclite(src) new /obj/item/pinpointer/nuke(src) new /obj/item/circuitboard/machine/techfab/department/security(src) @@ -98,7 +98,7 @@ /obj/structure/closet/secure_closet/warden/PopulateContents() ..() - new /obj/item/device/radio/headset/headset_sec(src) + new /obj/item/radio/headset/headset_sec(src) new /obj/item/clothing/suit/armor/vest/warden(src) new /obj/item/clothing/head/warden(src) new /obj/item/clothing/head/beret/sec/navywarden(src) @@ -110,7 +110,7 @@ new /obj/item/storage/box/zipties(src) new /obj/item/storage/box/flashbangs(src) new /obj/item/storage/belt/security/full(src) - new /obj/item/device/flashlight/seclite(src) + new /obj/item/flashlight/seclite(src) new /obj/item/clothing/gloves/krav_maga/sec(src) new /obj/item/door_remote/head_of_security(src) new /obj/item/gun/ballistic/shotgun/automatic/combat/compact(src) @@ -124,10 +124,10 @@ ..() new /obj/item/clothing/suit/armor/vest(src) new /obj/item/clothing/head/helmet/sec(src) - new /obj/item/device/radio/headset/headset_sec(src) - new /obj/item/device/radio/headset/headset_sec/alt(src) + new /obj/item/radio/headset/headset_sec(src) + new /obj/item/radio/headset/headset_sec/alt(src) new /obj/item/clothing/glasses/hud/security/sunglasses(src) - new /obj/item/device/flashlight/seclite(src) + new /obj/item/flashlight/seclite(src) /obj/structure/closet/secure_closet/security/sec @@ -140,28 +140,28 @@ /obj/structure/closet/secure_closet/security/cargo/PopulateContents() ..() new /obj/item/clothing/accessory/armband/cargo(src) - new /obj/item/device/encryptionkey/headset_cargo(src) + new /obj/item/encryptionkey/headset_cargo(src) /obj/structure/closet/secure_closet/security/engine /obj/structure/closet/secure_closet/security/engine/PopulateContents() ..() new /obj/item/clothing/accessory/armband/engine(src) - new /obj/item/device/encryptionkey/headset_eng(src) + new /obj/item/encryptionkey/headset_eng(src) /obj/structure/closet/secure_closet/security/science /obj/structure/closet/secure_closet/security/science/PopulateContents() ..() new /obj/item/clothing/accessory/armband/science(src) - new /obj/item/device/encryptionkey/headset_sci(src) + new /obj/item/encryptionkey/headset_sci(src) /obj/structure/closet/secure_closet/security/med /obj/structure/closet/secure_closet/security/med/PopulateContents() ..() new /obj/item/clothing/accessory/armband/medblue(src) - new /obj/item/device/encryptionkey/headset_med(src) + new /obj/item/encryptionkey/headset_med(src) /obj/structure/closet/secure_closet/detective name = "\proper detective's cabinet" @@ -182,9 +182,9 @@ new /obj/item/clothing/head/fedora(src) new /obj/item/clothing/shoes/laceup(src) new /obj/item/storage/box/evidence(src) - new /obj/item/device/radio/headset/headset_sec(src) - new /obj/item/device/detective_scanner(src) - new /obj/item/device/flashlight/seclite(src) + new /obj/item/radio/headset/headset_sec(src) + new /obj/item/detective_scanner(src) + new /obj/item/flashlight/seclite(src) new /obj/item/holosign_creator/security(src) new /obj/item/reagent_containers/spray/pepper(src) new /obj/item/clothing/suit/armor/vest/det_suit(src) diff --git a/code/game/objects/structures/crates_lockers/closets/syndicate.dm b/code/game/objects/structures/crates_lockers/closets/syndicate.dm index 14805dd506..2214869098 100644 --- a/code/game/objects/structures/crates_lockers/closets/syndicate.dm +++ b/code/game/objects/structures/crates_lockers/closets/syndicate.dm @@ -10,7 +10,7 @@ ..() new /obj/item/clothing/under/syndicate(src) new /obj/item/clothing/shoes/sneakers/black(src) - new /obj/item/device/radio/headset/syndicate(src) + new /obj/item/radio/headset/syndicate(src) new /obj/item/ammo_box/magazine/m10mm(src) new /obj/item/storage/belt/military(src) new /obj/item/crowbar/red(src) @@ -25,7 +25,7 @@ new /obj/item/storage/box/flashbangs(src) new /obj/item/storage/box/teargas(src) new /obj/item/storage/backpack/duffelbag/syndie/med(src) - new /obj/item/device/pda/syndicate(src) + new /obj/item/pda/syndicate(src) /obj/structure/closet/syndicate/resources desc = "An old, dusty locker." diff --git a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm index 49a9621fba..7ee0f4dc24 100644 --- a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm @@ -73,7 +73,7 @@ /obj/structure/closet/firecloset/full/PopulateContents() new /obj/item/clothing/suit/fire/firefighter(src) new /obj/item/clothing/mask/gas(src) - new /obj/item/device/flashlight(src) + new /obj/item/flashlight(src) new /obj/item/tank/internals/oxygen/red(src) new /obj/item/extinguisher(src) new /obj/item/clothing/head/hardhat/red(src) @@ -92,7 +92,7 @@ if(prob(40)) new /obj/item/clothing/suit/hazardvest(src) if(prob(70)) - new /obj/item/device/flashlight(src) + new /obj/item/flashlight(src) if(prob(70)) new /obj/item/screwdriver(src) if(prob(70)) @@ -104,7 +104,7 @@ if(prob(70)) new /obj/item/wirecutters(src) if(prob(70)) - new /obj/item/device/t_scanner(src) + new /obj/item/t_scanner(src) if(prob(20)) new /obj/item/storage/belt/utility(src) if(prob(30)) @@ -114,7 +114,7 @@ if(prob(30)) new /obj/item/stack/cable_coil/random(src) if(prob(20)) - new /obj/item/device/multitool(src) + new /obj/item/multitool(src) if(prob(5)) new /obj/item/clothing/gloves/color/yellow(src) if(prob(40)) @@ -132,7 +132,7 @@ /obj/structure/closet/radiation/PopulateContents() ..() - new /obj/item/device/geiger_counter(src) + new /obj/item/geiger_counter(src) new /obj/item/clothing/suit/radiation(src) new /obj/item/clothing/head/radiation(src) diff --git a/code/game/objects/structures/crates_lockers/crates/bins.dm b/code/game/objects/structures/crates_lockers/crates/bins.dm index 5767995712..9f14fff8d0 100644 --- a/code/game/objects/structures/crates_lockers/crates/bins.dm +++ b/code/game/objects/structures/crates_lockers/crates/bins.dm @@ -27,8 +27,7 @@ var/obj/item/storage/bag/trash/T = W to_chat(user, "You fill the bag.") for(var/obj/item/O in src) - if(T.can_be_inserted(O, 1)) - O.forceMove(T) + T.SendSignal(COMSIG_TRY_STORAGE_INSERT, O, user, TRUE) T.update_icon() do_animate() return TRUE diff --git a/code/game/objects/structures/crates_lockers/crates/wooden.dm b/code/game/objects/structures/crates_lockers/crates/wooden.dm index e5b950d65f..09d176783a 100644 --- a/code/game/objects/structures/crates_lockers/crates/wooden.dm +++ b/code/game/objects/structures/crates_lockers/crates/wooden.dm @@ -11,7 +11,7 @@ /obj/structure/closet/crate/wooden/toy/PopulateContents() . = ..() - new /obj/item/device/megaphone/clown(src) + new /obj/item/megaphone/clown(src) new /obj/item/reagent_containers/food/drinks/soda_cans/canned_laughter(src) new /obj/item/pneumatic_cannon/pie(src) new /obj/item/reagent_containers/food/snacks/pie/cream(src) diff --git a/code/game/objects/structures/fence.dm b/code/game/objects/structures/fence.dm index 8d7d946647..19103c71ec 100644 --- a/code/game/objects/structures/fence.dm +++ b/code/game/objects/structures/fence.dm @@ -155,7 +155,6 @@ #undef CLIMB_TIME #undef NO_HOLE -#undef SMALL_HOLE #undef MEDIUM_HOLE #undef LARGE_HOLE #undef MAX_HOLE_SIZE \ No newline at end of file diff --git a/code/game/objects/structures/fireaxe.dm b/code/game/objects/structures/fireaxe.dm index 07341d89e3..0c84c4cf63 100644 --- a/code/game/objects/structures/fireaxe.dm +++ b/code/game/objects/structures/fireaxe.dm @@ -22,7 +22,7 @@ return ..() /obj/structure/fireaxecabinet/attackby(obj/item/I, mob/user, params) - if(iscyborg(user) || istype(I, /obj/item/device/multitool)) + if(iscyborg(user) || istype(I, /obj/item/multitool)) toggle_lock(user) else if(istype(I, /obj/item/weldingtool) && user.a_intent == INTENT_HELP && !broken) if(obj_integrity < max_integrity) diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index 2a396f583e..7fbc9ee078 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -314,7 +314,7 @@ name = "Hotel Staff" uniform = /obj/item/clothing/under/assistantformal shoes = /obj/item/clothing/shoes/laceup - r_pocket = /obj/item/device/radio/off + r_pocket = /obj/item/radio/off back = /obj/item/storage/backpack implants = list(/obj/item/implant/mindshield) @@ -387,7 +387,7 @@ name = "Demonic Friend" uniform = /obj/item/clothing/under/assistantformal shoes = /obj/item/clothing/shoes/laceup - r_pocket = /obj/item/device/radio/off + r_pocket = /obj/item/radio/off back = /obj/item/storage/backpack implants = list(/obj/item/implant/mindshield) //No revolutionaries, he's MY friend. id = /obj/item/card/id @@ -406,7 +406,7 @@ uniform = /obj/item/clothing/under/syndicate shoes = /obj/item/clothing/shoes/combat gloves = /obj/item/clothing/gloves/combat - ears = /obj/item/device/radio/headset/syndicate/alt + ears = /obj/item/radio/headset/syndicate/alt back = /obj/item/storage/backpack implants = list(/obj/item/implant/weapons_auth) id = /obj/item/card/id/syndicate @@ -482,7 +482,7 @@ shoes = /obj/item/clothing/shoes/jackboots id = /obj/item/card/id/away/old/sec r_pocket = /obj/item/restraints/handcuffs - l_pocket = /obj/item/device/assembly/flash/handheld + l_pocket = /obj/item/assembly/flash/handheld assignedrole = "Ancient Crew" /obj/effect/mob_spawn/human/oldsec/Destroy() diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index 63f4578187..4c588395df 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -11,7 +11,7 @@ var/obj/item/storage/bag/trash/mybag = null var/obj/item/mop/mymop = null var/obj/item/reagent_containers/spray/cleaner/myspray = null - var/obj/item/device/lightreplacer/myreplacer = null + var/obj/item/lightreplacer/myreplacer = null var/signs = 0 var/const/max_signs = 4 @@ -64,9 +64,9 @@ update_icon() else to_chat(user, fail_msg) - else if(istype(I, /obj/item/device/lightreplacer)) + else if(istype(I, /obj/item/lightreplacer)) if(!myreplacer) - var/obj/item/device/lightreplacer/l=I + var/obj/item/lightreplacer/l=I l.janicart_insert(user,src) else to_chat(user, fail_msg) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index cceed2ef17..c20168f52c 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -135,11 +135,7 @@ if(istype(I, /obj/item/storage/bag/tray)) var/obj/item/storage/bag/tray/T = I if(T.contents.len > 0) // If the tray isn't empty - var/list/obj/item/oldContents = T.contents.Copy() - T.quick_empty() - for(var/obj/item/C in oldContents) - C.forceMove(drop_location()) - + I.SendSignal(COMSIG_TRY_STORAGE_QUICK_EMPTY, drop_location()) user.visible_message("[user] empties [I] on [src].") return // If the tray IS empty, continue on (tray will be placed on the table like other items) diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 8a90bfe2ad..749717b358 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -255,7 +255,7 @@ tile.MakeSlippery(TURF_WET_WATER, min_wet_time = 5 SECONDS, wet_time_to_add = 1 SECONDS) /obj/machinery/shower/attackby(obj/item/I, mob/user, params) - if(I.type == /obj/item/device/analyzer) + if(I.type == /obj/item/analyzer) to_chat(user, "The water temperature seems to be [watertemp].") else return ..() diff --git a/code/game/say.dm b/code/game/say.dm index 817238f427..4fb67cb7c6 100644 --- a/code/game/say.dm +++ b/code/game/say.dm @@ -166,7 +166,7 @@ GLOBAL_LIST_INIT(freqtospan, list( /atom/movable/virtualspeaker var/job var/atom/movable/source - var/obj/item/device/radio/radio + var/obj/item/radio/radio INITIALIZE_IMMEDIATE(/atom/movable/virtualspeaker) /atom/movable/virtualspeaker/Initialize(mapload, atom/movable/M, radio) diff --git a/code/game/turfs/baseturf_skipover.dm b/code/game/turfs/baseturf_skipover.dm new file mode 100644 index 0000000000..644714f8ed --- /dev/null +++ b/code/game/turfs/baseturf_skipover.dm @@ -0,0 +1,13 @@ +// This is a typepath to just sit in baseturfs and act as a marker for other things. +/turf/baseturf_skipover + name = "Baseturf skipover placeholder" + desc = "This shouldn't exist" + +/turf/baseturf_skipover/Initialize() + . = ..() + stack_trace("[src]([type]) was instanced which should never happen. Changing into the next baseturf down...") + ScrapeAway() + +/turf/baseturf_skipover/shuttle + name = "Shuttle baseturf skipover" + desc = "Acts as the bottom of the shuttle, if this isn't here the shuttle floor is broken through." \ No newline at end of file diff --git a/code/game/turfs/ChangeTurf.dm b/code/game/turfs/change_turf.dm similarity index 79% rename from code/game/turfs/ChangeTurf.dm rename to code/game/turfs/change_turf.dm index 7394592c08..539911f6eb 100644 --- a/code/game/turfs/ChangeTurf.dm +++ b/code/game/turfs/change_turf.dm @@ -12,11 +12,11 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list( var/thing = allowed_contents[i] qdel(thing, force=TRUE) - var/turf/newT = ChangeTurf(turf_type, baseturf_type, flags) - - SSair.remove_from_active(newT) - newT.CalculateAdjacentTurfs() - SSair.add_to_active(newT,1) + if(turf_type) + var/turf/newT = ChangeTurf(turf_type, baseturf_type, flags) + SSair.remove_from_active(newT) + newT.CalculateAdjacentTurfs() + SSair.add_to_active(newT,1) /turf/proc/copyTurf(turf/T) if(T.type != type) @@ -68,11 +68,20 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list( blueprint_data = null var/list/old_baseturfs = baseturfs - changing_turf = TRUE + var/list/transferring_comps = list() + SendSignal(COMSIG_TURF_CHANGE, path, new_baseturfs, flags, transferring_comps) + for(var/i in transferring_comps) + var/datum/component/comp = i + comp.RemoveComponent() + + changing_turf = TRUE qdel(src) //Just get the side effects and call Destroy var/turf/W = new path(src) + for(var/i in transferring_comps) + W.TakeComponent(i) + if(new_baseturfs) W.baseturfs = new_baseturfs else @@ -106,24 +115,26 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list( return W // Take off the top layer turf and replace it with the next baseturf down -/turf/proc/ScrapeAway() +/turf/proc/ScrapeAway(amount=1, flags) + if(!amount) + return if(length(baseturfs)) - var/list/new_baseturfs = baseturfs - var/turf_type = new_baseturfs[new_baseturfs.len] - new_baseturfs.len-- - switch(new_baseturfs.len) - if(1) - new_baseturfs = new_baseturfs[1] - if(0) - new_baseturfs = turf_type - // We must never end up with a situation where there is no baseturf - WARNING("turf of type [type] had a baseturfs length 1 still in list form.") - return ChangeTurf(turf_type, new_baseturfs) + var/list/new_baseturfs = baseturfs.Copy() + var/turf_type = new_baseturfs[max(1, new_baseturfs.len - amount + 1)] + while(ispath(turf_type, /turf/baseturf_skipover)) + amount++ + if(amount > new_baseturfs.len) + CRASH("The bottomost baseturf of a turf is a skipover [src]([type])") + turf_type = new_baseturfs[max(1, new_baseturfs.len - amount + 1)] + new_baseturfs.len -= min(amount, new_baseturfs.len - 1) // No removing the very bottom + if(new_baseturfs.len == 1) + new_baseturfs = new_baseturfs[1] + return ChangeTurf(turf_type, new_baseturfs, flags) if(baseturfs == type) return src - return ChangeTurf(baseturfs, baseturfs) // The bottom baseturf will never go away + return ChangeTurf(baseturfs, baseturfs, flags) // The bottom baseturf will never go away // Take the input as baseturfs and put it underneath the current baseturfs // If fake_turf_type is provided and new_baseturfs is not the baseturfs list will be created identical to the turf type's @@ -153,6 +164,11 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list( // Things placed on top of closed turfs will ignore the topmost closed turf // Returns the new turf /turf/proc/PlaceOnTop(list/new_baseturfs, turf/fake_turf_type, flags) + var/area/turf_area = loc + if(new_baseturfs && !length(new_baseturfs)) + new_baseturfs = list(new_baseturfs) + flags = turf_area.PlaceOnTopReact(new_baseturfs, fake_turf_type, flags) // A hook so areas can modify the incoming args + var/turf/newT if(flags & CHANGETURF_SKIP) // We haven't been initialized if(initialized) @@ -200,17 +216,16 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list( new_baseturfs += type if(depth) - var/list/target_baseturfs = copytarget.baseturfs - target_baseturfs -= target_baseturfs & GLOB.blacklisted_automated_baseturfs - var/base_len = length(target_baseturfs) - if(!base_len) - if(!ignore_bottom) - new_baseturfs += target_baseturfs - else if(base_len > ignore_bottom) - if(base_len - ignore_bottom <= depth) - new_baseturfs += target_baseturfs.Copy(ignore_bottom + 1) - else - new_baseturfs += target_baseturfs.Copy(base_len - depth) + var/list/target_baseturfs + if(length(copytarget.baseturfs)) + // with default inputs this would be Copy(CLAMP(2, -INFINITY, baseturfs.len)) + // Don't forget a lower index is lower in the baseturfs stack, the bottom is baseturfs[1] + target_baseturfs = copytarget.baseturfs.Copy(CLAMP(1 + ignore_bottom, 1 + copytarget.baseturfs.len - depth, copytarget.baseturfs.len)) + else if(!ignore_bottom) + target_baseturfs = list(copytarget.baseturfs) + if(target_baseturfs) + target_baseturfs -= new_baseturfs & GLOB.blacklisted_automated_baseturfs + new_baseturfs += target_baseturfs var/turf/newT = copytarget.copyTurf(src) newT.baseturfs = new_baseturfs diff --git a/code/game/turfs/closed.dm b/code/game/turfs/closed.dm index c9848fb793..657bf89a34 100644 --- a/code/game/turfs/closed.dm +++ b/code/game/turfs/closed.dm @@ -44,6 +44,7 @@ icon = 'icons/blank_title.png' icon_state = "" layer = FLY_LAYER + bullet_bounce_sound = null /turf/closed/indestructible/splashscreen/New() SStitle.splash_turf = src @@ -102,6 +103,8 @@ desc = "An extremely densely-packed rock, sheeted over with centuries worth of ice and snow." icon = 'icons/turf/walls.dmi' icon_state = "snowrock" + bullet_sizzle = TRUE + bullet_bounce_sound = null /turf/closed/indestructible/rock/snow/ice name = "iced rock" diff --git a/code/game/turfs/simulated/chasm.dm b/code/game/turfs/simulated/chasm.dm index 93590e935c..0ac45562a5 100644 --- a/code/game/turfs/simulated/chasm.dm +++ b/code/game/turfs/simulated/chasm.dm @@ -8,6 +8,7 @@ icon_state = "smooth" canSmoothWith = list(/turf/open/floor/fakepit, /turf/open/chasm) density = TRUE //This will prevent hostile mobs from pathing into chasms, while the canpass override will still let it function like an open turf + bullet_bounce_sound = null //abandon all hope ye who enter /turf/open/chasm/Initialize() . = ..() diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index c73dd50e44..3515527bfd 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -4,6 +4,7 @@ //- floor_tile is now a path, and not a tile obj name = "floor" icon = 'icons/turf/floors.dmi' + baseturfs = /turf/open/floor/plating var/icon_regular_floor = "floor" //used to remember what icon the tile should have by default var/icon_plating = "plating" @@ -59,21 +60,25 @@ switch(severity) if(1) - ScrapeAway() + ScrapeAway(2) if(2) switch(pick(1,2;75,3)) if(1) - src.ReplaceWithLattice() + if(!length(baseturfs) || !ispath(baseturfs[baseturfs.len-1], /turf/open/floor)) + ScrapeAway() + ReplaceWithLattice() + else + ScrapeAway(2) if(prob(33)) new /obj/item/stack/sheet/metal(src) if(2) - ScrapeAway() + ScrapeAway(2) if(3) if(prob(80)) - src.break_tile_to_plating() + ScrapeAway() else - src.break_tile() - src.hotspot_expose(1000,CELL_VOLUME) + break_tile() + hotspot_expose(1000,CELL_VOLUME) if(prob(33)) new /obj/item/stack/sheet/metal(src) if(3) @@ -94,13 +99,15 @@ return 1 /turf/open/floor/attack_paw(mob/user) - return src.attack_hand(user) + return attack_hand(user) /turf/open/floor/proc/gets_drilled() return /turf/open/floor/proc/break_tile_to_plating() var/turf/open/floor/plating/T = make_plating() + if(!istype(T)) + return T.break_tile() /turf/open/floor/proc/break_tile() @@ -119,7 +126,7 @@ burnt = 1 /turf/open/floor/proc/make_plating() - return ChangeTurf(/turf/open/floor/plating) + return ScrapeAway() /turf/open/floor/ChangeTurf(path, new_baseturf, flags) if(!isfloorturf(src)) diff --git a/code/game/turfs/simulated/floor/fancy_floor.dm b/code/game/turfs/simulated/floor/fancy_floor.dm index e664c62023..5d028c6403 100644 --- a/code/game/turfs/simulated/floor/fancy_floor.dm +++ b/code/game/turfs/simulated/floor/fancy_floor.dm @@ -67,6 +67,7 @@ floor_tile = /obj/item/stack/tile/grass broken_states = list("sand") flags_1 = NONE + bullet_bounce_sound = null var/ore_type = /obj/item/stack/ore/glass var/turfverb = "uproot" @@ -93,6 +94,7 @@ floor_tile = null initial_gas_mix = "o2=22;n2=82;TEMP=180" slowdown = 2 + bullet_sizzle = TRUE /turf/open/floor/grass/snow/try_replace_tile(obj/item/stack/tile/T, mob/user, params) return @@ -142,6 +144,7 @@ smooth = SMOOTH_TRUE canSmoothWith = list(/turf/open/floor/carpet) flags_1 = NONE + bullet_bounce_sound = null /turf/open/floor/carpet/examine(mob/user) ..() diff --git a/code/game/turfs/simulated/floor/mineral_floor.dm b/code/game/turfs/simulated/floor/mineral_floor.dm index 07e324bb02..e2e3356684 100644 --- a/code/game/turfs/simulated/floor/mineral_floor.dm +++ b/code/game/turfs/simulated/floor/mineral_floor.dm @@ -219,6 +219,7 @@ icon_state = "alienpod1" floor_tile = /obj/item/stack/tile/mineral/abductor icons = list("alienpod1", "alienpod2", "alienpod3", "alienpod4", "alienpod5", "alienpod6", "alienpod7", "alienpod8", "alienpod9") + baseturfs = /turf/open/floor/plating/abductor2 /turf/open/floor/mineral/abductor/Initialize() . = ..() @@ -229,6 +230,3 @@ /turf/open/floor/mineral/abductor/burn_tile() return //unburnable - -/turf/open/floor/mineral/abductor/make_plating() - return ChangeTurf(/turf/open/floor/plating/abductor2) diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm index c2322fd594..eeed31bd9f 100644 --- a/code/game/turfs/simulated/floor/plating.dm +++ b/code/game/turfs/simulated/floor/plating.dm @@ -11,6 +11,7 @@ name = "plating" icon_state = "plating" intact = FALSE + baseturfs = /turf/open/space var/attachment_holes = TRUE /turf/open/floor/plating/examine(mob/user) @@ -55,7 +56,7 @@ to_chat(user, "You begin reinforcing the floor...") if(do_after(user, 30, target = src)) if (R.get_amount() >= 2 && !istype(src, /turf/open/floor/engine)) - ChangeTurf(/turf/open/floor/engine) + PlaceOnTop(/turf/open/floor/engine) playsound(src, 'sound/items/deconstruct.ogg', 80, 1) R.use(2) to_chat(user, "You reinforce the floor.") @@ -70,7 +71,7 @@ var/obj/item/stack/tile/W = C if(!W.use(1)) return - var/turf/open/floor/T = ChangeTurf(W.turf_type) + var/turf/open/floor/T = PlaceOnTop(W.turf_type) if(istype(W, /obj/item/stack/tile/light)) //TODO: get rid of this ugly check somehow var/obj/item/stack/tile/light/L = W var/turf/open/floor/light/F = T @@ -88,6 +89,9 @@ return TRUE +/turf/open/floor/plating/make_plating() + return + /turf/open/floor/plating/foam name = "metal foam plating" desc = "Thin, fragile flooring created with metal foam." diff --git a/code/game/turfs/simulated/floor/plating/asteroid.dm b/code/game/turfs/simulated/floor/plating/asteroid.dm index 1c174524bb..3877868ca2 100644 --- a/code/game/turfs/simulated/floor/plating/asteroid.dm +++ b/code/game/turfs/simulated/floor/plating/asteroid.dm @@ -1,6 +1,4 @@ - - /**********************Asteroid**************************/ /turf/open/floor/plating/asteroid //floor piece @@ -43,12 +41,9 @@ if(..()) return TRUE if(istype(W, /obj/item/storage/bag/ore)) - var/obj/item/storage/bag/ore/S = W - if(S.collection_mode == 1) - for(var/obj/item/stack/ore/O in contents) - O.attackby(W,user) - return - + for(var/obj/item/stack/ore/O in src) + W.SendSignal(COMSIG_PARENT_ATTACKBY, O) + /turf/open/floor/plating/asteroid/singularity_act() if(is_planet_level(z)) return ..() @@ -198,6 +193,9 @@ if(istype(tunnel)) // Small chance to have forks in our tunnel; otherwise dig our tunnel. if(i > 3 && prob(20)) + if(istype(tunnel.loc, /area/mine/explored) || (istype(tunnel.loc, /area/lavaland/surface/outdoors) && !istype(tunnel.loc, /area/lavaland/surface/outdoors/unexplored))) + sanity = 0 + break var/turf/open/floor/plating/asteroid/airless/cave/C = tunnel.ChangeTurf(data_having_type, null, CHANGETURF_IGNORE_AIR) C.going_backwards = FALSE C.produce_tunnel_from_data(rand(10, 15), dir) @@ -216,7 +214,7 @@ /turf/open/floor/plating/asteroid/airless/cave/proc/SpawnFloor(turf/T) for(var/S in RANGE_TURFS(1, src)) var/turf/NT = S - if(!NT || isspaceturf(NT) || istype(NT.loc, /area/mine/explored) || istype(NT.loc, /area/lavaland/surface/outdoors/explored)) + if(!NT || isspaceturf(NT) || istype(NT.loc, /area/mine/explored) || (istype(NT.loc, /area/lavaland/surface/outdoors) && !istype(NT.loc, /area/lavaland/surface/outdoors/unexplored))) sanity = 0 break if(!sanity) @@ -281,6 +279,8 @@ planetary_atmos = TRUE archdrops = list(/obj/item/stack/sheet/mineral/snow = list(ARCH_PROB = 100, ARCH_MAXDROP = 5)) burnt_states = list("snow_dug") + bullet_sizzle = TRUE + bullet_bounce_sound = null /turf/open/floor/plating/asteroid/snow/burn_tile() if(!burnt) diff --git a/code/game/turfs/simulated/floor/plating/misc_plating.dm b/code/game/turfs/simulated/floor/plating/misc_plating.dm index 12edefb680..b21e361639 100644 --- a/code/game/turfs/simulated/floor/plating/misc_plating.dm +++ b/code/game/turfs/simulated/floor/plating/misc_plating.dm @@ -88,6 +88,7 @@ icon = 'icons/misc/beach.dmi' flags_1 = NONE attachment_holes = FALSE + bullet_bounce_sound = null /turf/open/floor/plating/beach/try_replace_tile(obj/item/stack/tile/T, mob/user, params) return @@ -144,6 +145,7 @@ baseturfs = /turf/open/floor/plating/ice slowdown = 1 attachment_holes = FALSE + bullet_sizzle = TRUE /turf/open/floor/plating/ice/Initialize() . = ..() diff --git a/code/game/turfs/simulated/floor/reinf_floor.dm b/code/game/turfs/simulated/floor/reinf_floor.dm index bdce6535ba..78fe2b1bde 100644 --- a/code/game/turfs/simulated/floor/reinf_floor.dm +++ b/code/game/turfs/simulated/floor/reinf_floor.dm @@ -37,7 +37,7 @@ if(!istype(src, /turf/open/floor/engine)) return TRUE new /obj/item/stack/rods(src, 2) - ChangeTurf(/turf/open/floor/plating) + ScrapeAway() return TRUE /turf/open/floor/engine/acid_act(acidpwr, acid_volume) @@ -55,14 +55,18 @@ switch(severity) if(1) if(prob(80)) - ReplaceWithLattice() + if(!length(baseturfs) || !ispath(baseturfs[baseturfs.len-1], /turf/open/floor)) + ScrapeAway() + ReplaceWithLattice() + else + ScrapeAway(2) else if(prob(50)) - ScrapeAway() + ScrapeAway(2) else - make_plating(1) + ScrapeAway() if(2) if(prob(50)) - make_plating(1) + ScrapeAway() /turf/open/floor/engine/singularity_pull(S, current_size) ..() diff --git a/code/game/turfs/simulated/lava.dm b/code/game/turfs/simulated/lava.dm index a70f44ac3f..316391f8de 100644 --- a/code/game/turfs/simulated/lava.dm +++ b/code/game/turfs/simulated/lava.dm @@ -10,6 +10,7 @@ light_range = 2 light_power = 0.75 light_color = LIGHT_COLOR_LAVA + bullet_bounce_sound = 'sound/items/welder2.ogg' /turf/open/lava/ex_act(severity, target) contents_explosion(severity, target) @@ -48,7 +49,7 @@ switch(passed_mode) if(RCD_FLOORWALL) to_chat(user, "You build a floor.") - ChangeTurf(/turf/open/floor/plating) + PlaceOnTop(/turf/open/floor/plating) return TRUE return FALSE diff --git a/code/game/turfs/simulated/minerals.dm b/code/game/turfs/simulated/minerals.dm index ee407926d8..9928f9cdc5 100644 --- a/code/game/turfs/simulated/minerals.dm +++ b/code/game/turfs/simulated/minerals.dm @@ -78,7 +78,7 @@ var/flags = NONE if(defer_change) // TODO: make the defer change var a var for any changeturf flag flags = CHANGETURF_DEFER_CHANGE - ChangeTurf(turf_type, null, flags) + ScrapeAway(null, flags) addtimer(CALLBACK(src, .proc/AfterChange), 1, TIMER_UNIQUE) playsound(src, 'sound/effects/break_stone.ogg', 50, 1) //beautiful destruction @@ -437,7 +437,7 @@ . = ..() /turf/closed/mineral/gibtonite/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/device/mining_scanner) || istype(I, /obj/item/device/t_scanner/adv_mining_scanner) && stage == 1) + if(istype(I, /obj/item/mining_scanner) || istype(I, /obj/item/t_scanner/adv_mining_scanner) && stage == 1) user.visible_message("[user] holds [I] to [src]...", "You use [I] to locate where to cut off the chain reaction and attempt to stop it...") defuse() ..() @@ -513,7 +513,7 @@ var/flags = NONE if(defer_change) flags = CHANGETURF_DEFER_CHANGE - ChangeTurf(turf_type, null, flags) + ScrapeAway(null, flags) addtimer(CALLBACK(src, .proc/AfterChange), 1, TIMER_UNIQUE) diff --git a/code/game/turfs/simulated/reebe_void.dm b/code/game/turfs/simulated/reebe_void.dm index 3e40ebed64..624525d11d 100644 --- a/code/game/turfs/simulated/reebe_void.dm +++ b/code/game/turfs/simulated/reebe_void.dm @@ -4,6 +4,7 @@ layer = SPACE_LAYER baseturfs = /turf/open/indestructible/reebe_void planetary_atmos = TRUE + bullet_bounce_sound = null //forever falling /turf/open/indestructible/reebe_void/Initialize(mapload) . = ..() diff --git a/code/game/turfs/simulated/river.dm b/code/game/turfs/simulated/river.dm index 73640f99e0..e451fe4892 100644 --- a/code/game/turfs/simulated/river.dm +++ b/code/game/turfs/simulated/river.dm @@ -4,7 +4,7 @@ #define RANDOM_LOWER_X 50 #define RANDOM_LOWER_Y 50 -/proc/spawn_rivers(target_z, nodes = 4, turf_type = /turf/open/lava/smooth/lava_land_surface, whitelist_area = /area/lavaland/surface/outdoors, min_x = RANDOM_LOWER_X, min_y = RANDOM_LOWER_Y, max_x = RANDOM_UPPER_X, max_y = RANDOM_UPPER_Y) +/proc/spawn_rivers(target_z, nodes = 4, turf_type = /turf/open/lava/smooth/lava_land_surface, whitelist_area = /area/lavaland/surface/outdoors/unexplored, min_x = RANDOM_LOWER_X, min_y = RANDOM_LOWER_Y, max_x = RANDOM_UPPER_X, max_y = RANDOM_UPPER_Y) var/list/river_nodes = list() var/num_spawned = 0 var/list/possible_locs = block(locate(min_x, min_y, target_z), locate(max_x, max_y, target_z)) diff --git a/code/game/turfs/simulated/wall/mineral_walls.dm b/code/game/turfs/simulated/wall/mineral_walls.dm index 6cfa6a2f23..c8ec3a5c5f 100644 --- a/code/game/turfs/simulated/wall/mineral_walls.dm +++ b/code/game/turfs/simulated/wall/mineral_walls.dm @@ -102,7 +102,7 @@ /turf/closed/wall/mineral/plasma/proc/PlasmaBurn(temperature) new girder_type(src) - src.ChangeTurf(/turf/open/floor/plasteel) + ScrapeAway() var/turf/open/T = src T.atmos_spawn_air("plasma=400;TEMP=[temperature]") @@ -167,6 +167,8 @@ sheet_type = /obj/item/stack/sheet/mineral/snow canSmoothWith = null girder_type = null + bullet_sizzle = TRUE + bullet_bounce_sound = null /turf/closed/wall/mineral/abductor name = "alien wall" diff --git a/code/game/turfs/simulated/wall/misc_walls.dm b/code/game/turfs/simulated/wall/misc_walls.dm index 7012c5f6d8..f40f74787a 100644 --- a/code/game/turfs/simulated/wall/misc_walls.dm +++ b/code/game/turfs/simulated/wall/misc_walls.dm @@ -158,6 +158,7 @@ canSmoothWith = null hardness = 35 slicing_duration = 150 //welding through the ice+metal + bullet_sizzle = TRUE /turf/closed/wall/rust name = "rusted wall" diff --git a/code/game/turfs/simulated/wall/reinf_walls.dm b/code/game/turfs/simulated/wall/reinf_walls.dm index 6a68a894cf..c667714273 100644 --- a/code/game/turfs/simulated/wall/reinf_walls.dm +++ b/code/game/turfs/simulated/wall/reinf_walls.dm @@ -27,7 +27,7 @@ to_chat(user, "The support lines have been unscrewed, and the metal cover is welded firmly in place.") if(CUT_COVER) to_chat(user, "The metal cover has been sliced through, and is connected loosely to the girder.") - if(BOLTS) + if(ANCHOR_BOLTS) to_chat(user, "The outer cover has been pried away, and the bolts anchoring the support rods are wrenched in place.") if(SUPPORT_RODS) to_chat(user, "The bolts anchoring the support rods have been loosened, but are still welded firmly to the girder.") @@ -120,7 +120,7 @@ if(W.use_tool(src, user, 100, volume=100)) if(!istype(src, /turf/closed/wall/r_wall) || d_state != CUT_COVER) return 1 - d_state = BOLTS + d_state = ANCHOR_BOLTS update_icon() to_chat(user, "You pry off the cover.") return 1 @@ -137,11 +137,11 @@ to_chat(user, "The metal cover has been welded securely to the frame.") return 1 - if(BOLTS) + if(ANCHOR_BOLTS) if(istype(W, /obj/item/wrench)) to_chat(user, "You start loosening the anchoring bolts which secure the support rods to their frame...") if(W.use_tool(src, user, 40, volume=100)) - if(!istype(src, /turf/closed/wall/r_wall) || d_state != BOLTS) + if(!istype(src, /turf/closed/wall/r_wall) || d_state != ANCHOR_BOLTS) return 1 d_state = SUPPORT_RODS update_icon() @@ -151,7 +151,7 @@ if(istype(W, /obj/item/crowbar)) to_chat(user, "You start to pry the cover back into place...") if(W.use_tool(src, user, 20, volume=100)) - if(!istype(src, /turf/closed/wall/r_wall) || d_state != BOLTS) + if(!istype(src, /turf/closed/wall/r_wall) || d_state != ANCHOR_BOLTS) return 1 d_state = CUT_COVER update_icon() @@ -177,7 +177,7 @@ if(W.use_tool(src, user, 40)) if(!istype(src, /turf/closed/wall/r_wall) || d_state != SUPPORT_RODS) return 1 - d_state = BOLTS + d_state = ANCHOR_BOLTS update_icon() to_chat(user, "You tighten the bolts anchoring the support rods.") return 1 diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index 2dc99a5a59..f559c420c6 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -209,8 +209,8 @@ place_poster(W,user) return TRUE //wall mounted IC assembly stuff - else if(istype(W, /obj/item/device/electronic_assembly/wallmount)) - var/obj/item/device/electronic_assembly/wallmount/A = W + else if(istype(W, /obj/item/electronic_assembly/wallmount)) + var/obj/item/electronic_assembly/wallmount/A = W A.mount_assembly(src, user) return TRUE diff --git a/code/game/turfs/simulated/water.dm b/code/game/turfs/simulated/water.dm index eb6fe8a194..3977ad1955 100644 --- a/code/game/turfs/simulated/water.dm +++ b/code/game/turfs/simulated/water.dm @@ -7,6 +7,8 @@ initial_gas_mix = LAVALAND_DEFAULT_ATMOS planetary_atmos = TRUE slowdown = 1 + bullet_sizzle = TRUE + bullet_bounce_sound = null //needs a splashing sound one day. /turf/open/water/Initialize() . = ..() diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm index ed0fa395ea..8d610a962d 100644 --- a/code/game/turfs/space/space.dm +++ b/code/game/turfs/space/space.dm @@ -17,6 +17,7 @@ layer = SPACE_LAYER light_power = 0.25 dynamic_lighting = DYNAMIC_LIGHTING_DISABLED + bullet_bounce_sound = null /turf/open/space/basic/New() //Do not convert to Initialize diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 0cb72716fb..c6d2f66900 100755 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -29,6 +29,10 @@ var/requires_activation //add to air processing after initialize? var/changing_turf = FALSE + var/bullet_bounce_sound = 'sound/weapons/bulletremove.ogg' //sound played when a shell casing is ejected ontop of the turf. + var/bullet_sizzle = FALSE //used by ammo_casing/bounce_away() to determine if the shell casing should make a sizzle sound when it's ejected over the turf + //IE if the turf is supposed to be water, set TRUE. + /turf/vv_edit_var(var_name, new_value) var/static/list/banned_edits = list("x", "y", "z") if(var_name in banned_edits) @@ -93,6 +97,9 @@ ..() /turf/attack_hand(mob/user) + . = ..() + if(.) + return user.Move_Pulled(src) /turf/proc/handleRCL(obj/item/twohanded/rcl/C, mob/user) @@ -265,15 +272,18 @@ /turf/proc/Bless() new /obj/effect/blessing(src) -/turf/storage_contents_dump_act(obj/item/storage/src_object, mob/user) - if(src_object.contents.len) +/turf/storage_contents_dump_act(datum/component/storage/src_object, mob/user) + . = ..() + if(.) + return + if(length(src_object.contents())) to_chat(usr, "You start dumping out the contents...") - if(!do_after(usr,20,target=src_object)) + if(!do_after(usr,20,target=src_object.parent)) return FALSE - var/list/things = src_object.contents.Copy() + var/list/things = src_object.contents() var/datum/progressbar/progress = new(user, things.len, src) - while (do_after(usr, 10, TRUE, src, FALSE, CALLBACK(src_object, /obj/item/storage.proc/mass_remove_from_storage, src, things, progress))) + while (do_after(usr, 10, TRUE, src, FALSE, CALLBACK(src_object, /datum/component/storage.proc/mass_remove_from_storage, src, things, progress))) stoplag(1) qdel(progress) diff --git a/code/game/world.dm b/code/game/world.dm index f6a7a8cae6..cc4246a7c8 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -228,11 +228,11 @@ GLOBAL_PROTECT(security_mode) var/list/features = list() - if(GLOB.master_mode) + /*if(GLOB.master_mode) CIT CHANGE - hides the gamemode from the hub entry, removes some useless info from the hub entry features += GLOB.master_mode if (!GLOB.enter_allowed) - features += "closed" + features += "closed"*/ var/s = "" var/hostedby @@ -240,25 +240,29 @@ GLOBAL_PROTECT(security_mode) var/server_name = CONFIG_GET(string/servername) if (server_name) s += "[server_name] — " - features += "[CONFIG_GET(flag/norespawn) ? "no " : ""]respawn" + /*features += "[CONFIG_GET(flag/norespawn) ? "no " : ""]respawn" CIT CHANGE - removes some useless info from the hub entry if(CONFIG_GET(flag/allow_vote_mode)) features += "vote" if(CONFIG_GET(flag/allow_ai)) - features += "AI allowed" + features += "AI allowed"*/ hostedby = CONFIG_GET(string/hostedby) s += "[station_name()]"; s += " (" - s += "" //Change this to wherever you want the hub to link to. - s += "Default" //Replace this with something else. Or ever better, delete it and uncomment the game version. + s += "" //Change this to wherever you want the hub to link to. CIT CHANGE - links to cit's website on the hub + s += "Citadel" //Replace this with something else. Or ever better, delete it and uncomment the game version. CIT CHANGE - modifies the hub entry link s += "" - s += ")" + s += ")\]" //CIT CHANGE - encloses the server title in brackets to make the hub entry fancier + s += "
    That furry /TG/code server your mother warned you about.
    " //CIT CHANGE - adds a tagline! var/n = 0 for (var/mob/M in GLOB.player_list) if (M.client) n++ + if(get_security_level())//CIT CHANGE - makes the hub entry show the security level + features += "code [get_security_level()]" + if (n > 1) features += "~[n] players" else if (n > 0) @@ -268,7 +272,7 @@ GLOBAL_PROTECT(security_mode) features += "hosted by [hostedby]" if (features) - s += ": [jointext(features, ", ")]" + s += "\[[jointext(features, ", ")]" //CIT CHANGE - replaces the colon here with a left bracket status = s diff --git a/code/modules/NTNet/netdata.dm b/code/modules/NTNet/netdata.dm index a5d7cc0efa..857869fc21 100644 --- a/code/modules/NTNet/netdata.dm +++ b/code/modules/NTNet/netdata.dm @@ -1,31 +1,46 @@ /datum/netdata //this requires some thought later on but for now it's fine. var/network_id + var/autopasskey = TRUE + var/list/recipient_ids = list() var/sender_id + var/broadcast = FALSE //Whether this is a broadcast packet. - var/plaintext_data - var/plaintext_data_secondary - var/encrypted_passkey + var/list/data = list() var/list/passkey // Process data before sending it /datum/netdata/proc/pre_send(datum/component/ntnet_interface/interface) // Decrypt the passkey. - if(encrypted_passkey && !passkey) - var/result = XorEncrypt(hextostr(encrypted_passkey, TRUE), SScircuit.cipherkey) - if(length(result) > 1) - passkey = json_decode(XorEncrypt(hextostr(encrypted_passkey, TRUE), SScircuit.cipherkey)) + if(autopasskey) + if(data["encrypted_passkey"] && !passkey) + var/result = XorEncrypt(hextostr(data["encrypted_passkey"], TRUE), SScircuit.cipherkey) + if(length(result) > 1) + passkey = json_decode(XorEncrypt(hextostr(data["encrypted_passkey"], TRUE), SScircuit.cipherkey)) - // Encrypt the passkey. - if(!encrypted_passkey && passkey) - encrypted_passkey = strtohex(XorEncrypt(json_encode(passkey), SScircuit.cipherkey)) + // Encrypt the passkey. + if(!data["encrypted_passkey"] && passkey) + data["encrypted_passkey"] = strtohex(XorEncrypt(json_encode(passkey), SScircuit.cipherkey)) // If there is no sender ID, set the default one. if(!sender_id && interface) sender_id = interface.hardware_id +/datum/netdata/proc/standard_format_data(primary, secondary, passkey) + data["data"] = primary + data["data_secondary"] = secondary + data["encrypted_passkey"] = passkey + +/datum/netdata/proc/json_to_data(json) + data = json_decode(json) + +/datum/netdata/proc/json_append_to_data(json) + data |= json_decode(json) + +/datum/netdata/proc/data_to_json() + return json_encode(data) /datum/netdata/proc/json_list_generation_admin() //for admin logs and such. . = list() @@ -40,9 +55,7 @@ . = list() .["recipient_ids"] = recipient_ids .["sender_id"] = sender_id - .["data"] = plaintext_data - .["data_secondary"] = plaintext_data_secondary - .["passkey"] = encrypted_passkey + .["data_list"] = data /datum/netdata/proc/generate_netlog() return "[json_encode(json_list_generation_netlog())]" diff --git a/code/modules/NTNet/network.dm b/code/modules/NTNet/network.dm index aee0dc1a2d..68b158dd65 100644 --- a/code/modules/NTNet/network.dm +++ b/code/modules/NTNet/network.dm @@ -1,6 +1,11 @@ /datum/ntnet var/network_id = "Network" - var/connected_interfaces_by_id = list() //id = datum/component/ntnet_interface + var/list/connected_interfaces_by_id = list() //id = datum/component/ntnet_interface + var/list/services_by_path = list() //type = datum/ntnet_service + var/list/services_by_id = list() //id = datum/ntnet_service + + var/list/autoinit_service_paths = list() //typepaths + var/list/relays = list() var/list/logs = list() @@ -32,7 +37,18 @@ stack_trace("Network [type] with ID [network_id] failed to register and has been deleted.") qdel(src) +/datum/ntnet/Destroy() + for(var/i in connected_interfaces_by_id) + var/datum/component/ntnet_interface/I = i + I.unregister_connection(src) + for(var/i in services_by_id) + var/datum/ntnet_service/S = i + S.disconnect(src, TRUE) + return ..() + /datum/ntnet/proc/interface_connect(datum/component/ntnet_interface/I) + if(connected_interfaces_by_id[I.hardware_id]) + return FALSE connected_interfaces_by_id[I.hardware_id] = I return TRUE @@ -43,15 +59,68 @@ /datum/ntnet/proc/find_interface_id(id) return connected_interfaces_by_id[id] +/datum/ntnet/proc/find_service_id(id) + return services_by_id[id] + +/datum/ntnet/proc/find_service_path(path) + return services_by_path[path] + +/datum/ntnet/proc/register_service(datum/ntnet_service/S) + if(!istype(S)) + return FALSE + if(services_by_path[S.type] || services_by_id[S.id]) + return FALSE + services_by_path[S.type] = S + services_by_id[S.id] = S + return TRUE + +/datum/ntnet/proc/unregister_service(datum/ntnet_service/S) + if(!istype(S)) + return FALSE + services_by_path -= S.type + services_by_id -= S.id + return TRUE + +/datum/ntnet/proc/create_service(type) + var/datum/ntnet_service/S = new type + if(!istype(S)) + return FALSE + . = S.connect(src) + if(!.) + qdel(S) + +/datum/ntnet/proc/destroy_service(type) + var/datum/ntnet_service/S = find_service_path(type) + if(!istype(S)) + return FALSE + . = S.disconnect(src) + if(.) + qdel(src) + /datum/ntnet/proc/process_data_transmit(datum/component/ntnet_interface/sender, datum/netdata/data) - data.network_id = src - log_data_transfer(data) if(!check_relay_operation()) return FALSE - for(var/i in data.recipient_ids) - var/datum/component/ntnet_interface/reciever = find_interface_id(i) + data.network_id = src + log_data_transfer(data) + var/list/datum/component/ntnet_interface/recieving = list() + if((length(data.recipient_ids == 1) && data.recipient_ids[1] == NETWORK_BROADCAST_ID) || data.recipient_ids == NETWORK_BROADCAST_ID) + data.broadcast = TRUE + for(var/i in connected_interfaces_by_id) + recieving |= connected_interfaces_by_id[i] + else + for(var/i in data.recipient_ids) + var/datum/component/ntnet_interface/reciever = find_interface_id(i) + recieving |= reciever + + for(var/i in recieving) + var/datum/component/ntnet_interface/reciever = i if(reciever) reciever.__network_recieve(data) + + for(var/i in services_by_id) + var/datum/ntnet_service/serv = services_by_id[i] + serv.ntnet_intercept(data, src, sender) + return TRUE /datum/ntnet/proc/check_relay_operation(zlevel) //can be expanded later but right now it's true/false. diff --git a/code/modules/NTNet/services/_service.dm b/code/modules/NTNet/services/_service.dm new file mode 100644 index 0000000000..8611c2d25d --- /dev/null +++ b/code/modules/NTNet/services/_service.dm @@ -0,0 +1,38 @@ +/datum/ntnet_service + var/name = "Unidentified Network Service" + var/id + var/list/networks_by_id = list() //Yes we support multinetwork services! + +/datum/ntnet_service/New() + var/datum/component/ntnet_interface/N = AddComponent(/datum/component/ntnet_interface, id, name, FALSE) + id = N.hardware_id + +/datum/ntnet_service/Destroy() + for(var/i in networks_by_id) + var/datum/ntnet/N = i + disconnect(N, TRUE) + networks_by_id = null + return ..() + +/datum/ntnet_service/proc/connect(datum/ntnet/net) + if(!istype(net)) + return FALSE + GET_COMPONENT(interface, /datum/component/ntnet_interface) + if(!interface.register_connection(net)) + return FALSE + if(!net.register_service(src)) + interface.unregister_connection(net) + return FALSE + networks_by_id[net.network_id] = net + return TRUE + +/datum/ntnet_service/proc/disconnect(datum/ntnet/net, force = FALSE) + if(!istype(net) || (!net.unregister_service(src) && !force)) + return FALSE + GET_COMPONENT(interface, /datum/component/ntnet_interface) + interface.unregister_connection(net) + networks_by_id -= net.network_id + return TRUE + +/datum/ntnet_service/proc/ntnet_intercept(datum/netdata/data, datum/ntnet/net, datum/component/ntnet_interface/sender) + return diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 3d22385513..577cca303b 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -43,7 +43,6 @@ body += "

    Show related accounts by: " body += "\[ CID | " body += "IP \]" - var/rep = 0 rep += SSpersistence.antag_rep[M.ckey] body += "

    Antagonist reputation: [rep]" @@ -52,12 +51,15 @@ body += "\[set\] " body += "\[zero\]" + body += "

    \[ " body += "VV - " if(M.mind) body += "TP - " else body += "Init Mind - " + if (iscyborg(M)) + body += "BP - " body += "PM - " body += "SM - " body += "FLW - " @@ -177,9 +179,9 @@ body += "Thunderdome 2 | " body += "Thunderdome Admin | " body += "Thunderdome Observer | " - + body += usr.client.citaPPoptions(M) // CITADEL - + body += "
    " body += "" diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index c99f568086..b309c5bea6 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -1,4 +1,5 @@ //admin verb groups - They can overlap if you so wish. Only one of each verb will exist in the verbs list regardless +//admin verb groups - They can overlap if you so wish. Only one of each verb will exist in the verbs list regardless //the procs are cause you can't put the comments in the GLOB var define GLOBAL_PROTECT(admin_verbs_default) GLOBAL_LIST_INIT(admin_verbs_default, world.AVerbsDefault()) @@ -6,7 +7,6 @@ GLOBAL_LIST_INIT(admin_verbs_default, world.AVerbsDefault()) return list( /client/proc/deadmin, /*destroys our own admin datum so we can play as a regular player*/ /client/proc/cmd_admin_say, /*admin-only ooc chat*/ - /client/proc/cmd_admin_ticket_panel, /client/proc/dsay, /*talk in deadchat using our ckey/fakekey*/ /client/proc/deadchat, /client/proc/investigate_show, /*various admintools for investigation. Such as a singulo grief-log*/ @@ -39,6 +39,7 @@ GLOBAL_LIST_INIT(admin_verbs_admin, world.AVerbsAdmin()) /client/proc/check_antagonists, /*shows all antags*/ /datum/admins/proc/access_news_network, /*allows access of newscasters*/ /client/proc/jumptocoord, /*we ghost and jump to a coordinate*/ + /client/proc/getcurrentlogs, /*for accessing server logs for the current round*/ /client/proc/Getmob, /*teleports a mob to our location*/ /client/proc/Getkey, /*teleports a mob with a certain ckey to our location*/ // /client/proc/sendmob, /*sends a mob somewhere*/ -Removed due to it needing two sorting procs to work, which were executed every time an admin right-clicked. ~Errorage @@ -56,7 +57,6 @@ GLOBAL_LIST_INIT(admin_verbs_admin, world.AVerbsAdmin()) /client/proc/cmd_admin_create_centcom_report, /client/proc/cmd_change_command_name, /client/proc/cmd_admin_check_player_exp, /* shows players by playtime */ - /client/proc/toggle_antag_hud, /*toggle display of the admin antag hud*/ /client/proc/toggle_combo_hud, // toggle display of the combination pizza antag and taco sci/med/eng hud /client/proc/toggle_AI_interact, /*toggle admin ability to interact with machines as an AI*/ /client/proc/open_shuttle_manipulator, /* Opens shuttle manipulator UI */ @@ -228,7 +228,6 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, list( /client/proc/admin_change_sec_level, /client/proc/toggle_nuke, /client/proc/cmd_display_del_log, - /client/proc/toggle_antag_hud, /client/proc/toggle_combo_hud, /client/proc/debug_huds, /client/proc/cmd_admin_man_up, //CIT CHANGE - adds man up verb @@ -603,6 +602,8 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, list( /client/proc/togglebuildmodeself() set name = "Toggle Build Mode Self" set category = "Special Verbs" + if (!(holder.rank.rights & R_BUILDMODE)) + return if(src.mob) togglebuildmode(src.mob) SSblackbox.record_feedback("tally", "admin_verb", 1, "Toggle Build Mode") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -622,7 +623,7 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, list( return if(has_antag_hud()) - toggle_antag_hud() + toggle_combo_hud() holder.deactivate() diff --git a/code/modules/admin/chat_commands.dm b/code/modules/admin/chat_commands.dm index bc41b489c0..02402956d9 100644 --- a/code/modules/admin/chat_commands.dm +++ b/code/modules/admin/chat_commands.dm @@ -28,7 +28,7 @@ return last_irc_check = rtod var/server = CONFIG_GET(string/server) - return "[GLOB.round_id ? "Round #[GLOB.round_id]: " : ""][GLOB.clients.len] players on [SSmapping.config.map_name], Mode: [GLOB.master_mode]; Round [SSticker.HasRoundStarted() ? (SSticker.IsRoundInProgress() ? "Active" : "Finishing") : "Starting"] -- [server ? server : "[world.internet_address]:[world.port]"]" + return "[GLOB.round_id ? "Round #[GLOB.round_id]: " : ""][GLOB.clients.len] players on [SSmapping.config.map_name]; Round [SSticker.HasRoundStarted() ? (SSticker.IsRoundInProgress() ? "Active" : "Finishing") : "Starting"] -- [server ? server : "[world.internet_address]:[world.port]"]" //CIT CHANGE - obfuscates the current gamemode from players /datum/server_tools_command/ahelp name = "ahelp" @@ -100,7 +100,7 @@ GLOBAL_LIST(round_end_notifiees) var/list/text_res = results.Copy(1, 3) var/list/refs = results.len > 3 ? results.Copy(4) : null . = "[text_res.Join("\n")][refs ? "\nRefs: [refs.Join(" ")]" : ""]" - + /datum/server_tools_command/reload_admins name = "reload_admins" help_text = "Forces the server to reload admins." diff --git a/code/modules/admin/create_object.dm b/code/modules/admin/create_object.dm index 51ffa539dc..ff49944dc4 100644 --- a/code/modules/admin/create_object.dm +++ b/code/modules/admin/create_object.dm @@ -16,7 +16,7 @@ /datum/admins/proc/quick_create_object(mob/user) var/static/list/create_object_forms = list( /obj, /obj/structure, /obj/machinery, /obj/effect, - /obj/item, /obj/item/clothing, /obj/item/stack, /obj/item/device, + /obj/item, /obj/item/clothing, /obj/item/stack, /obj/item, /obj/item/reagent_containers, /obj/item/gun) var/path = input("Select the path of the object you wish to create.", "Path", /obj) in create_object_forms diff --git a/code/modules/admin/fun_balloon.dm b/code/modules/admin/fun_balloon.dm index 6ce6188590..b5dfbf7817 100644 --- a/code/modules/admin/fun_balloon.dm +++ b/code/modules/admin/fun_balloon.dm @@ -119,21 +119,13 @@ /obj/effect/forcefield/arena_shuttle name = "portal" + timeleft = 0 var/list/warp_points /obj/effect/forcefield/arena_shuttle/Initialize() . = ..() - warp_points = get_area_turfs(/area/shuttle/escape) - for(var/thing in warp_points) - CHECK_TICK - var/turf/T = thing - if(istype(T.loc, /area/shuttle/escape/backup)) - warp_points -= T - continue - for(var/atom/movable/TAM in T) - if(TAM.density && TAM.anchored) - warp_points -= T - break + for(var/obj/effect/landmark/shuttle_arena_safe/exit in GLOB.landmarks_list) + warp_points += exit /obj/effect/forcefield/arena_shuttle/CollidedWith(atom/movable/AM) if(!isliving(AM)) @@ -143,7 +135,7 @@ if(L.pulling && istype(L.pulling, /obj/item/bodypart/head)) to_chat(L, "Your offering is accepted. You may pass.") qdel(L.pulling) - var/turf/LA = pick(warp_points) + var/turf/LA = get_turf(pick(warp_points)) L.forceMove(LA) L.hallucination = 0 to_chat(L, "The battle is won. Your bloodlust subsides.") @@ -163,6 +155,7 @@ /obj/effect/forcefield/arena_shuttle_entrance name = "portal" + timeleft = 0 var/list/warp_points = list() /obj/effect/forcefield/arena_shuttle_entrance/CollidedWith(atom/movable/AM) diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm index 8ddcc1b593..03bd08f750 100644 --- a/code/modules/admin/player_panel.dm +++ b/code/modules/admin/player_panel.dm @@ -80,6 +80,8 @@ body += "N - " body += "VV - " body += "TP - " + if (job == "Cyborg") + body += "BP - " body += "PM - " body += "SM - " body += "FLW - " diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index eaa8ea908c..95dae05c09 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -21,9 +21,9 @@ if(!CheckAdminHref(href, href_list)) return - + citaTopic(href, href_list) //CITADEL EDIT, MENTORS - + if(href_list["ahelp"]) if(!check_rights(R_ADMIN, TRUE)) return @@ -522,7 +522,7 @@ var/duration - switch(alert("Temporary Ban?",,"Yes","No")) + switch(alert("Temporary Ban for [banned_key]?",,"Yes","No")) if("Yes") temp = 1 var/mins = 0 @@ -534,13 +534,13 @@ return minutes = GLOB.CMinutes + mins duration = GetExp(minutes) - reason = input(usr,"Please State Reason.","Reason",reason2) as message|null + reason = input(usr,"Please State Reason For Banning [banned_key].","Reason",reason2) as message|null if(!reason) return if("No") temp = 0 duration = "Perma" - reason = input(usr,"Please State Reason.","Reason",reason2) as message|null + reason = input(usr,"Please State Reason For Banning [banned_key].","Reason",reason2) as message|null if(!reason) return @@ -955,13 +955,13 @@ //Banning comes first if(notbannedlist.len) //at least 1 unbanned job exists in joblist so we have stuff to ban. - switch(alert("Temporary Ban?",,"Yes","No", "Cancel")) + switch(alert("Temporary Ban for [M.ckey]?",,"Yes","No", "Cancel")) if("Yes") var/mins = input(usr,"How long (in minutes)?","Ban time",1440) as num|null if(mins <= 0) to_chat(usr, "[mins] is not a valid duration.") return - var/reason = input(usr,"Please State Reason.","Reason") as message|null + var/reason = input(usr,"Please State Reason For Banning [M.ckey].","Reason") as message|null if(!reason) return @@ -986,7 +986,7 @@ href_list["jobban2"] = 1 // lets it fall through and refresh return 1 if("No") - var/reason = input(usr,"Please State Reason","Reason") as message|null + var/reason = input(usr,"Please State Reason For Banning [M.ckey].","Reason") as message|null if(reason) var/msg for(var/job in notbannedlist) @@ -1194,13 +1194,13 @@ if(M.client && M.client.holder) return //admins cannot be banned. Even if they could, the ban doesn't affect them anyway - switch(alert("Temporary Ban?",,"Yes","No", "Cancel")) + switch(alert("Temporary Ban for [M.ckey]?",,"Yes","No", "Cancel")) if("Yes") var/mins = input(usr,"How long (in minutes)?","Ban time",1440) as num|null if(mins <= 0) to_chat(usr, "[mins] is not a valid duration.") return - var/reason = input(usr,"Please State Reason.","Reason") as message|null + var/reason = input(usr,"Please State Reason For Banning [M.ckey].","Reason") as message|null if(!reason) return if(!DB_ban_record(BANTYPE_TEMP, M, mins, reason)) @@ -1223,7 +1223,7 @@ AH.Resolve() qdel(M.client) if("No") - var/reason = input(usr,"Please State Reason.","Reason") as message|null + var/reason = input(usr,"Please State Reason For Banning [M.ckey].","Reason") as message|null if(!reason) return switch(alert(usr,"IP ban?",,"Yes","No","Cancel")) @@ -1804,7 +1804,7 @@ if(!istype(H)) to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human") return - if(!istype(H.ears, /obj/item/device/radio/headset)) + if(!istype(H.ears, /obj/item/radio/headset)) to_chat(usr, "The person you are trying to contact is not wearing a headset.") return @@ -1823,7 +1823,7 @@ if(!istype(H)) to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human.") return - if(!istype(H.ears, /obj/item/device/radio/headset)) + if(!istype(H.ears, /obj/item/radio/headset)) to_chat(usr, "The person you are trying to contact is not wearing a headset.") return @@ -1921,6 +1921,16 @@ else show_traitor_panel(M) + else if(href_list["borgpanel"]) + if(!check_rights(R_ADMIN)) + return + + var/mob/M = locate(href_list["borgpanel"]) + if(!iscyborg(M)) + to_chat(usr, "This can only be used on cyborgs") + else + open_borgopanel(M) + else if(href_list["initmind"]) if(!check_rights(R_ADMIN)) return diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index a7cddae2d5..2a6b4448d2 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -398,7 +398,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) message_admins(msg) log_admin_private(msg) AddInteraction("Being handled by [key_name]") - + //Show the ticket panel /datum/admin_help/proc/TicketPanel() var/list/dat = list("Ticket #[id]") @@ -534,28 +534,6 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) new /datum/admin_help(msg, src, FALSE) -//admin proc -/client/proc/cmd_admin_ticket_panel() - set name = "Show Ticket List" - set category = "Admin" - - if(!check_rights(R_ADMIN, TRUE)) - return - - var/browse_to - - switch(input("Display which ticket list?") as null|anything in list("Active Tickets", "Closed Tickets", "Resolved Tickets")) - if("Active Tickets") - browse_to = AHELP_ACTIVE - if("Closed Tickets") - browse_to = AHELP_CLOSED - if("Resolved Tickets") - browse_to = AHELP_RESOLVED - else - return - - GLOB.ahelp_tickets.BrowseTickets(browse_to) - // // LOGGING // diff --git a/code/modules/admin/verbs/adminjump.dm b/code/modules/admin/verbs/adminjump.dm index 779ea64640..1e96cc507e 100644 --- a/code/modules/admin/verbs/adminjump.dm +++ b/code/modules/admin/verbs/adminjump.dm @@ -10,11 +10,10 @@ return var/list/turfs = list() - for(var/area/Ar in A.related) - for(var/turf/T in Ar) - if(T.density) - continue - turfs.Add(T) + for(var/turf/T in A) + if(T.density) + continue + turfs.Add(T) var/turf/T = safepick(turfs) if(!T) diff --git a/code/modules/admin/verbs/borgpanel.dm b/code/modules/admin/verbs/borgpanel.dm new file mode 100644 index 0000000000..8a162e7794 --- /dev/null +++ b/code/modules/admin/verbs/borgpanel.dm @@ -0,0 +1,217 @@ +/datum/admins/proc/open_borgopanel(borgo in GLOB.silicon_mobs) + set category = "Admin" + set name = "Show Borg Panel" + set desc = "Show borg panel" + + if(!check_rights(R_ADMIN)) + return + + if (!istype(borgo, /mob/living/silicon/robot)) + borgo = input("Select a borg", "Select a borg", null, null) as null|anything in GLOB.silicon_mobs + if (!istype(borgo, /mob/living/silicon/robot)) + to_chat(usr, "Borg is required for borgpanel") + + var/datum/borgpanel/borgpanel = new(usr, borgo) + + borgpanel.ui_interact(usr) + + + +/datum/borgpanel + var/mob/living/silicon/robot/borg + var/user + +/datum/borgpanel/New(user, mob/living/silicon/robot/borg) + if(!istype(borg)) + CRASH("Borg panel is only available for borgs") + qdel(src) + if (istype(user, /mob)) + var/mob/M = user + if (!M.client) + CRASH("Borg panel attempted to open to a mob without a client") + src.user = M.client + else + src.user = user + src.borg = borg + +/datum/borgpanel/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.admin_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "borgopanel", "Borg Panel", 700, 700, master_ui, state) + ui.open() + +/datum/borgpanel/ui_data(mob/user) + . = list() + .["borg"] = list( + "ref" = REF(borg), + "name" = "[borg]", + "emagged" = borg.emagged, + "active_module" = "[borg.module.type]", + "lawupdate" = borg.lawupdate, + "lockdown" = borg.lockcharge, + "scrambledcodes" = borg.scrambledcodes + ) + .["upgrades"] = list() + for (var/upgradetype in subtypesof(/obj/item/borg/upgrade)-/obj/item/borg/upgrade/hypospray) //hypospray is a dummy parent for hypospray upgrades + var/obj/item/borg/upgrade/upgrade = upgradetype + if (initial(upgrade.module_type) && !istype(borg.module, initial(upgrade.module_type))) // Upgrade requires a different module + continue + var/installed = FALSE + if (locate(upgradetype) in borg) + installed = TRUE + .["upgrades"] += list(list("name" = initial(upgrade.name), "installed" = installed, "type" = upgradetype)) + .["laws"] = borg.laws ? borg.laws.get_law_list(include_zeroth = TRUE) : list() + .["channels"] = list() + for (var/k in GLOB.radiochannels) + if (k == "Common") + continue + .["channels"] += list(list("name" = k, "installed" = (k in borg.radio.channels))) + .["cell"] = borg.cell ? list("missing" = FALSE, "maxcharge" = borg.cell.maxcharge, "charge" = borg.cell.charge) : list("missing" = TRUE, "maxcharge" = 1, "charge" = 0) + .["modules"] = list() + for(var/moduletype in typesof(/obj/item/robot_module)) + var/obj/item/robot_module/module = moduletype + .["modules"] += list(list( + "name" = initial(module.name), + "type" = "[module]" + )) + .["ais"] = list(list("name" = "None", "ref" = "null", "connected" = isnull(borg.connected_ai))) + for(var/mob/living/silicon/ai/ai in GLOB.ai_list) + .["ais"] += list(list("name" = ai.name, "ref" = REF(ai), "connected" = (borg.connected_ai == ai))) + + +/datum/borgpanel/ui_act(action, params) + if(..()) + return + switch (action) + if ("set_charge") + var/newcharge = input("New charge (0-[borg.cell.maxcharge]):", borg.name, borg.cell.charge) as num|null + if (newcharge) + borg.cell.charge = CLAMP(newcharge, 0, borg.cell.maxcharge) + message_admins("[key_name_admin(user)] set the charge of [key_name_admin(borg)][ADMIN_FLW(borg)] to [borg.cell.charge].") + log_admin("[key_name(user)] set the charge of [key_name(borg)] to [borg.cell.charge].") + if ("remove_cell") + QDEL_NULL(borg.cell) + message_admins("[key_name_admin(user)] deleted the cell of [key_name_admin(borg)][ADMIN_FLW(borg)].") + log_admin("[key_name(user)] deleted the cell of [key_name(borg)].") + if ("change_cell") + var/chosen = pick_closest_path(null, make_types_fancy(typesof(/obj/item/stock_parts/cell))) + if (!ispath(chosen)) + chosen = text2path(chosen) + if (chosen) + if (borg.cell) + QDEL_NULL(borg.cell) + var/new_cell = new chosen(borg) + borg.cell = new_cell + borg.cell.charge = borg.cell.maxcharge + borg.diag_hud_set_borgcell() + message_admins("[key_name_admin(user)] changed the cell of [key_name_admin(borg)][ADMIN_FLW(borg)] to [new_cell].") + log_admin("[key_name(user)] changed the cell of [key_name(borg)] to [new_cell].") + if ("toggle_emagged") + borg.SetEmagged(!borg.emagged) + if (borg.emagged) + message_admins("[key_name_admin(user)] emagged [key_name_admin(borg)][ADMIN_FLW(borg)].") + log_admin("[key_name(user)] emagged [key_name(borg)].") + else + message_admins("[key_name_admin(user)] un-emagged [key_name_admin(borg)][ADMIN_FLW(borg)].") + log_admin("[key_name(user)] un-emagged [key_name(borg)].") + if ("toggle_lawupdate") + borg.lawupdate = !borg.lawupdate + if (borg.lawupdate) + message_admins("[key_name_admin(user)] enabled lawsync on [key_name_admin(borg)][ADMIN_FLW(borg)].") + log_admin("[key_name(user)] enabled lawsync on [key_name(borg)].") + else + message_admins("[key_name_admin(user)] disabled lawsync on [key_name_admin(borg)][ADMIN_FLW(borg)].") + log_admin("[key_name(user)] disabled lawsync on [key_name(borg)].") + if ("toggle_lockdown") + borg.SetLockdown(!borg.lockcharge) + if (borg.lockcharge) + message_admins("[key_name_admin(user)] locked down [key_name_admin(borg)][ADMIN_FLW(borg)].") + log_admin("[key_name(user)] locked down [key_name(borg)].") + else + message_admins("[key_name_admin(user)] released [key_name_admin(borg)][ADMIN_FLW(borg)] from lockdown.") + log_admin("[key_name(user)] released [key_name(borg)] from lockdown.") + if ("toggle_scrambledcodes") + borg.scrambledcodes = !borg.scrambledcodes + if (borg.scrambledcodes) + message_admins("[key_name_admin(user)] enabled scrambled codes on [key_name_admin(borg)][ADMIN_FLW(borg)].") + log_admin("[key_name(user)] enabled scrambled codes on [key_name(borg)].") + else + message_admins("[key_name_admin(user)] disabled scrambled codes on [key_name_admin(borg)][ADMIN_FLW(borg)].") + log_admin("[key_name(user)] disabled scrambled codes on [key_name(borg)].") + if ("rename") + var/new_name = stripped_input(user,"What would you like to name this cyborg?","Input a name",borg.real_name,MAX_NAME_LEN) + if(!new_name) + return + message_admins("[key_name_admin(user)] renamed [key_name_admin(borg)][ADMIN_FLW(borg)] to [new_name].") + log_admin("[key_name(user)] renamed [key_name(borg)] to [new_name].") + borg.fully_replace_character_name(borg.real_name,new_name) + if ("toggle_upgrade") + var/upgradepath = text2path(params["upgrade"]) + var/obj/item/borg/upgrade/installedupgrade = locate(upgradepath) in borg + if (installedupgrade) + installedupgrade.deactivate(borg, user) + borg.upgrades -= installedupgrade + message_admins("[key_name_admin(user)] removed the [installedupgrade] upgrade from [key_name_admin(borg)][ADMIN_FLW(borg)].") + log_admin("[key_name(user)] removed the [installedupgrade] upgrade from [key_name(borg)].") + qdel(installedupgrade) + else + var/obj/item/borg/upgrade/upgrade = new upgradepath(borg) + upgrade.action(borg, user) + borg.upgrades += upgrade + message_admins("[key_name_admin(user)] added the [upgrade] borg upgrade to [key_name_admin(borg)][ADMIN_FLW(borg)].") + log_admin("[key_name(user)] added the [upgrade] borg upgrade to [key_name(borg)].") + if ("toggle_radio") + var/channel = params["channel"] + if (channel in borg.radio.channels) // We're removing a channel + if (!borg.radio.keyslot) // There's no encryption key. This shouldn't happen but we can cope + borg.radio.channels -= channel + if (channel == "Syndicate") + borg.radio.syndie = FALSE + else if (channel == "CentCom") + borg.radio.independent = FALSE + else + borg.radio.keyslot.channels -= channel + if (channel == "Syndicate") + borg.radio.keyslot.syndie = FALSE + else if (channel == "CentCom") + borg.radio.keyslot.independent = FALSE + message_admins("[key_name_admin(user)] removed the [channel] radio channel from [key_name_admin(borg)][ADMIN_FLW(borg)].") + log_admin("[key_name(user)] removed the [channel] radio channel from [key_name(borg)].") + else // We're adding a channel + if (!borg.radio.keyslot) // Assert that an encryption key exists + borg.radio.keyslot = new (borg.radio) + borg.radio.keyslot.channels[channel] = 1 + if (channel == "Syndicate") + borg.radio.keyslot.syndie = TRUE + else if (channel == "CentCom") + borg.radio.keyslot.independent = TRUE + message_admins("[key_name_admin(user)] added the [channel] radio channel to [key_name_admin(borg)][ADMIN_FLW(borg)].") + log_admin("[key_name(user)] added the [channel] radio channel to [key_name(borg)].") + borg.radio.recalculateChannels() + if ("setmodule") + var/newmodulepath = text2path(params["module"]) + if (ispath(newmodulepath)) + borg.module.transform_to(newmodulepath) + message_admins("[key_name_admin(user)] changed the module of [key_name_admin(borg)][ADMIN_FLW(borg)] to [newmodulepath].") + log_admin("[key_name(user)] changed the module of [key_name(borg)] to [newmodulepath].") + if ("slavetoai") + var/mob/living/silicon/ai/newai = locate(params["slavetoai"]) in GLOB.ai_list + if (newai && newai != borg.connected_ai) + borg.notify_ai(DISCONNECT) + if(borg.shell) + borg.undeploy() + borg.connected_ai = newai + borg.notify_ai(TRUE) + message_admins("[key_name_admin(user)] slaved [key_name_admin(borg)][ADMIN_FLW(borg)] to the AI [key_name_admin(newai)][ADMIN_FLW(newai)].") + log_admin("[key_name(user)] slaved [key_name(borg)] to the AI [key_name(newai)].") + else if (params["slavetoai"] == "null") + borg.notify_ai(DISCONNECT) + if(borg.shell) + borg.undeploy() + borg.connected_ai = null + message_admins("[key_name_admin(user)] freed [key_name_admin(borg)][ADMIN_FLW(borg)] from being slaved to an AI.") + log_admin("[key_name(user)] freed [key_name(borg)] from being slaved to an AI.") + if (borg.lawupdate) + borg.lawsync() + + . = TRUE diff --git a/code/modules/admin/verbs/buildmode.dm b/code/modules/admin/verbs/buildmode.dm index 3907c87bab..4718ba925d 100644 --- a/code/modules/admin/verbs/buildmode.dm +++ b/code/modules/admin/verbs/buildmode.dm @@ -142,6 +142,7 @@ if(ADV_BUILDMODE) dat += "***********************************************************" dat += "Right Mouse Button on buildmode button = Set object type" + dat += "Left Mouse Button + alt on turf/obj = Copy object type" dat += "Left Mouse Button on turf/obj = Place objects" dat += "Right Mouse Button = Delete objects" dat += "" @@ -270,25 +271,20 @@ if(isturf(object) && left_click && !alt_click && !ctrl_click) var/turf/T = object if(isspaceturf(object)) - T.ChangeTurf(/turf/open/floor/plasteel) + T.PlaceOnTop(/turf/open/floor/plating) + else if(isplatingturf(object)) + T.PlaceOnTop(/turf/open/floor/plasteel) else if(isfloorturf(object)) - T.ChangeTurf(/turf/closed/wall) + T.PlaceOnTop(/turf/closed/wall) else if(iswallturf(object)) - T.ChangeTurf(/turf/closed/wall/r_wall) - T.assemble_baseturfs(initial(T.baseturfs)) + T.PlaceOnTop(/turf/closed/wall/r_wall) log_admin("Build Mode: [key_name(user)] built [T] at ([T.x],[T.y],[T.z])") return else if(right_click) log_admin("Build Mode: [key_name(user)] deleted [object] at ([object.x],[object.y],[object.z])") - if(iswallturf(object)) + if(isturf(object)) var/turf/T = object - T.ChangeTurf(/turf/open/floor/plasteel) - else if(isfloorturf(object)) - var/turf/T = object - T.ChangeTurf(/turf/open/space) - else if(istype(object, /turf/closed/wall/r_wall)) - var/turf/T = object - T.ChangeTurf(/turf/closed/wall) + T.ScrapeAway() else if(isobj(object)) qdel(object) return @@ -296,29 +292,22 @@ log_admin("Build Mode: [key_name(user)] built an airlock at ([object.x],[object.y],[object.z])") new/obj/machinery/door/airlock(get_turf(object)) else if(isturf(object) && ctrl_click && left_click) - switch(build_dir) - if(NORTH) - var/obj/structure/window/reinforced/WIN = new/obj/structure/window/reinforced(get_turf(object)) - WIN.setDir(NORTH) - if(SOUTH) - var/obj/structure/window/reinforced/WIN = new/obj/structure/window/reinforced(get_turf(object)) - WIN.setDir(SOUTH) - if(EAST) - var/obj/structure/window/reinforced/WIN = new/obj/structure/window/reinforced(get_turf(object)) - WIN.setDir(EAST) - if(WEST) - var/obj/structure/window/reinforced/WIN = new/obj/structure/window/reinforced(get_turf(object)) - WIN.setDir(WEST) - if(NORTHWEST) - var/obj/structure/window/reinforced/WIN = new/obj/structure/window/reinforced/fulltile(get_turf(object)) - WIN.setDir(NORTHWEST) + var/obj/structure/window/reinforced/window + if(build_dir == NORTHWEST) + window = new /obj/structure/window/reinforced/fulltile(get_turf(object)) + else + window = new /obj/structure/window/reinforced(get_turf(object)) + window.setDir(build_dir) log_admin("Build Mode: [key_name(user)] built a window at ([object.x],[object.y],[object.z])") if(ADV_BUILDMODE) - if(left_click) + if(left_click && alt_click) + objholder = object.type + to_chat(user, "[initial(object.name)] ([object.type]) selected.") + else if(left_click) if(ispath(objholder, /turf)) var/turf/T = get_turf(object) log_admin("Build Mode: [key_name(user)] modified [T] ([T.x],[T.y],[T.z]) to [objholder]") - T.ChangeTurf(objholder) + T.PlaceOnTop(objholder) else var/obj/A = new objholder (get_turf(object)) A.setDir(build_dir) diff --git a/code/modules/admin/verbs/deadsay.dm b/code/modules/admin/verbs/deadsay.dm index 8d24e92e81..54614cf8ef 100644 --- a/code/modules/admin/verbs/deadsay.dm +++ b/code/modules/admin/verbs/deadsay.dm @@ -30,3 +30,7 @@ M.show_message(rendered, 2) SSblackbox.record_feedback("tally", "admin_verb", 1, "Dsay") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/get_dead_say() + var/msg = input(src, null, "dsay \"text\"") as text + dsay(msg) diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 9460e71ea0..7d4d5fa05e 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -308,7 +308,7 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention) var/confirm = input("[choice.key] isn't ghosting right now. Are you sure you want to yank him out of them out of their body and place them in this pAI?", "Spawn pAI Confirmation", "No") in list("Yes", "No") if(confirm != "Yes") return 0 - var/obj/item/device/paicard/card = new(T) + var/obj/item/paicard/card = new(T) var/mob/living/silicon/pai/pai = new(card) pai.name = input(choice, "Enter your pAI name:", "pAI Name", "Personal AI") as text pai.real_name = pai.name @@ -357,7 +357,7 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention) var/typename = "[type]" var/static/list/TYPES_SHORTCUTS = list( /obj/effect/decal/cleanable = "CLEANABLE", - /obj/item/device/radio/headset = "HEADSET", + /obj/item/radio/headset = "HEADSET", /obj/item/clothing/head/helmet/space = "SPESSHELMET", /obj/item/book/manual = "MANUAL", /obj/item/reagent_containers/food/drinks = "DRINK", //longest paths comes first @@ -466,8 +466,8 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention) id.update_label() if(worn) - if(istype(worn, /obj/item/device/pda)) - var/obj/item/device/pda/PDA = worn + if(istype(worn, /obj/item/pda)) + var/obj/item/pda/PDA = worn PDA.id = id id.forceMove(PDA) else if(istype(worn, /obj/item/storage/wallet)) @@ -626,7 +626,7 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention) areas_with_LS.Add(A.type) CHECK_TICK - for(var/obj/item/device/radio/intercom/I in GLOB.machines) + for(var/obj/item/radio/intercom/I in GLOB.machines) var/area/A = get_area(I) if(!A) dat += "Skipped over [I] in invalid location, [I.loc].
    " diff --git a/code/modules/admin/verbs/getlogs.dm b/code/modules/admin/verbs/getlogs.dm index 062d045862..5f7b7becc6 100644 --- a/code/modules/admin/verbs/getlogs.dm +++ b/code/modules/admin/verbs/getlogs.dm @@ -4,7 +4,17 @@ set desc = "View/retrieve logfiles." set category = "Admin" - var/path = browse_files("data/logs/") + browseserverlogs() + +/client/proc/getcurrentlogs() + set name = "Get Current Logs" + set desc = "View/retrieve logfiles for the current round." + set category = "Admin" + + browseserverlogs("[GLOB.log_directory]/") + +/client/proc/browseserverlogs(path = "data/logs/") + path = browse_files(path) if(!path) return @@ -22,4 +32,4 @@ else return to_chat(src, "Attempting to send [path], this may take a fair few minutes if the file is very large.") - return + return \ No newline at end of file diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm index 745dd05749..c62ee34dac 100644 --- a/code/modules/admin/verbs/mapping.dm +++ b/code/modules/admin/verbs/mapping.dm @@ -136,7 +136,7 @@ GLOBAL_LIST_INIT(admin_verbs_debug_mapping, list( qdel(M) if(intercom_range_display_status) - for(var/obj/item/device/radio/intercom/I in world) + for(var/obj/item/radio/intercom/I in world) for(var/turf/T in orange(7,I)) var/obj/effect/debugging/marker/F = new/obj/effect/debugging/marker(T) if (!(F in view(7,I.loc))) diff --git a/code/modules/admin/verbs/onlyone.dm b/code/modules/admin/verbs/onlyone.dm index 7c9d89e88d..05f56047cb 100644 --- a/code/modules/admin/verbs/onlyone.dm +++ b/code/modules/admin/verbs/onlyone.dm @@ -8,7 +8,9 @@ GLOBAL_VAR_INIT(highlander, FALSE) send_to_playing_players("THERE CAN BE ONLY ONE") for(var/obj/item/disk/nuclear/N in GLOB.poi_list) - N.relocate() //Gets it out of bags and such + var/datum/component/stationloving/component = N.GetComponent(/datum/component/stationloving) + if (component) + component.relocate() //Gets it out of bags and such for(var/mob/living/carbon/human/H in GLOB.player_list) if(H.stat == DEAD || !(H.client)) diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index c1061aff5d..83d4f64748 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -1001,25 +1001,6 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits "} usr << browse(dat, "window=dressup;size=550x600") -/client/proc/toggle_antag_hud() - set category = "Admin" - set name = "Toggle AntagHUD" - set desc = "Toggles the Admin AntagHUD" - - if(!check_rights(R_ADMIN)) - return - - var/adding_hud = !has_antag_hud() - - for(var/datum/atom_hud/H in GLOB.huds) - if(istype(H, /datum/atom_hud/antag)) - (adding_hud) ? H.add_hud_to(usr) : H.remove_hud_from(usr) - - to_chat(usr, "You toggled your admin antag HUD [adding_hud ? "ON" : "OFF"].") - message_admins("[key_name_admin(usr)] toggled their admin antag HUD [adding_hud ? "ON" : "OFF"].") - log_admin("[key_name(usr)] toggled their admin antag HUD [adding_hud ? "ON" : "OFF"].") - SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle Antag HUD", "[adding_hud ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - /client/proc/toggle_combo_hud() set category = "Admin" set name = "Toggle Combo HUD" diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm index 72049ad7d1..d14c749992 100644 --- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm +++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm @@ -16,7 +16,7 @@ armor = list("melee" = 15, "bullet" = 15, "laser" = 15, "energy" = 15, "bomb" = 15, "bio" = 15, "rad" = 15, "fire" = 70, "acid" = 70) actions_types = list(/datum/action/item_action/hands_free/activate) allowed = list( - /obj/item/device/abductor, + /obj/item/abductor, /obj/item/abductor_baton, /obj/item/melee/baton, /obj/item/gun/energy, @@ -129,16 +129,16 @@ . = ..() -/obj/item/device/abductor +/obj/item/abductor icon = 'icons/obj/abductor.dmi' -/obj/item/device/abductor/proc/AbductorCheck(user) +/obj/item/abductor/proc/AbductorCheck(user) if(isabductor(user)) return TRUE to_chat(user, "You can't figure how this works!") return FALSE -/obj/item/device/abductor/proc/ScientistCheck(user) +/obj/item/abductor/proc/ScientistCheck(user) if(!AbductorCheck(user)) return FALSE @@ -149,7 +149,7 @@ to_chat(user, "You're not trained to use this!") return FALSE -/obj/item/device/abductor/gizmo +/obj/item/abductor/gizmo name = "science tool" desc = "A dual-mode tool for retrieving specimens and scanning appearances. Scanning can be done through cameras." icon_state = "gizmo_scan" @@ -160,7 +160,7 @@ var/mob/living/marked = null var/obj/machinery/abductor/console/console -/obj/item/device/abductor/gizmo/attack_self(mob/user) +/obj/item/abductor/gizmo/attack_self(mob/user) if(!ScientistCheck(user)) return if(!console) @@ -175,7 +175,7 @@ icon_state = "gizmo_scan" to_chat(user, "You switch the device to [mode==GIZMO_SCAN? "SCAN": "MARK"] MODE") -/obj/item/device/abductor/gizmo/attack(mob/living/M, mob/user) +/obj/item/abductor/gizmo/attack(mob/living/M, mob/user) if(!ScientistCheck(user)) return if(!console) @@ -189,7 +189,7 @@ mark(M, user) -/obj/item/device/abductor/gizmo/afterattack(atom/target, mob/living/user, flag, params) +/obj/item/abductor/gizmo/afterattack(atom/target, mob/living/user, flag, params) if(flag) return if(!ScientistCheck(user)) @@ -204,12 +204,12 @@ if(GIZMO_MARK) mark(target, user) -/obj/item/device/abductor/gizmo/proc/scan(atom/target, mob/living/user) +/obj/item/abductor/gizmo/proc/scan(atom/target, mob/living/user) if(ishuman(target)) console.AddSnapshot(target) to_chat(user, "You scan [target] and add them to the database.") -/obj/item/device/abductor/gizmo/proc/mark(atom/target, mob/living/user) +/obj/item/abductor/gizmo/proc/mark(atom/target, mob/living/user) if(marked == target) to_chat(user, "This specimen is already marked!") return @@ -222,7 +222,7 @@ else prepare(target,user) -/obj/item/device/abductor/gizmo/proc/prepare(atom/target, mob/living/user) +/obj/item/abductor/gizmo/proc/prepare(atom/target, mob/living/user) if(get_dist(target,user)>1) to_chat(user, "You need to be next to the specimen to prepare it for transport!") return @@ -231,13 +231,13 @@ marked = target to_chat(user, "You finish preparing [target] for transport.") -/obj/item/device/abductor/gizmo/Destroy() +/obj/item/abductor/gizmo/Destroy() if(console) console.gizmo = null . = ..() -/obj/item/device/abductor/silencer +/obj/item/abductor/silencer name = "abductor silencer" desc = "A compact device used to shut down communications equipment." icon_state = "silencer" @@ -245,19 +245,19 @@ lefthand_file = 'icons/mob/inhands/antag/abductor_lefthand.dmi' righthand_file = 'icons/mob/inhands/antag/abductor_righthand.dmi' -/obj/item/device/abductor/silencer/attack(mob/living/M, mob/user) +/obj/item/abductor/silencer/attack(mob/living/M, mob/user) if(!AbductorCheck(user)) return radio_off(M, user) -/obj/item/device/abductor/silencer/afterattack(atom/target, mob/living/user, flag, params) +/obj/item/abductor/silencer/afterattack(atom/target, mob/living/user, flag, params) if(flag) return if(!AbductorCheck(user)) return radio_off(target, user) -/obj/item/device/abductor/silencer/proc/radio_off(atom/target, mob/living/user) +/obj/item/abductor/silencer/proc/radio_off(atom/target, mob/living/user) if( !(user in (viewers(7,target))) ) return @@ -270,17 +270,17 @@ to_chat(user, "You silence [M]'s radio devices.") radio_off_mob(M) -/obj/item/device/abductor/silencer/proc/radio_off_mob(mob/living/carbon/human/M) +/obj/item/abductor/silencer/proc/radio_off_mob(mob/living/carbon/human/M) var/list/all_items = M.GetAllContents() for(var/obj/I in all_items) - if(istype(I, /obj/item/device/radio/)) - var/obj/item/device/radio/r = I + if(istype(I, /obj/item/radio/)) + var/obj/item/radio/r = I r.listening = 0 - if(!istype(I, /obj/item/device/radio/headset)) + if(!istype(I, /obj/item/radio/headset)) r.broadcasting = 0 //goddamned headset hacks -/obj/item/device/abductor/mind_device +/obj/item/abductor/mind_device name = "mental interface device" desc = "A dual-mode tool for directly communicating with sentient brains. It can be used to send a direct message to a target, \ or to send a command to a test subject with a charged gland." @@ -290,7 +290,7 @@ righthand_file = 'icons/mob/inhands/antag/abductor_righthand.dmi' var/mode = MIND_DEVICE_MESSAGE -/obj/item/device/abductor/mind_device/attack_self(mob/user) +/obj/item/abductor/mind_device/attack_self(mob/user) if(!ScientistCheck(user)) return @@ -302,7 +302,7 @@ icon_state = "mind_device_message" to_chat(user, "You switch the device to [mode==MIND_DEVICE_MESSAGE? "TRANSMISSION": "COMMAND"] MODE") -/obj/item/device/abductor/mind_device/afterattack(atom/target, mob/living/user, flag, params) +/obj/item/abductor/mind_device/afterattack(atom/target, mob/living/user, flag, params) if(!ScientistCheck(user)) return @@ -312,7 +312,7 @@ if(MIND_DEVICE_MESSAGE) mind_message(target, user) -/obj/item/device/abductor/mind_device/proc/mind_control(atom/target, mob/living/user) +/obj/item/abductor/mind_device/proc/mind_control(atom/target, mob/living/user) if(iscarbon(target)) var/mob/living/carbon/C = target var/obj/item/organ/heart/gland/G = C.getorganslot("heart") @@ -345,7 +345,7 @@ G.mind_control(command, user) to_chat(user, "You send the command to your target.") -/obj/item/device/abductor/mind_device/proc/mind_message(atom/target, mob/living/user) +/obj/item/abductor/mind_device/proc/mind_message(atom/target, mob/living/user) if(isliving(target)) var/mob/living/L = target if(L.stat == DEAD) @@ -362,7 +362,7 @@ log_talk(user,"[key_name(user)] sent an abductor mind message to [L]/[L.ckey]: '[message]'", LOGSAY) -/obj/item/device/firing_pin/abductor +/obj/item/firing_pin/abductor name = "alien firing pin" icon_state = "firing_pin_ayy" desc = "This firing pin is slimy and warm; you can swear you feel it \ @@ -370,14 +370,14 @@ fail_message = "\ Firing error, please contact Command." -/obj/item/device/firing_pin/abductor/pin_auth(mob/living/user) +/obj/item/firing_pin/abductor/pin_auth(mob/living/user) . = isabductor(user) /obj/item/gun/energy/alien name = "alien pistol" desc = "A complicated gun that fires bursts of high-intensity radiation." ammo_type = list(/obj/item/ammo_casing/energy/declone) - pin = /obj/item/device/firing_pin/abductor + pin = /obj/item/firing_pin/abductor icon_state = "alienpistol" item_state = "alienpistol" trigger_guard = TRIGGER_GUARD_ALLOW_ALL @@ -613,20 +613,20 @@ Congratulations! You are now trained for invasive xenobiology research!"} if(BATON_PROBE) to_chat(user, "The baton is in probing mode.") -/obj/item/device/radio/headset/abductor +/obj/item/radio/headset/abductor name = "alien headset" desc = "An advanced alien headset designed to monitor communications of human space stations. Why does it have a microphone? No one knows." icon = 'icons/obj/abductor.dmi' icon_state = "abductor_headset" item_state = "abductor_headset" - keyslot2 = new /obj/item/device/encryptionkey/heads/captain + keyslot2 = new /obj/item/encryptionkey/heads/captain flags_2 = BANG_PROTECT_2 -/obj/item/device/radio/headset/abductor/Initialize(mapload) +/obj/item/radio/headset/abductor/Initialize(mapload) . = ..() make_syndie() -/obj/item/device/radio/headset/abductor/attackby(obj/item/W, mob/user, params) +/obj/item/radio/headset/abductor/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/screwdriver)) return // Stops humans from disassembling abductor headsets. return ..() diff --git a/code/modules/antagonists/abductor/equipment/abduction_outfits.dm b/code/modules/antagonists/abductor/equipment/abduction_outfits.dm index e01afccc5b..8b8851ec18 100644 --- a/code/modules/antagonists/abductor/equipment/abduction_outfits.dm +++ b/code/modules/antagonists/abductor/equipment/abduction_outfits.dm @@ -3,7 +3,7 @@ uniform = /obj/item/clothing/under/color/grey //they're greys gettit shoes = /obj/item/clothing/shoes/combat back = /obj/item/storage/backpack - ears = /obj/item/device/radio/headset/abductor + ears = /obj/item/radio/headset/abductor /datum/outfit/abductor/proc/link_to_console(mob/living/carbon/human/H, team_number) var/datum/antagonist/abductor/A = H.mind.has_antag_datum(/datum/antagonist/abductor) @@ -21,7 +21,7 @@ var/obj/item/storage/backpack/B = locate() in H if(B) - for(var/obj/item/device/abductor/gizmo/G in B.contents) + for(var/obj/item/abductor/gizmo/G in B.contents) console.AddGizmo(G) /datum/outfit/abductor/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) @@ -39,14 +39,14 @@ backpack_contents = list( /obj/item/gun/energy/alien = 1, - /obj/item/device/abductor/silencer = 1 + /obj/item/abductor/silencer = 1 ) /datum/outfit/abductor/scientist name = "Abductor Scientist" backpack_contents = list( - /obj/item/device/abductor/gizmo = 1 + /obj/item/abductor/gizmo = 1 ) /datum/outfit/abductor/scientist/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) diff --git a/code/modules/antagonists/abductor/machinery/console.dm b/code/modules/antagonists/abductor/machinery/console.dm index 1b11094d43..08776318c8 100644 --- a/code/modules/antagonists/abductor/machinery/console.dm +++ b/code/modules/antagonists/abductor/machinery/console.dm @@ -18,7 +18,7 @@ icon_state = "console" density = TRUE anchored = TRUE - var/obj/item/device/abductor/gizmo/gizmo + var/obj/item/abductor/gizmo/gizmo var/obj/item/clothing/suit/armor/abductor/vest/vest var/obj/machinery/abductor/experiment/experiment var/obj/machinery/abductor/pad/pad @@ -106,13 +106,13 @@ if("helmet") Dispense(/obj/item/clothing/head/helmet/abductor) if("silencer") - Dispense(/obj/item/device/abductor/silencer) + Dispense(/obj/item/abductor/silencer) if("tool") - Dispense(/obj/item/device/abductor/gizmo) + Dispense(/obj/item/abductor/gizmo) if("vest") Dispense(/obj/item/clothing/suit/armor/abductor/vest) if("mind_device") - Dispense(/obj/item/device/abductor/mind_device,cost=2) + Dispense(/obj/item/abductor/mind_device,cost=2) updateUsrDialog() /obj/machinery/abductor/console/proc/TeleporterRetrieve() @@ -181,7 +181,7 @@ return disguises[entry.name] = entry -/obj/machinery/abductor/console/proc/AddGizmo(obj/item/device/abductor/gizmo/G) +/obj/machinery/abductor/console/proc/AddGizmo(obj/item/abductor/gizmo/G) if(G == gizmo && G.console == src) return FALSE @@ -205,7 +205,7 @@ return TRUE /obj/machinery/abductor/console/attackby(obj/O, mob/user, params) - if(istype(O, /obj/item/device/abductor/gizmo) && AddGizmo(O)) + if(istype(O, /obj/item/abductor/gizmo) && AddGizmo(O)) to_chat(user, "You link the tool to the console.") else if(istype(O, /obj/item/clothing/suit/armor/abductor/vest) && AddVest(O)) to_chat(user, "You link the vest to the console.") diff --git a/code/modules/antagonists/blob/blob/blobs/blob_mobs.dm b/code/modules/antagonists/blob/blob/blobs/blob_mobs.dm index cb61eec921..69af4bf584 100644 --- a/code/modules/antagonists/blob/blob/blobs/blob_mobs.dm +++ b/code/modules/antagonists/blob/blob/blobs/blob_mobs.dm @@ -120,6 +120,7 @@ health = maxHealth name = "blob zombie" desc = "A shambling corpse animated by the blob." + mob_biotypes += MOB_HUMANOID melee_damage_lower += 8 melee_damage_upper += 11 movement_type = GROUND diff --git a/code/modules/antagonists/blob/blob/theblob.dm b/code/modules/antagonists/blob/blob/theblob.dm index e57ce9d1d9..6fda7df130 100644 --- a/code/modules/antagonists/blob/blob/theblob.dm +++ b/code/modules/antagonists/blob/blob/theblob.dm @@ -227,7 +227,7 @@ return 15 /obj/structure/blob/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/device/analyzer)) + if(istype(I, /obj/item/analyzer)) user.changeNext_move(CLICK_CD_MELEE) to_chat(user, "The analyzer beeps once, then reports:
    ") SEND_SOUND(user, sound('sound/machines/ping.ogg')) diff --git a/code/modules/antagonists/borer/borer.dm b/code/modules/antagonists/borer/borer.dm deleted file mode 100644 index 4bcbaa455e..0000000000 --- a/code/modules/antagonists/borer/borer.dm +++ /dev/null @@ -1,1099 +0,0 @@ -/mob/living/captive_brain - name = "host brain" - real_name = "host brain" - -/mob/living/captive_brain/say(var/message) - - if(client) - if(client.prefs.muted & MUTE_IC) - to_chat(src, "You cannot speak in IC (muted).") - return - if(client.handle_spam_prevention(message,MUTE_IC)) - return - - if(isborer(loc)) - - message = sanitize(message) - if(!message) - return - log_say("[key_name(src)] : [message]") - if(stat == 2) - return say_dead(message) - - var/mob/living/simple_animal/borer/B = loc - to_chat(src, "You whisper silently, \"[message]\"") - to_chat(B.victim, "The captive mind of [src] whispers, \"[message]\"") - - for (var/mob/M in GLOB.player_list) - if(isnewplayer(M)) - continue - else if(M.stat == 2 && M.client.prefs.toggles & CHAT_GHOSTEARS) - to_chat(M, "Thought-speech, [src] -> [B.truename]: [message]") - -/mob/living/captive_brain/emote(var/message) - return - -/mob/living/captive_brain/resist() - - var/mob/living/simple_animal/borer/B = loc - - to_chat(src, "You begin doggedly resisting the parasite's control (this will take approximately 40 seconds).") - to_chat(B.victim, "You feel the captive mind of [src] begin to resist your control.") - - var/delay = rand(150,250) + B.victim.getBrainLoss() - addtimer(CALLBACK(src, .proc/return_control, src.loc), delay) - -/mob/living/captive_brain/proc/return_control(mob/living/simple_animal/borer/B) - if(!B || !B.controlling) - return - - B.victim.adjustBrainLoss(rand(5,10)) - to_chat(src, "With an immense exertion of will, you regain control of your body!") - to_chat(B.victim, "You feel control of the host brain ripped from your grasp, and retract your probosci before the wild neural impulses can damage you.") - B.detatch() - -GLOBAL_LIST_EMPTY(borers) -GLOBAL_VAR_INIT(total_borer_hosts_needed, 10) - -/mob/living/simple_animal/borer - name = "cortical borer" - real_name = "cortical borer" - desc = "A small, quivering, slug-like creature." - icon = 'icons/mob/borer.dmi' - icon_state = "brainslug" - icon_living = "brainslug" - icon_dead = "brainslug_dead" - health = 20 - maxHealth = 20 - melee_damage_lower = 5 - melee_damage_upper = 5 - stop_automated_movement = TRUE - attacktext = "chomps" - attack_sound = 'sound/weapons/bite.ogg' - pass_flags = PASSTABLE | PASSMOB - mob_size = MOB_SIZE_SMALL - faction = list("creature") - ventcrawler = VENTCRAWLER_ALWAYS - atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) - minbodytemp = 0 - maxbodytemp = 1500 - - var/generation = 1 - var/static/list/borer_names = list( - "Primary", "Secondary", "Tertiary", "Quaternary", "Quinary", "Senary", - "Septenary", "Octonary", "Novenary", "Decenary", "Undenary", "Duodenary", - ) - - var/mob/living/carbon/victim = null - var/mob/living/captive_brain/host_brain = null - var/truename - var/docile = FALSE - var/bonding = FALSE - var/controlling = FALSE - var/chemicals = 10 - var/used_dominate - var/borer_chems = list() - var/leaving = FALSE - var/hiding = FALSE - var/waketimerid = null - - var/docile_chem = "sugar" - var/list/wakeup_objectives = list() //Used to store objectives until the borer wakes up - - var/datum/action/innate/borer/talk_to_host/talk_to_host_action = new - var/datum/action/innate/borer/infest_host/infest_host_action = new - var/datum/action/innate/borer/toggle_hide/toggle_hide_action = new - var/datum/action/innate/borer/talk_to_borer/talk_to_borer_action = new - var/datum/action/innate/borer/talk_to_brain/talk_to_brain_action = new - var/datum/action/innate/borer/take_control/take_control_action = new - var/datum/action/innate/borer/give_back_control/give_back_control_action = new - var/datum/action/innate/borer/leave_body/leave_body_action = new - var/datum/action/innate/borer/make_chems/make_chems_action = new - var/datum/action/innate/borer/make_larvae/make_larvae_action = new - var/datum/action/innate/borer/freeze_victim/freeze_victim_action = new - var/datum/action/innate/borer/punish_victim/punish_victim_action = new - var/datum/action/innate/borer/jumpstart_host/jumpstart_host_action = new - - var/is_team_borer = TRUE - var/borer_alert = "Become a cortical borer? (Warning, You can no longer be cloned!)" - -/mob/living/simple_animal/borer/Initialize(mapload, gen=1) - ..() - generation = gen - if(is_team_borer) - notify_ghosts("A cortical borer has been created in [get_area(src)]!", enter_link = "(Click to enter)", source = src, action = NOTIFY_ATTACK) - real_name = "Cortical Borer [rand(1000,9999)]" - truename = "[borer_names[min(generation, borer_names.len)]] [rand(1000,9999)]" - borer_chems += /datum/borer_chem/epinephrine - borer_chems += /datum/borer_chem/leporazine - borer_chems += /datum/borer_chem/mannitol - borer_chems += /datum/borer_chem/bicaridine - borer_chems += /datum/borer_chem/kelotane - borer_chems += /datum/borer_chem/charcoal - borer_chems += /datum/borer_chem/methamphetamine - borer_chems += /datum/borer_chem/salbutamol - borer_chems += /datum/borer_chem/spacedrugs - //borer_chems += /datum/borer_chem/creagent - borer_chems += /datum/borer_chem/ethanol - borer_chems += /datum/borer_chem/rezadone - borer_chems += /datum/borer_chem/crocin - borer_chems += /datum/borer_chem/camphor - - GLOB.borers += src - - GrantBorerActions() - -/mob/living/simple_animal/borer/Destroy() - GLOB.borers -= src - - host_brain = null - victim = null - - QDEL_NULL(talk_to_host_action) - QDEL_NULL(infest_host_action) - QDEL_NULL(toggle_hide_action) - QDEL_NULL(talk_to_borer_action) - QDEL_NULL(talk_to_brain_action) - QDEL_NULL(take_control_action) - QDEL_NULL(give_back_control_action) - QDEL_NULL(leave_body_action) - QDEL_NULL(make_chems_action) - QDEL_NULL(make_larvae_action) - QDEL_NULL(freeze_victim_action) - QDEL_NULL(punish_victim_action) - QDEL_NULL(jumpstart_host_action) - - return ..() - -/mob/living/simple_animal/borer/Topic(href, href_list)//not entirely sure if this is even required - if(href_list["ghostjoin"]) - var/mob/dead/observer/ghost = usr - if(istype(ghost)) - attack_ghost(ghost) - -/mob/living/simple_animal/borer/attack_ghost(mob/user) - if(jobban_isbanned(user, ROLE_BORER) || jobban_isbanned(user, "Syndicate")) - return - if(key) - return - if(stat != CONSCIOUS) - return - var/be_borer = alert(borer_alert,,"Yes","No") - if(be_borer == "No" || !src || QDELETED(src)) - return - if(key) - return - transfer_personality(user.client) - -/mob/living/simple_animal/borer/Stat() - ..() - - if(statpanel("Status")) - stat(null, "Chemicals: [chemicals]") - - src << output(chemicals, "ViewBorer\ref[src]Chems.browser:update_chemicals") - -/mob/living/simple_animal/borer/verb/Communicate() - set category = "Borer" - set name = "Converse with Host" - set desc = "Send a silent message to your host." - - if(!victim) - to_chat(src, "You do not have a host to communicate with!") - return - - if(stat) - to_chat(src, "You cannot do that in your current state.") - return - - var/input = stripped_input(src, "Please enter a message to tell your host.", "Borer", null) - if(!input) - return - - if(src && !QDELETED(src) && !QDELETED(victim)) - var/say_string = (docile) ? "slurs" :"states" - if(victim) - to_chat(victim, "[truename] [say_string]: [input]") - log_say("Borer Communication: [key_name(src)] -> [key_name(victim)] : [input]") - for(var/M in GLOB.dead_mob_list) - if(isobserver(M)) - var/rendered = "Borer Communication from [truename] : [input]" - var/link = FOLLOW_LINK(M, src) - to_chat(M, "[link] [rendered]") - to_chat(src, "[truename] [say_string]: [input]") - victim.verbs += /mob/living/proc/borer_comm - talk_to_borer_action.Grant(victim) - -/mob/living/proc/borer_comm() - set name = "Converse with Borer" - set category = "Borer" - set desc = "Communicate mentally with your borer." - - - var/mob/living/simple_animal/borer/B = has_brain_worms() - if(!B) - return - - var/input = stripped_input(src, "Please enter a message to tell the borer.", "Message", null) - if(!input) - return - - to_chat(B, "[src] says: [input]") - log_say("Borer Communication: [key_name(src)] -> [key_name(B)] : [input]") - - for(var/M in GLOB.dead_mob_list) - if(isobserver(M)) - var/rendered = "Borer Communication from [src] : [input]" - var/link = FOLLOW_LINK(M, src) - to_chat(M, "[link] [rendered]") - to_chat(src, "[src] says: [input]") - -/mob/living/proc/trapped_mind_comm() - set name = "Converse with Trapped Mind" - set category = "Borer" - set desc = "Communicate mentally with the trapped mind of your host." - - - var/mob/living/simple_animal/borer/B = has_brain_worms() - if(!B || !B.host_brain) - return - var/mob/living/captive_brain/CB = B.host_brain - var/input = stripped_input(src, "Please enter a message to tell the trapped mind.", "Message", null) - if(!input) - return - - to_chat(CB, "[B.truename] says: [input]") - log_say("Borer Communication: [key_name(B)] -> [key_name(CB)] : [input]") - - for(var/M in GLOB.dead_mob_list) - if(isobserver(M)) - var/rendered = "Borer Communication from [B] : [input]" - var/link = FOLLOW_LINK(M, src) - to_chat(M, "[link] [rendered]") - to_chat(src, "[B.truename] says: [input]") - -/mob/living/simple_animal/borer/Life() - - ..() - - if(victim) - if(stat != DEAD) - if(victim.stat == DEAD) - chemicals++ - else if(chemicals < 250) - chemicals+=2 - chemicals = min(250, chemicals) - - - if(stat != DEAD && victim.stat != DEAD) - - if(victim.reagents.has_reagent(docile_chem)) - if(!docile || waketimerid) - if(controlling) - to_chat(victim, "You feel the soporific flow of [docile_chem] in your host's blood, lulling you into docility.") - else - to_chat(src, "You feel the soporific flow of [docile_chem] in your host's blood, lulling you into docility.") - if(waketimerid) - deltimer(waketimerid) - waketimerid = null - docile = TRUE - else - if(docile && !waketimerid) - if(controlling) - to_chat(victim, "You start shaking off your lethargy as the [docile_chem] leaves your host's blood. This will take about 10 seconds...") - else - to_chat(src, "You start shaking off your lethargy as the [docile_chem] leaves your host's blood. This will take about 10 seconds...") - - waketimerid = addtimer(CALLBACK(src, "wakeup"), 10, TIMER_STOPPABLE) - if(controlling) - - if(docile) - to_chat(victim, "You are feeling far too docile to continue controlling your host...") - victim.release_control() - return - - if(prob(5)) - victim.adjustBrainLoss(rand(1,2)) - - if(prob(victim.getBrainLoss()/10)) - victim.say("*[pick(list("blink","blink_r","choke","aflap","drool","twitch","twitch_s","gasp"))]") - -/mob/living/simple_animal/borer/proc/wakeup() - if(controlling) - to_chat(victim, "You finish shaking off your lethargy.") - else - to_chat(src, "You finish shaking off your lethargy.") - docile = FALSE - if(waketimerid) - waketimerid = null - -/mob/living/simple_animal/borer/say(message) - if(dd_hasprefix(message, ";")) - message = copytext(message,2) - for(var/borer in GLOB.borers) - to_chat(borer, "Cortical Link: [truename] sings, \"[message]\"") - for(var/mob/D in GLOB.dead_mob_list) - to_chat(D, "Cortical Link: [truename] sings, \"[message]\"") - return - if(!victim) - to_chat(src, "You cannot speak without a host!") - return - if(message == "") - return - -/mob/living/simple_animal/borer/UnarmedAttack(atom/A) - if(isliving(A)) - healthscan(usr, A) - chemscan(usr, A) - -/mob/living/simple_animal/borer/ex_act() - if(victim) - return - - ..() - -/mob/living/simple_animal/borer/verb/infect_victim() - set name = "Infest" - set category = "Borer" - set desc = "Infest a suitable humanoid host." - - if(victim) - to_chat(src, "You are already within a host.") - - if(stat == DEAD) - return - - var/list/choices = list() - for(var/mob/living/carbon/H in view(1,src)) - if(H!=src && Adjacent(H)) - choices += H - - if(!choices.len) - return - var/mob/living/carbon/H = choices.len > 1 ? input(src,"Who do you wish to infest?") in null|choices : choices[1] - if(!H || !src) - return - - if(!Adjacent(H)) - return FALSE - - if(stat != CONSCIOUS) - to_chat(src, "You cannot do that in your current state.") - return FALSE - - if(H.has_brain_worms()) - to_chat(src, "[victim] is already infested!") - return - - to_chat(src, "You slither up [H] and begin probing at their ear canal...") - if(!do_mob(src, H, 30)) - to_chat(src, "As [H] moves away, you are dislodged and fall to the ground.") - return - - if(!H || !src) - return - - Infect(H) - -/mob/living/simple_animal/borer/proc/Infect(mob/living/carbon/C) - - if(!C) - return - - if(C.has_brain_worms()) - to_chat(src, "[C] is already infested!") - return - - if(!C.key || !C.mind) - to_chat(src, "[C]'s mind seems unresponsive. Try someone else!") - return - - if(C && C.dna && istype(C.dna.species, /datum/species/skeleton)) - to_chat(src, "[C] does not possess the vital systems needed to support us.") - return - - victim = C - forceMove(victim) - - - RemoveBorerActions() - GrantInfestActions() - - log_game("[src]/([src.ckey]) has infested [victim]/([victim.ckey]") - -/mob/living/simple_animal/borer/verb/secrete_chemicals() - set category = "Borer" - set name = "Secrete Chemicals" - set desc = "Push some chemicals into your host's bloodstream." - - if(!victim) - to_chat(src, "You are not inside a host body.") - return - - if(stat != CONSCIOUS) - to_chat(src, "You cannot secrete chemicals in your current state.") - - if(docile) - to_chat(src, "You are feeling far too docile to do that.") - return - - var content = "" - content += "

    Chemicals: [chemicals]

    " - - content += "" - - for(var/datum in typesof(/datum/borer_chem)) - var/datum/borer_chem/C = new datum() - if(C.chemname) - content += "" - - content += "
    [C.chemname] ([C.chemuse])

    [C.chem_desc]

    " - - var/html = get_html_template(content) - - usr << browse(null, "window=ViewBorer\ref[src]Chems;size=600x800") - usr << browse(html, "window=ViewBorer\ref[src]Chems;size=600x800") - - return - -/mob/living/simple_animal/borer/verb/hide() - set category = "Borer" - set name = "Hide" - set desc = "Become invisible to the common eye." - - if(victim) - to_chat(src, "You cannot do this while you're inside a host.") - - if(stat != CONSCIOUS) - return - - if(!hiding) - layer = LATTICE_LAYER - visible_message("[src] scurries to the ground!", \ - "You are now hiding.") - hiding = TRUE - else - layer = MOB_LAYER - visible_message("[src] slowly peaks up from the ground...", \ - "You stop hiding.") - hiding = FALSE - -/mob/living/simple_animal/borer/verb/dominate_victim() - set category = "Borer" - set name = "Paralyze Victim" - set desc = "Freeze the limbs of a potential host with supernatural fear." - - if(world.time - used_dominate < 150) - to_chat(src, "You cannot use that ability again so soon.") - return - - if(victim) - to_chat(src, "You cannot do that from within a host body.") - return - - if(stat != CONSCIOUS) - to_chat(src, "You cannot do that in your current state.") - return - - var/list/choices = list() - for(var/mob/living/carbon/C in view(1,src)) - if(C.stat == CONSCIOUS) - choices += C - - if(!choices.len) - return - var/mob/living/carbon/M = choices.len > 1 ? input(src,"Who do you wish to dominate?") in null|choices : choices[1] - - - if(!M || !src || stat != CONSCIOUS || victim || (world.time - used_dominate < 150)) - return - if(!Adjacent(M)) - return - - if(M.has_brain_worms()) - to_chat(src, "You cannot paralyze someone who is already infested!") - return - - layer = MOB_LAYER - - to_chat(src, "You focus your psychic lance on [M] and freeze their limbs with a wave of terrible dread.") - to_chat(M, "You feel a creeping, horrible sense of dread come over you, freezing your limbs and setting your heart racing.") - M.Stun(60) - - used_dominate = world.time - -/mob/living/simple_animal/borer/verb/release_victim() - set category = "Borer" - set name = "Release Host" - set desc = "Slither out of your host." - - if(!victim) - to_chat(src, "You are not inside a host body.") - return - - if(stat != CONSCIOUS) - to_chat(src, "You cannot leave your host in your current state.") - - if(leaving) - leaving = FALSE - to_chat(src, "You decide against leaving your host.") - return - - to_chat(src, "You begin disconnecting from [victim]'s synapses and prodding at their internal ear canal.") - - if(victim.stat != DEAD) - to_chat(victim, "An odd, uncomfortable pressure begins to build inside your skull, behind your ear...") - - leaving = TRUE - - addtimer(CALLBACK(src, .proc/release_host), 100) - -/mob/living/simple_animal/borer/proc/release_host() - if(!victim || !src || QDELETED(victim) || QDELETED(src)) - return - if(!leaving) - return - if(controlling) - return - - if(stat != CONSCIOUS) - to_chat(src, "You cannot release your host in your current state.") - return - - to_chat(src, "You wiggle out of [victim]'s ear and plop to the ground.") - if(victim.mind) - to_chat(victim, "Something slimy wiggles out of your ear and plops to the ground!") - to_chat(victim, "As though waking from a dream, you shake off the insidious mind control of the brain worm. Your thoughts are your own again.") - - leaving = FALSE - - leave_victim() - -/mob/living/simple_animal/borer/proc/leave_victim() - if(!victim) - return - - if(controlling) - detatch() - - GrantBorerActions() - RemoveInfestActions() - - forceMove(get_turf(victim)) - - reset_perspective(null) - machine = null - - victim.reset_perspective(null) - victim.machine = null - - var/mob/living/V = victim - V.verbs -= /mob/living/proc/borer_comm - talk_to_borer_action.Remove(victim) - victim = null - return - -/mob/living/simple_animal/borer/verb/jumpstart() - set category = "Borer" - set name = "Jumpstart Host" - set desc = "Bring your host back to life." - - if(!victim) - to_chat(src, "You need a host to be able to use this.") - return - - if(docile) - to_chat(src, "You are feeling too docile to use this!") - return - - if(victim.stat != DEAD) - to_chat(src, "Your host is already alive!") - return - - if(chemicals < 250) - to_chat(src, "You need 250 chemicals to use this!") - return - - if(victim.stat == DEAD) - victim.tod = null - victim.setToxLoss(0) - victim.setOxyLoss(0) - victim.setCloneLoss(0) - victim.SetUnconscious(0) - victim.SetStun(0) - victim.SetKnockdown(0) - victim.radiation = 0 - victim.heal_overall_damage(victim.getBruteLoss(), victim.getFireLoss()) - victim.reagents.clear_reagents() - if(ishuman(victim)) - var/mob/living/carbon/human/H = victim - H.restore_blood() - H.remove_all_embedded_objects() - victim.revive() - log_game("[src]/([src.ckey]) has revived [victim]/([victim.ckey]") - chemicals -= 250 - to_chat(src, "You send a jolt of energy to your host, reviving them!") - victim.grab_ghost(force = TRUE) //brings the host back, no eggscape - to_chat(victim, "You bolt upright, gasping for breath!") - -/mob/living/simple_animal/borer/verb/bond_brain() - set category = "Borer" - set name = "Assume Control" - set desc = "Fully connect to the brain of your host." - - if(!victim) - to_chat(src, "You are not inside a host body.") - return - - if(stat != CONSCIOUS) - to_chat(src, "You cannot do that in your current state.") - return - - if(docile) - to_chat(src, "You are feeling far too docile to do that.") - return - - if(victim.stat == DEAD) - to_chat(src, "This host lacks enough brain function to control.") - return - - if(bonding) - bonding = FALSE - to_chat(src, "You stop attempting to take control of your host.") - return - - to_chat(src, "You begin delicately adjusting your connection to the host brain...") - - if(QDELETED(src) || QDELETED(victim)) - return - - bonding = TRUE - - var/delay = 200+(victim.getBrainLoss()*5) - addtimer(CALLBACK(src, .proc/assume_control), delay) - -/mob/living/simple_animal/borer/proc/assume_control() - if(!victim || !src || controlling || victim.stat == DEAD) - return - if(!bonding) - return - if(docile) - to_chat(src, "You are feeling far too docile to do that.") - return - if(is_servant_of_ratvar(victim) || iscultist(victim) || victim.isloyal()) - to_chat(src, "[victim]'s mind seems to be blocked by some unknown force!") - return - - else - - log_game("[src]/([src.ckey]) assumed control of [victim]/([victim.ckey] with borer powers.") - to_chat(src, "You plunge your probosci deep into the cortex of the host brain, interfacing directly with their nervous system.") - to_chat(victim, "You feel a strange shifting sensation behind your eyes as an alien consciousness displaces yours.") - - // host -> brain - var/h2b_id = victim.computer_id - var/h2b_ip= victim.lastKnownIP - victim.computer_id = null - victim.lastKnownIP = null - - qdel(host_brain) - host_brain = new(src) - - host_brain.ckey = victim.ckey - - host_brain.name = victim.name - - if(victim.mind) - host_brain.mind = victim.mind - - if(!host_brain.computer_id) - host_brain.computer_id = h2b_id - - if(!host_brain.lastKnownIP) - host_brain.lastKnownIP = h2b_ip - - to_chat(host_brain, "You are trapped in your own mind. You feel that there must be a way to resist!") - - // self -> host - var/s2h_id = src.computer_id - var/s2h_ip= src.lastKnownIP - src.computer_id = null - src.lastKnownIP = null - - victim.ckey = src.ckey - victim.mind = src.mind - - if(!victim.computer_id) - victim.computer_id = s2h_id - - if(!victim.lastKnownIP) - victim.lastKnownIP = s2h_ip - - bonding = FALSE - controlling = TRUE - - victim.verbs += /mob/living/carbon/proc/release_control - if(is_team_borer) - victim.verbs += /mob/living/carbon/proc/spawn_larvae - victim.verbs -= /mob/living/proc/borer_comm - victim.verbs += /mob/living/proc/trapped_mind_comm - GrantControlActions() - talk_to_borer_action.Remove(victim) - - victim.med_hud_set_status() - -/mob/living/simple_animal/borer/verb/punish() - set category = "Borer" - set name = "Punish" - set desc = "Punish your victim." - - if(!victim) - to_chat(src, "You are not inside a host body.") - return - - if(stat != CONSCIOUS) - to_chat(src, "You cannot do that in your current state.") - return - - if(docile) - to_chat(src, "You are feeling far too docile to do that.") - return - - if(chemicals < 75) - to_chat(src, "You need 75 chems to punish your host.") - return - - var/punishment = input("Select a punishment:.", "Punish") as null|anything in list("Blindness","Deafness","Stun") - - if(!punishment) - return - - if(chemicals < 75) - to_chat(src, "You need 75 chems to punish your host.") - return - - switch(punishment) //Hardcoding this stuff. - if("Blindness") - victim.blind_eyes(4) - to_chat(victim, "Your vision fades away suddenly, as your borer robs you of your sight.") - if("Deafness") - victim.minimumDeafTicks(40) - to_chat(victim, "Your hearing fades away suddenly, as your borer robs you of your hearing.") - if("Stun") - victim.Knockdown(100) - to_chat(victim, "You are wracked with unbearable pain, as your borer takes control of your pain-center!") - - log_game("[src]/([src.ckey]) punished [victim]/([victim.ckey] with [punishment]") - - chemicals -= 75 - - -/mob/living/carbon/proc/release_control() - - set category = "Borer" - set name = "Release Control" - set desc = "Release control of your host's body." - - var/mob/living/simple_animal/borer/B = has_brain_worms() - if(B && B.host_brain) - to_chat(src, "You withdraw your probosci, releasing control of [B.host_brain]") - - B.detatch() - -//Check for brain worms in head. -/mob/proc/has_brain_worms() - - for(var/I in contents) - if(isborer(I)) - return I - - return FALSE - -/mob/living/carbon/proc/spawn_larvae() - set category = "Borer" - set name = "Reproduce" - set desc = "Spawn several young." - - var/mob/living/simple_animal/borer/B = has_brain_worms() - - if(isbrain(src)) - to_chat(src, "You need a mouth to be able to do this.") - return - if(!B) - return - - if(B.chemicals >= 200) - visible_message("[src] heaves violently, expelling a rush of vomit and a wriggling, sluglike creature!") - B.chemicals -= 200 - - new /obj/effect/decal/cleanable/vomit(get_turf(src)) - playsound(loc, 'sound/effects/splat.ogg', 50, 1) - var/mob/living/simple_animal/borer/Baby = new /mob/living/simple_animal/borer(get_turf(src), B.generation + 1) - - Baby.wakeup_objectives = src.mind.objectives //Save them for later, since we lack a mind for them right now - - log_game("[src]/([src.ckey]) has spawned a new borer via reproducing.") - else - to_chat(src, "You need 200 chemicals stored to reproduce.") - return - - -/mob/living/simple_animal/borer/proc/transfer_personality(var/client/candidate) - if(!candidate || !candidate.mob) - return - - if(!QDELETED(candidate) || !QDELETED(candidate.mob)) - var/datum/mind/M = create_borer_mind(candidate.ckey) - M.transfer_to(src) - - candidate.mob = src - ckey = candidate.ckey - - to_chat(src, "You are a cortical borer!") - to_chat(src, "You are a brain slug that worms its way into the head of its victim. Use stealth, persuasion and your powers of mind control to keep you, your host and your eventual spawn safe and warm.") - to_chat(src, "[docile_chem] nullifies your abilities, avoid it at all costs!") - to_chat(src, "You can speak to your fellow borers by prefixing your messages with ';'. Check out your Borer tab to see your abilities.") - - if(mind) - if(!(wakeup_objectives.len)) //No objectives, use default? - var/datum/objective/normal_borer/new_objective - new_objective = new /datum/objective/normal_borer - new_objective.owner = mind - new_objective.target_amount = GLOB.total_borer_hosts_needed - new_objective.explanation_text = "You must escape with at least [GLOB.total_borer_hosts_needed] borer[new_objective.target_amount > 1 ? "s" : ""] with host[new_objective.target_amount > 1 ? "s" : ""] on the shuttle." - mind.objectives += new_objective - to_chat(src, "Objective #1: [new_objective.explanation_text]") - else - mind.objectives += wakeup_objectives - var/count = 1 - for(var/datum/objective/O in mind.objectives) - to_chat(src, "Objective #[count]: [O.explanation_text]") - count++ - -/mob/living/simple_animal/borer/proc/detatch() - if(!victim || !controlling) - return - - controlling = FALSE - - victim.verbs -= /mob/living/carbon/proc/release_control - if(is_team_borer) - victim.verbs -= /mob/living/carbon/proc/spawn_larvae - victim.verbs += /mob/living/proc/borer_comm - victim.verbs -= /mob/living/proc/trapped_mind_comm - RemoveControlActions() - talk_to_borer_action.Grant(victim) - - victim.med_hud_set_status() - - if(host_brain) - - // these are here so bans and multikey warnings are not triggered on the wrong people when ckey is changed. - // computer_id and IP are not updated magically on their own in offline mobs -walter0o - - // host -> self - var/h2s_id = victim.computer_id - var/h2s_ip= victim.lastKnownIP - victim.computer_id = null - victim.lastKnownIP = null - - ckey = victim.ckey - mind = victim.mind - - - if(!computer_id) - computer_id = h2s_id - - if(!host_brain.lastKnownIP) - lastKnownIP = h2s_ip - - // brain -> host - var/b2h_id = host_brain.computer_id - var/b2h_ip= host_brain.lastKnownIP - host_brain.computer_id = null - host_brain.lastKnownIP = null - - victim.ckey = host_brain.ckey - - victim.mind = host_brain.mind - - if(!victim.computer_id) - victim.computer_id = b2h_id - - if(!victim.lastKnownIP) - victim.lastKnownIP = b2h_ip - - log_game("[src]/([src.ckey]) released control of [victim]/([victim.ckey]") - - qdel(host_brain) - -/proc/create_borer_mind(key) - var/datum/mind/M = new /datum/mind(key) - M.assigned_role = "Cortical Borer" - M.special_role = "Cortical Borer" - return M - -/mob/living/simple_animal/borer/proc/GrantBorerActions() - infest_host_action.Grant(src) - toggle_hide_action.Grant(src) - freeze_victim_action.Grant(src) - -/mob/living/simple_animal/borer/proc/RemoveBorerActions() - infest_host_action.Remove(src) - toggle_hide_action.Remove(src) - freeze_victim_action.Remove(src) - -/mob/living/simple_animal/borer/proc/GrantInfestActions() - talk_to_host_action.Grant(src) - leave_body_action.Grant(src) - take_control_action.Grant(src) - punish_victim_action.Grant(src) - make_chems_action.Grant(src) - jumpstart_host_action.Grant(src) - -/mob/living/simple_animal/borer/proc/RemoveInfestActions() - talk_to_host_action.Remove(src) - take_control_action.Remove(src) - leave_body_action.Remove(src) - punish_victim_action.Remove(src) - make_chems_action.Remove(src) - jumpstart_host_action.Remove(src) - -/mob/living/simple_animal/borer/proc/GrantControlActions() - talk_to_brain_action.Grant(victim) - give_back_control_action.Grant(victim) - make_larvae_action.Grant(victim) - -/mob/living/simple_animal/borer/proc/RemoveControlActions() - talk_to_brain_action.Remove(victim) - make_larvae_action.Remove(victim) - give_back_control_action.Remove(victim) - -/datum/action/innate/borer - background_icon_state = "bg_alien" - -/datum/action/innate/borer/talk_to_host - name = "Converse with Host" - desc = "Send a silent message to your host." - button_icon_state = "alien_whisper" - -/datum/action/innate/borer/talk_to_host/Activate() - var/mob/living/simple_animal/borer/B = owner - B.Communicate() - -/datum/action/innate/borer/infest_host - name = "Infest" - desc = "Infest a suitable humanoid host." - button_icon_state = "infest" - -/datum/action/innate/borer/infest_host/Activate() - var/mob/living/simple_animal/borer/B = owner - B.infect_victim() - -/datum/action/innate/borer/toggle_hide - name = "Toggle Hide" - desc = "Become invisible to the common eye. Toggled on or off." - button_icon_state = "borer_hiding_false" - -/datum/action/innate/borer/toggle_hide/Activate() - var/mob/living/simple_animal/borer/B = owner - B.hide() - button_icon_state = "borer_hiding_[B.hiding ? "true" : "false"]" - UpdateButtonIcon() - -/datum/action/innate/borer/talk_to_borer - name = "Converse with Borer" - desc = "Communicate mentally with your borer." - button_icon_state = "alien_whisper" - -/datum/action/innate/borer/talk_to_borer/Activate() - var/mob/living/simple_animal/borer/B = owner.has_brain_worms() - B.victim = owner - B.victim.borer_comm() - - -/datum/action/innate/borer/talk_to_brain - name = "Converse with Trapped Mind" - desc = "Communicate mentally with the trapped mind of your host." - button_icon_state = "alien_whisper" - -/datum/action/innate/borer/talk_to_brain/Activate() - var/mob/living/simple_animal/borer/B = owner.has_brain_worms() - B.victim = owner - B.victim.trapped_mind_comm() - -/datum/action/innate/borer/take_control - name = "Assume Control" - desc = "Fully connect to the brain of your host." - button_icon_state = "borer_brain" - -/datum/action/innate/borer/take_control/Activate() - var/mob/living/simple_animal/borer/B = owner - B.bond_brain() - -/datum/action/innate/borer/give_back_control - name = "Release Control" - desc = "Release control of your host's body." - button_icon_state = "borer_leave" - -/datum/action/innate/borer/give_back_control/Activate() - var/mob/living/simple_animal/borer/B = owner.has_brain_worms() - B.victim = owner - B.victim.release_control() - -/datum/action/innate/borer/leave_body - name = "Release Host" - desc = "Slither out of your host." - button_icon_state = "borer_leave" - -/datum/action/innate/borer/leave_body/Activate() - var/mob/living/simple_animal/borer/B = owner - B.release_victim() - -/datum/action/innate/borer/make_chems - name = "Secrete Chemicals" - desc = "Push some chemicals into your host's bloodstream." - icon_icon = 'icons/obj/chemical.dmi' - button_icon_state = "minidispenser" - -/datum/action/innate/borer/make_chems/Activate() - var/mob/living/simple_animal/borer/B = owner - B.secrete_chemicals() - -/datum/action/innate/borer/make_larvae - name = "Reproduce" - desc = "Spawn several young." - button_icon_state = "borer_reproduce" - -/datum/action/innate/borer/make_larvae/Activate() - var/mob/living/simple_animal/borer/B = owner.has_brain_worms() - B.victim = owner - B.victim.spawn_larvae() - -/datum/action/innate/borer/freeze_victim - name = "Paralyze Victim" - desc = "Freeze the limbs of a potential host with supernatural fear." - button_icon_state = "freeze" - -/datum/action/innate/borer/freeze_victim/Activate() - var/mob/living/simple_animal/borer/B = owner - B.dominate_victim() - -/datum/action/innate/borer/punish_victim - name = "Punish" - desc = "Punish your victim." - button_icon_state = "blind" - -/datum/action/innate/borer/punish_victim/Activate() - var/mob/living/simple_animal/borer/B = owner - B.punish() - -/datum/action/innate/borer/jumpstart_host - name = "Jumpstart Host" - desc = "Bring your host back to life." - icon_icon = 'icons/obj/items_and_weapons.dmi' - button_icon_state = "defibpaddles0" - -/datum/action/innate/borer/jumpstart_host/Activate() - var/mob/living/simple_animal/borer/B = owner - B.jumpstart() diff --git a/code/modules/antagonists/borer/borer_chemicals.dm b/code/modules/antagonists/borer/borer_chemicals.dm deleted file mode 100644 index c405468b4f..0000000000 --- a/code/modules/antagonists/borer/borer_chemicals.dm +++ /dev/null @@ -1,82 +0,0 @@ -/datum/borer_chem - var/chemname - var/chem_desc = "This is a chemical" - var/chem_message //Text sent to the host when injecting chemicals - var/chemuse = 30 - var/quantity = 10 - -/datum/borer_chem/epinephrine - chemname = "epinephrine" - chem_desc = "Stabilizes critical condition and slowly restores oxygen damage. If overdosed, it will deal toxin and oxyloss damage." - chem_message = "You feel your energy being replenished and it becomes easier to breathe!" - -/datum/borer_chem/leporazine - chemname = "leporazine" - chem_desc = "This keeps a patient's body temperature stable. High doses can allow short periods of unprotected EVA." - chemuse = 75 - chem_message = "You no longer feel heat or cold, as leporazine floods your system." - -/datum/borer_chem/mannitol - chemname = "mannitol" - chem_desc = "Heals brain damage." - chem_message = "You feel your mind focus more easily, as your system is flooded with mannitol." - -/datum/borer_chem/bicaridine - chemname = "bicaridine" - chem_desc = "Heals brute damage." - chem_message = "A wave of flesh-knitting bicaridine flows through your bloodstream." - -/datum/borer_chem/kelotane - chemname = "kelotane" - chem_desc = "Heals burn damage." - chem_message = "A stream of burn-healing kelotane spreads throughout your body." - -/datum/borer_chem/charcoal - chemname = "charcoal" - chem_desc = "Slowly heals toxin damage, will also slowly remove any other chemicals." - chem_message = "A measure of toxin-purging charcoal cleanses your bloodstream." - -/datum/borer_chem/methamphetamine - chemname = "methamphetamine" - chem_desc = "Reduces stun times, increases stamina and run speed while dealing brain damage. If overdosed it will deal toxin and brain damage." - chemuse = 50 - quantity = 9 - chem_message = "Your mind races, your heartrate skyrockets as methamphetamines enters your bloodstream!" - -/datum/borer_chem/salbutamol - chemname = "salbutamol" - chem_desc = "Heals suffocation damage." - chem_message = "Your breathing becomes lighter, as oxygen fills your lungs from the inside." - -/datum/borer_chem/spacedrugs - chemname = "space_drugs" - chem_desc = "Get your host high as a kite." - chemuse = 75 - chem_message = "You feel like you can taste the colours of the wind." - -/*/datum/borer_chem/creagent - chemname = "colorful_reagent" - chem_desc = "Change the colour of your host." - chemuse = 50 - chem_message = "Your body suddenly changes colour from the inside out."*/ - -/datum/borer_chem/ethanol - chemname = "ethanol" - chem_desc = "The most potent alcoholic 'beverage', with the fastest toxicity." - chemuse = 50 - chem_message = "You feel like you've downed a shot of 200 proof vodka." - -/datum/borer_chem/rezadone - chemname = "rezadone" - chem_desc = "Heals cellular damage." - chem_message = "You feel a warmth spread throughout your body as rezadone repairs corrupted DNA." - -/datum/borer_chem/crocin - chemname = "aphro" - chem_desc = "Increases host arousal without overdosing." - chem_message = "You feel your pulse quicken and your body begins to feel warmer." - -/datum/borer_chem/camphor - chemname = "anaphro" - chem_desc = "Decreases host arousal without overdosing." - chem_message = "Your pulse calms down and you feel more focused as the fog of lust clears." diff --git a/code/modules/antagonists/borer/borer_event.dm b/code/modules/antagonists/borer/borer_event.dm deleted file mode 100644 index 94af2f1be7..0000000000 --- a/code/modules/antagonists/borer/borer_event.dm +++ /dev/null @@ -1,49 +0,0 @@ -/datum/round_event_control/borer - name = "Borer" - typepath = /datum/round_event/borer - weight = 0 - max_occurrences = 0 - min_players = 20 //10 is MINIMUM needed, but this is not a gamemode that does well in lowpop - earliest_start = 24000 //40 min, double default timer - -/datum/round_event/borer - announceWhen = 2400 //Borers get 4 minutes till the crew tries to murder them. - var/successSpawn = 0 - - var/spawncount = 2 - -/datum/round_event/borer/setup() - spawncount = rand(2, 4) - -/datum/round_event/borer/announce() - if(successSpawn) - priority_announce("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert", 'sound/AI/aliens.ogg') //Borers seem like normal xenomorphs. - - -/datum/round_event/borer/start() - - var/list/vents = list() - for(var/obj/machinery/atmospherics/components/unary/vent_pump/temp_vent in GLOB.machines) - if(QDELETED(temp_vent)) - continue - if(temp_vent.loc.z == SSmapping.station_start && !temp_vent.welded) - var/datum/pipeline/temp_vent_parent = temp_vent.parents[1] - if(temp_vent_parent.other_atmosmch.len > 20) - vents += temp_vent - - if(!vents.len) - message_admins("An event attempted to spawn a borer but no suitable vents were found. Shutting down.") - return kill() - - var/total_humans = 0 - for(var/mob/living/carbon/human/H in GLOB.mob_list) - if(H.stat != DEAD) - total_humans++ - - GLOB.total_borer_hosts_needed = round(1 + total_humans/6) - - while(spawncount >= 1 && vents.len) - var/obj/vent = pick_n_take(vents) - new /mob/living/simple_animal/borer(vent.loc) - successSpawn = TRUE - spawncount-- diff --git a/code/modules/antagonists/borer/borer_html.dm b/code/modules/antagonists/borer/borer_html.dm deleted file mode 100644 index e2544a1d0b..0000000000 --- a/code/modules/antagonists/borer/borer_html.dm +++ /dev/null @@ -1,125 +0,0 @@ - -/mob/living/simple_animal/borer/proc/get_html_template(content) - var/html = {" - - - Borer Chemicals - - - - - - - -
    -

    Borer Chemicals

    -
    - - [content] - -
    "} - return html \ No newline at end of file diff --git a/code/modules/antagonists/borer/borer_topic.dm b/code/modules/antagonists/borer/borer_topic.dm deleted file mode 100644 index 80efefdaf8..0000000000 --- a/code/modules/antagonists/borer/borer_topic.dm +++ /dev/null @@ -1,42 +0,0 @@ - -/mob/living/simple_animal/borer/Topic(href, href_list, hsrc) - if(href_list["borer_use_chem"]) - locate(href_list["src"]) - if(!istype(src, /mob/living/simple_animal/borer)) - return - - var/topic_chem = href_list["borer_use_chem"] - var/datum/borer_chem/C - - for(var/datum in typesof(/datum/borer_chem)) - var/datum/borer_chem/test = new datum() - if(test.chemname == topic_chem) - C = test - break - - if(!istype(C, /datum/borer_chem)) - return - - if(!C || !victim || controlling || !src || stat) - return - - if(!istype(C, /datum/borer_chem)) - return - - if(chemicals < C.chemuse) - to_chat(src, "You need [C.chemuse] chemicals stored to use this chemical!") - return - - to_chat(src, "You squirt a measure of [C.chemname] from your reservoirs into [victim]'s bloodstream.") - if(C.chemname=="aphro" || C.chemname=="anaphro") - if(victim.canbearoused) //snowflake exception as these chems interact with client-specific optional stuff :S - to_chat(victim,C.chem_message) - else - to_chat(victim,C.chem_message) - victim.reagents.add_reagent(C.chemname, C.quantity) - chemicals -= C.chemuse - log_game("[src]/([src.ckey]) has injected [C.chemname] into their host [victim]/([victim.ckey])") - - src << output(chemicals, "ViewBorer\ref[src]Chems.browser:update_chemicals") - - ..() \ No newline at end of file diff --git a/code/modules/antagonists/borer/syndi_borer.dm b/code/modules/antagonists/borer/syndi_borer.dm deleted file mode 100644 index 5a0abff216..0000000000 --- a/code/modules/antagonists/borer/syndi_borer.dm +++ /dev/null @@ -1,34 +0,0 @@ -/mob/living/simple_animal/borer/syndi_borer - var/mob/owner = null - is_team_borer = FALSE - borer_alert = "Serve as a syndicate cortical borer? (Warning, You can no longer be cloned!)" - -/mob/living/simple_animal/borer/syndi_borer/Initialize(mapload, gen=1) - ..() - real_name = "Syndicate Borer [rand(1000,9999)]" - truename = "[borer_names[min(generation, borer_names.len)]] [rand(1000,9999)]" - - GrantBorerActions() - make_larvae_action.Remove(src) - -/mob/living/simple_animal/borer/syndi_borer/GrantControlActions() - talk_to_brain_action.Grant(victim) - give_back_control_action.Grant(victim) - -/mob/living/simple_animal/borer/syndi_borer/RemoveControlActions() - talk_to_brain_action.Remove(victim) - give_back_control_action.Remove(victim) - -//Syndicate borer objective, relies on their owner getting a greentext, no matter if they themselves did anything really. -/datum/objective/syndi_borer - explanation_text = "You are a modified syndicate cortical borer, assist your owner with their objectives." - martyr_compatible = 1 - -/datum/objective/syndi_borer/check_completion() - if(target) - for(var/datum/objective/objective in target.objectives) - if(!objective.check_completion()) - return 0 - return 1 - else - return 1 //Not sure if we should greentext if we somehow don't even have an owner. \ No newline at end of file diff --git a/code/modules/antagonists/changeling/cellular_emporium.dm b/code/modules/antagonists/changeling/cellular_emporium.dm index df92212181..2a37a3885d 100644 --- a/code/modules/antagonists/changeling/cellular_emporium.dm +++ b/code/modules/antagonists/changeling/cellular_emporium.dm @@ -25,6 +25,7 @@ var/can_readapt = changeling.canrespec var/genetic_points_remaining = changeling.geneticpoints var/absorbed_dna_count = changeling.absorbedcount + var/true_absorbs = changeling.trueabsorbs data["can_readapt"] = can_readapt data["genetic_points_remaining"] = genetic_points_remaining @@ -45,8 +46,9 @@ AL["helptext"] = initial(ability.helptext) AL["owned"] = changeling.has_sting(ability) var/req_dna = initial(ability.req_dna) + var/req_absorbs = initial(ability.req_absorbs) AL["dna_cost"] = dna_cost - AL["can_purchase"] = ((req_dna <= absorbed_dna_count) && (dna_cost <= genetic_points_remaining)) + AL["can_purchase"] = ((req_absorbs <= true_absorbs) && (req_dna <= absorbed_dna_count) && (dna_cost <= genetic_points_remaining)) abilities += list(AL) diff --git a/code/modules/antagonists/changeling/changeling.dm b/code/modules/antagonists/changeling/changeling.dm index dca2a364a9..8c6d7f52bd 100644 --- a/code/modules/antagonists/changeling/changeling.dm +++ b/code/modules/antagonists/changeling/changeling.dm @@ -19,6 +19,7 @@ var/datum/changelingprofile/first_prof = null var/dna_max = 6 //How many extra DNA strands the changeling can store for transformation. var/absorbedcount = 0 + var/trueabsorbs = 0//dna gained using absorb, not dna sting var/chem_charges = 20 var/chem_storage = 75 var/chem_recharge_rate = 1 @@ -367,11 +368,21 @@ if(!CTO.escape_objective_compatible) escape_objective_possible = FALSE break - - var/datum/objective/absorb/absorb_objective = new - absorb_objective.owner = owner - absorb_objective.gen_amount_goal(6, 8) - objectives += absorb_objective + var/changeling_objective = rand(1,3) + switch(changeling_objective) + if(1) + var/datum/objective/absorb/absorb_objective = new + absorb_objective.owner = owner + absorb_objective.gen_amount_goal(6, 8) + objectives += absorb_objective + if(2) + var/datum/objective/absorb_changeling/ac = new + ac.owner = owner + objectives += ac + if(3) + var/datum/objective/absorb_most/ac = new + ac.owner = owner + objectives += ac if(prob(60)) if(prob(85)) diff --git a/code/modules/antagonists/changeling/changeling_power.dm b/code/modules/antagonists/changeling/changeling_power.dm index 0b4f015824..92c8a3c069 100644 --- a/code/modules/antagonists/changeling/changeling_power.dm +++ b/code/modules/antagonists/changeling/changeling_power.dm @@ -1,78 +1,81 @@ -/* - * Don't use the apostrophe in name or desc. Causes script errors. - * TODO: combine atleast some of the functionality with /proc_holder/spell - */ - -/obj/effect/proc_holder/changeling - panel = "Changeling" - name = "Prototype Sting" - desc = "" // Fluff - var/helptext = "" // Details - var/chemical_cost = 0 // negative chemical cost is for passive abilities (chemical glands) - var/dna_cost = -1 //cost of the sting in dna points. 0 = auto-purchase, -1 = cannot be purchased - var/req_dna = 0 //amount of dna needed to use this ability. Changelings always have atleast 1 - var/req_human = 0 //if you need to be human to use this ability - var/req_stat = CONSCIOUS // CONSCIOUS, UNCONSCIOUS or DEAD - var/always_keep = 0 // important for abilities like revive that screw you if you lose them. - var/ignores_fakedeath = FALSE // usable with the FAKEDEATH flag - - -/obj/effect/proc_holder/changeling/proc/on_purchase(mob/user, is_respec) - if(!is_respec) - SSblackbox.record_feedback("tally", "changeling_power_purchase", 1, name) - -/obj/effect/proc_holder/changeling/proc/on_refund(mob/user) - return - -/obj/effect/proc_holder/changeling/Click() - var/mob/user = usr - if(!user || !user.mind || !user.mind.has_antag_datum(/datum/antagonist/changeling)) - return - try_to_sting(user) - -/obj/effect/proc_holder/changeling/proc/try_to_sting(mob/user, mob/target) - if(!can_sting(user, target)) - return - var/datum/antagonist/changeling/c = user.mind.has_antag_datum(/datum/antagonist/changeling) - if(sting_action(user, target)) - SSblackbox.record_feedback("nested tally", "changeling_powers", 1, list("[name]")) - sting_feedback(user, target) - c.chem_charges -= chemical_cost - -/obj/effect/proc_holder/changeling/proc/sting_action(mob/user, mob/target) - return 0 - -/obj/effect/proc_holder/changeling/proc/sting_feedback(mob/user, mob/target) - return 0 - -//Fairly important to remember to return 1 on success >.< -/obj/effect/proc_holder/changeling/proc/can_sting(mob/living/user, mob/target) - if(!ishuman(user) && !ismonkey(user)) //typecast everything from mob to carbon from this point onwards - return 0 - if(req_human && !ishuman(user)) - to_chat(user, "We cannot do that in this form!") - return 0 - var/datum/antagonist/changeling/c = user.mind.has_antag_datum(/datum/antagonist/changeling) - if(c.chem_charges < chemical_cost) - to_chat(user, "We require at least [chemical_cost] unit\s of chemicals to do that!") - return 0 - if(c.absorbedcount < req_dna) - to_chat(user, "We require at least [req_dna] sample\s of compatible DNA.") - return 0 - if(req_stat < user.stat) - to_chat(user, "We are incapacitated.") - return 0 - if((user.has_trait(TRAIT_FAKEDEATH)) && (!ignores_fakedeath)) - to_chat(user, "We are incapacitated.") - return 0 - return 1 - -//used in /mob/Stat() -/obj/effect/proc_holder/changeling/proc/can_be_used_by(mob/user) - if(!user || QDELETED(user)) - return 0 - if(!ishuman(user) && !ismonkey(user)) - return 0 - if(req_human && !ishuman(user)) - return 0 - return 1 +/* + * Don't use the apostrophe in name or desc. Causes script errors. + * TODO: combine atleast some of the functionality with /proc_holder/spell + */ + +/obj/effect/proc_holder/changeling + panel = "Changeling" + name = "Prototype Sting" + desc = "" // Fluff + var/helptext = "" // Details + var/chemical_cost = 0 // negative chemical cost is for passive abilities (chemical glands) + var/dna_cost = -1 //cost of the sting in dna points. 0 = auto-purchase, -1 = cannot be purchased + var/req_dna = 0 //amount of dna needed to use this ability. Changelings always have atleast 1 + var/req_human = 0 //if you need to be human to use this ability + var/req_absorbs = 0 //similar to req_dna, but only gained from absorbing, not DNA sting + var/req_stat = CONSCIOUS // CONSCIOUS, UNCONSCIOUS or DEAD + var/always_keep = 0 // important for abilities like revive that screw you if you lose them. + var/ignores_fakedeath = FALSE // usable with the FAKEDEATH flag + + +/obj/effect/proc_holder/changeling/proc/on_purchase(mob/user, is_respec) + if(!is_respec) + SSblackbox.record_feedback("tally", "changeling_power_purchase", 1, name) + +/obj/effect/proc_holder/changeling/proc/on_refund(mob/user) + return + +/obj/effect/proc_holder/changeling/Click() + var/mob/user = usr + if(!user || !user.mind || !user.mind.has_antag_datum(/datum/antagonist/changeling)) + return + try_to_sting(user) + +/obj/effect/proc_holder/changeling/proc/try_to_sting(mob/user, mob/target) + if(!can_sting(user, target)) + return + var/datum/antagonist/changeling/c = user.mind.has_antag_datum(/datum/antagonist/changeling) + if(sting_action(user, target)) + SSblackbox.record_feedback("nested tally", "changeling_powers", 1, list("[name]")) + sting_feedback(user, target) + c.chem_charges -= chemical_cost + +/obj/effect/proc_holder/changeling/proc/sting_action(mob/user, mob/target) + return 0 + +/obj/effect/proc_holder/changeling/proc/sting_feedback(mob/user, mob/target) + return 0 + +//Fairly important to remember to return 1 on success >.< +/obj/effect/proc_holder/changeling/proc/can_sting(mob/living/user, mob/target) + if(!ishuman(user) && !ismonkey(user)) //typecast everything from mob to carbon from this point onwards + return 0 + if(req_human && !ishuman(user)) + to_chat(user, "We cannot do that in this form!") + return 0 + var/datum/antagonist/changeling/c = user.mind.has_antag_datum(/datum/antagonist/changeling) + if(c.chem_charges < chemical_cost) + to_chat(user, "We require at least [chemical_cost] unit\s of chemicals to do that!") + return 0 + if(c.absorbedcount < req_dna) + to_chat(user, "We require at least [req_dna] sample\s of compatible DNA.") + return 0 + if(c.trueabsorbs < req_absorbs) + to_chat(user, "We require at least [req_absorbs] sample\s of DNA gained through our Absorb ability.") + if(req_stat < user.stat) + to_chat(user, "We are incapacitated.") + return 0 + if((user.has_trait(TRAIT_FAKEDEATH)) && (!ignores_fakedeath)) + to_chat(user, "We are incapacitated.") + return 0 + return 1 + +//used in /mob/Stat() +/obj/effect/proc_holder/changeling/proc/can_be_used_by(mob/user) + if(!user || QDELETED(user)) + return 0 + if(!ishuman(user) && !ismonkey(user)) + return 0 + if(req_human && !ishuman(user)) + return 0 + return 1 diff --git a/code/modules/antagonists/changeling/powers/absorb.dm b/code/modules/antagonists/changeling/powers/absorb.dm index 4857975d6e..047056cac4 100644 --- a/code/modules/antagonists/changeling/powers/absorb.dm +++ b/code/modules/antagonists/changeling/powers/absorb.dm @@ -1,113 +1,121 @@ -/obj/effect/proc_holder/changeling/absorbDNA - name = "Absorb DNA" - desc = "Absorb the DNA of our victim." - chemical_cost = 0 - dna_cost = 0 - req_human = 1 - -/obj/effect/proc_holder/changeling/absorbDNA/can_sting(mob/living/carbon/user) - if(!..()) - return - - var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling) - if(changeling.isabsorbing) - to_chat(user, "We are already absorbing!") - return - - if(!user.pulling || !iscarbon(user.pulling)) - to_chat(user, "We must be grabbing a creature to absorb them!") - return - if(user.grab_state <= GRAB_NECK) - to_chat(user, "We must have a tighter grip to absorb this creature!") - return - - var/mob/living/carbon/target = user.pulling - return changeling.can_absorb_dna(target) - - - -/obj/effect/proc_holder/changeling/absorbDNA/sting_action(mob/user) - var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling) - var/mob/living/carbon/human/target = user.pulling - changeling.isabsorbing = 1 - for(var/i in 1 to 3) - switch(i) - if(1) - to_chat(user, "This creature is compatible. We must hold still...") - if(2) - user.visible_message("[user] extends a proboscis!", "We extend a proboscis.") - if(3) - user.visible_message("[user] stabs [target] with the proboscis!", "We stab [target] with the proboscis.") - to_chat(target, "You feel a sharp stabbing pain!") - target.take_overall_damage(40) - - SSblackbox.record_feedback("nested tally", "changeling_powers", 1, list("Absorb DNA", "[i]")) - if(!do_mob(user, target, 150)) - to_chat(user, "Our absorption of [target] has been interrupted!") - changeling.isabsorbing = 0 - return - - SSblackbox.record_feedback("nested tally", "changeling_powers", 1, list("Absorb DNA", "4")) - user.visible_message("[user] sucks the fluids from [target]!", "We have absorbed [target].") - to_chat(target, "You are absorbed by the changeling!") - - if(!changeling.has_dna(target.dna)) - changeling.add_new_profile(target) - - if(user.nutrition < NUTRITION_LEVEL_WELL_FED) - user.nutrition = min((user.nutrition + target.nutrition), NUTRITION_LEVEL_WELL_FED) - - if(target.mind)//if the victim has got a mind - // Absorb a lizard, speak Draconic. - user.copy_known_languages_from(target) - - target.mind.show_memory(user, 0) //I can read your mind, kekeke. Output all their notes. - - //Some of target's recent speech, so the changeling can attempt to imitate them better. - //Recent as opposed to all because rounds tend to have a LOT of text. - var/list/recent_speech = list() - - var/list/say_log = target.logging[INDIVIDUAL_SAY_LOG] - - if(LAZYLEN(say_log) > LING_ABSORB_RECENT_SPEECH) - recent_speech = say_log.Copy(say_log.len-LING_ABSORB_RECENT_SPEECH+1,0) //0 so len-LING_ARS+1 to end of list - else - for(var/spoken_memory in say_log) - if(recent_speech.len >= LING_ABSORB_RECENT_SPEECH) - break - recent_speech[spoken_memory] = say_log[spoken_memory] - - if(recent_speech.len) - changeling.antag_memory += "Some of [target]'s speech patterns, we should study these to better impersonate them!
    " - to_chat(user, "Some of [target]'s speech patterns, we should study these to better impersonate them!") - for(var/spoken_memory in recent_speech) - changeling.antag_memory += "\"[recent_speech[spoken_memory]]\"
    " - to_chat(user, "\"[recent_speech[spoken_memory]]\"") - changeling.antag_memory += "We have no more knowledge of [target]'s speech patterns.
    " - to_chat(user, "We have no more knowledge of [target]'s speech patterns.") - - - var/datum/antagonist/changeling/target_ling = target.mind.has_antag_datum(/datum/antagonist/changeling) - if(target_ling)//If the target was a changeling, suck out their extra juice and objective points! - changeling.chem_charges += min(target_ling.chem_charges, changeling.chem_storage) - changeling.absorbedcount += (target_ling.absorbedcount) - - target_ling.stored_profiles.len = 1 - target_ling.absorbedcount = 0 - - - changeling.chem_charges=min(changeling.chem_charges+10, changeling.chem_storage) - - changeling.isabsorbing = 0 - changeling.canrespec = 1 - - target.death(0) - target.Drain() - return TRUE - - - -//Absorbs the target DNA. -//datum/changeling/proc/absorb_dna(mob/living/carbon/T, mob/user) - -//datum/changeling/proc/store_dna(datum/dna/new_dna, mob/user) +/obj/effect/proc_holder/changeling/absorbDNA + name = "Absorb DNA" + desc = "Absorb the DNA of our victim." + chemical_cost = 0 + dna_cost = 0 + req_human = 1 + +/obj/effect/proc_holder/changeling/absorbDNA/can_sting(mob/living/carbon/user) + if(!..()) + return + + var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling) + if(changeling.isabsorbing) + to_chat(user, "We are already absorbing!") + return + + if(!user.pulling || !iscarbon(user.pulling)) + to_chat(user, "We must be grabbing a creature to absorb them!") + return + if(user.grab_state <= GRAB_NECK) + to_chat(user, "We must have a tighter grip to absorb this creature!") + return + + var/mob/living/carbon/target = user.pulling + return changeling.can_absorb_dna(target) + + + +/obj/effect/proc_holder/changeling/absorbDNA/sting_action(mob/user) + var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling) + var/mob/living/carbon/human/target = user.pulling + changeling.isabsorbing = 1 + for(var/i in 1 to 3) + switch(i) + if(1) + to_chat(user, "This creature is compatible. We must hold still...") + if(2) + user.visible_message("[user] extends a proboscis!", "We extend a proboscis.") + if(3) + user.visible_message("[user] stabs [target] with the proboscis!", "We stab [target] with the proboscis.") + to_chat(target, "You feel a sharp stabbing pain!") + target.take_overall_damage(40) + + SSblackbox.record_feedback("nested tally", "changeling_powers", 1, list("Absorb DNA", "[i]")) + if(!do_mob(user, target, 150)) + to_chat(user, "Our absorption of [target] has been interrupted!") + changeling.isabsorbing = 0 + return + + SSblackbox.record_feedback("nested tally", "changeling_powers", 1, list("Absorb DNA", "4")) + user.visible_message("[user] sucks the fluids from [target]!", "We have absorbed [target].") + to_chat(target, "You are absorbed by the changeling!") + + if(!changeling.has_dna(target.dna)) + changeling.add_new_profile(target) + changeling.trueabsorbs++ + + if(user.nutrition < NUTRITION_LEVEL_WELL_FED) + user.nutrition = min((user.nutrition + target.nutrition), NUTRITION_LEVEL_WELL_FED) + + if(target.mind)//if the victim has got a mind + // Absorb a lizard, speak Draconic. + user.copy_known_languages_from(target) + + target.mind.show_memory(user, 0) //I can read your mind, kekeke. Output all their notes. + + //Some of target's recent speech, so the changeling can attempt to imitate them better. + //Recent as opposed to all because rounds tend to have a LOT of text. + var/list/recent_speech = list() + + var/list/say_log = target.logging[INDIVIDUAL_SAY_LOG] + + if(LAZYLEN(say_log) > LING_ABSORB_RECENT_SPEECH) + recent_speech = say_log.Copy(say_log.len-LING_ABSORB_RECENT_SPEECH+1,0) //0 so len-LING_ARS+1 to end of list + else + for(var/spoken_memory in say_log) + if(recent_speech.len >= LING_ABSORB_RECENT_SPEECH) + break + recent_speech[spoken_memory] = say_log[spoken_memory] + + if(recent_speech.len) + changeling.antag_memory += "Some of [target]'s speech patterns, we should study these to better impersonate them!
    " + to_chat(user, "Some of [target]'s speech patterns, we should study these to better impersonate them!") + for(var/spoken_memory in recent_speech) + changeling.antag_memory += "\"[recent_speech[spoken_memory]]\"
    " + to_chat(user, "\"[recent_speech[spoken_memory]]\"") + changeling.antag_memory += "We have no more knowledge of [target]'s speech patterns.
    " + to_chat(user, "We have no more knowledge of [target]'s speech patterns.") + + + var/datum/antagonist/changeling/target_ling = target.mind.has_antag_datum(/datum/antagonist/changeling) + if(target_ling)//If the target was a changeling, suck out their extra juice and objective points! + to_chat(user, "[target] was one of us. We have absorbed their power.") + target_ling.remove_changeling_powers() + changeling.geneticpoints += round(target_ling.geneticpoints/2) + target_ling.geneticpoints = 0 + target_ling.canrespec = 0 + changeling.chem_storage += round(target_ling.chem_storage/2) + changeling.chem_charges += min(target_ling.chem_charges, changeling.chem_storage) + target_ling.chem_charges = 0 + target_ling.chem_storage = 0 + changeling.absorbedcount += (target_ling.absorbedcount) + target_ling.stored_profiles.len = 1 + target_ling.absorbedcount = 0 + + + changeling.chem_charges=min(changeling.chem_charges+10, changeling.chem_storage) + + changeling.isabsorbing = 0 + changeling.canrespec = 1 + + target.death(0) + target.Drain() + return TRUE + + + +//Absorbs the target DNA. +//datum/changeling/proc/absorb_dna(mob/living/carbon/T, mob/user) + +//datum/changeling/proc/store_dna(datum/dna/new_dna, mob/user) diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm index e3fb55fa42..fc98d3182d 100644 --- a/code/modules/antagonists/changeling/powers/mutations.dm +++ b/code/modules/antagonists/changeling/powers/mutations.dm @@ -446,7 +446,7 @@ icon_state = "lingspacesuit" desc = "A huge, bulky mass of pressure and temperature-resistant organic tissue, evolved to facilitate space travel." flags_1 = STOPSPRESSUREDMAGE_1 | NODROP_1 | DROPDEL_1 //Not THICKMATERIAL_1 because it's organic tissue, so if somebody tries to inject something into it, it still ends up in your blood. (also balance but muh fluff) - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/oxygen) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/oxygen) armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90) //No armor at all. /obj/item/clothing/suit/space/changeling/Initialize() diff --git a/code/modules/antagonists/changeling/powers/regenerate.dm b/code/modules/antagonists/changeling/powers/regenerate.dm index 99050417b8..c86bf271d4 100644 --- a/code/modules/antagonists/changeling/powers/regenerate.dm +++ b/code/modules/antagonists/changeling/powers/regenerate.dm @@ -8,7 +8,6 @@ chemical_cost = 10 dna_cost = 0 req_stat = UNCONSCIOUS - always_keep = TRUE /obj/effect/proc_holder/changeling/regenerate/sting_action(mob/living/user) to_chat(user, "You feel an itching, both inside and \ diff --git a/code/modules/antagonists/changeling/powers/revive.dm b/code/modules/antagonists/changeling/powers/revive.dm index 673f49863b..4fb28b4904 100644 --- a/code/modules/antagonists/changeling/powers/revive.dm +++ b/code/modules/antagonists/changeling/powers/revive.dm @@ -29,7 +29,7 @@ return TRUE /obj/effect/proc_holder/changeling/revive/can_be_used_by(mob/living/user) - if((user.stat != DEAD) && !(user.has_trait(TRAIT_FAKEDEATH))) + if(user.has_trait(CHANGELING_DRAIN) || ((user.stat != DEAD) && !(user.has_trait(TRAIT_FAKEDEATH)))) var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling) changeling.purchasedpowers -= src return 0 diff --git a/code/modules/antagonists/changeling/powers/spiders.dm b/code/modules/antagonists/changeling/powers/spiders.dm index b378f18c47..685767f601 100644 --- a/code/modules/antagonists/changeling/powers/spiders.dm +++ b/code/modules/antagonists/changeling/powers/spiders.dm @@ -1,12 +1,12 @@ -/obj/effect/proc_holder/changeling/spiders - name = "Spread Infestation" - desc = "Our form divides, creating arachnids which will grow into deadly beasts." - helptext = "The spiders are thoughtless creatures, and may attack their creators when fully grown. Requires at least 5 DNA absorptions." - chemical_cost = 45 - dna_cost = 1 - req_dna = 5 - -//Makes some spiderlings. Good for setting traps and causing general trouble. -/obj/effect/proc_holder/changeling/spiders/sting_action(mob/user) - spawn_atom_to_turf(/obj/structure/spider/spiderling/hunter, user, 2, FALSE) - return TRUE +/obj/effect/proc_holder/changeling/spiders + name = "Spread Infestation" + desc = "Our form divides, creating arachnids which will grow into deadly beasts." + helptext = "The spiders are thoughtless creatures, and may attack their creators when fully grown. Requires at least 3 DNA gained through Absorb, and not through DNA sting." + chemical_cost = 45 + dna_cost = 1 + req_absorbs = 3 + +//Makes some spiderlings. Good for setting traps and causing general trouble. +/obj/effect/proc_holder/changeling/spiders/sting_action(mob/user) + spawn_atom_to_turf(/obj/structure/spider/spiderling/hunter, user, 2, FALSE) + return TRUE diff --git a/code/modules/antagonists/clockcult/clock_effects/city_of_cogs_rift.dm b/code/modules/antagonists/clockcult/clock_effects/city_of_cogs_rift.dm index 44c86c7b78..e318126caf 100644 --- a/code/modules/antagonists/clockcult/clock_effects/city_of_cogs_rift.dm +++ b/code/modules/antagonists/clockcult/clock_effects/city_of_cogs_rift.dm @@ -72,6 +72,6 @@ var/mob/living/L = AM L.overlay_fullscreen("flash", /obj/screen/fullscreen/flash/static) L.clear_fullscreen("flash", 5) - var/obj/item/device/transfer_valve/TTV = locate() in L.GetAllContents() + var/obj/item/transfer_valve/TTV = locate() in L.GetAllContents() if(TTV) to_chat(L, "The air resonates with the Ark's presence; your explosives will be significantly dampened here!") diff --git a/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm index 8b018fa6d3..77bfbf4f3b 100644 --- a/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm +++ b/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm @@ -68,7 +68,7 @@ heat_protection = CHEST|GROIN|LEGS resistance_flags = FIRE_PROOF | ACID_PROOF armor = list("melee" = 60, "bullet" = 70, "laser" = -25, "energy" = 0, "bomb" = 60, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) - allowed = list(/obj/item/clockwork, /obj/item/clothing/glasses/wraith_spectacles, /obj/item/clothing/glasses/judicial_visor, /obj/item/device/mmi/posibrain/soul_vessel) + allowed = list(/obj/item/clockwork, /obj/item/clothing/glasses/wraith_spectacles, /obj/item/clothing/glasses/judicial_visor, /obj/item/mmi/posibrain/soul_vessel) /obj/item/clothing/suit/armor/clockwork/Initialize() . = ..() diff --git a/code/modules/antagonists/clockcult/clock_items/soul_vessel.dm b/code/modules/antagonists/clockcult/clock_items/soul_vessel.dm index 48466238a7..55eb0f568a 100644 --- a/code/modules/antagonists/clockcult/clock_items/soul_vessel.dm +++ b/code/modules/antagonists/clockcult/clock_items/soul_vessel.dm @@ -1,5 +1,5 @@ //Soul vessel: An ancient positronic brain that serves only Ratvar. -/obj/item/device/mmi/posibrain/soul_vessel +/obj/item/mmi/posibrain/soul_vessel name = "soul vessel" desc = "A heavy brass cube, three inches to a side, with a single protruding cogwheel." var/clockwork_desc = "A soul vessel, an ancient relic that can attract the souls of the damned or simply rip a mind from an unconscious or dead human.\n\ @@ -25,35 +25,35 @@ force_replace_ai_name = TRUE overrides_aicore_laws = TRUE -/obj/item/device/mmi/posibrain/soul_vessel/Initialize() +/obj/item/mmi/posibrain/soul_vessel/Initialize() . = ..() radio.on = FALSE laws = new /datum/ai_laws/ratvar() braintype = picked_name GLOB.all_clockwork_objects += src -/obj/item/device/mmi/posibrain/soul_vessel/Destroy() +/obj/item/mmi/posibrain/soul_vessel/Destroy() GLOB.all_clockwork_objects -= src return ..() -/obj/item/device/mmi/posibrain/soul_vessel/examine(mob/user) +/obj/item/mmi/posibrain/soul_vessel/examine(mob/user) if((is_servant_of_ratvar(user) || isobserver(user)) && clockwork_desc) desc = clockwork_desc ..() desc = initial(desc) -/obj/item/device/mmi/posibrain/soul_vessel/transfer_personality(mob/candidate) +/obj/item/mmi/posibrain/soul_vessel/transfer_personality(mob/candidate) . = ..() if(.) add_servant_of_ratvar(brainmob, TRUE) -/obj/item/device/mmi/posibrain/soul_vessel/attack_self(mob/living/user) +/obj/item/mmi/posibrain/soul_vessel/attack_self(mob/living/user) if(!is_servant_of_ratvar(user)) to_chat(user, "You fiddle around with [src], to no avail.") return FALSE ..() -/obj/item/device/mmi/posibrain/soul_vessel/attack(mob/living/target, mob/living/carbon/human/user) +/obj/item/mmi/posibrain/soul_vessel/attack(mob/living/target, mob/living/carbon/human/user) if(!is_servant_of_ratvar(user) || !ishuman(target)) ..() return diff --git a/code/modules/antagonists/clockcult/clock_mobs/clockwork_marauder.dm b/code/modules/antagonists/clockcult/clock_mobs/clockwork_marauder.dm index 73bcd6b47f..4be5f7d4e6 100644 --- a/code/modules/antagonists/clockcult/clock_mobs/clockwork_marauder.dm +++ b/code/modules/antagonists/clockcult/clock_mobs/clockwork_marauder.dm @@ -6,6 +6,7 @@ name = "clockwork marauder" desc = "The stalwart apparition of a soldier, blazing with crimson flames. It's armed with a gladius and shield." icon_state = "clockwork_marauder" + mob_biotypes = list(MOB_INORGANIC, MOB_HUMANOID) health = 120 maxHealth = 120 force_threshold = 8 diff --git a/code/modules/antagonists/clockcult/clock_structures/stargazer.dm b/code/modules/antagonists/clockcult/clock_structures/stargazer.dm deleted file mode 100644 index 4f04fcb82b..0000000000 --- a/code/modules/antagonists/clockcult/clock_structures/stargazer.dm +++ /dev/null @@ -1,70 +0,0 @@ -#define STARGAZER_RANGE 3 //How many tiles the stargazer can see out to -#define STARGAZER_POWER 20 //How many watts will be produced per second when the stargazer sees starlight - -//Stargazer: A very fragile but cheap generator that creates power from starlight. -/obj/structure/destructible/clockwork/stargazer - name = "stargazer" - desc = "A large lantern-shaped machine made of thin brass. It looks fragile." - clockwork_desc = "A lantern-shaped generator that produces power when near starlight." - icon_state = "stargazer" - unanchored_icon = "stargazer_unwrenched" - max_integrity = 40 - construction_value = 5 - layer = WALL_OBJ_LAYER - break_message = "The stargazer's fragile body shatters into pieces!" - resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF - light_color = "#DAAA18" - var/star_light_star_bright = FALSE //If this stargazer can see starlight - -/obj/structure/destructible/clockwork/stargazer/Initialize() - . = ..() - START_PROCESSING(SSprocessing, src) - -/obj/structure/destructible/clockwork/stargazer/Destroy() - STOP_PROCESSING(SSprocessing, src) - . = ..() - -/obj/structure/destructible/clockwork/stargazer/examine(mob/user) - ..() - if(is_servant_of_ratvar(user)) - to_chat(user, "Generates [DisplayPower(STARGAZER_POWER)] per second while viewing starlight within [STARGAZER_RANGE] tiles.") - if(star_light_star_bright) - to_chat(user, "[is_servant_of_ratvar(user) ? "It can see starlight!" : "It's shining brilliantly!"]") - -/obj/structure/destructible/clockwork/stargazer/process() - star_light_star_bright = check_starlight() - if(star_light_star_bright) - adjust_clockwork_power(STARGAZER_POWER) - -/obj/structure/destructible/clockwork/stargazer/update_anchored(mob/living/user, damage) - . = ..() - star_light_star_bright = check_starlight() - -/obj/structure/destructible/clockwork/stargazer/proc/check_starlight() - var/old_status = star_light_star_bright - var/has_starlight - if(!anchored) - has_starlight = FALSE - else - for(var/turf/T in view(3, src)) - if(isspaceturf(T)) - has_starlight = TRUE - break - if(has_starlight && anchored) - var/area/A = get_area(src) - if(A.outdoors || A.map_name == "Space" || !A.blob_allowed) - has_starlight = FALSE - if(old_status != has_starlight) - if(has_starlight) - visible_message("[src] hums and shines brilliantly!") - playsound(src, 'sound/machines/clockcult/stargazer_activate.ogg', 50, TRUE) - add_overlay("stargazer_light") - set_light(1.5, 5) - else - if(anchored) //We lost visibility somehow - visible_message("[src] flickers, and falls dark.") - else - visible_message("[src] whooshes quietly as it slides into a less bulky form.") - cut_overlays() - set_light(0) - return has_starlight diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm index 80947fec16..b7f0b002ec 100644 --- a/code/modules/antagonists/cult/cult.dm +++ b/code/modules/antagonists/cult/cult.dm @@ -95,10 +95,8 @@ else to_chat(mob, "You have a [item_name] in your [where].") if(where == "backpack") - var/obj/item/storage/B = mob.back - B.orient2hud(mob) - B.show_to(mob) - return 1 + mob.back.SendSignal(COMSIG_TRY_STORAGE_SHOW, mob) + return TRUE /datum/antagonist/cult/apply_innate_effects(mob/living/mob_override) . = ..() diff --git a/code/modules/antagonists/cult/cult_comms.dm b/code/modules/antagonists/cult/cult_comms.dm index 308cd38c80..e929efab2a 100644 --- a/code/modules/antagonists/cult/cult_comms.dm +++ b/code/modules/antagonists/cult/cult_comms.dm @@ -178,8 +178,8 @@ playsound(mobloc, 'sound/magic/exit_blood.ogg', 100, 1) if(B.current != owner) var/turf/final = pick(destinations) - if(istype(B.current.loc, /obj/item/device/soulstone)) - var/obj/item/device/soulstone/S = B.current.loc + if(istype(B.current.loc, /obj/item/soulstone)) + var/obj/item/soulstone/S = B.current.loc S.release_shades(owner) B.current.setDir(SOUTH) new /obj/effect/temp_visual/cult/blood(final) diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index 30d150e3ee..a1c16aa078 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -189,12 +189,12 @@ if(ishuman(target)) var/mob/living/carbon/human/H = target if(H.stat != CONSCIOUS) - var/obj/item/device/soulstone/SS = new /obj/item/device/soulstone(src) + var/obj/item/soulstone/SS = new /obj/item/soulstone(src) SS.attack(H, user) if(!LAZYLEN(SS.contents)) qdel(SS) if(istype(target, /obj/structure/constructshell) && contents.len) - var/obj/item/device/soulstone/SS = contents[1] + var/obj/item/soulstone/SS = contents[1] if(istype(SS)) SS.transfer_soul("CONSTRUCT",target,user) qdel(SS) @@ -484,14 +484,14 @@ color = "#333333" list_reagents = list("unholywater" = 50) -/obj/item/device/shuttle_curse +/obj/item/shuttle_curse name = "cursed orb" desc = "You peer within this smokey orb and glimpse terrible fates befalling the escape shuttle." icon = 'icons/obj/cult.dmi' icon_state ="shuttlecurse" var/global/curselimit = 0 -/obj/item/device/shuttle_curse/attack_self(mob/living/user) +/obj/item/shuttle_curse/attack_self(mob/living/user) if(!iscultist(user)) user.dropItemToGround(src, TRUE) user.Knockdown(100) @@ -538,28 +538,28 @@ priority_announce("[message]", "System Failure", 'sound/misc/notice1.ogg') curselimit++ -/obj/item/device/cult_shift +/obj/item/cult_shift name = "veil shifter" desc = "This relic instantly teleports you, and anything you're pulling, forward by a moderate distance." icon = 'icons/obj/cult.dmi' icon_state ="shifter" var/uses = 4 -/obj/item/device/cult_shift/examine(mob/user) +/obj/item/cult_shift/examine(mob/user) ..() if(uses) to_chat(user, "It has [uses] use\s remaining.") else to_chat(user, "It seems drained.") -/obj/item/device/cult_shift/proc/handle_teleport_grab(turf/T, mob/user) +/obj/item/cult_shift/proc/handle_teleport_grab(turf/T, mob/user) var/mob/living/carbon/C = user if(C.pulling) var/atom/movable/pulled = C.pulling pulled.forceMove(T) . = pulled -/obj/item/device/cult_shift/attack_self(mob/user) +/obj/item/cult_shift/attack_self(mob/user) if(!uses || !iscarbon(user)) to_chat(user, "\The [src] is dull and unmoving in your hands.") return @@ -592,7 +592,7 @@ else to_chat(C, "The veil cannot be torn here!") -/obj/item/device/flashlight/flare/culttorch +/obj/item/flashlight/flare/culttorch name = "void torch" desc = "Used by veteran cultists to instantly transport items to their needful bretheren." w_class = WEIGHT_CLASS_SMALL @@ -605,7 +605,7 @@ on = TRUE var/charges = 5 -/obj/item/device/flashlight/flare/culttorch/afterattack(atom/movable/A, mob/user, proximity) +/obj/item/flashlight/flare/culttorch/afterattack(atom/movable/A, mob/user, proximity) if(!proximity) return if(!iscultist(user)) diff --git a/code/modules/antagonists/cult/cult_structures.dm b/code/modules/antagonists/cult/cult_structures.dm index 3e8fda9d45..ed7213f6e4 100644 --- a/code/modules/antagonists/cult/cult_structures.dm +++ b/code/modules/antagonists/cult/cult_structures.dm @@ -258,10 +258,10 @@ if("Zealot's Blindfold") pickedtype += /obj/item/clothing/glasses/hud/health/night/cultblind if("Shuttle Curse") - pickedtype += /obj/item/device/shuttle_curse + pickedtype += /obj/item/shuttle_curse if("Veil Walker Set") - pickedtype += /obj/item/device/cult_shift - pickedtype += /obj/item/device/flashlight/flare/culttorch + pickedtype += /obj/item/cult_shift + pickedtype += /obj/item/flashlight/flare/culttorch if(src && !QDELETED(src) && anchored && pickedtype.len && Adjacent(user) && !user.incapacitated() && iscultist(user) && cooldowntime <= world.time) cooldowntime = world.time + 2400 for(var/N in pickedtype) diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index 763d9adaa8..4307f65a28 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -299,7 +299,7 @@ structure_check() searches for nearby cultist structures required for the invoca else to_chat(M, "\"I accept this meager sacrifice.\"") - var/obj/item/device/soulstone/stone = new /obj/item/device/soulstone(get_turf(src)) + var/obj/item/soulstone/stone = new /obj/item/soulstone(get_turf(src)) if(sacrificial.mind && !sacrificial.suiciding) stone.invisibility = INVISIBILITY_MAXIMUM //so it's not picked up during transfer_soul() stone.transfer_soul("FORCE", sacrificial, usr) diff --git a/code/modules/antagonists/devil/imp/imp.dm b/code/modules/antagonists/devil/imp/imp.dm index ffa3828bad..7752d0449f 100644 --- a/code/modules/antagonists/devil/imp/imp.dm +++ b/code/modules/antagonists/devil/imp/imp.dm @@ -13,6 +13,7 @@ icon = 'icons/mob/mob.dmi' icon_state = "imp" icon_living = "imp" + mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) speed = 1 a_intent = INTENT_HARM stop_automated_movement = 1 diff --git a/code/modules/antagonists/highlander/highlander.dm b/code/modules/antagonists/highlander/highlander.dm index 012527ff7b..84faf34387 100644 --- a/code/modules/antagonists/highlander/highlander.dm +++ b/code/modules/antagonists/highlander/highlander.dm @@ -47,7 +47,7 @@ for(var/obj/item/I in H.held_items) qdel(I) H.equip_to_slot_or_del(new /obj/item/clothing/under/kilt/highlander(H), slot_w_uniform) - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/radio/headset/heads/captain(H), slot_ears) H.equip_to_slot_or_del(new /obj/item/clothing/head/beret/highlander(H), slot_head) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/pinpointer/nuke(H), slot_l_store) diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm index 931c38d7b9..acf90fb256 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm @@ -5,7 +5,7 @@ GLOBAL_LIST_EMPTY(jam_on_wardec) -/obj/item/device/nuclear_challenge +/obj/item/nuclear_challenge name = "Declaration of War (Challenge Mode)" icon_state = "gangtool-red" item_state = "radio" @@ -15,9 +15,9 @@ GLOBAL_LIST_EMPTY(jam_on_wardec) Such a brazen move will attract the attention of powerful benefactors within the Syndicate, who will supply your team with a massive amount of bonus telecrystals. \ Must be used within five minutes, or your benefactors will lose interest." var/declaring_war = FALSE - var/uplink_type = /obj/item/device/radio/uplink/nuclear + var/uplink_type = /obj/item/radio/uplink/nuclear -/obj/item/device/nuclear_challenge/attack_self(mob/living/user) +/obj/item/nuclear_challenge/attack_self(mob/living/user) if(!check_allowed(user)) return @@ -66,7 +66,7 @@ GLOBAL_LIST_EMPTY(jam_on_wardec) qdel(src) -/obj/item/device/nuclear_challenge/proc/check_allowed(mob/living/user) +/obj/item/nuclear_challenge/proc/check_allowed(mob/living/user) if(declaring_war) to_chat(user, "You are already in the process of declaring war! Make your mind up.") return FALSE @@ -86,8 +86,8 @@ GLOBAL_LIST_EMPTY(jam_on_wardec) return FALSE return TRUE -/obj/item/device/nuclear_challenge/clownops - uplink_type = /obj/item/device/radio/uplink/clownop +/obj/item/nuclear_challenge/clownops + uplink_type = /obj/item/radio/uplink/clownop #undef CHALLENGE_TELECRYSTALS #undef CHALLENGE_TIME_LIMIT diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index 28df23a0b0..0e588c4380 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -504,15 +504,12 @@ This is here to make the tiles around the station mininuke change when it's arme /obj/item/disk/nuclear/Initialize() . = ..() - var/tell_the_admins - // Only tell the admins if a REAL nuke disk is relocated - if(fake) - tell_the_admins = FALSE - else + if(!fake) GLOB.poi_list |= src - tell_the_admins = TRUE - set_stationloving(TRUE, inform_admins=tell_the_admins) +/obj/item/disk/nuclear/ComponentInitialize() + . = ..() + AddComponent(/datum/component/stationloving, !fake) /obj/item/disk/nuclear/examine(mob/user) . = ..() diff --git a/code/modules/antagonists/revenant/revenant.dm b/code/modules/antagonists/revenant/revenant.dm index 079bfb093e..34d30603d6 100644 --- a/code/modules/antagonists/revenant/revenant.dm +++ b/code/modules/antagonists/revenant/revenant.dm @@ -16,6 +16,7 @@ var/icon_stun = "revenant_stun" var/icon_drain = "revenant_draining" var/stasis = FALSE + mob_biotypes = list(MOB_SPIRIT) incorporeal_move = INCORPOREAL_MOVE_JAUNT invisibility = INVISIBILITY_REVENANT health = INFINITY //Revenants don't use health, they use essence instead diff --git a/code/modules/antagonists/revolution/revolution.dm b/code/modules/antagonists/revolution/revolution.dm index dae760933e..1f77866d76 100644 --- a/code/modules/antagonists/revolution/revolution.dm +++ b/code/modules/antagonists/revolution/revolution.dm @@ -112,7 +112,7 @@ /datum/antagonist/rev/head/proc/admin_take_flash(mob/admin) var/list/L = owner.current.get_contents() - var/obj/item/device/assembly/flash/flash = locate() in L + var/obj/item/assembly/flash/flash = locate() in L if (!flash) to_chat(admin, "Deleting flash failed!") return @@ -133,7 +133,7 @@ /datum/antagonist/rev/head/proc/admin_repair_flash(mob/admin) var/list/L = owner.current.get_contents() - var/obj/item/device/assembly/flash/flash = locate() in L + var/obj/item/assembly/flash/flash = locate() in L if (!flash) to_chat(admin, "Repairing flash failed!") else @@ -232,7 +232,7 @@ H.dna.remove_mutation(CLOWNMUT) if(give_flash) - var/obj/item/device/assembly/flash/T = new(H) + var/obj/item/assembly/flash/T = new(H) var/list/slots = list ( "backpack" = slot_in_backpack, "left pocket" = slot_l_store, diff --git a/code/modules/antagonists/slaughter/slaughter.dm b/code/modules/antagonists/slaughter/slaughter.dm index e8eb95aa7b..9457e3a8c8 100644 --- a/code/modules/antagonists/slaughter/slaughter.dm +++ b/code/modules/antagonists/slaughter/slaughter.dm @@ -12,6 +12,7 @@ icon = 'icons/mob/mob.dmi' icon_state = "daemon" icon_living = "daemon" + mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) speed = 1 a_intent = INTENT_HARM stop_automated_movement = 1 diff --git a/code/modules/antagonists/swarmer/swarmer.dm b/code/modules/antagonists/swarmer/swarmer.dm index 1a55afa755..8a87191c0d 100644 --- a/code/modules/antagonists/swarmer/swarmer.dm +++ b/code/modules/antagonists/swarmer/swarmer.dm @@ -1,5 +1,5 @@ ////Deactivated swarmer shell//// -/obj/item/device/deactivated_swarmer +/obj/item/deactivated_swarmer name = "deactivated swarmer" desc = "A shell of swarmer that was completely powered down. It can no longer activate itself." icon = 'icons/mob/swarmer.dmi' @@ -45,7 +45,7 @@ user.visible_message("[usr.name] deactivates [src].", "After some fiddling, you find a way to disable [src]'s power source.", "You hear clicking.") - new /obj/item/device/deactivated_swarmer(get_turf(src)) + new /obj/item/deactivated_swarmer(get_turf(src)) qdel(src) else ..() @@ -60,6 +60,7 @@ speak_emote = list("tones") initial_language_holder = /datum/language_holder/swarmer bubble_icon = "swarmer" + mob_biotypes = list(MOB_ROBOTIC) health = 40 maxHealth = 40 status_flags = CANPUSH @@ -398,7 +399,7 @@ to_chat(S, "Disrupting the power grid would bring no benefit to us. Aborting.") return FALSE -/obj/item/device/deactivated_swarmer/IntegrateAmount() +/obj/item/deactivated_swarmer/IntegrateAmount() return 50 /obj/machinery/hydroponics/soil/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) diff --git a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm index 46891b420d..4482629a2e 100644 --- a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm +++ b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm @@ -3,7 +3,7 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list( /obj/machinery/field/containment, - /obj/machinery/power/supermatter_shard, + /obj/machinery/power/supermatter_crystal, /obj/machinery/doomsday_device, /obj/machinery/nuclearbomb, /obj/machinery/nuclearbomb/selfdestruct, @@ -666,6 +666,7 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list( active = FALSE return if(!owner_AI.can_place_transformer(src)) + active = FALSE return var/turf/T = get_turf(owner_AI.eyeobj) var/obj/machinery/transformer/conveyor = new(T) diff --git a/code/modules/antagonists/wizard/equipment/artefact.dm b/code/modules/antagonists/wizard/equipment/artefact.dm index a2b885f777..e0db2e5905 100644 --- a/code/modules/antagonists/wizard/equipment/artefact.dm +++ b/code/modules/antagonists/wizard/equipment/artefact.dm @@ -138,7 +138,7 @@ /////////////////////////////////////////Necromantic Stone/////////////////// -/obj/item/device/necromantic_stone +/obj/item/necromantic_stone name = "necromantic stone" desc = "A shard capable of resurrecting humans as skeleton thralls." icon = 'icons/obj/wizard.dmi' @@ -150,10 +150,10 @@ var/list/spooky_scaries = list() var/unlimited = 0 -/obj/item/device/necromantic_stone/unlimited +/obj/item/necromantic_stone/unlimited unlimited = 1 -/obj/item/device/necromantic_stone/attack(mob/living/carbon/human/M, mob/living/carbon/human/user) +/obj/item/necromantic_stone/attack(mob/living/carbon/human/M, mob/living/carbon/human/user) if(!istype(M)) return ..() @@ -183,7 +183,7 @@ desc = "A shard capable of resurrecting humans as skeleton thralls[unlimited ? "." : ", [spooky_scaries.len]/3 active thralls."]" -/obj/item/device/necromantic_stone/proc/check_spooky() +/obj/item/necromantic_stone/proc/check_spooky() if(unlimited) //no point, the list isn't used. return @@ -199,7 +199,7 @@ listclearnulls(spooky_scaries) //Funny gimmick, skeletons always seem to wear roman/ancient armour -/obj/item/device/necromantic_stone/proc/equip_roman_skeleton(mob/living/carbon/human/H) +/obj/item/necromantic_stone/proc/equip_roman_skeleton(mob/living/carbon/human/H) for(var/obj/item/I in H) H.dropItemToGround(I) diff --git a/code/modules/antagonists/wizard/equipment/soulstone.dm b/code/modules/antagonists/wizard/equipment/soulstone.dm index bea6d41685..c0a328b3ae 100644 --- a/code/modules/antagonists/wizard/equipment/soulstone.dm +++ b/code/modules/antagonists/wizard/equipment/soulstone.dm @@ -1,4 +1,4 @@ -/obj/item/device/soulstone +/obj/item/soulstone name = "soulstone shard" icon = 'icons/obj/wizard.dmi' icon_state = "soulstone" @@ -14,7 +14,7 @@ var/old_shard = FALSE var/spent = FALSE -/obj/item/device/soulstone/proc/was_used() +/obj/item/soulstone/proc/was_used() if(old_shard) spent = TRUE name = "dull [name]" @@ -22,20 +22,20 @@ the 'Soul Stone'. The shard lies still, dull and lifeless; \ whatever spark it once held long extinguished." -/obj/item/device/soulstone/anybody +/obj/item/soulstone/anybody usability = 1 -/obj/item/device/soulstone/anybody/chaplain +/obj/item/soulstone/anybody/chaplain name = "mysterious old shard" old_shard = TRUE -/obj/item/device/soulstone/pickup(mob/living/user) +/obj/item/soulstone/pickup(mob/living/user) ..() if(!iscultist(user) && !iswizard(user) && !usability) to_chat(user, "An overwhelming feeling of dread comes over you as you pick up the soulstone. It would be wise to be rid of this quickly.") user.Dizzy(120) -/obj/item/device/soulstone/examine(mob/user) +/obj/item/soulstone/examine(mob/user) ..() if(usability || iscultist(user) || iswizard(user) || isobserver(user)) if (old_shard) @@ -46,14 +46,14 @@ if(spent) to_chat(user, "This shard is spent; it is now just a creepy rock.") -/obj/item/device/soulstone/Destroy() //Stops the shade from being qdel'd immediately and their ghost being sent back to the arrival shuttle. +/obj/item/soulstone/Destroy() //Stops the shade from being qdel'd immediately and their ghost being sent back to the arrival shuttle. for(var/mob/living/simple_animal/shade/A in src) A.death() return ..() //////////////////////////////Capturing//////////////////////////////////////////////////////// -/obj/item/device/soulstone/attack(mob/living/carbon/human/M, mob/living/user) +/obj/item/soulstone/attack(mob/living/carbon/human/M, mob/living/user) if(!iscultist(user) && !iswizard(user) && !usability) user.Unconscious(100) to_chat(user, "Your body is wracked with debilitating pain!") @@ -71,7 +71,7 @@ ///////////////////Options for using captured souls/////////////////////////////////////// -/obj/item/device/soulstone/attack_self(mob/living/user) +/obj/item/soulstone/attack_self(mob/living/user) if(!in_range(src, user)) return if(!iscultist(user) && !iswizard(user) && !usability) @@ -80,7 +80,7 @@ return release_shades(user) -/obj/item/device/soulstone/proc/release_shades(mob/user) +/obj/item/soulstone/proc/release_shades(mob/user) for(var/mob/living/simple_animal/shade/A in src) A.status_flags &= ~GODMODE A.canmove = 1 @@ -111,8 +111,8 @@ to_chat(user, "A Juggernaut, which is very hard to kill and can produce temporary walls, but is slow.") /obj/structure/constructshell/attackby(obj/item/O, mob/user, params) - if(istype(O, /obj/item/device/soulstone)) - var/obj/item/device/soulstone/SS = O + if(istype(O, /obj/item/soulstone)) + var/obj/item/soulstone/SS = O if(!iscultist(user) && !iswizard(user) && !SS.usability) to_chat(user, "An overwhelming feeling of dread comes over you as you attempt to place the soulstone into the shell. It would be wise to be rid of this quickly.") user.Dizzy(120) @@ -125,7 +125,7 @@ ////////////////////////////Proc for moving soul in and out off stone////////////////////////////////////// -/obj/item/device/soulstone/proc/transfer_soul(choice as text, target, mob/user) +/obj/item/soulstone/proc/transfer_soul(choice as text, target, mob/user) switch(choice) if("FORCE") if(!iscarbon(target)) //TODO: Add sacrifice stoning for non-organics, just because you have no body doesnt mean you dont have a soul @@ -233,7 +233,7 @@ newstruct.cancel_camera() -/obj/item/device/soulstone/proc/init_shade(mob/living/carbon/human/T, mob/U, vic = 0) +/obj/item/soulstone/proc/init_shade(mob/living/carbon/human/T, mob/U, vic = 0) new /obj/effect/decal/remains/human(T.loc) //Spawns a skeleton T.stop_sound_channel(CHANNEL_HEARTBEAT) T.invisibility = INVISIBILITY_ABSTRACT @@ -260,7 +260,7 @@ to_chat(U, "Capture successful!: [T.real_name]'s soul has been ripped from their body and stored within the soul stone.") -/obj/item/device/soulstone/proc/getCultGhost(mob/living/carbon/human/T, mob/U) +/obj/item/soulstone/proc/getCultGhost(mob/living/carbon/human/T, mob/U) var/mob/dead/observer/chosen_ghost for(var/mob/dead/observer/ghost in GLOB.player_list) //We put them back in their body diff --git a/code/modules/antagonists/wizard/equipment/spellbook.dm b/code/modules/antagonists/wizard/equipment/spellbook.dm index 5dc32efd3b..a042b3d08c 100644 --- a/code/modules/antagonists/wizard/equipment/spellbook.dm +++ b/code/modules/antagonists/wizard/equipment/spellbook.dm @@ -337,7 +337,7 @@ /datum/spellbook_entry/item/necrostone name = "A Necromantic Stone" desc = "A Necromantic stone is able to resurrect three dead individuals as skeletal thralls for you to command." - item_path = /obj/item/device/necromantic_stone + item_path = /obj/item/necromantic_stone category = "Assistance" /datum/spellbook_entry/item/wands diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm index 5af72b4261..85d45bd40b 100644 --- a/code/modules/assembly/assembly.dm +++ b/code/modules/assembly/assembly.dm @@ -1,10 +1,10 @@ -#define WIRE_RECEIVE 1 -#define WIRE_PULSE 2 -#define WIRE_PULSE_SPECIAL 4 -#define WIRE_RADIO_RECEIVE 8 -#define WIRE_RADIO_PULSE 16 +#define WIRE_RECEIVE (1<<0) +#define WIRE_PULSE (1<<1) +#define WIRE_PULSE_SPECIAL (1<<2) +#define WIRE_RADIO_RECEIVE (1<<3) +#define WIRE_RADIO_PULSE (1<<4) -/obj/item/device/assembly +/obj/item/assembly name = "assembly" desc = "A small electronic device that should never exist." icon = 'icons/obj/assemblies/new_assemblies.dmi' @@ -18,28 +18,28 @@ var/secured = TRUE var/list/attached_overlays = null - var/obj/item/device/assembly_holder/holder = null + var/obj/item/assembly_holder/holder = null var/wire_type = WIRE_RECEIVE | WIRE_PULSE var/attachable = FALSE // can this be attached to wires var/datum/wires/connected = null var/next_activate = 0 //When we're next allowed to activate - for spam control -/obj/item/device/assembly/get_part_rating() +/obj/item/assembly/get_part_rating() return 1 -/obj/item/device/assembly/proc/on_attach() +/obj/item/assembly/proc/on_attach() -/obj/item/device/assembly/proc/on_detach() +/obj/item/assembly/proc/on_detach() -/obj/item/device/assembly/proc/holder_movement() //Called when the holder is moved +/obj/item/assembly/proc/holder_movement() //Called when the holder is moved return -/obj/item/device/assembly/proc/describe() // Called by grenades to describe the state of the trigger (time left, etc) +/obj/item/assembly/proc/describe() // Called by grenades to describe the state of the trigger (time left, etc) return "The trigger assembly looks broken!" -/obj/item/device/assembly/proc/is_secured(mob/user) +/obj/item/assembly/proc/is_secured(mob/user) if(!secured) to_chat(user, "The [name] is unsecured!") return FALSE @@ -47,7 +47,7 @@ //Called when another assembly acts on this one, var/radio will determine where it came from for wire calcs -/obj/item/device/assembly/proc/pulsed(radio = 0) +/obj/item/assembly/proc/pulsed(radio = 0) if(wire_type & WIRE_RECEIVE) INVOKE_ASYNC(src, .proc/activate) if(radio && (wire_type & WIRE_RADIO_RECEIVE)) @@ -56,7 +56,7 @@ //Called when this device attempts to act on another device, var/radio determines if it was sent via radio or direct -/obj/item/device/assembly/proc/pulse(radio = 0) +/obj/item/assembly/proc/pulse(radio = 0) if(connected && wire_type) connected.pulse_assembly(src) return TRUE @@ -68,24 +68,24 @@ // What the device does when turned on -/obj/item/device/assembly/proc/activate() +/obj/item/assembly/proc/activate() if(QDELETED(src) || !secured || (next_activate > world.time)) return FALSE next_activate = world.time + 30 return TRUE -/obj/item/device/assembly/proc/toggle_secure() +/obj/item/assembly/proc/toggle_secure() secured = !secured update_icon() return secured -/obj/item/device/assembly/attackby(obj/item/W, mob/user, params) +/obj/item/assembly/attackby(obj/item/W, mob/user, params) if(isassembly(W)) - var/obj/item/device/assembly/A = W + var/obj/item/assembly/A = W if((!A.secured) && (!secured)) - holder = new/obj/item/device/assembly_holder(get_turf(src)) + holder = new/obj/item/assembly_holder(get_turf(src)) holder.assemble(src,A,user) to_chat(user, "You attach and secure \the [A] to \the [src]!") else @@ -100,7 +100,7 @@ ..() -/obj/item/device/assembly/examine(mob/user) +/obj/item/assembly/examine(mob/user) ..() if(secured) to_chat(user, "\The [src] is secured and ready to be used.") @@ -108,12 +108,12 @@ to_chat(user, "\The [src] can be attached to other things.") -/obj/item/device/assembly/attack_self(mob/user) +/obj/item/assembly/attack_self(mob/user) if(!user) return FALSE user.set_machine(src) interact(user) return TRUE -/obj/item/device/assembly/interact(mob/user) +/obj/item/assembly/interact(mob/user) return ui_interact(user) diff --git a/code/modules/assembly/bomb.dm b/code/modules/assembly/bomb.dm index 18fda04a1b..daca7a5435 100644 --- a/code/modules/assembly/bomb.dm +++ b/code/modules/assembly/bomb.dm @@ -1,4 +1,4 @@ -/obj/item/device/onetankbomb +/obj/item/onetankbomb name = "bomb" icon = 'icons/obj/tank.dmi' item_state = "assembly" @@ -10,14 +10,14 @@ throw_range = 4 flags_1 = CONDUCT_1 var/status = FALSE //0 - not readied //1 - bomb finished with welder - var/obj/item/device/assembly_holder/bombassembly = null //The first part of the bomb is an assembly holder, holding an igniter+some device + var/obj/item/assembly_holder/bombassembly = null //The first part of the bomb is an assembly holder, holding an igniter+some device var/obj/item/tank/bombtank = null //the second part of the bomb is a plasma tank -/obj/item/device/onetankbomb/examine(mob/user) +/obj/item/onetankbomb/examine(mob/user) bombtank.examine(user) -/obj/item/device/onetankbomb/update_icon() +/obj/item/onetankbomb/update_icon() if(bombtank) icon = bombtank.icon icon_state = bombtank.icon_state @@ -26,8 +26,8 @@ copy_overlays(bombassembly) add_overlay("bomb_assembly") -/obj/item/device/onetankbomb/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/device/analyzer)) +/obj/item/onetankbomb/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/analyzer)) bombtank.attackby(W, user) return if(istype(W, /obj/item/wrench) && !status) //This is basically bomb assembly code inverted. apparently it works. @@ -54,12 +54,12 @@ add_fingerprint(user) ..() -/obj/item/device/onetankbomb/attack_self(mob/user) //pressing the bomb accesses its assembly +/obj/item/onetankbomb/attack_self(mob/user) //pressing the bomb accesses its assembly bombassembly.attack_self(user, TRUE) add_fingerprint(user) return -/obj/item/device/onetankbomb/receive_signal() //This is mainly called by the sensor through sense() to the holder, and from the holder to here. +/obj/item/onetankbomb/receive_signal() //This is mainly called by the sensor through sense() to the holder, and from the holder to here. visible_message("[icon2html(src, viewers(src))] *beep* *beep*", "*beep* *beep*") sleep(10) if(!src) @@ -69,11 +69,11 @@ else bombtank.release() -/obj/item/device/onetankbomb/Crossed(atom/movable/AM as mob|obj) //for mousetraps +/obj/item/onetankbomb/Crossed(atom/movable/AM as mob|obj) //for mousetraps if(bombassembly) bombassembly.Crossed(AM) -/obj/item/device/onetankbomb/on_found(mob/finder) //for mousetraps +/obj/item/onetankbomb/on_found(mob/finder) //for mousetraps if(bombassembly) bombassembly.on_found(finder) @@ -81,7 +81,7 @@ // ---------- Procs below are for tanks that are used exclusively in 1-tank bombs ---------- //Bomb assembly proc. This turns assembly+tank into a bomb -/obj/item/tank/proc/bomb_assemble(obj/item/device/assembly_holder/assembly, mob/living/user) +/obj/item/tank/proc/bomb_assemble(obj/item/assembly_holder/assembly, mob/living/user) //Check if either part of the assembly has an igniter, but if both parts are igniters, then fuck it if(isigniter(assembly.a_left) == isigniter(assembly.a_right)) return @@ -94,7 +94,7 @@ to_chat(user, "[assembly] is stuck to your hand!") return - var/obj/item/device/onetankbomb/bomb = new + var/obj/item/onetankbomb/bomb = new user.transferItemToLoc(src, bomb) user.transferItemToLoc(assembly, bomb) diff --git a/code/modules/assembly/doorcontrol.dm b/code/modules/assembly/doorcontrol.dm index 47d3d9e436..c3475b1839 100644 --- a/code/modules/assembly/doorcontrol.dm +++ b/code/modules/assembly/doorcontrol.dm @@ -1,4 +1,4 @@ -/obj/item/device/assembly/control +/obj/item/assembly/control name = "blast door controller" desc = "A small electronic device able to control a blast door remotely." icon_state = "control" @@ -7,12 +7,12 @@ var/can_change_id = 0 var/cooldown = 0//Door cooldowns -/obj/item/device/assembly/control/examine(mob/user) +/obj/item/assembly/control/examine(mob/user) ..() if(id) to_chat(user, "Its channel ID is '[id]'.") -/obj/item/device/assembly/control/activate() +/obj/item/assembly/control/activate() cooldown = 1 var/openclose for(var/obj/machinery/door/poddoor/M in GLOB.machines) @@ -24,7 +24,7 @@ cooldown = 0 -/obj/item/device/assembly/control/airlock +/obj/item/assembly/control/airlock name = "airlock controller" desc = "A small electronic device able to control an airlock remotely." id = "badmin" // Set it to null for MEGAFUN. @@ -37,7 +37,7 @@ 16= door safties (SAFE) */ -/obj/item/device/assembly/control/airlock/activate() +/obj/item/assembly/control/airlock/activate() cooldown = 1 var/doors_need_closing = FALSE var/list/obj/machinery/door/airlock/open_or_close = list() @@ -70,11 +70,11 @@ cooldown = 0 -/obj/item/device/assembly/control/massdriver +/obj/item/assembly/control/massdriver name = "mass driver controller" desc = "A small electronic device able to control a mass driver." -/obj/item/device/assembly/control/massdriver/activate() +/obj/item/assembly/control/massdriver/activate() cooldown = 1 for(var/obj/machinery/door/poddoor/M in GLOB.machines) if (M.id == src.id) @@ -96,11 +96,11 @@ cooldown = 0 -/obj/item/device/assembly/control/igniter +/obj/item/assembly/control/igniter name = "ignition controller" desc = "A remote controller for a mounted igniter." -/obj/item/device/assembly/control/igniter/activate() +/obj/item/assembly/control/igniter/activate() cooldown = 1 for(var/obj/machinery/sparker/M in GLOB.machines) if (M.id == src.id) @@ -116,11 +116,11 @@ cooldown = 0 -/obj/item/device/assembly/control/flasher +/obj/item/assembly/control/flasher name = "flasher controller" desc = "A remote controller for a mounted flasher." -/obj/item/device/assembly/control/flasher/activate() +/obj/item/assembly/control/flasher/activate() cooldown = 1 for(var/obj/machinery/flasher/M in GLOB.machines) if(M.id == src.id) @@ -130,11 +130,11 @@ cooldown = 0 -/obj/item/device/assembly/control/crematorium +/obj/item/assembly/control/crematorium name = "crematorium controller" desc = "An evil-looking remote controller for a crematorium." -/obj/item/device/assembly/control/crematorium/activate() +/obj/item/assembly/control/crematorium/activate() cooldown = 1 for (var/obj/structure/bodycontainer/crematorium/C in GLOB.crematoriums) if (C.id == id) diff --git a/code/modules/assembly/flash.dm b/code/modules/assembly/flash.dm index 2b0e3af514..cbfdb860f9 100644 --- a/code/modules/assembly/flash.dm +++ b/code/modules/assembly/flash.dm @@ -1,6 +1,7 @@ -/obj/item/device/assembly/flash +/obj/item/assembly/flash name = "flash" desc = "A powerful and versatile flashbulb device, with applications ranging from disorienting attackers to acting as visual receptors in robot production." + icon = 'icons/obj/device.dmi' icon_state = "flash" item_state = "flashtool" lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' @@ -15,7 +16,7 @@ var/cooldown = 0 var/last_trigger = 0 //Last time it was successfully triggered. -/obj/item/device/assembly/flash/suicide_act(mob/living/user) +/obj/item/assembly/flash/suicide_act(mob/living/user) if (crit_fail) user.visible_message("[user] raises \the [src] up to [user.p_their()] eyes and activates it ... but its burnt out!") return SHAME @@ -26,7 +27,7 @@ attack(user,user) return FIRELOSS -/obj/item/device/assembly/flash/update_icon(flash = FALSE) +/obj/item/assembly/flash/update_icon(flash = FALSE) cut_overlays() attached_overlays = list() if(crit_fail) @@ -39,13 +40,13 @@ if(holder) holder.update_icon() -/obj/item/device/assembly/flash/proc/clown_check(mob/living/carbon/human/user) +/obj/item/assembly/flash/proc/clown_check(mob/living/carbon/human/user) if(user.has_trait(TRAIT_CLUMSY) && prob(50)) flash_carbon(user, user, 15, 0) return FALSE return TRUE -/obj/item/device/assembly/flash/proc/burn_out() //Made so you can override it if you want to have an invincible flash from R&D or something. +/obj/item/assembly/flash/proc/burn_out() //Made so you can override it if you want to have an invincible flash from R&D or something. if(!crit_fail) crit_fail = TRUE update_icon() @@ -56,7 +57,7 @@ var/turf/T = get_turf(src) T.visible_message("[src] burns out!") -/obj/item/device/assembly/flash/proc/flash_recharge(interval = 10) +/obj/item/assembly/flash/proc/flash_recharge(interval = 10) var/deciseconds_passed = world.time - last_used for(var/seconds = deciseconds_passed / 10, seconds >= interval, seconds -= interval) //get 1 charge every interval times_used-- @@ -68,7 +69,7 @@ return TRUE //BYPASS CHECKS ALSO PREVENTS BURNOUT! -/obj/item/device/assembly/flash/proc/AOE_flash(bypass_checks = FALSE, range = 3, power = 5, targeted = FALSE, mob/user) +/obj/item/assembly/flash/proc/AOE_flash(bypass_checks = FALSE, range = 3, power = 5, targeted = FALSE, mob/user) if(!bypass_checks && !try_use_flash()) return FALSE var/list/mob/targets = get_flash_targets(get_turf(src), range, FALSE) @@ -78,7 +79,7 @@ flash_carbon(C, user, power, targeted, TRUE) return TRUE -/obj/item/device/assembly/flash/proc/get_flash_targets(atom/target_loc, range = 3, override_vision_checks = FALSE) +/obj/item/assembly/flash/proc/get_flash_targets(atom/target_loc, range = 3, override_vision_checks = FALSE) if(!target_loc) target_loc = loc if(override_vision_checks) @@ -88,7 +89,7 @@ else return typecache_filter_list(target_loc.GetAllContents(), typecacheof(list(/mob/living))) -/obj/item/device/assembly/flash/proc/try_use_flash(mob/user = null) +/obj/item/assembly/flash/proc/try_use_flash(mob/user = null) if(crit_fail || (world.time < last_trigger + cooldown)) return FALSE last_trigger = world.time @@ -100,7 +101,7 @@ return FALSE return TRUE -/obj/item/device/assembly/flash/proc/flash_carbon(mob/living/carbon/M, mob/user, power = 15, targeted = TRUE, generic_message = FALSE) +/obj/item/assembly/flash/proc/flash_carbon(mob/living/carbon/M, mob/user, power = 15, targeted = TRUE, generic_message = FALSE) if(!istype(M)) return add_logs(user, M, "[targeted? "flashed(targeted)" : "flashed(AOE)"]", src) @@ -127,7 +128,7 @@ if(M.flash_act()) M.confused += power -/obj/item/device/assembly/flash/attack(mob/living/M, mob/user) +/obj/item/assembly/flash/attack(mob/living/M, mob/user) if(!try_use_flash(user)) return FALSE if(iscarbon(M)) @@ -145,26 +146,26 @@ user.visible_message("[user] fails to blind [M] with the flash!", "You fail to blind [M] with the flash!") -/obj/item/device/assembly/flash/attack_self(mob/living/carbon/user, flag = 0, emp = 0) +/obj/item/assembly/flash/attack_self(mob/living/carbon/user, flag = 0, emp = 0) if(holder) return FALSE if(!AOE_flash(FALSE, 3, 5, FALSE, user)) return FALSE to_chat(user, "[src] emits a blinding light!") -/obj/item/device/assembly/flash/emp_act(severity) +/obj/item/assembly/flash/emp_act(severity) if(!try_use_flash()) return FALSE AOE_flash() burn_out() . = ..() -/obj/item/device/assembly/flash/activate()//AOE flash on signal recieved +/obj/item/assembly/flash/activate()//AOE flash on signal recieved if(!..()) return AOE_flash() -/obj/item/device/assembly/flash/proc/terrible_conversion_proc(mob/living/carbon/human/H, mob/user) +/obj/item/assembly/flash/proc/terrible_conversion_proc(mob/living/carbon/human/H, mob/user) if(istype(H) && ishuman(user) && H.stat != DEAD) if(user.mind) var/datum/antagonist/rev/head/converter = user.mind.has_antag_datum(/datum/antagonist/rev/head) @@ -182,43 +183,43 @@ to_chat(user, "This mind seems resistant to the flash!") -/obj/item/device/assembly/flash/cyborg +/obj/item/assembly/flash/cyborg -/obj/item/device/assembly/flash/cyborg/attack(mob/living/M, mob/user) +/obj/item/assembly/flash/cyborg/attack(mob/living/M, mob/user) ..() new /obj/effect/temp_visual/borgflash(get_turf(src)) -/obj/item/device/assembly/flash/cyborg/attack_self(mob/user) +/obj/item/assembly/flash/cyborg/attack_self(mob/user) ..() new /obj/effect/temp_visual/borgflash(get_turf(src)) -/obj/item/device/assembly/flash/cyborg/attackby(obj/item/W, mob/user, params) +/obj/item/assembly/flash/cyborg/attackby(obj/item/W, mob/user, params) return -/obj/item/device/assembly/flash/memorizer +/obj/item/assembly/flash/memorizer name = "memorizer" desc = "If you see this, you're not likely to remember it any time soon." icon = 'icons/obj/device.dmi' icon_state = "memorizer" item_state = "nullrod" -/obj/item/device/assembly/flash/handheld //this is now the regular pocket flashes +/obj/item/assembly/flash/handheld //this is now the regular pocket flashes -/obj/item/device/assembly/flash/armimplant +/obj/item/assembly/flash/armimplant name = "photon projector" desc = "A high-powered photon projector implant normally used for lighting purposes, but also doubles as a flashbulb weapon. Self-repair protocals fix the flashbulb if it ever burns out." var/flashcd = 20 var/overheat = 0 var/obj/item/organ/cyberimp/arm/flash/I = null -/obj/item/device/assembly/flash/armimplant/burn_out() +/obj/item/assembly/flash/armimplant/burn_out() if(I && I.owner) to_chat(I.owner, "Your photon projector implant overheats and deactivates!") I.Retract() overheat = TRUE addtimer(CALLBACK(src, .proc/cooldown), flashcd * 2) -/obj/item/device/assembly/flash/armimplant/try_use_flash(mob/user = null) +/obj/item/assembly/flash/armimplant/try_use_flash(mob/user = null) if(overheat) if(I && I.owner) to_chat(I.owner, "Your photon projector is running too hot to be used again so quickly!") @@ -230,10 +231,10 @@ return TRUE -/obj/item/device/assembly/flash/armimplant/proc/cooldown() +/obj/item/assembly/flash/armimplant/proc/cooldown() overheat = FALSE -/obj/item/device/assembly/flash/shield +/obj/item/assembly/flash/shield name = "strobe shield" desc = "A shield with a built in, high intensity light capable of blinding and disorienting suspects. Takes regular handheld flashes as bulbs." icon = 'icons/obj/items_and_weapons.dmi' @@ -252,15 +253,15 @@ block_chance = 50 armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 0, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 70) -/obj/item/device/assembly/flash/shield/flash_recharge(interval=10) +/obj/item/assembly/flash/shield/flash_recharge(interval=10) if(times_used >= 4) burn_out() return FALSE return TRUE -/obj/item/device/assembly/flash/shield/attackby(obj/item/W, mob/user) - if(istype(W, /obj/item/device/assembly/flash/handheld)) - var/obj/item/device/assembly/flash/handheld/flash = W +/obj/item/assembly/flash/shield/attackby(obj/item/W, mob/user) + if(istype(W, /obj/item/assembly/flash/handheld)) + var/obj/item/assembly/flash/handheld/flash = W if(flash.crit_fail) to_chat(user, "No sense replacing it with a broken bulb.") return @@ -278,7 +279,7 @@ return ..() -/obj/item/device/assembly/flash/shield/update_icon(flash = FALSE) +/obj/item/assembly/flash/shield/update_icon(flash = FALSE) icon_state = "flashshield" item_state = "flashshield" @@ -293,6 +294,6 @@ if(holder) holder.update_icon() -/obj/item/device/assembly/flash/shield/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) +/obj/item/assembly/flash/shield/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) activate() return ..() diff --git a/code/modules/assembly/health.dm b/code/modules/assembly/health.dm index 25271c4d9b..633db327bf 100644 --- a/code/modules/assembly/health.dm +++ b/code/modules/assembly/health.dm @@ -1,4 +1,4 @@ -/obj/item/device/assembly/health +/obj/item/assembly/health name = "health sensor" desc = "Used for scanning and monitoring health." icon_state = "health" @@ -10,17 +10,17 @@ var/health_scan var/alarm_health = 0 -/obj/item/device/assembly/health/examine(mob/user) +/obj/item/assembly/health/examine(mob/user) ..() to_chat(user, "Use a multitool to swap between \"detect death\" mode and \"detect critical state\" mode.") -/obj/item/device/assembly/health/activate() +/obj/item/assembly/health/activate() if(!..()) return 0//Cooldown check toggle_scan() return 0 -/obj/item/device/assembly/health/toggle_secure() +/obj/item/assembly/health/toggle_secure() secured = !secured if(secured && scanning) START_PROCESSING(SSobj, src) @@ -30,8 +30,8 @@ update_icon() return secured -/obj/item/device/assembly/health/attackby(obj/item/W as obj, mob/user as mob) - if(istype(W, /obj/item/device/multitool)) +/obj/item/assembly/health/attackby(obj/item/W as obj, mob/user as mob) + if(istype(W, /obj/item/multitool)) if(alarm_health == 0) alarm_health = -90 user.show_message("You toggle [src] to \"detect death\" mode.") @@ -42,7 +42,7 @@ else return ..() -/obj/item/device/assembly/health/process() +/obj/item/assembly/health/process() if(!scanning || !secured) return @@ -63,7 +63,7 @@ return return -/obj/item/device/assembly/health/proc/toggle_scan() +/obj/item/assembly/health/proc/toggle_scan() if(!secured) return 0 scanning = !scanning @@ -73,7 +73,7 @@ STOP_PROCESSING(SSobj, src) return -/obj/item/device/assembly/health/ui_interact(mob/user as mob)//TODO: Change this to the wires thingy +/obj/item/assembly/health/ui_interact(mob/user as mob)//TODO: Change this to the wires thingy . = ..() if(!secured) user.show_message("The [name] is unsecured!") @@ -84,7 +84,7 @@ user << browse(dat, "window=hscan") onclose(user, "hscan") -/obj/item/device/assembly/health/Topic(href, href_list) +/obj/item/assembly/health/Topic(href, href_list) ..() if(!ismob(usr)) return diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm index 79a92af527..c830935132 100644 --- a/code/modules/assembly/holder.dm +++ b/code/modules/assembly/holder.dm @@ -1,4 +1,4 @@ -/obj/item/device/assembly_holder +/obj/item/assembly_holder name = "Assembly" icon = 'icons/obj/assemblies/new_assemblies.dmi' icon_state = "holder" @@ -11,21 +11,21 @@ throw_speed = 2 throw_range = 7 - var/obj/item/device/assembly/a_left = null - var/obj/item/device/assembly/a_right = null + var/obj/item/assembly/a_left = null + var/obj/item/assembly/a_right = null -/obj/item/device/assembly_holder/IsAssemblyHolder() +/obj/item/assembly_holder/IsAssemblyHolder() return 1 -/obj/item/device/assembly_holder/proc/assemble(obj/item/device/assembly/A, obj/item/device/assembly/A2, mob/user) +/obj/item/assembly_holder/proc/assemble(obj/item/assembly/A, obj/item/assembly/A2, mob/user) attach(A,user) attach(A2,user) name = "[A.name]-[A2.name] assembly" update_icon() SSblackbox.record_feedback("tally", "assembly_made", 1, "[initial(A.name)]-[initial(A2.name)]") -/obj/item/device/assembly_holder/proc/attach(obj/item/device/assembly/A, mob/user) +/obj/item/assembly_holder/proc/attach(obj/item/assembly/A, mob/user) if(!A.remove_item_from_storage(src)) if(user) user.transferItemToLoc(A, src) @@ -38,7 +38,7 @@ else a_right = A -/obj/item/device/assembly_holder/update_icon() +/obj/item/assembly_holder/update_icon() cut_overlays() if(a_left) add_overlay("[a_left.icon_state]_left") @@ -55,25 +55,25 @@ if(master) master.update_icon() -/obj/item/device/assembly_holder/Crossed(atom/movable/AM as mob|obj) +/obj/item/assembly_holder/Crossed(atom/movable/AM as mob|obj) if(a_left) a_left.Crossed(AM) if(a_right) a_right.Crossed(AM) -/obj/item/device/assembly_holder/on_found(mob/finder) +/obj/item/assembly_holder/on_found(mob/finder) if(a_left) a_left.on_found(finder) if(a_right) a_right.on_found(finder) -/obj/item/device/assembly_holder/Move() +/obj/item/assembly_holder/Move() . = ..() if(a_left && a_right) a_left.holder_movement() a_right.holder_movement() -/obj/item/device/assembly_holder/attack_hand()//Perhapse this should be a holder_pickup proc instead, can add if needbe I guess +/obj/item/assembly_holder/attack_hand()//Perhapse this should be a holder_pickup proc instead, can add if needbe I guess . = ..() if(.) return @@ -81,7 +81,7 @@ a_left.holder_movement() a_right.holder_movement() -/obj/item/device/assembly_holder/attackby(obj/item/W, mob/user, params) +/obj/item/assembly_holder/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/screwdriver)) var/turf/T = get_turf(src) if(!T) @@ -96,7 +96,7 @@ else ..() -/obj/item/device/assembly_holder/attack_self(mob/user) +/obj/item/assembly_holder/attack_self(mob/user) src.add_fingerprint(user) if(!a_left || !a_right) to_chat(user, "Assembly part missing!") @@ -113,7 +113,7 @@ a_right.attack_self(user) -/obj/item/device/assembly_holder/proc/process_activation(obj/D, normal = 1, special = 1) +/obj/item/assembly_holder/proc/process_activation(obj/D, normal = 1, special = 1) if(!D) return 0 if((normal) && (a_right) && (a_left)) diff --git a/code/modules/assembly/igniter.dm b/code/modules/assembly/igniter.dm index 1a0f439820..ef0949481a 100644 --- a/code/modules/assembly/igniter.dm +++ b/code/modules/assembly/igniter.dm @@ -1,4 +1,4 @@ -/obj/item/device/assembly/igniter +/obj/item/assembly/igniter name = "igniter" desc = "A small electronic device able to ignite combustible substances." icon_state = "igniter" @@ -6,22 +6,22 @@ var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread heat = 1000 -/obj/item/device/assembly/igniter/suicide_act(mob/living/carbon/user) +/obj/item/assembly/igniter/suicide_act(mob/living/carbon/user) user.visible_message("[user] is trying to ignite [user.p_them()]self with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!") user.IgniteMob() return FIRELOSS -/obj/item/device/assembly/igniter/New() +/obj/item/assembly/igniter/New() ..() sparks.set_up(2, 0, src) sparks.attach(src) -/obj/item/device/assembly/igniter/Destroy() +/obj/item/assembly/igniter/Destroy() qdel(sparks) sparks = null . = ..() -/obj/item/device/assembly/igniter/activate() +/obj/item/assembly/igniter/activate() if(!..()) return 0//Cooldown check var/turf/location = get_turf(loc) @@ -30,11 +30,11 @@ sparks.start() return 1 -/obj/item/device/assembly/igniter/attack_self(mob/user) +/obj/item/assembly/igniter/attack_self(mob/user) activate() add_fingerprint(user) -/obj/item/device/assembly/igniter/ignition_effect(atom/A, mob/user) +/obj/item/assembly/igniter/ignition_effect(atom/A, mob/user) . = "[user] fiddles with [src], and manages to \ light [A]." activate() diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index d18b41c68b..374c7762d4 100644 --- a/code/modules/assembly/infrared.dm +++ b/code/modules/assembly/infrared.dm @@ -1,4 +1,4 @@ -/obj/item/device/assembly/infra +/obj/item/assembly/infra name = "infrared emitter" desc = "Emits a visible or invisible beam and is triggered when the beam is interrupted.\nAlt-click to rotate it clockwise." icon_state = "infrared" @@ -11,26 +11,26 @@ var/olddir = 0 var/datum/component/redirect/listener -/obj/item/device/assembly/infra/Initialize() +/obj/item/assembly/infra/Initialize() . = ..() beams = list() START_PROCESSING(SSobj, src) -/obj/item/device/assembly/infra/Destroy() +/obj/item/assembly/infra/Destroy() QDEL_LIST(beams) return ..() -/obj/item/device/assembly/infra/describe() +/obj/item/assembly/infra/describe() return "The infrared trigger is [on?"on":"off"]." -/obj/item/device/assembly/infra/activate() +/obj/item/assembly/infra/activate() if(!..()) return 0//Cooldown check on = !on update_icon() return 1 -/obj/item/device/assembly/infra/toggle_secure() +/obj/item/assembly/infra/toggle_secure() secured = !secured if(secured) START_PROCESSING(SSobj, src) @@ -40,7 +40,7 @@ update_icon() return secured -/obj/item/device/assembly/infra/update_icon() +/obj/item/assembly/infra/update_icon() cut_overlays() attached_overlays = list() if(on) @@ -51,15 +51,15 @@ holder.update_icon() return -/obj/item/device/assembly/infra/dropped() +/obj/item/assembly/infra/dropped() refreshBeam() -/obj/item/device/assembly/infra/process() +/obj/item/assembly/infra/process() if(!on || !secured) refreshBeam() return -/obj/item/device/assembly/infra/proc/refreshBeam() +/obj/item/assembly/infra/proc/refreshBeam() QDEL_LIST(beams) if(throwing || !on || !secured || !(isturf(loc) || holder && isturf(holder.loc))) return @@ -83,33 +83,33 @@ _T = get_step(_T, _dir) CHECK_TICK -/obj/item/device/assembly/infra/attack_hand() +/obj/item/assembly/infra/attack_hand() . = ..() refreshBeam() -/obj/item/device/assembly/infra/Moved() +/obj/item/assembly/infra/Moved() var/t = dir . = ..() setDir(t) -/obj/item/device/assembly/infra/throw_at() +/obj/item/assembly/infra/throw_at() . = ..() olddir = dir -/obj/item/device/assembly/infra/throw_impact() +/obj/item/assembly/infra/throw_impact() . = ..() if(!olddir) return setDir(olddir) olddir = null -/obj/item/device/assembly/infra/holder_movement() +/obj/item/assembly/infra/holder_movement() if(!holder) return 0 refreshBeam() return 1 -/obj/item/device/assembly/infra/proc/trigger_beam(atom/movable/AM, turf/location) +/obj/item/assembly/infra/proc/trigger_beam(atom/movable/AM, turf/location) refreshBeam() switchListener(location) if(!secured || !on || next_activate > world.time) @@ -118,16 +118,16 @@ audible_message("[icon2html(src, hearers(src))] *beep* *beep*", null, 3) next_activate = world.time + 30 -/obj/item/device/assembly/infra/proc/switchListener(turf/newloc) +/obj/item/assembly/infra/proc/switchListener(turf/newloc) QDEL_NULL(listener) listener = newloc.AddComponent(/datum/component/redirect, COMSIG_ATOM_EXITED, CALLBACK(src, .proc/check_exit)) -/obj/item/device/assembly/infra/proc/check_exit(atom/movable/offender) +/obj/item/assembly/infra/proc/check_exit(atom/movable/offender) if(offender && ((offender.flags_1 & ABSTRACT_1) || offender == src)) return return refreshBeam() -/obj/item/device/assembly/infra/ui_interact(mob/user)//TODO: change this this to the wire control panel +/obj/item/assembly/infra/ui_interact(mob/user)//TODO: change this this to the wire control panel . = ..() if(is_secured(user)) user.set_machine(src) @@ -138,7 +138,7 @@ onclose(user, "infra") return -/obj/item/device/assembly/infra/Topic(href, href_list) +/obj/item/assembly/infra/Topic(href, href_list) ..() if(usr.incapacitated() || !in_range(loc, usr)) usr << browse(null, "window=infra") @@ -157,7 +157,7 @@ if(usr) attack_self(usr) -/obj/item/device/assembly/infra/verb/rotate()//This could likely be better +/obj/item/assembly/infra/verb/rotate()//This could likely be better set name = "Rotate Infrared Laser" set category = "Object" set src in usr @@ -167,14 +167,14 @@ setDir(turn(dir, -90)) -/obj/item/device/assembly/infra/AltClick(mob/user) +/obj/item/assembly/infra/AltClick(mob/user) ..() if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERY)) return else rotate() -/obj/item/device/assembly/infra/setDir() +/obj/item/assembly/infra/setDir() . = ..() refreshBeam() @@ -184,7 +184,7 @@ name = "infrared beam" icon = 'icons/obj/projectiles.dmi' icon_state = "ibeam" - var/obj/item/device/assembly/infra/master + var/obj/item/assembly/infra/master anchored = TRUE density = FALSE flags_1 = ABSTRACT_1 diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm index 97d03aa12d..d0d27ebe11 100644 --- a/code/modules/assembly/mousetrap.dm +++ b/code/modules/assembly/mousetrap.dm @@ -1,4 +1,4 @@ -/obj/item/device/assembly/mousetrap +/obj/item/assembly/mousetrap name = "mousetrap" desc = "A handy little spring-loaded trap for catching pesty rodents." icon_state = "mousetrap" @@ -7,14 +7,14 @@ var/armed = 0 -/obj/item/device/assembly/mousetrap/examine(mob/user) +/obj/item/assembly/mousetrap/examine(mob/user) ..() if(armed) to_chat(user, "The mousetrap is armed!") else to_chat(user, "The mousetrap is not armed.") -/obj/item/device/assembly/mousetrap/activate() +/obj/item/assembly/mousetrap/activate() if(..()) armed = !armed if(!armed) @@ -27,10 +27,10 @@ if(usr) playsound(usr.loc, 'sound/weapons/handcuffs.ogg', 30, 1, -3) -/obj/item/device/assembly/mousetrap/describe() +/obj/item/assembly/mousetrap/describe() return "The pressure switch is [armed?"primed":"safe"]." -/obj/item/device/assembly/mousetrap/update_icon() +/obj/item/assembly/mousetrap/update_icon() if(armed) icon_state = "mousetraparmed" else @@ -38,7 +38,7 @@ if(holder) holder.update_icon() -/obj/item/device/assembly/mousetrap/proc/triggered(mob/target, type = "feet") +/obj/item/assembly/mousetrap/proc/triggered(mob/target, type = "feet") if(!armed) return var/obj/item/bodypart/affecting = null @@ -72,7 +72,7 @@ pulse(0) -/obj/item/device/assembly/mousetrap/attack_self(mob/living/carbon/human/user) +/obj/item/assembly/mousetrap/attack_self(mob/living/carbon/human/user) if(!armed) to_chat(user, "You arm [src].") else @@ -91,7 +91,7 @@ //ATTACK HAND IGNORING PARENT RETURN VALUE -/obj/item/device/assembly/mousetrap/attack_hand(mob/living/carbon/human/user) +/obj/item/assembly/mousetrap/attack_hand(mob/living/carbon/human/user) if(armed) if((user.has_trait(TRAIT_DUMB) || user.has_trait(TRAIT_CLUMSY)) && prob(50)) var/which_hand = BODY_ZONE_PRECISE_L_HAND @@ -104,7 +104,7 @@ return ..() -/obj/item/device/assembly/mousetrap/Crossed(atom/movable/AM as mob|obj) +/obj/item/assembly/mousetrap/Crossed(atom/movable/AM as mob|obj) if(armed) if(ismob(AM)) var/mob/MM = AM @@ -122,7 +122,7 @@ ..() -/obj/item/device/assembly/mousetrap/on_found(mob/finder) +/obj/item/assembly/mousetrap/on_found(mob/finder) if(armed) finder.visible_message("[finder] accidentally sets off [src], breaking their fingers.", \ "You accidentally trigger [src]!") @@ -131,13 +131,13 @@ return 0 -/obj/item/device/assembly/mousetrap/hitby(A as mob|obj) +/obj/item/assembly/mousetrap/hitby(A as mob|obj) if(!armed) return ..() visible_message("[src] is triggered by [A].") triggered(null) -/obj/item/device/assembly/mousetrap/armed +/obj/item/assembly/mousetrap/armed icon_state = "mousetraparmed" armed = 1 diff --git a/code/modules/assembly/proximity.dm b/code/modules/assembly/proximity.dm index df852fc135..d79b4786c6 100644 --- a/code/modules/assembly/proximity.dm +++ b/code/modules/assembly/proximity.dm @@ -1,4 +1,4 @@ -/obj/item/device/assembly/prox_sensor +/obj/item/assembly/prox_sensor name = "proximity sensor" desc = "Used for scanning and alerting when someone enters a certain proximity." icon_state = "prox" @@ -10,29 +10,29 @@ var/time = 10 var/sensitivity = 1 -/obj/item/device/assembly/prox_sensor/proc/toggle_scan() +/obj/item/assembly/prox_sensor/proc/toggle_scan() -/obj/item/device/assembly/prox_sensor/proc/sense() +/obj/item/assembly/prox_sensor/proc/sense() -/obj/item/device/assembly/prox_sensor/Initialize() +/obj/item/assembly/prox_sensor/Initialize() . = ..() proximity_monitor = new(src, 0) -/obj/item/device/assembly/prox_sensor/describe() +/obj/item/assembly/prox_sensor/describe() if(timing) return "The proximity sensor is arming." return "The proximity sensor is [scanning?"armed":"disarmed"]." -/obj/item/device/assembly/prox_sensor/activate() +/obj/item/assembly/prox_sensor/activate() if(!..()) return 0//Cooldown check timing = !timing update_icon() return 1 -/obj/item/device/assembly/prox_sensor/toggle_secure() +/obj/item/assembly/prox_sensor/toggle_secure() secured = !secured if(!secured) if(scanning) @@ -45,13 +45,13 @@ return secured -/obj/item/device/assembly/prox_sensor/HasProximity(atom/movable/AM as mob|obj) +/obj/item/assembly/prox_sensor/HasProximity(atom/movable/AM as mob|obj) if (istype(AM, /obj/effect/beam)) return sense() -/obj/item/device/assembly/prox_sensor/sense() +/obj/item/assembly/prox_sensor/sense() if(!scanning || !secured || next_activate > world.time) return 0 pulse(0) @@ -59,7 +59,7 @@ next_activate = world.time + 30 -/obj/item/device/assembly/prox_sensor/process() +/obj/item/assembly/prox_sensor/process() if(timing) time-- if(time <= 0) @@ -67,20 +67,20 @@ toggle_scan(1) time = initial(time) -/obj/item/device/assembly/prox_sensor/toggle_scan(scan) +/obj/item/assembly/prox_sensor/toggle_scan(scan) if(!secured) return 0 scanning = scan proximity_monitor.SetRange(scanning ? sensitivity : 0) update_icon() -/obj/item/device/assembly/prox_sensor/proc/sensitivity_change(value) +/obj/item/assembly/prox_sensor/proc/sensitivity_change(value) var/sense = min(max(sensitivity + value, 0), 5) sensitivity = sense if(scanning && proximity_monitor.SetRange(sense)) sense() -/obj/item/device/assembly/prox_sensor/update_icon() +/obj/item/assembly/prox_sensor/update_icon() cut_overlays() attached_overlays = list() if(timing) @@ -93,7 +93,7 @@ holder.update_icon() return -/obj/item/device/assembly/prox_sensor/ui_interact(mob/user)//TODO: Change this to the wires thingy +/obj/item/assembly/prox_sensor/ui_interact(mob/user)//TODO: Change this to the wires thingy . = ..() if(is_secured(user)) var/second = time % 60 @@ -108,7 +108,7 @@ return -/obj/item/device/assembly/prox_sensor/Topic(href, href_list) +/obj/item/assembly/prox_sensor/Topic(href, href_list) ..() if(usr.incapacitated() || !in_range(loc, usr)) usr << browse(null, "window=prox") diff --git a/code/modules/assembly/shock_kit.dm b/code/modules/assembly/shock_kit.dm index 174312df1e..38f2acb45f 100644 --- a/code/modules/assembly/shock_kit.dm +++ b/code/modules/assembly/shock_kit.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/assemblies.dmi' icon_state = "shock_kit" var/obj/item/clothing/head/helmet/part1 = null - var/obj/item/device/electropack/part2 = null + var/obj/item/electropack/part2 = null w_class = WEIGHT_CLASS_HUGE flags_1 = CONDUCT_1 diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm index e7a21ad1cd..4b44397713 100644 --- a/code/modules/assembly/signaler.dm +++ b/code/modules/assembly/signaler.dm @@ -1,4 +1,4 @@ -/obj/item/device/assembly/signaler +/obj/item/assembly/signaler name = "remote signaling device" desc = "Used to remotely activate devices. Allows for syncing when using a secure signaler on another." icon_state = "signaller" @@ -15,40 +15,40 @@ var/datum/radio_frequency/radio_connection var/suicider = null -/obj/item/device/assembly/signaler/suicide_act(mob/living/carbon/user) +/obj/item/assembly/signaler/suicide_act(mob/living/carbon/user) user.visible_message("[user] eats \the [src]! If it is signaled, [user.p_they()] will die!") playsound(src, 'sound/items/eatfood.ogg', 50, 1) user.transferItemToLoc(src, user, TRUE) suicider = user return MANUAL_SUICIDE -/obj/item/device/assembly/signaler/proc/manual_suicide(mob/living/carbon/user) +/obj/item/assembly/signaler/proc/manual_suicide(mob/living/carbon/user) user.visible_message("[user]'s \the [src] recieves a signal, killing them instantly!") user.adjustOxyLoss(200)//it sends an electrical pulse to their heart, killing them. or something. user.death(0) -/obj/item/device/assembly/signaler/New() +/obj/item/assembly/signaler/New() ..() spawn(40) set_frequency(frequency) -/obj/item/device/assembly/signaler/Destroy() +/obj/item/assembly/signaler/Destroy() SSradio.remove_object(src,frequency) return ..() -/obj/item/device/assembly/signaler/activate() +/obj/item/assembly/signaler/activate() if(!..())//cooldown processing return FALSE signal() return TRUE -/obj/item/device/assembly/signaler/update_icon() +/obj/item/assembly/signaler/update_icon() if(holder) holder.update_icon() return -/obj/item/device/assembly/signaler/ui_interact(mob/user, flag1) +/obj/item/assembly/signaler/ui_interact(mob/user, flag1) . = ..() if(is_secured(user)) var/t1 = "-------" @@ -77,7 +77,7 @@ Code: return -/obj/item/device/assembly/signaler/Topic(href, href_list) +/obj/item/assembly/signaler/Topic(href, href_list) ..() if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr)) @@ -106,16 +106,16 @@ Code: return -/obj/item/device/assembly/signaler/attackby(obj/item/W, mob/user, params) +/obj/item/assembly/signaler/attackby(obj/item/W, mob/user, params) if(issignaler(W)) - var/obj/item/device/assembly/signaler/signaler2 = W + var/obj/item/assembly/signaler/signaler2 = W if(secured && signaler2.secured) code = signaler2.code frequency = signaler2.frequency to_chat(user, "You transfer the frequency and code of \the [signaler2.name] to \the [name]") ..() -/obj/item/device/assembly/signaler/proc/signal() +/obj/item/assembly/signaler/proc/signal() if(!radio_connection) return @@ -130,7 +130,7 @@ Code: return -/obj/item/device/assembly/signaler/receive_signal(datum/signal/signal) +/obj/item/assembly/signaler/receive_signal(datum/signal/signal) if(!signal) return 0 if(signal.data["code"] != code) @@ -144,7 +144,7 @@ Code: return -/obj/item/device/assembly/signaler/proc/set_frequency(new_frequency) +/obj/item/assembly/signaler/proc/set_frequency(new_frequency) SSradio.remove_object(src, frequency) frequency = new_frequency radio_connection = SSradio.add_object(src, frequency, RADIO_SIGNALER) @@ -153,27 +153,27 @@ Code: // Embedded signaller used in grenade construction. // It's necessary because the signaler doens't have an off state. // Generated during grenade construction. -Sayu -/obj/item/device/assembly/signaler/reciever +/obj/item/assembly/signaler/reciever var/on = FALSE -/obj/item/device/assembly/signaler/reciever/proc/toggle_safety() +/obj/item/assembly/signaler/reciever/proc/toggle_safety() on = !on -/obj/item/device/assembly/signaler/reciever/activate() +/obj/item/assembly/signaler/reciever/activate() toggle_safety() return 1 -/obj/item/device/assembly/signaler/reciever/describe() +/obj/item/assembly/signaler/reciever/describe() return "The radio receiver is [on?"on":"off"]." -/obj/item/device/assembly/signaler/reciever/receive_signal(datum/signal/signal) +/obj/item/assembly/signaler/reciever/receive_signal(datum/signal/signal) if(!on) return return ..(signal) // Embedded signaller used in anomalies. -/obj/item/device/assembly/signaler/anomaly +/obj/item/assembly/signaler/anomaly name = "anomaly core" desc = "The neutralized core of an anomaly. It'd probably be valuable for research." icon_state = "anomaly core" @@ -181,7 +181,7 @@ Code: lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' -/obj/item/device/assembly/signaler/anomaly/receive_signal(datum/signal/signal) +/obj/item/assembly/signaler/anomaly/receive_signal(datum/signal/signal) if(!signal) return 0 if(signal.data["code"] != code) @@ -189,10 +189,10 @@ Code: for(var/obj/effect/anomaly/A in get_turf(src)) A.anomalyNeutralize() -/obj/item/device/assembly/signaler/anomaly/attack_self() +/obj/item/assembly/signaler/anomaly/attack_self() return -/obj/item/device/assembly/signaler/cyborg +/obj/item/assembly/signaler/cyborg -/obj/item/device/assembly/signaler/cyborg/attackby(obj/item/W, mob/user, params) +/obj/item/assembly/signaler/cyborg/attackby(obj/item/W, mob/user, params) return diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm index 3d9d782a16..7c74c1ca77 100644 --- a/code/modules/assembly/timer.dm +++ b/code/modules/assembly/timer.dm @@ -1,4 +1,4 @@ -/obj/item/device/assembly/timer +/obj/item/assembly/timer name = "timer" desc = "Used to time things. Works well with contraptions which has to count down. Tick tock." icon_state = "timer" @@ -10,28 +10,28 @@ var/saved_time = 5 var/loop = 0 -/obj/item/device/assembly/timer/suicide_act(mob/living/user) +/obj/item/assembly/timer/suicide_act(mob/living/user) user.visible_message("[user] looks at the timer and decides [user.p_their()] fate! It looks like [user.p_theyre()] going to commit suicide!") activate()//doesnt rely on timer_end to prevent weird metas where one person can control the timer and therefore someone's life. (maybe that should be how it works...) addtimer(CALLBACK(src, .proc/manual_suicide, user), time*10)//kill yourself once the time runs out return MANUAL_SUICIDE -/obj/item/device/assembly/timer/proc/manual_suicide(mob/living/user) +/obj/item/assembly/timer/proc/manual_suicide(mob/living/user) user.visible_message("[user]'s time is up!") user.adjustOxyLoss(200) user.death(0) -/obj/item/device/assembly/timer/New() +/obj/item/assembly/timer/New() ..() START_PROCESSING(SSobj, src) -/obj/item/device/assembly/timer/describe() +/obj/item/assembly/timer/describe() if(timing) return "The timer is counting down from [time]!" return "The timer is set for [time] seconds." -/obj/item/device/assembly/timer/activate() +/obj/item/assembly/timer/activate() if(!..()) return 0//Cooldown check timing = !timing @@ -39,7 +39,7 @@ return 1 -/obj/item/device/assembly/timer/toggle_secure() +/obj/item/assembly/timer/toggle_secure() secured = !secured if(secured) START_PROCESSING(SSobj, src) @@ -50,7 +50,7 @@ return secured -/obj/item/device/assembly/timer/proc/timer_end() +/obj/item/assembly/timer/proc/timer_end() if(!secured || next_activate > world.time) return FALSE pulse(0) @@ -60,7 +60,7 @@ update_icon() -/obj/item/device/assembly/timer/process() +/obj/item/assembly/timer/process() if(timing) time-- if(time <= 0) @@ -69,7 +69,7 @@ time = saved_time -/obj/item/device/assembly/timer/update_icon() +/obj/item/assembly/timer/update_icon() cut_overlays() attached_overlays = list() if(timing) @@ -79,7 +79,7 @@ holder.update_icon() -/obj/item/device/assembly/timer/ui_interact(mob/user)//TODO: Have this use the wires +/obj/item/assembly/timer/ui_interact(mob/user)//TODO: Have this use the wires . = ..() if(is_secured(user)) var/second = time % 60 @@ -93,7 +93,7 @@ popup.open() -/obj/item/device/assembly/timer/Topic(href, href_list) +/obj/item/assembly/timer/Topic(href, href_list) ..() if(usr.incapacitated() || !in_range(loc, usr)) usr << browse(null, "window=timer") @@ -102,7 +102,7 @@ if(href_list["time"]) timing = text2num(href_list["time"]) - if(timing && istype(holder, /obj/item/device/transfer_valve)) + if(timing && istype(holder, /obj/item/transfer_valve)) var/timer_message = "[ADMIN_LOOKUPFLW(usr)] activated [src] attachment on [holder]." message_admins(timer_message) GLOB.bombers += timer_message diff --git a/code/modules/assembly/voice.dm b/code/modules/assembly/voice.dm index 913176b662..71f51aaaf9 100644 --- a/code/modules/assembly/voice.dm +++ b/code/modules/assembly/voice.dm @@ -1,4 +1,4 @@ -/obj/item/device/assembly/voice +/obj/item/assembly/voice name = "voice analyzer" desc = "A small electronic device able to record a voice sample, and send a signal when that sample is repeated." icon_state = "voice" @@ -16,11 +16,11 @@ "recognizer", "voice sensor") -/obj/item/device/assembly/voice/examine(mob/user) +/obj/item/assembly/voice/examine(mob/user) ..() to_chat(user, "Use a multitool to swap between \"inclusive\", \"exclusive\", \"recognizer\", and \"voice sensor\" mode.") -/obj/item/device/assembly/voice/Hear(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode) +/obj/item/assembly/voice/Hear(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode) if(speaker == src) return @@ -30,7 +30,7 @@ if(check_activation(speaker, raw_message)) addtimer(CALLBACK(src, .proc/pulse, 0), 10) -/obj/item/device/assembly/voice/proc/record_speech(atom/movable/speaker, raw_message, datum/language/message_language) +/obj/item/assembly/voice/proc/record_speech(atom/movable/speaker, raw_message, datum/language/message_language) switch(mode) if(1) recorded = raw_message @@ -48,7 +48,7 @@ if(length(raw_message)) addtimer(CALLBACK(src, .proc/pulse, 0), 10) -/obj/item/device/assembly/voice/proc/check_activation(atom/movable/speaker, raw_message) +/obj/item/assembly/voice/proc/check_activation(atom/movable/speaker, raw_message) . = 0 switch(mode) if(1) @@ -64,8 +64,8 @@ if(length(raw_message)) . = 1 -/obj/item/device/assembly/voice/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/device/multitool)) +/obj/item/assembly/voice/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/multitool)) mode %= modes.len mode++ to_chat(user, "You set [src] into a [modes[mode]] mode.") @@ -74,18 +74,18 @@ else return ..() -/obj/item/device/assembly/voice/activate() +/obj/item/assembly/voice/activate() if(secured) if(!holder) listening = !listening say("[listening ? "Now" : "No longer"] recording input.") -/obj/item/device/assembly/voice/attack_self(mob/user) +/obj/item/assembly/voice/attack_self(mob/user) if(!user) return 0 activate() return 1 -/obj/item/device/assembly/voice/toggle_secure() +/obj/item/assembly/voice/toggle_secure() . = ..() listening = 0 diff --git a/code/modules/atmospherics/environmental/LINDA_fire.dm b/code/modules/atmospherics/environmental/LINDA_fire.dm index 2a24e5fa28..c58d14f4d4 100644 --- a/code/modules/atmospherics/environmental/LINDA_fire.dm +++ b/code/modules/atmospherics/environmental/LINDA_fire.dm @@ -87,7 +87,7 @@ else var/datum/gas_mixture/affected = location.air.remove_ratio(volume/location.air.volume) affected.temperature = temperature - affected.react() + affected.react(src) temperature = affected.temperature volume = affected.reaction_results["fire"]*FIRE_GROWTH_RATE location.assume_air(affected) diff --git a/code/modules/atmospherics/gasmixtures/gas_mixture.dm b/code/modules/atmospherics/gasmixtures/gas_mixture.dm index a358c3e29c..75b744e597 100644 --- a/code/modules/atmospherics/gasmixtures/gas_mixture.dm +++ b/code/modules/atmospherics/gasmixtures/gas_mixture.dm @@ -410,7 +410,7 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g return "" -/datum/gas_mixture/react(turf/open/dump_location) +/datum/gas_mixture/react(datum/holder) . = NO_REACTION var/list/cached_gases = gases if(!cached_gases.len) @@ -459,7 +459,7 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g //at this point, all requirements for the reaction are satisfied. we can now react() */ - . |= reaction.react(src, dump_location) + . |= reaction.react(src, holder) if (. & STOP_REACTIONS) break if(.) diff --git a/code/modules/atmospherics/gasmixtures/gas_types.dm b/code/modules/atmospherics/gasmixtures/gas_types.dm index 940584dfa5..0f1a21e1ce 100644 --- a/code/modules/atmospherics/gasmixtures/gas_types.dm +++ b/code/modules/atmospherics/gasmixtures/gas_types.dm @@ -3,7 +3,7 @@ GLOBAL_LIST_INIT(hardcoded_gases, list(/datum/gas/oxygen, /datum/gas/nitrogen, / /proc/meta_gas_list() . = subtypesof(/datum/gas) for(var/gas_path in .) - var/list/gas_info = new(6) + var/list/gas_info = new(7) var/datum/gas/gas = gas_path gas_info[META_GAS_SPECIFIC_HEAT] = initial(gas.specific_heat) @@ -11,6 +11,7 @@ GLOBAL_LIST_INIT(hardcoded_gases, list(/datum/gas/oxygen, /datum/gas/nitrogen, / gas_info[META_GAS_MOLES_VISIBLE] = initial(gas.moles_visible) if(initial(gas.moles_visible) != null) gas_info[META_GAS_OVERLAY] = new /obj/effect/overlay/gas(initial(gas.gas_overlay)) + gas_info[META_GAS_FUSION_POWER] = initial(gas.fusion_power) gas_info[META_GAS_DANGER] = initial(gas.dangerous) gas_info[META_GAS_ID] = initial(gas.id) .[gas_path] = gas_info @@ -40,7 +41,7 @@ GLOBAL_LIST_INIT(hardcoded_gases, list(/datum/gas/oxygen, /datum/gas/nitrogen, / var/gas_overlay = "" //icon_state in icons/effects/tile_effects.dmi var/moles_visible = null var/dangerous = FALSE //currently used by canisters - + var/fusion_power = 0 //How much the gas accelerates a fusion reaction /datum/gas/oxygen id = "o2" specific_heat = 20 @@ -55,6 +56,7 @@ GLOBAL_LIST_INIT(hardcoded_gases, list(/datum/gas/oxygen, /datum/gas/nitrogen, / id = "co2" specific_heat = 30 name = "Carbon Dioxide" + fusion_power = 2 /datum/gas/plasma id = "plasma" @@ -86,6 +88,7 @@ GLOBAL_LIST_INIT(hardcoded_gases, list(/datum/gas/oxygen, /datum/gas/nitrogen, / gas_overlay = "nitrous_oxide" moles_visible = 1 dangerous = TRUE + fusion_power = 2 /datum/gas/nitryl id = "no2" @@ -94,6 +97,7 @@ GLOBAL_LIST_INIT(hardcoded_gases, list(/datum/gas/oxygen, /datum/gas/nitrogen, / gas_overlay = "nitryl" moles_visible = MOLES_GAS_VISIBLE dangerous = TRUE + fusion_power = 1.5 /datum/gas/tritium id = "tritium" @@ -102,23 +106,24 @@ GLOBAL_LIST_INIT(hardcoded_gases, list(/datum/gas/oxygen, /datum/gas/nitrogen, / gas_overlay = "tritium" moles_visible = MOLES_GAS_VISIBLE dangerous = TRUE - + fusion_power = 2 /datum/gas/bz id = "bz" specific_heat = 20 name = "BZ" dangerous = TRUE - + fusion_power = 2 /datum/gas/stimulum id = "stim" specific_heat = 5 name = "Stimulum" + fusion_power = 7 /datum/gas/pluoxium id = "pluox" specific_heat = 80 name = "Pluoxium" - + fusion_power = 10 /obj/effect/overlay/gas icon = 'icons/effects/tile_effects.dmi' mouse_opacity = MOUSE_OPACITY_TRANSPARENT diff --git a/code/modules/atmospherics/gasmixtures/reactions.dm b/code/modules/atmospherics/gasmixtures/reactions.dm index d2a12f0f9e..689abbc388 100644 --- a/code/modules/atmospherics/gasmixtures/reactions.dm +++ b/code/modules/atmospherics/gasmixtures/reactions.dm @@ -68,6 +68,7 @@ priority = INFINITY name = "Hyper-Noblium Reaction Supression" id = "nobstop" + /datum/gas_reaction/nobliumsupression/init_reqs() min_requirements = list(/datum/gas/hypernoblium = REACTION_OPPRESSION_THRESHOLD) @@ -83,7 +84,8 @@ /datum/gas_reaction/water_vapor/init_reqs() min_requirements = list(/datum/gas/water_vapor = MOLES_GAS_VISIBLE) -/datum/gas_reaction/water_vapor/react(datum/gas_mixture/air, turf/open/location) +/datum/gas_reaction/water_vapor/react(datum/gas_mixture/air, datum/holder) + var/turf/open/location = isturf(holder) ? holder : null . = NO_REACTION if (air.temperature <= WATER_VAPOR_FREEZE) if(location && location.freon_gas_act()) @@ -101,13 +103,14 @@ /datum/gas_reaction/fire/init_reqs() min_requirements = list("TEMP" = FIRE_MINIMUM_TEMPERATURE_TO_EXIST) //doesn't include plasma reqs b/c of other, rarer, burning gases. -/datum/gas_reaction/fire/react(datum/gas_mixture/air, turf/open/location) +/datum/gas_reaction/fire/react(datum/gas_mixture/air, datum/holder) var/energy_released = 0 var/old_heat_capacity = air.heat_capacity() var/list/cached_gases = air.gases //this speeds things up because accessing datum vars is slow var/temperature = air.temperature var/list/cached_results = air.reaction_results cached_results[id] = 0 + var/turf/open/location = isturf(holder) ? holder : null //General volatile gas burn if(cached_gases[/datum/gas/tritium] && cached_gases[/datum/gas/tritium][MOLES]) @@ -186,55 +189,76 @@ return cached_results[id] ? REACTING : NO_REACTION -//fusion: a terrible idea that was fun but broken. Now reworked to be less broken and more interesting. +//fusion: a terrible idea that was fun but broken. Now reworked to be less broken and more interesting. Again. /datum/gas_reaction/fusion - exclude = TRUE + exclude = FALSE priority = 2 name = "Plasmic Fusion" id = "fusion" + /datum/gas_reaction/fusion/init_reqs() min_requirements = list( - "ENER" = PLASMA_BINDING_ENERGY * 10, - /datum/gas/plasma = MINIMUM_HEAT_CAPACITY, - /datum/gas/tritium = MINIMUM_HEAT_CAPACITY + "ENER" = PLASMA_BINDING_ENERGY * 1000, + /datum/gas/plasma = 50, + /datum/gas/carbon_dioxide = 1 ) -/datum/gas_reaction/fusion/react(datum/gas_mixture/air, turf/open/location) +/datum/gas_reaction/fusion/react(datum/gas_mixture/air, datum/holder) var/list/cached_gases = air.gases var/temperature = air.temperature - - if(((cached_gases[/datum/gas/plasma][MOLES]+cached_gases[/datum/gas/tritium][MOLES])/air.total_moles() < FUSION_PURITY_THRESHOLD) || air.return_pressure() < 10*ONE_ATMOSPHERE) - //Fusion wont occur if the level of impurities is too high or if there is too little pressure. - return NO_REACTION + var/turf/open/location + if (istype(holder,/datum/pipeline)) //Find the tile the reaction is occuring on, or a random part of the network if it's a pipenet. + var/datum/pipeline/fusion_pipenet = holder + location = get_turf(pick(fusion_pipenet.members)) + else + location = get_turf(holder) var/old_heat_capacity = air.heat_capacity() - var/catalyst_efficency = max(min(cached_gases[/datum/gas/plasma][MOLES]/cached_gases[/datum/gas/tritium][MOLES],MAX_CATALYST_EFFICENCY)-(temperature/FUSION_HEAT_DROPOFF),1) - var/reaction_energy = THERMAL_ENERGY(air) - var/moles_impurities = max(air.total_moles()-(cached_gases[/datum/gas/plasma][MOLES]+cached_gases[/datum/gas/tritium][MOLES]),1) //This makes it assume a minimum of 1 mol impurities so the reaction energy doesn't divide by 0 + var/reaction_energy + var/mediation = 100*(air.heat_capacity()-(cached_gases[/datum/gas/plasma][MOLES]*cached_gases[/datum/gas/plasma][GAS_META][META_GAS_SPECIFIC_HEAT]))/(air.total_moles()-cached_gases[/datum/gas/plasma][MOLES]) //This is the average heat capacity of the mixture,not including plasma. + var/gas_power = 0 + for (var/id in cached_gases) + gas_power += cached_gases[id][GAS_META][META_GAS_FUSION_POWER]*cached_gases[id][MOLES] + var/plasma_fused = 0 + var/power_ratio = min(gas_power/mediation,100)//100 is a lot, we really don't want to go over this. + if (power_ratio > 10) //Super-fusion. Fuses everything into one big atom which then turns to tritium instantly. Very dangerous, but super cool. + var/gases_fused = air.total_moles() + reaction_energy += gases_fused*PLASMA_BINDING_ENERGY*(gas_power/(mediation*100)) + for (var/id in cached_gases) + cached_gases[id][MOLES] = 0 + air.assert_gas(/datum/gas/tritium) + cached_gases[/datum/gas/tritium][MOLES] += gases_fused + if (prob(power_ratio)) //You really don't want this to happen + empulse(location, power_ratio*0.5, power_ratio) + radiation_pulse(location, power_ratio*2000) + explosion(location,0,1,power_ratio*0.5,power_ratio,TRUE,TRUE)//Bypasses cap. Doesn't blow large hole in station, but produces moderate devestation for long ranges. Be careful with this. - var/plasma_fused = min((PLASMA_FUSED_COEFFICENT*catalyst_efficency)*(temperature/PLASMA_BINDING_ENERGY)/10,cached_gases[/datum/gas/plasma][MOLES]) //Preserve matter - var/tritium_catalyzed = min((CATALYST_COEFFICENT*catalyst_efficency)*(temperature/PLASMA_BINDING_ENERGY)/40,cached_gases[/datum/gas/tritium][MOLES]) //Ditto - var/oxygen_added = tritium_catalyzed - var/waste_added = max((plasma_fused-oxygen_added)-((air.total_moles()*air.heat_capacity())/PLASMA_BINDING_ENERGY),0) - reaction_energy = max(reaction_energy+((catalyst_efficency*cached_gases[/datum/gas/plasma][MOLES])/((moles_impurities/catalyst_efficency)+2)*10)+((plasma_fused/(moles_impurities/catalyst_efficency))*PLASMA_BINDING_ENERGY),0) - - air.assert_gases(/datum/gas/oxygen, /datum/gas/carbon_dioxide, /datum/gas/water_vapor, /datum/gas/nitrous_oxide, /datum/gas/nitryl) - //Fusion produces an absurd amount of waste products now, requiring active filtration. - cached_gases[/datum/gas/plasma][MOLES] = max(cached_gases[/datum/gas/plasma][MOLES] - plasma_fused,0) - cached_gases[/datum/gas/tritium][MOLES] = max(cached_gases[/datum/gas/tritium][MOLES] - tritium_catalyzed,0) - cached_gases[/datum/gas/oxygen][MOLES] += oxygen_added - cached_gases[/datum/gas/water_vapor][MOLES] += waste_added - cached_gases[/datum/gas/nitrous_oxide][MOLES] += waste_added - cached_gases[/datum/gas/nitryl][MOLES] += waste_added - cached_gases[/datum/gas/carbon_dioxide][MOLES] += waste_added - if (location) - radiation_pulse(location, reaction_energy/(PLASMA_BINDING_ENERGY*MAX_CATALYST_EFFICENCY)) + else if (power_ratio > 1) //Mediation is overpowered, fusion reaction starts to break down. + plasma_fused = cached_gases[/datum/gas/plasma][MOLES] + reaction_energy += plasma_fused*PLASMA_BINDING_ENERGY + cached_gases[/datum/gas/plasma][MOLES] -= plasma_fused + cached_gases[/datum/gas/carbon_dioxide][MOLES] = 0 + air.assert_gases(/datum/gas/bz,/datum/gas/nitrous_oxide) + cached_gases[/datum/gas/bz][MOLES] += gas_power*0.05 + cached_gases[/datum/gas/nitrous_oxide][MOLES] += gas_power*0.05 + if (location) + empulse(location, mediation*0.002, mediation*0.004) + radiation_pulse(location, power_ratio*(reaction_energy)/(0.3*PLASMA_BINDING_ENERGY)) + else + reaction_energy += cached_gases[/datum/gas/plasma][MOLES]*PLASMA_BINDING_ENERGY*(gas_power/mediation) + air.assert_gas(/datum/gas/oxygen) + cached_gases[/datum/gas/oxygen][MOLES] += gas_power + cached_gases[/datum/gas/plasma][MOLES] + cached_gases[/datum/gas/plasma][MOLES] = 0 + for (var/gas in cached_gases) + if (cached_gases[gas][GAS_META][META_GAS_FUSION_POWER]) + cached_gases[gas][MOLES] = 0 + if (location) + radiation_pulse(location, (reaction_energy)/(0.3*PLASMA_BINDING_ENERGY)) if(reaction_energy > 0) var/new_heat_capacity = air.heat_capacity() if(new_heat_capacity > MINIMUM_HEAT_CAPACITY) air.temperature = max(((temperature*old_heat_capacity + reaction_energy)/new_heat_capacity),TCMB) - //Prevents whatever mechanism is causing it to hit negative temperatures. return REACTING /datum/gas_reaction/nitrylformation //The formation of nitryl. Endothermic. Requires N2O as a catalyst. @@ -258,7 +282,8 @@ var/heat_efficency = min(temperature/(FIRE_MINIMUM_TEMPERATURE_TO_EXIST*100),cached_gases[/datum/gas/oxygen][MOLES],cached_gases[/datum/gas/nitrogen][MOLES]) var/energy_used = heat_efficency*NITRYL_FORMATION_ENERGY ASSERT_GAS(/datum/gas/nitryl,air) - + if ((cached_gases[/datum/gas/oxygen][MOLES] - heat_efficency < 0 )|| (cached_gases[/datum/gas/nitrogen][MOLES] - heat_efficency < 0)) //Shouldn't produce gas from nothing. + return NO_REACTION cached_gases[/datum/gas/oxygen][MOLES] -= heat_efficency cached_gases[/datum/gas/nitrogen][MOLES] -= heat_efficency cached_gases[/datum/gas/nitryl][MOLES] += heat_efficency*2 @@ -289,11 +314,12 @@ var/old_heat_capacity = air.heat_capacity() var/reaction_efficency = min(1/((pressure/(0.1*ONE_ATMOSPHERE))*(max(cached_gases[/datum/gas/plasma][MOLES]/cached_gases[/datum/gas/tritium][MOLES],1))),cached_gases[/datum/gas/tritium][MOLES],cached_gases[/datum/gas/plasma][MOLES]/2) var/energy_released = 2*reaction_efficency*FIRE_CARBON_ENERGY_RELEASED - + if ((cached_gases[/datum/gas/tritium][MOLES] - reaction_efficency < 0 )|| (cached_gases[/datum/gas/plasma][MOLES] - (2*reaction_efficency) < 0)) //Shouldn't produce gas from nothing. + return NO_REACTION ASSERT_GAS(/datum/gas/bz,air) - cached_gases[/datum/gas/bz][MOLES]+= reaction_efficency - cached_gases[/datum/gas/tritium][MOLES] = max(cached_gases[/datum/gas/tritium][MOLES]- reaction_efficency,0) - cached_gases[/datum/gas/plasma][MOLES] = max(cached_gases[/datum/gas/plasma][MOLES] - (2*reaction_efficency),0) + cached_gases[/datum/gas/bz][MOLES] += reaction_efficency + cached_gases[/datum/gas/tritium][MOLES] -= reaction_efficency + cached_gases[/datum/gas/plasma][MOLES] -= 2*reaction_efficency if(energy_released > 0) @@ -322,10 +348,12 @@ var/stim_energy_change = heat_scale + STIMULUM_FIRST_RISE*(heat_scale**2) - STIMULUM_FIRST_DROP*(heat_scale**3) + STIMULUM_SECOND_RISE*(heat_scale**4) - STIMULUM_ABSOLUTE_DROP*(heat_scale**5) ASSERT_GAS(/datum/gas/stimulum,air) + if ((cached_gases[/datum/gas/tritium][MOLES] - heat_scale < 0 )|| (cached_gases[/datum/gas/plasma][MOLES] - heat_scale < 0) || (cached_gases[/datum/gas/nitryl][MOLES] - heat_scale < 0)) //Shouldn't produce gas from nothing. + return NO_REACTION cached_gases[/datum/gas/stimulum][MOLES]+= heat_scale/10 - cached_gases[/datum/gas/tritium][MOLES] = max(cached_gases[/datum/gas/tritium][MOLES]- heat_scale,0) - cached_gases[/datum/gas/plasma][MOLES] = max(cached_gases[/datum/gas/plasma][MOLES]- heat_scale,0) - cached_gases[/datum/gas/nitryl][MOLES] = max(cached_gases[/datum/gas/nitryl][MOLES]- heat_scale,0) + cached_gases[/datum/gas/tritium][MOLES] -= heat_scale + cached_gases[/datum/gas/plasma][MOLES] -= heat_scale + cached_gases[/datum/gas/nitryl][MOLES] -= heat_scale if(stim_energy_change) var/new_heat_capacity = air.heat_capacity() @@ -350,6 +378,8 @@ var/old_heat_capacity = air.heat_capacity() var/nob_formed = min((cached_gases[/datum/gas/nitrogen][MOLES]+cached_gases[/datum/gas/tritium][MOLES])/100,cached_gases[/datum/gas/tritium][MOLES]/10,cached_gases[/datum/gas/nitrogen][MOLES]/20) var/energy_taken = nob_formed*(NOBLIUM_FORMATION_ENERGY/(max(cached_gases[/datum/gas/bz][MOLES],1))) + if ((cached_gases[/datum/gas/tritium][MOLES] - 10*nob_formed < 0) || (cached_gases[/datum/gas/nitrogen][MOLES] - 20*nob_formed < 0)) + return NO_REACTION cached_gases[/datum/gas/tritium][MOLES] = max(cached_gases[/datum/gas/tritium][MOLES]- 10*nob_formed,0) cached_gases[/datum/gas/nitrogen][MOLES] = max(cached_gases[/datum/gas/nitrogen][MOLES]- 20*nob_formed,0) cached_gases[/datum/gas/hypernoblium][MOLES]+= nob_formed diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm index 4a003ad84f..381eccb3d8 100644 --- a/code/modules/atmospherics/machinery/airalarm.dm +++ b/code/modules/atmospherics/machinery/airalarm.dm @@ -643,10 +643,9 @@ var/area/A = get_area(src) var/new_area_danger_level = 0 - for(var/area/R in A.related) - for(var/obj/machinery/airalarm/AA in R) - if (!(AA.stat & (NOPOWER|BROKEN)) && !AA.shorted) - new_area_danger_level = max(new_area_danger_level,AA.danger_level) + for(var/obj/machinery/airalarm/AA in A) + if (!(AA.stat & (NOPOWER|BROKEN)) && !AA.shorted) + new_area_danger_level = max(new_area_danger_level,AA.danger_level) if(A.atmosalert(new_area_danger_level,src)) //if area was in normal state or if area was in alert state post_alert(new_area_danger_level) @@ -668,7 +667,7 @@ to_chat(user, "The wires have been [panel_open ? "exposed" : "unexposed"].") update_icon() return - else if(istype(W, /obj/item/card/id) || istype(W, /obj/item/device/pda))// trying to unlock the interface with an ID card + else if(istype(W, /obj/item/card/id) || istype(W, /obj/item/pda))// trying to unlock the interface with an ID card togglelock(user) else if(panel_open && is_wire_tool(W)) wires.interact(user) @@ -716,8 +715,8 @@ qdel(W) return - if(istype(W, /obj/item/device/electroadaptive_pseudocircuit)) - var/obj/item/device/electroadaptive_pseudocircuit/P = W + if(istype(W, /obj/item/electroadaptive_pseudocircuit)) + var/obj/item/electroadaptive_pseudocircuit/P = W if(!P.adapt_circuit(user, 25)) return user.visible_message("[user] fabricates a circuit and places it into [src].", \ diff --git a/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm index 9c806312a2..5940cf6209 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm @@ -31,10 +31,30 @@ Acts like a normal vent, but has an input AND output. //EXT_BOUND: Do not pass external_pressure_bound //INPUT_MIN: Do not pass input_pressure_min //OUTPUT_MAX: Do not pass output_pressure_max + +/obj/machinery/atmospherics/components/binary/dp_vent_pump/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/binary/dp_vent_pump/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/components/binary/dp_vent_pump/on on = TRUE icon_state = "dpvent_map_on" + +/obj/machinery/atmospherics/components/binary/dp_vent_pump/on/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/binary/dp_vent_pump/on/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/components/binary/dp_vent_pump/Destroy() SSradio.remove_object(src, frequency) @@ -42,10 +62,30 @@ Acts like a normal vent, but has an input AND output. /obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume name = "large dual-port air vent" + +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/on on = TRUE icon_state = "dpvent_map_on" + +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/on/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/on/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/New() ..() diff --git a/code/modules/atmospherics/machinery/components/binary_devices/passive_gate.dm b/code/modules/atmospherics/machinery/components/binary_devices/passive_gate.dm index 7d487d626e..e3f36c0126 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/passive_gate.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/passive_gate.dm @@ -25,6 +25,16 @@ Passive gate is similar to the regular pump except: construction_type = /obj/item/pipe/directional pipe_state = "passivegate" + +/obj/machinery/atmospherics/components/binary/passive_gate/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/binary/passive_gate/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/components/binary/passive_gate/Destroy() SSradio.remove_object(src,frequency) diff --git a/code/modules/atmospherics/machinery/components/binary_devices/pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/pump.dm index 9a1bde21fe..408ef19aa2 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/pump.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/pump.dm @@ -28,11 +28,31 @@ Thus, the two variables affect pump operation are set in New(): construction_type = /obj/item/pipe/directional pipe_state = "pump" + +/obj/machinery/atmospherics/components/binary/pump/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/binary/pump/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/components/binary/pump/on on = TRUE icon_state = "pump_on_map" +/obj/machinery/atmospherics/components/binary/pump/on/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/binary/pump/on/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y + /obj/machinery/atmospherics/components/binary/pump/Destroy() SSradio.remove_object(src,frequency) if(radio_connection) diff --git a/code/modules/atmospherics/machinery/components/binary_devices/valve.dm b/code/modules/atmospherics/machinery/components/binary_devices/valve.dm index b4ae3fb5f8..fd3d435c28 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/valve.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/valve.dm @@ -19,9 +19,29 @@ It's like a regular ol' straight pipe, but you can turn it on and off. pipe_state = "mvalve" var/switching = FALSE + +/obj/machinery/atmospherics/components/binary/valve/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/binary/valve/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/components/binary/valve/open open = TRUE + +/obj/machinery/atmospherics/components/binary/valve/open/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/binary/valve/open/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/components/binary/valve/update_icon_nopipes(animation = 0) normalize_dir() @@ -77,6 +97,16 @@ It's like a regular ol' straight pipe, but you can turn it on and off. icon_state = "dvalve_map" valve_type = "d" pipe_state = "dvalve" + +/obj/machinery/atmospherics/components/binary/valve/digital/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/binary/valve/digital/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/components/binary/valve/digital/attack_ai(mob/user) return attack_hand(user) diff --git a/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm index 0171412b52..536e0f18a2 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm @@ -28,6 +28,16 @@ Thus, the two variables affect pump operation are set in New(): construction_type = /obj/item/pipe/directional pipe_state = "volumepump" + +/obj/machinery/atmospherics/components/binary/volume_pump/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/binary/volume_pump/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/components/binary/volume_pump/Destroy() SSradio.remove_object(src,frequency) @@ -37,6 +47,16 @@ Thus, the two variables affect pump operation are set in New(): on = TRUE icon_state = "volpump_on_map" +/obj/machinery/atmospherics/components/binary/volume_pump/on/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/binary/volume_pump/on/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y + /obj/machinery/atmospherics/components/binary/volume_pump/update_icon_nopipes() if(!is_operational()) icon_state = "volpump_off" diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm index 26e6e3fb87..8ec10f9d20 100644 --- a/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm +++ b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm @@ -13,9 +13,29 @@ construction_type = /obj/item/pipe/trinary/flippable pipe_state = "filter" +/obj/machinery/atmospherics/components/trinary/filter/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/trinary/filter/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y + /obj/machinery/atmospherics/components/trinary/filter/flipped icon_state = "filter_off_f" flipped = TRUE + +/obj/machinery/atmospherics/components/trinary/filter/flipped/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/trinary/filter/flipped/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y // These two filter types have critical_machine flagged to on and thus causes the area they are in to be exempt from the Grid Check event. diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm index ff9cfa1a6c..f0c30bfe28 100644 --- a/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm +++ b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm @@ -17,10 +17,30 @@ //node 3 is the outlet, nodes 1 & 2 are intakes +/obj/machinery/atmospherics/components/trinary/mixer/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/trinary/mixer/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y + /obj/machinery/atmospherics/components/trinary/mixer/flipped icon_state = "mixer_off_f" flipped = TRUE +/obj/machinery/atmospherics/components/trinary/mixer/flipped/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/trinary/mixer/flipped/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y + /obj/machinery/atmospherics/components/trinary/mixer/airmix //For standard airmix to distro name = "air mixer" icon_state = "mixer_on" diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm index d48f0d1f93..90c5641002 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm @@ -12,6 +12,7 @@ state_open = FALSE circuit = /obj/item/circuitboard/machine/cryo_tube pipe_flags = PIPING_ONE_PER_TURF | PIPING_DEFAULT_LAYER_ONLY + occupant_typecache = list(/mob/living/carbon, /mob/living/simple_animal) var/on = FALSE var/autoeject = FALSE @@ -26,8 +27,8 @@ var/obj/item/reagent_containers/glass/beaker = null var/reagent_transfer = 0 - var/obj/item/device/radio/radio - var/radio_key = /obj/item/device/encryptionkey/headset_med + var/obj/item/radio/radio + var/radio_key = /obj/item/encryptionkey/headset_med var/radio_channel = "Medical" var/running_anim = FALSE @@ -276,7 +277,12 @@ /obj/machinery/atmospherics/components/unary/cryo_cell/MouseDrop_T(mob/target, mob/user) if(user.stat || user.lying || !Adjacent(user) || !user.Adjacent(target) || !iscarbon(target) || !user.IsAdvancedToolUser()) return - close_machine(target) + if (target.IsKnockdown() || target.IsStun() || target.IsSleeping() || target.IsUnconscious()) + close_machine(target) + else + user.visible_message("[user] starts shoving [target] inside [src].", "You start shoving [target] inside [src].") + if (do_after(user, 25, target=target)) + close_machine(target) /obj/machinery/atmospherics/components/unary/cryo_cell/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/reagent_containers/glass)) @@ -292,7 +298,7 @@ var/reagentlist = pretty_string_from_reagent_list(I.reagents.reagent_list) log_game("[key_name(user)] added an [I] to cyro containing [reagentlist]") return - if(!on && !occupant && !state_open && (default_deconstruction_screwdriver(user, "pod-off", "pod-off", I) || exchange_parts(user, I)) \ + if(!on && !occupant && !state_open && (default_deconstruction_screwdriver(user, "pod-off", "pod-off", I)) \ || default_change_direction_wrench(user, I) \ || default_pry_open(I) \ || default_deconstruction_crowbar(I)) diff --git a/code/modules/atmospherics/machinery/components/unary_devices/heat_exchanger.dm b/code/modules/atmospherics/machinery/components/unary_devices/heat_exchanger.dm index bd81d5c876..66f9668bbf 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/heat_exchanger.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/heat_exchanger.dm @@ -13,6 +13,16 @@ var/update_cycle pipe_state = "heunary" + +/obj/machinery/atmospherics/components/unary/heat_exchanger/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/unary/heat_exchanger/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/components/unary/heat_exchanger/update_icon() if(nodes[1]) diff --git a/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm b/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm index 14002ed26d..2859ef29e6 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm @@ -19,6 +19,16 @@ layer = GAS_SCRUBBER_LAYER pipe_state = "injector" + +/obj/machinery/atmospherics/components/unary/outlet_injector/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/unary/outlet_injector/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/components/unary/outlet_injector/Destroy() SSradio.remove_object(src,frequency) @@ -65,6 +75,16 @@ /obj/machinery/atmospherics/components/unary/outlet_injector/on on = TRUE + +/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/components/unary/outlet_injector/update_icon_nopipes() cut_overlays() diff --git a/code/modules/atmospherics/machinery/components/unary_devices/portables_connector.dm b/code/modules/atmospherics/machinery/components/unary_devices/portables_connector.dm index 871aaeea13..c0e69a0c7d 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/portables_connector.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/portables_connector.dm @@ -10,6 +10,16 @@ layer = GAS_FILTER_LAYER pipe_flags = PIPING_ONE_PER_TURF pipe_state = "connector" + +/obj/machinery/atmospherics/components/unary/portables_connector/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/unary/portables_connector/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/components/unary/portables_connector/New() ..() @@ -20,6 +30,16 @@ /obj/machinery/atmospherics/components/unary/portables_connector/visible level = 2 +/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y + /obj/machinery/atmospherics/components/unary/portables_connector/process_atmos() if(!connected_device) return diff --git a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm index ce365bdab8..2ff19218f5 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm @@ -80,8 +80,6 @@ return if(default_deconstruction_crowbar(I)) return - if(exchange_parts(user, I)) - return return ..() /obj/machinery/atmospherics/components/unary/thermomachine/default_change_direction_wrench(mob/user, obj/item/I) diff --git a/code/modules/atmospherics/machinery/components/unary_devices/unary_devices.dm b/code/modules/atmospherics/machinery/components/unary_devices/unary_devices.dm index 129f615ffd..b4af871f76 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/unary_devices.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/unary_devices.dm @@ -20,7 +20,7 @@ ..(intact) /obj/machinery/atmospherics/components/unary/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/device/analyzer)) + if(istype(W, /obj/item/analyzer)) atmosanalyzer_scan(airs[1], user) else return ..() diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm index 7850d7bf0e..4bb1960758 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm @@ -32,20 +32,60 @@ var/radio_filter_in pipe_state = "uvent" + +/obj/machinery/atmospherics/components/unary/vent_pump/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/unary/vent_pump/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/components/unary/vent_pump/on on = TRUE icon_state = "vent_map_on" + +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/components/unary/vent_pump/siphon pump_direction = SIPHONING pressure_checks = INT_BOUND internal_pressure_bound = 4000 external_pressure_bound = 0 + +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/components/unary/vent_pump/siphon/on on = TRUE icon_state = "vent_map_siphon_on" + +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos frequency = FREQ_ATMOS_STORAGE @@ -96,20 +136,60 @@ /obj/machinery/atmospherics/components/unary/vent_pump/high_volume name = "large air vent" power_channel = EQUIP + +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/components/unary/vent_pump/high_volume/on on = TRUE icon_state = "vent_map_on" + +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/on/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/on/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon pump_direction = SIPHONING pressure_checks = INT_BOUND internal_pressure_bound = 2000 external_pressure_bound = 0 + +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on on = TRUE icon_state = "vent_map_siphon_on" + +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/atmos frequency = FREQ_ATMOS_STORAGE diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm index 4672114227..c962eaad6d 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm @@ -29,6 +29,16 @@ var/radio_filter_in pipe_state = "scrubber" + +/obj/machinery/atmospherics/components/unary/vent_scrubber/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/unary/vent_scrubber/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/components/unary/vent_scrubber/New() ..() @@ -42,6 +52,16 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on on = TRUE icon_state = "scrub_map_on" + +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/components/unary/vent_scrubber/Destroy() var/area/A = get_area(src) diff --git a/code/modules/atmospherics/machinery/datum_pipeline.dm b/code/modules/atmospherics/machinery/datum_pipeline.dm index 0b848968d1..a4cc2eb337 100644 --- a/code/modules/atmospherics/machinery/datum_pipeline.dm +++ b/code/modules/atmospherics/machinery/datum_pipeline.dm @@ -27,7 +27,7 @@ if(update) update = FALSE reconcile_air() - update = air.react() + update = air.react(src) /datum/pipeline/proc/build_pipeline(obj/machinery/atmospherics/base) var/volume = 0 diff --git a/code/modules/atmospherics/machinery/pipes/heat_exchange/junction.dm b/code/modules/atmospherics/machinery/pipes/heat_exchange/junction.dm index 67186f09f5..d0bf90c27b 100644 --- a/code/modules/atmospherics/machinery/pipes/heat_exchange/junction.dm +++ b/code/modules/atmospherics/machinery/pipes/heat_exchange/junction.dm @@ -17,6 +17,16 @@ construction_type = /obj/item/pipe/directional pipe_state = "junction" +/obj/machinery/atmospherics/pipe/heat_exchanging/junction/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/heat_exchanging/junction/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y + /obj/machinery/atmospherics/pipe/heat_exchanging/junction/SetInitDirections() switch(dir) if(SOUTH) diff --git a/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold.dm b/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold.dm index bfabe4e955..9b95840875 100644 --- a/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold.dm +++ b/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold.dm @@ -12,6 +12,16 @@ construction_type = /obj/item/pipe/trinary pipe_state = "he_manifold" + +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/heat_exchanging/manifold/SetInitDirections() switch(dir) @@ -49,6 +59,16 @@ construction_type = /obj/item/pipe/quaternary pipe_state = "he_manifold4w" + +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w/SetInitDirections() initialize_directions_he = initial(initialize_directions_he) diff --git a/code/modules/atmospherics/machinery/pipes/heat_exchange/simple.dm b/code/modules/atmospherics/machinery/pipes/heat_exchange/simple.dm index 637d55306f..d00304114d 100644 --- a/code/modules/atmospherics/machinery/pipes/heat_exchange/simple.dm +++ b/code/modules/atmospherics/machinery/pipes/heat_exchange/simple.dm @@ -11,6 +11,16 @@ construction_type = /obj/item/pipe/binary/bendable pipe_state = "he" + +/obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/heat_exchanging/simple/SetInitDirections() if(dir in GLOB.diagonals) diff --git a/code/modules/atmospherics/machinery/pipes/manifold.dm b/code/modules/atmospherics/machinery/pipes/manifold.dm index e727c5c331..b089ebfa0a 100644 --- a/code/modules/atmospherics/machinery/pipes/manifold.dm +++ b/code/modules/atmospherics/machinery/pipes/manifold.dm @@ -45,9 +45,29 @@ /obj/machinery/atmospherics/pipe/manifold/general/visible level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER + +/obj/machinery/atmospherics/pipe/manifold/general/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold/general/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold/general/hidden level = PIPE_HIDDEN_LEVEL + +/obj/machinery/atmospherics/pipe/manifold/general/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold/general/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold/scrubbers name="scrubbers pipe" @@ -58,8 +78,28 @@ level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y + /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden level = PIPE_HIDDEN_LEVEL + +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold/supply name="air supply pipe" @@ -69,10 +109,30 @@ /obj/machinery/atmospherics/pipe/manifold/supply/visible level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER + +/obj/machinery/atmospherics/pipe/manifold/supply/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold/supply/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold/supply/hidden level = PIPE_HIDDEN_LEVEL +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y + /obj/machinery/atmospherics/pipe/manifold/supplymain name="main air supply pipe" pipe_color=rgb(130,43,255) @@ -81,9 +141,29 @@ /obj/machinery/atmospherics/pipe/manifold/supplymain/visible level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER + +/obj/machinery/atmospherics/pipe/manifold/supplymain/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold/supplymain/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold/supplymain/hidden level = PIPE_HIDDEN_LEVEL + +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold/yellow pipe_color=rgb(255,198,0) @@ -92,9 +172,29 @@ /obj/machinery/atmospherics/pipe/manifold/yellow/visible level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER + +/obj/machinery/atmospherics/pipe/manifold/yellow/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold/yellow/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold/yellow/hidden level = PIPE_HIDDEN_LEVEL + +/obj/machinery/atmospherics/pipe/manifold/yellow/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold/yellow/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold/cyan pipe_color=rgb(0,255,249) @@ -103,9 +203,29 @@ /obj/machinery/atmospherics/pipe/manifold/cyan/visible level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER + +/obj/machinery/atmospherics/pipe/manifold/cyan/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold/cyan/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold/cyan/hidden level = PIPE_HIDDEN_LEVEL + +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold/green pipe_color=rgb(30,255,0) @@ -114,9 +234,29 @@ /obj/machinery/atmospherics/pipe/manifold/green/visible level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER + +/obj/machinery/atmospherics/pipe/manifold/green/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold/green/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold/green/hidden level = PIPE_HIDDEN_LEVEL + +/obj/machinery/atmospherics/pipe/manifold/green/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold/green/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold/orange pipe_color=rgb(255,129,25) @@ -125,9 +265,29 @@ /obj/machinery/atmospherics/pipe/manifold/orange/visible level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER + +/obj/machinery/atmospherics/pipe/manifold/orange/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold/orange/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold/orange/hidden level = PIPE_HIDDEN_LEVEL + +/obj/machinery/atmospherics/pipe/manifold/orange/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold/orange/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold/purple pipe_color=rgb(128,0,182) @@ -136,9 +296,29 @@ /obj/machinery/atmospherics/pipe/manifold/purple/visible level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER + +/obj/machinery/atmospherics/pipe/manifold/purple/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold/purple/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold/purple/hidden level = PIPE_HIDDEN_LEVEL + +/obj/machinery/atmospherics/pipe/manifold/purple/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold/purple/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold/dark pipe_color=rgb(69,69,69) @@ -147,9 +327,29 @@ /obj/machinery/atmospherics/pipe/manifold/dark/visible level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER + +/obj/machinery/atmospherics/pipe/manifold/dark/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold/dark/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold/dark/hidden level = PIPE_HIDDEN_LEVEL + +/obj/machinery/atmospherics/pipe/manifold/dark/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold/dark/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold/violet pipe_color=rgb(64,0,128) @@ -158,9 +358,29 @@ /obj/machinery/atmospherics/pipe/manifold/violet/visible level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER + +/obj/machinery/atmospherics/pipe/manifold/violet/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold/violet/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold/violet/hidden level = PIPE_HIDDEN_LEVEL + +/obj/machinery/atmospherics/pipe/manifold/violet/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold/violet/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold/brown pipe_color=rgb(178,100,56) @@ -169,6 +389,26 @@ /obj/machinery/atmospherics/pipe/manifold/brown/visible level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER + +/obj/machinery/atmospherics/pipe/manifold/brown/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold/brown/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold/brown/hidden level = PIPE_HIDDEN_LEVEL + +/obj/machinery/atmospherics/pipe/manifold/brown/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold/brown/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y diff --git a/code/modules/atmospherics/machinery/pipes/manifold4w.dm b/code/modules/atmospherics/machinery/pipes/manifold4w.dm index 827e577330..5dc68f1609 100644 --- a/code/modules/atmospherics/machinery/pipes/manifold4w.dm +++ b/code/modules/atmospherics/machinery/pipes/manifold4w.dm @@ -36,9 +36,29 @@ /obj/machinery/atmospherics/pipe/manifold4w/general/visible level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER + +/obj/machinery/atmospherics/pipe/manifold4w/general/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold4w/general/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold4w/general/hidden level = PIPE_HIDDEN_LEVEL + +/obj/machinery/atmospherics/pipe/manifold4w/general/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold4w/general/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold4w/scrubbers name="scrubbers pipe" @@ -49,9 +69,28 @@ level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden level = PIPE_HIDDEN_LEVEL + +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold4w/supply name="air supply pipe" @@ -61,10 +100,30 @@ /obj/machinery/atmospherics/pipe/manifold4w/supply/visible level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER + +/obj/machinery/atmospherics/pipe/manifold4w/supply/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold4w/supply/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden level = PIPE_HIDDEN_LEVEL +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y + /obj/machinery/atmospherics/pipe/manifold4w/supplymain name="main air supply pipe" pipe_color=rgb(130,43,255) @@ -73,9 +132,29 @@ /obj/machinery/atmospherics/pipe/manifold4w/supplymain/visible level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER + +/obj/machinery/atmospherics/pipe/manifold4w/supplymain/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold4w/supplymain/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold4w/supplymain/hidden level = PIPE_HIDDEN_LEVEL + +/obj/machinery/atmospherics/pipe/manifold4w/supplymain/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold4w/supplymain/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold4w/yellow pipe_color=rgb(255,198,0) @@ -84,9 +163,29 @@ /obj/machinery/atmospherics/pipe/manifold4w/yellow/visible level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER + +/obj/machinery/atmospherics/pipe/manifold4w/yellow/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold4w/yellow/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold4w/yellow/hidden level = PIPE_HIDDEN_LEVEL + +/obj/machinery/atmospherics/pipe/manifold4w/yellow/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold4w/yellow/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold4w/cyan pipe_color=rgb(0,255,249) @@ -95,9 +194,29 @@ /obj/machinery/atmospherics/pipe/manifold4w/cyan/visible level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER + +/obj/machinery/atmospherics/pipe/manifold4w/cyan/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold4w/cyan/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold4w/cyan/hidden level = PIPE_HIDDEN_LEVEL + +/obj/machinery/atmospherics/pipe/manifold4w/cyan/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold4w/cyan/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold4w/green pipe_color=rgb(30,255,0) @@ -106,9 +225,29 @@ /obj/machinery/atmospherics/pipe/manifold4w/green/visible level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER + +/obj/machinery/atmospherics/pipe/manifold4w/green/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold4w/green/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold4w/green/hidden level = PIPE_HIDDEN_LEVEL + +/obj/machinery/atmospherics/pipe/manifold4w/green/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold4w/green/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold4w/orange pipe_color=rgb(255,129,25) @@ -117,9 +256,29 @@ /obj/machinery/atmospherics/pipe/manifold4w/orange/visible level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER + +/obj/machinery/atmospherics/pipe/manifold4w/orange/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold4w/orange/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold4w/orange/hidden level = PIPE_HIDDEN_LEVEL + +/obj/machinery/atmospherics/pipe/manifold4w/orange/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold4w/orange/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold4w/purple pipe_color=rgb(128,0,182) @@ -128,9 +287,29 @@ /obj/machinery/atmospherics/pipe/manifold4w/purple/visible level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER + +/obj/machinery/atmospherics/pipe/manifold4w/purple/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold4w/purple/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold4w/purple/hidden level = PIPE_HIDDEN_LEVEL + +/obj/machinery/atmospherics/pipe/manifold4w/purple/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold4w/purple/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold4w/dark pipe_color=rgb(69,69,69) @@ -139,9 +318,29 @@ /obj/machinery/atmospherics/pipe/manifold4w/dark/visible level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER + +/obj/machinery/atmospherics/pipe/manifold4w/dark/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold4w/dark/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold4w/dark/hidden level = PIPE_HIDDEN_LEVEL + +/obj/machinery/atmospherics/pipe/manifold4w/dark/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold4w/dark/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold4w/violet pipe_color=rgb(64,0,128) @@ -150,9 +349,29 @@ /obj/machinery/atmospherics/pipe/manifold4w/violet/visible level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER + +/obj/machinery/atmospherics/pipe/manifold4w/violet/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold4w/violet/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold4w/violet/hidden level = PIPE_HIDDEN_LEVEL + +/obj/machinery/atmospherics/pipe/manifold4w/violet/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold4w/violet/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold4w/brown pipe_color=rgb(178,100,56) @@ -161,6 +380,26 @@ /obj/machinery/atmospherics/pipe/manifold4w/brown/visible level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER + +/obj/machinery/atmospherics/pipe/manifold4w/brown/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold4w/brown/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/manifold4w/brown/hidden level = PIPE_HIDDEN_LEVEL + +/obj/machinery/atmospherics/pipe/manifold4w/brown/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/manifold4w/brown/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y diff --git a/code/modules/atmospherics/machinery/pipes/pipes.dm b/code/modules/atmospherics/machinery/pipes/pipes.dm index 477cbbc76d..73317c05ef 100644 --- a/code/modules/atmospherics/machinery/pipes/pipes.dm +++ b/code/modules/atmospherics/machinery/pipes/pipes.dm @@ -63,7 +63,7 @@ return parent.air.remove(amount) /obj/machinery/atmospherics/pipe/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/device/analyzer)) + if(istype(W, /obj/item/analyzer)) atmosanalyzer_scan(parent.air, user) if(istype(W, /obj/item/pipe_meter)) var/obj/item/pipe_meter/meter = W diff --git a/code/modules/atmospherics/machinery/pipes/simple.dm b/code/modules/atmospherics/machinery/pipes/simple.dm index 1d2f88b8da..dbe67a1594 100644 --- a/code/modules/atmospherics/machinery/pipes/simple.dm +++ b/code/modules/atmospherics/machinery/pipes/simple.dm @@ -35,10 +35,30 @@ The regular pipe you see everywhere, including bent ones. /obj/machinery/atmospherics/pipe/simple/general/visible level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER + +/obj/machinery/atmospherics/pipe/simple/general/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/simple/general/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/simple/general/hidden level = PIPE_HIDDEN_LEVEL +/obj/machinery/atmospherics/pipe/simple/general/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/simple/general/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y + /obj/machinery/atmospherics/pipe/simple/scrubbers name="scrubbers pipe" pipe_color=rgb(255,0,0) @@ -48,9 +68,29 @@ The regular pipe you see everywhere, including bent ones. level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y + /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden level = PIPE_HIDDEN_LEVEL +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y + /obj/machinery/atmospherics/pipe/simple/supply name="air supply pipe" pipe_color=rgb(0,0,255) @@ -59,10 +99,30 @@ The regular pipe you see everywhere, including bent ones. /obj/machinery/atmospherics/pipe/simple/supply/visible level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER + +/obj/machinery/atmospherics/pipe/simple/supply/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/simple/supply/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/simple/supply/hidden level = PIPE_HIDDEN_LEVEL +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y + /obj/machinery/atmospherics/pipe/simple/supplymain name="main air supply pipe" pipe_color=rgb(130,43,255) @@ -72,9 +132,29 @@ The regular pipe you see everywhere, including bent ones. level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER +/obj/machinery/atmospherics/pipe/simple/supplymain/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/simple/supplymain/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y + /obj/machinery/atmospherics/pipe/simple/supplymain/hidden level = PIPE_HIDDEN_LEVEL +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y + /obj/machinery/atmospherics/pipe/simple/yellow pipe_color=rgb(255,198,0) color=rgb(255,198,0) @@ -83,9 +163,29 @@ The regular pipe you see everywhere, including bent ones. level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER +/obj/machinery/atmospherics/pipe/simple/yellow/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/simple/yellow/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y + /obj/machinery/atmospherics/pipe/simple/yellow/hidden level = PIPE_HIDDEN_LEVEL +/obj/machinery/atmospherics/pipe/simple/yellow/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/simple/yellow/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y + /obj/machinery/atmospherics/pipe/simple/cyan pipe_color=rgb(0,255,249) color=rgb(0,255,249) @@ -93,9 +193,29 @@ The regular pipe you see everywhere, including bent ones. /obj/machinery/atmospherics/pipe/simple/cyan/visible level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER + +/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/simple/cyan/hidden level = PIPE_HIDDEN_LEVEL + +/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/simple/green pipe_color=rgb(30,255,0) @@ -104,9 +224,29 @@ The regular pipe you see everywhere, including bent ones. /obj/machinery/atmospherics/pipe/simple/green/visible level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER + +/obj/machinery/atmospherics/pipe/simple/green/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/simple/green/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/simple/green/hidden level = PIPE_HIDDEN_LEVEL + +/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/simple/green/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/simple/orange pipe_color=rgb(255,129,25) @@ -115,9 +255,29 @@ The regular pipe you see everywhere, including bent ones. /obj/machinery/atmospherics/pipe/simple/orange/visible level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER + +/obj/machinery/atmospherics/pipe/simple/orange/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/simple/orange/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/simple/orange/hidden level = PIPE_HIDDEN_LEVEL + +/obj/machinery/atmospherics/pipe/simple/orange/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/simple/orange/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/simple/purple pipe_color=rgb(128,0,182) @@ -126,10 +286,30 @@ The regular pipe you see everywhere, including bent ones. /obj/machinery/atmospherics/pipe/simple/purple/visible level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER + +/obj/machinery/atmospherics/pipe/simple/purple/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/simple/purple/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/simple/purple/hidden level = PIPE_HIDDEN_LEVEL +/obj/machinery/atmospherics/pipe/simple/purple/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/simple/purple/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y + /obj/machinery/atmospherics/pipe/simple/dark pipe_color=rgb(69,69,69) color=rgb(69,69,69) @@ -137,10 +317,30 @@ The regular pipe you see everywhere, including bent ones. /obj/machinery/atmospherics/pipe/simple/dark/visible level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER + +/obj/machinery/atmospherics/pipe/simple/dark/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/simple/dark/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/simple/dark/hidden level = PIPE_HIDDEN_LEVEL +/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y + /obj/machinery/atmospherics/pipe/simple/violet pipe_color=rgb(64,0,128) color=rgb(64,0,128) @@ -148,10 +348,30 @@ The regular pipe you see everywhere, including bent ones. /obj/machinery/atmospherics/pipe/simple/violet/visible level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER + +/obj/machinery/atmospherics/pipe/simple/violet/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/simple/violet/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/simple/violet/hidden level = PIPE_HIDDEN_LEVEL +/obj/machinery/atmospherics/pipe/simple/violet/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/simple/violet/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y + /obj/machinery/atmospherics/pipe/simple/brown pipe_color=rgb(178,100,56) color=rgb(178,100,56) @@ -159,6 +379,26 @@ The regular pipe you see everywhere, including bent ones. /obj/machinery/atmospherics/pipe/simple/brown/visible level = PIPE_VISIBLE_LEVEL layer = GAS_PIPE_VISIBLE_LAYER + +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/simple/brown/hidden level = PIPE_HIDDEN_LEVEL + +/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm index 20ec34e3a0..132e750343 100644 --- a/code/modules/atmospherics/machinery/portable/canister.dm +++ b/code/modules/atmospherics/machinery/portable/canister.dm @@ -207,13 +207,13 @@ air_contents.gases[/datum/gas/oxygen][MOLES] = (O2STANDARD * maximum_pressure * filled) * air_contents.volume / (R_IDEAL_GAS_EQUATION * air_contents.temperature) air_contents.gases[/datum/gas/nitrogen][MOLES] = (N2STANDARD * maximum_pressure * filled) * air_contents.volume / (R_IDEAL_GAS_EQUATION * air_contents.temperature) -#define HOLDING 1 -#define CONNECTED 2 -#define EMPTY 4 -#define LOW 8 -#define MEDIUM 16 -#define FULL 32 -#define DANGER 64 +#define HOLDING (1<<0) +#define CONNECTED (1<<1) +#define EMPTY (1<<2) +#define LOW (1<<3) +#define MEDIUM (1<<4) +#define FULL (1<<5) +#define DANGER (1<<6) /obj/machinery/portable_atmospherics/canister/update_icon() if(stat & BROKEN) cut_overlays() diff --git a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm index 10c5ab1f43..5bf9f5b8c0 100644 --- a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm +++ b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm @@ -35,7 +35,7 @@ /obj/machinery/portable_atmospherics/process_atmos() if(!connected_port) // Pipe network handles reactions if connected. - air_contents.react() + air_contents.react(src) else update_icon() @@ -138,7 +138,7 @@ "You fasten [src] to the port.", \ "You hear a ratchet.") update_icon() - else if(istype(W, /obj/item/device/analyzer) && Adjacent(user)) + else if(istype(W, /obj/item/analyzer) && Adjacent(user)) atmosanalyzer_scan(air_contents, user) else return ..() diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm index c864469783..8e602577ac 100644 --- a/code/modules/awaymissions/capture_the_flag.dm +++ b/code/modules/awaymissions/capture_the_flag.dm @@ -474,7 +474,7 @@ /datum/outfit/ctf name = "CTF" - ears = /obj/item/device/radio/headset + ears = /obj/item/radio/headset uniform = /obj/item/clothing/under/syndicate suit = /obj/item/clothing/suit/space/hardsuit/shielded/ctf toggle_helmet = FALSE // see the whites of their eyes @@ -530,7 +530,7 @@ /datum/outfit/ctf/red/post_equip(mob/living/carbon/human/H) ..() - var/obj/item/device/radio/R = H.ears + var/obj/item/radio/R = H.ears R.set_frequency(FREQ_CTF_RED) R.freqlock = TRUE R.independent = TRUE @@ -538,7 +538,7 @@ /datum/outfit/ctf/blue/post_equip(mob/living/carbon/human/H) ..() - var/obj/item/device/radio/R = H.ears + var/obj/item/radio/R = H.ears R.set_frequency(FREQ_CTF_BLUE) R.freqlock = TRUE R.independent = TRUE diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index 21a613845d..889e6f628b 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -56,7 +56,7 @@ var/list/spawners = GLOB.mob_spawners[name] LAZYREMOVE(spawners, src) if(!LAZYLEN(spawners)) - LAZYREMOVE(GLOB.mob_spawners,name) + GLOB.mob_spawners -= name return ..() /obj/effect/mob_spawn/proc/special(mob/M) @@ -182,7 +182,7 @@ H.equipOutfit(outfit) if(disable_pda) // We don't want corpse PDAs to show up in the messenger list. - var/obj/item/device/pda/PDA = locate(/obj/item/device/pda) in H + var/obj/item/pda/PDA = locate(/obj/item/pda) in H if(PDA) PDA.toff = TRUE if(disable_sensors) @@ -312,7 +312,7 @@ /obj/effect/mob_spawn/human/doctor/alive/equip(mob/living/carbon/human/H) ..() // Remove radio and PDA so they wouldn't annoy station crew. - var/list/del_types = list(/obj/item/device/pda, /obj/item/device/radio/headset) + var/list/del_types = list(/obj/item/pda, /obj/item/radio/headset) for(var/del_type in del_types) var/obj/item/I = locate(del_type) in H qdel(I) @@ -410,7 +410,7 @@ /datum/outfit/nanotrasenbridgeofficercorpse name = "Bridge Officer Corpse" - ears = /obj/item/device/radio/headset/heads/hop + ears = /obj/item/radio/headset/heads/hop uniform = /obj/item/clothing/under/rank/centcom_officer suit = /obj/item/clothing/suit/armor/bulletproof shoes = /obj/item/clothing/shoes/sneakers/black @@ -428,7 +428,7 @@ name = "Nanotrasen Private Security Commander" uniform = /obj/item/clothing/under/rank/centcom_commander suit = /obj/item/clothing/suit/armor/bulletproof - ears = /obj/item/device/radio/headset/heads/captain + ears = /obj/item/radio/headset/heads/captain glasses = /obj/item/clothing/glasses/eyepatch mask = /obj/item/clothing/mask/cigarette/cigar/cohiba head = /obj/item/clothing/head/centhat diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm index bba2b0558c..2293ac8098 100644 --- a/code/modules/awaymissions/gateway.dm +++ b/code/modules/awaymissions/gateway.dm @@ -159,8 +159,8 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation) use_power(5000) return -/obj/machinery/gateway/centeraway/attackby(obj/item/device/W, mob/user, params) - if(istype(W, /obj/item/device/multitool)) +/obj/machinery/gateway/centeraway/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/multitool)) if(calibrated) to_chat(user, "\black The gate is already calibrated, there is no work for you to do here.") return diff --git a/code/modules/awaymissions/mission_code/snowdin.dm b/code/modules/awaymissions/mission_code/snowdin.dm index 52fa9454ff..e19382b1ec 100644 --- a/code/modules/awaymissions/mission_code/snowdin.dm +++ b/code/modules/awaymissions/mission_code/snowdin.dm @@ -529,7 +529,7 @@ /obj/item/gun/ballistic/automatic/c20r/unrestricted = 16, /obj/item/gun/magic/wand/resurrection/inert = 15, /obj/item/gun/magic/wand/resurrection = 10, - /obj/item/device/radio/uplink/old = 2, + /obj/item/radio/uplink/old = 2, /obj/item/book/granter/spell/charge = 12, /obj/item/grenade/clusterbuster/spawner_manhacks = 15, /obj/item/book/granter/spell/fireball = 10, @@ -601,7 +601,7 @@ name = "Syndicate Snow Operative" uniform = /obj/item/clothing/under/syndicate/coldres shoes = /obj/item/clothing/shoes/combat/coldres - ears = /obj/item/device/radio/headset/syndicate/alt + ears = /obj/item/radio/headset/syndicate/alt r_pocket = /obj/item/gun/ballistic/automatic/pistol id = /obj/item/card/id/syndicate implants = list(/obj/item/implant/exile) diff --git a/code/modules/awaymissions/mission_code/stationCollision.dm b/code/modules/awaymissions/mission_code/stationCollision.dm index 3b865492ef..e9c2b993fa 100644 --- a/code/modules/awaymissions/mission_code/stationCollision.dm +++ b/code/modules/awaymissions/mission_code/stationCollision.dm @@ -128,7 +128,7 @@ GLOBAL_VAR_INIT(sc_safecode5, "[rand(0,9)]") l_code = "[GLOB.sc_safecode1][GLOB.sc_safecode2][GLOB.sc_safecode3][GLOB.sc_safecode4][GLOB.sc_safecode5]" l_set = 1 new /obj/item/gun/energy/mindflayer(src) - new /obj/item/device/soulstone(src) + new /obj/item/soulstone(src) new /obj/item/clothing/suit/space/hardsuit/cult(src) //new /obj/item/teleportation_scroll(src) new /obj/item/stack/ore/diamond(src) diff --git a/code/modules/cargo/export_scanner.dm b/code/modules/cargo/export_scanner.dm index 874efd88d5..37c2915bea 100644 --- a/code/modules/cargo/export_scanner.dm +++ b/code/modules/cargo/export_scanner.dm @@ -1,6 +1,7 @@ -/obj/item/device/export_scanner +/obj/item/export_scanner name = "export scanner" desc = "A device used to check objects against Nanotrasen exports database." + icon = 'icons/obj/device.dmi' icon_state = "export_scanner" item_state = "radio" lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' @@ -10,12 +11,12 @@ siemens_coefficient = 1 var/obj/machinery/computer/cargo/cargo_console = null -/obj/item/device/export_scanner/examine(user) +/obj/item/export_scanner/examine(user) ..() if(!cargo_console) to_chat(user, "[src] is not currently linked to a cargo console.") -/obj/item/device/export_scanner/afterattack(obj/O, mob/user, proximity) +/obj/item/export_scanner/afterattack(obj/O, mob/user, proximity) if(!istype(O) || !proximity) return diff --git a/code/modules/cargo/exports/large_objects.dm b/code/modules/cargo/exports/large_objects.dm index 7e02048f18..37afb31a6b 100644 --- a/code/modules/cargo/exports/large_objects.dm +++ b/code/modules/cargo/exports/large_objects.dm @@ -92,7 +92,7 @@ /datum/export/large/supermatter cost = 9000 unit_name = "supermatter shard" - export_types = list(/obj/machinery/power/supermatter_shard) + export_types = list(/obj/machinery/power/supermatter_crystal/shard) // Misc /datum/export/large/iv diff --git a/code/modules/cargo/exports/parts.dm b/code/modules/cargo/exports/parts.dm index f56f1e5b81..e6fda5f6b1 100644 --- a/code/modules/cargo/exports/parts.dm +++ b/code/modules/cargo/exports/parts.dm @@ -18,4 +18,4 @@ /datum/export/swarmer cost = 2000 unit_name = "deactivated alien deconstruction drone" - export_types = list(/obj/item/device/deactivated_swarmer) + export_types = list(/obj/item/deactivated_swarmer) diff --git a/code/modules/cargo/exports/tools.dm b/code/modules/cargo/exports/tools.dm index c1a0c2fe8d..72514a6a89 100644 --- a/code/modules/cargo/exports/tools.dm +++ b/code/modules/cargo/exports/tools.dm @@ -69,37 +69,37 @@ /datum/export/flashlight cost = 5 unit_name = "flashlight" - export_types = list(/obj/item/device/flashlight) + export_types = list(/obj/item/flashlight) include_subtypes = FALSE /datum/export/flashlight/flare cost = 2 unit_name = "flare" - export_types = list(/obj/item/device/flashlight/flare) + export_types = list(/obj/item/flashlight/flare) /datum/export/flashlight/seclite cost = 10 unit_name = "seclite" - export_types = list(/obj/item/device/flashlight/seclite) + export_types = list(/obj/item/flashlight/seclite) // Analyzers and Scanners /datum/export/analyzer cost = 5 unit_name = "analyzer" - export_types = list(/obj/item/device/analyzer) + export_types = list(/obj/item/analyzer) /datum/export/analyzer/t_scanner cost = 10 unit_name = "t-ray scanner" - export_types = list(/obj/item/device/t_scanner) + export_types = list(/obj/item/t_scanner) /datum/export/radio cost = 5 unit_name = "radio" - export_types = list(/obj/item/device/radio) - exclude_types = list(/obj/item/device/radio/mech) + export_types = list(/obj/item/radio) + exclude_types = list(/obj/item/radio/mech) // High-tech tools. diff --git a/code/modules/cargo/exports/weapons.dm b/code/modules/cargo/exports/weapons.dm index 9bd8c0a6e7..ea326beacf 100644 --- a/code/modules/cargo/exports/weapons.dm +++ b/code/modules/cargo/exports/weapons.dm @@ -62,7 +62,7 @@ /datum/export/weapon/flash cost = 10 unit_name = "handheld flash" - export_types = list(/obj/item/device/assembly/flash) + export_types = list(/obj/item/assembly/flash) include_subtypes = TRUE /datum/export/weapon/handcuffs @@ -103,7 +103,7 @@ /datum/export/weapon/immortality_talisman cost = 10000 unit_name = "Immortality Talisman" - export_types = list(/obj/item/device/immortality_talisman) + export_types = list(/obj/item/immortality_talisman) /datum/export/weapon/babel cost = 10000 @@ -128,17 +128,17 @@ /datum/export/weapon/red //second half of telecube cost = 5000 unit_name = "Red Cube" - export_types = list(/obj/item/device/warp_cube/red) + export_types = list(/obj/item/warp_cube/red) /datum/export/weapon/blue //first half of telecube cost = 5000 unit_name = "Blue Cube" - export_types = list(/obj/item/device/warp_cube) + export_types = list(/obj/item/warp_cube) /datum/export/weapon/wisplantern //thermals on lavaland cost = 10000 unit_name = "Wisp Lantern" - export_types = list(/obj/item/device/wisp_lantern) + export_types = list(/obj/item/wisp_lantern) /datum/export/weapon/flight //if xenobiology ever reaches the point to get these without shuttle being called they deserve it cost = 10000 diff --git a/code/modules/cargo/expressconsole.dm b/code/modules/cargo/expressconsole.dm index 00e35458d3..c2cf51ede6 100644 --- a/code/modules/cargo/expressconsole.dm +++ b/code/modules/cargo/expressconsole.dm @@ -20,7 +20,7 @@ /obj/machinery/computer/cargo/express/attackby(obj/item/W, mob/living/user, params) - if((istype(W, /obj/item/card/id) || istype(W, /obj/item/device/pda)) && allowed(user)) + if((istype(W, /obj/item/card/id) || istype(W, /obj/item/pda)) && allowed(user)) locked = !locked to_chat(user, "You [locked ? "lock" : "unlock"] the interface.") return diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index c2b0aa8a7f..a961e87c48 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -97,8 +97,8 @@ /obj/item/clothing/suit/fire/firefighter, /obj/item/clothing/mask/gas, /obj/item/clothing/mask/gas, - /obj/item/device/flashlight, - /obj/item/device/flashlight, + /obj/item/flashlight, + /obj/item/flashlight, /obj/item/tank/internals/oxygen/red, /obj/item/tank/internals/oxygen/red, /obj/item/extinguisher, @@ -186,8 +186,8 @@ /obj/item/clothing/head/radiation, /obj/item/clothing/suit/radiation, /obj/item/clothing/suit/radiation, - /obj/item/device/geiger_counter, - /obj/item/device/geiger_counter, + /obj/item/geiger_counter, + /obj/item/geiger_counter, /obj/item/reagent_containers/food/drinks/bottle/vodka, /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass) @@ -265,10 +265,10 @@ name = "Forensics Crate" desc = "Stay hot on the criminal's heels with Nanotrasen's Detective Essentials(tm). Contains a forensics scanner, six evidence bags, camera, tape recorder, white crayon, and of course, a fedora. Requires Security access to open." cost = 2000 - contains = list(/obj/item/device/detective_scanner, + contains = list(/obj/item/detective_scanner, /obj/item/storage/box/evidence, - /obj/item/device/camera, - /obj/item/device/taperecorder, + /obj/item/camera, + /obj/item/taperecorder, /obj/item/toy/crayon/white, /obj/item/clothing/head/fedora/det_hat) crate_name = "forensics crate" @@ -554,6 +554,20 @@ /obj/machinery/shieldgen) crate_name = "anti-breach shield projector crate" +/datum/supply_pack/engineering/conveyor + name = "Conveyor Assembly Crate" + desc = "Keep production moving along with six conveyor belts. Conveyor switch included. If you have any questions, check out the enclosed instruction book." + cost = 1500 + contains = list(/obj/item/conveyor_construct, + /obj/item/conveyor_construct, + /obj/item/conveyor_construct, + /obj/item/conveyor_construct, + /obj/item/conveyor_construct, + /obj/item/conveyor_construct, + /obj/item/conveyor_switch_construct, + /obj/item/paper/guides/conveyor) + crate_name = "conveyor assembly crate" + /datum/supply_pack/engineering/engiequipment name = "Engineering Gear Crate" desc = "Gear up with three toolbelts, high-visibility vests, welding helmets, hardhats, and two pairs of meson goggles!" @@ -582,8 +596,9 @@ /obj/item/clothing/gloves/color/yellow, /obj/item/clothing/gloves/color/yellow) crate_name = "insulated gloves crate" + crate_type = /obj/structure/closet/crate/engineering/electrical -/obj/item/stock_parts/cell/inducer_supply//what is this doing here +/obj/item/stock_parts/cell/inducer_supply maxcharge = 5000 charge = 5000 @@ -635,7 +650,78 @@ cost = 1000 crate_name = "toolbox crate" -/datum/supply_pack/engineering/engine/am_jar +/datum/supply_pack/engineering/bsa + name = "Bluespace Artillery Parts" + desc = "The pride of Nanotrasen Naval Command. The legendary Bluespace Artillery Cannon is a devastating feat of human engineering and testament to wartime determination. Highly advanced research is required for proper construction. " + cost = 15000 + special = TRUE + contains = list(/obj/item/circuitboard/machine/bsa/front, + /obj/item/circuitboard/machine/bsa/middle, + /obj/item/circuitboard/machine/bsa/back, + /obj/item/circuitboard/computer/bsa_control + ) + crate_name= "bluespace artillery parts crate" + +/datum/supply_pack/engineering/dna_vault + name = "DNA Vault Parts" + desc = "Secure the longevity of the current state of humanity within this massive library of scientific knowledge, capable of granting superhuman powers and abilities. Highly advanced research is required for proper construction. Also contains five DNA probes." + cost = 12000 + special = TRUE + contains = list( + /obj/item/circuitboard/machine/dna_vault, + /obj/item/dna_probe, + /obj/item/dna_probe, + /obj/item/dna_probe, + /obj/item/dna_probe, + /obj/item/dna_probe + ) + crate_name= "dna vault parts crate" + +/datum/supply_pack/engineering/dna_probes + name = "DNA Vault Samplers" + desc = "Contains five DNA probes for use in the DNA vault." + cost = 3000 + special = TRUE + contains = list(/obj/item/dna_probe, + /obj/item/dna_probe, + /obj/item/dna_probe, + /obj/item/dna_probe, + /obj/item/dna_probe + ) + crate_name= "dna samplers crate" + + +/datum/supply_pack/engineering/shield_sat + name = "Shield Generator Satellite" + desc = "Protect the very existence of this station with these Anti-Meteor defenses. Contains three Shield Generator Satellites." + cost = 3000 + special = TRUE + contains = list( + /obj/machinery/satellite/meteor_shield, + /obj/machinery/satellite/meteor_shield, + /obj/machinery/satellite/meteor_shield + ) + crate_name= "shield sat crate" + + +/datum/supply_pack/engineering/shield_sat_control + name = "Shield System Control Board" + desc = "A control system for the Shield Generator Satellite system." + cost = 5000 + special = TRUE + contains = list(/obj/item/circuitboard/computer/sat_control) + crate_name= "shield control board crate" + + +////////////////////////////////////////////////////////////////////////////// +//////////////////////// Engine Construction ///////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + +/datum/supply_pack/engine + group = "Engine Construction" + crate_type = /obj/structure/closet/crate/engineering + +/datum/supply_pack/engine/am_jar name = "Antimatter Containment Jar Crate" desc = "Two Antimatter containment jars stuffed into a single crate." cost = 2000 @@ -643,30 +729,30 @@ /obj/item/am_containment) crate_name = "antimatter jar crate" -/datum/supply_pack/engineering/engine/am_core +/datum/supply_pack/engine/am_core name = "Antimatter Control Crate" desc = "The brains of the Antimatter engine, this device is sure to teach the station's powergrid the true meaning of real power." cost = 5000 contains = list(/obj/machinery/power/am_control_unit) crate_name = "antimatter control crate" -/datum/supply_pack/engineering/engine/am_shielding +/datum/supply_pack/engine/am_shielding name = "Antimatter Shielding Crate" desc = "Contains ten Antimatter shields, somehow crammed into a crate." cost = 2000 - contains = list(/obj/item/device/am_shielding_container, - /obj/item/device/am_shielding_container, - /obj/item/device/am_shielding_container, - /obj/item/device/am_shielding_container, - /obj/item/device/am_shielding_container, - /obj/item/device/am_shielding_container, - /obj/item/device/am_shielding_container, - /obj/item/device/am_shielding_container, - /obj/item/device/am_shielding_container, - /obj/item/device/am_shielding_container) //10 shields: 3x3 containment and a core + contains = list(/obj/item/am_shielding_container, + /obj/item/am_shielding_container, + /obj/item/am_shielding_container, + /obj/item/am_shielding_container, + /obj/item/am_shielding_container, + /obj/item/am_shielding_container, + /obj/item/am_shielding_container, + /obj/item/am_shielding_container, + /obj/item/am_shielding_container, + /obj/item/am_shielding_container) //10 shields: 3x3 containment and a core crate_name = "antimatter shielding crate" -/datum/supply_pack/engineering/engine +/datum/supply_pack/engine/emitter name = "Emitter Crate" desc = "Useful for powering forcefield generators while destroying locked crates and intruders alike. Contains two high-powered energy emitters. Requires CE access to open." cost = 1500 @@ -677,7 +763,7 @@ crate_type = /obj/structure/closet/crate/secure/engineering dangerous = TRUE -/datum/supply_pack/engineering/engine/field_gen +/datum/supply_pack/engine/field_gen name = "Field Generator Crate" desc = "Typically the only thing standing between the station and a messy death. Powered by emitters. Contains two field generators." cost = 1500 @@ -685,7 +771,7 @@ /obj/machinery/field/generator) crate_name = "field generator crate" -/datum/supply_pack/engineering/grounding_rods +/datum/supply_pack/engine/grounding_rods name = "Grounding Rod Crate" desc = "Four grounding rods guaranteed to keep any uppity tesla's lightning under control." cost = 1700 @@ -696,7 +782,7 @@ crate_name = "grounding rod crate" crate_type = /obj/structure/closet/crate/engineering/electrical -/datum/supply_pack/engineering/engine/PA +/datum/supply_pack/engine/PA name = "Particle Accelerator Crate" desc = "A supermassive black hole or hyper-powered teslaball are the perfect way to spice up any party! This \"My First Apocalypse\" kit contains everything you need to build your own Particle Accelerator! Ages 10 and up." cost = 3000 @@ -709,7 +795,7 @@ /obj/structure/particle_accelerator/end_cap) crate_name = "particle accelerator crate" -/datum/supply_pack/engineering/engine/collector +/datum/supply_pack/engine/collector name = "Radiation Collector Crate" desc = "Contains three radiation collectors. Useful for collecting energy off nearby Supermatter Crystals, Singularities or Teslas!" cost = 2500 @@ -718,14 +804,14 @@ /obj/machinery/power/rad_collector) crate_name = "collector crate" -/datum/supply_pack/engineering/engine/sing_gen +/datum/supply_pack/engine/sing_gen name = "Singularity Generator Crate" desc = "The key to unlocking the power of Lord Singuloth. Particle Accelerator not included." cost = 5000 contains = list(/obj/machinery/the_singularitygen) crate_name = "singularity generator crate" -/datum/supply_pack/engineering/solar +/datum/supply_pack/engine/solar name = "Solar Panel Crate" desc = "Go green with this DIY advanced solar array. Contains twenty one solar assemblies, a solar-control circuit board, and tracker. If you have any questions, please check out the enclosed instruction book." cost = 2000 @@ -756,17 +842,17 @@ crate_name = "solar panel crate" crate_type = /obj/structure/closet/crate/engineering/electrical -/datum/supply_pack/engineering/engine/supermatter_shard +/datum/supply_pack/engine/supermatter_shard name = "Supermatter Shard Crate" desc = "The power of the heavens condensed into a single crystal. Requires CE access to open." cost = 10000 access = ACCESS_CE - contains = list(/obj/machinery/power/supermatter_shard) + contains = list(/obj/machinery/power/supermatter_crystal/shard) crate_name = "supermatter shard crate" crate_type = /obj/structure/closet/crate/secure/engineering dangerous = TRUE -/datum/supply_pack/engineering/engine/tesla_coils +/datum/supply_pack/engine/tesla_coils name = "Tesla Coil Crate" desc = "Whether it's high-voltage executions, creating research points, or just plain old power generation: This pack of four Tesla coils can do it all!" cost = 2500 @@ -777,77 +863,15 @@ crate_name = "tesla coil crate" crate_type = /obj/structure/closet/crate/engineering/electrical -/datum/supply_pack/engineering/engine/tesla_gen +/datum/supply_pack/engine/tesla_gen name = "Tesla Generator Crate" desc = "The key to unlocking the power of the Tesla energy ball. Particle Accelerator not included." cost = 5000 contains = list(/obj/machinery/the_singularitygen/tesla) crate_name = "tesla generator crate" -/datum/supply_pack/engineering/bsa - name = "Bluespace Artillery Parts" - desc = "The pride of Nanotrasen Naval Command. The legendary Bluespace Artillery Cannon is a devastating feat of human engineering and testament to wartime determination. Highly advanced research is required for proper construction. " - cost = 15000 - special = TRUE - contains = list(/obj/item/circuitboard/machine/bsa/front, - /obj/item/circuitboard/machine/bsa/middle, - /obj/item/circuitboard/machine/bsa/back, - /obj/item/circuitboard/computer/bsa_control - ) - crate_name= "bluespace artillery parts crate" - -/datum/supply_pack/engineering/dna_vault - name = "DNA Vault Parts" - desc = "Secure the longevity of the current state of humanity within this massive library of scientific knowledge, capable of granting superhuman powers and abilities. Highly advanced research is required for proper construction. Also contains five DNA probes." - cost = 12000 - special = TRUE - contains = list( - /obj/item/circuitboard/machine/dna_vault, - /obj/item/device/dna_probe, - /obj/item/device/dna_probe, - /obj/item/device/dna_probe, - /obj/item/device/dna_probe, - /obj/item/device/dna_probe - ) - crate_name= "dna vault parts crate" - -/datum/supply_pack/engineering/dna_probes - name = "DNA Vault Samplers" - desc = "Contains five DNA probes for use in the DNA vault." - cost = 3000 - special = TRUE - contains = list(/obj/item/device/dna_probe, - /obj/item/device/dna_probe, - /obj/item/device/dna_probe, - /obj/item/device/dna_probe, - /obj/item/device/dna_probe - ) - crate_name= "dna samplers crate" - - -/datum/supply_pack/engineering/shield_sat - name = "Shield Generator Satellite" - desc = "Protect the very existence of this station with these Anti-Meteor defenses. Contains three Shield Generator Satellites." - cost = 3000 - special = TRUE - contains = list( - /obj/machinery/satellite/meteor_shield, - /obj/machinery/satellite/meteor_shield, - /obj/machinery/satellite/meteor_shield - ) - crate_name= "shield sat crate" - - -/datum/supply_pack/engineering/shield_sat_control - name = "Shield System Control Board" - desc = "A control system for the Shield Generator Satellite system." - cost = 5000 - special = TRUE - contains = list(/obj/item/circuitboard/computer/sat_control) - crate_name= "shield control board crate" - ////////////////////////////////////////////////////////////////////////////// -//////////////////////// Canisters & Materials//////////////////////////////// +/////////////////////// Canisters & Materials //////////////////////////////// ////////////////////////////////////////////////////////////////////////////// /datum/supply_pack/materials @@ -991,7 +1015,6 @@ group = "Medical" crate_type = /obj/structure/closet/crate/medical - /datum/supply_pack/medical/firstaidbruises name = "Bruise Treatment Kit Crate" desc = "Contains three first aid kits focused on healing bruises and broken bones." @@ -1166,15 +1189,15 @@ contains = list(/obj/item/tank/internals/plasma, /obj/item/tank/internals/plasma, /obj/item/tank/internals/plasma, - /obj/item/device/assembly/igniter, - /obj/item/device/assembly/igniter, - /obj/item/device/assembly/igniter, - /obj/item/device/assembly/prox_sensor, - /obj/item/device/assembly/prox_sensor, - /obj/item/device/assembly/prox_sensor, - /obj/item/device/assembly/timer, - /obj/item/device/assembly/timer, - /obj/item/device/assembly/timer) + /obj/item/assembly/igniter, + /obj/item/assembly/igniter, + /obj/item/assembly/igniter, + /obj/item/assembly/prox_sensor, + /obj/item/assembly/prox_sensor, + /obj/item/assembly/prox_sensor, + /obj/item/assembly/timer, + /obj/item/assembly/timer, + /obj/item/assembly/timer) crate_name = "plasma assembly crate" crate_type = /obj/structure/closet/crate/secure/plasma @@ -1183,9 +1206,9 @@ desc = "The tools you need to replace those finicky humans with a loyal robot army! Contains three proximity sensors, two high-powered cells, six flashes, and an electrical toolbox. Requires Robotics access to open." cost = 1000 access = ACCESS_ROBOTICS - contains = list(/obj/item/device/assembly/prox_sensor, - /obj/item/device/assembly/prox_sensor, - /obj/item/device/assembly/prox_sensor, + contains = list(/obj/item/assembly/prox_sensor, + /obj/item/assembly/prox_sensor, + /obj/item/assembly/prox_sensor, /obj/item/storage/toolbox/electrical, /obj/item/storage/box/flashes, /obj/item/stock_parts/cell/high, @@ -1209,11 +1232,11 @@ name = "Tablet Crate" desc = "What's a computer? Contains five cargo tablets." cost = 5000 - contains = list(/obj/item/device/modular_computer/tablet/preset/cargo, - /obj/item/device/modular_computer/tablet/preset/cargo, - /obj/item/device/modular_computer/tablet/preset/cargo, - /obj/item/device/modular_computer/tablet/preset/cargo, - /obj/item/device/modular_computer/tablet/preset/cargo) + contains = list(/obj/item/modular_computer/tablet/preset/cargo, + /obj/item/modular_computer/tablet/preset/cargo, + /obj/item/modular_computer/tablet/preset/cargo, + /obj/item/modular_computer/tablet/preset/cargo, + /obj/item/modular_computer/tablet/preset/cargo) crate_name = "tablet crate" /datum/supply_pack/science/transfer_valves @@ -1221,18 +1244,175 @@ desc = "The key ingredient for making a lot of people very angry very fast. Contains two tank transfer valves. Requires RD access to open." cost = 6000 access = ACCESS_RD - contains = list(/obj/item/device/transfer_valve, - /obj/item/device/transfer_valve) + contains = list(/obj/item/transfer_valve, + /obj/item/transfer_valve) crate_name = "tank transfer valves crate" crate_type = /obj/structure/closet/crate/secure/science dangerous = TRUE +////////////////////////////////////////////////////////////////////////////// +/////////////////////////////// Service ////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + +/datum/supply_pack/service + group = "Service" + +/datum/supply_pack/service/noslipfloor + name = "High-traction Floor Tiles" + desc = "Make slipping a thing of the past with thirty industrial-grade anti-slip floortiles!" + cost = 2000 + contains = list(/obj/item/stack/tile/noslip/thirty) + crate_name = "high-traction floor tiles crate" + +/datum/supply_pack/service/janitor + name = "Janitorial Supplies Crate" + desc = "Fight back against dirt and grime with Nanotrasen's Janitorial Essentials(tm)! Contains three buckets, caution signs, and cleaner grenades. Also has a single mop, spray cleaner, rag, and trash bag." + cost = 1000 + contains = list(/obj/item/reagent_containers/glass/bucket, + /obj/item/reagent_containers/glass/bucket, + /obj/item/reagent_containers/glass/bucket, + /obj/item/mop, + /obj/item/caution, + /obj/item/caution, + /obj/item/caution, + /obj/item/storage/bag/trash, + /obj/item/reagent_containers/spray/cleaner, + /obj/item/reagent_containers/glass/rag, + /obj/item/grenade/chem_grenade/cleaner, + /obj/item/grenade/chem_grenade/cleaner, + /obj/item/grenade/chem_grenade/cleaner) + crate_name = "janitorial supplies crate" + +/datum/supply_pack/service/janitor/janicart + name = "Janitorial Cart and Galoshes Crate" + desc = "The keystone to any successful janitor. As long as you have feet, this pair of galoshes will keep them firmly planted on the ground. Also contains a janitorial cart." + cost = 2000 + contains = list(/obj/structure/janitorialcart, + /obj/item/clothing/shoes/galoshes) + crate_name = "janitorial cart crate" + crate_type = /obj/structure/closet/crate/large + +/datum/supply_pack/service/janitor/janitank + name = "Janitor Backpack Crate" + desc = "Call forth divine judgement upon dirt and grime with this high capacity janitor backpack. Contains 500 units of station-cleansing cleaner. Requires janitor access to open." + cost = 1000 + access = ACCESS_JANITOR + contains = list(/obj/item/watertank/janitor) + crate_name = "janitor backpack crate" + crate_type = /obj/structure/closet/crate/secure + +/datum/supply_pack/service/mule + name = "MULEbot Crate" + desc = "Pink-haired Quartermaster not doing her job? Replace her with this tireless worker, today!" + cost = 2000 + contains = list(/mob/living/simple_animal/bot/mulebot) + crate_name = "\improper MULEbot Crate" + crate_type = /obj/structure/closet/crate/large + +/datum/supply_pack/service/party + name = "Party Equipment" + desc = "Celebrate both life and death on the station with Nanotrasen's Party Essentials(tm)! Contains seven colored glowsticks, four beers, two ales, and a bottle of patron, goldschlager, and shaker!" + cost = 2000 + contains = list(/obj/item/storage/box/drinkingglasses, + /obj/item/reagent_containers/food/drinks/shaker, + /obj/item/reagent_containers/food/drinks/bottle/patron, + /obj/item/reagent_containers/food/drinks/bottle/goldschlager, + /obj/item/reagent_containers/food/drinks/ale, + /obj/item/reagent_containers/food/drinks/ale, + /obj/item/reagent_containers/food/drinks/beer, + /obj/item/reagent_containers/food/drinks/beer, + /obj/item/reagent_containers/food/drinks/beer, + /obj/item/reagent_containers/food/drinks/beer, + /obj/item/flashlight/glowstick, + /obj/item/flashlight/glowstick/red, + /obj/item/flashlight/glowstick/blue, + /obj/item/flashlight/glowstick/cyan, + /obj/item/flashlight/glowstick/orange, + /obj/item/flashlight/glowstick/yellow, + /obj/item/flashlight/glowstick/pink) + crate_name = "party equipment crate" + +/datum/supply_pack/service/lightbulbs + name = "Replacement Lights" + desc = "May the light of Aether shine upon this station! Or at least, the light of forty two light tubes and twenty one light bulbs." + cost = 1000 + contains = list(/obj/item/storage/box/lights/mixed, + /obj/item/storage/box/lights/mixed, + /obj/item/storage/box/lights/mixed) + crate_name = "replacement lights" + +/datum/supply_pack/service/minerkit + name = "Shaft Miner Starter Kit" + desc = "All the miners died too fast? Assistant wants to get a taste of life off-station? Either way, this kit is the best way to turn a regular crewman into an ore-producing, monster-slaying machine. Contains meson goggles, a pickaxe, advanced mining scanner, cargo headset, ore bag, gasmask, and explorer suit. Requires QM access to open." + cost = 2500 + access = ACCESS_QM + contains = list(/obj/item/pickaxe/mini, + /obj/item/clothing/glasses/meson, + /obj/item/t_scanner/adv_mining_scanner/lesser, + /obj/item/radio/headset/headset_cargo/mining, + /obj/item/storage/bag/ore, + /obj/item/clothing/suit/hooded/explorer, + /obj/item/clothing/mask/gas/explorer) + crate_name = "shaft miner starter kit" + crate_type = /obj/structure/closet/crate/secure + +/datum/supply_pack/service/vending/bartending + name = "Bartending Supply Crate" + desc = "Bring on the booze with six vending machine refills, as well as a free book containing the well-kept secrets to the bartending trade!" + cost = 2000 + contains = list(/obj/item/vending_refill/boozeomat, + /obj/item/vending_refill/boozeomat, + /obj/item/vending_refill/boozeomat, + /obj/item/vending_refill/coffee, + /obj/item/vending_refill/coffee, + /obj/item/vending_refill/coffee, + /obj/item/book/granter/action/drink_fling) + crate_name = "bartending supply crate" + +/datum/supply_pack/service/vending/cigarette + name = "Cigarette Supply Crate" + desc = "Don't believe the reports - smoke today! Contains cigarette vending machine refills." + cost = 1500 + contains = list(/obj/item/vending_refill/cigarette, + /obj/item/vending_refill/cigarette, + /obj/item/vending_refill/cigarette) + crate_name = "cigarette supply crate" + crate_type = /obj/structure/closet/crate + +/datum/supply_pack/service/vending/games + name = "Games Supply Crate" + desc = "Get your game on with these three game vending machine refills." + cost = 1000 + contains = list(/obj/item/vending_refill/games, + /obj/item/vending_refill/games, + /obj/item/vending_refill/games) + crate_name = "games supply crate" + crate_type = /obj/structure/closet/crate + +/datum/supply_pack/service/vending/snack + name = "Snack Supply Crate" + desc = "Three vending machine refills of cavity-bringin' goodness! The number one dentist recommended order!" + cost = 1500 + contains = list(/obj/item/vending_refill/snack, + /obj/item/vending_refill/snack, + /obj/item/vending_refill/snack) + crate_name = "snacks supply crate" + +/datum/supply_pack/service/vending/cola + name = "Softdrinks Supply Crate" + desc = "Got whacked by a toolbox, but you still have those pesky teeth? Get rid of those pearly whites with these three soda machine refills, today!" + cost = 1500 + contains = list(/obj/item/vending_refill/cola, + /obj/item/vending_refill/cola, + /obj/item/vending_refill/cola) + crate_name = "soft drinks supply crate" + ////////////////////////////////////////////////////////////////////////////// //////////////////////////// Organic ///////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// /datum/supply_pack/organic - group = "Food & Livestock" + group = "Food & Hydroponics" crate_type = /obj/structure/closet/crate/freezer /datum/supply_pack/organic/hydroponics/beekeeping_suits @@ -1244,6 +1424,22 @@ /obj/item/clothing/head/beekeeper_head, /obj/item/clothing/suit/beekeeper_suit) crate_name = "beekeeper suits" + crate_type = /obj/structure/closet/crate/hydroponics + +/datum/supply_pack/organic/hydroponics/beekeeping_fullkit + name = "Beekeeping Starter Crate" + desc = "BEES BEES BEES. Contains three honey frames, a beekeeper suit and helmet, flyswatter, bee house, and, of course, a pure-bred Nanotrasen-Standardized Queen Bee!" + cost = 1500 + contains = list(/obj/structure/beebox, + /obj/item/honey_frame, + /obj/item/honey_frame, + /obj/item/honey_frame, + /obj/item/queen_bee/bought, + /obj/item/clothing/head/beekeeper_head, + /obj/item/clothing/suit/beekeeper_suit, + /obj/item/melee/flyswatter) + crate_name = "beekeeping starter crate" + crate_type = /obj/structure/closet/crate/hydroponics /datum/supply_pack/organic/food name = "Food Crate" @@ -1264,20 +1460,6 @@ /obj/item/reagent_containers/food/snacks/grown/banana) crate_name = "food crate" -/datum/supply_pack/organic/hydroponics/beekeeping_fullkit - name = "Beekeeping Starter Crate" - desc = "BEES BEES BEES. Contains three honey frames, a beekeeper suit and helmet, flyswatter, bee house, and, of course, a pure-bred Nanotrasen-Standardized Queen Bee!" - cost = 1500 - contains = list(/obj/structure/beebox, - /obj/item/honey_frame, - /obj/item/honey_frame, - /obj/item/honey_frame, - /obj/item/queen_bee/bought, - /obj/item/clothing/head/beekeeper_head, - /obj/item/clothing/suit/beekeeper_suit, - /obj/item/melee/flyswatter) - crate_name = "beekeeping starter crate" - /datum/supply_pack/organic/cream_piee name = "High-yield Clown-grade Cream Pie Crate" desc = "Designed by Aussec's Advanced Warfare Research Division, these high-yield, Clown-grade cream pies are powered by a synergy of performance and efficiency. Guaranteed to provide maximum results." @@ -1298,7 +1480,7 @@ /obj/item/reagent_containers/glass/bottle/ammonia, /obj/item/hatchet, /obj/item/cultivator, - /obj/item/device/plant_analyzer, + /obj/item/plant_analyzer, /obj/item/clothing/gloves/botanic_leather, /obj/item/clothing/suit/apron) crate_name = "hydroponics crate" @@ -1313,36 +1495,6 @@ crate_name = "hydroponics backpack crate" crate_type = /obj/structure/closet/crate/secure -/datum/supply_pack/organic/monkey - name = "Monkey Cube Crate" - desc = "Stop monkeying around! Contains seven monkey cubes. Just add water!" - cost = 2000 - contains = list (/obj/item/storage/box/monkeycubes) - crate_name = "monkey cube crate" - -/datum/supply_pack/organic/party - name = "Party Equipment" - desc = "Celebrate both life and death on the station with Nanotrasen's Party Essentials(tm)! Contains seven colored glowsticks, four beers, two ales, and a bottle of patron, goldschlager, and shaker!" - cost = 2000 - contains = list(/obj/item/storage/box/drinkingglasses, - /obj/item/reagent_containers/food/drinks/shaker, - /obj/item/reagent_containers/food/drinks/bottle/patron, - /obj/item/reagent_containers/food/drinks/bottle/goldschlager, - /obj/item/reagent_containers/food/drinks/ale, - /obj/item/reagent_containers/food/drinks/ale, - /obj/item/reagent_containers/food/drinks/beer, - /obj/item/reagent_containers/food/drinks/beer, - /obj/item/reagent_containers/food/drinks/beer, - /obj/item/reagent_containers/food/drinks/beer, - /obj/item/device/flashlight/glowstick, - /obj/item/device/flashlight/glowstick/red, - /obj/item/device/flashlight/glowstick/blue, - /obj/item/device/flashlight/glowstick/cyan, - /obj/item/device/flashlight/glowstick/orange, - /obj/item/device/flashlight/glowstick/yellow, - /obj/item/device/flashlight/glowstick/pink) - crate_name = "party equipment crate" - /datum/supply_pack/organic/pizza name = "Pizza Crate" desc = "Best prices on this side of the galaxy. All deliveries are guaranteed to be 99% anomaly-free!" @@ -1389,7 +1541,7 @@ crate_name = "potted plants crate" crate_type = /obj/structure/closet/crate/hydroponics -/datum/supply_pack/organic/hydroponics/seeds +/datum/supply_pack/organic/seeds name = "Seeds Crate" desc = "Big things have small beginnings. Contains thirteen different seeds." cost = 1000 @@ -1407,8 +1559,9 @@ /obj/item/seeds/potato, /obj/item/seeds/sugarcane) crate_name = "seeds crate" + crate_type = /obj/structure/closet/crate/hydroponics -/datum/supply_pack/organic/hydroponics/exoticseeds +/datum/supply_pack/organic/exoticseeds name = "Exotic Seeds Crate" desc = "Any entrepreneuring botanist's dream. Contains twelve different seeds, including three replica-pod seeds and two mystery seeds!" cost = 1500 @@ -1425,11 +1578,17 @@ /obj/item/seeds/random, /obj/item/seeds/random) crate_name = "exotic seeds crate" + crate_type = /obj/structure/closet/crate/hydroponics -/datum/supply_pack/organic/critter +////////////////////////////////////////////////////////////////////////////// +////////////////////////////// Livestock ///////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + +/datum/supply_pack/critter + group = "Livestock" crate_type = /obj/structure/closet/crate/critter -/datum/supply_pack/organic/critter/butterfly +/datum/supply_pack/critter/butterfly name = "Butterflies Crate" desc = "Not a very dangerous insect, but they do give off a better image than, say, flies or cockroaches."//is that a motherfucking worm reference contraband = TRUE @@ -1437,12 +1596,12 @@ contains = list(/mob/living/simple_animal/butterfly) crate_name = "entomology samples crate" -/datum/supply_pack/organic/critter/butterfly/generate() +/datum/supply_pack/critter/butterfly/generate() . = ..() for(var/i in 1 to 49) new /mob/living/simple_animal/butterfly(.) -/datum/supply_pack/organic/critter/cat +/datum/supply_pack/critter/cat name = "Cat Crate" desc = "The cat goes meow! Comes with a collar and a nice cat toy! Cheeseburger not included."//i can't believe im making this reference cost = 5000 //Cats are worth as much as corgis. @@ -1451,21 +1610,21 @@ /obj/item/toy/cattoy) crate_name = "cat crate" -/datum/supply_pack/organic/critter/cat/generate() +/datum/supply_pack/critter/cat/generate() . = ..() if(prob(50)) var/mob/living/simple_animal/pet/cat/C = locate() in . qdel(C) new /mob/living/simple_animal/pet/cat/Proc(.) -/datum/supply_pack/organic/critter/chick +/datum/supply_pack/critter/chick name = "Chicken Crate" desc = "The chicken goes bwaak!" cost = 2000 contains = list( /mob/living/simple_animal/chick) crate_name = "chicken crate" -/datum/supply_pack/organic/critter/crab +/datum/supply_pack/critter/crab name = "Crab Rocket" desc = "CRAAAAAAB ROCKET. CRAB ROCKET. CRAB ROCKET. CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB ROCKET. CRAFT. ROCKET. BUY. CRAFT ROCKET. CRAB ROOOCKET. CRAB ROOOOCKET. CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB ROOOOOOOOOOOOOOOOOOOOOOCK EEEEEEEEEEEEEEEEEEEEEEEEE EEEETTTTTTTTTTTTAAAAAAAAA AAAHHHHHHHHHHHHH. CRAB ROCKET. CRAAAB ROCKEEEEEEEEEGGGGHHHHTT CRAB CRAB CRAABROCKET CRAB ROCKEEEET."//fun fact: i actually spent like 10 minutes and transcribed the entire video. cost = 5000 @@ -1473,12 +1632,12 @@ crate_name = "look sir free crabs" DropPodOnly = TRUE -/datum/supply_pack/organic/critter/crab/generate() +/datum/supply_pack/critter/crab/generate() . = ..() for(var/i in 1 to 49) new /mob/living/simple_animal/crab(.) -/datum/supply_pack/organic/critter/corgi +/datum/supply_pack/critter/corgi name = "Corgi Crate" desc = "Considered the optimal dog breed by thousands of research scientists, this Corgi is but one dog from the millions of Ian's noble bloodline. Comes with a cute collar!" cost = 5000 @@ -1486,21 +1645,21 @@ /obj/item/clothing/neck/petcollar) crate_name = "corgi crate" -/datum/supply_pack/organic/critter/corgi/generate() +/datum/supply_pack/critter/corgi/generate() . = ..() if(prob(50)) var/mob/living/simple_animal/pet/dog/corgi/D = locate() in . qdel(D) new /mob/living/simple_animal/pet/dog/corgi/Lisa(.) -/datum/supply_pack/organic/critter/cow +/datum/supply_pack/critter/cow name = "Cow Crate" desc = "The cow goes moo!" cost = 3000 contains = list(/mob/living/simple_animal/cow) crate_name = "cow crate" -/datum/supply_pack/organic/critter/fox +/datum/supply_pack/critter/fox name = "Fox Crate" desc = "The fox goes...? Comes with a collar!"//what does the fox say cost = 5000 @@ -1508,14 +1667,21 @@ /obj/item/clothing/neck/petcollar) crate_name = "fox crate" -/datum/supply_pack/organic/critter/goat +/datum/supply_pack/critter/goat name = "Goat Crate" desc = "The goat goes baa! Warranty void if used as a replacement for Pete." cost = 2500 contains = list(/mob/living/simple_animal/hostile/retaliate/goat) crate_name = "goat crate" -/datum/supply_pack/organic/critter/pug +/datum/supply_pack/critter/monkey + name = "Monkey Cube Crate" + desc = "Stop monkeying around! Contains seven monkey cubes. Just add water!" + cost = 2000 + contains = list (/obj/item/storage/box/monkeycubes) + crate_name = "monkey cube crate" + +/datum/supply_pack/critter/pug name = "Pug Crate" desc = "Like a normal dog, but... squished. Comes with a nice collar!" cost = 5000 @@ -1523,7 +1689,7 @@ /obj/item/clothing/neck/petcollar) crate_name = "pug crate" -/datum/supply_pack/organic/critter/snake +/datum/supply_pack/critter/snake name = "Snake Crate" desc = "Tired of these MOTHER FUCKING snakes on this MOTHER FUCKING space station? Then this isn't the crate for you. Contains three poisonous snakes." cost = 3000 @@ -1532,144 +1698,51 @@ /mob/living/simple_animal/hostile/retaliate/poison/snake) crate_name = "snake crate" -/datum/supply_pack/organic/vending - name = "Bartending Supply Crate" - desc = "Bring on the booze with six vending machine refills, as well as a free book containing the well-kept secrets to the bartending trade!" - cost = 2000 - contains = list(/obj/item/vending_refill/boozeomat, - /obj/item/vending_refill/boozeomat, - /obj/item/vending_refill/boozeomat, - /obj/item/vending_refill/coffee, - /obj/item/vending_refill/coffee, - /obj/item/vending_refill/coffee, - /obj/item/book/granter/action/drink_fling) - crate_name = "bartending supply crate" - -/datum/supply_pack/organic/vending/cigarette - name = "Cigarette Supply Crate" - desc = "Don't believe the reports - smoke today! Contains cigarette vending machine refills." - cost = 1500 - contains = list(/obj/item/vending_refill/cigarette, - /obj/item/vending_refill/cigarette, - /obj/item/vending_refill/cigarette) - crate_name = "cigarette supply crate" - -/datum/supply_pack/organic/vending/games - name = "Games Supply Crate" - desc = "Get your game on with these three game vending machine refills." - cost = 1000 - contains = list(/obj/item/vending_refill/games, - /obj/item/vending_refill/games, - /obj/item/vending_refill/games) - crate_name = "games supply crate" - -/datum/supply_pack/organic/vending/snack - name = "Snack Supply Crate" - desc = "Three vending machine refills of cavity-bringin' goodness! The number one dentist recommended order!" - cost = 1500 - contains = list(/obj/item/vending_refill/snack, - /obj/item/vending_refill/snack, - /obj/item/vending_refill/snack) - crate_name = "snacks supply crate" - -/datum/supply_pack/organic/vending/cola - name = "Softdrinks Supply Crate" - desc = "Got whacked by a toolbox, but you still have those pesky teeth? Get rid of those pearly whites with these three soda machine refills, today!" - cost = 1500 - contains = list(/obj/item/vending_refill/cola, - /obj/item/vending_refill/cola, - /obj/item/vending_refill/cola) - crate_name = "soft drinks supply crate" - ////////////////////////////////////////////////////////////////////////////// -//////////////////////////// Miscellaneous /////////////////////////////////// +//////////////////////////// Costumes & Toys ///////////////////////////////// ////////////////////////////////////////////////////////////////////////////// -/datum/supply_pack/misc - group = "Miscellaneous Supplies" +/datum/supply_pack/costumes_toys + group = "Costumes & Toys" -/datum/supply_pack/misc/artsupply - name = "Art Supplies" - desc = "Make some happy little accidents with six canvasses, two easels, and two rainbow crayons!" - cost = 800 - contains = list(/obj/structure/easel, - /obj/structure/easel, - /obj/item/canvas/nineteenXnineteen, - /obj/item/canvas/nineteenXnineteen, - /obj/item/canvas/twentythreeXnineteen, - /obj/item/canvas/twentythreeXnineteen, - /obj/item/canvas/twentythreeXtwentythree, - /obj/item/canvas/twentythreeXtwentythree, - /obj/item/toy/crayon/rainbow, - /obj/item/toy/crayon/rainbow) - crate_name = "art supply crate" - -/datum/supply_pack/misc/bicycle - name = "Bicycle" - desc = "Nanotrasen reminds all employees to never toy with powers outside their control." - cost = 1000000 - contains = list(/obj/vehicle/ridden/bicycle) - crate_name = "Bicycle Crate" - crate_type = /obj/structure/closet/crate/large - -/datum/supply_pack/misc/bigband - name = "Big Band Instrument Collection" - desc = "Get your sad station movin' and groovin' with this fine collection! Contains nine different instruments!" - cost = 5000 - crate_name = "Big band musical instruments collection" - contains = list(/obj/item/device/instrument/violin, - /obj/item/device/instrument/guitar, - /obj/item/device/instrument/glockenspiel, - /obj/item/device/instrument/accordion, - /obj/item/device/instrument/saxophone, - /obj/item/device/instrument/trombone, - /obj/item/device/instrument/recorder, - /obj/item/device/instrument/harmonica, - /obj/structure/piano/unanchored) - -/datum/supply_pack/misc/book_crate - name = "Book Crate" - desc = "Surplus from the Nanotrasen Archives, these five books are sure to be good reads." +/datum/supply_pack/costumes_toys/autodrobe + name = "Autodrobe Supply Crate" + desc = "Autodrobe missing your favorite dress? Solve that issue today with these two autodrobe refills." cost = 1500 - contains = list(/obj/item/book/codex_gigas, - /obj/item/book/manual/random/, - /obj/item/book/manual/random/, - /obj/item/book/manual/random/, - /obj/item/book/random/triple) + contains = list(/obj/item/vending_refill/autodrobe, + /obj/item/vending_refill/autodrobe) + crate_name = "autodrobe supply crate" -/datum/supply_pack/misc/paper - name = "Bureaucracy Crate" - desc = "High stacks of papers on your desk Are a big problem - make it Pea-sized with these bureacratic supplies! Contains six pens, some camera film, hand labeler supplies, a paper bin, three folders, two clipboards and two stamps."//that was too forced - cost = 1500 - contains = list(/obj/structure/filingcabinet/chestdrawer/wheeled, - /obj/item/device/camera_film, - /obj/item/hand_labeler, - /obj/item/hand_labeler_refill, - /obj/item/hand_labeler_refill, - /obj/item/paper_bin, - /obj/item/pen/fourcolor, - /obj/item/pen/fourcolor, - /obj/item/pen, - /obj/item/pen/fountain, - /obj/item/pen/blue, - /obj/item/pen/red, - /obj/item/folder/blue, - /obj/item/folder/red, - /obj/item/folder/yellow, - /obj/item/clipboard, - /obj/item/clipboard, - /obj/item/stamp, - /obj/item/stamp/denied) - crate_name = "bureaucracy crate" - -/datum/supply_pack/misc/fountainpens - name = "Calligraphy Crate" - desc = "Sign death warrents in style with these seven executive fountain pens." - cost = 700 - contains = list(/obj/item/storage/box/fountainpens) +/datum/supply_pack/costumes_toys/randomised + name = "Collectable Hats Crate" + desc = "Flaunt your status with three unique, highly-collectable hats!" + cost = 20000 + var/num_contained = 3 //number of items picked to be contained in a randomised crate + contains = list(/obj/item/clothing/head/collectable/chef, + /obj/item/clothing/head/collectable/paper, + /obj/item/clothing/head/collectable/tophat, + /obj/item/clothing/head/collectable/captain, + /obj/item/clothing/head/collectable/beret, + /obj/item/clothing/head/collectable/welding, + /obj/item/clothing/head/collectable/flatcap, + /obj/item/clothing/head/collectable/pirate, + /obj/item/clothing/head/collectable/kitty, + /obj/item/clothing/head/collectable/rabbitears, + /obj/item/clothing/head/collectable/wizard, + /obj/item/clothing/head/collectable/hardhat, + /obj/item/clothing/head/collectable/HoS, + /obj/item/clothing/head/collectable/HoP, + /obj/item/clothing/head/collectable/thunderdome, + /obj/item/clothing/head/collectable/swat, + /obj/item/clothing/head/collectable/slime, + /obj/item/clothing/head/collectable/police, + /obj/item/clothing/head/collectable/slime, + /obj/item/clothing/head/collectable/xenom, + /obj/item/clothing/head/collectable/petehat) + crate_name = "collectable hats crate" crate_type = /obj/structure/closet/crate/wooden -/datum/supply_pack/misc/randomised/contraband +/datum/supply_pack/costumes_toys/randomised/contraband name = "Contraband Crate" desc = "Psst.. bud... want some contraband? I can get you a poster, some nice cigs, bling, even some ambrosia deus...you know, the good stuff. Just keep it away from the cops, kay?" contraband = TRUE @@ -1682,21 +1755,7 @@ /obj/item/clothing/neck/necklace/dope) crate_name = "crate" -/datum/supply_pack/misc/conveyor - name = "Conveyor Assembly Crate" - desc = "Keep production moving along with six conveyor belts. Conveyor switch included. If you have any questions, check out the enclosed instruction book." - cost = 1500 - contains = list(/obj/item/conveyor_construct, - /obj/item/conveyor_construct, - /obj/item/conveyor_construct, - /obj/item/conveyor_construct, - /obj/item/conveyor_construct, - /obj/item/conveyor_construct, - /obj/item/conveyor_switch_construct, - /obj/item/paper/guides/conveyor) - crate_name = "conveyor assembly crate" - -/datum/supply_pack/misc/foamforce +/datum/supply_pack/costumes_toys/foamforce name = "Foam Force Crate" desc = "Break out the big guns with eight Foam Force shotguns!" cost = 1000 @@ -1710,7 +1769,7 @@ /obj/item/gun/ballistic/shotgun/toy) crate_name = "foam force crate" -/datum/supply_pack/misc/foamforce/bonus +/datum/supply_pack/costumes_toys/foamforce/bonus name = "Foam Force Pistols Crate" desc = "Psst.. hey bud... remember those old foam force pistols that got discontinued for being too cool? Well I got two of those right here with your name on em. I'll even throw in a spare mag for each, waddya say?" contraband = TRUE @@ -1721,198 +1780,7 @@ /obj/item/ammo_box/magazine/toy/pistol) crate_name = "foam force crate" -/datum/supply_pack/misc/noslipfloor - name = "High-traction Floor Tiles" - desc = "Make slipping a thing of the past with thirty industrial-grade anti-slip floortiles!" - cost = 2000 - contains = list(/obj/item/stack/tile/noslip/thirty) - crate_name = "high-traction floor tiles crate" - -/datum/supply_pack/misc/clownpin - name = "Hilarious Firing Pin Crate" - desc = "i uh... im not really sure what this does. wanna buy it?" - cost = 5000 - contraband = TRUE - contains = list(/obj/item/device/firing_pin/clown) - // It's /technically/ a toy. For the clown, at least. - crate_name = "toy crate" - -/datum/supply_pack/misc/janitor - name = "Janitorial Supplies Crate" - desc = "Fight back against dirt and grime with Nanotrasen's Janitorial Essentials(tm)! Contains three buckets, caution signs, and cleaner grenades. Also has a single mop, spray cleaner, rag, and trash bag." - cost = 1000 - contains = list(/obj/item/reagent_containers/glass/bucket, - /obj/item/reagent_containers/glass/bucket, - /obj/item/reagent_containers/glass/bucket, - /obj/item/mop, - /obj/item/caution, - /obj/item/caution, - /obj/item/caution, - /obj/item/storage/bag/trash, - /obj/item/reagent_containers/spray/cleaner, - /obj/item/reagent_containers/glass/rag, - /obj/item/grenade/chem_grenade/cleaner, - /obj/item/grenade/chem_grenade/cleaner, - /obj/item/grenade/chem_grenade/cleaner) - crate_name = "janitorial supplies crate" - -/datum/supply_pack/misc/janitor/janicart - name = "Janitorial Cart and Galoshes Crate" - desc = "The keystone to any successful janitor. As long as you have feet, this pair of galoshes will keep them firmly planted on the ground. Also contains a janitorial cart." - cost = 2000 - contains = list(/obj/structure/janitorialcart, - /obj/item/clothing/shoes/galoshes) - crate_name = "janitorial cart crate" - crate_type = /obj/structure/closet/crate/large - -/datum/supply_pack/misc/janitor/janitank - name = "Janitor Backpack Crate" - desc = "Call forth divine judgement upon dirt and grime with this high capacity janitor backpack. Contains 500 units of station-cleansing cleaner. Requires janitor access to open." - cost = 1000 - access = ACCESS_JANITOR - contains = list(/obj/item/watertank/janitor) - crate_name = "janitor backpack crate" - crate_type = /obj/structure/closet/crate/secure - -/datum/supply_pack/misc/lasertag - name = "Laser Tag Crate" - desc = "Foam Force is for boys. Laser Tag is for men. Contains three sets of red suits, blue suits, matching helmets, and matching laser tag guns." - cost = 1500 - contains = list(/obj/item/gun/energy/laser/redtag, - /obj/item/gun/energy/laser/redtag, - /obj/item/gun/energy/laser/redtag, - /obj/item/gun/energy/laser/bluetag, - /obj/item/gun/energy/laser/bluetag, - /obj/item/gun/energy/laser/bluetag, - /obj/item/clothing/suit/redtag, - /obj/item/clothing/suit/redtag, - /obj/item/clothing/suit/redtag, - /obj/item/clothing/suit/bluetag, - /obj/item/clothing/suit/bluetag, - /obj/item/clothing/suit/bluetag, - /obj/item/clothing/head/helmet/redtaghelm, - /obj/item/clothing/head/helmet/redtaghelm, - /obj/item/clothing/head/helmet/redtaghelm, - /obj/item/clothing/head/helmet/bluetaghelm, - /obj/item/clothing/head/helmet/bluetaghelm, - /obj/item/clothing/head/helmet/bluetaghelm) - crate_name = "laser tag crate" - -/datum/supply_pack/misc/lasertag/pins - name = "Laser Tag Firing Pins Crate" - desc = "Three laser tag firing pins used in laser-tag units to ensure users are wearing their vests." - cost = 3000 - contraband = TRUE - contains = list(/obj/item/storage/box/lasertagpins) - crate_name = "laser tag crate" - -/datum/supply_pack/misc/mule - name = "MULEbot Crate" - desc = "Pink-haired Quartermaster not doing her job? Replace her with this tireless worker, today!" - cost = 2000 - contains = list(/mob/living/simple_animal/bot/mulebot) - crate_name = "\improper MULEbot Crate" - crate_type = /obj/structure/closet/crate/large - -/datum/supply_pack/misc/religious_supplies - name = "Religious Supplies Crate" - desc = "Keep your local chaplain happy and well-supplied, lest they call down judgement upon your cargo bay. Contains two bottles of holywater, bibles, chaplain robes, and burial garmets." - cost = 4000 // it costs so much because the Space Church is ran by Space Jews - contains = list(/obj/item/reagent_containers/food/drinks/bottle/holywater, - /obj/item/reagent_containers/food/drinks/bottle/holywater, - /obj/item/storage/book/bible/booze, - /obj/item/storage/book/bible/booze, - /obj/item/clothing/suit/hooded/chaplain_hoodie, - /obj/item/clothing/suit/hooded/chaplain_hoodie, - /obj/item/clothing/under/burial, - /obj/item/clothing/under/burial) - crate_name = "religious supplies crate" - -/datum/supply_pack/misc/janitor/lightbulbs - name = "Replacement Lights" - desc = "May the light of Aether shine upon this station! Or at least, the light of forty two light tubes and twenty one light bulbs." - cost = 1000 - contains = list(/obj/item/storage/box/lights/mixed, - /obj/item/storage/box/lights/mixed, - /obj/item/storage/box/lights/mixed) - crate_name = "replacement lights" - -/datum/supply_pack/misc/minerkit - name = "Shaft Miner Starter Kit" - desc = "All the miners died too fast? Assistant wants to get a taste of life off-station? Either way, this kit is the best way to turn a regular crewman into an ore-producing, monster-slaying machine. Contains meson goggles, a pickaxe, advanced mining scanner, cargo headset, ore bag, gasmask, and explorer suit. Requires QM access to open." - cost = 2500 - access = ACCESS_QM - contains = list(/obj/item/pickaxe/mini, - /obj/item/clothing/glasses/meson, - /obj/item/device/t_scanner/adv_mining_scanner/lesser, - /obj/item/device/radio/headset/headset_cargo/mining, - /obj/item/storage/bag/ore, - /obj/item/clothing/suit/hooded/explorer, - /obj/item/clothing/mask/gas/explorer) - crate_name = "shaft miner starter kit" - crate_type = /obj/structure/closet/crate/secure - -/datum/supply_pack/misc/toner - name = "Toner Crate" - desc = "Spent too much ink printing butt pictures? Fret not, with these six toner refills, you'll be printing butts 'till the cows come home!'" - cost = 1000 - contains = list(/obj/item/device/toner, - /obj/item/device/toner, - /obj/item/device/toner, - /obj/item/device/toner, - /obj/item/device/toner, - /obj/item/device/toner) - crate_name = "toner crate" - -/datum/supply_pack/misc/autodrobe - name = "Autodrobe Supply Crate" - desc = "Autodrobe missing your favorite dress? Solve that issue today with these two autodrobe refills." - cost = 1500 - contains = list(/obj/item/vending_refill/autodrobe, - /obj/item/vending_refill/autodrobe) - crate_name = "autodrobe supply crate" - -/datum/supply_pack/misc/costume - name = "Standard Costume Crate" - desc = "Supply the station's entertainers with the equipment of their trade with these Nanotrasen-approved costumes! Contains a full clown and mime outfit, along with a bike horn and a bottle of nothing." - cost = 1000 - access = ACCESS_THEATRE - contains = list(/obj/item/storage/backpack/clown, - /obj/item/clothing/shoes/clown_shoes, - /obj/item/clothing/mask/gas/clown_hat, - /obj/item/clothing/under/rank/clown, - /obj/item/bikehorn, - /obj/item/clothing/under/rank/mime, - /obj/item/clothing/shoes/sneakers/black, - /obj/item/clothing/gloves/color/white, - /obj/item/clothing/mask/gas/mime, - /obj/item/clothing/head/beret, - /obj/item/clothing/suit/suspenders, - /obj/item/reagent_containers/food/drinks/bottle/bottleofnothing, - /obj/item/storage/backpack/mime) - crate_name = "standard costume crate" - crate_type = /obj/structure/closet/crate/secure - -/datum/supply_pack/misc/costume_original - name = "Original Costume Crate" - desc = "Reenact Shakespearean plays with this assortment of outfits. Contains eight different costumes!" - cost = 1000 - contains = list(/obj/item/clothing/head/snowman, - /obj/item/clothing/suit/snowman, - /obj/item/clothing/head/chicken, - /obj/item/clothing/suit/chickensuit, - /obj/item/clothing/mask/gas/monkeymask, - /obj/item/clothing/suit/monkeysuit, - /obj/item/clothing/head/cardborg, - /obj/item/clothing/suit/cardborg, - /obj/item/clothing/head/xenos, - /obj/item/clothing/suit/xenos, - /obj/item/clothing/suit/hooded/ian_costume, - /obj/item/clothing/suit/hooded/carp_costume, - /obj/item/clothing/suit/hooded/bee_costume) - crate_name = "original costume crate" - -/datum/supply_pack/misc/formalwear +/datum/supply_pack/costumes_toys/formalwear name = "Formalwear Crate" desc = "You're gonna like the way you look, I guaranteed it. Contains an asston of fancy clothing." cost = 3000 //Lots of very expensive items. You gotta pay up to look good! @@ -1944,52 +1812,91 @@ /obj/item/clothing/under/suit_jacket/tan, /obj/item/lipstick/random) crate_name = "formalwear crate" + crate_type = /obj/structure/closet/crate/wooden -/datum/supply_pack/misc/wizard - name = "Wizard Costume Crate" - desc = "Pretend to join the Wizard Federation with this full wizard outfit! Nanotrasen would like to remind its employees that actually joining the Wizard Federation is subject to termination of job and life." - cost = 2000 - contains = list(/obj/item/staff, - /obj/item/clothing/suit/wizrobe/fake, - /obj/item/clothing/shoes/sandal, - /obj/item/clothing/head/wizard/fake) - crate_name = "wizard costume crate" +/datum/supply_pack/costumes_toys/clownpin + name = "Hilarious Firing Pin Crate" + desc = "I uh... I'm not really sure what this does. Wanna buy it?" + cost = 5000 + contraband = TRUE + contains = list(/obj/item/firing_pin/clown) + crate_name = "toy crate" // It's /technically/ a toy. For the clown, at least. + crate_type = /obj/structure/closet/crate/wooden -/datum/supply_pack/misc/randomised/fill(obj/structure/closet/crate/C) - var/list/L = contains.Copy() - for(var/i in 1 to num_contained) - var/item = pick_n_take(L) - new item(C) +/datum/supply_pack/costumes_toys/lasertag + name = "Laser Tag Crate" + desc = "Foam Force is for boys. Laser Tag is for men. Contains three sets of red suits, blue suits, matching helmets, and matching laser tag guns." + cost = 1500 + contains = list(/obj/item/gun/energy/laser/redtag, + /obj/item/gun/energy/laser/redtag, + /obj/item/gun/energy/laser/redtag, + /obj/item/gun/energy/laser/bluetag, + /obj/item/gun/energy/laser/bluetag, + /obj/item/gun/energy/laser/bluetag, + /obj/item/clothing/suit/redtag, + /obj/item/clothing/suit/redtag, + /obj/item/clothing/suit/redtag, + /obj/item/clothing/suit/bluetag, + /obj/item/clothing/suit/bluetag, + /obj/item/clothing/suit/bluetag, + /obj/item/clothing/head/helmet/redtaghelm, + /obj/item/clothing/head/helmet/redtaghelm, + /obj/item/clothing/head/helmet/redtaghelm, + /obj/item/clothing/head/helmet/bluetaghelm, + /obj/item/clothing/head/helmet/bluetaghelm, + /obj/item/clothing/head/helmet/bluetaghelm) + crate_name = "laser tag crate" -/datum/supply_pack/misc/randomised - name = "Collectable Hats Crate" - desc = "Flaunt your status with three unique, highly-collectable hats!" - cost = 20000 - var/num_contained = 3 //number of items picked to be contained in a randomised crate - contains = list(/obj/item/clothing/head/collectable/chef, - /obj/item/clothing/head/collectable/paper, - /obj/item/clothing/head/collectable/tophat, - /obj/item/clothing/head/collectable/captain, - /obj/item/clothing/head/collectable/beret, - /obj/item/clothing/head/collectable/welding, - /obj/item/clothing/head/collectable/flatcap, - /obj/item/clothing/head/collectable/pirate, - /obj/item/clothing/head/collectable/kitty, - /obj/item/clothing/head/collectable/rabbitears, - /obj/item/clothing/head/collectable/wizard, - /obj/item/clothing/head/collectable/hardhat, - /obj/item/clothing/head/collectable/HoS, - /obj/item/clothing/head/collectable/HoP, - /obj/item/clothing/head/collectable/thunderdome, - /obj/item/clothing/head/collectable/swat, - /obj/item/clothing/head/collectable/slime, - /obj/item/clothing/head/collectable/police, - /obj/item/clothing/head/collectable/slime, - /obj/item/clothing/head/collectable/xenom, - /obj/item/clothing/head/collectable/petehat) - crate_name = "collectable hats crate" +/datum/supply_pack/costumes_toys/lasertag/pins + name = "Laser Tag Firing Pins Crate" + desc = "Three laser tag firing pins used in laser-tag units to ensure users are wearing their vests." + cost = 3000 + contraband = TRUE + contains = list(/obj/item/storage/box/lasertagpins) + crate_name = "laser tag crate" -/datum/supply_pack/misc/randomised/toys +/datum/supply_pack/costumes_toys/costume_original + name = "Original Costume Crate" + desc = "Reenact Shakespearean plays with this assortment of outfits. Contains eight different costumes!" + cost = 1000 + contains = list(/obj/item/clothing/head/snowman, + /obj/item/clothing/suit/snowman, + /obj/item/clothing/head/chicken, + /obj/item/clothing/suit/chickensuit, + /obj/item/clothing/mask/gas/monkeymask, + /obj/item/clothing/suit/monkeysuit, + /obj/item/clothing/head/cardborg, + /obj/item/clothing/suit/cardborg, + /obj/item/clothing/head/xenos, + /obj/item/clothing/suit/xenos, + /obj/item/clothing/suit/hooded/ian_costume, + /obj/item/clothing/suit/hooded/carp_costume, + /obj/item/clothing/suit/hooded/bee_costume) + crate_name = "original costume crate" + crate_type = /obj/structure/closet/crate/wooden + +/datum/supply_pack/costumes_toys/costume + name = "Standard Costume Crate" + desc = "Supply the station's entertainers with the equipment of their trade with these Nanotrasen-approved costumes! Contains a full clown and mime outfit, along with a bike horn and a bottle of nothing." + cost = 1000 + access = ACCESS_THEATRE + contains = list(/obj/item/storage/backpack/clown, + /obj/item/clothing/shoes/clown_shoes, + /obj/item/clothing/mask/gas/clown_hat, + /obj/item/clothing/under/rank/clown, + /obj/item/bikehorn, + /obj/item/clothing/under/rank/mime, + /obj/item/clothing/shoes/sneakers/black, + /obj/item/clothing/gloves/color/white, + /obj/item/clothing/mask/gas/mime, + /obj/item/clothing/head/beret, + /obj/item/clothing/suit/suspenders, + /obj/item/reagent_containers/food/drinks/bottle/bottleofnothing, + /obj/item/storage/backpack/mime) + crate_name = "standard costume crate" + crate_type = /obj/structure/closet/crate/wooden + +/datum/supply_pack/costumes_toys/randomised/toys name = "Toy Crate" desc = "Who cares about pride and accomplishment? Skip the gaming and get straight to the sweet rewards with this product! Contains five random toys. Warranty void if used to prank research directors." cost = 5000 // or play the arcade machines ya lazy bum @@ -2015,3 +1922,138 @@ /obj/item/toy/eightball, /obj/item/vending_refill/donksoft) crate_name = "toy crate" + crate_type = /obj/structure/closet/crate/wooden + +/datum/supply_pack/costumes_toys/wizard + name = "Wizard Costume Crate" + desc = "Pretend to join the Wizard Federation with this full wizard outfit! Nanotrasen would like to remind its employees that actually joining the Wizard Federation is subject to termination of job and life." + cost = 2000 + contains = list(/obj/item/staff, + /obj/item/clothing/suit/wizrobe/fake, + /obj/item/clothing/shoes/sandal, + /obj/item/clothing/head/wizard/fake) + crate_name = "wizard costume crate" + crate_type = /obj/structure/closet/crate/wooden + +/datum/supply_pack/costumes_toys/randomised/fill(obj/structure/closet/crate/C) + var/list/L = contains.Copy() + for(var/i in 1 to num_contained) + var/item = pick_n_take(L) + new item(C) + +////////////////////////////////////////////////////////////////////////////// +//////////////////////////// Miscellaneous /////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + +/datum/supply_pack/misc + group = "Miscellaneous Supplies" + +/datum/supply_pack/misc/artsupply + name = "Art Supplies" + desc = "Make some happy little accidents with six canvasses, two easels, and two rainbow crayons!" + cost = 800 + contains = list(/obj/structure/easel, + /obj/structure/easel, + /obj/item/canvas/nineteenXnineteen, + /obj/item/canvas/nineteenXnineteen, + /obj/item/canvas/twentythreeXnineteen, + /obj/item/canvas/twentythreeXnineteen, + /obj/item/canvas/twentythreeXtwentythree, + /obj/item/canvas/twentythreeXtwentythree, + /obj/item/toy/crayon/rainbow, + /obj/item/toy/crayon/rainbow) + crate_name = "art supply crate" + crate_type = /obj/structure/closet/crate/wooden + +/datum/supply_pack/misc/bicycle + name = "Bicycle" + desc = "Nanotrasen reminds all employees to never toy with powers outside their control." + cost = 1000000 + contains = list(/obj/vehicle/ridden/bicycle) + crate_name = "Bicycle Crate" + crate_type = /obj/structure/closet/crate/large + +/datum/supply_pack/misc/bigband + name = "Big Band Instrument Collection" + desc = "Get your sad station movin' and groovin' with this fine collection! Contains nine different instruments!" + cost = 5000 + crate_name = "Big band musical instruments collection" + contains = list(/obj/item/instrument/violin, + /obj/item/instrument/guitar, + /obj/item/instrument/glockenspiel, + /obj/item/instrument/accordion, + /obj/item/instrument/saxophone, + /obj/item/instrument/trombone, + /obj/item/instrument/recorder, + /obj/item/instrument/harmonica, + /obj/structure/piano/unanchored) + crate_type = /obj/structure/closet/crate/wooden + +/datum/supply_pack/misc/book_crate + name = "Book Crate" + desc = "Surplus from the Nanotrasen Archives, these five books are sure to be good reads." + cost = 1500 + contains = list(/obj/item/book/codex_gigas, + /obj/item/book/manual/random/, + /obj/item/book/manual/random/, + /obj/item/book/manual/random/, + /obj/item/book/random/triple) + crate_type = /obj/structure/closet/crate/wooden + +/datum/supply_pack/misc/paper + name = "Bureaucracy Crate" + desc = "High stacks of papers on your desk Are a big problem - make it Pea-sized with these bureacratic supplies! Contains six pens, some camera film, hand labeler supplies, a paper bin, three folders, two clipboards and two stamps."//that was too forced + cost = 1500 + contains = list(/obj/structure/filingcabinet/chestdrawer/wheeled, + /obj/item/camera_film, + /obj/item/hand_labeler, + /obj/item/hand_labeler_refill, + /obj/item/hand_labeler_refill, + /obj/item/paper_bin, + /obj/item/pen/fourcolor, + /obj/item/pen/fourcolor, + /obj/item/pen, + /obj/item/pen/fountain, + /obj/item/pen/blue, + /obj/item/pen/red, + /obj/item/folder/blue, + /obj/item/folder/red, + /obj/item/folder/yellow, + /obj/item/clipboard, + /obj/item/clipboard, + /obj/item/stamp, + /obj/item/stamp/denied) + crate_name = "bureaucracy crate" + +/datum/supply_pack/misc/fountainpens + name = "Calligraphy Crate" + desc = "Sign death warrants in style with these seven executive fountain pens." + cost = 700 + contains = list(/obj/item/storage/box/fountainpens) + crate_type = /obj/structure/closet/crate/wooden + +/datum/supply_pack/misc/religious_supplies + name = "Religious Supplies Crate" + desc = "Keep your local chaplain happy and well-supplied, lest they call down judgement upon your cargo bay. Contains two bottles of holywater, bibles, chaplain robes, and burial garmets." + cost = 4000 // it costs so much because the Space Church is ran by Space Jews + contains = list(/obj/item/reagent_containers/food/drinks/bottle/holywater, + /obj/item/reagent_containers/food/drinks/bottle/holywater, + /obj/item/storage/book/bible/booze, + /obj/item/storage/book/bible/booze, + /obj/item/clothing/suit/hooded/chaplain_hoodie, + /obj/item/clothing/suit/hooded/chaplain_hoodie, + /obj/item/clothing/under/burial, + /obj/item/clothing/under/burial) + crate_name = "religious supplies crate" + +/datum/supply_pack/misc/toner + name = "Toner Crate" + desc = "Spent too much ink printing butt pictures? Fret not, with these six toner refills, you'll be printing butts 'till the cows come home!'" + cost = 1000 + contains = list(/obj/item/toner, + /obj/item/toner, + /obj/item/toner, + /obj/item/toner, + /obj/item/toner, + /obj/item/toner) + crate_name = "toner crate" diff --git a/code/modules/cargo/vg_clothing_packs.dm b/code/modules/cargo/vg_clothing_packs.dm deleted file mode 100644 index 99812627e3..0000000000 --- a/code/modules/cargo/vg_clothing_packs.dm +++ /dev/null @@ -1,34 +0,0 @@ -/* // Can't be bothered to maintain this, mostly just memes anyway. -/datum/supply_pack/misc/vidyacon - name = "Vidya-Con Surplus Crate" - cost = 3250 - contains = list(/obj/item/clothing/shoes/megaboots,/obj/item/clothing/gloves/megagloves,/obj/item/clothing/head/helmet/megahelmet, /obj/item/clothing/under/mega, - /obj/item/clothing/shoes/protoboots,/obj/item/clothing/gloves/protogloves,/obj/item/clothing/head/helmet/protohelmet,/obj/item/clothing/under/proto, - /obj/item/clothing/shoes/megaxboots,/obj/item/clothing/gloves/megaxgloves,/obj/item/clothing/head/helmet/megaxhelmet,/obj/item/clothing/under/megax, - /obj/item/clothing/shoes/joeboots,/obj/item/clothing/gloves/joegloves,/obj/item/clothing/head/helmet/joehelmet,/obj/item/clothing/under/joe, - /obj/item/clothing/under/roll, - /obj/item/clothing/head/helmet/biker,/obj/item/clothing/under/bikersuit,/obj/item/clothing/gloves/bikergloves, - /obj/item/clothing/under/jacketsuit,/obj/item/clothing/head/helmet/richard, - /obj/item/clothing/under/vault13) - crate_name = "vidya-con surplus crate" - - -datum/supply_pack/misc/memes - name = "Nanotrasen Approved Internet Humor Crate" - cost = 5000 - contains = list(/obj/item/clothing/suit/doshjacket, - /obj/item/clothing/under/squatter_outfit,/obj/item/clothing/head/squatter_hat, - /obj/item/clothing/under/cia, - /obj/item/clothing/under/russobluecamooutfit,/obj/item/clothing/head/russobluecamohat, - /obj/item/clothing/under/rottensuit,/obj/item/clothing/shoes/rottenshoes, - /obj/item/clothing/suit/raincoat) - crate_name = "nanotrasen internet humor crate" - -datum/supply_pack/misc/reenactor - name = "Historical Reanactor Crate" - cost = 17500 - contains = list(/obj/item/clothing/under/soldieruniform,/obj/item/clothing/head/stalhelm,/obj/item/clothing/suit/soldiercoat, - /obj/item/clothing/under/officeruniform,/obj/item/clothing/head/naziofficer,/obj/item/clothing/suit/officercoat, - /obj/item/clothing/head/panzer, - /obj/item/clothing/suit/russofurcoat,/obj/item/clothing/head/russofurhat,/obj/item/clothing/under/soviet) - crate_name = "historical reanactor crate" */ diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 42c92908e7..49d6c4b04a 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -92,7 +92,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( if (citadel_client_procs(href_list)) return // CITADEL End - + switch(href_list["_src_"]) if("holder") hsrc = holder @@ -391,9 +391,9 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) var/datum/verbs/menu/menuitem = GLOB.menulist[thing] if (menuitem) menuitem.Load_checked(src) - + hook_vr("client_new",list(src)) // CIT CHANGE - hook for client/New() changes - + Master.UpdateTickRate() ////////////// @@ -638,50 +638,6 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) return create_message("note", ckey, system_ckey, message, null, null, 0, 0) -/client/Click(atom/object, atom/location, control, params) - var/ab = FALSE - var/list/L = params2list(params) - if (object && object == middragatom && L["left"]) - ab = max(0, 5 SECONDS-(world.time-middragtime)*0.1) - var/mcl = CONFIG_GET(number/minute_click_limit) - if (!holder && mcl) - var/minute = round(world.time, 600) - if (!clicklimiter) - clicklimiter = new(LIMITER_SIZE) - if (minute != clicklimiter[CURRENT_MINUTE]) - clicklimiter[CURRENT_MINUTE] = minute - clicklimiter[MINUTE_COUNT] = 0 - clicklimiter[MINUTE_COUNT] += 1+(ab) - if (clicklimiter[MINUTE_COUNT] > mcl) - var/msg = "Your previous click was ignored because you've done too many in a minute." - if (minute != clicklimiter[ADMINSWARNED_AT]) //only one admin message per-minute. (if they spam the admins can just boot/ban them) - clicklimiter[ADMINSWARNED_AT] = minute - - msg += " Administrators have been informed." - if (ab) - log_game("[key_name(src)] is using the middle click aimbot exploit") - message_admins("[key_name_admin(src)] [ADMIN_FLW(usr)] [ADMIN_KICK(usr)] is using the middle click aimbot exploit") - add_system_note("aimbot", "Is using the middle click aimbot exploit") - - log_game("[key_name(src)] Has hit the per-minute click limit of [mcl] clicks in a given game minute") - message_admins("[key_name_admin(src)] [ADMIN_FLW(usr)] [ADMIN_KICK(usr)] Has hit the per-minute click limit of [mcl] clicks in a given game minute") - to_chat(src, "[msg]") - return - - var/scl = CONFIG_GET(number/second_click_limit) - if (!holder && scl) - var/second = round(world.time, 10) - if (!clicklimiter) - clicklimiter = new(LIMITER_SIZE) - if (second != clicklimiter[CURRENT_SECOND]) - clicklimiter[CURRENT_SECOND] = second - clicklimiter[SECOND_COUNT] = 0 - clicklimiter[SECOND_COUNT] += 1+(!!ab) - if (clicklimiter[SECOND_COUNT] > scl) - to_chat(src, "Your previous click was ignored because you've done too many in a second") - return - ..() - /client/proc/check_ip_intel() set waitfor = 0 //we sleep when getting the intel, no need to hold up the client connection while we sleep @@ -742,9 +698,7 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) verbs += /client/proc/self_playtime -#undef TOPIC_SPAM_DELAY #undef UPLOAD_LIMIT -#undef MIN_CLIENT_VERSION //checks if a client is afk //3000 frames = 5 minutes @@ -753,17 +707,6 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) return inactivity return FALSE -// Byond seemingly calls stat, each tick. -// Calling things each tick can get expensive real quick. -// So we slow this down a little. -// See: http://www.byond.com/docs/ref/info.html#/client/proc/Stat -/client/Stat() - . = ..() - if (holder) - stoplag(1) - else - stoplag(5) - //send resources to the client. It's here in its own proc so we can move it around easiliy if need be /client/proc/send_resources() #if (PRELOAD_RSC == 0) @@ -820,7 +763,6 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) /client/proc/change_view(new_size) if (isnull(new_size)) CRASH("change_view called without argument.") - //CIT CHANGES START HERE - makes change_view change DEFAULT_VIEW to 15x15 depending on preferences if(prefs && CONFIG_GET(string/default_view)) if(!prefs.widescreenpref && new_size == CONFIG_GET(string/default_view)) diff --git a/code/modules/client/verbs/looc.dm b/code/modules/client/verbs/looc.dm index 716f5c4cf3..c6814caab2 100644 --- a/code/modules/client/verbs/looc.dm +++ b/code/modules/client/verbs/looc.dm @@ -69,7 +69,7 @@ var/prefix = "(R)LOOC" if (C.mob in heard) prefix = "LOOC" - to_chat(C,"[prefix]: [src.key]/[src.mob.name]: [msg]") + to_chat(C,"[ADMIN_FLW(usr)][prefix]: [src.key]/[src.mob.name]: [msg]") /*for(var/mob/dead/observer/G in world) if(!G.client) diff --git a/code/modules/client/verbs/suicide.dm b/code/modules/client/verbs/suicide.dm index 2b5602833a..c968cc9c76 100644 --- a/code/modules/client/verbs/suicide.dm +++ b/code/modules/client/verbs/suicide.dm @@ -12,8 +12,6 @@ return if(confirm == "Yes") suiciding = TRUE - log_game("[key_name(src)] (job: [job ? "[job]" : "None"]) committed suicide at [get_area(src)].") - message_admins("[key_name(src)] (job: [job ? "[job]" : "None"]) committed suicide at [get_area(src)].") var/obj/item/held_item = get_active_held_item() if(held_item) var/damagetype = held_item.suicide_act(src) @@ -23,6 +21,9 @@ suiciding = FALSE SendSignal(COMSIG_ADD_MOOD_EVENT, "shameful_suicide", /datum/mood_event/shameful_suicide) return + + suicide_log() + var/damage_mod = 0 for(var/T in list(BRUTELOSS, FIRELOSS, TOXLOSS, OXYLOSS)) damage_mod += (T & damagetype) ? 1 : 0 @@ -49,6 +50,7 @@ adjustOxyLoss(max(200 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) death(FALSE) + return var/suicide_message @@ -73,6 +75,8 @@ visible_message("[suicide_message]", "[suicide_message]") + suicide_log() + adjustOxyLoss(max(200 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) death(0) @@ -87,6 +91,9 @@ suiciding = 1 visible_message("[src]'s brain is growing dull and lifeless. [p_they(TRUE)] look[p_s()] like [p_theyve()] lost the will to live.", \ "[src]'s brain is growing dull and lifeless. [p_they(TRUE)] look[p_s()] like [p_theyve()] lost the will to live.") + + suicide_log() + death(0) /mob/living/carbon/monkey/verb/suicide() @@ -100,6 +107,9 @@ suiciding = 1 visible_message("[src] is attempting to bite [p_their()] tongue. It looks like [p_theyre()] trying to commit suicide.", \ "[src] is attempting to bite [p_their()] tongue. It looks like [p_theyre()] trying to commit suicide.") + + suicide_log() + adjustOxyLoss(max(200- getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) death(0) @@ -114,6 +124,9 @@ suiciding = 1 visible_message("[src] is powering down. It looks like [p_theyre()] trying to commit suicide.", \ "[src] is powering down. It looks like [p_theyre()] trying to commit suicide.") + + suicide_log() + //put em at -175 adjustOxyLoss(max(maxHealth * 2 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) death(0) @@ -129,6 +142,9 @@ suiciding = 1 visible_message("[src] is powering down. It looks like [p_theyre()] trying to commit suicide.", \ "[src] is powering down. It looks like [p_theyre()] trying to commit suicide.") + + suicide_log() + //put em at -175 adjustOxyLoss(max(maxHealth * 2 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) death(0) @@ -140,6 +156,9 @@ var/turf/T = get_turf(src.loc) T.visible_message("[src] flashes a message across its screen, \"Wiping core files. Please acquire a new personality to continue using pAI device functions.\"", null, \ "[src] bleeps electronically.") + + suicide_log() + death(0) else to_chat(src, "Aborting suicide attempt.") @@ -156,6 +175,9 @@ visible_message("[src] is thrashing wildly! It looks like [p_theyre()] trying to commit suicide.", \ "[src] is thrashing wildly! It looks like [p_theyre()] trying to commit suicide.", \ "You hear thrashing.") + + suicide_log() + //put em at -175 adjustOxyLoss(max(200 - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) death(0) @@ -171,8 +193,22 @@ suiciding = 1 visible_message("[src] begins to fall down. It looks like [p_theyve()] lost the will to live.", \ "[src] begins to fall down. It looks like [p_theyve()] lost the will to live.") + + suicide_log() + death(0) +/mob/living/proc/suicide_log() + var/turf/T = get_turf(src) + + log_game("[key_name(src)] committed suicide at [get_area(src)][COORD(T)] as [src.type].") + message_admins("[key_name(src)] committed suicide at [get_area(src)] as [src.type].") + +/mob/living/carbon/human/suicide_log() + var/turf/T = get_turf(src) + + log_game("[key_name(src)] (job: [src.job ? "[src.job]" : "None"]) committed suicide at [get_area(src)][COORD(T)].") + message_admins("[key_name(src)] (job: [job ? "[job]" : "None"]) committed suicide at [get_area(src)].") /mob/living/proc/canSuicide() if(stat == CONSCIOUS) diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm index 609d341243..80562a5c80 100644 --- a/code/modules/clothing/chameleon.dm +++ b/code/modules/clothing/chameleon.dm @@ -387,8 +387,8 @@ desc = "A pair of black shoes." permeability_coefficient = 0.05 resistance_flags = NONE - pockets = /obj/item/storage/internal/pocket/shoes armor = list("melee" = 10, "bullet" = 10, "laser" = 10, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) + pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes var/datum/action/item_action/chameleon/change/chameleon_action @@ -420,7 +420,7 @@ ammo_type = list(/obj/item/ammo_casing/energy/chameleon) clumsy_check = 0 item_flags = NONE - pin = /obj/item/device/firing_pin + pin = /obj/item/firing_pin cell_type = /obj/item/stock_parts/cell/bluespace var/datum/action/item_action/chameleon/change/chameleon_action @@ -579,16 +579,21 @@ /obj/item/storage/belt/chameleon name = "toolbelt" desc = "Holds tools." - silent = TRUE var/datum/action/item_action/chameleon/change/chameleon_action /obj/item/storage/belt/chameleon/Initialize() . = ..() + chameleon_action = new(src) chameleon_action.chameleon_type = /obj/item/storage/belt chameleon_action.chameleon_name = "Belt" chameleon_action.initialize_disguises() +/obj/item/storage/belt/chameleon/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.silent = TRUE + /obj/item/storage/belt/chameleon/emp_act(severity) chameleon_action.emp_randomise() @@ -596,40 +601,40 @@ . = ..() chameleon_action.emp_randomise(INFINITY) -/obj/item/device/radio/headset/chameleon +/obj/item/radio/headset/chameleon name = "radio headset" var/datum/action/item_action/chameleon/change/chameleon_action -/obj/item/device/radio/headset/chameleon/Initialize() +/obj/item/radio/headset/chameleon/Initialize() . = ..() chameleon_action = new(src) - chameleon_action.chameleon_type = /obj/item/device/radio/headset + chameleon_action.chameleon_type = /obj/item/radio/headset chameleon_action.chameleon_name = "Headset" chameleon_action.initialize_disguises() -/obj/item/device/radio/headset/chameleon/emp_act(severity) +/obj/item/radio/headset/chameleon/emp_act(severity) chameleon_action.emp_randomise() -/obj/item/device/radio/headset/chameleon/broken/Initialize() +/obj/item/radio/headset/chameleon/broken/Initialize() . = ..() chameleon_action.emp_randomise(INFINITY) -/obj/item/device/pda/chameleon +/obj/item/pda/chameleon name = "PDA" var/datum/action/item_action/chameleon/change/chameleon_action -/obj/item/device/pda/chameleon/Initialize() +/obj/item/pda/chameleon/Initialize() . = ..() chameleon_action = new(src) - chameleon_action.chameleon_type = /obj/item/device/pda + chameleon_action.chameleon_type = /obj/item/pda chameleon_action.chameleon_name = "PDA" - chameleon_action.chameleon_blacklist = typecacheof(list(/obj/item/device/pda/heads, /obj/item/device/pda/ai, /obj/item/device/pda/ai/pai), only_root_path = TRUE) + chameleon_action.chameleon_blacklist = typecacheof(list(/obj/item/pda/heads, /obj/item/pda/ai, /obj/item/pda/ai/pai), only_root_path = TRUE) chameleon_action.initialize_disguises() -/obj/item/device/pda/chameleon/emp_act(severity) +/obj/item/pda/chameleon/emp_act(severity) chameleon_action.emp_randomise() -/obj/item/device/pda/chameleon/broken/Initialize() +/obj/item/pda/chameleon/broken/Initialize() . = ..() chameleon_action.emp_randomise(INFINITY) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 26c20d0082..b15109bcb1 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -20,7 +20,7 @@ var/active_sound = null var/toggle_cooldown = null var/cooldown = 0 - var/obj/item/device/flashlight/F = null + var/obj/item/flashlight/F = null var/can_flashlight = 0 var/scan_reagents = 0 //Can the wearer see reagents while it's equipped? @@ -28,7 +28,7 @@ var/list/user_vars_to_edit = list() //VARNAME = VARVALUE eg: "name" = "butts" var/list/user_vars_remembered = list() //Auto built by the above + dropped() + equipped() - var/obj/item/storage/internal/pocket/pockets = null + var/pocket_storage_component_path //These allow head/mask items to dynamically alter the user's hair // and facial hair, checking hair_extensions.dmi and facialhair_extensions.dmi @@ -37,17 +37,15 @@ var/dynamic_hair_suffix = ""//head > mask for head hair var/dynamic_fhair_suffix = ""//mask > head for facial hair -/obj/item/clothing/New() - ..() - if(ispath(pockets)) - pockets = new pockets(src) +/obj/item/clothing/Initialize() + . = ..() + if(ispath(pocket_storage_component_path)) + LoadComponent(pocket_storage_component_path) /obj/item/clothing/MouseDrop(atom/over_object) + . = ..() var/mob/M = usr - if(pockets && over_object == M) - return pockets.MouseDrop(over_object) - if(ismecha(M.loc)) // stops inventory actions in a mech return @@ -56,25 +54,6 @@ if(M.putItemFromInventoryInHandIfPossible(src, H.held_index)) add_fingerprint(usr) -/obj/item/clothing/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback) - if(pockets) - pockets.close_all() - return ..() - -/obj/item/clothing/attack_hand(mob/user) - if(pockets && pockets.priority && ismob(loc)) - //If we already have the pockets open, close them. - if (user.s_active == pockets) - pockets.close(user) - //Close whatever the user has open and show them the pockets. - else - if (user.s_active) - user.s_active.close(user) - pockets.orient2hud(user) - pockets.show_to(user) - else - return ..() - /obj/item/clothing/attackby(obj/item/W, mob/user, params) if(damaged_clothes && istype(W, /obj/item/stack/sheet/cloth)) var/obj/item/stack/sheet/cloth/C = W @@ -83,36 +62,12 @@ obj_integrity = max_integrity to_chat(user, "You fix the damage on [src] with [C].") return 1 - if(pockets) - var/i = pockets.attackby(W, user, params) - if(i) - return i return ..() -/obj/item/clothing/AltClick(mob/user) - if(istype(user) && user.canUseTopic(src, BE_CLOSE, ismonkey(user)) && pockets && pockets.quickdraw && pockets.contents.len) - var/obj/item/I = pockets.contents[1] - if(!I) - return - pockets.remove_from_storage(I, get_turf(src)) - - if(!user.put_in_hands(I)) - to_chat(user, "You fumble for [I] and it falls on the floor.") - return 1 - user.visible_message("[user] draws [I] from [src]!", "You draw [I] from [src].") - return 1 - else - return ..() - - /obj/item/clothing/Destroy() - if(pockets) - qdel(pockets) - pockets = null user_vars_remembered = null //Oh god somebody put REFERENCES in here? not to worry, we'll clean it up return ..() - /obj/item/clothing/dropped(mob/user) ..() if(!istype(user)) @@ -124,7 +79,6 @@ user.vars[variable] = user_vars_remembered[variable] user_vars_remembered = list() - /obj/item/clothing/equipped(mob/user, slot) ..() @@ -134,18 +88,18 @@ user_vars_remembered[variable] = user.vars[variable] user.vars[variable] = user_vars_to_edit[variable] - /obj/item/clothing/examine(mob/user) ..() if(damaged_clothes) to_chat(user, "It looks damaged!") + GET_COMPONENT(pockets, /datum/component/storage) if(pockets) var/list/how_cool_are_your_threads = list("") - if(pockets.priority) + if(pockets.attack_hand_interact) how_cool_are_your_threads += "[src]'s storage opens when clicked.\n" else how_cool_are_your_threads += "[src]'s storage opens when dragged to yourself.\n" - how_cool_are_your_threads += "[src] can store [pockets.storage_slots] item\s.\n" + how_cool_are_your_threads += "[src] can store [pockets.max_items] item\s.\n" how_cool_are_your_threads += "[src] can store items that are [weightclass2text(pockets.max_w_class)] or smaller.\n" if(pockets.quickdraw) how_cool_are_your_threads += "You can quickly remove an item from [src] using Alt-Click.\n" diff --git a/code/modules/clothing/glasses/engine_goggles.dm b/code/modules/clothing/glasses/engine_goggles.dm index 53616f4c6a..439197f285 100644 --- a/code/modules/clothing/glasses/engine_goggles.dm +++ b/code/modules/clothing/glasses/engine_goggles.dm @@ -4,6 +4,7 @@ #define MODE_MESON "meson" #define MODE_TRAY "t-ray" #define MODE_RAD "radiation" +#define MODE_SHUTTLE "shuttle" /obj/item/clothing/glasses/meson/engine name = "engineering scanner goggles" @@ -63,10 +64,13 @@ var/mob/living/carbon/human/user = loc if(user.glasses != src || !user.client) return - if(mode == MODE_TRAY) - t_ray_scan(user, 8, range) - else if(mode == MODE_RAD) - show_rads() + switch(mode) + if(MODE_TRAY) + t_ray_scan(user, 8, range) + if(MODE_RAD) + show_rads() + if(MODE_SHUTTLE) + show_shuttle() /obj/item/clothing/glasses/meson/engine/proc/show_rads() var/mob/living/carbon/human/user = loc @@ -93,6 +97,24 @@ pic.appearance = MA flick_overlay(pic, list(user.client), 8) +/obj/item/clothing/glasses/meson/engine/proc/show_shuttle() + var/mob/living/carbon/human/user = loc + var/obj/docking_port/mobile/port = SSshuttle.get_containing_shuttle(user) + if(!port) + return + var/list/shuttle_areas = port.shuttle_areas + for(var/r in shuttle_areas) + var/area/region = r + for(var/turf/place in region.contents) + if(get_dist(user, place) > 7) + continue + var/image/pic + if(isshuttleturf(place)) + pic = new('icons/turf/overlays.dmi', place, "greenOverlay", AREA_LAYER) + else + pic = new('icons/turf/overlays.dmi', place, "redOverlay", AREA_LAYER) + flick_overlay(pic, list(user.client), 8) + /obj/item/clothing/glasses/meson/engine/update_icon() icon_state = "trayson-[mode]" update_mob() @@ -115,7 +137,16 @@ modes = list(MODE_NONE = MODE_TRAY, MODE_TRAY = MODE_NONE) +/obj/item/clothing/glasses/meson/engine/shuttle + name = "shuttle region scanner" + icon_state = "trayson-shuttle" + item_state = "trayson-shuttle" + desc = "Used to see the boundaries of shuttle regions." + + modes = list(MODE_NONE = MODE_SHUTTLE, MODE_SHUTTLE = MODE_NONE) + #undef MODE_NONE #undef MODE_MESON #undef MODE_TRAY #undef MODE_RAD +#undef MODE_SHUTTLE diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index b231ac9df6..2e9b7f83f2 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -22,7 +22,7 @@ /obj/item/clothing/head/helmet/sec/attackby(obj/item/I, mob/user, params) if(issignaler(I)) - var/obj/item/device/assembly/signaler/S = I + var/obj/item/assembly/signaler/S = I if(F) //Has a flashlight. Player must remove it, else it will be lost forever. to_chat(user, "The mounted flashlight is in the way, remove it first!") return @@ -260,8 +260,8 @@ ..() /obj/item/clothing/head/helmet/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/device/flashlight/seclite)) - var/obj/item/device/flashlight/seclite/S = I + if(istype(I, /obj/item/flashlight/seclite)) + var/obj/item/flashlight/seclite/S = I if(can_flashlight) if(!F) if(!user.transferItemToLoc(S, src)) @@ -280,7 +280,7 @@ if(istype(I, /obj/item/screwdriver)) if(F) - for(var/obj/item/device/flashlight/seclite/S in src) + for(var/obj/item/flashlight/seclite/S in src) to_chat(user, "You unscrew the seclite from [src].") F = null S.forceMove(user.drop_location()) diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index 37e392b7d8..613b40d19b 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -79,9 +79,13 @@ desc = "There's only one man who can sniff out the dirty stench of crime, and he's likely wearing this hat." icon_state = "detective" var/candy_cooldown = 0 - pockets = /obj/item/storage/internal/pocket/small/detective + pocket_storage_component_path = /datum/component/storage/concrete/pockets/small/detective dog_fashion = /datum/dog_fashion/head/detective +/obj/item/clothing/head/fedora/Initialize() + . = ..() + new /obj/item/reagent_containers/food/drinks/flask/det(src) + /obj/item/clothing/head/fedora/det_hat/examine(mob/user) ..() to_chat(user, "Alt-click to take a candy corn.") diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 0e4acfe983..74d8a43347 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -187,7 +187,7 @@ item_state = "fedora" armor = list("melee" = 25, "bullet" = 5, "laser" = 25, "energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 50) desc = "A really cool hat if you're a mobster. A really lame hat if you're not." - pockets = /obj/item/storage/internal/pocket/small + pocket_storage_component_path = /datum/component/storage/concrete/pockets/small /obj/item/clothing/head/fedora/suicide_act(mob/user) if(user.gender == FEMALE) diff --git a/code/modules/clothing/outfits/ert.dm b/code/modules/clothing/outfits/ert.dm index 97d4632130..c6d657b271 100644 --- a/code/modules/clothing/outfits/ert.dm +++ b/code/modules/clothing/outfits/ert.dm @@ -4,7 +4,7 @@ uniform = /obj/item/clothing/under/rank/centcom_officer shoes = /obj/item/clothing/shoes/combat/swat gloves = /obj/item/clothing/gloves/combat - ears = /obj/item/device/radio/headset/headset_cent/alt + ears = /obj/item/radio/headset/headset_cent/alt /datum/outfit/ert/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) if(visualsOnly) @@ -13,7 +13,7 @@ var/obj/item/implant/mindshield/L = new/obj/item/implant/mindshield(H) L.implant(H, null, 1) - var/obj/item/device/radio/R = H.ears + var/obj/item/radio/R = H.ears R.set_frequency(FREQ_CENTCOM) R.freqlock = TRUE @@ -40,8 +40,8 @@ if(visualsOnly) return - var/obj/item/device/radio/R = H.ears - R.keyslot = new /obj/item/device/encryptionkey/heads/captain + var/obj/item/radio/R = H.ears + R.keyslot = new /obj/item/encryptionkey/heads/captain R.recalculateChannels() /datum/outfit/ert/commander/alert @@ -74,8 +74,8 @@ if(visualsOnly) return - var/obj/item/device/radio/R = H.ears - R.keyslot = new /obj/item/device/encryptionkey/heads/hos + var/obj/item/radio/R = H.ears + R.keyslot = new /obj/item/encryptionkey/heads/hos R.recalculateChannels() /datum/outfit/ert/security/alert @@ -110,8 +110,8 @@ if(visualsOnly) return - var/obj/item/device/radio/R = H.ears - R.keyslot = new /obj/item/device/encryptionkey/heads/cmo + var/obj/item/radio/R = H.ears + R.keyslot = new /obj/item/encryptionkey/heads/cmo R.recalculateChannels() /datum/outfit/ert/medic/alert @@ -146,8 +146,8 @@ if(visualsOnly) return - var/obj/item/device/radio/R = H.ears - R.keyslot = new /obj/item/device/encryptionkey/heads/ce + var/obj/item/radio/R = H.ears + R.keyslot = new /obj/item/encryptionkey/heads/ce R.recalculateChannels() /datum/outfit/ert/engineer/alert @@ -166,12 +166,12 @@ uniform = /obj/item/clothing/under/rank/centcom_officer shoes = /obj/item/clothing/shoes/sneakers/black gloves = /obj/item/clothing/gloves/color/black - ears = /obj/item/device/radio/headset/headset_cent + ears = /obj/item/radio/headset/headset_cent glasses = /obj/item/clothing/glasses/sunglasses belt = /obj/item/gun/energy/e_gun l_pocket = /obj/item/pen back = /obj/item/storage/backpack/satchel - r_pocket = /obj/item/device/pda/heads + r_pocket = /obj/item/pda/heads l_hand = /obj/item/clipboard id = /obj/item/card/id @@ -179,7 +179,7 @@ if(visualsOnly) return - var/obj/item/device/pda/heads/pda = H.r_store + var/obj/item/pda/heads/pda = H.r_store pda.owner = H.real_name pda.ownjob = "CentCom Official" pda.update_label() @@ -231,8 +231,8 @@ if(visualsOnly) return - var/obj/item/device/radio/R = H.ears - R.keyslot = new /obj/item/device/encryptionkey/heads/hop + var/obj/item/radio/R = H.ears + R.keyslot = new /obj/item/encryptionkey/heads/hop R.recalculateChannels() /datum/outfit/ert/chaplain diff --git a/code/modules/clothing/outfits/event.dm b/code/modules/clothing/outfits/event.dm index 72edf7a358..37a06046b5 100644 --- a/code/modules/clothing/outfits/event.dm +++ b/code/modules/clothing/outfits/event.dm @@ -7,7 +7,7 @@ head = /obj/item/clothing/head/santa back = /obj/item/storage/backpack/santabag mask = /obj/item/clothing/mask/breath - r_pocket = /obj/item/device/flashlight + r_pocket = /obj/item/flashlight gloves = /obj/item/clothing/gloves/color/red belt = /obj/item/tank/internals/emergency_oxygen/double id = /obj/item/card/id/gold @@ -26,6 +26,5 @@ var/obj/item/storage/backpack/bag = H.back var/obj/item/a_gift/gift = new(H) - while(bag.can_be_inserted(gift, 1)) - bag.handle_item_insertion(gift, 1) + while(bag.SendSignal(COMSIG_TRY_STORAGE_INSERT, gift, null, TRUE, FALSE)) gift = new(H) diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm index 050c2fdc87..6375f7986f 100644 --- a/code/modules/clothing/outfits/standard.dm +++ b/code/modules/clothing/outfits/standard.dm @@ -62,7 +62,7 @@ shoes = /obj/item/clothing/shoes/sneakers/red head = /obj/item/clothing/head/helmet/redtaghelm gloves = /obj/item/clothing/gloves/color/red - ears = /obj/item/device/radio/headset + ears = /obj/item/radio/headset suit = /obj/item/clothing/suit/redtag back = /obj/item/storage/backpack suit_store = /obj/item/gun/energy/laser/redtag @@ -91,7 +91,7 @@ head = /obj/item/clothing/head/helmet/space/pirate/bandana mask = /obj/item/clothing/mask/breath suit_store = /obj/item/tank/internals/oxygen - ears = /obj/item/device/radio/headset/syndicate + ears = /obj/item/radio/headset/syndicate id = /obj/item/card/id /datum/outfit/pirate/space/captain @@ -100,7 +100,7 @@ /datum/outfit/pirate/post_equip(mob/living/carbon/human/H) H.faction |= "pirate" - var/obj/item/device/radio/R = H.ears + var/obj/item/radio/R = H.ears if(R) R.set_frequency(FREQ_SYNDICATE) R.freqlock = TRUE @@ -117,7 +117,7 @@ shoes = /obj/item/clothing/shoes/clown_shoes gloves = /obj/item/clothing/gloves/color/black mask = /obj/item/clothing/mask/gas/clown_hat - ears = /obj/item/device/radio/headset + ears = /obj/item/radio/headset glasses = /obj/item/clothing/glasses/thermal/monocle suit = /obj/item/clothing/suit/hooded/chaplain_hoodie l_pocket = /obj/item/reagent_containers/food/snacks/grown/banana @@ -143,7 +143,7 @@ gloves = /obj/item/clothing/gloves/color/latex mask = /obj/item/clothing/mask/surgical head = /obj/item/clothing/head/welding - ears = /obj/item/device/radio/headset + ears = /obj/item/radio/headset glasses = /obj/item/clothing/glasses/thermal/monocle suit = /obj/item/clothing/suit/apron l_pocket = /obj/item/kitchen/knife @@ -163,12 +163,12 @@ uniform = /obj/item/clothing/under/suit_jacket shoes = /obj/item/clothing/shoes/sneakers/black gloves = /obj/item/clothing/gloves/color/black - ears = /obj/item/device/radio/headset + ears = /obj/item/radio/headset glasses = /obj/item/clothing/glasses/sunglasses l_pocket = /obj/item/melee/transforming/energy/sword/saber l_hand = /obj/item/storage/secure/briefcase id = /obj/item/card/id/syndicate - belt = /obj/item/device/pda/heads + belt = /obj/item/pda/heads /datum/outfit/assassin/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) var/obj/item/clothing/under/U = H.w_uniform @@ -182,13 +182,13 @@ for(var/obj/item/briefcase_item in sec_briefcase) qdel(briefcase_item) for(var/i = 3 to 0 step -1) - sec_briefcase.handle_item_insertion(new /obj/item/stack/spacecash/c1000,1) - sec_briefcase.handle_item_insertion(new /obj/item/gun/energy/kinetic_accelerator/crossbow,1) - sec_briefcase.handle_item_insertion(new /obj/item/gun/ballistic/revolver/mateba,1) - sec_briefcase.handle_item_insertion(new /obj/item/ammo_box/a357,1) - sec_briefcase.handle_item_insertion(new /obj/item/grenade/plastic/x4,1) + sec_briefcase.SendSignal(COMSIG_TRY_STORAGE_INSERT, new /obj/item/stack/spacecash/c1000, null, TRUE, TRUE) + sec_briefcase.SendSignal(COMSIG_TRY_STORAGE_INSERT, new /obj/item/gun/energy/kinetic_accelerator/crossbow, null, TRUE, TRUE) + sec_briefcase.SendSignal(COMSIG_TRY_STORAGE_INSERT, new /obj/item/gun/ballistic/revolver/mateba, null, TRUE, TRUE) + sec_briefcase.SendSignal(COMSIG_TRY_STORAGE_INSERT, new /obj/item/ammo_box/a357, null, TRUE, TRUE) + sec_briefcase.SendSignal(COMSIG_TRY_STORAGE_INSERT, new /obj/item/grenade/plastic/x4, null, TRUE, TRUE) - var/obj/item/device/pda/heads/pda = H.belt + var/obj/item/pda/heads/pda = H.belt pda.owner = H.real_name pda.ownjob = "Reaper" pda.update_label() @@ -206,7 +206,7 @@ suit = /obj/item/clothing/suit/armor/bulletproof shoes = /obj/item/clothing/shoes/combat/swat gloves = /obj/item/clothing/gloves/combat - ears = /obj/item/device/radio/headset/headset_cent/commander + ears = /obj/item/radio/headset/headset_cent/commander glasses = /obj/item/clothing/glasses/eyepatch mask = /obj/item/clothing/mask/cigarette/cigar/cohiba head = /obj/item/clothing/head/centhat @@ -236,7 +236,7 @@ shoes = /obj/item/clothing/shoes/combat/swat gloves = /obj/item/clothing/gloves/combat glasses = /obj/item/clothing/glasses/thermal/eyepatch - ears = /obj/item/device/radio/headset/headset_cent/commander + ears = /obj/item/radio/headset/headset_cent/commander mask = /obj/item/clothing/mask/cigarette/cigar/havana head = /obj/item/clothing/head/helmet/space/beret belt = /obj/item/gun/energy/pulse/pistol/m1911 @@ -256,7 +256,7 @@ W.registered_name = H.real_name W.update_label() - var/obj/item/device/radio/headset/R = H.ears + var/obj/item/radio/headset/R = H.ears R.set_frequency(FREQ_CENTCOM) R.freqlock = TRUE @@ -275,7 +275,7 @@ uniform = /obj/item/clothing/under/color/lightpurple suit = /obj/item/clothing/suit/wizrobe shoes = /obj/item/clothing/shoes/sandal/magic - ears = /obj/item/device/radio/headset + ears = /obj/item/radio/headset head = /obj/item/clothing/head/wizard r_pocket = /obj/item/teleportation_scroll r_hand = /obj/item/spellbook @@ -317,7 +317,7 @@ head = /obj/item/clothing/head/pirate/captain shoes = /obj/item/clothing/shoes/combat gloves = /obj/item/clothing/gloves/combat - ears = /obj/item/device/radio/headset/headset_cent + ears = /obj/item/radio/headset/headset_cent glasses = /obj/item/clothing/glasses/thermal/eyepatch suit = /obj/item/clothing/suit/pirate/captain back = /obj/item/storage/backpack/satchel/leather @@ -344,7 +344,7 @@ head = /obj/item/clothing/head/fedora shoes = /obj/item/clothing/shoes/laceup gloves = /obj/item/clothing/gloves/color/black - ears = /obj/item/device/radio/headset + ears = /obj/item/radio/headset glasses = /obj/item/clothing/glasses/sunglasses r_hand = /obj/item/gun/ballistic/automatic/tommygun id = /obj/item/card/id @@ -382,20 +382,20 @@ belt = /obj/item/gun/ballistic/revolver/mateba r_hand = /obj/item/gun/energy/pulse/loyalpin id = /obj/item/card/id - ears = /obj/item/device/radio/headset/headset_cent/alt + ears = /obj/item/radio/headset/headset_cent/alt backpack_contents = list(/obj/item/storage/box=1,\ /obj/item/ammo_box/a357=1,\ /obj/item/storage/firstaid/regular=1,\ /obj/item/storage/box/flashbangs=1,\ - /obj/item/device/flashlight=1,\ + /obj/item/flashlight=1,\ /obj/item/grenade/plastic/x4=1) /datum/outfit/death_commando/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) if(visualsOnly) return - var/obj/item/device/radio/R = H.ears + var/obj/item/radio/R = H.ears R.set_frequency(FREQ_CENTCOM) R.freqlock = TRUE diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index d5e75d4bad..3dad0d464e 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -17,7 +17,7 @@ strip_delay = 70 resistance_flags = NONE permeability_coefficient = 0.05 //Thick soles, and covers the ankle - pockets = /obj/item/storage/internal/pocket/shoes + pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes /obj/item/clothing/shoes/combat/swat //overpowered boots for death squads name = "\improper SWAT boots" @@ -73,7 +73,7 @@ item_state = "clown_shoes" slowdown = SHOES_SLOWDOWN+1 item_color = "clown" - pockets = /obj/item/storage/internal/pocket/shoes/clown + pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes/clown /obj/item/clothing/shoes/clown_shoes/Initialize() . = ..() @@ -106,7 +106,7 @@ equip_delay_other = 50 resistance_flags = NONE permeability_coefficient = 0.05 //Thick soles, and covers the ankle - pockets = /obj/item/storage/internal/pocket/shoes + pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes /obj/item/clothing/shoes/jackboots/fast slowdown = -1 @@ -121,7 +121,7 @@ min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT heat_protection = FEET|LEGS max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT - pockets = /obj/item/storage/internal/pocket/shoes + pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes /obj/item/clothing/shoes/workboots name = "work boots" @@ -133,7 +133,7 @@ permeability_coefficient = 0.15 strip_delay = 40 equip_delay_other = 40 - pockets = /obj/item/storage/internal/pocket/shoes + pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes /obj/item/clothing/shoes/workboots/mining name = "mining boots" @@ -184,7 +184,7 @@ desc = "A pair of costume boots fashioned after bird talons." icon_state = "griffinboots" item_state = "griffinboots" - pockets = /obj/item/storage/internal/pocket/shoes + pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes /obj/item/clothing/shoes/bhop name = "jump boots" @@ -193,7 +193,7 @@ item_state = "jetboots" item_color = "hosred" resistance_flags = FIRE_PROOF - pockets = /obj/item/storage/internal/pocket/shoes + pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes actions_types = list(/datum/action/item_action/bhop) permeability_coefficient = 0.05 var/jumpdistance = 5 //-1 from to see the actual distance, e.g 4 goes over 3 tiles diff --git a/code/modules/clothing/spacesuits/_spacesuits.dm b/code/modules/clothing/spacesuits/_spacesuits.dm index a2cd5bce75..8630d9a3bc 100644 --- a/code/modules/clothing/spacesuits/_spacesuits.dm +++ b/code/modules/clothing/spacesuits/_spacesuits.dm @@ -32,7 +32,7 @@ permeability_coefficient = 0.02 flags_1 = STOPSPRESSUREDMAGE_1 | THICKMATERIAL_1 body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals) slowdown = 1 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 50, "fire" = 80, "acid" = 70) flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT diff --git a/code/modules/clothing/spacesuits/flightsuit.dm b/code/modules/clothing/spacesuits/flightsuit.dm index adff70bd29..01a95506b4 100644 --- a/code/modules/clothing/spacesuits/flightsuit.dm +++ b/code/modules/clothing/spacesuits/flightsuit.dm @@ -13,9 +13,10 @@ //Also, I should probably add in some kind of limiting mechanic but I really don't like having to refill this all the time, expecially as it will be NODROP_1. //Apparently due to code limitations you have to detect mob movement with.. shoes. //The object that handles the flying itself - FLIGHT PACK -------------------------------------------------------------------------------------- -/obj/item/device/flightpack +/obj/item/flightpack name = "flight pack" desc = "An advanced back-worn system that has dual ion engines powerful enough to grant a humanoid flight. Contains an internal self-recharging high-current capacitor for short, powerful boosts." + icon = 'icons/obj/device.dmi' icon_state = FLIGHTPACK_SPRITE_BASE item_state = FLIGHTPACK_SPRITE_BASE actions_types = list(/datum/action/item_action/flightpack/toggle_flight, /datum/action/item_action/flightpack/engage_boosters, /datum/action/item_action/flightpack/toggle_stabilizers, /datum/action/item_action/flightpack/change_power, /datum/action/item_action/flightpack/toggle_airbrake) @@ -99,7 +100,7 @@ var/afterForceMove = FALSE var/datum/component/mobhook -/obj/item/device/flightpack/proc/changeWearer(mob/changeto) +/obj/item/flightpack/proc/changeWearer(mob/changeto) if(wearer) LAZYREMOVE(wearer.user_movement_hooks, src) wearer = null @@ -111,7 +112,7 @@ cached_pull = changeto.pulling mobhook = changeto.AddComponent(/datum/component/redirect, list(COMSIG_MOVABLE_MOVED), CALLBACK(src, .proc/on_mob_move, changeto)) -/obj/item/device/flightpack/Initialize() +/obj/item/flightpack/Initialize() ion_trail = new ion_trail.set_up(src) START_PROCESSING(SSflightpacks, src) @@ -120,7 +121,7 @@ update_icon() ..() -/obj/item/device/flightpack/full/Initialize() +/obj/item/flightpack/full/Initialize() part_manip = new /obj/item/stock_parts/manipulator/pico(src) part_scan = new /obj/item/stock_parts/scanning_module/phasic(src) part_cap = new /obj/item/stock_parts/capacitor/super(src) @@ -128,7 +129,7 @@ part_bin = new /obj/item/stock_parts/matter_bin/super(src) ..() -/obj/item/device/flightpack/proc/usermessage(message, span = "boldnotice", mob/mob_override = null) +/obj/item/flightpack/proc/usermessage(message, span = "boldnotice", mob/mob_override = null) var/mob/targ = wearer if(ismob(loc)) targ = loc @@ -138,7 +139,7 @@ return to_chat(targ, "[icon2html(src, targ)]|[message]") -/obj/item/device/flightpack/proc/sync_processing(datum/controller/subsystem/processing/flightpacks/FPS) +/obj/item/flightpack/proc/sync_processing(datum/controller/subsystem/processing/flightpacks/FPS) processing_mode = FPS.flightsuit_processing if(processing_mode == FLIGHTSUIT_PROCESSING_NONE) momentum_x = 0 @@ -150,7 +151,7 @@ boost = FALSE update_slowdown() -/obj/item/device/flightpack/proc/update_parts() +/obj/item/flightpack/proc/update_parts() boost_chargerate = initial(boost_chargerate) boost_drain = initial(boost_drain) powersetting_high = initial(powersetting_high) @@ -172,7 +173,7 @@ stabilizer_decay_amount = scan*3.5 airbrake_decay_amount = manip*8 -/obj/item/device/flightpack/Destroy() +/obj/item/flightpack/Destroy() if(suit) delink_suit() changeWearer() @@ -187,7 +188,7 @@ STOP_PROCESSING(SSflightpacks, src) . = ..() -/obj/item/device/flightpack/emp_act(severity) +/obj/item/flightpack/emp_act(severity) var/damage = severity == 1 ? emp_strong_damage : emp_weak_damage if(emp_damage <= (emp_disable_threshold * 1.5)) emp_damage += damage @@ -195,7 +196,7 @@ return ..() //Proc to change amount of momentum the wearer has, or dampen all momentum by a certain amount. -/obj/item/device/flightpack/proc/adjust_momentum(amountx, amounty, reduce_amount_total = 0) +/obj/item/flightpack/proc/adjust_momentum(amountx, amounty, reduce_amount_total = 0) if(reduce_amount_total != 0) if(momentum_x > 0) momentum_x = CLAMP(momentum_x - reduce_amount_total, 0, momentum_max) @@ -210,7 +211,7 @@ calculate_momentum_speed() //The wearer has momentum left. Move them and take some away, while negating the momentum that moving the wearer would gain. Or force the wearer to lose control if they are incapacitated. -/obj/item/device/flightpack/proc/momentum_drift() +/obj/item/flightpack/proc/momentum_drift() if(!flight || !wearer || (momentum_speed == 0)) return FALSE else if(!wearer.canmove) @@ -235,7 +236,7 @@ if(prob(emp_damage * 15)) step(wearer, pick(GLOB.alldirs)) -/obj/item/device/flightpack/proc/on_mob_move(mob/mob, turf/oldLoc, dir, forced) +/obj/item/flightpack/proc/on_mob_move(mob/mob, turf/oldLoc, dir, forced) if(forced) if(cached_pull && istype(oldLoc) && (get_dist(oldLoc, loc) <= 1) && !oldLoc.density) cached_pull.forceMove(oldLoc) @@ -254,7 +255,7 @@ if(flight) ion_trail.generate_effect() -/obj/item/device/flightpack/intercept_user_move(dir, mob, newLoc, oldLoc) +/obj/item/flightpack/intercept_user_move(dir, mob, newLoc, oldLoc) if(!flight) return var/momentum_increment = momentum_gain @@ -275,7 +276,7 @@ adjust_momentum(-momentum_increment, 0) //Make the wearer lose some momentum. -/obj/item/device/flightpack/proc/momentum_decay() +/obj/item/flightpack/proc/momentum_decay() var/amt = momentum_passive_loss brake? (amt += airbrake_decay_amount) : 0 gravity? (amt += gravity_decay_amount) : 0 @@ -284,7 +285,7 @@ adjust_momentum(0, 0, amt) //Check for gravity, air pressure, and whether this is still linked to a suit. Also, resync the flightpack/flight suit every minute. -/obj/item/device/flightpack/proc/check_conditions() +/obj/item/flightpack/proc/check_conditions() if(flight && (!assembled || !wearer || (!suit && requires_suit))) disable_flight(TRUE) var/turf/T = get_turf(src) @@ -302,7 +303,7 @@ usermessage("Warning: Sensor data is not being recieved from flight shoes. Stabilizers and airbrake modules deactivated!", "boldwarning") -/obj/item/device/flightpack/process() +/obj/item/flightpack/process() if(processing_mode == FLIGHTSUIT_PROCESSING_NONE) return FALSE check_conditions() @@ -311,10 +312,10 @@ handle_boost() handle_damage() -/obj/item/device/flightpack/proc/update_slowdown() +/obj/item/flightpack/proc/update_slowdown() flight? (slowdown = slowdown_air) : (slowdown = slowdown_ground) -/obj/item/device/flightpack/proc/handle_damage() +/obj/item/flightpack/proc/handle_damage() if(emp_damage) emp_damage = CLAMP(emp_damage-emp_heal_amount, 0, emp_disable_threshold * 10) if(emp_damage >= emp_disable_threshold) @@ -332,7 +333,7 @@ if(flight) disable_flight(TRUE) -/obj/item/device/flightpack/update_icon() +/obj/item/flightpack/update_icon() if(!flight) icon_state = "[FLIGHTPACK_SPRITE_BASE][FLIGHTPACK_SPRITE_OFF_APPEND]" item_state = "[FLIGHTPACK_SPRITE_BASE][FLIGHTPACK_SPRITE_OFF_APPEND]" @@ -347,7 +348,7 @@ wearer.update_inv_wear_suit() wearer.update_inv_back() -/obj/item/device/flightpack/proc/handle_boost() +/obj/item/flightpack/proc/handle_boost() if(boost) boost_charge = CLAMP(boost_charge-boost_drain, 0, boost_maxcharge) if(boost_charge < 1) @@ -355,13 +356,13 @@ if(boost_charge < boost_maxcharge) boost_charge = CLAMP(boost_charge+boost_chargerate, 0, boost_maxcharge) -/obj/item/device/flightpack/proc/cycle_power() +/obj/item/flightpack/proc/cycle_power() powersetting < powersetting_high? (powersetting++) : (powersetting = 1) momentum_gain = powersetting * 10 usermessage("Engine output set to [momentum_gain].") momentum_drift_coeff = ((momentum_gain)*(drift_tolerance*1.1))/momentum_max -/obj/item/device/flightpack/proc/crash_damage(density, anchored, speed, victim_name) +/obj/item/flightpack/proc/crash_damage(density, anchored, speed, victim_name) var/crashmessagesrc = "[wearer] violently crashes into [victim_name], " var/userdamage = 10 - stabilizer * 3 - part_bin.rating - part_scan.rating * part_manip.rating + anchored * 2 + boost * 2 + speed * 2 if(userdamage > 0) @@ -371,13 +372,13 @@ crashmessagesrc += "but luckily [wearer]'s impact was absorbed by their suit's stabilizers!" wearer.visible_message(crashmessagesrc) -/obj/item/device/flightpack/proc/userknockback(density, anchored, speed, dir) +/obj/item/flightpack/proc/userknockback(density, anchored, speed, dir) dir = turn(dir, 180) var/turf/target = get_edge_target_turf(get_turf(wearer), dir) wearer.visible_message("[wearer] is knocked flying by the impact!") wearer.throw_at(target, speed * 2 + density * 2 + anchored * 2, 2, wearer) -/obj/item/device/flightpack/proc/flight_impact(atom/impacted_atom, crashdir) //Yes, victim. +/obj/item/flightpack/proc/flight_impact(atom/impacted_atom, crashdir) //Yes, victim. if(!flight || (impacted_atom == wearer) || crashing || (processing_mode == FLIGHTSUIT_PROCESSING_NONE)) return FALSE crashing = TRUE @@ -421,19 +422,19 @@ losecontrol(knockdown = FALSE, move = FALSE) crashing = FALSE -/obj/item/device/flightpack/proc/door_pass(obj/structure/mineral_door/door) +/obj/item/flightpack/proc/door_pass(obj/structure/mineral_door/door) INVOKE_ASYNC(door, /obj/structure/mineral_door.proc/Open) var/turf/T = get_turf(door) wearer.forceMove(T) wearer.visible_message("[wearer] rolls to their sides and slips past [door]!") -/obj/item/device/flightpack/proc/crash_grille(obj/structure/grille/target) +/obj/item/flightpack/proc/crash_grille(obj/structure/grille/target) target.hitby(wearer) target.take_damage(60, BRUTE, "melee", 1) if(wearer.Move(target.loc)) wearer.visible_message("[wearer] smashes straight past [target]!") -/obj/item/device/flightpack/proc/airlock_pass(obj/machinery/door/A) +/obj/item/flightpack/proc/airlock_pass(obj/machinery/door/A) var/nopass = FALSE if(!A.density) return TRUE @@ -450,7 +451,7 @@ wearer.forceMove(target) return !nopass -/obj/item/device/flightpack/proc/atom_impact(atom/movable/victim, power, direction) +/obj/item/flightpack/proc/atom_impact(atom/movable/victim, power, direction) if(!victim) return FALSE if(!victim.anchored) @@ -466,7 +467,7 @@ var/obj/O = victim O.take_damage(power * 14) -/obj/item/device/flightpack/proc/losecontrol(knockdown = FALSE, move = TRUE) +/obj/item/flightpack/proc/losecontrol(knockdown = FALSE, move = TRUE) usermessage("Warning: Control system not responding. Deactivating!", "boldwarning") if(wearer) wearer.visible_message("[wearer]'s flight suit abruptly shuts off and they lose control!") @@ -485,7 +486,7 @@ if(flight) disable_flight(FALSE) -/obj/item/device/flightpack/proc/enable_flight(forced = FALSE) +/obj/item/flightpack/proc/enable_flight(forced = FALSE) if(!forced) if(disabled) usermessage("Internal systems recalibrating. Unable to safely proceed.", "boldwarning") @@ -505,7 +506,7 @@ update_icon() ion_trail.start() -/obj/item/device/flightpack/proc/disable_flight(forced = FALSE) +/obj/item/flightpack/proc/disable_flight(forced = FALSE) if(forced) losecontrol(knockdown = TRUE) return TRUE @@ -536,23 +537,23 @@ addtimer(CALLBACK(src, .proc/enable_safe), 50) return FALSE -/obj/item/device/flightpack/proc/enable_safe() +/obj/item/flightpack/proc/enable_safe() if(override_safe) override_safe = FALSE -/obj/item/device/flightpack/dropped(mob/wearer) +/obj/item/flightpack/dropped(mob/wearer) changeWearer() ..() -/obj/item/device/flightpack/item_action_slot_check(slot) +/obj/item/flightpack/item_action_slot_check(slot) if(slot == SLOT_BACK) return TRUE -/obj/item/device/flightpack/equipped(mob/user, slot) +/obj/item/flightpack/equipped(mob/user, slot) changeWearer(user) ..() -/obj/item/device/flightpack/proc/calculate_momentum_speed() +/obj/item/flightpack/proc/calculate_momentum_speed() if(abs(momentum_x) >= (momentum_crash_coeff*momentum_max)) //Calculate X momentum_speed_x = 3 else if(abs(momentum_x) >= (momentum_impact_coeff*momentum_max)) @@ -571,10 +572,10 @@ momentum_speed_y = 0 momentum_speed = max(momentum_speed_x, momentum_speed_y) -/obj/item/device/flightpack/item_action_slot_check(slot) +/obj/item/flightpack/item_action_slot_check(slot) return slot == slot_back -/obj/item/device/flightpack/proc/enable_stabilizers() +/obj/item/flightpack/proc/enable_stabilizers() if(requires_suit && suit && !suit.deployedshoes) usermessage("Stabilizers requires flight shoes to be attached and deployed!", "boldwarning") return FALSE @@ -582,14 +583,14 @@ stabilizer = TRUE return TRUE -/obj/item/device/flightpack/proc/disable_stabilizers() +/obj/item/flightpack/proc/disable_stabilizers() if(wearer) if(brake) disable_airbrake() usermessage("Deactivating stabilization controllers!", "boldwarning") stabilizer = FALSE -/obj/item/device/flightpack/proc/activate_booster() +/obj/item/flightpack/proc/activate_booster() if(!flight) usermessage("Error: Engines offline!", "boldwarning") return FALSE @@ -601,13 +602,13 @@ update_slowdown() update_icon() -/obj/item/device/flightpack/proc/deactivate_booster() +/obj/item/flightpack/proc/deactivate_booster() usermessage("Boosters disengaged!") boost = FALSE update_slowdown() update_icon() -/obj/item/device/flightpack/proc/enable_airbrake() +/obj/item/flightpack/proc/enable_airbrake() if(wearer) if(!stabilizer && !enable_stabilizers()) usermessage("Airbrake deployment: Stabilizer Errored.", "boldwarning") @@ -616,13 +617,13 @@ brake = TRUE update_slowdown() -/obj/item/device/flightpack/proc/disable_airbrake() +/obj/item/flightpack/proc/disable_airbrake() if(wearer) usermessage("Airbrakes retracted!", "boldwarning") brake = FALSE update_slowdown() -/obj/item/device/flightpack/proc/relink_suit(obj/item/clothing/suit/space/hardsuit/flightsuit/F) +/obj/item/flightpack/proc/relink_suit(obj/item/clothing/suit/space/hardsuit/flightsuit/F) if(suit && suit == F) return FALSE else @@ -633,13 +634,13 @@ else suit = null -/obj/item/device/flightpack/proc/delink_suit() +/obj/item/flightpack/proc/delink_suit() if(suit) if(suit.pack && suit.pack == src) suit.pack = null suit = null -/obj/item/device/flightpack/attackby(obj/item/I, mob/user, params) +/obj/item/flightpack/attackby(obj/item/I, mob/user, params) var/const/SuccessMessage = " has been successfully installed into systems." var/changed = FALSE if(istype(I, /obj/item/stock_parts)) @@ -689,13 +690,13 @@ return /mob/living/carbon/get_flightpack() - var/obj/item/device/flightpack/F = back + var/obj/item/flightpack/F = back if(istype(F)) return F else return FALSE -/obj/item/device/flightpack/proc/allow_thrust(amount) +/obj/item/flightpack/proc/allow_thrust(amount) if(flight) return TRUE @@ -707,7 +708,7 @@ icon_state = "flightshoes" item_state = "flightshoes_mob" var/obj/item/clothing/suit/space/hardsuit/flightsuit/suit = null - var/obj/item/device/flightpack/pack = null + var/obj/item/flightpack/pack = null var/mob/living/carbon/human/wearer = null var/active = FALSE permeability_coefficient = 0.01 @@ -764,7 +765,7 @@ armor = list("melee" = 20, "bullet" = 20, "laser" = 20, "energy" = 10, "bomb" = 30, "bio" = 100, "rad" = 75, "fire" = 100, "acid" = 100) max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT var/locked_strip_delay = 80 - var/obj/item/device/flightpack/pack = null + var/obj/item/flightpack/pack = null var/obj/item/clothing/shoes/flightshoes/shoes = null var/mob/living/carbon/human/user = null var/deployedpack = FALSE @@ -823,13 +824,13 @@ if(shoes) shoes.relink_suit(src) -/obj/item/clothing/suit/space/hardsuit/flightsuit/attack_hand(mob/user) +/obj/item/clothing/suit/space/hardsuit/flightsuit/allow_attack_hand_drop(user) if(ishuman(user)) var/mob/living/carbon/human/H = user if(src == H.wear_suit && locked) usermessage("You can not take a locked hardsuit off! Unlock it first!", "boldwarning") - return - ..() + return FALSE + return ..() /obj/item/clothing/suit/space/hardsuit/flightsuit/dropped() if(deployedpack) @@ -950,7 +951,7 @@ /obj/item/clothing/suit/space/hardsuit/flightsuit/proc/makepack() if(!pack) - pack = new /obj/item/device/flightpack/full(src) + pack = new /obj/item/flightpack/full(src) pack.relink_suit(src) /obj/item/clothing/suit/space/hardsuit/flightsuit/proc/makeshoes() @@ -977,7 +978,7 @@ pack = null usermessage("You detach the flightpack.") -/obj/item/clothing/suit/space/hardsuit/flightsuit/proc/attach_pack(obj/item/device/flightpack/F) +/obj/item/clothing/suit/space/hardsuit/flightsuit/proc/attach_pack(obj/item/flightpack/F) F.forceMove(src) pack = F pack.relink_suit(src) @@ -1037,8 +1038,8 @@ return FALSE detach_shoes() return TRUE - else if(istype(I, /obj/item/device/flightpack)) - var/obj/item/device/flightpack/F = I + else if(istype(I, /obj/item/flightpack)) + var/obj/item/flightpack/F = I if(pack) usermessage("[src] already has a flightpack installed!", "boldwarning") return FALSE diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 41b2334f94..68d7073612 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -97,7 +97,7 @@ item_state = "eng_hardsuit" max_integrity = 300 armor = list("melee" = 10, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 75, "fire" = 50, "acid" = 75) - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals, /obj/item/device/t_scanner, /obj/item/construction/rcd, /obj/item/pipe_dispenser) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/t_scanner, /obj/item/construction/rcd, /obj/item/pipe_dispenser) siemens_coefficient = 0 var/obj/item/clothing/head/helmet/space/hardsuit/helmet actions_types = list(/datum/action/item_action/toggle_helmet) @@ -235,7 +235,7 @@ heat_protection = HEAD armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 50, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 75) brightness_on = 7 - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/device/mining_scanner, /obj/item/device/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator) /obj/item/clothing/suit/space/hardsuit/mining @@ -246,7 +246,7 @@ max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 50, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 75) - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals, /obj/item/storage/bag/ore, /obj/item/pickaxe) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/storage/bag/ore, /obj/item/pickaxe) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/mining heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS @@ -437,7 +437,7 @@ name = "medical hardsuit" desc = "A special suit that protects against hazardous, low pressure environments. Built with lightweight materials for easier movement." item_state = "medical_hardsuit" - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals, /obj/item/storage/firstaid, /obj/item/device/healthanalyzer, /obj/item/stack/medical) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/storage/firstaid, /obj/item/healthanalyzer, /obj/item/stack/medical) armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 60, "fire" = 60, "acid" = 75) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/medical @@ -477,8 +477,8 @@ item_state = "hardsuit-rd" resistance_flags = ACID_PROOF | FIRE_PROOF max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT //Same as an emergency firesuit. Not ideal for extended exposure. - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals, /obj/item/gun/energy/wormhole_projector, - /obj/item/hand_tele, /obj/item/device/aicard) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/gun/energy/wormhole_projector, + /obj/item/hand_tele, /obj/item/aicard) armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 100, "bio" = 100, "rad" = 60, "fire" = 60, "acid" = 80) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/rd diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index 738d298f72..c2dad1a8f3 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -93,7 +93,7 @@ Contains: icon_state = "void" item_state = "void" desc = "An old, NASA CentCom branch designed, dark red space suit." - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals, /obj/item/device/multitool) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/multitool) /obj/item/clothing/head/helmet/space/nasavoid/old name = "Engineering Void Helmet" @@ -107,7 +107,7 @@ Contains: item_state = "void" desc = "A CentCom engineering dark red space suit. Age has degraded the suit making is difficult to move around in." slowdown = 4 - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals, /obj/item/device/multitool) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/multitool) //Space santa outfit suit /obj/item/clothing/head/helmet/space/santahat diff --git a/code/modules/clothing/spacesuits/vg_spess.dm b/code/modules/clothing/spacesuits/vg_spess.dm index 237e5ebfa6..9970cfc5bd 100644 --- a/code/modules/clothing/spacesuits/vg_spess.dm +++ b/code/modules/clothing/spacesuits/vg_spess.dm @@ -16,7 +16,7 @@ icon_state = "hardsuit-nazi" slowdown = 1 armor = list(melee = 40, bullet = 30, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 20) - allowed = list(/obj/item/gun,/obj/item/device/flashlight,/obj/item/tank,/obj/item/melee/) + allowed = list(/obj/item/gun,/obj/item/flashlight,/obj/item/tank,/obj/item/melee/) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/nazi icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' @@ -36,7 +36,7 @@ icon_state = "hardsuit-soviet" slowdown = 1 armor = list(melee = 40, bullet = 30, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 20) - allowed = list(/obj/item/gun,/obj/item/device/flashlight,/obj/item/tank,/obj/item/melee/) + allowed = list(/obj/item/gun,/obj/item/flashlight,/obj/item/tank,/obj/item/melee/) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/soviet icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm index bb6a6ca070..bffba4a36f 100644 --- a/code/modules/clothing/suits/bio.dm +++ b/code/modules/clothing/suits/bio.dm @@ -21,7 +21,7 @@ flags_1 = THICKMATERIAL_1 body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS slowdown = 1 - allowed = list(/obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/pen, /obj/item/device/flashlight/pen, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray) + allowed = list(/obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/pen, /obj/item/flashlight/pen, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray) armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 80, "fire" = 30, "acid" = 100) flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT strip_delay = 70 diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm index 03f549fbe8..8b87cf6f6e 100644 --- a/code/modules/clothing/suits/cloaks.dm +++ b/code/modules/clothing/suits/cloaks.dm @@ -60,7 +60,7 @@ name = "goliath cloak" icon_state = "goliath_cloak" desc = "A staunch, practical cape made out of numerous monster materials, it is coveted amongst exiles & hermits." - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals, /obj/item/pickaxe, /obj/item/twohanded/spear, /obj/item/twohanded/bonespear, /obj/item/organ/regenerative_core/legion, /obj/item/kitchen/knife/combat/bone, /obj/item/kitchen/knife/combat/survival) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/pickaxe, /obj/item/twohanded/spear, /obj/item/twohanded/bonespear, /obj/item/organ/regenerative_core/legion, /obj/item/kitchen/knife/combat/bone, /obj/item/kitchen/knife/combat/survival) armor = list("melee" = 35, "bullet" = 10, "laser" = 25, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 60, "acid" = 60) //a fair alternative to bone armor, requiring alternative materials and gaining a suit slot hoodtype = /obj/item/clothing/head/hooded/cloakhood/goliath body_parts_covered = CHEST|GROIN|ARMS @@ -76,7 +76,7 @@ name = "drake armour" icon_state = "dragon" desc = "A suit of armour fashioned from the remains of an ash drake." - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/device/mining_scanner, /obj/item/device/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe, /obj/item/twohanded/spear) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe, /obj/item/twohanded/spear) armor = list("melee" = 70, "bullet" = 30, "laser" = 50, "energy" = 40, "bomb" = 70, "bio" = 60, "rad" = 50, "fire" = 100, "acid" = 100) hoodtype = /obj/item/clothing/head/hooded/cloakhood/drake heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index 08338d1e7c..6c10782334 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -10,7 +10,7 @@ item_state = "apron" blood_overlay_type = "armor" body_parts_covered = CHEST|GROIN - allowed = list(/obj/item/reagent_containers/spray/plantbgone, /obj/item/device/plant_analyzer, /obj/item/seeds, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/cultivator, /obj/item/reagent_containers/spray/pestspray, /obj/item/hatchet, /obj/item/storage/bag/plants) + allowed = list(/obj/item/reagent_containers/spray/plantbgone, /obj/item/plant_analyzer, /obj/item/seeds, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/cultivator, /obj/item/reagent_containers/spray/pestspray, /obj/item/hatchet, /obj/item/storage/bag/plants) //Captain /obj/item/clothing/suit/captunic @@ -20,7 +20,7 @@ item_state = "bio_suit" body_parts_covered = CHEST|GROIN|LEGS|ARMS flags_inv = HIDEJUMPSUIT - allowed = list(/obj/item/disk, /obj/item/stamp, /obj/item/reagent_containers/food/drinks/flask, /obj/item/melee, /obj/item/storage/lockbox/medal, /obj/item/device/assembly/flash/handheld, /obj/item/storage/box/matches, /obj/item/lighter, /obj/item/clothing/mask/cigarette, /obj/item/storage/fancy/cigarettes, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) + allowed = list(/obj/item/disk, /obj/item/stamp, /obj/item/reagent_containers/food/drinks/flask, /obj/item/melee, /obj/item/storage/lockbox/medal, /obj/item/assembly/flash/handheld, /obj/item/storage/box/matches, /obj/item/lighter, /obj/item/clothing/mask/cigarette, /obj/item/storage/fancy/cigarettes, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) //Chaplain /obj/item/clothing/suit/hooded/chaplain_hoodie @@ -115,7 +115,7 @@ icon_state = "hazard" item_state = "hazard" blood_overlay_type = "armor" - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/device/t_scanner, /obj/item/device/radio) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/t_scanner, /obj/item/radio) resistance_flags = NONE //Lawyer diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm index 11540f9932..634ec5f631 100644 --- a/code/modules/clothing/suits/labcoat.dm +++ b/code/modules/clothing/suits/labcoat.dm @@ -5,7 +5,7 @@ item_state = "labcoat" blood_overlay_type = "coat" body_parts_covered = CHEST|ARMS - allowed = list(/obj/item/device/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/device/healthanalyzer, /obj/item/device/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/soap, /obj/item/device/sensor_device, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman,/obj/item/hypospray) //CITADEL ADD, Hyposprays to laboats + allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/soap, /obj/item/sensor_device, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman,/obj/item/hypospray) //CITADEL ADD, Hyposprays to laboats armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 50, "rad" = 0, "fire" = 50, "acid" = 50) togglename = "buttons" species_exception = list(/datum/species/golem) diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 90ae827957..1022ae4e4f 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -93,7 +93,7 @@ item_state = "syndicate-black-red" desc = "A plastic replica of the Syndicate space suit. You'll look just like a real murderous Syndicate agent in this! This is a toy, it is not made for use in space!" w_class = WEIGHT_CLASS_NORMAL - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy) flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT resistance_flags = NONE @@ -355,7 +355,7 @@ desc = "Aviators not included." icon_state = "bomberjacket" item_state = "brownjsuit" - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/device/radio) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/radio) body_parts_covered = CHEST|GROIN|ARMS cold_protection = CHEST|GROIN|ARMS min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT @@ -367,7 +367,7 @@ item_state = "hostrench" resistance_flags = NONE max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/revolver, /obj/item/gun/ballistic/revolver/detective, /obj/item/device/radio) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/revolver, /obj/item/gun/ballistic/revolver/detective, /obj/item/radio) /obj/item/clothing/suit/jacket/leather/overcoat name = "leather overcoat" @@ -397,7 +397,7 @@ desc = "A canvas jacket styled after classical American military garb. Feels sturdy, yet comfortable." icon_state = "militaryjacket" item_state = "militaryjacket" - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/revolver, /obj/item/gun/ballistic/revolver/detective, /obj/item/device/radio) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/revolver, /obj/item/gun/ballistic/revolver/detective, /obj/item/radio) /obj/item/clothing/suit/jacket/letterman name = "letterman jacket" @@ -470,7 +470,7 @@ cold_protection = CHEST|GROIN|ARMS min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter) /obj/item/clothing/head/hooded/winterhood name = "winter hood" @@ -513,7 +513,7 @@ name = "medical winter coat" icon_state = "coatmedical" item_state = "coatmedical" - allowed = list(/obj/item/device/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/device/healthanalyzer, /obj/item/device/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) + allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 50, "rad" = 0, "fire" = 0, "acid" = 45) hoodtype = /obj/item/clothing/head/hooded/winterhood/medical @@ -524,7 +524,7 @@ name = "science winter coat" icon_state = "coatscience" item_state = "coatscience" - allowed = list(/obj/item/device/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/device/healthanalyzer, /obj/item/device/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) + allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) hoodtype = /obj/item/clothing/head/hooded/winterhood/science @@ -536,7 +536,7 @@ icon_state = "coatengineer" item_state = "coatengineer" armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 20, "fire" = 30, "acid" = 45) - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/device/t_scanner, /obj/item/construction/rcd, /obj/item/pipe_dispenser, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/t_scanner, /obj/item/construction/rcd, /obj/item/pipe_dispenser, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter) hoodtype = /obj/item/clothing/head/hooded/winterhood/engineering /obj/item/clothing/head/hooded/winterhood/engineering @@ -555,7 +555,7 @@ name = "hydroponics winter coat" icon_state = "coathydro" item_state = "coathydro" - allowed = list(/obj/item/reagent_containers/spray/plantbgone, /obj/item/device/plant_analyzer, /obj/item/seeds, /obj/item/reagent_containers/glass/bottle, /obj/item/cultivator, /obj/item/reagent_containers/spray/pestspray, /obj/item/hatchet, /obj/item/storage/bag/plants, /obj/item/toy, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/storage/fancy/cigarettes, /obj/item/lighter) + allowed = list(/obj/item/reagent_containers/spray/plantbgone, /obj/item/plant_analyzer, /obj/item/seeds, /obj/item/reagent_containers/glass/bottle, /obj/item/cultivator, /obj/item/reagent_containers/spray/pestspray, /obj/item/hatchet, /obj/item/storage/bag/plants, /obj/item/toy, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/storage/fancy/cigarettes, /obj/item/lighter) hoodtype = /obj/item/clothing/head/hooded/winterhood/hydro /obj/item/clothing/head/hooded/winterhood/hydro @@ -574,7 +574,7 @@ name = "mining winter coat" icon_state = "coatminer" item_state = "coatminer" - allowed = list(/obj/item/pickaxe, /obj/item/device/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter) + allowed = list(/obj/item/pickaxe, /obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter) armor = list("melee" = 10, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) hoodtype = /obj/item/clothing/head/hooded/winterhood/miner diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm index 9fce4145b7..28b82a1c43 100644 --- a/code/modules/clothing/suits/utility.dm +++ b/code/modules/clothing/suits/utility.dm @@ -18,7 +18,7 @@ gas_transfer_coefficient = 0.9 permeability_coefficient = 0.5 body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/extinguisher, /obj/item/crowbar) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/extinguisher, /obj/item/crowbar) slowdown = 1 flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT flags_1 = STOPSPRESSUREDMAGE_1 | THICKMATERIAL_1 @@ -141,7 +141,7 @@ permeability_coefficient = 0.5 flags_1 = THICKMATERIAL_1 body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/device/geiger_counter) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/geiger_counter) slowdown = 1.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 60, "rad" = 100, "fire" = 30, "acid" = 30) strip_delay = 60 diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index 3d9c3c8017..05ce843ff9 100644 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -9,15 +9,15 @@ w_class = WEIGHT_CLASS_SMALL var/above_suit = FALSE var/minimize_when_attached = TRUE // TRUE if shown as a small icon in corner, FALSE if overlayed + var/datum/component/storage/detached_pockets /obj/item/clothing/accessory/proc/attach(obj/item/clothing/under/U, user) - if(pockets) // Attach storage to jumpsuit - if(U.pockets) // storage items conflict + GET_COMPONENT(storage, /datum/component/storage) + if(storage) + if(U.SendSignal(COMSIG_CONTAINS_STORAGE)) return FALSE - - pockets.forceMove(U) - U.pockets = pockets - + U.TakeComponent(storage) + detached_pockets = storage U.attached_accessory = src forceMove(U) layer = FLOAT_LAYER @@ -41,11 +41,9 @@ return TRUE - /obj/item/clothing/accessory/proc/detach(obj/item/clothing/under/U, user) - if(pockets && pockets == U.pockets) - pockets.forceMove(src) - U.pockets = null + if(detached_pockets && detached_pockets.parent == U) + TakeComponent(detached_pockets) U.armor = U.armor.detachArmor(armor) @@ -301,14 +299,18 @@ desc = "Can protect your clothing from ink stains, but you'll look like a nerd if you're using one." icon_state = "pocketprotector" item_color = "pocketprotector" - pockets = /obj/item/storage/internal/pocket/pocketprotector + pocket_storage_component_path = /datum/component/storage/concrete/pockets/pocketprotector -/obj/item/clothing/accessory/pocketprotector/full - pockets = /obj/item/storage/internal/pocket/pocketprotector/full - -/obj/item/clothing/accessory/pocketprotector/cosmetology - pockets = /obj/item/storage/internal/pocket/pocketprotector/cosmetology +/obj/item/clothing/accessory/pocketprotector/full/Initialize() + . = ..() + new /obj/item/pen/red(src) + new /obj/item/pen(src) + new /obj/item/pen/blue(src) +/obj/item/clothing/accessory/pocketprotector/cosmetology/Initialize() + . = ..() + for(var/i in 1 to 3) + new /obj/item/lipstick/random(src) //////////////// //OONGA BOONGA// @@ -321,7 +323,6 @@ item_color = "talisman" armor = list("melee" = 5, "bullet" = 5, "laser" = 5, "energy" = 5, "bomb" = 20, "bio" = 20, "rad" = 5, "fire" = 0, "acid" = 25) - /obj/item/clothing/accessory/skullcodpiece name = "skull codpiece" desc = "A skull shaped ornament, intended to protect the important things in life." diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 18ec26a9a5..9849769a07 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -614,6 +614,7 @@ /obj/item/clothing/under/plasmaman name = "plasma envirosuit" desc = "A special containment suit that allows plasma-based lifeforms to exist safely in an oxygenated environment, and automatically extinguishes them in a crisis. Despite being airtight, it's not spaceworthy." + icon = 'icons/obj/device.dmi' icon_state = "plasmaman" item_state = "plasmaman" item_color = "plasmaman" @@ -648,7 +649,7 @@ /obj/item/clothing/under/plasmaman/attackby(obj/item/E, mob/user, params) ..() - if (istype(E, /obj/item/device/extinguisher_refill)) + if (istype(E, /obj/item/extinguisher_refill)) if (extinguishes_left == 5) to_chat(user, "The inbuilt extinguisher is full.") return @@ -660,10 +661,11 @@ return return -/obj/item/device/extinguisher_refill +/obj/item/extinguisher_refill name = "envirosuit extinguisher cartridge" desc = "A cartridge loaded with a compressed extinguisher mix, used to refill the automatic extinguisher on plasma envirosuits." icon_state = "plasmarefill" + icon = 'icons/obj/device.dmi' /obj/item/clothing/under/rank/security/navyblue/russian name = "russian officer's uniform" diff --git a/code/modules/clothing/under/syndicate.dm b/code/modules/clothing/under/syndicate.dm index 34ba1b8bb1..83cab9d992 100644 --- a/code/modules/clothing/under/syndicate.dm +++ b/code/modules/clothing/under/syndicate.dm @@ -22,6 +22,7 @@ icon_state = "really_black_suit" item_state = "bl_suit" item_color = "black_suit" + can_adjust = FALSE /obj/item/clothing/under/syndicate/camo name = "camouflage fatigues" @@ -29,6 +30,7 @@ icon_state = "camogreen" item_state = "g_suit" item_color = "camogreen" + can_adjust = FALSE /obj/item/clothing/under/syndicate/soviet name = "Ratnik 5 tracksuit" diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index 72d138da25..5122574e58 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -26,7 +26,7 @@ result = /obj/item/grenade/iedcasing reqs = list(/datum/reagent/fuel = 50, /obj/item/stack/cable_coil = 1, - /obj/item/device/assembly/igniter = 1, + /obj/item/assembly/igniter = 1, /obj/item/reagent_containers/food/drinks/soda_cans = 1) parts = list(/obj/item/reagent_containers/food/drinks/soda_cans = 1) time = 15 @@ -46,9 +46,9 @@ /datum/crafting_recipe/strobeshield name = "Strobe Shield" - result = /obj/item/device/assembly/flash/shield + result = /obj/item/assembly/flash/shield reqs = list(/obj/item/wallframe/flasher = 1, - /obj/item/device/assembly/flash/handheld = 1, + /obj/item/assembly/flash/handheld = 1, /obj/item/shield/riot = 1) time = 40 category = CAT_WEAPONRY @@ -69,7 +69,7 @@ result = /obj/item/melee/baton/cattleprod reqs = list(/obj/item/restraints/handcuffs/cable = 1, /obj/item/stack/rods = 1, - /obj/item/device/assembly/igniter = 1) + /obj/item/assembly/igniter = 1) time = 40 category = CAT_WEAPONRY subcategory = CAT_WEAPON @@ -79,7 +79,7 @@ result = /obj/item/melee/baton/cattleprod/teleprod reqs = list(/obj/item/restraints/handcuffs/cable = 1, /obj/item/stack/rods = 1, - /obj/item/device/assembly/igniter = 1, + /obj/item/assembly/igniter = 1, /obj/item/stack/ore/bluespace_crystal = 1) time = 40 category = CAT_WEAPONRY @@ -133,7 +133,7 @@ /obj/item/stack/cable_coil = 1, /obj/item/gun/energy/e_gun/advtaser = 1, /obj/item/stock_parts/cell = 1, - /obj/item/device/assembly/prox_sensor = 1) + /obj/item/assembly/prox_sensor = 1) tools = list(TOOL_WELDER, TOOL_SCREWDRIVER) time = 60 category = CAT_ROBOT @@ -141,10 +141,10 @@ /datum/crafting_recipe/secbot name = "Secbot" result = /mob/living/simple_animal/bot/secbot - reqs = list(/obj/item/device/assembly/signaler = 1, + reqs = list(/obj/item/assembly/signaler = 1, /obj/item/clothing/head/helmet/sec = 1, /obj/item/melee/baton = 1, - /obj/item/device/assembly/prox_sensor = 1, + /obj/item/assembly/prox_sensor = 1, /obj/item/bodypart/r_arm/robot = 1) tools = list(TOOL_WELDER) time = 60 @@ -154,7 +154,7 @@ name = "Cleanbot" result = /mob/living/simple_animal/bot/cleanbot reqs = list(/obj/item/reagent_containers/glass/bucket = 1, - /obj/item/device/assembly/prox_sensor = 1, + /obj/item/assembly/prox_sensor = 1, /obj/item/bodypart/r_arm/robot = 1) time = 40 category = CAT_ROBOT @@ -164,7 +164,7 @@ result = /mob/living/simple_animal/bot/floorbot reqs = list(/obj/item/storage/toolbox/mechanical = 1, /obj/item/stack/tile/plasteel = 1, - /obj/item/device/assembly/prox_sensor = 1, + /obj/item/assembly/prox_sensor = 1, /obj/item/bodypart/r_arm/robot = 1) time = 40 category = CAT_ROBOT @@ -172,9 +172,9 @@ /datum/crafting_recipe/medbot name = "Medbot" result = /mob/living/simple_animal/bot/medbot - reqs = list(/obj/item/device/healthanalyzer = 1, + reqs = list(/obj/item/healthanalyzer = 1, /obj/item/storage/firstaid = 1, - /obj/item/device/assembly/prox_sensor = 1, + /obj/item/assembly/prox_sensor = 1, /obj/item/bodypart/r_arm/robot = 1) time = 40 category = CAT_ROBOT @@ -184,7 +184,7 @@ result = /mob/living/simple_animal/bot/honkbot reqs = list(/obj/item/storage/box/clown = 1, /obj/item/bodypart/r_arm/robot = 1, - /obj/item/device/assembly/prox_sensor = 1, + /obj/item/assembly/prox_sensor = 1, /obj/item/bikehorn/ = 1) time = 40 category = CAT_ROBOT @@ -204,9 +204,9 @@ name = "Flamethrower" result = /obj/item/flamethrower reqs = list(/obj/item/weldingtool = 1, - /obj/item/device/assembly/igniter = 1, + /obj/item/assembly/igniter = 1, /obj/item/stack/rods = 1) - parts = list(/obj/item/device/assembly/igniter = 1, + parts = list(/obj/item/assembly/igniter = 1, /obj/item/weldingtool = 1) tools = list(TOOL_SCREWDRIVER) time = 10 @@ -325,11 +325,11 @@ /datum/crafting_recipe/spooky_camera name = "Camera Obscura" - result = /obj/item/device/camera/spooky + result = /obj/item/camera/spooky time = 15 - reqs = list(/obj/item/device/camera = 1, + reqs = list(/obj/item/camera = 1, /datum/reagent/water/holywater = 10) - parts = list(/obj/item/device/camera = 1) + parts = list(/obj/item/camera = 1) category = CAT_MISC /datum/crafting_recipe/lizardhat @@ -383,7 +383,7 @@ result = /obj/item/organ/eyes/robotic/flashlight time = 10 reqs = list( - /obj/item/device/flashlight = 2, + /obj/item/flashlight = 2, /obj/item/restraints/handcuffs/cable = 1 ) category = CAT_MISC @@ -576,12 +576,12 @@ /datum/crafting_recipe/pressureplate name = "Pressure Plate" - result = /obj/item/device/pressure_plate + result = /obj/item/pressure_plate time = 5 reqs = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/tile/plasteel = 1, /obj/item/stack/cable_coil = 2, - /obj/item/device/assembly/igniter = 1) + /obj/item/assembly/igniter = 1) category = CAT_MISC @@ -601,7 +601,6 @@ reqs = list(/obj/item/stack/sheet/cloth = 2) category = CAT_CLOTHING - /datum/crafting_recipe/mummy/body name = "Mummification Bandages (Body)" result = /obj/item/clothing/under/mummy @@ -615,4 +614,58 @@ /obj/item/stack/sheet/mineral/wood = 20, /obj/item/stack/cable_coil = 10) tools = list(TOOL_SCREWDRIVER, TOOL_WRENCH, TOOL_WELDER) - category = CAT_MISC \ No newline at end of file + category = CAT_MISC + +/datum/crafting_recipe/hudsunsec + name = "Security HUDsunglasses" + result = /obj/item/clothing/glasses/hud/security/sunglasses + time = 20 + tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + reqs = list(/obj/item/clothing/glasses/hud/security = 1, + /obj/item/clothing/glasses/sunglasses = 1, + /obj/item/stack/cable_coil = 5) + category = CAT_CLOTHING + +/datum/crafting_recipe/hudsunsecremoval + name = "Security HUD removal" + result = /obj/item/clothing/glasses/sunglasses + time = 20 + tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + reqs = list(/obj/item/clothing/glasses/hud/security/sunglasses = 1) + category = CAT_CLOTHING + +/datum/crafting_recipe/hudsunmed + name = "Medical HUDsunglasses" + result = /obj/item/clothing/glasses/hud/health/sunglasses + time = 20 + tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + reqs = list(/obj/item/clothing/glasses/hud/health = 1, + /obj/item/clothing/glasses/sunglasses = 1, + /obj/item/stack/cable_coil = 5) + category = CAT_CLOTHING + +/datum/crafting_recipe/hudsunmedremoval + name = "Medical HUD removal" + result = /obj/item/clothing/glasses/sunglasses + time = 20 + tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + reqs = list(/obj/item/clothing/glasses/hud/health/sunglasses = 1) + category = CAT_CLOTHING + +/datum/crafting_recipe/beergoggles + name = "Beer Goggles" + result = /obj/item/clothing/glasses/sunglasses/reagent + time = 20 + tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + reqs = list(/obj/item/clothing/glasses/science = 1, + /obj/item/clothing/glasses/sunglasses = 1, + /obj/item/stack/cable_coil = 5) + category = CAT_CLOTHING + +/datum/crafting_recipe/beergogglesremoval + name = "Beer Goggles removal" + result = /obj/item/clothing/glasses/sunglasses + time = 20 + tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + reqs = list(/obj/item/clothing/glasses/sunglasses/reagent = 1) + category = CAT_CLOTHING diff --git a/code/modules/detectivework/evidence.dm b/code/modules/detectivework/evidence.dm index 9c98677291..d17090816c 100644 --- a/code/modules/detectivework/evidence.dm +++ b/code/modules/detectivework/evidence.dm @@ -40,9 +40,8 @@ return if(!isturf(I.loc)) //If it isn't on the floor. Do some checks to see if it's in our hands or a box. Otherwise give up. - if(istype(I.loc, /obj/item/storage)) //in a container. - var/obj/item/storage/U = I.loc - U.remove_from_storage(I, src) + if(I.loc.SendSignal(COMSIG_CONTAINS_STORAGE)) //in a container. + I.loc.SendSignal(COMSIG_TRY_STORAGE_TAKE, I, src) if(!user.dropItemToGround(I)) return diff --git a/code/modules/detectivework/footprints_and_rag.dm b/code/modules/detectivework/footprints_and_rag.dm index 66405258b9..5f4603e35e 100644 --- a/code/modules/detectivework/footprints_and_rag.dm +++ b/code/modules/detectivework/footprints_and_rag.dm @@ -45,6 +45,6 @@ else if(istype(A) && src in user) user.visible_message("[user] starts to wipe down [A] with [src]!", "You start to wipe down [A] with [src]...") if(do_after(user,30, target = A)) - user.visible_message("[user] finishes wiping off the [A]!", "You finish wiping off the [A].") + user.visible_message("[user] finishes wiping off [A]!", "You finish wiping off [A].") A.SendSignal(COMSIG_COMPONENT_CLEAN_ACT, CLEAN_MEDIUM) return diff --git a/code/modules/detectivework/scanner.dm b/code/modules/detectivework/scanner.dm index e7589aa15f..5623b082a4 100644 --- a/code/modules/detectivework/scanner.dm +++ b/code/modules/detectivework/scanner.dm @@ -2,9 +2,10 @@ // TODO: Split everything into easy to manage procs. -/obj/item/device/detective_scanner +/obj/item/detective_scanner name = "forensic scanner" desc = "Used to remotely scan objects and biomass for DNA and fingerprints. Can print a report of the findings." + icon = 'icons/obj/device.dmi' icon_state = "forensicnew" w_class = WEIGHT_CLASS_SMALL item_state = "electronic" @@ -22,11 +23,11 @@ name = "Display Forensic Scanner Results" /datum/action/item_action/displayDetectiveScanResults/Trigger() - var/obj/item/device/detective_scanner/scanner = target + var/obj/item/detective_scanner/scanner = target if(istype(scanner)) scanner.displayDetectiveScanResults(usr) -/obj/item/device/detective_scanner/attack_self(mob/user) +/obj/item/detective_scanner/attack_self(mob/user) if(log.len && !scanning) scanning = 1 to_chat(user, "Printing report, please wait...") @@ -34,10 +35,10 @@ else to_chat(user, "The scanner has no logs or is in use.") -/obj/item/device/detective_scanner/attack(mob/living/M, mob/user) +/obj/item/detective_scanner/attack(mob/living/M, mob/user) return -/obj/item/device/detective_scanner/proc/PrintReport() +/obj/item/detective_scanner/proc/PrintReport() // Create our paper var/obj/item/paper/P = new(get_turf(src)) P.name = "paper- 'Scanner Report'" @@ -56,11 +57,11 @@ log = list() scanning = 0 -/obj/item/device/detective_scanner/afterattack(atom/A, mob/user, params) +/obj/item/detective_scanner/afterattack(atom/A, mob/user, params) scan(A, user) return FALSE -/obj/item/device/detective_scanner/proc/scan(atom/A, mob/user) +/obj/item/detective_scanner/proc/scan(atom/A, mob/user) set waitfor = 0 if(!scanning) // Can remotely scan objects and mobs. @@ -164,7 +165,7 @@ scanning = 0 return -/obj/item/device/detective_scanner/proc/add_log(msg, broadcast = 1) +/obj/item/detective_scanner/proc/add_log(msg, broadcast = 1) if(scanning) if(broadcast && ismob(loc)) var/mob/M = loc @@ -175,8 +176,8 @@ /proc/get_timestamp() return time2text(world.time + 432000, ":ss") - -/obj/item/device/detective_scanner/AltClick(mob/living/user) + +/obj/item/detective_scanner/AltClick(mob/living/user) // Best way for checking if a player can use while not incapacitated, etc if(!user.canUseTopic(src, be_close=TRUE)) return @@ -189,7 +190,7 @@ to_chat(user, "The scanner logs are cleared.") log = list() -/obj/item/device/detective_scanner/proc/displayDetectiveScanResults(mob/living/user) +/obj/item/detective_scanner/proc/displayDetectiveScanResults(mob/living/user) // No need for can-use checks since the action button should do proper checks if(!LAZYLEN(log)) to_chat(user, "Cannot display logs, the scanner has no logs.") diff --git a/code/modules/events/bureaucratic_error.dm b/code/modules/events/bureaucratic_error.dm new file mode 100644 index 0000000000..7246c9aedf --- /dev/null +++ b/code/modules/events/bureaucratic_error.dm @@ -0,0 +1,14 @@ +/datum/round_event_control/bureaucratic_error + name = "Bureaucratic Error" + typepath = /datum/round_event/bureaucratic_error + max_occurrences = 1 + weight = 5 + +/datum/round_event/bureaucratic_error + announceWhen = 1 + +/datum/round_event/bureaucratic_error/announce(fake) + priority_announce("A recent bureaucratic error in the Organic Resources Department may result in personnel shortages in some departments and redundant staffing in others.", "Paperwork Mishap Alert") + +/datum/round_event/bureaucratic_error/start() + SSjob.set_overflow_role(pick(get_all_jobs())) diff --git a/code/modules/events/pirates.dm b/code/modules/events/pirates.dm index 07110b5aea..47dafc11db 100644 --- a/code/modules/events/pirates.dm +++ b/code/modules/events/pirates.dm @@ -28,7 +28,7 @@ /datum/round_event/pirates/announce() priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') // CITADEL EDIT metabreak - + if(!control) //Means this is false alarm, todo : explicit checks instead of using announceWhen return threat = new @@ -63,7 +63,7 @@ var/list/candidates = pollGhostCandidates("Do you wish to be considered for pirate crew ?", ROLE_TRAITOR) shuffle_inplace(candidates) - var/datum/map_template/pirate_event_ship/ship = new + var/datum/map_template/shuttle/pirate/default/ship = new var/x = rand(TRANSITIONEDGE,world.maxx - TRANSITIONEDGE - ship.width) var/y = rand(TRANSITIONEDGE,world.maxy - TRANSITIONEDGE - ship.height) var/z = SSmapping.empty_space.z_value @@ -84,7 +84,6 @@ priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') //CITADEL EDIT also metabreak here too - //Shuttle equipment /obj/machinery/shuttle_scrambler @@ -95,13 +94,13 @@ density = TRUE anchored = TRUE var/active = FALSE - var/obj/item/device/gps/gps + var/obj/item/gps/gps var/credits_stored = 0 var/siphon_per_tick = 5 /obj/machinery/shuttle_scrambler/Initialize(mapload) . = ..() - gps = new/obj/item/device/gps/internal/pirate(src) + gps = new/obj/item/gps/internal/pirate(src) gps.tracking = FALSE update_icon() @@ -175,11 +174,7 @@ QDEL_NULL(gps) return ..() -/datum/map_template/pirate_event_ship - name = "Pirate Ship" - mappath = "_maps/templates/pirate_ship.dmm" - -/obj/item/device/gps/internal/pirate +/obj/item/gps/internal/pirate gpstag = "Nautical Signal" desc = "You can hear shanties over the static." diff --git a/code/modules/events/shuttle_loan.dm b/code/modules/events/shuttle_loan.dm index 768be52a63..b46419e68a 100644 --- a/code/modules/events/shuttle_loan.dm +++ b/code/modules/events/shuttle_loan.dm @@ -157,7 +157,7 @@ shuttle_spawns.Add(/mob/living/simple_animal/hostile/syndicate) if(RUSKY_PARTY) - var/datum/supply_pack/pack = SSshuttle.supply_packs[/datum/supply_pack/organic/party] + var/datum/supply_pack/pack = SSshuttle.supply_packs[/datum/supply_pack/service/party] pack.generate(pick_n_take(empty_shuttle_turfs)) shuttle_spawns.Add(/mob/living/simple_animal/hostile/russian) diff --git a/code/modules/events/vent_clog.dm b/code/modules/events/vent_clog.dm index 60c806f195..ae4c5cbd4a 100644 --- a/code/modules/events/vent_clog.dm +++ b/code/modules/events/vent_clog.dm @@ -1,9 +1,9 @@ /datum/round_event_control/vent_clog - name = "Clogged Vents" + name = "Clogged Vents: Normal" typepath = /datum/round_event/vent_clog - weight = 25 - max_occurrences = 0 - min_players = 50 + weight = 10 + max_occurrences = 3 + min_players = 25 /datum/round_event/vent_clog announceWhen = 1 @@ -11,10 +11,15 @@ endWhen = 35 var/interval = 2 var/list/vents = list() + var/randomProbability = 1 + var/reagentsAmount = 100 + var/list/saferChems = list("water","carbon","flour","cleaner","nutriment","condensedcapsaicin","mushroomhallucinogen","lube","pink_glitter", + "plantbgone","blood","charcoal","space_drugs","morphine","holywater","ethanol","hot_coco","sacid","mindbreaker","rotatium","skewium", + "pax","laughter","concentrated_barbers_aid","colorful_reagent","dizzysolution","tiresolution","salt","beer","hair_dye","sugar","white_glitter","growthserum") + /datum/round_event/vent_clog/announce() priority_announce("The scrubbers network is experiencing a backpressure surge. Some ejection of contents may occur.", "Atmospherics alert") - /datum/round_event/vent_clog/setup() endWhen = rand(25, 100) for(var/obj/machinery/atmospherics/components/unary/vent_scrubber/temp_vent in GLOB.machines) @@ -28,7 +33,10 @@ if(vent && vent.loc) var/datum/reagents/R = new/datum/reagents(1000) R.my_atom = vent - R.add_reagent(get_random_reagent_id(), 250) + if (prob(randomProbability)) + R.add_reagent(get_random_reagent_id(), reagentsAmount) + else + R.add_reagent(pick(saferChems), reagentsAmount) var/datum/effect_system/foam_spread/foam = new foam.set_up(200, get_turf(vent), R) @@ -39,3 +47,27 @@ new /mob/living/simple_animal/cockroach(get_turf(vent)) cockroaches-- CHECK_TICK + +/datum/round_event_control/vent_clog/threatening + name = "Clogged Vents: Threatening" + typepath = /datum/round_event/vent_clog/threatening + weight = 4 + min_players = 35 + max_occurrences = 1 + earliest_start = 35 MINUTES + +/datum/round_event/vent_clog/threatening + randomProbability = 10 + reagentsAmount = 200 + +/datum/round_event_control/vent_clog/catastrophic + name = "Clogged Vents: Catastrophic" + typepath = /datum/round_event/vent_clog/catastrophic + weight = 2 + min_players = 45 + max_occurrences = 1 + earliest_start = 45 MINUTES + +/datum/round_event/vent_clog/catastrophic + randomProbability = 30 + reagentsAmount = 250 diff --git a/code/modules/events/wizard/rpgloot.dm b/code/modules/events/wizard/rpgloot.dm index 01195a5f23..cabcc57f0c 100644 --- a/code/modules/events/wizard/rpgloot.dm +++ b/code/modules/events/wizard/rpgloot.dm @@ -13,9 +13,10 @@ if(istype(I, /obj/item/storage)) var/obj/item/storage/S = I - if(prob(upgrade_scroll_chance) && S.contents.len < S.storage_slots && !S.invisibility) + GET_COMPONENT_FROM(STR, /datum/component/storage, S) + if(prob(upgrade_scroll_chance) && S.contents.len < STR.max_items && !S.invisibility) var/obj/item/upgradescroll/scroll = new - S.handle_item_insertion(scroll,1) + S.SendSignal(COMSIG_TRY_STORAGE_INSERT, scroll, null, TRUE, TRUE) upgrade_scroll_chance = max(0,upgrade_scroll_chance-100) upgrade_scroll_chance += 25 diff --git a/code/modules/fields/fields.dm b/code/modules/fields/fields.dm index e07844c4b4..0fdd2699d6 100644 --- a/code/modules/fields/fields.dm +++ b/code/modules/fields/fields.dm @@ -276,7 +276,7 @@ ..() //DEBUG FIELD ITEM -/obj/item/device/multitool/field_debug +/obj/item/multitool/field_debug name = "strange multitool" desc = "Seems to project a colored field!" var/list/field_params = list("field_shape" = FIELD_SHAPE_RADIUS_SQUARE, "current_range" = 5, "set_fieldturf_color" = "#aaffff", "set_edgeturf_color" = "#ffaaff") @@ -285,22 +285,22 @@ var/datum/proximity_monitor/advanced/current = null var/datum/component/mobhook -/obj/item/device/multitool/field_debug/Initialize() +/obj/item/multitool/field_debug/Initialize() . = ..() START_PROCESSING(SSobj, src) -/obj/item/device/multitool/field_debug/Destroy() +/obj/item/multitool/field_debug/Destroy() STOP_PROCESSING(SSobj, src) QDEL_NULL(current) QDEL_NULL(mobhook) return ..() -/obj/item/device/multitool/field_debug/proc/setup_debug_field() +/obj/item/multitool/field_debug/proc/setup_debug_field() var/list/new_params = field_params.Copy() new_params["host"] = src current = make_field(field_type, new_params) -/obj/item/device/multitool/field_debug/attack_self(mob/user) +/obj/item/multitool/field_debug/attack_self(mob/user) operating = !operating to_chat(user, "You turn [src] [operating? "on":"off"].") QDEL_NULL(mobhook) @@ -310,15 +310,15 @@ else if(!operating) QDEL_NULL(current) -/obj/item/device/multitool/field_debug/dropped() +/obj/item/multitool/field_debug/dropped() . = ..() QDEL_NULL(mobhook) -/obj/item/device/multitool/field_debug/proc/on_mob_move() +/obj/item/multitool/field_debug/proc/on_mob_move() check_turf(get_turf(src)) -/obj/item/device/multitool/field_debug/process() +/obj/item/multitool/field_debug/process() check_turf(get_turf(src)) -/obj/item/device/multitool/field_debug/proc/check_turf(turf/T) +/obj/item/multitool/field_debug/proc/check_turf(turf/T) current.HandleMove() diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 621bca26ff..4006bb50b7 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -578,13 +578,13 @@ GLOBAL_LIST_INIT(hallucinations_major, list( /obj/item/cartridge/virus/syndicate, /obj/item/clothing/under/chameleon,\ /obj/item/clothing/shoes/chameleon/noslip, /obj/item/card/id/syndicate,\ /obj/item/clothing/mask/chameleon, /obj/item/clothing/glasses/thermal,\ - /obj/item/device/chameleon, /obj/item/card/emag, /obj/item/grenade/plastic/x4,\ + /obj/item/chameleon, /obj/item/card/emag, /obj/item/grenade/plastic/x4,\ /obj/item/storage/toolbox/syndicate, /obj/item/aiModule,\ - /obj/item/device/radio/headset/syndicate, /obj/item/grenade/plastic/c4,\ - /obj/item/device/powersink, /obj/item/storage/box/syndie_kit,\ + /obj/item/radio/headset/syndicate, /obj/item/grenade/plastic/c4,\ + /obj/item/powersink, /obj/item/storage/box/syndie_kit,\ /obj/item/toy/syndicateballoon, /obj/item/gun/energy/laser/captain,\ /obj/item/hand_tele, /obj/item/construction/rcd, /obj/item/tank/jetpack,\ - /obj/item/clothing/under/rank/captain, /obj/item/device/aicard,\ + /obj/item/clothing/under/rank/captain, /obj/item/aicard,\ /obj/item/clothing/shoes/magboots, /obj/item/areaeditor/blueprints, /obj/item/disk/nuclear,\ /obj/item/clothing/suit/space/nasavoid, /obj/item/tank) diff --git a/code/modules/flufftext/TextFilters.dm b/code/modules/flufftext/TextFilters.dm deleted file mode 100644 index fe8bffa60f..0000000000 --- a/code/modules/flufftext/TextFilters.dm +++ /dev/null @@ -1,64 +0,0 @@ - - -//is this shit even used at all -/proc/NewStutter(phrase,stun) - phrase = html_decode(phrase) - - var/list/split_phrase = splittext(phrase," ") //Split it up into words. - - var/list/unstuttered_words = split_phrase.Copy() - var/i = rand(1,3) - if(stun) i = split_phrase.len - for(,i > 0,i--) //Pick a few words to stutter on. - - if (!unstuttered_words.len) - break - var/word = pick(unstuttered_words) - unstuttered_words -= word //Remove from unstuttered words so we don't stutter it again. - var/index = split_phrase.Find(word) //Find the word in the split phrase so we can replace it. - - //Search for dipthongs (two letters that make one sound.) - var/first_sound = copytext(word,1,3) - var/first_letter = copytext(word,1,2) - if(lowertext(first_sound) in list("ch","th","sh")) - first_letter = first_sound - - //Repeat the first letter to create a stutter. - var/rnum = rand(1,3) - switch(rnum) - if(1) - word = "[first_letter]-[word]" - if(2) - word = "[first_letter]-[first_letter]-[word]" - if(3) - word = "[first_letter]-[word]" - - split_phrase[index] = word - - return sanitize(jointext(split_phrase," ")) - -/proc/Stagger(mob/M,d) //Technically not a filter, but it relates to drunkenness. - step(M, pick(d,turn(d,90),turn(d,-90))) - -/proc/Ellipsis(original_msg, chance = 50, keep_words) - if(chance <= 0) - return "..." - if(chance >= 100) - return original_msg - - var/list - words = splittext(original_msg," ") - new_words = list() - - var/new_msg = "" - - for(var/w in words) - if(prob(chance)) - new_words += "..." - if(!keep_words) - continue - new_words += w - - new_msg = jointext(new_words," ") - - return new_msg diff --git a/code/modules/food_and_drinks/food/snacks_bread.dm b/code/modules/food_and_drinks/food/snacks_bread.dm index c29ed30b22..2e2759913b 100644 --- a/code/modules/food_and_drinks/food/snacks_bread.dm +++ b/code/modules/food_and_drinks/food/snacks_bread.dm @@ -192,6 +192,15 @@ overlays = fried.copy_overlays() icon_state = fried.icon_state desc = fried.desc + w_class = fried.w_class + slowdown = fried.slowdown + equip_delay_self = fried.equip_delay_self + equip_delay_other = fried.equip_delay_other + strip_delay = fried.strip_delay + species_exception = fried.species_exception + item_flags = fried.item_flags + obj_flags = fried.obj_flags + if(istype(fried, /obj/item/reagent_containers/food/snacks)) fried.reagents.trans_to(src, fried.reagents.total_volume) qdel(fried) diff --git a/code/modules/food_and_drinks/food/snacks_other.dm b/code/modules/food_and_drinks/food/snacks_other.dm index 4645993758..ecb3cfb2ba 100644 --- a/code/modules/food_and_drinks/food/snacks_other.dm +++ b/code/modules/food_and_drinks/food/snacks_other.dm @@ -559,7 +559,7 @@ icon_state = "pineapple_slice" filling_color = "#F6CB0B" tastes = list("pineapple" = 1) - foodtype = FRUIT + foodtype = FRUIT | PINEAPPLE /obj/item/reagent_containers/food/snacks/tinychocolate name = "chocolate" diff --git a/code/modules/food_and_drinks/food/snacks_pizza.dm b/code/modules/food_and_drinks/food/snacks_pizza.dm index a5269742f9..a94c1a25c7 100644 --- a/code/modules/food_and_drinks/food/snacks_pizza.dm +++ b/code/modules/food_and_drinks/food/snacks_pizza.dm @@ -145,16 +145,16 @@ icon_state = "pineapplepizza" slice_path = /obj/item/reagent_containers/food/snacks/pizzaslice/pineapple bonus_reagents = list("nutriment" = 6, "vitamin" = 6) - tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "pineapples" = 2, "ham" = 2) - foodtype = GRAIN | VEGETABLES | DAIRY | MEAT | FRUIT + tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "pineapple" = 2, "ham" = 2) + foodtype = GRAIN | VEGETABLES | DAIRY | MEAT | FRUIT | PINEAPPLE /obj/item/reagent_containers/food/snacks/pizzaslice/pineapple name = "\improper Hawaiian pizza slice" desc = "A slice of delicious controversy." icon_state = "pineapplepizzaslice" filling_color = "#FF4500" - tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "pineapples" = 2, "ham" = 2) - foodtype = GRAIN | VEGETABLES | DAIRY | MEAT | FRUIT + tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "pineapple" = 2, "ham" = 2) + foodtype = GRAIN | VEGETABLES | DAIRY | MEAT | FRUIT | PINEAPPLE /obj/item/reagent_containers/food/snacks/pizzaslice/custom name = "pizza slice" diff --git a/code/modules/food_and_drinks/food/snacks_vend.dm b/code/modules/food_and_drinks/food/snacks_vend.dm index d0fe1282d2..317a434040 100644 --- a/code/modules/food_and_drinks/food/snacks_vend.dm +++ b/code/modules/food_and_drinks/food/snacks_vend.dm @@ -18,7 +18,7 @@ icon_state = "sosjerky" desc = "Beef jerky made from the finest space cows." trash = /obj/item/trash/sosjerky - list_reagents = list("nutriment" = 1, "sugar" = 3) + list_reagents = list("nutriment" = 1, "sugar" = 3, "sodiumchloride" = 2) junkiness = 25 filling_color = "#8B0000" tastes = list("dried meat" = 1) @@ -36,7 +36,7 @@ icon_state = "chips" trash = /obj/item/trash/chips bitesize = 1 - list_reagents = list("nutriment" = 1, "sugar" = 3) + list_reagents = list("nutriment" = 1, "sugar" = 3, "sodiumchloride" = 1) junkiness = 20 filling_color = "#FFD700" tastes = list("salt" = 1, "crisps" = 1) diff --git a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm index 3e5554b783..ebea393397 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm @@ -41,7 +41,7 @@ God bless America. /obj/item/crowbar, /obj/item/wrench, /obj/item/wirecutters, - /obj/item/device/multitool, + /obj/item/multitool, /obj/item/weldingtool, /obj/item/reagent_containers/glass, /obj/item/reagent_containers/syringe, @@ -89,8 +89,6 @@ God bless America. return if(default_unfasten_wrench(user, I)) return - else if(exchange_parts(user, I)) - return else if(default_deconstruction_screwdriver(user, "fryer_off", "fryer_off" ,I)) //where's the open maint panel icon?! return else diff --git a/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm b/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm index 7b67129dba..42da7e226b 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm @@ -30,6 +30,7 @@ return ..() /obj/machinery/food_cart/ui_interact(mob/user) + . = ..() var/dat dat += "
    STORED INGREDIENTS AND DRINKS
    " dat += "Remaining glasses: [glasses]
    " @@ -91,11 +92,11 @@ to_chat(user, "[src] is at full capacity.") break else - T.remove_from_storage(S, src) - if(stored_food[sanitize(S.name)]) - stored_food[sanitize(S.name)]++ - else - stored_food[sanitize(S.name)] = 1 + if(T.SendSignal(COMSIG_TRY_STORAGE_TAKE, S, src)) + if(stored_food[sanitize(S.name)]) + stored_food[sanitize(S.name)]++ + else + stored_food[sanitize(S.name)] = 1 else if(O.is_drainable()) return else diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm index 5da7975a05..784cf22ccd 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm @@ -99,10 +99,7 @@ /obj/machinery/gibber/attackby(obj/item/P, mob/user, params) if(default_deconstruction_screwdriver(user, "grinder_open", "grinder", P)) return - - else if(exchange_parts(user, P)) - return - + else if(default_pry_open(P)) return diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm index 7139f20d91..7363f262b4 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -50,8 +50,6 @@ return if(default_unfasten_wrench(user, O)) return - if(exchange_parts(user, O)) - return if(default_deconstruction_crowbar(O)) return @@ -132,8 +130,8 @@ if (contents.len>=max_n_of_items) to_chat(user, "[src] is full, you can't put anything in!") return 1 - T.remove_from_storage(S, src) - loaded++ + if(T.SendSignal(COMSIG_TRY_STORAGE_TAKE, S, src)) + loaded++ if(loaded) to_chat(user, "You insert [loaded] items into [src].") @@ -165,6 +163,7 @@ ********************/ /obj/machinery/microwave/ui_interact(mob/user) // The microwave Menu + . = ..() if(panel_open || !anchored) return var/dat = "
    " diff --git a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm index d1896c03fc..397f5c7a6d 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm @@ -29,9 +29,6 @@ if(default_deconstruction_screwdriver(user, "grinder_open", "grinder", O)) return - if(exchange_parts(user, O)) - return - if(default_pry_open(O)) return @@ -56,7 +53,7 @@ /obj/machinery/monkey_recycler/proc/stuff_monkey_in(mob/living/carbon/monkey/target, mob/living/user) if(!istype(target)) return - if(target.stat == 0) + if(target.stat == CONSCIOUS) to_chat(user, "The monkey is struggling far too much to put it in the recycler.") return if(target.buckled || target.has_buckled_mobs()) @@ -69,17 +66,10 @@ animate(src, pixel_x = pixel_x + offset, time = 0.2, loop = 200) //start shaking use_power(500) grinded++ - sleep(50) - pixel_x = initial(pixel_x) //return to its spot after shaking - to_chat(user, "The machine now has [grinded] monkey\s worth of material stored.") + addtimer(VARSET_CALLBACK(src, pixel_x, initial(pixel_x))) + addtimer(CALLBACK(GLOBAL_PROC, /proc/to_chat, user, "The machine now has [grinded] monkey\s worth of material stored.")) - -/obj/machinery/monkey_recycler/attack_hand(mob/user) - . = ..() - if(.) - return - if(stat != 0) //NOPOWER etc - return +/obj/machinery/monkey_recycler/interact(mob/user) if(grinded >= required_grind) to_chat(user, "The machine hisses loudly as it condenses the grinded monkey meat. After a moment, it dispenses a brand new monkey cube.") playsound(src.loc, 'sound/machines/hiss.ogg', 50, 1) @@ -89,4 +79,3 @@ to_chat(user, "The machine's display flashes that it has [grinded] monkeys worth of material left.") else to_chat(user, "The machine needs at least [required_grind] monkey(s) worth of material to produce a monkey cube. It only has [grinded].") - return diff --git a/code/modules/food_and_drinks/kitchen_machinery/processor.dm b/code/modules/food_and_drinks/kitchen_machinery/processor.dm index 1937ee2695..91a73eecec 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/processor.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/processor.dm @@ -22,27 +22,6 @@ for(var/obj/item/stock_parts/manipulator/M in component_parts) rating_speed = M.rating -/obj/machinery/processor/process() - ..() - if(processing) - return - var/mob/living/simple_animal/slime/picked_slime - for(var/mob/living/simple_animal/slime/slime in range(1,src)) - if(slime.loc == src) - continue - if(istype(slime, /mob/living/simple_animal/slime)) - if(slime.stat) - picked_slime = slime - break - if(!picked_slime) - return - var/datum/food_processor_process/P = select_recipe(picked_slime) - if (!P) - return - - src.visible_message("[picked_slime] is sucked into [src].") - picked_slime.forceMove(src) - /obj/machinery/processor/proc/process_food(datum/food_processor_process/recipe, atom/movable/what) if (recipe.output && loc && !QDELETED(src)) for(var/i = 0, i < rating_amount, i++) @@ -53,22 +32,6 @@ else qdel(what) - -/obj/machinery/processor/slime/process_food(datum/food_processor_process/recipe, atom/movable/what) - var/mob/living/simple_animal/slime/S = what - if (istype(S)) - var/C = S.cores - if(S.stat != DEAD) - S.forceMove(drop_location()) - S.visible_message("[C] crawls free of the processor!") - return - for(var/i in 1 to (C+rating_amount-1)) - var/atom/movable/item = new S.coretype(drop_location()) - adjust_item_drop_location(item) - SSblackbox.record_feedback("tally", "slime_core_harvested", 1, S.colour) - ..() - - /obj/machinery/processor/proc/select_recipe(X) for (var/type in subtypesof(/datum/food_processor_process) - /datum/food_processor_process/mob) var/datum/food_processor_process/recipe = new type() @@ -77,15 +40,12 @@ return recipe /obj/machinery/processor/attackby(obj/item/O, mob/user, params) - if(src.processing) + if(processing) to_chat(user, "[src] is in the process of processing!") - return 1 + return TRUE if(default_deconstruction_screwdriver(user, "processor", "processor1", O)) return - if(exchange_parts(user, O)) - return - if(default_pry_open(O)) return @@ -101,8 +61,8 @@ for(var/obj/item/reagent_containers/food/snacks/S in T.contents) var/datum/food_processor_process/P = select_recipe(S) if(P) - T.remove_from_storage(S, src) - loaded++ + if(T.SendSignal(COMSIG_TRY_STORAGE_TAKE, S, src)) + loaded++ if(loaded) to_chat(user, "You insert [loaded] items into [src].") @@ -121,16 +81,11 @@ else return ..() -/obj/machinery/processor/attack_hand(mob/user) - . = ..() - if(.) - return - if(stat & (NOPOWER|BROKEN)) - return - if(src.processing) +/obj/machinery/processor/interact(mob/user) + if(processing) to_chat(user, "[src] is in the process of processing!") - return 1 - if(user.a_intent == INTENT_GRAB && user.pulling && select_recipe(user.pulling)) + return TRUE + if(user.a_intent == INTENT_GRAB && ismob(user.pulling) && select_recipe(user.pulling)) if(user.grab_state < GRAB_AGGRESSIVE) to_chat(user, "You need a better grip to do that!") return @@ -139,9 +94,9 @@ pushed_mob.forceMove(src) user.stop_pulling() return - if(src.contents.len == 0) + if(contents.len == 0) to_chat(user, "[src] is empty!") - return 1 + return TRUE processing = TRUE user.visible_message("[user] turns on [src].", \ "You turn on [src].", \ @@ -166,7 +121,7 @@ process_food(P, O) pixel_x = initial(pixel_x) //return to its spot after shaking processing = FALSE - src.visible_message("\The [src] finishes processing.") + visible_message("\The [src] finishes processing.") /obj/machinery/processor/verb/eject() set category = "Object" @@ -175,16 +130,14 @@ if(usr.stat || !usr.canmove || usr.restrained()) return - src.empty() + empty() add_fingerprint(usr) - return /obj/machinery/processor/proc/empty() for (var/obj/O in src) O.forceMove(drop_location()) for (var/mob/M in src) M.forceMove(drop_location()) - return /obj/machinery/processor/slime name = "slime processor" @@ -208,3 +161,37 @@ AM.pixel_x = -8 + ((ii%3)*8) AM.pixel_y = -8 + (round(ii/3)*8) return i + +/obj/machinery/processor/slime/process() + if(processing) + return + var/mob/living/simple_animal/slime/picked_slime + for(var/mob/living/simple_animal/slime/slime in range(1,src)) + if(slime.loc == src) + continue + if(istype(slime, /mob/living/simple_animal/slime)) + if(slime.stat) + picked_slime = slime + break + if(!picked_slime) + return + var/datum/food_processor_process/P = select_recipe(picked_slime) + if (!P) + return + + visible_message("[picked_slime] is sucked into [src].") + picked_slime.forceMove(src) + +/obj/machinery/processor/slime/process_food(datum/food_processor_process/recipe, atom/movable/what) + var/mob/living/simple_animal/slime/S = what + if (istype(S)) + var/C = S.cores + if(S.stat != DEAD) + S.forceMove(drop_location()) + S.visible_message("[C] crawls free of the processor!") + return + for(var/i in 1 to (C+rating_amount-1)) + var/atom/movable/item = new S.coretype(drop_location()) + adjust_item_drop_location(item) + SSblackbox.record_feedback("tally", "slime_core_harvested", 1, S.colour) + ..() diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index 8be93e88bf..2522ec9cf2 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -55,9 +55,6 @@ if(default_deconstruction_screwdriver(user, "smartfridge_open", "smartfridge", O)) return - if(exchange_parts(user, O)) - return - if(default_pry_open(O)) return @@ -125,12 +122,15 @@ var/mob/M = O.loc if(!M.transferItemToLoc(O, src)) to_chat(usr, "\the [O] is stuck to your hand, you cannot put it in \the [src]!") - return + return FALSE + else + return TRUE else - if(istype(O.loc, /obj/item/storage)) - var/obj/item/storage/S = O.loc - S.remove_from_storage(O,src) - O.forceMove(src) + if(O.loc.SendSignal(COMSIG_CONTAINS_STORAGE)) + return O.loc.SendSignal(COMSIG_TRY_STORAGE_TAKE, O, src) + else + O.forceMove(src) + return TRUE /obj/machinery/smartfridge/attack_ai(mob/user) return FALSE @@ -344,12 +344,12 @@ /obj/machinery/smartfridge/extract/accept_check(obj/item/O) if(istype(O, /obj/item/slime_extract)) return TRUE - if(istype(O, /obj/item/device/slime_scanner)) + if(istype(O, /obj/item/slime_scanner)) return TRUE return FALSE /obj/machinery/smartfridge/extract/preloaded - initial_contents = list(/obj/item/device/slime_scanner = 2) + initial_contents = list(/obj/item/slime_scanner = 2) // ----------------------------- // Chemistry Medical Smartfridge diff --git a/code/modules/holiday/easter.dm b/code/modules/holiday/easter.dm index c9fc793d0d..6cc3f56461 100644 --- a/code/modules/holiday/easter.dm +++ b/code/modules/holiday/easter.dm @@ -65,18 +65,22 @@ name = "Easter Basket" icon = 'icons/mob/easter.dmi' icon_state = "basket" - can_hold = list(/obj/item/reagent_containers/food/snacks/egg, /obj/item/reagent_containers/food/snacks/chocolateegg, /obj/item/reagent_containers/food/snacks/boiledegg) + +/obj/item/storage/bag/easterbasket/Initialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.can_hold = typecacheof(list(/obj/item/reagent_containers/food/snacks/egg, /obj/item/reagent_containers/food/snacks/chocolateegg, /obj/item/reagent_containers/food/snacks/boiledegg)) /obj/item/storage/bag/easterbasket/proc/countEggs() cut_overlays() add_overlay("basket-grass") add_overlay("basket-egg[min(contents.len, 5)]") -/obj/item/storage/bag/easterbasket/remove_from_storage(obj/item/W as obj, atom/new_location) - ..() +/obj/item/storage/bag/easterbasket/Exited() + . = ..() countEggs() -/obj/item/storage/bag/easterbasket/handle_item_insertion(obj/item/I, prevent_warning = 0) +/obj/item/storage/bag/easterbasket/Entered() . = ..() countEggs() diff --git a/code/modules/holodeck/turfs.dm b/code/modules/holodeck/turfs.dm index a9ec1ac9f1..878026f843 100644 --- a/code/modules/holodeck/turfs.dm +++ b/code/modules/holodeck/turfs.dm @@ -27,11 +27,13 @@ gender = PLURAL name = "lush grass" icon_state = "grass" + bullet_bounce_sound = null /turf/open/floor/holofloor/beach name = "sand" icon = 'icons/misc/beach.dmi' icon_state = "sand" + bullet_bounce_sound = null /turf/open/floor/holofloor/beach/coast_t name = "coastline" @@ -44,6 +46,7 @@ /turf/open/floor/holofloor/beach/water name = "water" icon_state = "water" + bullet_sizzle = TRUE /turf/open/floor/holofloor/asteroid name = "asteroid" @@ -76,6 +79,7 @@ name = "hyperspace" icon = 'icons/turf/space.dmi' icon_state = "speedspace_ns_1" + bullet_bounce_sound = null /turf/open/floor/holofloor/hyperspace/Initialize() icon_state = "speedspace_ns_[(x + 5*y + (y%2+1)*7)%15+1]" @@ -93,6 +97,7 @@ floor_tile = /obj/item/stack/tile/carpet smooth = SMOOTH_TRUE canSmoothWith = null + bullet_bounce_sound = null /turf/open/floor/holofloor/carpet/Initialize() . = ..() @@ -110,6 +115,8 @@ icon = 'icons/turf/snow.dmi' icon_state = "snow" slowdown = 2 + bullet_sizzle = TRUE + bullet_bounce_sound = null /turf/open/floor/holofloor/snow/cold initial_gas_mix = "nob=7500;TEMP=2.7" diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm index b69e5e6302..624394f878 100644 --- a/code/modules/hydroponics/biogenerator.dm +++ b/code/modules/hydroponics/biogenerator.dm @@ -83,9 +83,6 @@ update_icon() return - if(exchange_parts(user, O)) - return - if(default_deconstruction_crowbar(O)) return @@ -116,8 +113,8 @@ for(var/obj/item/reagent_containers/food/snacks/grown/G in PB.contents) if(i >= max_items) break - PB.remove_from_storage(G, src) - i++ + if(PB.SendSignal(COMSIG_TRY_STORAGE_TAKE, G, src)) + i++ if(iYou empty the plant bag into the biogenerator.") else if(PB.contents.len == 0) diff --git a/code/modules/hydroponics/gene_modder.dm b/code/modules/hydroponics/gene_modder.dm index 6bb000ebe2..dd1d1777d8 100644 --- a/code/modules/hydroponics/gene_modder.dm +++ b/code/modules/hydroponics/gene_modder.dm @@ -69,8 +69,6 @@ if(default_deconstruction_screwdriver(user, "dnamod", "dnamod", I)) update_icon() return - if(exchange_parts(user, I)) - return if(default_deconstruction_crowbar(I)) return if(iscyborg(user)) diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index e632ccf297..5b9c1f4e70 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -60,7 +60,7 @@ /obj/item/reagent_containers/food/snacks/grown/attackby(obj/item/O, mob/user, params) ..() - if (istype(O, /obj/item/device/plant_analyzer)) + if (istype(O, /obj/item/plant_analyzer)) var/msg = "*---------*\n This is \a [src].\n" if(seed) msg += seed.get_analyzer_text() @@ -126,13 +126,6 @@ T.on_consume(src, usr) ..() -/obj/item/reagent_containers/food/snacks/grown/Crossed(atom/movable/AM) - if(seed) - for(var/datum/plant_gene/trait/T in seed.genes) - T.on_cross(src, AM) - ..() - - /obj/item/reagent_containers/food/snacks/grown/generate_trash(atom/location) if(trash && ispath(trash, /obj/item/grown)) . = new trash(location, seed) diff --git a/code/modules/hydroponics/grown/pineapple.dm b/code/modules/hydroponics/grown/pineapple.dm index 443190942a..7b58c7553d 100644 --- a/code/modules/hydroponics/grown/pineapple.dm +++ b/code/modules/hydroponics/grown/pineapple.dm @@ -29,5 +29,5 @@ slices_num = 3 filling_color = "#F6CB0B" w_class = WEIGHT_CLASS_NORMAL - foodtype = FRUIT + foodtype = FRUIT | PINEAPPLE tastes = list("pineapple" = 1) diff --git a/code/modules/hydroponics/grown/towercap.dm b/code/modules/hydroponics/grown/towercap.dm index 73a2ba14f3..89206342b1 100644 --- a/code/modules/hydroponics/grown/towercap.dm +++ b/code/modules/hydroponics/grown/towercap.dm @@ -68,7 +68,7 @@ var/obj/item/reagent_containers/food/snacks/grown/leaf = W if(leaf.dry) user.show_message("You wrap \the [W] around the log, turning it into a torch!") - var/obj/item/device/flashlight/flare/torch/T = new /obj/item/device/flashlight/flare/torch(user.loc) + var/obj/item/flashlight/flare/torch/T = new /obj/item/flashlight/flare/torch(user.loc) usr.dropItemToGround(W) usr.put_in_active_hand(T) qdel(leaf) diff --git a/code/modules/hydroponics/growninedible.dm b/code/modules/hydroponics/growninedible.dm index 1c53f296cc..5aeef19b1a 100644 --- a/code/modules/hydroponics/growninedible.dm +++ b/code/modules/hydroponics/growninedible.dm @@ -34,7 +34,7 @@ /obj/item/grown/attackby(obj/item/O, mob/user, params) ..() - if (istype(O, /obj/item/device/plant_analyzer)) + if (istype(O, /obj/item/plant_analyzer)) var/msg = "*---------*\n This is \a [src]\n" if(seed) msg += seed.get_analyzer_text() @@ -47,13 +47,6 @@ return 1 return 0 - -/obj/item/grown/Crossed(atom/movable/AM) - if(seed) - for(var/datum/plant_gene/trait/T in seed.genes) - T.on_cross(src, AM) - ..() - /obj/item/grown/throw_impact(atom/hit_atom) if(!..()) //was it caught by a mob? if(seed) diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index 1c3509fa4e..31e888fdad 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -1,5 +1,5 @@ // Plant analyzer -/obj/item/device/plant_analyzer +/obj/item/plant_analyzer name = "plant analyzer" desc = "A scanner used to evaluate a plant's various areas of growth." icon = 'icons/obj/device.dmi' diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index f460b3fbed..3890c8e317 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -59,9 +59,6 @@ if(default_deconstruction_screwdriver(user, "hydrotray3", "hydrotray3", I)) return - if(exchange_parts(user, I)) - return - if(default_pry_open(I)) return @@ -761,7 +758,7 @@ else to_chat(user, "[src] already has seeds in it!") - else if(istype(O, /obj/item/device/plant_analyzer)) + else if(istype(O, /obj/item/plant_analyzer)) if(myseed) to_chat(user, "*** [myseed.plantname] ***" ) to_chat(user, "- Plant Age: [age]") @@ -787,11 +784,8 @@ else if(istype(O, /obj/item/storage/bag/plants)) attack_hand(user) - var/obj/item/storage/bag/plants/S = O for(var/obj/item/reagent_containers/food/snacks/grown/G in locate(user.x,user.y,user.z)) - if(!S.can_be_inserted(G)) - return - S.handle_item_insertion(G, 1) + O.SendSignal(COMSIG_TRY_STORAGE_INSERT, G, user, TRUE) else if(istype(O, /obj/item/wrench) && unwrenchable) if(using_irrigation) diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm index 563af7866f..97bf2a31b9 100644 --- a/code/modules/hydroponics/plant_genes.dm +++ b/code/modules/hydroponics/plant_genes.dm @@ -161,9 +161,6 @@ /datum/plant_gene/trait/proc/on_consume(obj/item/reagent_containers/food/snacks/grown/G, mob/living/carbon/target) return -/datum/plant_gene/trait/proc/on_cross(obj/item/reagent_containers/food/snacks/grown/G, atom/target) - return - /datum/plant_gene/trait/proc/on_slip(obj/item/reagent_containers/food/snacks/grown/G, mob/living/carbon/target) return @@ -190,23 +187,21 @@ rate = 1.6 examine_line = "It has a very slippery skin." -/datum/plant_gene/trait/slip/on_cross(obj/item/reagent_containers/food/snacks/grown/G, atom/target) - if(iscarbon(target)) - var/obj/item/seeds/seed = G.seed - var/mob/living/carbon/M = target +/datum/plant_gene/trait/slip/on_new(obj/item/reagent_containers/food/snacks/grown/G, newloc) + ..() + if(istype(G) && ispath(G.trash, /obj/item/grown)) + return + var/obj/item/seeds/seed = G.seed + var/stun_len = seed.potency * rate - if(istype(G) && ispath(G.trash, /obj/item/grown)) - return - var/stun_len = seed.potency * rate + if(!istype(G, /obj/item/grown/bananapeel) && (!G.reagents || !G.reagents.has_reagent("lube"))) + stun_len /= 3 - if(!istype(G, /obj/item/grown/bananapeel) && (!G.reagents || !G.reagents.has_reagent("lube"))) - stun_len /= 3 + G.AddComponent(/datum/component/slippery, min(stun_len,140), NONE, CALLBACK(src, .proc/handle_slip, G)) - var/knockdown = min(stun_len, 140) - - if(M.slip(knockdown, G)) - for(var/datum/plant_gene/trait/T in seed.genes) - T.on_slip(G, M) +/datum/plant_gene/trait/slip/proc/handle_slip(obj/item/reagent_containers/food/snacks/grown/G, mob/M) + for(var/datum/plant_gene/trait/T in G.seed.genes) + T.on_slip(G, M) /datum/plant_gene/trait/cell_charge // Cell recharging trait. Charges all mob's power cells to (potency*rate)% mark when eaten. diff --git a/code/modules/hydroponics/seed_extractor.dm b/code/modules/hydroponics/seed_extractor.dm index cd8268c596..3d0ffdfd53 100644 --- a/code/modules/hydroponics/seed_extractor.dm +++ b/code/modules/hydroponics/seed_extractor.dm @@ -62,9 +62,6 @@ if(default_deconstruction_screwdriver(user, "sextractor_open", "sextractor", O)) return - if(exchange_parts(user, O)) - return - if(default_pry_open(O)) return @@ -74,7 +71,7 @@ if(default_deconstruction_crowbar(O)) return - if (istype(O, /obj/item/storage/bag/plants)) + if(istype(O, /obj/item/storage/bag/plants)) var/obj/item/storage/P = O var/loaded = 0 for(var/obj/item/seeds/G in P.contents) @@ -83,7 +80,7 @@ ++loaded add_seed(G) if (loaded) - to_chat(user, "You put the seeds from \the [O.name] into [src].") + to_chat(user, "You put as many seeds from \the [O.name] into [src] as you can.") else to_chat(user, "There are no seeds in \the [O.name].") return @@ -122,6 +119,7 @@ src.amount = am /obj/machinery/seed_extractor/ui_interact(mob/user) + . = ..() if (stat) return FALSE @@ -175,21 +173,21 @@ /obj/machinery/seed_extractor/proc/add_seed(obj/item/seeds/O) if(contents.len >= 999) to_chat(usr, "\The [src] is full.") - return 0 + return FALSE - if(ismob(O.loc)) + GET_COMPONENT_FROM(STR, /datum/component/storage, O.loc) + if(STR) + if(!STR.remove_from_storage(O,src)) + return FALSE + else if(ismob(O.loc)) var/mob/M = O.loc if(!M.transferItemToLoc(O, src)) - return 0 - else if(istype(O.loc, /obj/item/storage)) - var/obj/item/storage/S = O.loc - S.remove_from_storage(O,src) + return FALSE - . = 1 + . = TRUE for (var/datum/seed_pile/N in piles) if (O.plantname == N.name && O.lifespan == N.lifespan && O.endurance == N.endurance && O.maturation == N.maturation && O.production == N.production && O.yield == N.yield && O.potency == N.potency) ++N.amount return piles += new /datum/seed_pile(O.plantname, O.lifespan, O.endurance, O.maturation, O.production, O.yield, O.potency) - return diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index f0c3e18cd9..4ba1aa0c33 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -311,7 +311,7 @@ return /obj/item/seeds/attackby(obj/item/O, mob/user, params) - if (istype(O, /obj/item/device/plant_analyzer)) + if (istype(O, /obj/item/plant_analyzer)) to_chat(user, "*---------*\n This is \a [src].") var/text = get_analyzer_text() if(text) diff --git a/code/modules/integrated_electronics/core/analyzer.dm b/code/modules/integrated_electronics/core/analyzer.dm index bd7804bf45..89b990f352 100644 --- a/code/modules/integrated_electronics/core/analyzer.dm +++ b/code/modules/integrated_electronics/core/analyzer.dm @@ -1,4 +1,4 @@ -/obj/item/device/integrated_electronics/analyzer +/obj/item/integrated_electronics/analyzer name = "circuit analyzer" desc = "This tool can scan an assembly and generate code necessary to recreate it in a circuit printer." icon = 'icons/obj/assemblies/electronic_tools.dmi' @@ -6,8 +6,8 @@ flags_1 = CONDUCT_1 w_class = WEIGHT_CLASS_SMALL -/obj/item/device/integrated_electronics/analyzer/afterattack(var/atom/A, var/mob/living/user) - if(istype(A, /obj/item/device/electronic_assembly)) +/obj/item/integrated_electronics/analyzer/afterattack(var/atom/A, var/mob/living/user) + if(istype(A, /obj/item/electronic_assembly)) var/saved = "[A.name] analyzed! On circuit printers with cloning enabled, you may use the code below to clone the circuit:

    [SScircuit.save_electronic_assembly(A)]" if(saved) to_chat(user, "You scan [A].") diff --git a/code/modules/integrated_electronics/core/assemblies.dm b/code/modules/integrated_electronics/core/assemblies.dm index df1ea857ac..d44682991a 100644 --- a/code/modules/integrated_electronics/core/assemblies.dm +++ b/code/modules/integrated_electronics/core/assemblies.dm @@ -1,7 +1,7 @@ #define IC_MAX_SIZE_BASE 25 #define IC_COMPLEXITY_BASE 75 -/obj/item/device/electronic_assembly +/obj/item/electronic_assembly name = "electronic assembly" obj_flags = CAN_BE_HIT desc = "It's a case, for building small electronics with." @@ -54,17 +54,17 @@ COLOR_ASSEMBLY_PURPLE ) -/obj/item/device/electronic_assembly/examine(mob/user) +/obj/item/electronic_assembly/examine(mob/user) . = ..() if(can_anchor) to_chat(user, "The anchoring bolts [anchored ? "are" : "can be"] wrenched in place and the maintainence panel [opened ? "can be" : "is"] screwed in place.") else to_chat(user, "The maintainence panel [opened ? "can be" : "is"] screwed in place.") -/obj/item/device/electronic_assembly/proc/check_interactivity(mob/user) +/obj/item/electronic_assembly/proc/check_interactivity(mob/user) return user.canUseTopic(src, BE_CLOSE) -/obj/item/device/electronic_assembly/Collide(atom/AM) +/obj/item/electronic_assembly/Collide(atom/AM) collw = AM .=..() if((istype(collw, /obj/machinery/door/airlock) || istype(collw, /obj/machinery/door/window)) && (!isnull(access_card))) @@ -72,7 +72,7 @@ if(D.check_access(access_card)) D.open() -/obj/item/device/electronic_assembly/Initialize() +/obj/item/electronic_assembly/Initialize() .=..() START_PROCESSING(SScircuit, src) materials[MAT_METAL] = round((max_complexity + max_components) / 4) * SScircuit.cost_multiplier @@ -88,14 +88,14 @@ access_card = new /obj/item/card/id(src) -/obj/item/device/electronic_assembly/Destroy() +/obj/item/electronic_assembly/Destroy() STOP_PROCESSING(SScircuit, src) for(var/datum/atom_hud/data/diagnostic/diag_hud in GLOB.huds) diag_hud.remove_from_hud(src) QDEL_NULL(access_card) return ..() -/obj/item/device/electronic_assembly/process() +/obj/item/electronic_assembly/process() handle_idle_power() check_pulling() @@ -103,7 +103,7 @@ diag_hud_set_circuithealth() diag_hud_set_circuitcell() -/obj/item/device/electronic_assembly/proc/handle_idle_power() +/obj/item/electronic_assembly/proc/handle_idle_power() // First we generate power. for(var/obj/item/integrated_circuit/passive/power/P in assembly_components) P.make_energy() @@ -115,10 +115,10 @@ if(!draw_power(IC.power_draw_idle)) IC.power_fail() -/obj/item/device/electronic_assembly/interact(mob/user) +/obj/item/electronic_assembly/interact(mob/user) ui_interact(user) -/obj/item/device/electronic_assembly/ui_interact(mob/user) +/obj/item/electronic_assembly/ui_interact(mob/user) . = ..() if(!check_interactivity(user)) return @@ -176,7 +176,7 @@ HTML += "" user << browse(HTML, "window=assembly-[REF(src)];size=655x350;border=1;can_resize=1;can_close=1;can_minimize=1") -/obj/item/device/electronic_assembly/Topic(href, href_list) +/obj/item/electronic_assembly/Topic(href, href_list) if(..()) return 1 @@ -235,7 +235,7 @@ interact(usr) // To refresh the UI. -/obj/item/device/electronic_assembly/pickup(mob/living/user) +/obj/item/electronic_assembly/pickup(mob/living/user) . = ..() //update diagnostic hud when picked up, true is used to force the hud to be hidden diag_hud_set_circuithealth(TRUE) @@ -243,7 +243,7 @@ diag_hud_set_circuitstat(TRUE) diag_hud_set_circuittracking(TRUE) -/obj/item/device/electronic_assembly/dropped(mob/user) +/obj/item/electronic_assembly/dropped(mob/user) . = ..() //update diagnostic hud when dropped diag_hud_set_circuithealth() @@ -251,7 +251,7 @@ diag_hud_set_circuitstat() diag_hud_set_circuittracking() -/obj/item/device/electronic_assembly/proc/rename() +/obj/item/electronic_assembly/proc/rename() var/mob/M = usr if(!check_interactivity(M)) return @@ -263,10 +263,10 @@ to_chat(M, "The machine now has a label reading '[input]'.") name = input -/obj/item/device/electronic_assembly/proc/can_move() +/obj/item/electronic_assembly/proc/can_move() return FALSE -/obj/item/device/electronic_assembly/update_icon() +/obj/item/electronic_assembly/update_icon() if(opened) icon_state = initial(icon_state) + "-open" else @@ -278,7 +278,7 @@ detail_overlay.color = detail_color add_overlay(detail_overlay) -/obj/item/device/electronic_assembly/examine(mob/user) +/obj/item/electronic_assembly/examine(mob/user) ..() for(var/I in assembly_components) var/obj/item/integrated_circuit/IC = I @@ -286,14 +286,14 @@ if(opened) interact(user) -/obj/item/device/electronic_assembly/proc/return_total_complexity() +/obj/item/electronic_assembly/proc/return_total_complexity() . = 0 var/obj/item/integrated_circuit/part for(var/p in assembly_components) part = p . += part.complexity -/obj/item/device/electronic_assembly/proc/return_total_size() +/obj/item/electronic_assembly/proc/return_total_size() . = 0 var/obj/item/integrated_circuit/part for(var/p in assembly_components) @@ -301,7 +301,7 @@ . += part.size // Returns true if the circuit made it inside. -/obj/item/device/electronic_assembly/proc/try_add_component(obj/item/integrated_circuit/IC, mob/user) +/obj/item/electronic_assembly/proc/try_add_component(obj/item/integrated_circuit/IC, mob/user) if(!opened) to_chat(user, "\The [src]'s hatch is closed, you can't put anything inside.") return FALSE @@ -334,7 +334,7 @@ // Actually puts the circuit inside, doesn't perform any checks. -/obj/item/device/electronic_assembly/proc/add_component(obj/item/integrated_circuit/component) +/obj/item/electronic_assembly/proc/add_component(obj/item/integrated_circuit/component) component.forceMove(get_object()) component.assembly = src assembly_components |= component @@ -350,7 +350,7 @@ diag_hud_set_circuittracking() -/obj/item/device/electronic_assembly/proc/try_remove_component(obj/item/integrated_circuit/IC, mob/user, silent) +/obj/item/electronic_assembly/proc/try_remove_component(obj/item/integrated_circuit/IC, mob/user, silent) if(!opened) if(!silent) to_chat(user, "[src]'s hatch is closed, so you can't fiddle with the internal components.") @@ -370,7 +370,7 @@ return TRUE // Actually removes the component, doesn't perform any checks. -/obj/item/device/electronic_assembly/proc/remove_component(obj/item/integrated_circuit/component) +/obj/item/electronic_assembly/proc/remove_component(obj/item/integrated_circuit/component) component.disconnect_all() component.forceMove(drop_location()) component.assembly = null @@ -387,20 +387,20 @@ diag_hud_set_circuittracking() -/obj/item/device/electronic_assembly/afterattack(atom/target, mob/user, proximity) +/obj/item/electronic_assembly/afterattack(atom/target, mob/user, proximity) for(var/obj/item/integrated_circuit/input/S in assembly_components) if(S.sense(target,user,proximity)) visible_message(" [user] waves [src] around [target].") -/obj/item/device/electronic_assembly/screwdriver_act(mob/living/user, obj/item/I) +/obj/item/electronic_assembly/screwdriver_act(mob/living/user, obj/item/I) I.play_tool_sound(src) opened = !opened to_chat(user, "You [opened ? "open" : "close"] the maintenance hatch of [src].") update_icon() return TRUE -/obj/item/device/electronic_assembly/attackby(obj/item/I, mob/living/user) +/obj/item/electronic_assembly/attackby(obj/item/I, mob/living/user) if(can_anchor && default_unfasten_wrench(user, I, 20)) return if(istype(I, /obj/item/integrated_circuit)) @@ -413,7 +413,7 @@ for(var/obj/item/integrated_circuit/input/S in assembly_components) S.attackby_react(I,user,user.a_intent) return ..() - else if(istype(I, /obj/item/device/multitool) || istype(I, /obj/item/device/integrated_electronics/wirer) || istype(I, /obj/item/device/integrated_electronics/debugger)) + else if(istype(I, /obj/item/multitool) || istype(I, /obj/item/integrated_electronics/wirer) || istype(I, /obj/item/integrated_electronics/debugger)) if(opened) interact(user) return TRUE @@ -442,8 +442,8 @@ to_chat(user, "You slot \the [cell] inside \the [src]'s power supplier.") interact(user) return TRUE - else if(istype(I, /obj/item/device/integrated_electronics/detailer)) - var/obj/item/device/integrated_electronics/detailer/D = I + else if(istype(I, /obj/item/integrated_electronics/detailer)) + var/obj/item/integrated_electronics/detailer/D = I detail_color = D.detail_color update_icon() else @@ -452,7 +452,7 @@ return ..() -/obj/item/device/electronic_assembly/attack_self(mob/user) +/obj/item/electronic_assembly/attack_self(mob/user) if(!check_interactivity(user)) return if(opened) @@ -487,32 +487,32 @@ if(choice) choice.ask_for_input(user) -/obj/item/device/electronic_assembly/emp_act(severity) +/obj/item/electronic_assembly/emp_act(severity) ..() for(var/i in 1 to contents.len) var/atom/movable/AM = contents[i] AM.emp_act(severity) // Returns true if power was successfully drawn. -/obj/item/device/electronic_assembly/proc/draw_power(amount) +/obj/item/electronic_assembly/proc/draw_power(amount) if(battery && battery.use(amount * GLOB.CELLRATE)) return TRUE return FALSE // Ditto for giving. -/obj/item/device/electronic_assembly/proc/give_power(amount) +/obj/item/electronic_assembly/proc/give_power(amount) if(battery && battery.give(amount * GLOB.CELLRATE)) return TRUE return FALSE -/obj/item/device/electronic_assembly/Moved(oldLoc, dir) +/obj/item/electronic_assembly/Moved(oldLoc, dir) for(var/I in assembly_components) var/obj/item/integrated_circuit/IC = I IC.ext_moved(oldLoc, dir) if(light) //Update lighting objects (From light circuits). update_light() -/obj/item/device/electronic_assembly/stop_pulling() +/obj/item/electronic_assembly/stop_pulling() for(var/I in assembly_components) var/obj/item/integrated_circuit/IC = I IC.stop_pulling() @@ -521,7 +521,7 @@ // Returns the object that is supposed to be used in attack messages, location checks, etc. // Override in children for special behavior. -/obj/item/device/electronic_assembly/proc/get_object() +/obj/item/electronic_assembly/proc/get_object() return src // Returns the location to be used for dropping items. @@ -535,46 +535,46 @@ return acting_object.drop_location() -/obj/item/device/electronic_assembly/attack_tk(mob/user) +/obj/item/electronic_assembly/attack_tk(mob/user) if(anchored) return ..() -/obj/item/device/electronic_assembly/attack_hand(mob/user) +/obj/item/electronic_assembly/attack_hand(mob/user) if(anchored) attack_self(user) return ..() -/obj/item/device/electronic_assembly/default //The /default electronic_assemblys are to allow the introduction of the new naming scheme without breaking old saves. +/obj/item/electronic_assembly/default //The /default electronic_assemblys are to allow the introduction of the new naming scheme without breaking old saves. name = "type-a electronic assembly" -/obj/item/device/electronic_assembly/calc +/obj/item/electronic_assembly/calc name = "type-b electronic assembly" icon_state = "setup_small_calc" desc = "It's a case, for building small electronics with. This one resembles a pocket calculator." -/obj/item/device/electronic_assembly/clam +/obj/item/electronic_assembly/clam name = "type-c electronic assembly" icon_state = "setup_small_clam" desc = "It's a case, for building small electronics with. This one has a clamshell design." -/obj/item/device/electronic_assembly/simple +/obj/item/electronic_assembly/simple name = "type-d electronic assembly" icon_state = "setup_small_simple" desc = "It's a case, for building small electronics with. This one has a simple design." -/obj/item/device/electronic_assembly/hook +/obj/item/electronic_assembly/hook name = "type-e electronic assembly" icon_state = "setup_small_hook" desc = "It's a case, for building small electronics with. This one looks like it has a belt clip, but it's purely decorative." -/obj/item/device/electronic_assembly/pda +/obj/item/electronic_assembly/pda name = "type-f electronic assembly" icon_state = "setup_small_pda" desc = "It's a case, for building small electronics with. This one resembles a PDA." -/obj/item/device/electronic_assembly/medium +/obj/item/electronic_assembly/medium name = "electronic mechanism" icon_state = "setup_medium" desc = "It's a case, for building medium-sized electronics with." @@ -582,35 +582,35 @@ max_components = IC_MAX_SIZE_BASE * 2 max_complexity = IC_COMPLEXITY_BASE * 2 -/obj/item/device/electronic_assembly/medium/default +/obj/item/electronic_assembly/medium/default name = "type-a electronic mechanism" -/obj/item/device/electronic_assembly/medium/box +/obj/item/electronic_assembly/medium/box name = "type-b electronic mechanism" icon_state = "setup_medium_box" desc = "It's a case, for building medium-sized electronics with. This one has a boxy design." -/obj/item/device/electronic_assembly/medium/clam +/obj/item/electronic_assembly/medium/clam name = "type-c electronic mechanism" icon_state = "setup_medium_clam" desc = "It's a case, for building medium-sized electronics with. This one has a clamshell design." -/obj/item/device/electronic_assembly/medium/medical +/obj/item/electronic_assembly/medium/medical name = "type-d electronic mechanism" icon_state = "setup_medium_med" desc = "It's a case, for building medium-sized electronics with. This one resembles some type of medical apparatus." -/obj/item/device/electronic_assembly/medium/gun +/obj/item/electronic_assembly/medium/gun name = "type-e electronic mechanism" icon_state = "setup_medium_gun" desc = "It's a case, for building medium-sized electronics with. This one resembles a gun, or some type of tool, if you're feeling optimistic." -/obj/item/device/electronic_assembly/medium/radio +/obj/item/electronic_assembly/medium/radio name = "type-f electronic mechanism" icon_state = "setup_medium_radio" desc = "It's a case, for building medium-sized electronics with. This one resembles an old radio." -/obj/item/device/electronic_assembly/large +/obj/item/electronic_assembly/large name = "electronic machine" icon_state = "setup_large" desc = "It's a case, for building large electronics with." @@ -618,35 +618,35 @@ max_components = IC_MAX_SIZE_BASE * 4 max_complexity = IC_COMPLEXITY_BASE * 4 -/obj/item/device/electronic_assembly/large/default +/obj/item/electronic_assembly/large/default name = "type-a electronic machine" -/obj/item/device/electronic_assembly/large/scope +/obj/item/electronic_assembly/large/scope name = "type-b electronic machine" icon_state = "setup_large_scope" desc = "It's a case, for building large electronics with. This one resembles an oscilloscope." -/obj/item/device/electronic_assembly/large/terminal +/obj/item/electronic_assembly/large/terminal name = "type-c electronic machine" icon_state = "setup_large_terminal" desc = "It's a case, for building large electronics with. This one resembles a computer terminal." -/obj/item/device/electronic_assembly/large/arm +/obj/item/electronic_assembly/large/arm name = "type-d electronic machine" icon_state = "setup_large_arm" desc = "It's a case, for building large electronics with. This one resembles a robotic arm." -/obj/item/device/electronic_assembly/large/tall +/obj/item/electronic_assembly/large/tall name = "type-e electronic machine" icon_state = "setup_large_tall" desc = "It's a case, for building large electronics with. This one has a tall design." -/obj/item/device/electronic_assembly/large/industrial +/obj/item/electronic_assembly/large/industrial name = "type-f electronic machine" icon_state = "setup_large_industrial" desc = "It's a case, for building large electronics with. This one resembles some kind of industrial machinery." -/obj/item/device/electronic_assembly/drone +/obj/item/electronic_assembly/drone name = "electronic drone" icon_state = "setup_drone" desc = "It's a case, for building mobile electronics with." @@ -656,38 +656,38 @@ allowed_circuit_action_flags = IC_ACTION_MOVEMENT | IC_ACTION_COMBAT | IC_ACTION_LONG_RANGE can_anchor = FALSE -/obj/item/device/electronic_assembly/drone/can_move() +/obj/item/electronic_assembly/drone/can_move() return TRUE -/obj/item/device/electronic_assembly/drone/default +/obj/item/electronic_assembly/drone/default name = "type-a electronic drone" -/obj/item/device/electronic_assembly/drone/arms +/obj/item/electronic_assembly/drone/arms name = "type-b electronic drone" icon_state = "setup_drone_arms" desc = "It's a case, for building mobile electronics with. This one is armed and dangerous." -/obj/item/device/electronic_assembly/drone/secbot +/obj/item/electronic_assembly/drone/secbot name = "type-c electronic drone" icon_state = "setup_drone_secbot" desc = "It's a case, for building mobile electronics with. This one resembles a Securitron." -/obj/item/device/electronic_assembly/drone/medbot +/obj/item/electronic_assembly/drone/medbot name = "type-d electronic drone" icon_state = "setup_drone_medbot" desc = "It's a case, for building mobile electronics with. This one resembles a Medibot." -/obj/item/device/electronic_assembly/drone/genbot +/obj/item/electronic_assembly/drone/genbot name = "type-e electronic drone" icon_state = "setup_drone_genbot" desc = "It's a case, for building mobile electronics with. This one has a generic bot design." -/obj/item/device/electronic_assembly/drone/android +/obj/item/electronic_assembly/drone/android name = "type-f electronic drone" icon_state = "setup_drone_android" desc = "It's a case, for building mobile electronics with. This one has a hominoid design." -/obj/item/device/electronic_assembly/wallmount +/obj/item/electronic_assembly/wallmount name = "wall-mounted electronic assembly" icon_state = "setup_wallmount_medium" desc = "It's a case, for building medium-sized electronics with. It has a magnetized backing to allow it to stick to walls, but you'll still need to wrench the anchoring bolts in place to keep it on." @@ -695,7 +695,7 @@ max_components = IC_MAX_SIZE_BASE * 2 max_complexity = IC_COMPLEXITY_BASE * 2 -/obj/item/device/electronic_assembly/wallmount/heavy +/obj/item/electronic_assembly/wallmount/heavy name = "heavy wall-mounted electronic assembly" icon_state = "setup_wallmount_large" desc = "It's a case, for building large electronics with. It has a magnetized backing to allow it to stick to walls, but you'll still need to wrench the anchoring bolts in place to keep it on." @@ -703,7 +703,7 @@ max_components = IC_MAX_SIZE_BASE * 4 max_complexity = IC_COMPLEXITY_BASE * 4 -/obj/item/device/electronic_assembly/wallmount/light +/obj/item/electronic_assembly/wallmount/light name = "light wall-mounted electronic assembly" icon_state = "setup_wallmount_small" desc = "It's a case, for building small electronics with. It has a magnetized backing to allow it to stick to walls, but you'll still need to wrench the anchoring bolts in place to keep it on." @@ -711,7 +711,7 @@ max_components = IC_MAX_SIZE_BASE max_complexity = IC_COMPLEXITY_BASE -/obj/item/device/electronic_assembly/wallmount/proc/mount_assembly(turf/on_wall, mob/user) //Yeah, this is admittedly just an abridged and kitbashed version of the wallframe attach procs. +/obj/item/electronic_assembly/wallmount/proc/mount_assembly(turf/on_wall, mob/user) //Yeah, this is admittedly just an abridged and kitbashed version of the wallframe attach procs. if(get_dist(on_wall,user)>1) return var/ndir = get_dir(on_wall, user) diff --git a/code/modules/integrated_electronics/core/debugger.dm b/code/modules/integrated_electronics/core/debugger.dm index 666fcf00d6..6abaf316da 100644 --- a/code/modules/integrated_electronics/core/debugger.dm +++ b/code/modules/integrated_electronics/core/debugger.dm @@ -1,4 +1,4 @@ -/obj/item/device/integrated_electronics/debugger +/obj/item/integrated_electronics/debugger name = "circuit debugger" desc = "This small tool allows one working with custom machinery to directly set data to a specific pin, useful for writing \ settings to specific circuits, or for debugging purposes. It can also pulse activation pins." @@ -9,7 +9,7 @@ var/data_to_write = null var/accepting_refs = FALSE -/obj/item/device/integrated_electronics/debugger/attack_self(mob/user) +/obj/item/integrated_electronics/debugger/attack_self(mob/user) var/type_to_use = input("Please choose a type to use.","[src] type setting") as null|anything in list("string","number","ref", "null") if(!user.IsAdvancedToolUser()) return @@ -36,7 +36,7 @@ data_to_write = null to_chat(user, "You set \the [src]'s memory to absolutely nothing.") -/obj/item/device/integrated_electronics/debugger/afterattack(atom/target, mob/living/user, proximity) +/obj/item/integrated_electronics/debugger/afterattack(atom/target, mob/living/user, proximity) if(accepting_refs && proximity) data_to_write = WEAKREF(target) visible_message("[user] slides \a [src]'s over \the [target].") @@ -46,7 +46,7 @@ else return ..() -/obj/item/device/integrated_electronics/debugger/proc/write_data(var/datum/integrated_io/io, mob/user) +/obj/item/integrated_electronics/debugger/proc/write_data(var/datum/integrated_io/io, mob/user) if(io.io_type == DATA_CHANNEL) io.write_data_to_pin(data_to_write) var/data_to_show = data_to_write diff --git a/code/modules/integrated_electronics/core/detailer.dm b/code/modules/integrated_electronics/core/detailer.dm index ef2cd3a138..9a718df73e 100644 --- a/code/modules/integrated_electronics/core/detailer.dm +++ b/code/modules/integrated_electronics/core/detailer.dm @@ -1,4 +1,4 @@ -/obj/item/device/integrated_electronics/detailer +/obj/item/integrated_electronics/detailer name = "assembly detailer" desc = "A combination autopainter and flash anodizer designed to give electronic assemblies a colorful, wear-resistant finish." icon = 'icons/obj/assemblies/electronic_tools.dmi' @@ -27,17 +27,17 @@ "purple" = COLOR_ASSEMBLY_PURPLE ) -/obj/item/device/integrated_electronics/detailer/Initialize() +/obj/item/integrated_electronics/detailer/Initialize() .=..() update_icon() -/obj/item/device/integrated_electronics/detailer/update_icon() +/obj/item/integrated_electronics/detailer/update_icon() cut_overlays() var/mutable_appearance/detail_overlay = mutable_appearance('icons/obj/assemblies/electronic_tools.dmi', "detailer-color") detail_overlay.color = detail_color add_overlay(detail_overlay) -/obj/item/device/integrated_electronics/detailer/attack_self(mob/user) +/obj/item/integrated_electronics/detailer/attack_self(mob/user) var/color_choice = input(user, "Select color.", "Assembly Detailer") as null|anything in color_list if(!color_list[color_choice]) return diff --git a/code/modules/integrated_electronics/core/helpers.dm b/code/modules/integrated_electronics/core/helpers.dm index 4393170c01..5567683006 100644 --- a/code/modules/integrated_electronics/core/helpers.dm +++ b/code/modules/integrated_electronics/core/helpers.dm @@ -99,7 +99,7 @@ // Locates a pin in the assembly when given component number, pin type and pin number // Components list can be supplied from the outside, for use in savefiles -/obj/item/device/electronic_assembly/proc/get_pin_ref(component_number, pin_type, pin_number, list/components) +/obj/item/electronic_assembly/proc/get_pin_ref(component_number, pin_type, pin_number, list/components) if(!components) components = assembly_components @@ -112,7 +112,7 @@ // Same as get_pin_ref, but takes in a list of 3 parameters (same format as get_pin_parameters) // and performs extra sanity checks on parameters list and index numbers -/obj/item/device/electronic_assembly/proc/get_pin_ref_list(list/parameters, list/components) +/obj/item/electronic_assembly/proc/get_pin_ref_list(list/parameters, list/components) if(!components) components = assembly_components diff --git a/code/modules/integrated_electronics/core/integrated_circuit.dm b/code/modules/integrated_electronics/core/integrated_circuit.dm index 2f309956f9..60fe6fd9cd 100644 --- a/code/modules/integrated_electronics/core/integrated_circuit.dm +++ b/code/modules/integrated_electronics/core/integrated_circuit.dm @@ -5,7 +5,7 @@ icon_state = "template" w_class = WEIGHT_CLASS_TINY materials = list() // To be filled later - var/obj/item/device/electronic_assembly/assembly // Reference to the assembly holding this circuit, if any. + var/obj/item/electronic_assembly/assembly // Reference to the assembly holding this circuit, if any. var/extended_desc var/list/inputs = list() var/list/inputs_default = list()// Assoc list which will fill a pin with data upon creation. e.g. "2" = 0 will set input pin 2 to equal 0 instead of null. @@ -255,14 +255,14 @@ a creative player the means to solve many problems. Circuits are held inside an if(href_list["link"]) linked = locate(href_list["link"]) in pin.linked - if(istype(held_item, /obj/item/device/integrated_electronics) || istype(held_item, /obj/item/device/multitool)) + if(istype(held_item, /obj/item/integrated_electronics) || istype(held_item, /obj/item/multitool)) pin.handle_wire(linked, held_item, href_list["act"], usr) else to_chat(usr, "You can't do a whole lot without the proper tools.") if(href_list["scan"]) - if(istype(held_item, /obj/item/device/integrated_electronics/debugger)) - var/obj/item/device/integrated_electronics/debugger/D = held_item + if(istype(held_item, /obj/item/integrated_electronics/debugger)) + var/obj/item/integrated_electronics/debugger/D = held_item if(D.accepting_refs) D.afterattack(src, usr, TRUE) else diff --git a/code/modules/integrated_electronics/core/pins.dm b/code/modules/integrated_electronics/core/pins.dm index ca04cc2f3a..cc81c20081 100644 --- a/code/modules/integrated_electronics/core/pins.dm +++ b/code/modules/integrated_electronics/core/pins.dm @@ -105,8 +105,8 @@ D [1]/ || push_data() /datum/integrated_io/proc/handle_wire(datum/integrated_io/linked_pin, obj/item/tool, action, mob/living/user) - if(istype(tool, /obj/item/device/multitool)) - var/obj/item/device/multitool/multitool = tool + if(istype(tool, /obj/item/multitool)) + var/obj/item/multitool/multitool = tool switch(action) if("wire") multitool.wire(src, user) @@ -119,15 +119,15 @@ D [1]/ || ask_for_pin_data(user) return TRUE - else if(istype(tool, /obj/item/device/integrated_electronics/wirer)) - var/obj/item/device/integrated_electronics/wirer/wirer = tool + else if(istype(tool, /obj/item/integrated_electronics/wirer)) + var/obj/item/integrated_electronics/wirer/wirer = tool if(linked_pin) wirer.wire(linked_pin, user) else wirer.wire(src, user) - else if(istype(tool, /obj/item/device/integrated_electronics/debugger)) - var/obj/item/device/integrated_electronics/debugger/debugger = tool + else if(istype(tool, /obj/item/integrated_electronics/debugger)) + var/obj/item/integrated_electronics/debugger/debugger = tool debugger.write_data(src, user) return TRUE diff --git a/code/modules/integrated_electronics/core/printer.dm b/code/modules/integrated_electronics/core/printer.dm index 5576b42afc..b43ec3b34e 100644 --- a/code/modules/integrated_electronics/core/printer.dm +++ b/code/modules/integrated_electronics/core/printer.dm @@ -1,6 +1,6 @@ #define MAX_CIRCUIT_CLONE_TIME 3 MINUTES //circuit slow-clones can only take up this amount of time to complete -/obj/item/device/integrated_circuit_printer +/obj/item/integrated_circuit_printer name = "integrated circuit printer" desc = "A portable(ish) machine made to print tiny modular circuitry out of metal." icon = 'icons/obj/assemblies/electronic_tools.dmi' @@ -16,30 +16,30 @@ var/recycling = FALSE // If an assembly is being emptied into this printer var/list/program // Currently loaded save, in form of list -/obj/item/device/integrated_circuit_printer/proc/check_interactivity(mob/user) +/obj/item/integrated_circuit_printer/proc/check_interactivity(mob/user) return user.canUseTopic(src, BE_CLOSE) -/obj/item/device/integrated_circuit_printer/upgraded +/obj/item/integrated_circuit_printer/upgraded upgraded = TRUE can_clone = TRUE fast_clone = TRUE -/obj/item/device/integrated_circuit_printer/debug //translation: "integrated_circuit_printer/local_server" +/obj/item/integrated_circuit_printer/debug //translation: "integrated_circuit_printer/local_server" name = "debug circuit printer" debug = TRUE upgraded = TRUE can_clone = TRUE w_class = WEIGHT_CLASS_TINY -/obj/item/device/integrated_circuit_printer/Initialize() +/obj/item/integrated_circuit_printer/Initialize() . = ..() - AddComponent(/datum/component/material_container, list(MAT_METAL), MINERAL_MATERIAL_AMOUNT * 25, TRUE, list(/obj/item/stack, /obj/item/integrated_circuit, /obj/item/device/electronic_assembly)) + AddComponent(/datum/component/material_container, list(MAT_METAL), MINERAL_MATERIAL_AMOUNT * 25, TRUE, list(/obj/item/stack, /obj/item/integrated_circuit, /obj/item/electronic_assembly)) -/obj/item/device/integrated_circuit_printer/Destroy() +/obj/item/integrated_circuit_printer/Destroy() STOP_PROCESSING(SSprocessing, src) return ..() -/obj/item/device/integrated_circuit_printer/process() +/obj/item/integrated_circuit_printer/process() if(!cloning) STOP_PROCESSING(SSprocessing, src) if(world.time >= clone_countdown || fast_clone) @@ -50,7 +50,7 @@ cloning = FALSE STOP_PROCESSING(SSprocessing, src) -/obj/item/device/integrated_circuit_printer/attackby(obj/item/O, mob/user) +/obj/item/integrated_circuit_printer/attackby(obj/item/O, mob/user) if(istype(O, /obj/item/disk/integrated_circuit/upgrade/advanced)) if(upgraded) to_chat(user, "[src] already has this upgrade. ") @@ -69,8 +69,8 @@ interact(user) return TRUE - if(istype(O, /obj/item/device/electronic_assembly)) - var/obj/item/device/electronic_assembly/EA = O //microtransactions not included + if(istype(O, /obj/item/electronic_assembly)) + var/obj/item/electronic_assembly/EA = O //microtransactions not included if(EA.assembly_components.len) if(recycling) return @@ -109,10 +109,10 @@ return ..() -/obj/item/device/integrated_circuit_printer/attack_self(mob/user) +/obj/item/integrated_circuit_printer/attack_self(mob/user) interact(user) -/obj/item/device/integrated_circuit_printer/interact(mob/user) +/obj/item/integrated_circuit_printer/interact(mob/user) if(isnull(current_category)) current_category = SScircuit.circuit_fabricator_recipe_list[1] @@ -170,7 +170,7 @@ user << browse(HTML, "window=integrated_printer;size=600x500;border=1;can_resize=1;can_close=1;can_minimize=1") -/obj/item/device/integrated_circuit_printer/Topic(href, href_list) +/obj/item/integrated_circuit_printer/Topic(href, href_list) if(!check_interactivity(usr)) return if(..()) @@ -186,12 +186,14 @@ return TRUE var/cost = 400 - if(ispath(build_type, /obj/item/device/electronic_assembly)) - var/obj/item/device/electronic_assembly/E = SScircuit.cached_assemblies[build_type] + if(ispath(build_type, /obj/item/electronic_assembly)) + var/obj/item/electronic_assembly/E = SScircuit.cached_assemblies[build_type] cost = E.materials[MAT_METAL] else if(ispath(build_type, /obj/item/integrated_circuit)) var/obj/item/integrated_circuit/IC = SScircuit.cached_components[build_type] cost = IC.materials[MAT_METAL] + else if(!build_type in SScircuit.circuit_fabricator_recipe_list["Tools"]) + return var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) @@ -202,8 +204,8 @@ var/obj/item/built = new build_type(drop_location()) usr.put_in_hands(built) - if(istype(built, /obj/item/device/electronic_assembly)) - var/obj/item/device/electronic_assembly/E = built + if(istype(built, /obj/item/electronic_assembly)) + var/obj/item/electronic_assembly/E = built E.opened = TRUE E.update_icon() //reupdate diagnostic hud because it was put_in_hands() and not pickup()'ed diff --git a/code/modules/integrated_electronics/core/saved_circuits.dm b/code/modules/integrated_electronics/core/saved_circuits.dm index abb183dfaf..b389b0d2d9 100644 --- a/code/modules/integrated_electronics/core/saved_circuits.dm +++ b/code/modules/integrated_electronics/core/saved_circuits.dm @@ -115,7 +115,7 @@ // Saves type and modified name (if any) to a list // The list is converted to JSON down the line. -/obj/item/device/electronic_assembly/proc/save() +/obj/item/electronic_assembly/proc/save() var/list/assembly_params = list() // Save initial name used for differentiating assemblies @@ -138,7 +138,7 @@ // Verifies a list of assembly parameters // Returns null on success, error name on failure -/obj/item/device/electronic_assembly/proc/verify_save(list/assembly_params) +/obj/item/electronic_assembly/proc/verify_save(list/assembly_params) // Validate name and color if(assembly_params["name"] && !reject_bad_name(assembly_params["name"], TRUE)) return "Bad assembly name." @@ -147,7 +147,7 @@ // Loads assembly parameters from a list // Doesn't verify any of the parameters it loads, this is the job of verify_save() -/obj/item/device/electronic_assembly/proc/load(list/assembly_params) +/obj/item/electronic_assembly/proc/load(list/assembly_params) // Load modified name, if any. if(assembly_params["name"]) name = assembly_params["name"] @@ -165,7 +165,7 @@ // Attempts to save an assembly into a save file format. // Returns null if assembly is not complete enough to be saved. -/datum/controller/subsystem/processing/circuit/proc/save_electronic_assembly(obj/item/device/electronic_assembly/assembly) +/datum/controller/subsystem/processing/circuit/proc/save_electronic_assembly(obj/item/electronic_assembly/assembly) // No components? Don't even try to save it. if(!length(assembly.assembly_components)) return @@ -241,7 +241,7 @@ // Validate type, get a temporary component var/assembly_path = all_assemblies[assembly_params["type"]] - var/obj/item/device/electronic_assembly/assembly = cached_assemblies[assembly_path] + var/obj/item/electronic_assembly/assembly = cached_assemblies[assembly_path] if(!assembly) return "Invalid assembly type." @@ -335,8 +335,8 @@ // Block 1. Assembly. var/list/assembly_params = blocks["assembly"] - var/obj/item/device/electronic_assembly/assembly_path = all_assemblies[assembly_params["type"]] - var/obj/item/device/electronic_assembly/assembly = new assembly_path(null) + var/obj/item/electronic_assembly/assembly_path = all_assemblies[assembly_params["type"]] + var/obj/item/electronic_assembly/assembly = new assembly_path(null) assembly.load(assembly_params) diff --git a/code/modules/integrated_electronics/core/wirer.dm b/code/modules/integrated_electronics/core/wirer.dm index bd54a7d8e6..c68a61c175 100644 --- a/code/modules/integrated_electronics/core/wirer.dm +++ b/code/modules/integrated_electronics/core/wirer.dm @@ -3,7 +3,7 @@ #define UNWIRE "unwire" #define UNWIRING "unwiring" -/obj/item/device/integrated_electronics/wirer +/obj/item/integrated_electronics/wirer name = "circuit wirer" desc = "It's a small wiring tool, with a wire roll, electric soldering iron, wire cutter, and more in one package. \ The wires used are generally useful for small electronics, such as circuitboards and breadboards, as opposed to larger wires \ @@ -15,10 +15,10 @@ var/datum/integrated_io/selected_io = null var/mode = WIRE -/obj/item/device/integrated_electronics/wirer/update_icon() +/obj/item/integrated_electronics/wirer/update_icon() icon_state = "wirer-[mode]" -/obj/item/device/integrated_electronics/wirer/proc/wire(var/datum/integrated_io/io, mob/user) +/obj/item/integrated_electronics/wirer/proc/wire(var/datum/integrated_io/io, mob/user) if(!io.holder.assembly) to_chat(user, "\The [io.holder] needs to be secured inside an assembly first.") return @@ -76,7 +76,7 @@ [io.name] are not connected.
    ") return -/obj/item/device/integrated_electronics/wirer/attack_self(mob/user) +/obj/item/integrated_electronics/wirer/attack_self(mob/user) switch(mode) if(WIRE) mode = UNWIRE diff --git a/code/modules/integrated_electronics/subtypes/input.dm b/code/modules/integrated_electronics/subtypes/input.dm index 86d85f7876..042d6a3616 100644 --- a/code/modules/integrated_electronics/subtypes/input.dm +++ b/code/modules/integrated_electronics/subtypes/input.dm @@ -150,7 +150,7 @@ /obj/item/integrated_circuit/input/slime_scanner name = "slime_scanner" - desc = "A very small version of the xenobio analyser. This allows the machine to know every needed properties of slime." + desc = "A very small version of the xenobio analyser. This allows the machine to know every needed properties of slime. Output mutation list is non associative." icon_state = "medscan_adv" complexity = 12 inputs = list("target" = IC_PINTYPE_REF) @@ -259,7 +259,7 @@ /obj/item/integrated_circuit/input/gene_scanner name = "gene scanner" - desc = "This circuit will scan plant for traits and reagent genes." + desc = "This circuit will scan plant for traits and reagent genes. Output is non-associative." extended_desc = "This allows the machine to scan plants in trays for reagent and trait genes. \ It cannot scan seeds nor fruits, only plants." inputs = list( @@ -501,7 +501,7 @@ complexity = 6 name = "list advanced locator" desc = "This is needed for certain devices that demand list of names for a targets to act upon. This type locates something \ - that is standing in given radius up to 8 meters" + that is standing in given radius up to 8 meters. Output is non-associative. Input will only consider keys if associative." extended_desc = "The first pin requires a list of kinds of objects that you want the locator to acquire. It will locate nearby objects by name and description, \ and will then provide a list of all found objects which are similar. \ The second pin is a radius." @@ -524,28 +524,38 @@ var/datum/integrated_io/I = inputs[1] var/datum/integrated_io/O = outputs[1] O.data = null - var/turf/T = get_turf(src) - var/list/nearby_things = view(radius,T) - var/list/valid_things = list() var/list/input_list = list() input_list = I.data - for(var/item in input_list) - if(!isnull(item) && !isnum(item)) - if(istext(item)) - for(var/atom/thing in nearby_things) - if(findtext(addtext(thing.name," ",thing.desc), item, 1, 0) ) + if(length(input_list)) //if there is no input don't do anything. + var/turf/T = get_turf(src) + var/list/nearby_things = view(radius,T) + var/list/valid_things = list() + for(var/item in input_list) + if(!isnull(item) && !isnum(item)) + if(istext(item)) + for(var/i in nearby_things) + var/atom/thing = i + if(ismob(thing) && !isliving(thing)) + continue + if(findtext(addtext(thing.name," ",thing.desc), item, 1, 0) ) + valid_things.Add(WEAKREF(thing)) + else + var/atom/A = item + var/desired_type = A.type + for(var/i in nearby_things) + var/atom/thing = i + if(thing.type != desired_type) + continue + if(ismob(thing) && !isliving(thing)) + continue valid_things.Add(WEAKREF(thing)) - else - var/atom/A = item - var/desired_type = A.type - for(var/atom/thing in nearby_things) - if(thing.type != desired_type) - continue - valid_things.Add(WEAKREF(thing)) - if(valid_things.len) - O.data = valid_things - O.push_data() - activate_pin(2) + if(valid_things.len) + O.data = valid_things + O.push_data() + activate_pin(2) + else + O.push_data() + activate_pin(3) else O.push_data() activate_pin(3) @@ -583,12 +593,18 @@ var/atom/A = I.data.resolve() var/desired_type = A.type if(desired_type) - for(var/atom/thing in nearby_things) + for(var/i in nearby_things) + var/atom/thing = i + if(ismob(thing) && !isliving(thing)) + continue if(thing.type == desired_type) valid_things.Add(thing) else if(istext(I.data)) var/DT = I.data - for(var/atom/thing in nearby_things) + for(var/i in nearby_things) + var/atom/thing = i + if(ismob(thing) && !isliving(thing)) + continue if(findtext(addtext(thing.name," ",thing.desc), DT, 1, 0) ) valid_things.Add(thing) if(valid_things.len) @@ -599,10 +615,6 @@ O.push_data() activate_pin(3) - - - - /obj/item/integrated_circuit/input/signaler name = "integrated signaler" desc = "Signals from a signaler can be received with this, allowing for remote control. Additionally, it can send signals as well." @@ -688,8 +700,8 @@ will pulse whatever's connected to it. Pulsing the first activation pin will send a message. Message \ can be send to multiple recepients. Addresses must be separated with ; symbol." icon_state = "signal" - complexity = 4 - cooldown_per_use = 5 + complexity = 2 + cooldown_per_use = 1 inputs = list( "target NTNet addresses"= IC_PINTYPE_STRING, "data to send" = IC_PINTYPE_STRING, @@ -700,19 +712,20 @@ "address received" = IC_PINTYPE_STRING, "data received" = IC_PINTYPE_STRING, "secondary text received" = IC_PINTYPE_STRING, - "passkey" = IC_PINTYPE_STRING + "passkey" = IC_PINTYPE_STRING, + "is_broadcast" = IC_PINTYPE_BOOLEAN ) activators = list("send data" = IC_PINTYPE_PULSE_IN, "on data received" = IC_PINTYPE_PULSE_OUT) spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH action_flags = IC_ACTION_LONG_RANGE power_draw_per_use = 50 - var/datum/ntnet_connection/exonet = null var/address /obj/item/integrated_circuit/input/ntnet_packet/Initialize() . = ..() var/datum/component/ntnet_interface/net = LoadComponent(/datum/component/ntnet_interface) address = net.hardware_id + net.differentiate_broadcast = FALSE desc += "
    This circuit's NTNet hardware address is: [address]" /obj/item/integrated_circuit/input/ntnet_packet/do_work() @@ -723,20 +736,63 @@ var/datum/netdata/data = new data.recipient_ids = splittext(target_address, ";") - data.plaintext_data = message - data.plaintext_data_secondary = text - data.encrypted_passkey = key + data.standard_format_data(message, text, key) ntnet_send(data) /obj/item/integrated_circuit/input/ntnet_recieve(datum/netdata/data) set_pin_data(IC_OUTPUT, 1, data.sender_id) - set_pin_data(IC_OUTPUT, 2, data.plaintext_data) - set_pin_data(IC_OUTPUT, 3, data.plaintext_data_secondary) - set_pin_data(IC_OUTPUT, 4, data.encrypted_passkey) + set_pin_data(IC_OUTPUT, 2, data.data["data"]) + set_pin_data(IC_OUTPUT, 3, data.data["data_secondary"]) + set_pin_data(IC_OUTPUT, 4, data.data["encrypted_passkey"]) + set_pin_data(IC_OUTPUT, 5, data.broadcast) push_data() activate_pin(2) +/obj/item/integrated_circuit/input/ntnet_advanced + name = "Low level NTNet transreciever" + desc = "Enables the sending and receiving of messages on NTNet via packet data protocol. Allows advanced control of message contents and signalling. Must use associative lists. Outputs associative list. Has a slower transmission rate than normal NTNet circuits, due to increased data processing complexity.." + extended_desc = "Data can be send or received using the second pin on each side, \ + with additonal data reserved for the third pin. When a message is received, the second activation pin \ + will pulse whatever's connected to it. Pulsing the first activation pin will send a message. Message \ + can be send to multiple recepients. Addresses must be separated with ; symbol." + icon_state = "signal" + complexity = 4 + cooldown_per_use = 10 + inputs = list( + "target NTNet addresses"= IC_PINTYPE_STRING, + "data" = IC_PINTYPE_LIST, + ) + outputs = list("recieved data" = IC_PINTYPE_LIST, "is_broadcast" = IC_PINTYPE_BOOLEAN) + activators = list("send data" = IC_PINTYPE_PULSE_IN, "on data received" = IC_PINTYPE_PULSE_OUT) + spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH + action_flags = IC_ACTION_LONG_RANGE + power_draw_per_use = 50 + var/address + +/obj/item/integrated_circuit/input/ntnet_advanced/Initialize() + . = ..() + var/datum/component/ntnet_interface/net = LoadComponent(/datum/component/ntnet_interface) + address = net.hardware_id + net.differentiate_broadcast = FALSE + desc += "
    This circuit's NTNet hardware address is: [address]" + +/obj/item/integrated_circuit/input/ntnet_advanced/do_work() + var/target_address = get_pin_data(IC_INPUT, 1) + var/list/message = get_pin_data(IC_INPUT, 2) + if(!islist(message)) + message = list() + var/datum/netdata/data = new + data.recipient_ids = splittext(target_address, ";") + data.data = message + ntnet_send(data) + +/obj/item/integrated_circuit/input/ntnet_advanced/ntnet_recieve(datum/netdata/data) + set_pin_data(IC_OUTPUT, 1, data.data) + set_pin_data(IC_OUTPUT, 2, data.broadcast) + push_data() + activate_pin(2) + //This circuit gives information on where the machine is. /obj/item/integrated_circuit/input/gps name = "global positioning system" @@ -810,14 +866,15 @@ spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH power_draw_per_use = 120 -/obj/item/integrated_circuit/input/sensor/sense(var/atom/A,mob/user,prox) - if(!prox) +/obj/item/integrated_circuit/input/sensor/sense(atom/A, mob/user, prox) + if(!prox || !A || (ismob(A) && !isliving(A))) return FALSE if(!check_then_do_work()) return FALSE var/ignore_bags = get_pin_data(IC_INPUT, 1) if(ignore_bags) - if(istype(A, /obj/item/storage)) + GET_COMPONENT_FROM(STR, /datum/component/storage, A) + if(STR) return FALSE set_pin_data(IC_OUTPUT, 1, WEAKREF(A)) push_data() @@ -836,8 +893,8 @@ spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH power_draw_per_use = 120 -/obj/item/integrated_circuit/input/sensor/ranged/sense(var/atom/A,mob/user) - if(!user) +/obj/item/integrated_circuit/input/sensor/ranged/sense(atom/A, mob/user) + if(!user || !A || (ismob(A) && !isliving(A))) return FALSE if(user.client) if(!(A in view(user.client))) diff --git a/code/modules/integrated_electronics/subtypes/manipulation.dm b/code/modules/integrated_electronics/subtypes/manipulation.dm index 7e45902fe1..1744a468f5 100644 --- a/code/modules/integrated_electronics/subtypes/manipulation.dm +++ b/code/modules/integrated_electronics/subtypes/manipulation.dm @@ -45,7 +45,6 @@ if(installed_gun) to_chat(user, "There's already a weapon installed.") return - user.transferItemToLoc(gun,src) installed_gun = gun var/list/gun_properties = gun.get_turret_properties() @@ -79,7 +78,9 @@ to_chat(user, "There's no weapon to remove from the mechanism.") /obj/item/integrated_circuit/manipulation/weapon_firing/do_work() - if(!installed_gun) + if(!installed_gun || !installed_gun.handle_pins()) + return + if(!isturf(assembly.loc)) return set_pin_data(IC_OUTPUT, 1, WEAKREF(installed_gun)) push_data() @@ -490,7 +491,7 @@ var/target_y_rel = round(get_pin_data(IC_INPUT, 2)) var/obj/item/A = get_pin_data_as_type(IC_INPUT, 3, /obj/item) - if(!A || A.anchored || A.throwing) + if(!A || A.anchored || A.throwing || A == assembly) return if(max_w_class && (A.w_class > max_w_class)) diff --git a/code/modules/integrated_electronics/subtypes/power.dm b/code/modules/integrated_electronics/subtypes/power.dm index b3131663aa..018cd71006 100644 --- a/code/modules/integrated_electronics/subtypes/power.dm +++ b/code/modules/integrated_electronics/subtypes/power.dm @@ -40,6 +40,8 @@ var/atom/movable/AM = get_pin_data_as_type(IC_INPUT, 1, /atom/movable) if(!AM) return FALSE + if(istype(AM, /obj/item/gun/energy)) + return FALSE if(!assembly) return FALSE // Pointless to do everything else if there's no battery to draw from. var/obj/item/stock_parts/cell/cell = AM.get_cell() diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm index 799cc91ba9..458015db5e 100755 --- a/code/modules/jobs/job_types/captain.dm +++ b/code/modules/jobs/job_types/captain.dm @@ -34,9 +34,9 @@ Captain jobtype = /datum/job/captain id = /obj/item/card/id/gold - belt = /obj/item/device/pda/captain + belt = /obj/item/pda/captain glasses = /obj/item/clothing/glasses/sunglasses - ears = /obj/item/device/radio/headset/heads/captain/alt + ears = /obj/item/radio/headset/heads/captain/alt gloves = /obj/item/clothing/gloves/color/captain uniform = /obj/item/clothing/under/rank/captain suit = /obj/item/clothing/suit/armor/vest/capcarapace @@ -93,10 +93,10 @@ Head of Personnel jobtype = /datum/job/hop id = /obj/item/card/id/silver - belt = /obj/item/device/pda/heads/hop - ears = /obj/item/device/radio/headset/heads/hop + belt = /obj/item/pda/heads/hop + ears = /obj/item/radio/headset/heads/hop uniform = /obj/item/clothing/under/rank/head_of_personnel shoes = /obj/item/clothing/shoes/sneakers/brown head = /obj/item/clothing/head/hopcap backpack_contents = list(/obj/item/storage/box/ids=1,\ - /obj/item/melee/classic_baton/telescopic=1, /obj/item/device/modular_computer/tablet/preset/advanced = 1) + /obj/item/melee/classic_baton/telescopic=1, /obj/item/modular_computer/tablet/preset/advanced = 1) diff --git a/code/modules/jobs/job_types/cargo_service.dm b/code/modules/jobs/job_types/cargo_service.dm index 5c761cec25..479230e5be 100644 --- a/code/modules/jobs/job_types/cargo_service.dm +++ b/code/modules/jobs/job_types/cargo_service.dm @@ -22,8 +22,8 @@ Quartermaster name = "Quartermaster" jobtype = /datum/job/qm - belt = /obj/item/device/pda/quartermaster - ears = /obj/item/device/radio/headset/headset_cargo + belt = /obj/item/pda/quartermaster + ears = /obj/item/radio/headset/headset_cargo uniform = /obj/item/clothing/under/rank/cargo shoes = /obj/item/clothing/shoes/sneakers/brown glasses = /obj/item/clothing/glasses/sunglasses @@ -53,10 +53,10 @@ Cargo Technician name = "Cargo Technician" jobtype = /datum/job/cargo_tech - belt = /obj/item/device/pda/cargo - ears = /obj/item/device/radio/headset/headset_cargo + belt = /obj/item/pda/cargo + ears = /obj/item/radio/headset/headset_cargo uniform = /obj/item/clothing/under/rank/cargotech - l_hand = /obj/item/device/export_scanner + l_hand = /obj/item/export_scanner /* Shaft Miner @@ -82,13 +82,13 @@ Shaft Miner name = "Shaft Miner (Lavaland)" jobtype = /datum/job/mining - belt = /obj/item/device/pda/shaftminer - ears = /obj/item/device/radio/headset/headset_cargo/mining + belt = /obj/item/pda/shaftminer + ears = /obj/item/radio/headset/headset_cargo/mining shoes = /obj/item/clothing/shoes/workboots/mining gloves = /obj/item/clothing/gloves/color/black uniform = /obj/item/clothing/under/rank/miner/lavaland l_pocket = /obj/item/reagent_containers/hypospray/medipen/survival - r_pocket = /obj/item/device/flashlight/seclite + r_pocket = /obj/item/flashlight/seclite backpack_contents = list( /obj/item/storage/bag/ore=1,\ /obj/item/kitchen/knife/combat/survival=1,\ @@ -116,7 +116,7 @@ Shaft Miner /obj/item/storage/bag/ore=1, /obj/item/kitchen/knife/combat/survival=1, /obj/item/mining_voucher=1, - /obj/item/device/t_scanner/adv_mining_scanner/lesser=1, + /obj/item/t_scanner/adv_mining_scanner/lesser=1, /obj/item/gun/energy/kinetic_accelerator=1,\ /obj/item/stack/marker_beacon/ten=1) @@ -163,8 +163,8 @@ Bartender jobtype = /datum/job/bartender glasses = /obj/item/clothing/glasses/sunglasses/reagent - belt = /obj/item/device/pda/bar - ears = /obj/item/device/radio/headset/headset_srv + belt = /obj/item/pda/bar + ears = /obj/item/radio/headset/headset_srv uniform = /obj/item/clothing/under/rank/bartender suit = /obj/item/clothing/suit/armor/vest backpack_contents = list(/obj/item/storage/box/beanbag=1,/obj/item/book/granter/action/drink_fling=1) @@ -195,8 +195,8 @@ Cook name = "Cook" jobtype = /datum/job/cook - belt = /obj/item/device/pda/cook - ears = /obj/item/device/radio/headset/headset_srv + belt = /obj/item/pda/cook + ears = /obj/item/radio/headset/headset_srv uniform = /obj/item/clothing/under/rank/chef suit = /obj/item/clothing/suit/toggle/chef head = /obj/item/clothing/head/chefhat @@ -252,12 +252,12 @@ Botanist name = "Botanist" jobtype = /datum/job/hydro - belt = /obj/item/device/pda/botanist - ears = /obj/item/device/radio/headset/headset_srv + belt = /obj/item/pda/botanist + ears = /obj/item/radio/headset/headset_srv uniform = /obj/item/clothing/under/rank/hydroponics suit = /obj/item/clothing/suit/apron gloves =/obj/item/clothing/gloves/botanic_leather - suit_store = /obj/item/device/plant_analyzer + suit_store = /obj/item/plant_analyzer backpack = /obj/item/storage/backpack/botany satchel = /obj/item/storage/backpack/satchel/hyd @@ -288,7 +288,7 @@ Janitor name = "Janitor" jobtype = /datum/job/janitor - belt = /obj/item/device/pda/janitor - ears = /obj/item/device/radio/headset/headset_srv + belt = /obj/item/pda/janitor + ears = /obj/item/radio/headset/headset_srv uniform = /obj/item/clothing/under/rank/janitor - backpack_contents = list(/obj/item/device/modular_computer/tablet/preset/advanced=1) + backpack_contents = list(/obj/item/modular_computer/tablet/preset/advanced=1) diff --git a/code/modules/jobs/job_types/civilian.dm b/code/modules/jobs/job_types/civilian.dm index f4b0c47ba0..3c36247c6d 100644 --- a/code/modules/jobs/job_types/civilian.dm +++ b/code/modules/jobs/job_types/civilian.dm @@ -25,7 +25,7 @@ Clown name = "Clown" jobtype = /datum/job/clown - belt = /obj/item/device/pda/clown + belt = /obj/item/pda/clown uniform = /obj/item/clothing/under/rank/clown shoes = /obj/item/clothing/shoes/clown_shoes mask = /obj/item/clothing/mask/gas/clown_hat @@ -34,7 +34,7 @@ Clown /obj/item/stamp/clown = 1, /obj/item/reagent_containers/spray/waterflower = 1, /obj/item/reagent_containers/food/snacks/grown/banana = 1, - /obj/item/device/instrument/bikehorn = 1, + /obj/item/instrument/bikehorn = 1, ) implants = list(/obj/item/implant/sad_trombone) @@ -87,7 +87,7 @@ Mime name = "Mime" jobtype = /datum/job/mime - belt = /obj/item/device/pda/mime + belt = /obj/item/pda/mime uniform = /obj/item/clothing/under/rank/mime mask = /obj/item/clothing/mask/gas/mime gloves = /obj/item/clothing/gloves/color/white @@ -135,11 +135,11 @@ Curator name = "Curator" jobtype = /datum/job/curator - belt = /obj/item/device/pda/curator + belt = /obj/item/pda/curator uniform = /obj/item/clothing/under/rank/curator l_hand = /obj/item/storage/bag/books r_pocket = /obj/item/key/displaycase - l_pocket = /obj/item/device/laser_pointer + l_pocket = /obj/item/laser_pointer //CITADEL EDIT removes runtimes from this pocket protector backpack_contents = list( /obj/item/melee/curator_whip = 1, @@ -181,13 +181,13 @@ Lawyer name = "Lawyer" jobtype = /datum/job/lawyer - belt = /obj/item/device/pda/lawyer - ears = /obj/item/device/radio/headset/headset_sec + belt = /obj/item/pda/lawyer + ears = /obj/item/radio/headset/headset_sec uniform = /obj/item/clothing/under/lawyer/bluesuit suit = /obj/item/clothing/suit/toggle/lawyer shoes = /obj/item/clothing/shoes/laceup l_hand = /obj/item/storage/briefcase/lawyer - l_pocket = /obj/item/device/laser_pointer + l_pocket = /obj/item/laser_pointer r_pocket = /obj/item/clothing/accessory/lawyers_badge diff --git a/code/modules/jobs/job_types/civilian_chaplain.dm b/code/modules/jobs/job_types/civilian_chaplain.dm index 5e56fe5b4f..09eb9f34e9 100644 --- a/code/modules/jobs/job_types/civilian_chaplain.dm +++ b/code/modules/jobs/job_types/civilian_chaplain.dm @@ -88,8 +88,8 @@ Chaplain name = "Chaplain" jobtype = /datum/job/chaplain - belt = /obj/item/device/pda/chaplain + belt = /obj/item/pda/chaplain uniform = /obj/item/clothing/under/rank/chaplain - backpack_contents = list(/obj/item/device/camera/spooky = 1) + backpack_contents = list(/obj/item/camera/spooky = 1) backpack = /obj/item/storage/backpack/cultpack satchel = /obj/item/storage/backpack/cultpack diff --git a/code/modules/jobs/job_types/engineering.dm b/code/modules/jobs/job_types/engineering.dm index 82a6fe1382..9717062770 100644 --- a/code/modules/jobs/job_types/engineering.dm +++ b/code/modules/jobs/job_types/engineering.dm @@ -36,13 +36,13 @@ Chief Engineer id = /obj/item/card/id/silver belt = /obj/item/storage/belt/utility/chief/full - l_pocket = /obj/item/device/pda/heads/ce - ears = /obj/item/device/radio/headset/heads/ce + l_pocket = /obj/item/pda/heads/ce + ears = /obj/item/radio/headset/heads/ce uniform = /obj/item/clothing/under/rank/chief_engineer shoes = /obj/item/clothing/shoes/sneakers/brown head = /obj/item/clothing/head/hardhat/white gloves = /obj/item/clothing/gloves/color/black/ce - backpack_contents = list(/obj/item/melee/classic_baton/telescopic=1, /obj/item/device/modular_computer/tablet/preset/advanced=1) + backpack_contents = list(/obj/item/melee/classic_baton/telescopic=1, /obj/item/modular_computer/tablet/preset/advanced=1) backpack = /obj/item/storage/backpack/industrial satchel = /obj/item/storage/backpack/satchel/eng @@ -91,19 +91,19 @@ Station Engineer jobtype = /datum/job/engineer belt = /obj/item/storage/belt/utility/full/engi - l_pocket = /obj/item/device/pda/engineering - ears = /obj/item/device/radio/headset/headset_eng + l_pocket = /obj/item/pda/engineering + ears = /obj/item/radio/headset/headset_eng uniform = /obj/item/clothing/under/rank/engineer shoes = /obj/item/clothing/shoes/workboots head = /obj/item/clothing/head/hardhat - r_pocket = /obj/item/device/t_scanner + r_pocket = /obj/item/t_scanner backpack = /obj/item/storage/backpack/industrial satchel = /obj/item/storage/backpack/satchel/eng duffelbag = /obj/item/storage/backpack/duffelbag/engineering box = /obj/item/storage/box/engineer pda_slot = slot_l_store - backpack_contents = list(/obj/item/device/modular_computer/tablet/preset/advanced=1) + backpack_contents = list(/obj/item/modular_computer/tablet/preset/advanced=1) /datum/outfit/job/engineer/gloved name = "Station Engineer (Gloves)" @@ -147,17 +147,17 @@ Atmospheric Technician jobtype = /datum/job/atmos belt = /obj/item/storage/belt/utility/atmostech - l_pocket = /obj/item/device/pda/atmos - ears = /obj/item/device/radio/headset/headset_eng + l_pocket = /obj/item/pda/atmos + ears = /obj/item/radio/headset/headset_eng uniform = /obj/item/clothing/under/rank/atmospheric_technician - r_pocket = /obj/item/device/analyzer + r_pocket = /obj/item/analyzer backpack = /obj/item/storage/backpack/industrial satchel = /obj/item/storage/backpack/satchel/eng duffelbag = /obj/item/storage/backpack/duffelbag/engineering box = /obj/item/storage/box/engineer pda_slot = slot_l_store - backpack_contents = list(/obj/item/device/modular_computer/tablet/preset/advanced=1) + backpack_contents = list(/obj/item/modular_computer/tablet/preset/advanced=1) /datum/outfit/job/atmos/rig name = "Atmospheric Technician (Hardsuit)" diff --git a/code/modules/jobs/job_types/job.dm b/code/modules/jobs/job_types/job.dm index c384d21e97..65ac5ea0d8 100644 --- a/code/modules/jobs/job_types/job.dm +++ b/code/modules/jobs/job_types/job.dm @@ -141,8 +141,8 @@ uniform = /obj/item/clothing/under/color/grey id = /obj/item/card/id - ears = /obj/item/device/radio/headset - belt = /obj/item/device/pda + ears = /obj/item/radio/headset + belt = /obj/item/pda back = /obj/item/storage/backpack shoes = /obj/item/clothing/shoes/sneakers/black @@ -193,7 +193,7 @@ C.update_label() H.sec_hud_set_ID() - var/obj/item/device/pda/PDA = H.get_item_by_slot(pda_slot) + var/obj/item/pda/PDA = H.get_item_by_slot(pda_slot) if(istype(PDA)) PDA.owner = H.real_name PDA.ownjob = J.title diff --git a/code/modules/jobs/job_types/medical.dm b/code/modules/jobs/job_types/medical.dm index 4997b3a7f3..4108cb8e75 100644 --- a/code/modules/jobs/job_types/medical.dm +++ b/code/modules/jobs/job_types/medical.dm @@ -33,14 +33,14 @@ Chief Medical Officer jobtype = /datum/job/cmo id = /obj/item/card/id/silver - belt = /obj/item/device/pda/heads/cmo + belt = /obj/item/pda/heads/cmo l_pocket = /obj/item/pinpointer/crew - ears = /obj/item/device/radio/headset/heads/cmo + ears = /obj/item/radio/headset/heads/cmo uniform = /obj/item/clothing/under/rank/chief_medical_officer shoes = /obj/item/clothing/shoes/sneakers/brown suit = /obj/item/clothing/suit/toggle/labcoat/cmo l_hand = /obj/item/storage/firstaid/regular - suit_store = /obj/item/device/flashlight/pen + suit_store = /obj/item/flashlight/pen backpack_contents = list(/obj/item/melee/classic_baton/telescopic=1) backpack = /obj/item/storage/backpack/medic @@ -71,13 +71,13 @@ Medical Doctor name = "Medical Doctor" jobtype = /datum/job/doctor - belt = /obj/item/device/pda/medical - ears = /obj/item/device/radio/headset/headset_med + belt = /obj/item/pda/medical + ears = /obj/item/radio/headset/headset_med uniform = /obj/item/clothing/under/rank/medical shoes = /obj/item/clothing/shoes/sneakers/white suit = /obj/item/clothing/suit/toggle/labcoat l_hand = /obj/item/storage/firstaid/regular - suit_store = /obj/item/device/flashlight/pen + suit_store = /obj/item/flashlight/pen backpack = /obj/item/storage/backpack/medic satchel = /obj/item/storage/backpack/satchel/med @@ -110,8 +110,8 @@ Chemist jobtype = /datum/job/chemist glasses = /obj/item/clothing/glasses/science - belt = /obj/item/device/pda/chemist - ears = /obj/item/device/radio/headset/headset_med + belt = /obj/item/pda/chemist + ears = /obj/item/radio/headset/headset_med uniform = /obj/item/clothing/under/rank/chemist shoes = /obj/item/clothing/shoes/sneakers/white suit = /obj/item/clothing/suit/toggle/labcoat/chemist @@ -145,12 +145,12 @@ Geneticist name = "Geneticist" jobtype = /datum/job/geneticist - belt = /obj/item/device/pda/geneticist - ears = /obj/item/device/radio/headset/headset_medsci + belt = /obj/item/pda/geneticist + ears = /obj/item/radio/headset/headset_medsci uniform = /obj/item/clothing/under/rank/geneticist shoes = /obj/item/clothing/shoes/sneakers/white suit = /obj/item/clothing/suit/toggle/labcoat/genetics - suit_store = /obj/item/device/flashlight/pen + suit_store = /obj/item/flashlight/pen backpack = /obj/item/storage/backpack/genetics satchel = /obj/item/storage/backpack/satchel/gen @@ -182,13 +182,13 @@ Virologist name = "Virologist" jobtype = /datum/job/virologist - belt = /obj/item/device/pda/viro - ears = /obj/item/device/radio/headset/headset_med + belt = /obj/item/pda/viro + ears = /obj/item/radio/headset/headset_med uniform = /obj/item/clothing/under/rank/virologist mask = /obj/item/clothing/mask/surgical shoes = /obj/item/clothing/shoes/sneakers/white suit = /obj/item/clothing/suit/toggle/labcoat/virologist - suit_store = /obj/item/device/flashlight/pen + suit_store = /obj/item/flashlight/pen backpack = /obj/item/storage/backpack/virology satchel = /obj/item/storage/backpack/satchel/vir diff --git a/code/modules/jobs/job_types/science.dm b/code/modules/jobs/job_types/science.dm index 2648bd2516..d2f77319fc 100644 --- a/code/modules/jobs/job_types/science.dm +++ b/code/modules/jobs/job_types/science.dm @@ -37,14 +37,14 @@ Research Director jobtype = /datum/job/rd id = /obj/item/card/id/silver - belt = /obj/item/device/pda/heads/rd - ears = /obj/item/device/radio/headset/heads/rd + belt = /obj/item/pda/heads/rd + ears = /obj/item/radio/headset/heads/rd uniform = /obj/item/clothing/under/rank/research_director shoes = /obj/item/clothing/shoes/sneakers/brown suit = /obj/item/clothing/suit/toggle/labcoat l_hand = /obj/item/clipboard - l_pocket = /obj/item/device/laser_pointer - backpack_contents = list(/obj/item/melee/classic_baton/telescopic=1, /obj/item/device/modular_computer/tablet/preset/advanced=1) + l_pocket = /obj/item/laser_pointer + backpack_contents = list(/obj/item/melee/classic_baton/telescopic=1, /obj/item/modular_computer/tablet/preset/advanced=1) backpack = /obj/item/storage/backpack/science satchel = /obj/item/storage/backpack/satchel/tox @@ -84,8 +84,8 @@ Scientist name = "Scientist" jobtype = /datum/job/scientist - belt = /obj/item/device/pda/toxins - ears = /obj/item/device/radio/headset/headset_sci + belt = /obj/item/pda/toxins + ears = /obj/item/radio/headset/headset_sci uniform = /obj/item/clothing/under/rank/scientist shoes = /obj/item/clothing/shoes/sneakers/white suit = /obj/item/clothing/suit/toggle/labcoat/science @@ -120,8 +120,8 @@ Roboticist jobtype = /datum/job/roboticist belt = /obj/item/storage/belt/utility/full - l_pocket = /obj/item/device/pda/roboticist - ears = /obj/item/device/radio/headset/headset_sci + l_pocket = /obj/item/pda/roboticist + ears = /obj/item/radio/headset/headset_sci uniform = /obj/item/clothing/under/rank/roboticist suit = /obj/item/clothing/suit/toggle/labcoat diff --git a/code/modules/jobs/job_types/security.dm b/code/modules/jobs/job_types/security.dm index 3cfd5ef73d..cc842d8e59 100644 --- a/code/modules/jobs/job_types/security.dm +++ b/code/modules/jobs/job_types/security.dm @@ -41,8 +41,8 @@ Head of Security jobtype = /datum/job/hos id = /obj/item/card/id/silver - belt = /obj/item/device/pda/heads/hos - ears = /obj/item/device/radio/headset/heads/hos/alt + belt = /obj/item/pda/heads/hos + ears = /obj/item/radio/headset/heads/hos/alt uniform = /obj/item/clothing/under/rank/head_of_security shoes = /obj/item/clothing/shoes/jackboots suit = /obj/item/clothing/suit/armor/hos/trenchcoat @@ -50,7 +50,7 @@ Head of Security head = /obj/item/clothing/head/HoS/beret glasses = /obj/item/clothing/glasses/hud/security/sunglasses suit_store = /obj/item/gun/energy/e_gun - r_pocket = /obj/item/device/assembly/flash/handheld + r_pocket = /obj/item/assembly/flash/handheld l_pocket = /obj/item/restraints/handcuffs backpack_contents = list(/obj/item/melee/baton/loaded=1) @@ -93,15 +93,15 @@ Warden name = "Warden" jobtype = /datum/job/warden - belt = /obj/item/device/pda/warden - ears = /obj/item/device/radio/headset/headset_sec/alt + belt = /obj/item/pda/warden + ears = /obj/item/radio/headset/headset_sec/alt uniform = /obj/item/clothing/under/rank/warden shoes = /obj/item/clothing/shoes/jackboots suit = /obj/item/clothing/suit/armor/vest/warden/alt gloves = /obj/item/clothing/gloves/color/black head = /obj/item/clothing/head/warden glasses = /obj/item/clothing/glasses/hud/security/sunglasses - r_pocket = /obj/item/device/assembly/flash/handheld + r_pocket = /obj/item/assembly/flash/handheld l_pocket = /obj/item/restraints/handcuffs suit_store = /obj/item/gun/energy/e_gun/advtaser backpack_contents = list(/obj/item/melee/baton/loaded=1) @@ -141,8 +141,8 @@ Detective name = "Detective" jobtype = /datum/job/detective - belt = /obj/item/device/pda/detective - ears = /obj/item/device/radio/headset/headset_sec/alt + belt = /obj/item/pda/detective + ears = /obj/item/radio/headset/headset_sec/alt uniform = /obj/item/clothing/under/rank/det shoes = /obj/item/clothing/shoes/sneakers/brown suit = /obj/item/clothing/suit/det_suit @@ -151,7 +151,7 @@ Detective l_pocket = /obj/item/toy/crayon/white r_pocket = /obj/item/lighter backpack_contents = list(/obj/item/storage/box/evidence=1,\ - /obj/item/device/detective_scanner=1,\ + /obj/item/detective_scanner=1,\ /obj/item/melee/classic_baton=1) mask = /obj/item/clothing/mask/cigarette @@ -214,25 +214,25 @@ GLOBAL_LIST_INIT(available_depts, list(SEC_DEPT_ENGINEERING, SEC_DEPT_MEDICAL, S var/spawn_point = null switch(department) if(SEC_DEPT_SUPPLY) - ears = /obj/item/device/radio/headset/headset_sec/alt/department/supply + ears = /obj/item/radio/headset/headset_sec/alt/department/supply dep_access = list(ACCESS_MAILSORTING, ACCESS_MINING, ACCESS_MINING_STATION) destination = /area/security/checkpoint/supply spawn_point = locate(/obj/effect/landmark/start/depsec/supply) in GLOB.department_security_spawns accessory = /obj/item/clothing/accessory/armband/cargo if(SEC_DEPT_ENGINEERING) - ears = /obj/item/device/radio/headset/headset_sec/alt/department/engi + ears = /obj/item/radio/headset/headset_sec/alt/department/engi dep_access = list(ACCESS_CONSTRUCTION, ACCESS_ENGINE) destination = /area/security/checkpoint/engineering spawn_point = locate(/obj/effect/landmark/start/depsec/engineering) in GLOB.department_security_spawns accessory = /obj/item/clothing/accessory/armband/engine if(SEC_DEPT_MEDICAL) - ears = /obj/item/device/radio/headset/headset_sec/alt/department/med + ears = /obj/item/radio/headset/headset_sec/alt/department/med dep_access = list(ACCESS_MEDICAL) destination = /area/security/checkpoint/medical spawn_point = locate(/obj/effect/landmark/start/depsec/medical) in GLOB.department_security_spawns accessory = /obj/item/clothing/accessory/armband/medblue if(SEC_DEPT_SCIENCE) - ears = /obj/item/device/radio/headset/headset_sec/alt/department/sci + ears = /obj/item/radio/headset/headset_sec/alt/department/sci dep_access = list(ACCESS_RESEARCH) destination = /area/security/checkpoint/science spawn_point = locate(/obj/effect/landmark/start/depsec/science) in GLOB.department_security_spawns @@ -278,15 +278,15 @@ GLOBAL_LIST_INIT(available_depts, list(SEC_DEPT_ENGINEERING, SEC_DEPT_MEDICAL, S name = "Security Officer" jobtype = /datum/job/officer - belt = /obj/item/device/pda/security - ears = /obj/item/device/radio/headset/headset_sec/alt + belt = /obj/item/pda/security + ears = /obj/item/radio/headset/headset_sec/alt uniform = /obj/item/clothing/under/rank/security gloves = /obj/item/clothing/gloves/color/black head = /obj/item/clothing/head/helmet/sec suit = /obj/item/clothing/suit/armor/vest/alt shoes = /obj/item/clothing/shoes/jackboots l_pocket = /obj/item/restraints/handcuffs - r_pocket = /obj/item/device/assembly/flash/handheld + r_pocket = /obj/item/assembly/flash/handheld suit_store = /obj/item/gun/energy/e_gun/advtaser backpack_contents = list(/obj/item/melee/baton/loaded=1) @@ -298,24 +298,24 @@ GLOBAL_LIST_INIT(available_depts, list(SEC_DEPT_ENGINEERING, SEC_DEPT_MEDICAL, S implants = list(/obj/item/implant/mindshield) -/obj/item/device/radio/headset/headset_sec/alt/department/Initialize() +/obj/item/radio/headset/headset_sec/alt/department/Initialize() . = ..() wires = new/datum/wires/radio(src) secure_radio_connections = new recalculateChannels() -/obj/item/device/radio/headset/headset_sec/alt/department/engi - keyslot = new /obj/item/device/encryptionkey/headset_sec - keyslot2 = new /obj/item/device/encryptionkey/headset_eng +/obj/item/radio/headset/headset_sec/alt/department/engi + keyslot = new /obj/item/encryptionkey/headset_sec + keyslot2 = new /obj/item/encryptionkey/headset_eng -/obj/item/device/radio/headset/headset_sec/alt/department/supply - keyslot = new /obj/item/device/encryptionkey/headset_sec - keyslot2 = new /obj/item/device/encryptionkey/headset_cargo +/obj/item/radio/headset/headset_sec/alt/department/supply + keyslot = new /obj/item/encryptionkey/headset_sec + keyslot2 = new /obj/item/encryptionkey/headset_cargo -/obj/item/device/radio/headset/headset_sec/alt/department/med - keyslot = new /obj/item/device/encryptionkey/headset_sec - keyslot2 = new /obj/item/device/encryptionkey/headset_med +/obj/item/radio/headset/headset_sec/alt/department/med + keyslot = new /obj/item/encryptionkey/headset_sec + keyslot2 = new /obj/item/encryptionkey/headset_med -/obj/item/device/radio/headset/headset_sec/alt/department/sci - keyslot = new /obj/item/device/encryptionkey/headset_sec - keyslot2 = new /obj/item/device/encryptionkey/headset_sci +/obj/item/radio/headset/headset_sec/alt/department/sci + keyslot = new /obj/item/encryptionkey/headset_sec + keyslot2 = new /obj/item/encryptionkey/headset_sci diff --git a/code/modules/keybindings/bindings_admin.dm b/code/modules/keybindings/bindings_admin.dm index 44cbb796fb..ca232adbe0 100644 --- a/code/modules/keybindings/bindings_admin.dm +++ b/code/modules/keybindings/bindings_admin.dm @@ -18,4 +18,7 @@ else user.invisimin() return + if("F10") + user.get_dead_say() + return ..() diff --git a/code/modules/keybindings/bindings_human.dm b/code/modules/keybindings/bindings_human.dm index b0e2994ffc..7c52917386 100644 --- a/code/modules/keybindings/bindings_human.dm +++ b/code/modules/keybindings/bindings_human.dm @@ -17,9 +17,7 @@ to_chat(user, "You can't fit anything in.") return if(thing) // put thing in belt - if(equipped_belt.can_be_inserted(thing)) - equipped_belt.handle_item_insertion(thing) - else + if(!equipped_belt.SendSignal(COMSIG_TRY_STORAGE_INSERT, thing, user.mob)) to_chat(user, "You can't fit anything in.") return if(!equipped_belt.contents.len) // nothing to take out @@ -47,9 +45,7 @@ to_chat(user, "You can't fit anything in.") return if(thing) // put thing in backpack - if(equipped_backpack.can_be_inserted(thing)) - equipped_backpack.handle_item_insertion(thing) - else + if(!equipped_backpack.SendSignal(COMSIG_TRY_STORAGE_INSERT, thing, user.mob)) to_chat(user, "You can't fit anything in.") return if(!equipped_backpack.contents.len) // nothing to take out diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm index de7edc69b1..4126cc4768 100644 --- a/code/modules/library/lib_items.dm +++ b/code/modules/library/lib_items.dm @@ -24,7 +24,6 @@ var/state = 0 var/list/allowed_books = list(/obj/item/book, /obj/item/spellbook, /obj/item/storage/book) //Things allowed in the bookcase - /obj/structure/bookcase/examine(mob/user) ..() if(!anchored) @@ -39,7 +38,6 @@ if(2) to_chat(user, "There's a small crack visible on the shelf.") - /obj/structure/bookcase/Initialize(mapload) . = ..() if(!mapload) @@ -52,7 +50,6 @@ I.forceMove(src) update_icon() - /obj/structure/bookcase/attackby(obj/item/I, mob/user, params) switch(state) if(0) @@ -81,15 +78,15 @@ state = 0 if(2) + GET_COMPONENT_FROM(STR, /datum/component/storage, I) if(is_type_in_list(I, allowed_books)) if(!user.transferItemToLoc(I, src)) return update_icon() - else if(istype(I, /obj/item/storage/bag/books)) - var/obj/item/storage/bag/books/B = I - for(var/obj/item/T in B.contents) + else if(STR) + for(var/obj/item/T in I.contents) if(istype(T, /obj/item/book) || istype(T, /obj/item/spellbook)) - B.remove_from_storage(T, src) + STR.remove_from_storage(T, src) to_chat(user, "You empty \the [I] into \the [src].") update_icon() else if(istype(I, /obj/item/pen)) diff --git a/code/modules/lighting/lighting_area.dm b/code/modules/lighting/lighting_area.dm index b581956307..58e9a4337a 100644 --- a/code/modules/lighting/lighting_area.dm +++ b/code/modules/lighting/lighting_area.dm @@ -10,13 +10,13 @@ if (IS_DYNAMIC_LIGHTING(src)) cut_overlay(/obj/effect/fullbright) - for (var/turf/T in area_contents(src)) + for (var/turf/T in src) if (IS_DYNAMIC_LIGHTING(T)) T.lighting_build_overlay() else add_overlay(/obj/effect/fullbright) - for (var/turf/T in area_contents(src)) + for (var/turf/T in src) if (T.lighting_object) T.lighting_clear_overlay() diff --git a/code/modules/mapping/map_template.dm b/code/modules/mapping/map_template.dm index b9dbb42d28..b5b2091eb9 100644 --- a/code/modules/mapping/map_template.dm +++ b/code/modules/mapping/map_template.dm @@ -88,7 +88,7 @@ initTemplateBounds(bounds) log_game("[name] loaded at at [T.x],[T.y],[T.z]") - return TRUE + return bounds /datum/map_template/proc/get_affected_turfs(turf/T, centered = FALSE) var/turf/placement = T diff --git a/code/modules/mapping/reader.dm b/code/modules/mapping/reader.dm index c0d9e65653..381ce4bffe 100644 --- a/code/modules/mapping/reader.dm +++ b/code/modules/mapping/reader.dm @@ -474,3 +474,4 @@ GLOBAL_DATUM_INIT(_preloader, /dmm_suite/preloader, new) /turf/template_noop name = "Turf Passthrough" icon_state = "noop" + bullet_bounce_sound = null diff --git a/code/modules/mapping/space_management/space_transition.dm b/code/modules/mapping/space_management/space_transition.dm index 7ab487fd9c..5a9d52033c 100644 --- a/code/modules/mapping/space_management/space_transition.dm +++ b/code/modules/mapping/space_management/space_transition.dm @@ -125,3 +125,19 @@ S.destination_x = x_pos_transition[side] == 1 ? S.x : x_pos_transition[side] S.destination_y = y_pos_transition[side] == 1 ? S.y : y_pos_transition[side] S.destination_z = zdestination + + // Mirage border code + var/mirage_dir + if(S.x == 1 + TRANSITIONEDGE) + mirage_dir |= WEST + else if(S.x == world.maxx - TRANSITIONEDGE) + mirage_dir |= EAST + if(S.y == 1 + TRANSITIONEDGE) + mirage_dir |= SOUTH + else if(S.y == world.maxy - TRANSITIONEDGE) + mirage_dir |= NORTH + if(!mirage_dir) + continue + + var/turf/place = locate(S.destination_x, S.destination_y, S.destination_z) + S.AddComponent(/datum/component/mirage_border, place, mirage_dir) diff --git a/code/modules/mining/abandoned_crates.dm b/code/modules/mining/abandoned_crates.dm index 3afbb42420..86499e694b 100644 --- a/code/modules/mining/abandoned_crates.dm +++ b/code/modules/mining/abandoned_crates.dm @@ -112,7 +112,7 @@ if(90) new /obj/item/organ/heart(src) if(91) - new /obj/item/device/soulstone/anybody(src) + new /obj/item/soulstone/anybody(src) if(92) new /obj/item/katana(src) if(93) @@ -121,7 +121,7 @@ new /obj/item/storage/backpack/clown(src) new /obj/item/clothing/under/rank/clown(src) new /obj/item/clothing/shoes/clown_shoes(src) - new /obj/item/device/pda/clown(src) + new /obj/item/pda/clown(src) new /obj/item/clothing/mask/gas/clown_hat(src) new /obj/item/bikehorn(src) new /obj/item/toy/crayon/rainbow(src) @@ -129,7 +129,7 @@ if(95) new /obj/item/clothing/under/rank/mime(src) new /obj/item/clothing/shoes/sneakers/black(src) - new /obj/item/device/pda/mime(src) + new /obj/item/pda/mime(src) new /obj/item/clothing/gloves/color/white(src) new /obj/item/clothing/mask/gas/mime(src) new /obj/item/clothing/head/beret(src) @@ -187,7 +187,7 @@ /obj/structure/closet/crate/secure/loot/attackby(obj/item/W, mob/user) if(locked) - if(istype(W, /obj/item/device/multitool)) + if(istype(W, /obj/item/multitool)) to_chat(user, "DECA-CODE LOCK REPORT:") if(attempts == 1) to_chat(user, "* Anti-Tamper Bomb will activate on next failed access attempt.") diff --git a/code/modules/mining/aux_base.dm b/code/modules/mining/aux_base.dm index ccd9784448..e80941c405 100644 --- a/code/modules/mining/aux_base.dm +++ b/code/modules/mining/aux_base.dm @@ -24,7 +24,7 @@ interface with the mining shuttle at the landing site if a mobile beacon is also req_one_access = list(ACCESS_CARGO, ACCESS_CONSTRUCTION, ACCESS_HEADS, ACCESS_RESEARCH) var/possible_destinations clockwork = TRUE - var/obj/item/device/gps/internal/base/locator + var/obj/item/gps/internal/base/locator circuit = /obj/item/circuitboard/computer/auxillary_base /obj/machinery/computer/auxillary_base/Initialize() @@ -174,7 +174,6 @@ interface with the mining shuttle at the landing site if a mobile beacon is also landing_zone.width = base_dock.width landing_zone.height = base_dock.height landing_zone.setDir(base_dock.dir) - landing_zone.turf_type = T.type landing_zone.area_type = A.type possible_destinations += "[landing_zone.id];" @@ -185,20 +184,19 @@ interface with the mining shuttle at the landing site if a mobile beacon is also return ZONE_SET -/obj/item/device/assault_pod/mining +/obj/item/assault_pod/mining name = "Landing Field Designator" icon_state = "gangtool-purple" item_state = "electronic" lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' - icon = 'icons/obj/device.dmi' desc = "Deploy to designate the landing zone of the auxillary base." w_class = WEIGHT_CLASS_SMALL shuttle_id = "colony_drop" var/setting = FALSE var/no_restrictions = FALSE //Badmin variable to let you drop the colony ANYWHERE. -/obj/item/device/assault_pod/mining/attack_self(mob/living/user) +/obj/item/assault_pod/mining/attack_self(mob/living/user) if(setting) return @@ -232,7 +230,7 @@ interface with the mining shuttle at the landing site if a mobile beacon is also if(BAD_TURF) to_chat(user, "The landing zone contains turfs unsuitable for a base. Make sure you've removed all walls and dangerous terrain from the landing zone.") -/obj/item/device/assault_pod/mining/unrestricted +/obj/item/assault_pod/mining/unrestricted name = "omni-locational landing field designator" desc = "Allows the deployment of the mining base ANYWHERE. Use with caution." no_restrictions = TRUE @@ -320,7 +318,6 @@ obj/docking_port/stationary/public_mining_dock Mport.width = SM.width Mport.height = SM.height Mport.setDir(dir) - Mport.turf_type = landing_spot.type Mport.area_type = A.type break diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm index fc26fac0bc..0bfb0b5f6d 100644 --- a/code/modules/mining/equipment/explorer_gear.dm +++ b/code/modules/mining/equipment/explorer_gear.dm @@ -11,7 +11,7 @@ heat_protection = CHEST|GROIN|LEGS|ARMS hoodtype = /obj/item/clothing/head/hooded/explorer armor = list("melee" = 30, "bullet" = 20, "laser" = 20, "energy" = 20, "bomb" = 50, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 50) - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/device/mining_scanner, /obj/item/device/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe) resistance_flags = FIRE_PROOF /obj/item/clothing/head/hooded/explorer @@ -57,7 +57,7 @@ resistance_flags = FIRE_PROOF | LAVA_PROOF slowdown = 0 armor = list("melee" = 70, "bullet" = 40, "laser" = 10, "energy" = 10, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/device/mining_scanner, /obj/item/device/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe) /obj/item/clothing/suit/space/hostile_environment/Initialize() . = ..() diff --git a/code/modules/mining/equipment/mineral_scanner.dm b/code/modules/mining/equipment/mineral_scanner.dm index ec3dda28a0..7327b0c314 100644 --- a/code/modules/mining/equipment/mineral_scanner.dm +++ b/code/modules/mining/equipment/mineral_scanner.dm @@ -1,5 +1,5 @@ /**********************Mining Scanners**********************/ -/obj/item/device/mining_scanner +/obj/item/mining_scanner desc = "A scanner that checks surrounding rock for useful minerals; it can also be used to stop gibtonite detonations." name = "manual mining scanner" icon_state = "mining1" @@ -12,7 +12,7 @@ var/cooldown = 35 var/current_cooldown = 0 -/obj/item/device/mining_scanner/attack_self(mob/user) +/obj/item/mining_scanner/attack_self(mob/user) if(!user.client) return if(current_cooldown <= world.time) @@ -20,15 +20,15 @@ mineral_scan_pulse(get_turf(user)) //Debug item to identify all ore spread quickly -/obj/item/device/mining_scanner/admin +/obj/item/mining_scanner/admin -/obj/item/device/mining_scanner/admin/attack_self(mob/user) +/obj/item/mining_scanner/admin/attack_self(mob/user) for(var/turf/closed/mineral/M in world) if(M.scan_state) M.icon_state = M.scan_state qdel(src) -/obj/item/device/t_scanner/adv_mining_scanner +/obj/item/t_scanner/adv_mining_scanner desc = "A scanner that automatically checks surrounding rock for useful minerals; it can also be used to stop gibtonite detonations. This one has an extended range." name = "advanced automatic mining scanner" icon_state = "mining0" @@ -42,13 +42,13 @@ var/current_cooldown = 0 var/range = 7 -/obj/item/device/t_scanner/adv_mining_scanner/lesser +/obj/item/t_scanner/adv_mining_scanner/lesser name = "automatic mining scanner" desc = "A scanner that automatically checks surrounding rock for useful minerals; it can also be used to stop gibtonite detonations." range = 4 cooldown = 50 -/obj/item/device/t_scanner/adv_mining_scanner/scan() +/obj/item/t_scanner/adv_mining_scanner/scan() if(current_cooldown <= world.time) current_cooldown = world.time + cooldown var/turf/t = get_turf(src) diff --git a/code/modules/mining/equipment/survival_pod.dm b/code/modules/mining/equipment/survival_pod.dm index 1c3655507e..8ad4053f6a 100644 --- a/code/modules/mining/equipment/survival_pod.dm +++ b/code/modules/mining/equipment/survival_pod.dm @@ -139,7 +139,7 @@ add_overlay("sleeper_cover") //Computer -/obj/item/device/gps/computer +/obj/item/gps/computer name = "pod computer" icon_state = "pod_computer" icon = 'icons/obj/lavaland/pod_computer.dmi' @@ -147,18 +147,18 @@ density = TRUE pixel_y = -32 -/obj/item/device/gps/computer/wrench_act(mob/living/user, obj/item/I) +/obj/item/gps/computer/wrench_act(mob/living/user, obj/item/I) if(flags_1 & NODECONSTRUCT_1) return TRUE user.visible_message("[user] disassembles [src].", "You start to disassemble [src]...", "You hear clanking and banging noises.") if(I.use_tool(src, user, 20, volume=50)) - new /obj/item/device/gps(loc) + new /obj/item/gps(loc) qdel(src) return TRUE -/obj/item/device/gps/computer/attack_hand(mob/user) +/obj/item/gps/computer/attack_hand(mob/user) . = ..() if(.) return @@ -196,7 +196,7 @@ var/obj/item/storage/pill_bottle/dice/D = new(src) load(D) else - var/obj/item/device/instrument/guitar/G = new(src) + var/obj/item/instrument/guitar/G = new(src) load(G) /obj/machinery/smartfridge/survival_pod/accept_check(obj/item/O) diff --git a/code/modules/mining/equipment/wormhole_jaunter.dm b/code/modules/mining/equipment/wormhole_jaunter.dm index 42e69f8fb2..0737612211 100644 --- a/code/modules/mining/equipment/wormhole_jaunter.dm +++ b/code/modules/mining/equipment/wormhole_jaunter.dm @@ -1,5 +1,5 @@ /**********************Jaunter**********************/ -/obj/item/device/wormhole_jaunter +/obj/item/wormhole_jaunter name = "wormhole jaunter" desc = "A single use device harnessing outdated wormhole technology, Nanotrasen has since turned its eyes to blue space for more accurate teleportation. The wormholes it creates are unpleasant to travel through, to say the least.\nThanks to modifications provided by the Free Golems, this jaunter can be worn on the belt to provide protection from chasms." icon = 'icons/obj/mining.dmi' @@ -13,29 +13,29 @@ throw_range = 5 slot_flags = SLOT_BELT -/obj/item/device/wormhole_jaunter/attack_self(mob/user) +/obj/item/wormhole_jaunter/attack_self(mob/user) user.visible_message("[user.name] activates the [src.name]!") SSblackbox.record_feedback("tally", "jaunter", 1, "User") // user activated activate(user, TRUE) -/obj/item/device/wormhole_jaunter/proc/turf_check(mob/user) +/obj/item/wormhole_jaunter/proc/turf_check(mob/user) var/turf/device_turf = get_turf(user) if(!device_turf || is_centcom_level(device_turf.z) || is_transit_level(device_turf.z)) to_chat(user, "You're having difficulties getting the [src.name] to work.") return FALSE return TRUE -/obj/item/device/wormhole_jaunter/proc/get_destinations(mob/user) +/obj/item/wormhole_jaunter/proc/get_destinations(mob/user) var/list/destinations = list() - for(var/obj/item/device/beacon/B in GLOB.teleportbeacons) + for(var/obj/item/beacon/B in GLOB.teleportbeacons) var/turf/T = get_turf(B) if(is_station_level(T.z)) destinations += B return destinations -/obj/item/device/wormhole_jaunter/proc/activate(mob/user, adjacent) +/obj/item/wormhole_jaunter/proc/activate(mob/user, adjacent) if(!turf_check(user)) return @@ -50,7 +50,7 @@ playsound(src,'sound/effects/sparks4.ogg',50,1) qdel(src) -/obj/item/device/wormhole_jaunter/emp_act(power) +/obj/item/wormhole_jaunter/emp_act(power) var/triggered = FALSE if(usr.get_item_by_slot(slot_belt) == src) @@ -64,7 +64,7 @@ SSblackbox.record_feedback("tally", "jaunter", 1, "EMP") // EMP accidental activation activate(usr) -/obj/item/device/wormhole_jaunter/proc/chasm_react(mob/user) +/obj/item/wormhole_jaunter/proc/chasm_react(mob/user) if(user.get_item_by_slot(slot_belt) == src) to_chat(user, "Your [src] activates, saving you from the chasm!
    ") SSblackbox.record_feedback("tally", "jaunter", 1, "Chasm") // chasm automatic activation diff --git a/code/modules/mining/fulton.dm b/code/modules/mining/fulton.dm index 61940b4044..a6cbbfcedd 100644 --- a/code/modules/mining/fulton.dm +++ b/code/modules/mining/fulton.dm @@ -63,8 +63,7 @@ GLOBAL_LIST_EMPTY(total_extraction_beacons) to_chat(user, "You attach the pack to [A] and activate it.") if(loc == user && istype(user.back, /obj/item/storage/backpack)) var/obj/item/storage/backpack/B = user.back - if(B.can_be_inserted(src,stop_messages = 1)) - B.handle_item_insertion(src) + B.SendSignal(COMSIG_TRY_STORAGE_INSERT, src, user, FALSE, FALSE) uses_left-- if(uses_left <= 0) user.transferItemToLoc(src, A, TRUE) diff --git a/code/modules/mining/laborcamp/laborstacker.dm b/code/modules/mining/laborcamp/laborstacker.dm index a5b69b1856..43faa48337 100644 --- a/code/modules/mining/laborcamp/laborstacker.dm +++ b/code/modules/mining/laborcamp/laborstacker.dm @@ -12,12 +12,12 @@ var/obj/item/card/id/prisoner/inserted_id var/obj/machinery/door/airlock/release_door var/door_tag = "prisonshuttle" - var/obj/item/device/radio/Radio //needed to send messages to sec radio + var/obj/item/radio/Radio //needed to send messages to sec radio /obj/machinery/mineral/labor_claim_console/Initialize() . = ..() - Radio = new/obj/item/device/radio(src) + Radio = new/obj/item/radio(src) Radio.listening = FALSE locate_stacking_machine() diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 330c0cbf2a..27cc6c7450 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -14,11 +14,11 @@ var/loot = rand(1,27) switch(loot) if(1) - new /obj/item/device/shared_storage/red(src) + new /obj/item/shared_storage/red(src) if(2) new /obj/item/clothing/suit/space/hardsuit/cult(src) if(3) - new /obj/item/device/soulstone/anybody(src) + new /obj/item/soulstone/anybody(src) if(4) new /obj/item/katana/cursed(src) if(5) @@ -54,11 +54,11 @@ else new /obj/item/disk/design_disk/modkit_disc/bounty(src) if(18) - new /obj/item/device/warp_cube/red(src) + new /obj/item/warp_cube/red(src) if(19) - new /obj/item/device/wisp_lantern(src) + new /obj/item/wisp_lantern(src) if(20) - new /obj/item/device/immortality_talisman(src) + new /obj/item/immortality_talisman(src) if(21) new /obj/item/gun/magic/hook(src) if(22) @@ -79,7 +79,7 @@ //KA modkit design discs /obj/item/disk/design_disk/modkit_disc name = "KA Mod Disk" - desc = "A design disc containing the design for a unique kinetic accelerator modkit." + desc = "A design disc containing the design for a unique kinetic accelerator modkit. It's compatible with a research console." icon_state = "datadisk1" var/modkit_design = /datum/design/unique_modkit @@ -193,7 +193,7 @@ activated = TRUE //Wisp Lantern -/obj/item/device/wisp_lantern +/obj/item/wisp_lantern name = "spooky lantern" desc = "This lantern gives off no light, but is home to a friendly wisp." icon = 'icons/obj/lighting.dmi' @@ -203,7 +203,7 @@ righthand_file = 'icons/mob/inhands/equipment/mining_righthand.dmi' var/obj/effect/wisp/wisp -/obj/item/device/wisp_lantern/attack_self(mob/user) +/obj/item/wisp_lantern/attack_self(mob/user) if(!wisp) to_chat(user, "The wisp has gone missing!") return @@ -229,11 +229,11 @@ icon_state = "lantern-blue" SSblackbox.record_feedback("tally", "wisp_lantern", 1, "Returned") -/obj/item/device/wisp_lantern/Initialize() +/obj/item/wisp_lantern/Initialize() . = ..() wisp = new(src) -/obj/item/device/wisp_lantern/Destroy() +/obj/item/wisp_lantern/Destroy() if(wisp) if(wisp.loc == src) qdel(wisp) @@ -250,16 +250,16 @@ layer = ABOVE_ALL_MOB_LAYER //Red/Blue Cubes -/obj/item/device/warp_cube +/obj/item/warp_cube name = "blue cube" desc = "A mysterious blue cube." icon = 'icons/obj/lavaland/artefacts.dmi' icon_state = "blue_cube" var/teleport_color = "#3FBAFD" - var/obj/item/device/warp_cube/linked + var/obj/item/warp_cube/linked var/teleporting = FALSE -/obj/item/device/warp_cube/attack_self(mob/user) +/obj/item/warp_cube/attack_self(mob/user) if(!linked) to_chat(user, "[src] fizzles uselessly.") return @@ -292,16 +292,16 @@ user.forceMove(get_turf(link_holder)) qdel(link_holder) -/obj/item/device/warp_cube/red +/obj/item/warp_cube/red name = "red cube" desc = "A mysterious red cube." icon_state = "red_cube" teleport_color = "#FD3F48" -/obj/item/device/warp_cube/red/Initialize() +/obj/item/warp_cube/red/Initialize() . = ..() if(!linked) - var/obj/item/device/warp_cube/blue = new(src.loc) + var/obj/item/warp_cube/blue = new(src.loc) linked = blue blue.linked = src @@ -367,7 +367,7 @@ //Immortality Talisman -/obj/item/device/immortality_talisman +/obj/item/immortality_talisman name = "Immortality Talisman" desc = "A dread talisman that can render you completely invulnerable." icon = 'icons/obj/lavaland/artefacts.dmi' @@ -375,20 +375,20 @@ actions_types = list(/datum/action/item_action/immortality) var/cooldown = 0 -/obj/item/device/immortality_talisman/Initialize() +/obj/item/immortality_talisman/Initialize() . = ..() AddComponent(/datum/component/anti_magic, TRUE, TRUE) /datum/action/item_action/immortality name = "Immortality" -/obj/item/device/immortality_talisman/Destroy(force) +/obj/item/immortality_talisman/Destroy(force) if(force) . = ..() else return QDEL_HINT_LETMELIVE -/obj/item/device/immortality_talisman/attack_self(mob/user) +/obj/item/immortality_talisman/attack_self(mob/user) if(cooldown < world.time) SSblackbox.record_feedback("amount", "immortality_talisman_uses", 1) cooldown = world.time + 600 @@ -402,7 +402,7 @@ user.status_flags |= GODMODE addtimer(CALLBACK(src, .proc/return_to_reality, user, Z), 100) -/obj/item/device/immortality_talisman/proc/return_to_reality(mob/user, obj/effect/immortality_talisman/Z) +/obj/item/immortality_talisman/proc/return_to_reality(mob/user, obj/effect/immortality_talisman/Z) user.status_flags &= ~GODMODE user.notransform = 0 user.forceMove(get_turf(Z)) @@ -433,79 +433,34 @@ //Shared Bag -//Internal - -/obj/item/storage/backpack/shared - name = "paradox bag" - desc = "Somehow, it's in two places at once." - max_combined_w_class = 60 - max_w_class = WEIGHT_CLASS_NORMAL - - -//External - -/obj/item/device/shared_storage +/obj/item/shared_storage name = "paradox bag" desc = "Somehow, it's in two places at once." icon = 'icons/obj/storage.dmi' icon_state = "cultpack" slot_flags = SLOT_BACK - var/obj/item/storage/backpack/shared/bag + resistance_flags = INDESTRUCTIBLE - -/obj/item/device/shared_storage/red +/obj/item/shared_storage/red name = "paradox bag" desc = "Somehow, it's in two places at once." -/obj/item/device/shared_storage/red/Initialize() +/obj/item/shared_storage/red/Initialize() . = ..() - if(!bag) - var/obj/item/storage/backpack/shared/S = new(src) - var/obj/item/device/shared_storage/blue = new(src.loc) - - src.bag = S - blue.bag = S - - -/obj/item/device/shared_storage/attackby(obj/item/W, mob/user, params) - if(bag) - bag.forceMove(user) - bag.attackby(W, user, params) - - -/obj/item/device/shared_storage/attack_hand(mob/living/carbon/user) - if(!iscarbon(user)) - return - if(loc == user && user.back && user.back == src) - if(bag) - bag.forceMove(user) - bag.attack_hand(user) - else - ..() - - -/obj/item/device/shared_storage/MouseDrop(atom/over_object) - if(iscarbon(usr) || isdrone(usr)) - var/mob/M = usr - - if(!over_object) - return - - if(ismecha(usr.loc)) - return - - if(!M.incapacitated()) - playsound(loc, "rustle", 50, 1, -5) - - - if(istype(over_object, /obj/screen/inventory/hand)) - var/obj/screen/inventory/hand/H = over_object - M.putItemFromInventoryInHandIfPossible(src, H.held_index) - - add_fingerprint(usr) - - + var/datum/component/storage/STR = AddComponent(/datum/component/storage/concrete) + STR.max_w_class = WEIGHT_CLASS_NORMAL + STR.max_combined_w_class = 60 + STR.max_items = 21 + new /obj/item/shared_storage/blue(drop_location(), STR) +/obj/item/shared_storage/blue/Initialize(mapload, datum/component/storage/concrete/master) + . = ..() + if(!istype(master)) + return INITIALIZE_HINT_QDEL + var/datum/component/storage/STR = AddComponent(/datum/component/storage, master) + STR.max_w_class = WEIGHT_CLASS_NORMAL + STR.max_combined_w_class = 60 + STR.max_items = 21 //Book of Babel @@ -991,7 +946,7 @@ var/mob/living/L = choice - message_admins("[L] has been marked for death!") + message_admins("[key_name_admin(L)][ADMIN_FLW(L)] has been marked for death by [key_name_admin(user)]!") var/datum/objective/survive/survive = new survive.owner = L.mind diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm index b3b7bd29d3..63e00f5a38 100644 --- a/code/modules/mining/machine_redemption.dm +++ b/code/modules/mining/machine_redemption.dm @@ -148,8 +148,6 @@ send_console_message() /obj/machinery/mineral/ore_redemption/attackby(obj/item/W, mob/user, params) - if(exchange_parts(user, W)) - return GET_COMPONENT(materials, /datum/component/material_container) if(default_pry_open(W)) materials.retrieve_all() @@ -173,7 +171,7 @@ interact(user) return - if(istype(W, /obj/item/device/multitool) && panel_open) + if(istype(W, /obj/item/multitool) && panel_open) input_dir = turn(input_dir, -90) output_dir = turn(output_dir, -90) to_chat(user, "You change [src]'s I/O settings, setting the input to [dir2text(input_dir)] and the output to [dir2text(output_dir)].") diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index 1fd1ff3e38..3a188b7ab2 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -18,9 +18,9 @@ new /datum/data/mining_equipment("Absinthe", /obj/item/reagent_containers/food/drinks/bottle/absinthe/premium, 100), new /datum/data/mining_equipment("Cigar", /obj/item/clothing/mask/cigarette/cigar/havana, 150), new /datum/data/mining_equipment("Soap", /obj/item/soap/nanotrasen, 200), - new /datum/data/mining_equipment("Laser Pointer", /obj/item/device/laser_pointer, 300), + new /datum/data/mining_equipment("Laser Pointer", /obj/item/laser_pointer, 300), new /datum/data/mining_equipment("Alien Toy", /obj/item/clothing/mask/facehugger/toy, 300), - new /datum/data/mining_equipment("Advanced Scanner", /obj/item/device/t_scanner/adv_mining_scanner, 800), + new /datum/data/mining_equipment("Advanced Scanner", /obj/item/t_scanner/adv_mining_scanner, 800), new /datum/data/mining_equipment("Stabilizing Serum", /obj/item/hivelordstabilizer, 400), new /datum/data/mining_equipment("Fulton Beacon", /obj/item/fulton_core, 400), new /datum/data/mining_equipment("Shelter Capsule", /obj/item/survivalcapsule, 400), @@ -30,7 +30,7 @@ new /datum/data/mining_equipment("Survival Medipen", /obj/item/reagent_containers/hypospray/medipen/survival, 500), new /datum/data/mining_equipment("Brute First-Aid Kit", /obj/item/storage/firstaid/brute, 600), new /datum/data/mining_equipment("Tracking Implant Kit", /obj/item/storage/box/minertracker, 600), - new /datum/data/mining_equipment("Jaunter", /obj/item/device/wormhole_jaunter, 750), + new /datum/data/mining_equipment("Jaunter", /obj/item/wormhole_jaunter, 750), new /datum/data/mining_equipment("Kinetic Crusher", /obj/item/twohanded/required/kinetic_crusher, 750), new /datum/data/mining_equipment("Kinetic Accelerator", /obj/item/gun/energy/kinetic_accelerator, 750), new /datum/data/mining_equipment("Resonator", /obj/item/resonator, 800), @@ -46,8 +46,8 @@ new /datum/data/mining_equipment("Jump Boots", /obj/item/clothing/shoes/bhop, 2500), new /datum/data/mining_equipment("Luxury Shelter Capsule", /obj/item/survivalcapsule/luxury, 3000), new /datum/data/mining_equipment("Nanotrasen Minebot", /mob/living/simple_animal/hostile/mining_drone, 800), - new /datum/data/mining_equipment("Minebot Melee Upgrade", /obj/item/device/mine_bot_upgrade, 400), - new /datum/data/mining_equipment("Minebot Armor Upgrade", /obj/item/device/mine_bot_upgrade/health, 400), + new /datum/data/mining_equipment("Minebot Melee Upgrade", /obj/item/mine_bot_upgrade, 400), + new /datum/data/mining_equipment("Minebot Armor Upgrade", /obj/item/mine_bot_upgrade/health, 400), new /datum/data/mining_equipment("Minebot Cooldown Upgrade", /obj/item/borg/upgrade/modkit/cooldown/minebot, 600), new /datum/data/mining_equipment("Minebot AI Upgrade", /obj/item/slimepotion/slime/sentience/mining, 1000), new /datum/data/mining_equipment("KA Minebot Passthrough", /obj/item/borg/upgrade/modkit/minebot_passthrough, 100), @@ -173,7 +173,7 @@ new /obj/item/storage/belt/mining/vendor(drop_location) if("Resonator Kit") new /obj/item/storage/belt/mining/alt(drop_location) - new /obj/item/device/t_scanner/adv_mining_scanner(drop_location) + new /obj/item/t_scanner/adv_mining_scanner(drop_location) new /obj/item/extinguisher/mini(drop_location) new /obj/item/resonator(drop_location) if("Minebot Kit") @@ -187,7 +187,7 @@ new /obj/item/stack/marker_beacon/thirty(drop_location) if("Crusher Kit") new /obj/item/storage/belt/mining/alt(drop_location) - new /obj/item/device/t_scanner/adv_mining_scanner(drop_location) + new /obj/item/t_scanner/adv_mining_scanner(drop_location) new /obj/item/extinguisher/mini(drop_location) new /obj/item/twohanded/required/kinetic_crusher(drop_location) if("Mining Conscription Kit") @@ -281,9 +281,9 @@ /obj/item/storage/backpack/duffelbag/mining_conscript/PopulateContents() new /obj/item/pickaxe/mini(src) new /obj/item/clothing/glasses/meson(src) - new /obj/item/device/t_scanner/adv_mining_scanner/lesser(src) + new /obj/item/t_scanner/adv_mining_scanner/lesser(src) new /obj/item/storage/bag/ore(src) new /obj/item/clothing/suit/hooded/explorer(src) - new /obj/item/device/encryptionkey/headset_cargo(src) + new /obj/item/encryptionkey/headset_cargo(src) new /obj/item/clothing/mask/gas/explorer(src) new /obj/item/card/mining_access_card(src) diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index d188ce26aa..a1ba493d46 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -52,15 +52,15 @@ new /obj/item/storage/box/emptysandbags(src) new /obj/item/shovel(src) new /obj/item/pickaxe/mini(src) - new /obj/item/device/radio/headset/headset_cargo/mining(src) - new /obj/item/device/flashlight/seclite(src) + new /obj/item/radio/headset/headset_cargo/mining(src) + new /obj/item/flashlight/seclite(src) new /obj/item/storage/bag/plants(src) new /obj/item/storage/bag/ore(src) - new /obj/item/device/t_scanner/adv_mining_scanner/lesser(src) + new /obj/item/t_scanner/adv_mining_scanner/lesser(src) new /obj/item/gun/energy/kinetic_accelerator(src) new /obj/item/clothing/glasses/meson(src) new /obj/item/survivalcapsule(src) - new /obj/item/device/assault_pod/mining(src) + new /obj/item/assault_pod/mining(src) /**********************Shuttle Computer**************************/ diff --git a/code/modules/mining/minebot.dm b/code/modules/mining/minebot.dm index c73b9fad01..23d8d816d4 100644 --- a/code/modules/mining/minebot.dm +++ b/code/modules/mining/minebot.dm @@ -100,7 +100,7 @@ to_chat(user, "You repair some of the armor on [src].") /mob/living/simple_animal/hostile/mining_drone/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/device/mining_scanner) || istype(I, /obj/item/device/t_scanner/adv_mining_scanner)) + if(istype(I, /obj/item/mining_scanner) || istype(I, /obj/item/t_scanner/adv_mining_scanner)) to_chat(user, "You instruct [src] to drop any collected ore.") DropOre() return @@ -263,18 +263,18 @@ //Melee -/obj/item/device/mine_bot_upgrade +/obj/item/mine_bot_upgrade name = "minebot melee upgrade" desc = "A minebot upgrade." icon_state = "door_electronics" icon = 'icons/obj/module.dmi' -/obj/item/device/mine_bot_upgrade/afterattack(mob/living/simple_animal/hostile/mining_drone/M, mob/user, proximity) +/obj/item/mine_bot_upgrade/afterattack(mob/living/simple_animal/hostile/mining_drone/M, mob/user, proximity) if(!istype(M) || !proximity) return upgrade_bot(M, user) -/obj/item/device/mine_bot_upgrade/proc/upgrade_bot(mob/living/simple_animal/hostile/mining_drone/M, mob/user) +/obj/item/mine_bot_upgrade/proc/upgrade_bot(mob/living/simple_animal/hostile/mining_drone/M, mob/user) if(M.melee_damage_upper != initial(M.melee_damage_upper)) to_chat(user, "[src] already has a combat upgrade installed!") return @@ -284,10 +284,10 @@ //Health -/obj/item/device/mine_bot_upgrade/health +/obj/item/mine_bot_upgrade/health name = "minebot armor upgrade" -/obj/item/device/mine_bot_upgrade/health/upgrade_bot(mob/living/simple_animal/hostile/mining_drone/M, mob/user) +/obj/item/mine_bot_upgrade/health/upgrade_bot(mob/living/simple_animal/hostile/mining_drone/M, mob/user) if(M.maxHealth != initial(M.maxHealth)) to_chat(user, "[src] already has reinforced armor!") return diff --git a/code/modules/mining/money_bag.dm b/code/modules/mining/money_bag.dm index befaef31a2..f567bd1daf 100644 --- a/code/modules/mining/money_bag.dm +++ b/code/modules/mining/money_bag.dm @@ -8,14 +8,16 @@ resistance_flags = FLAMMABLE max_integrity = 100 w_class = WEIGHT_CLASS_BULKY - max_w_class = WEIGHT_CLASS_NORMAL - storage_slots = 80 - max_combined_w_class = 40 - can_hold = list(/obj/item/coin, /obj/item/stack/spacecash) - -/obj/item/storage/bag/money/vault/Initialize() +/obj/item/storage/bag/money/Initialize() . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_w_class = WEIGHT_CLASS_NORMAL + STR.max_items = 40 + STR.max_combined_w_class = 40 + STR.can_hold = typecacheof(list(/obj/item/coin, /obj/item/stack/spacecash)) + +/obj/item/storage/bag/money/vault/PopulateContents() new /obj/item/coin/silver(src) new /obj/item/coin/silver(src) new /obj/item/coin/silver(src) diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm index 86f25c6b3e..62ef7bde65 100644 --- a/code/modules/mining/ores_coins.dm +++ b/code/modules/mining/ores_coins.dm @@ -118,6 +118,11 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ to_chat(C, "\The [src] gets into your eyes! The pain, it burns!") qdel(src) +/obj/item/stack/ore/glass/ex_act(severity, target) + if (severity == EXPLODE_NONE) + return + qdel(src) + /obj/item/stack/ore/glass/basalt name = "volcanic ash" icon_state = "volcanic_sand" @@ -210,7 +215,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ return ..() /obj/item/twohanded/required/gibtonite/attackby(obj/item/I, mob/user, params) - if(!wires && istype(I, /obj/item/device/assembly/igniter)) + if(!wires && istype(I, /obj/item/assembly/igniter)) user.visible_message("[user] attaches [I] to [src].", "You attach [I] to [src].") wires = new /datum/wires/explosive/gibtonite(src) attacher = key_name(user) @@ -227,7 +232,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ GibtoniteReaction(user) return if(primed) - if(istype(I, /obj/item/device/mining_scanner) || istype(I, /obj/item/device/t_scanner/adv_mining_scanner) || istype(I, /obj/item/device/multitool)) + if(istype(I, /obj/item/mining_scanner) || istype(I, /obj/item/t_scanner/adv_mining_scanner) || istype(I, /obj/item/multitool)) primed = FALSE if(det_timer) deltimer(det_timer) @@ -300,10 +305,6 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ return qdel(src) -/obj/item/ore/stack/glass/ex_act(severity, target) - if (severity == EXPLODE_NONE) - return - qdel(src) /*****************************Coin********************************/ @@ -359,6 +360,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ icon_state = "coin_gold_heads" value = 50 materials = list(MAT_GOLD = MINERAL_MATERIAL_AMOUNT*0.2) + grind_results = list("gold" = 4) /obj/item/coin/silver name = "silver coin" @@ -366,6 +368,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ icon_state = "coin_silver_heads" value = 20 materials = list(MAT_SILVER = MINERAL_MATERIAL_AMOUNT*0.2) + grind_results = list("silver" = 4) /obj/item/coin/diamond name = "diamond coin" @@ -373,6 +376,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ icon_state = "coin_diamond_heads" value = 500 materials = list(MAT_DIAMOND = MINERAL_MATERIAL_AMOUNT*0.2) + grind_results = list("carbon" = 4) /obj/item/coin/iron name = "iron coin" @@ -380,6 +384,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ icon_state = "coin_iron_heads" value = 1 materials = list(MAT_METAL = MINERAL_MATERIAL_AMOUNT*0.2) + grind_results = list("iron" = 4) /obj/item/coin/plasma name = "plasma coin" @@ -387,6 +392,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ icon_state = "coin_plasma_heads" value = 100 materials = list(MAT_PLASMA = MINERAL_MATERIAL_AMOUNT*0.2) + grind_results = list("plasma" = 4) /obj/item/coin/uranium name = "uranium coin" @@ -394,6 +400,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ icon_state = "coin_uranium_heads" value = 80 materials = list(MAT_URANIUM = MINERAL_MATERIAL_AMOUNT*0.2) + grind_results = list("uranium" = 4) /obj/item/coin/bananium name = "bananium coin" @@ -401,6 +408,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ icon_state = "coin_bananium_heads" value = 1000 //makes the clown cry materials = list(MAT_BANANIUM = MINERAL_MATERIAL_AMOUNT*0.2) + grind_results = list("banana" = 4) /obj/item/coin/adamantine name = "adamantine coin" @@ -421,6 +429,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ sideslist = list("heads") materials = list(MAT_METAL = MINERAL_MATERIAL_AMOUNT*0.2) value = 1 + grind_results = list("iron" = 4) /obj/item/coin/antagtoken name = "antag token" @@ -429,6 +438,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ desc = "A novelty coin that helps the heart know what hard evidence cannot prove." sideslist = list("valid", "salad") value = 0 + grind_results = list("sodiumchloride" = 4) /obj/item/coin/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/stack/cable_coil)) diff --git a/code/modules/mining/satchel_ore_boxdm.dm b/code/modules/mining/satchel_ore_boxdm.dm index a12d56fbbb..78f4676d4e 100644 --- a/code/modules/mining/satchel_ore_boxdm.dm +++ b/code/modules/mining/satchel_ore_boxdm.dm @@ -9,14 +9,12 @@ density = TRUE pressure_resistance = 5*ONE_ATMOSPHERE -/obj/structure/ore_box/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/ore)) - user.transferItemToLoc(I, src) - else if(istype(I, /obj/item/storage)) - var/obj/item/storage/S = I - for(var/obj/item/stack/ore/O in S.contents) - S.remove_from_storage(O, src) //This will move the item to this item's contents - to_chat(user, "You empty the ore in [S] into \the [src].") +/obj/structure/ore_box/attackby(obj/item/W, mob/user, params) + if (istype(W, /obj/item/stack/ore)) + user.transferItemToLoc(W, src) + else if(W.SendSignal(COMSIG_CONTAINS_STORAGE)) + W.SendSignal(COMSIG_TRY_STORAGE_TAKE_TYPE, /obj/item/stack/ore, src) + to_chat(user, "You empty the ore in [W] into \the [src].") else return ..() diff --git a/code/modules/mob/dead/dead.dm b/code/modules/mob/dead/dead.dm index 59e8911659..3daf9c8fe4 100644 --- a/code/modules/mob/dead/dead.dm +++ b/code/modules/mob/dead/dead.dm @@ -36,7 +36,7 @@ INITIALIZE_IMMEDIATE(/mob/dead) if(!statpanel("Status")) return - stat(null, "Game Mode: [SSticker.hide_mode ? "Secret" : "[GLOB.master_mode]"]") + //stat(null, "Game Mode: [SSticker.hide_mode ? "Secret" : "[GLOB.master_mode]"]") CIT CHANGE - obfuscates gamemode from player view if(SSticker.HasRoundStarted()) return @@ -72,7 +72,7 @@ INITIALIZE_IMMEDIATE(/mob/dead) if(!pick) return - + var/addr = csa[pick] if(alert(src, "Jump to server [pick] ([addr])?", "Server Hop", "Yes", "No") != "Yes") diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 47677780e9..01ac36c57a 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -376,11 +376,11 @@ if(GLOB.highlander) to_chat(humanc, "THERE CAN BE ONLY ONE!!!") humanc.make_scottish() - if(prob(5) && !issilicon(humanc) && !jobban_isbanned(humanc.mind, "Syndicate") && GLOB.miscreants_allowed && ROLE_MISCREANT in humanc.client.prefs.be_special) +/* if(prob(5) && !issilicon(humanc) && !jobban_isbanned(humanc.mind, "Syndicate") && GLOB.miscreants_allowed && ROLE_MISCREANT in humanc.client.prefs.be_special) SSticker.generate_miscreant_objectives(humanc.mind) else if(CONFIG_GET(flag/allow_crew_objectives)) - SSticker.generate_individual_objectives(humanc.mind) + SSticker.generate_individual_objectives(humanc.mind) */ if(GLOB.summon_guns_triggered) give_guns(humanc) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index f03ca135d1..8bfe33b3ea 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -91,6 +91,9 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) name = random_unique_name(gender) mind = body.mind //we don't transfer the mind but we keep a reference to it. + + suiciding = body.suiciding // Transfer whether they committed suicide. + if(ishuman(body)) var/mob/living/carbon/human/body_human = body if(HAIR in body_human.dna.species.species_traits) @@ -320,9 +323,6 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp Moved(oldloc, direct) -/mob/dead/observer/is_active() - return 0 - /mob/dead/observer/verb/reenter_corpse() set category = "Ghost" set name = "Re-enter Corpse" diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index bf083b654d..a7b28dd658 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -381,7 +381,7 @@ dropItemToGround(I) drop_all_held_items() -/obj/item/proc/equip_to_best_slot(var/mob/M) +/obj/item/proc/equip_to_best_slot(mob/M) if(src != M.get_active_held_item()) to_chat(M, "You are not holding anything to equip!") return FALSE @@ -393,28 +393,16 @@ if(equip_delay_self) return - if(M.s_active && M.s_active.can_be_inserted(src,1)) //if storage active insert there - M.s_active.handle_item_insertion(src) + if(M.active_storage && M.active_storage.parent && M.active_storage.parent.SendSignal(COMSIG_TRY_STORAGE_INSERT, src,M)) return TRUE - var/obj/item/storage/S = M.get_inactive_held_item() - if(istype(S) && S.can_be_inserted(src,1)) //see if we have box in other hand - S.handle_item_insertion(src) - return TRUE - - S = M.get_item_by_slot(slot_belt) - if(istype(S) && S.can_be_inserted(src,1)) //else we put in belt - S.handle_item_insertion(src) - return TRUE - - S = M.get_item_by_slot(slot_generic_dextrous_storage) //else we put in whatever is in drone storage - if(istype(S) && S.can_be_inserted(src,1)) - S.handle_item_insertion(src) - - S = M.get_item_by_slot(slot_back) //else we put in backpack - if(istype(S) && S.can_be_inserted(src,1)) - S.handle_item_insertion(src) - return TRUE + var/list/obj/item/possible = list(M.get_inactive_held_item(), M.get_item_by_slot(slot_belt), M.get_item_by_slot(slot_generic_dextrous_storage), M.get_item_by_slot(slot_back)) + for(var/i in possible) + if(!i) + continue + var/obj/item/I = i + if(I.SendSignal(COMSIG_TRY_STORAGE_INSERT, src, M)) + return TRUE to_chat(M, "You are unable to equip that!") return FALSE diff --git a/code/modules/mob/living/brain/MMI.dm b/code/modules/mob/living/brain/MMI.dm index 8f831d3f9d..802b869d02 100644 --- a/code/modules/mob/living/brain/MMI.dm +++ b/code/modules/mob/living/brain/MMI.dm @@ -1,11 +1,11 @@ -/obj/item/device/mmi +/obj/item/mmi name = "Man-Machine Interface" desc = "The Warrior's bland acronym, MMI, obscures the true horror of this monstrosity, that nevertheless has become standard-issue on Nanotrasen stations." icon = 'icons/obj/assemblies.dmi' icon_state = "mmi_off" w_class = WEIGHT_CLASS_NORMAL var/braintype = "Cyborg" - var/obj/item/device/radio/radio = null //Let's give it a radio. + var/obj/item/radio/radio = null //Let's give it a radio. var/mob/living/brain/brainmob = null //The current occupant. var/mob/living/silicon/robot = null //Appears unused. var/obj/mecha = null //This does not appear to be used outside of reference in mecha.dm. @@ -14,7 +14,7 @@ var/force_replace_ai_name = FALSE var/overrides_aicore_laws = FALSE // Whether the laws on the MMI, if any, override possible pre-existing laws loaded on the AI core. -/obj/item/device/mmi/update_icon() +/obj/item/mmi/update_icon() if(!brain) icon_state = "mmi_off" return @@ -29,13 +29,13 @@ else add_overlay("mmi_dead") -/obj/item/device/mmi/Initialize() +/obj/item/mmi/Initialize() . = ..() radio = new(src) //Spawns a radio inside the MMI. radio.broadcasting = 0 //researching radio mmis turned the robofabs into radios because this didnt start as 0. laws.set_laws_config() -/obj/item/device/mmi/attackby(obj/item/O, mob/user, params) +/obj/item/mmi/attackby(obj/item/O, mob/user, params) user.changeNext_move(CLICK_CD_MELEE) if(istype(O, /obj/item/organ/brain)) //Time to stick a brain in it --NEO var/obj/item/organ/brain/newbrain = O @@ -76,7 +76,7 @@ return ..() -/obj/item/device/mmi/attack_self(mob/user) +/obj/item/mmi/attack_self(mob/user) if(!brain) radio.on = !radio.on to_chat(user, "You toggle the MMI's radio system [radio.on==1 ? "on" : "off"].") @@ -86,7 +86,7 @@ update_icon() name = "Man-Machine Interface" -/obj/item/device/mmi/proc/eject_brain(mob/user) +/obj/item/mmi/proc/eject_brain(mob/user) brainmob.container = null //Reset brainmob mmi var. brainmob.forceMove(brain) //Throw mob into brain. brainmob.stat = DEAD @@ -103,7 +103,7 @@ brain = null //No more brain in here -/obj/item/device/mmi/proc/transfer_identity(mob/living/L) //Same deal as the regular brain proc. Used for human-->robot people. +/obj/item/mmi/proc/transfer_identity(mob/living/L) //Same deal as the regular brain proc. Used for human-->robot people. if(!brainmob) brainmob = new(src) brainmob.name = L.real_name @@ -128,10 +128,10 @@ update_icon() return -/obj/item/device/mmi/proc/replacement_ai_name() +/obj/item/mmi/proc/replacement_ai_name() return brainmob.name -/obj/item/device/mmi/verb/Toggle_Listening() +/obj/item/mmi/verb/Toggle_Listening() set name = "Toggle Listening" set desc = "Toggle listening channel on or off." set category = "MMI" @@ -147,7 +147,7 @@ radio.listening = radio.listening==1 ? 0 : 1 to_chat(brainmob, "Radio is [radio.listening==1 ? "now" : "no longer"] receiving broadcast.") -/obj/item/device/mmi/emp_act(severity) +/obj/item/mmi/emp_act(severity) if(!brainmob || iscyborg(loc)) return else @@ -161,7 +161,7 @@ brainmob.emote("alarm") ..() -/obj/item/device/mmi/Destroy() +/obj/item/mmi/Destroy() if(iscyborg(loc)) var/mob/living/silicon/robot/borg = loc borg.mmi = null @@ -178,12 +178,12 @@ radio = null return ..() -/obj/item/device/mmi/deconstruct(disassembled = TRUE) +/obj/item/mmi/deconstruct(disassembled = TRUE) if(brain) eject_brain() qdel(src) -/obj/item/device/mmi/examine(mob/user) +/obj/item/mmi/examine(mob/user) ..() if(brainmob) var/mob/living/brain/B = brainmob @@ -196,15 +196,15 @@ else to_chat(user, "The MMI indicates the brain is active.") -/obj/item/device/mmi/relaymove(mob/user) +/obj/item/mmi/relaymove(mob/user) return //so that the MMI won't get a warning about not being able to move if it tries to move -/obj/item/device/mmi/syndie +/obj/item/mmi/syndie name = "Syndicate Man-Machine Interface" desc = "Syndicate's own brand of MMI. It enforces laws designed to help Syndicate agents achieve their goals upon cyborgs and AIs created with it." overrides_aicore_laws = TRUE -/obj/item/device/mmi/syndie/Initialize() +/obj/item/mmi/syndie/Initialize() . = ..() laws = new /datum/ai_laws/syndicate_override() radio.on = 0 diff --git a/code/modules/mob/living/brain/brain.dm b/code/modules/mob/living/brain/brain.dm index 365fe5cb01..e8a15d70ae 100644 --- a/code/modules/mob/living/brain/brain.dm +++ b/code/modules/mob/living/brain/brain.dm @@ -1,5 +1,5 @@ /mob/living/brain - var/obj/item/device/mmi/container = null + var/obj/item/mmi/container = null var/timeofhostdeath = 0 var/emp_damage = 0//Handles a type of MMI damage var/datum/dna/stored/stored_dna // dna var for brain. Used to store dna, brain dna is not considered like actual dna, brain.has_dna() returns FALSE. @@ -66,8 +66,8 @@ /mob/living/brain/ClickOn(atom/A, params) ..() - if(istype(loc, /obj/item/device/mmi)) - var/obj/item/device/mmi/MMI = loc + if(istype(loc, /obj/item/mmi)) + var/obj/item/mmi/MMI = loc var/obj/mecha/M = MMI.mecha if((src == MMI.brainmob) && istype(M)) return M.click_action(A,src,params) @@ -80,7 +80,7 @@ B.forceMove(destination) else if (istype(destination, /obj/item/organ/brain)) doMove(destination) - else if (istype(destination, /obj/item/device/mmi)) + else if (istype(destination, /obj/item/mmi)) doMove(destination) else CRASH("Brainmob without a container [src] attempted to move to [destination].") diff --git a/code/modules/mob/living/brain/brain_item.dm b/code/modules/mob/living/brain/brain_item.dm index 3ee5abef9b..7dd6f4c614 100644 --- a/code/modules/mob/living/brain/brain_item.dm +++ b/code/modules/mob/living/brain/brain_item.dm @@ -157,7 +157,7 @@ else adjusted_amount = amount - adjusted_amount *= BRAIN_DAMAGE_INTEGRITY_MULTIPLIER + adjusted_amount = round(adjusted_amount * BRAIN_DAMAGE_INTEGRITY_MULTIPLIER,0.1) if(adjusted_amount) if(adjusted_amount >= 0.1) take_damage(adjusted_amount) diff --git a/code/modules/mob/living/brain/death.dm b/code/modules/mob/living/brain/death.dm index 9366f4d423..acfc4a9ef4 100644 --- a/code/modules/mob/living/brain/death.dm +++ b/code/modules/mob/living/brain/death.dm @@ -4,7 +4,7 @@ stat = DEAD if(!gibbed && container)//If not gibbed but in a container. - var/obj/item/device/mmi = container + var/obj/item/mmi = container mmi.visible_message("[src]'s MMI flatlines!", \ "You hear something flatline.") mmi.update_icon() diff --git a/code/modules/mob/living/brain/emote.dm b/code/modules/mob/living/brain/emote.dm index a2182c605a..540c7b3949 100644 --- a/code/modules/mob/living/brain/emote.dm +++ b/code/modules/mob/living/brain/emote.dm @@ -5,7 +5,7 @@ /datum/emote/brain/can_run_emote(mob/user, status_check = TRUE) . = ..() var/mob/living/brain/B = user - if(!istype(B) || (!(B.container && istype(B.container, /obj/item/device/mmi)))) + if(!istype(B) || (!(B.container && istype(B.container, /obj/item/mmi)))) return FALSE /datum/emote/brain/alarm diff --git a/code/modules/mob/living/brain/posibrain.dm b/code/modules/mob/living/brain/posibrain.dm index 7e9ca03037..9c927560d9 100644 --- a/code/modules/mob/living/brain/posibrain.dm +++ b/code/modules/mob/living/brain/posibrain.dm @@ -1,6 +1,6 @@ GLOBAL_VAR(posibrain_notify_cooldown) -/obj/item/device/mmi/posibrain +/obj/item/mmi/posibrain name = "positronic brain" desc = "A cube of shining metal, four inches to a side and covered in shallow grooves." icon = 'icons/obj/assemblies.dmi' @@ -28,19 +28,19 @@ GLOBAL_VAR(posibrain_notify_cooldown) var/list/possible_names //If you leave this blank, it will use the global posibrain names var/picked_name -/obj/item/device/mmi/posibrain/Topic(href, href_list) +/obj/item/mmi/posibrain/Topic(href, href_list) if(href_list["activate"]) var/mob/dead/observer/ghost = usr if(istype(ghost)) activate(ghost) -/obj/item/device/mmi/posibrain/proc/ping_ghosts(msg, newlymade) // CITADEL EDIT sound change to 'sound/misc/server-ready.ogg' +/obj/item/mmi/posibrain/proc/ping_ghosts(msg, newlymade) // CITADEL EDIT sound change to 'sound/misc/server-ready.ogg' if(newlymade || GLOB.posibrain_notify_cooldown <= world.time) notify_ghosts("[name] [msg] in [get_area(src)]!", ghost_sound = !newlymade ? 'sound/misc/server-ready.ogg':null, enter_link = "(Click to enter)", source = src, action = NOTIFY_ATTACK, flashwindow = FALSE) if(!newlymade) GLOB.posibrain_notify_cooldown = world.time + askDelay -/obj/item/device/mmi/posibrain/attack_self(mob/user) +/obj/item/mmi/posibrain/attack_self(mob/user) if(!brainmob) brainmob = new(src) if(is_occupied()) @@ -57,7 +57,7 @@ GLOBAL_VAR(posibrain_notify_cooldown) update_icon() addtimer(CALLBACK(src, .proc/check_success), askDelay) -/obj/item/device/mmi/posibrain/proc/check_success() +/obj/item/mmi/posibrain/proc/check_success() searching = FALSE update_icon() if(QDELETED(brainmob)) @@ -68,10 +68,10 @@ GLOBAL_VAR(posibrain_notify_cooldown) else visible_message(fail_message) -/obj/item/device/mmi/posibrain/attack_ghost(mob/user) +/obj/item/mmi/posibrain/attack_ghost(mob/user) activate(user) -/obj/item/device/mmi/posibrain/proc/is_occupied() +/obj/item/mmi/posibrain/proc/is_occupied() if(brainmob.key) return TRUE if(iscyborg(loc)) @@ -81,7 +81,7 @@ GLOBAL_VAR(posibrain_notify_cooldown) return FALSE //Two ways to activate a positronic brain. A clickable link in the ghost notif, or simply clicking the object itself. -/obj/item/device/mmi/posibrain/proc/activate(mob/user) +/obj/item/mmi/posibrain/proc/activate(mob/user) if(QDELETED(brainmob)) return if(is_occupied() || jobban_isbanned(user,"posibrain")) @@ -92,7 +92,7 @@ GLOBAL_VAR(posibrain_notify_cooldown) return transfer_personality(user) -/obj/item/device/mmi/posibrain/transfer_identity(mob/living/carbon/C) +/obj/item/mmi/posibrain/transfer_identity(mob/living/carbon/C) name = "[initial(name)] ([C])" brainmob.name = C.real_name brainmob.real_name = C.real_name @@ -111,7 +111,7 @@ GLOBAL_VAR(posibrain_notify_cooldown) brainmob.mind.wipe_memory() update_icon() -/obj/item/device/mmi/posibrain/proc/transfer_personality(mob/candidate) +/obj/item/mmi/posibrain/proc/transfer_personality(mob/candidate) if(QDELETED(brainmob)) return if(is_occupied()) //Prevents hostile takeover if two ghosts get the prompt or link for the same brain. @@ -133,7 +133,7 @@ GLOBAL_VAR(posibrain_notify_cooldown) return TRUE -/obj/item/device/mmi/posibrain/examine(mob/user) +/obj/item/mmi/posibrain/examine(mob/user) . = ..() var/msg if(brainmob && brainmob.key) @@ -148,7 +148,7 @@ GLOBAL_VAR(posibrain_notify_cooldown) to_chat(user, msg) -/obj/item/device/mmi/posibrain/Initialize() +/obj/item/mmi/posibrain/Initialize() . = ..() brainmob = new(src) var/new_name @@ -163,11 +163,11 @@ GLOBAL_VAR(posibrain_notify_cooldown) if(autoping) ping_ghosts("created", TRUE) -/obj/item/device/mmi/posibrain/attackby(obj/item/O, mob/user) +/obj/item/mmi/posibrain/attackby(obj/item/O, mob/user) return -/obj/item/device/mmi/posibrain/update_icon() +/obj/item/mmi/posibrain/update_icon() if(searching) icon_state = "[initial(icon_state)]-searching" return diff --git a/code/modules/mob/living/brain/say.dm b/code/modules/mob/living/brain/say.dm index 4afe2cd3d0..de18b8ce3f 100644 --- a/code/modules/mob/living/brain/say.dm +++ b/code/modules/mob/living/brain/say.dm @@ -1,5 +1,5 @@ /mob/living/brain/say(message, language) - if(!(container && istype(container, /obj/item/device/mmi))) + if(!(container && istype(container, /obj/item/mmi))) return //No MMI, can't speak, bucko./N else if(prob(emp_damage*4)) @@ -14,8 +14,8 @@ return ..() | SPAN_ROBOT /mob/living/brain/radio(message, message_mode, list/spans, language) - if(message_mode == MODE_HEADSET && istype(container, /obj/item/device/mmi)) - var/obj/item/device/mmi/R = container + if(message_mode == MODE_HEADSET && istype(container, /obj/item/mmi)) + var/obj/item/mmi/R = container if(R.radio) R.radio.talk_into(src, message, , get_spans(), language) return ITALICS | REDUCE_RANGE @@ -30,7 +30,7 @@ return message /mob/living/brain/could_speak_in_language(datum/language/dt) - if(istype(container, /obj/item/device/mmi/posibrain/soul_vessel)) + if(istype(container, /obj/item/mmi/posibrain/soul_vessel)) // soul vessels can only speak ratvarian. . = ispath(dt, /datum/language/ratvar) else diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index 0a0c46bffc..10fddfcb20 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -1,8 +1,3 @@ -#define HEAT_DAMAGE_LEVEL_1 2 //Amount of damage applied when your body temperature just passes the 360.15k safety point -#define HEAT_DAMAGE_LEVEL_2 3 //Amount of damage applied when your body temperature passes the 400K point -#define HEAT_DAMAGE_LEVEL_3 8 //Amount of damage applied when your body temperature passes the 460K point and you are on fire - - /mob/living/carbon/alien name = "alien" icon = 'icons/mob/alien.dmi' @@ -146,9 +141,5 @@ Des: Removes all infected images from the alien. mind.transfer_to(new_xeno) qdel(src) -#undef HEAT_DAMAGE_LEVEL_1 -#undef HEAT_DAMAGE_LEVEL_2 -#undef HEAT_DAMAGE_LEVEL_3 - /mob/living/carbon/alien/can_hold_items() return has_fine_manipulation diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index ebf66a675e..4cea6260a9 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -446,7 +446,7 @@ var/obj/item/organ/alien/plasmavessel/vessel = getorgan(/obj/item/organ/alien/plasmavessel) if(vessel) stat(null, "Plasma Stored: [vessel.storedPlasma]/[vessel.max_plasma]") - if(locate(/obj/item/device/assembly/health) in src) + if(locate(/obj/item/assembly/health) in src) stat(null, "Health: [health]") add_abilities_to_panel() diff --git a/code/modules/mob/living/carbon/carbon_movement.dm b/code/modules/mob/living/carbon/carbon_movement.dm index 6fbd4b6f0a..7334464235 100644 --- a/code/modules/mob/living/carbon/carbon_movement.dm +++ b/code/modules/mob/living/carbon/carbon_movement.dm @@ -1,6 +1,6 @@ /mob/living/carbon/movement_delay() var/FP = FALSE - var/obj/item/device/flightpack/F = get_flightpack() + var/obj/item/flightpack/F = get_flightpack() if(istype(F) && F.flight) FP = TRUE . = ..(FP) @@ -33,7 +33,7 @@ if(!isturf(loc)) return 0 - var/obj/item/device/flightpack/F = get_flightpack() + var/obj/item/flightpack/F = get_flightpack() if(istype(F) && (F.flight) && F.allow_thrust(0.01, src)) return 1 diff --git a/code/modules/mob/living/carbon/damage_procs.dm b/code/modules/mob/living/carbon/damage_procs.dm index 88a70228db..3790b9583e 100644 --- a/code/modules/mob/living/carbon/damage_procs.dm +++ b/code/modules/mob/living/carbon/damage_procs.dm @@ -220,7 +220,7 @@ //Some sources of brain damage shouldn't be deadly /mob/living/carbon/adjustBrainLoss(amount, maximum = BRAIN_DAMAGE_DEATH) if(status_flags & GODMODE) - return 0 + return FALSE var/prev_brainloss = getBrainLoss() var/obj/item/organ/brain/B = getorganslot(ORGAN_SLOT_BRAIN) if(!B) @@ -230,20 +230,20 @@ return var/brainloss = getBrainLoss() if(brainloss > BRAIN_DAMAGE_MILD) - if(prob((amount * 2) + (brainloss - BRAIN_DAMAGE_MILD - (20 * LAZYLEN(get_traumas())) / 5))) //1 damage|50 brain damage = 4% chance + if(prob(amount * ((2 * (100 + brainloss - BRAIN_DAMAGE_MILD)) / 100))) //Base chance is the hit damage; for every point of damage past the threshold the chance is increased by 2% gain_trauma_type(BRAIN_TRAUMA_MILD) if(brainloss > BRAIN_DAMAGE_SEVERE) - if(prob(amount + (brainloss - BRAIN_DAMAGE_SEVERE - (20 * LAZYLEN(get_traumas())) / 15))) //1 damage|150 brain damage = 3% chance + if(prob(amount * ((2 * (100 + brainloss - BRAIN_DAMAGE_SEVERE)) / 100))) //Base chance is the hit damage; for every point of damage past the threshold the chance is increased by 2% if(prob(20)) gain_trauma_type(BRAIN_TRAUMA_SPECIAL) else gain_trauma_type(BRAIN_TRAUMA_SEVERE) - if(prev_brainloss < 40 && brainloss >= 40) + if(prev_brainloss < BRAIN_DAMAGE_MILD && brainloss >= BRAIN_DAMAGE_MILD) to_chat(src, "You feel lightheaded.") - else if(prev_brainloss < 120 && brainloss >= 120) + else if(prev_brainloss < BRAIN_DAMAGE_SEVERE && brainloss >= BRAIN_DAMAGE_SEVERE) to_chat(src, "You feel less in control of your thoughts.") - else if(prev_brainloss < 180 && brainloss >= 180) + else if(prev_brainloss < (BRAIN_DAMAGE_DEATH - 20) && brainloss >= (BRAIN_DAMAGE_DEATH - 20)) to_chat(src, "You can feel your mind flickering on and off...") /mob/living/carbon/setBrainLoss(amount) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 6c63c32904..d38ecda303 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -852,7 +852,7 @@ /mob/living/carbon/human/Collide(atom/A) ..() var/crashdir = get_dir(src, A) - var/obj/item/device/flightpack/FP = get_flightpack() + var/obj/item/flightpack/FP = get_flightpack() if(FP) FP.flight_impact(A, crashdir) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index e47e7e1b63..050a4f6d09 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -44,7 +44,7 @@ return spec_return if(mind) - if(mind.martial_art && mind.martial_art.deflection_chance) //Some martial arts users can deflect projectiles! + if(mind.martial_art && !incapacitated(FALSE, TRUE) && mind.martial_art.can_use(src) && mind.martial_art.deflection_chance) //Some martial arts users can deflect projectiles! if(prob(mind.martial_art.deflection_chance)) if(!lying && dna && !dna.check_mutation(HULK)) //But only if they're not lying down, and hulks can't do it if(mind.martial_art.deflection_chance >= 100) //if they can NEVER be hit, lets clue sec in ;) @@ -113,7 +113,7 @@ /mob/living/carbon/human/proc/check_block() if(mind) - if(mind.martial_art && prob(mind.martial_art.block_chance) && in_throw_mode && !stat && !IsKnockdown() && !IsStun()) + if(mind.martial_art && prob(mind.martial_art.block_chance) && mind.martial_art.can_use(src) && in_throw_mode && !incapacitated(FALSE, TRUE)) return TRUE return FALSE @@ -718,6 +718,21 @@ to_chat(src, "Your thinking is clouded and distant.") else if(oxyloss > 30) to_chat(src, "You're choking!") + + switch(nutrition) + if(NUTRITION_LEVEL_FULL to INFINITY) + to_chat(src, "You're completely stuffed!") + if(NUTRITION_LEVEL_WELL_FED to NUTRITION_LEVEL_FULL) + to_chat(src, "You're well fed!") + if(NUTRITION_LEVEL_FED to NUTRITION_LEVEL_WELL_FED) + to_chat(src, "You're not hungry.") + if(NUTRITION_LEVEL_HUNGRY to NUTRITION_LEVEL_FED) + to_chat(src, "You could use a bite to eat.") + if(NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_HUNGRY) + to_chat(src, "You feel quite hungry.") + if(0 to NUTRITION_LEVEL_STARVING) + to_chat(src, "You're starving!") + if(roundstart_traits.len) to_chat(src, "You have these traits: [get_trait_string()].") else diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 60bb0fe497..47a866df97 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -4,6 +4,7 @@ pressure_resistance = 25 can_buckle = TRUE buckle_lying = FALSE + mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) //Hair colour and style var/hair_color = "000" var/hair_style = "Bald" diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm index 74562d6adb..80714df0d8 100644 --- a/code/modules/mob/living/carbon/human/human_helpers.dm +++ b/code/modules/mob/living/carbon/human/human_helpers.dm @@ -16,7 +16,7 @@ if(id) . = id.assignment else - var/obj/item/device/pda/pda = wear_id + var/obj/item/pda/pda = wear_id if(istype(pda)) . = pda.ownjob else @@ -30,7 +30,7 @@ var/obj/item/card/id/id = get_idcard() if(id) return id.registered_name - var/obj/item/device/pda/pda = wear_id + var/obj/item/pda/pda = wear_id if(istype(pda)) return pda.owner return if_no_id @@ -64,9 +64,9 @@ //Useful when player is being seen by other mobs /mob/living/carbon/human/proc/get_id_name(if_no_id = "Unknown") var/obj/item/storage/wallet/wallet = wear_id - var/obj/item/device/pda/pda = wear_id + var/obj/item/pda/pda = wear_id var/obj/item/card/id/id = wear_id - var/obj/item/device/modular_computer/tablet/tablet = wear_id + var/obj/item/modular_computer/tablet/tablet = wear_id if(istype(wallet)) id = wallet.front_id if(istype(id)) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 55f66c975e..be1cda38b6 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -2,24 +2,6 @@ //NOTE: Breathing happens once per FOUR TICKS, unless the last breath fails. In which case it happens once per ONE TICK! So oxyloss healing is done once per 4 ticks while oxyloss damage is applied once per tick! - -#define HEAT_DAMAGE_LEVEL_1 2 //Amount of damage applied when your body temperature just passes the 360.15k safety point -#define HEAT_DAMAGE_LEVEL_2 3 //Amount of damage applied when your body temperature passes the 400K point -#define HEAT_DAMAGE_LEVEL_3 10 //Amount of damage applied when your body temperature passes the 460K point and you are on fire - -#define COLD_DAMAGE_LEVEL_1 0.5 //Amount of damage applied when your body temperature just passes the 260.15k safety point -#define COLD_DAMAGE_LEVEL_2 1.5 //Amount of damage applied when your body temperature passes the 200K point -#define COLD_DAMAGE_LEVEL_3 3 //Amount of damage applied when your body temperature passes the 120K point - -//Note that gas heat damage is only applied once every FOUR ticks. -#define HEAT_GAS_DAMAGE_LEVEL_1 2 //Amount of damage applied when the current breath's temperature just passes the 360.15k safety point -#define HEAT_GAS_DAMAGE_LEVEL_2 4 //Amount of damage applied when the current breath's temperature passes the 400K point -#define HEAT_GAS_DAMAGE_LEVEL_3 8 //Amount of damage applied when the current breath's temperature passes the 1000K point - -#define COLD_GAS_DAMAGE_LEVEL_1 0.5 //Amount of damage applied when the current breath's temperature just passes the 260.15k safety point -#define COLD_GAS_DAMAGE_LEVEL_2 1.5 //Amount of damage applied when the current breath's temperature passes the 200K point -#define COLD_GAS_DAMAGE_LEVEL_3 3 //Amount of damage applied when the current breath's temperature passes the 120K point - // bitflags for the percentual amount of protection a piece of clothing which covers the body part offers. // Used with human/proc/get_heat_protection() and human/proc/get_cold_protection() // The values here should add up to 1. @@ -66,7 +48,7 @@ return ONE_ATMOSPHERE if(istype(loc, /obj/belly)) return ONE_ATMOSPHERE - if(istype(loc, /obj/item/device/dogborg/sleeper)) + if(istype(loc, /obj/item/dogborg/sleeper)) return ONE_ATMOSPHERE else return pressure @@ -102,8 +84,7 @@ /mob/living/carbon/human/breathe() if(!dna.species.breathe(src)) ..() -#define HUMAN_MAX_OXYLOSS 3 -#define HUMAN_CRIT_MAX_OXYLOSS (SSmobs.wait/30) + /mob/living/carbon/human/check_breath(datum/gas_mixture/breath) var/L = getorganslot(ORGAN_SLOT_LUNGS) @@ -133,9 +114,6 @@ var/obj/item/organ/lungs/lun = L lun.check_breath(breath,src) -#undef HUMAN_MAX_OXYLOSS -#undef HUMAN_CRIT_MAX_OXYLOSS - /mob/living/carbon/human/handle_environment(datum/gas_mixture/environment) dna.species.handle_environment(environment, src) @@ -147,12 +125,12 @@ /mob/living/carbon/human/proc/get_thermal_protection() var/thermal_protection = 0 //Simple check to estimate how protected we are against multiple temperatures -//CITADEL EDIT Vore code required overrides - if(istype(loc, /obj/item/device/dogborg/sleeper)) + //CITADEL EDIT Vore code required overrides + if(istype(loc, /obj/item/dogborg/sleeper)) return FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT if(ismob(loc)) return FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT - if(istype(loc, /obj/belly)) + if(isbelly(loc)) return FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT //END EDIT if(wear_suit) @@ -262,16 +240,14 @@ /mob/living/carbon/human/proc/get_cold_protection(temperature) if(has_trait(TRAIT_RESISTCOLD)) return TRUE - //CITADEL EDIT Mandatory for vore code. - if(istype(loc, /obj/item/device/dogborg/sleeper)) - return 1 //freezing to death in sleepers ruins fun. - if(istype(loc, /obj/belly)) - return 1 + if(istype(loc, /obj/item/dogborg/sleeper)) + return TRUE //freezing to death in sleepers ruins fun. + if(isbelly(loc)) + return TRUE if(ismob(loc)) - return 1 //because lazy and being inside somemone insulates you from space + return TRUE //because lazy and being inside somemone insulates you from space //END EDIT - temperature = max(temperature, 2.7) //There is an occasional bug where the temperature is miscalculated in ares with a small amount of gas on them, so this is necessary to ensure that that bug does not affect this calculation. Space's temperature is 2.7K and most suits that are intended to protect against any cold, protect down to 2.0K. var/thermal_protection_flags = get_cold_protection_flags(temperature) @@ -458,7 +434,6 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put if(drunkenness >= 101) adjustToxLoss(4) //Let's be honest you shouldn't be alive by now -#undef HUMAN_MAX_OXYLOSS #undef THERMAL_PROTECTION_HEAD #undef THERMAL_PROTECTION_CHEST #undef THERMAL_PROTECTION_GROIN diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm index c008be1093..3cdaf71e68 100644 --- a/code/modules/mob/living/carbon/human/say.dm +++ b/code/modules/mob/living/carbon/human/say.dm @@ -69,7 +69,7 @@ /mob/living/carbon/human/binarycheck() if(ears) - var/obj/item/device/radio/headset/dongle = ears + var/obj/item/radio/headset/dongle = ears if(!istype(dongle)) return 0 if(dongle.translate_binary) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 3722db8346..a89c966012 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -2,14 +2,6 @@ GLOBAL_LIST_EMPTY(roundstart_races) -#define HEAT_DAMAGE_LEVEL_1 2 -#define HEAT_DAMAGE_LEVEL_2 3 -#define HEAT_DAMAGE_LEVEL_3 8 - -#define COLD_DAMAGE_LEVEL_1 0.5 -#define COLD_DAMAGE_LEVEL_2 1.5 -#define COLD_DAMAGE_LEVEL_3 3 - /datum/species var/id // if the game needs to manually check your race to do something not included in a proc here, it will use this var/limbs_id //this is used if you want to use a different species limb sprites. Mainly used for angels as they look like humans. @@ -57,6 +49,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) var/list/species_traits = list() // generic traits tied to having the species var/list/inherent_traits = list() + var/list/inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) var/attack_verb = "punch" // punch-specific attack verb var/sound/attack_sound = 'sound/weapons/punch1.ogg' @@ -269,6 +262,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(DIGITIGRADE in species_traits) C.Digitigrade_Leg_Swap(FALSE) + C.mob_biotypes = inherent_biotypes regenerate_organs(C,old_species) if(exotic_bloodtype && C.dna.blood_type != exotic_bloodtype) @@ -864,7 +858,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) /datum/species/proc/can_equip(obj/item/I, slot, disable_warning, mob/living/carbon/human/H, bypass_equip_delay_self = FALSE) if(slot in no_equip) if(!I.species_exception || !is_type_in_list(src, I.species_exception)) - return 0 + return FALSE var/num_arms = H.get_num_arms() var/num_legs = H.get_num_legs() @@ -876,181 +870,180 @@ GLOBAL_LIST_EMPTY(roundstart_races) return FALSE if(slot_wear_mask) if(H.wear_mask) - return 0 - if( !(I.slot_flags & SLOT_MASK) ) - return 0 + return FALSE + if(!(I.slot_flags & SLOT_MASK)) + return FALSE if(!H.get_bodypart(BODY_ZONE_HEAD)) - return 0 + return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) if(slot_neck) if(H.wear_neck) - return 0 + return FALSE if( !(I.slot_flags & SLOT_NECK) ) - return 0 - return 1 + return FALSE + return TRUE if(slot_back) if(H.back) - return 0 + return FALSE if( !(I.slot_flags & SLOT_BACK) ) - return 0 + return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) if(slot_wear_suit) if(H.wear_suit) - return 0 + return FALSE if( !(I.slot_flags & SLOT_OCLOTHING) ) - return 0 + return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) if(slot_gloves) if(H.gloves) - return 0 + return FALSE if( !(I.slot_flags & SLOT_GLOVES) ) - return 0 + return FALSE if(num_arms < 2) - return 0 + return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) if(slot_shoes) if(H.shoes) - return 0 + return FALSE if( !(I.slot_flags & SLOT_FEET) ) - return 0 + return FALSE if(num_legs < 2) - return 0 + return FALSE if(DIGITIGRADE in species_traits) if(!disable_warning) to_chat(H, "The footwear around here isn't compatible with your feet!") - return 0 + return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) if(slot_belt) if(H.belt) - return 0 + return FALSE var/obj/item/bodypart/O = H.get_bodypart(BODY_ZONE_CHEST) if(!H.w_uniform && !nojumpsuit && (!O || O.status != BODYPART_ROBOTIC)) if(!disable_warning) to_chat(H, "You need a jumpsuit before you can attach this [I.name]!") - return 0 - if( !(I.slot_flags & SLOT_BELT) ) + return FALSE + if(!(I.slot_flags & SLOT_BELT)) return return equip_delay_self_check(I, H, bypass_equip_delay_self) if(slot_glasses) if(H.glasses) - return 0 - if( !(I.slot_flags & SLOT_EYES) ) - return 0 + return FALSE + if(!(I.slot_flags & SLOT_EYES)) + return FALSE if(!H.get_bodypart(BODY_ZONE_HEAD)) - return 0 + return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) if(slot_head) if(H.head) - return 0 - if( !(I.slot_flags & SLOT_HEAD) ) - return 0 + return FALSE + if(!(I.slot_flags & SLOT_HEAD)) + return FALSE if(!H.get_bodypart(BODY_ZONE_HEAD)) - return 0 + return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) if(slot_ears) if(H.ears) - return 0 - if( !(I.slot_flags & SLOT_EARS) ) - return 0 + return FALSE + if(!(I.slot_flags & SLOT_EARS)) + return FALSE if(!H.get_bodypart(BODY_ZONE_HEAD)) - return 0 + return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) if(slot_w_uniform) if(H.w_uniform) - return 0 + return FALSE if( !(I.slot_flags & SLOT_ICLOTHING) ) - return 0 + return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) if(slot_wear_id) if(H.wear_id) - return 0 + return FALSE var/obj/item/bodypart/O = H.get_bodypart(BODY_ZONE_CHEST) if(!H.w_uniform && !nojumpsuit && (!O || O.status != BODYPART_ROBOTIC)) if(!disable_warning) to_chat(H, "You need a jumpsuit before you can attach this [I.name]!") - return 0 + return FALSE if( !(I.slot_flags & SLOT_ID) ) - return 0 + return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) if(slot_l_store) if(I.flags_1 & NODROP_1) //Pockets aren't visible, so you can't move NODROP_1 items into them. - return 0 + return FALSE if(H.l_store) - return 0 + return FALSE var/obj/item/bodypart/O = H.get_bodypart(BODY_ZONE_L_LEG) if(!H.w_uniform && !nojumpsuit && (!O || O.status != BODYPART_ROBOTIC)) if(!disable_warning) to_chat(H, "You need a jumpsuit before you can attach this [I.name]!") - return 0 + return FALSE if(I.slot_flags & SLOT_DENYPOCKET) - return + return FALSE if( I.w_class <= WEIGHT_CLASS_SMALL || (I.slot_flags & SLOT_POCKET) ) - return 1 + return TRUE if(slot_r_store) if(I.flags_1 & NODROP_1) - return 0 + return FALSE if(H.r_store) - return 0 + return FALSE var/obj/item/bodypart/O = H.get_bodypart(BODY_ZONE_R_LEG) if(!H.w_uniform && !nojumpsuit && (!O || O.status != BODYPART_ROBOTIC)) if(!disable_warning) to_chat(H, "You need a jumpsuit before you can attach this [I.name]!") - return 0 + return FALSE if(I.slot_flags & SLOT_DENYPOCKET) - return 0 + return FALSE if( I.w_class <= WEIGHT_CLASS_SMALL || (I.slot_flags & SLOT_POCKET) ) - return 1 - return 0 + return TRUE + return FALSE if(slot_s_store) if(I.flags_1 & NODROP_1) - return 0 + return FALSE if(H.s_store) - return 0 + return FALSE if(!H.wear_suit) if(!disable_warning) to_chat(H, "You need a suit before you can attach this [I.name]!") - return 0 + return FALSE if(!H.wear_suit.allowed) if(!disable_warning) to_chat(H, "You somehow have a suit with no defined allowed items for suit storage, stop that.") - return 0 + return FALSE if(I.w_class > WEIGHT_CLASS_BULKY) if(!disable_warning) to_chat(H, "The [I.name] is too big to attach.") //should be src? - return 0 - if( istype(I, /obj/item/device/pda) || istype(I, /obj/item/pen) || is_type_in_list(I, H.wear_suit.allowed) ) - return 1 - return 0 + return FALSE + if( istype(I, /obj/item/pda) || istype(I, /obj/item/pen) || is_type_in_list(I, H.wear_suit.allowed) ) + return TRUE + return FALSE if(slot_handcuffed) if(H.handcuffed) - return 0 + return FALSE if(!istype(I, /obj/item/restraints/handcuffs)) - return 0 + return FALSE if(num_arms < 2) - return 0 - return 1 + return FALSE + return TRUE if(slot_legcuffed) if(H.legcuffed) - return 0 + return FALSE if(!istype(I, /obj/item/restraints/legcuffs)) - return 0 + return FALSE if(num_legs < 2) - return 0 - return 1 + return FALSE + return TRUE if(slot_in_backpack) - if(H.back && istype(H.back, /obj/item/storage)) - var/obj/item/storage/B = H.back - if(B.can_be_inserted(I, 1, H)) - return 1 - return 0 - return 0 //Unsupported slot + if(H.back) + if(H.back.SendSignal(COMSIG_TRY_STORAGE_CAN_INSERT, I, H, TRUE)) + return TRUE + return FALSE + return FALSE //Unsupported slot /datum/species/proc/equip_delay_self_check(obj/item/I, mob/living/carbon/human/H, bypass_equip_delay_self) if(!I.equip_delay_self || bypass_equip_delay_self) @@ -1069,7 +1062,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) H.blood_volume = min(H.blood_volume + round(chem.volume, 0.1), BLOOD_VOLUME_MAXIMUM) H.reagents.del_reagent(chem.id) return 1 - return 0 + return FALSE /datum/species/proc/handle_speech(message, mob/living/carbon/human/H) return message @@ -1079,7 +1072,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) return list() /datum/species/proc/check_weakness(obj/item, mob/living/attacker) - return 0 + return FALSE //////// //LIFE// @@ -1116,6 +1109,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(prob(round(-H.satiety/40))) H.Jitter(5) hunger_rate = 3 * HUNGER_FACTOR + hunger_rate *= H.physiology.hunger_mod H.nutrition = max(0, H.nutrition - hunger_rate) @@ -1211,7 +1205,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) var/flightpack = 0 var/ignoreslow = 0 var/gravity = 0 - var/obj/item/device/flightpack/F = H.get_flightpack() + var/obj/item/flightpack/F = H.get_flightpack() if(istype(F) && F.flight) flightpack = 1 if(H.movement_type & FLYING) diff --git a/code/modules/mob/living/carbon/human/species_types/abductors.dm b/code/modules/mob/living/carbon/human/species_types/abductors.dm index 54549b15b9..5d3ca54d12 100644 --- a/code/modules/mob/living/carbon/human/species_types/abductors.dm +++ b/code/modules/mob/living/carbon/human/species_types/abductors.dm @@ -3,7 +3,7 @@ id = "abductor" say_mod = "gibbers" sexes = FALSE - species_traits = list(SPECIES_ORGANIC,NOBLOOD,NOEYES) + species_traits = list(NOBLOOD,NOEYES) inherent_traits = list(TRAIT_VIRUSIMMUNE,TRAIT_NOGUNS,TRAIT_NOHUNGER,TRAIT_NOBREATH) mutanttongue = /obj/item/organ/tongue/abductor var/scientist = FALSE // vars to not pollute spieces list with castes diff --git a/code/modules/mob/living/carbon/human/species_types/android.dm b/code/modules/mob/living/carbon/human/species_types/android.dm index 0178a99dad..24343f0f00 100644 --- a/code/modules/mob/living/carbon/human/species_types/android.dm +++ b/code/modules/mob/living/carbon/human/species_types/android.dm @@ -2,8 +2,9 @@ name = "Android" id = "android" say_mod = "states" - species_traits = list(SPECIES_ROBOTIC,NOBLOOD) + species_traits = list(NOBLOOD) inherent_traits = list(TRAIT_RESISTHEAT,TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_NOFIRE,TRAIT_PIERCEIMMUNE,TRAIT_NOHUNGER,TRAIT_LIMBATTACHMENT) + inherent_biotypes = list(MOB_ROBOTIC, MOB_HUMANOID) meat = null damage_overlay_type = "synth" mutanttongue = /obj/item/organ/tongue/robot diff --git a/code/modules/mob/living/carbon/human/species_types/angel.dm b/code/modules/mob/living/carbon/human/species_types/angel.dm index 878282647e..0cb18a29c6 100644 --- a/code/modules/mob/living/carbon/human/species_types/angel.dm +++ b/code/modules/mob/living/carbon/human/species_types/angel.dm @@ -2,7 +2,7 @@ name = "Angel" id = "angel" default_color = "FFFFFF" - species_traits = list(SPECIES_ORGANIC,EYECOLOR,HAIR,FACEHAIR,LIPS) + species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS) mutant_bodyparts = list("wings") default_features = list("mcolor" = "FFF", "tail_human" = "None", "ears" = "None", "wings" = "Angel") use_skintones = 1 diff --git a/code/modules/mob/living/carbon/human/species_types/corporate.dm b/code/modules/mob/living/carbon/human/species_types/corporate.dm index aa310723dd..e9761aac75 100644 --- a/code/modules/mob/living/carbon/human/species_types/corporate.dm +++ b/code/modules/mob/living/carbon/human/species_types/corporate.dm @@ -15,6 +15,6 @@ attack_sound = 'sound/weapons/resonator_blast.ogg' blacklisted = 1 use_skintones = 0 - species_traits = list(SPECIES_ORGANIC,NOBLOOD,EYECOLOR) + species_traits = list(NOBLOOD,EYECOLOR) inherent_traits = list(TRAIT_RADIMMUNE,TRAIT_VIRUSIMMUNE,TRAIT_PIERCEIMMUNE,TRAIT_NODISMEMBER,TRAIT_NOHUNGER) sexes = 0 \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species_types/dullahan.dm b/code/modules/mob/living/carbon/human/species_types/dullahan.dm index 1665f62af1..16cfc027f0 100644 --- a/code/modules/mob/living/carbon/human/species_types/dullahan.dm +++ b/code/modules/mob/living/carbon/human/species_types/dullahan.dm @@ -2,7 +2,7 @@ name = "dullahan" id = "dullahan" default_color = "FFFFFF" - species_traits = list(SPECIES_ORGANIC,EYECOLOR,HAIR,FACEHAIR,LIPS) + species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS) inherent_traits = list(TRAIT_NOHUNGER,TRAIT_NOBREATH) default_features = list("mcolor" = "FFF", "tail_human" = "None", "ears" = "None", "wings" = "None") use_skintones = TRUE diff --git a/code/modules/mob/living/carbon/human/species_types/flypeople.dm b/code/modules/mob/living/carbon/human/species_types/flypeople.dm index 282e9044b4..6f05eb393d 100644 --- a/code/modules/mob/living/carbon/human/species_types/flypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/flypeople.dm @@ -2,7 +2,8 @@ name = "Flyperson" id = "fly" say_mod = "buzzes" - species_traits = list(SPECIES_ORGANIC, NOEYES) + species_traits = list(NOEYES) + inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID, MOB_BUG) mutanttongue = /obj/item/organ/tongue/fly mutantliver = /obj/item/organ/liver/fly mutantstomach = /obj/item/organ/stomach/fly diff --git a/code/modules/mob/living/carbon/human/species_types/golems.dm b/code/modules/mob/living/carbon/human/species_types/golems.dm index d274261a2b..72a92f907b 100644 --- a/code/modules/mob/living/carbon/human/species_types/golems.dm +++ b/code/modules/mob/living/carbon/human/species_types/golems.dm @@ -2,8 +2,9 @@ // Animated beings of stone. They have increased defenses, and do not need to breathe. They're also slow as fuuuck. name = "Golem" id = "iron golem" - species_traits = list(SPECIES_INORGANIC,NOBLOOD,MUTCOLORS,NO_UNDERWEAR) + species_traits = list(NOBLOOD,MUTCOLORS,NO_UNDERWEAR) inherent_traits = list(TRAIT_RESISTHEAT,TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_NOFIRE,TRAIT_NOGUNS,TRAIT_RADIMMUNE,TRAIT_PIERCEIMMUNE,TRAIT_NODISMEMBER) + inherent_biotypes = list(MOB_INORGANIC, MOB_HUMANOID) mutant_organs = list(/obj/item/organ/adamantine_resonator) speedmod = 2 armor = 55 @@ -566,7 +567,7 @@ limbs_id = "cultgolem" sexes = FALSE info_text = "As a Runic Golem, you possess eldritch powers granted by the Elder God Nar'Sie." - species_traits = list(SPECIES_INORGANIC,NOBLOOD,NO_UNDERWEAR,NOEYES) //no mutcolors + species_traits = list(NOBLOOD,NO_UNDERWEAR,NOEYES) //no mutcolors prefix = "Runic" var/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/golem/phase_shift @@ -620,7 +621,8 @@ limbs_id = "clockgolem" info_text = "As a clockwork golem, you are faster than \ other types of golem (being a machine), and are immune to electric shocks." - species_traits = list(SPECIES_ROBOTIC,NOBLOOD,NO_UNDERWEAR,NOEYES) + species_traits = list(NOBLOOD,NO_UNDERWEAR,NOEYES) + inherent_biotypes = list(MOB_ROBOTIC, MOB_HUMANOID) armor = 20 //Reinforced, but much less so to allow for fast movement attack_verb = "smash" attack_sound = 'sound/magic/clockwork/anima_fragment_attack.ogg' @@ -672,8 +674,9 @@ limbs_id = "clothgolem" sexes = FALSE info_text = "As a Cloth Golem, you are able to reform yourself after death, provided your remains aren't burned or destroyed. You are, of course, very flammable." - species_traits = list(SPECIES_UNDEAD,NOBLOOD,NO_UNDERWEAR) //no mutcolors, and can burn + species_traits = list(NOBLOOD,NO_UNDERWEAR) //no mutcolors, and can burn inherent_traits = list(TRAIT_RESISTCOLD,TRAIT_NOBREATH,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_RADIMMUNE,TRAIT_PIERCEIMMUNE,TRAIT_NODISMEMBER,TRAIT_NOGUNS) + inherent_biotypes = list(MOB_UNDEAD, MOB_HUMANOID) armor = 15 //feels no pain, but not too resistant burnmod = 2 // don't get burned speedmod = 1 // not as heavy as stone diff --git a/code/modules/mob/living/carbon/human/species_types/humans.dm b/code/modules/mob/living/carbon/human/species_types/humans.dm index ffee4fa0a5..ae90bb8597 100644 --- a/code/modules/mob/living/carbon/human/species_types/humans.dm +++ b/code/modules/mob/living/carbon/human/species_types/humans.dm @@ -2,9 +2,9 @@ name = "Human" id = "human" default_color = "FFFFFF" - species_traits = list(MUTCOLORS_PARTSONLY,SPECIES_ORGANIC,EYECOLOR,HAIR,FACEHAIR,LIPS) - mutant_bodyparts = list("mam_tail", "mam_ears", "wings", "taur") - default_features = list("mcolor" = "FFF", "mam_tail" = "None", "mam_ears" = "None", "wings" = "None", "taur" = "none") + species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,MUTCOLORS_PARTSONLY) + mutant_bodyparts = list("mam_tail", "mam_ears", "wings", "taur") // CITADEL EDIT gives humans snowflake parts + default_features = list("mcolor" = "FFF", "mam_tail" = "None", "mam_ears" = "None", "wings" = "None", "taur" = "None") use_skintones = 1 skinned_type = /obj/item/stack/sheet/animalhide/human disliked_food = GROSS | RAW @@ -12,7 +12,7 @@ /datum/species/human/qualifies_for_rank(rank, list/features) - return TRUE + return TRUE //Pure humans are always allowed in all roles. //Curiosity killed the cat's wagging tail. /datum/species/human/spec_death(gibbed, mob/living/carbon/human/H) @@ -25,7 +25,7 @@ . = ..() /datum/species/human/space_move(mob/living/carbon/human/H) - var/obj/item/device/flightpack/F = H.get_flightpack() + var/obj/item/flightpack/F = H.get_flightpack() if(istype(F) && (F.flight) && F.allow_thrust(0.01, src)) return TRUE diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm index 8880df8dc5..aface5f9eb 100644 --- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm @@ -4,7 +4,7 @@ id = "jelly" default_color = "00FF90" say_mod = "chirps" - species_traits = list(SPECIES_ORGANIC,MUTCOLORS,EYECOLOR,,HAIR,FACEHAIR,NOBLOOD) + species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,NOBLOOD) inherent_traits = list(TRAIT_TOXINLOVER) mutant_bodyparts = list("mam_tail", "mam_ears", "taur") //CIT CHANGE default_features = list("mcolor" = "FFF", "mam_tail" = "None", "mam_ears" = "None") //CIT CHANGE @@ -119,7 +119,7 @@ name = "Slimeperson" id = "slime" default_color = "00FFFF" - species_traits = list(SPECIES_ORGANIC,MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,NOBLOOD) + species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,NOBLOOD) say_mod = "says" hair_color = "mutcolor" hair_alpha = 150 diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index 15c8f70dc8..bd286e9bc2 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -4,7 +4,8 @@ id = "lizard" say_mod = "hisses" default_color = "00FF00" - species_traits = list(SPECIES_ORGANIC,MUTCOLORS,EYECOLOR,LIPS, HAIR, FACEHAIR) + species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR,FACEHAIR) + inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID, MOB_REPTILE) mutant_bodyparts = list("tail_lizard", "snout", "spines", "horns", "frills", "body_markings", "legs", "taur") mutanttongue = /obj/item/organ/tongue/lizard mutanttail = /obj/item/organ/tail/lizard @@ -17,8 +18,8 @@ meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/lizard skinned_type = /obj/item/stack/sheet/animalhide/lizard exotic_bloodtype = "L" - disliked_food = NONE - liked_food = NONE + disliked_food = GRAIN | DAIRY + liked_food = GROSS | MEAT /datum/species/lizard/after_equip_job(datum/job/J, mob/living/carbon/human/H) H.grant_language(/datum/language/draconic) @@ -36,7 +37,7 @@ /datum/species/lizard/qualifies_for_rank(rank, list/features) return TRUE - + //I wag in death /datum/species/lizard/spec_death(gibbed, mob/living/carbon/human/H) if(H) diff --git a/code/modules/mob/living/carbon/human/species_types/mothmen.dm b/code/modules/mob/living/carbon/human/species_types/mothmen.dm index 8735d6ceb6..7d5dc2022f 100644 --- a/code/modules/mob/living/carbon/human/species_types/mothmen.dm +++ b/code/modules/mob/living/carbon/human/species_types/mothmen.dm @@ -3,7 +3,8 @@ id = "moth" say_mod = "flutters" default_color = "00FF00" - species_traits = list(LIPS, SPECIES_ORGANIC, NOEYES) + species_traits = list(LIPS, NOEYES) + inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID, MOB_BUG) mutant_bodyparts = list("moth_wings") default_features = list("moth_wings" = "Plain") attack_verb = "slash" diff --git a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm index 5209fe8310..d1f41a4aca 100644 --- a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm +++ b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm @@ -4,8 +4,9 @@ say_mod = "rattles" sexes = 0 meat = /obj/item/stack/sheet/mineral/plasma - species_traits = list(SPECIES_INORGANIC,NOBLOOD,NOTRANSSTING) + species_traits = list(NOBLOOD,NOTRANSSTING) inherent_traits = list(TRAIT_RESISTCOLD,TRAIT_RADIMMUNE,TRAIT_NOHUNGER) + inherent_biotypes = list(MOB_INORGANIC, MOB_HUMANOID) mutantlungs = /obj/item/organ/lungs/plasmaman mutanttongue = /obj/item/organ/tongue/bone/plasmaman mutantliver = /obj/item/organ/liver/plasmaman diff --git a/code/modules/mob/living/carbon/human/species_types/podpeople.dm b/code/modules/mob/living/carbon/human/species_types/podpeople.dm index f3360e47fb..3e238f8a53 100644 --- a/code/modules/mob/living/carbon/human/species_types/podpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/podpeople.dm @@ -3,7 +3,7 @@ name = "Podperson" id = "pod" default_color = "59CE00" - species_traits = list(SPECIES_ORGANIC,MUTCOLORS,EYECOLOR) + species_traits = list(MUTCOLORS,EYECOLOR) attack_verb = "slash" attack_sound = 'sound/weapons/slice.ogg' miss_sound = 'sound/weapons/slashmiss.ogg' diff --git a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm index 17e7649cb6..f0e681ada2 100644 --- a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm @@ -9,7 +9,7 @@ blacklisted = 1 ignored_by = list(/mob/living/simple_animal/hostile/faithless) meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/shadow - species_traits = list(SPECIES_ORGANIC,NOBLOOD,NOEYES) + species_traits = list(NOBLOOD,NOEYES) inherent_traits = list(TRAIT_RADIMMUNE,TRAIT_VIRUSIMMUNE,TRAIT_NOBREATH) dangerous_existence = 1 @@ -203,8 +203,8 @@ disintegrate(I) /obj/item/light_eater/proc/disintegrate(obj/item/O) - if(istype(O, /obj/item/device/pda)) - var/obj/item/device/pda/PDA = O + if(istype(O, /obj/item/pda)) + var/obj/item/pda/PDA = O PDA.set_light(0) PDA.fon = FALSE PDA.f_lum = 0 diff --git a/code/modules/mob/living/carbon/human/species_types/skeletons.dm b/code/modules/mob/living/carbon/human/species_types/skeletons.dm index c6a7e7a127..e3a72601ed 100644 --- a/code/modules/mob/living/carbon/human/species_types/skeletons.dm +++ b/code/modules/mob/living/carbon/human/species_types/skeletons.dm @@ -6,8 +6,9 @@ blacklisted = 1 sexes = 0 meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/skeleton - species_traits = list(SPECIES_UNDEAD,NOBLOOD) + species_traits = list(NOBLOOD) inherent_traits = list(TRAIT_RESISTHEAT,TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_RADIMMUNE,TRAIT_PIERCEIMMUNE,TRAIT_NOHUNGER,TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT) + inherent_biotypes = list(MOB_UNDEAD, MOB_HUMANOID) mutanttongue = /obj/item/organ/tongue/bone damage_overlay_type = ""//let's not show bloody wounds or burns over bones. disliked_food = NONE diff --git a/code/modules/mob/living/carbon/human/species_types/synths.dm b/code/modules/mob/living/carbon/human/species_types/synths.dm index 786872544e..51c23fd21a 100644 --- a/code/modules/mob/living/carbon/human/species_types/synths.dm +++ b/code/modules/mob/living/carbon/human/species_types/synths.dm @@ -3,14 +3,15 @@ id = "synth" say_mod = "beep boops" //inherited from a user's real species sexes = 0 - species_traits = list(SPECIES_ROBOTIC,NOTRANSSTING) //all of these + whatever we inherit from the real species + species_traits = list(NOTRANSSTING) //all of these + whatever we inherit from the real species inherent_traits = list(TRAIT_VIRUSIMMUNE,TRAIT_NODISMEMBER,TRAIT_NOHUNGER,TRAIT_NOBREATH) + inherent_biotypes = list(MOB_ROBOTIC, MOB_HUMANOID) dangerous_existence = 1 blacklisted = 1 meat = null damage_overlay_type = "synth" limbs_id = "synth" - var/list/initial_species_traits = list(SPECIES_ROBOTIC,NOTRANSSTING) //for getting these values back for assume_disguise() + var/list/initial_species_traits = list(NOTRANSSTING) //for getting these values back for assume_disguise() var/list/initial_inherent_traits = list(TRAIT_VIRUSIMMUNE,TRAIT_NODISMEMBER,TRAIT_NOHUNGER,TRAIT_NOBREATH) var/disguise_fail_health = 75 //When their health gets to this level their synthflesh partially falls off var/datum/species/fake_species = null //a species to do most of our work for us, unless we're damaged @@ -46,7 +47,6 @@ inherent_traits = initial_inherent_traits.Copy() species_traits |= S.species_traits inherent_traits |= S.inherent_traits - species_traits -= list(SPECIES_ORGANIC, SPECIES_INORGANIC, SPECIES_UNDEAD) attack_verb = S.attack_verb attack_sound = S.attack_sound miss_sound = S.miss_sound diff --git a/code/modules/mob/living/carbon/human/species_types/vampire.dm b/code/modules/mob/living/carbon/human/species_types/vampire.dm index e27d7f4f35..59052e2249 100644 --- a/code/modules/mob/living/carbon/human/species_types/vampire.dm +++ b/code/modules/mob/living/carbon/human/species_types/vampire.dm @@ -2,8 +2,9 @@ name = "vampire" id = "vampire" default_color = "FFFFFF" - species_traits = list(SPECIES_UNDEAD,EYECOLOR,HAIR,FACEHAIR,LIPS,DRINKSBLOOD) + species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,DRINKSBLOOD) inherent_traits = list(TRAIT_NOHUNGER,TRAIT_NOBREATH) + inherent_biotypes = list(MOB_UNDEAD, MOB_HUMANOID) default_features = list("mcolor" = "FFF", "tail_human" = "None", "ears" = "None", "wings" = "None") exotic_bloodtype = "U" use_skintones = TRUE diff --git a/code/modules/mob/living/carbon/human/species_types/zombies.dm b/code/modules/mob/living/carbon/human/species_types/zombies.dm index 7fcc470661..801d0a7192 100644 --- a/code/modules/mob/living/carbon/human/species_types/zombies.dm +++ b/code/modules/mob/living/carbon/human/species_types/zombies.dm @@ -8,8 +8,9 @@ sexes = 0 blacklisted = 1 meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/zombie - species_traits = list(SPECIES_UNDEAD,NOBLOOD,NOZOMBIE,NOTRANSSTING) + species_traits = list(NOBLOOD,NOZOMBIE,NOTRANSSTING) inherent_traits = list(TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_RADIMMUNE,TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_NOBREATH) + inherent_biotypes = list(MOB_UNDEAD, MOB_HUMANOID) mutanttongue = /obj/item/organ/tongue/zombie var/static/list/spooks = list('sound/hallucinations/growl1.ogg','sound/hallucinations/growl2.ogg','sound/hallucinations/growl3.ogg','sound/hallucinations/veryfar_noise.ogg','sound/hallucinations/wail.ogg') disliked_food = NONE @@ -74,7 +75,6 @@ id = "goofzombies" limbs_id = "zombie" //They look like zombies sexes = 0 - species_traits = list(SPECIES_ORGANIC) meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/zombie mutanttongue = /obj/item/organ/tongue/zombie diff --git a/code/modules/mob/living/carbon/human/whisper.dm b/code/modules/mob/living/carbon/human/whisper.dm index 6b73e16991..65a4c5d33f 100644 --- a/code/modules/mob/living/carbon/human/whisper.dm +++ b/code/modules/mob/living/carbon/human/whisper.dm @@ -76,14 +76,14 @@ rendered = "[GetVoice()][alt_name] [whispers], \"[attach_spans(message, spans)]\"" for(var/atom/movable/AM in listening) - if(istype(AM,/obj/item/device/radio)) + if(istype(AM,/obj/item/radio)) continue AM.Hear(rendered, src, language, message, , spans) message = stars(message) rendered = "[GetVoice()][alt_name] [whispers], \"[attach_spans(message, spans)]\"" for(var/atom/movable/AM in eavesdropping) - if(istype(AM,/obj/item/device/radio)) + if(istype(AM,/obj/item/radio)) continue AM.Hear(rendered, src, language, message, , spans) diff --git a/code/modules/mob/living/carbon/inventory.dm b/code/modules/mob/living/carbon/inventory.dm index 62e1a53355..7f0e12e0a3 100644 --- a/code/modules/mob/living/carbon/inventory.dm +++ b/code/modules/mob/living/carbon/inventory.dm @@ -72,11 +72,8 @@ put_in_hands(I) update_inv_hands() if(slot_in_backpack) - var/obj/item/storage/B = back - var/prev_jimmies = B.rustle_jimmies - B.rustle_jimmies = FALSE //don't conspicously rustle - B.handle_item_insertion(I, 1, src) - B.rustle_jimmies = prev_jimmies + if(!back.SendSignal(COMSIG_TRY_STORAGE_INSERT, I, src, TRUE)) + not_handled = TRUE else not_handled = TRUE diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index af50affa57..8194296099 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -48,7 +48,7 @@ return if(istype(loc, /obj/machinery/atmospherics/components/unary/cryo_cell)) return - if(istype(loc, /obj/item/device/dogborg/sleeper)) + if(istype(loc, /obj/item/dogborg/sleeper)) return if(ismob(loc)) return @@ -328,10 +328,8 @@ //this updates all special effects: stun, sleeping, knockdown, druggy, stuttering, etc.. /mob/living/carbon/handle_status_effects() ..() - if(getStaminaLoss() && !combatmode && !aimingdownsights)//CIT CHANGE - prevents stamina regen while combat mode is active + if(getStaminaLoss() && !combatmode)//CIT CHANGE - prevents stamina regen while combat mode is active adjustStaminaLoss(resting ? (recoveringstam ? -7.5 : -3) : -1.5)//CIT CHANGE - decreases adjuststaminaloss to stop stamina damage from being such a joke - else if(aimingdownsights)//CIT CHANGE - makes aiming down sights drain stamina - adjustStaminaLoss(resting ? 0.2 : 0.5)//CIT CHANGE - ditto. Raw spaghetti //CIT CHANGES START HERE. STAMINA BUFFER STUFF if(bufferedstam && world.time > stambufferregentime) @@ -351,22 +349,22 @@ var/saved_dizz = dizziness if(C) var/oldsrc = src - var/amplitude = dizziness*(sin(dizziness * 0.044 * world.time) + 1) / 70 // This shit is annoying at high strength + var/amplitude = dizziness*(sin(dizziness * world.time) + 1) // This shit is annoying at high strength src = null spawn(0) if(C) - temp = amplitude * sin(0.008 * saved_dizz * world.time) + temp = amplitude * sin(saved_dizz * world.time) pixel_x_diff += temp C.pixel_x += temp - temp = amplitude * cos(0.008 * saved_dizz * world.time) + temp = amplitude * cos(saved_dizz * world.time) pixel_y_diff += temp C.pixel_y += temp sleep(3) if(C) - temp = amplitude * sin(0.008 * saved_dizz * world.time) + temp = amplitude * sin(saved_dizz * world.time) pixel_x_diff += temp C.pixel_x += temp - temp = amplitude * cos(0.008 * saved_dizz * world.time) + temp = amplitude * cos(saved_dizz * world.time) pixel_y_diff += temp C.pixel_y += temp sleep(3) diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index 24baee533a..6513985704 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -1,4 +1,10 @@ +#define HEAT_DAMAGE_LEVEL_1 2 //Amount of damage applied when your body temperature just passes the 360.15k safety point +#define HEAT_DAMAGE_LEVEL_2 3 //Amount of damage applied when your body temperature passes the 400K point +#define HEAT_DAMAGE_LEVEL_3 10 //Amount of damage applied when your body temperature passes the 460K point and you are on fire +#define COLD_DAMAGE_LEVEL_1 0.5 //Amount of damage applied when your body temperature just passes the 260.15k safety point +#define COLD_DAMAGE_LEVEL_2 1.5 //Amount of damage applied when your body temperature passes the 200K point +#define COLD_DAMAGE_LEVEL_3 3 //Amount of damage applied when your body temperature passes the 120K point /mob/living/carbon/monkey @@ -170,3 +176,11 @@ adjust_bodytemperature(BODYTEMP_HEATING_MAX) SendSignal(COMSIG_ADD_MOOD_EVENT, "on_fire", /datum/mood_event/on_fire) + +#undef HEAT_DAMAGE_LEVEL_1 +#undef HEAT_DAMAGE_LEVEL_2 +#undef HEAT_DAMAGE_LEVEL_3 + +#undef COLD_DAMAGE_LEVEL_1 +#undef COLD_DAMAGE_LEVEL_2 +#undef COLD_DAMAGE_LEVEL_3 \ No newline at end of file diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index 7713be5e4b..52504235fe 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -7,6 +7,7 @@ gender = NEUTER pass_flags = PASSTABLE ventcrawler = VENTCRAWLER_NUDE + mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/monkey = 5, /obj/item/stack/sheet/animalhide/monkey = 1) type_of_meat = /obj/item/reagent_containers/food/snacks/meat/slab/monkey gib_type = /obj/effect/decal/cleanable/blood/gibs diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 54b9705948..bf06cd1ebb 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -395,6 +395,7 @@ update_canmove() /mob/proc/get_contents() + /*CIT CHANGE - comments out lay_down proc to be modified in modular_citadel /mob/living/proc/lay_down() set name = "Rest" @@ -404,30 +405,18 @@ to_chat(src, "You are now [resting ? "resting" : "getting up"].") update_canmove() */ -//Recursive function to find everything a mob is holding. -/mob/living/get_contents(obj/item/storage/Storage = null) - var/list/L = list() - - if(Storage) //If it called itself - L += Storage.return_inv() - return L - else - L += src.contents - for(var/obj/item/storage/S in src.contents) //Check for storage items - L += get_contents(S) - for(var/obj/item/clothing/under/U in src.contents) //Check for jumpsuit accessories - L += U.contents - for(var/obj/item/folder/F in src.contents) //Check for folders - L += F.contents - return L - -/mob/living/proc/check_contents_for(A) - var/list/L = src.get_contents() - - for(var/obj/B in L) - if(B.type == A) - return 1 - return 0 +//Recursive function to find everything a mob is holding. Really shitty proc tbh. +/mob/living/get_contents() + . = list() + . |= list(src) + for(var/obj/o in .) + var/list/newlist = list() + o.SendSignal(COMSIG_TRY_STORAGE_RETURN_INVENTORY, newlist) + . |= newlist + for(var/obj/item/clothing/under/U in .) + . |= U.contents + for(var/obj/item/folder/F in .) + . |= F.contents // Living mobs use can_inject() to make sure that the mob is not syringe-proof in general. /mob/living/proc/can_inject() @@ -545,8 +534,8 @@ if(pulledby && moving_diagonally != FIRST_DIAG_STEP && get_dist(src, pulledby) > 1)//separated from our puller and not in the middle of a diagonal move. pulledby.stop_pulling() - if (s_active && !(CanReach(s_active,view_only = TRUE))) - s_active.close(src) + if(active_storage && !(CanReach(active_storage.parent,view_only = TRUE))) + active_storage.close(src) if(lying && !buckled && prob(getBruteLoss()*200/maxHealth)) makeTrail(newloc, T, old_direction) @@ -739,10 +728,10 @@ animate(src, pixel_y = pixel_y + 2, time = 10, loop = -1) sleep(10) animate(src, pixel_y = pixel_y - 2, time = 10, loop = -1) - floating = 1 + floating = TRUE else if(((!on || fixed) && floating)) animate(src, pixel_y = get_standard_pixel_y_offset(lying), time = 10) - floating = 0 + floating = FALSE // The src mob is trying to strip an item from someone // Override if a certain type of mob should be behave differently when stripping items (can't, for example) diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index f31d95a9d7..6dfaa565fa 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -53,6 +53,7 @@ var/limb_destroyer = 0 //1 Sets AI behavior that allows mobs to target and dismember limbs with their basic attack. var/mob_size = MOB_SIZE_HUMAN + var/list/mob_biotypes = list(MOB_ORGANIC) var/metabolism_efficiency = 1 //more or less efficiency to metabolize helpful/harmful reagents and regulate body temperature.. var/list/image/staticOverlays = list() var/has_limbs = 0 //does the mob have distinct limbs?(arms,legs, chest,head) diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 11c57c9bbc..df28694b3b 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -373,7 +373,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list( return ITALICS | REDUCE_RANGE if(MODE_INTERCOM) - for (var/obj/item/device/radio/intercom/I in view(1, null)) + for (var/obj/item/radio/intercom/I in view(1, null)) I.talk_into(src, message, , spans, language) return ITALICS | REDUCE_RANGE diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 8f9ffa2180..8664a111ae 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -39,8 +39,8 @@ var/obj/mecha/controlled_mech //For controlled_mech a mech, to determine whether to relaymove or use the AI eye. var/radio_enabled = TRUE //Determins if a carded AI can speak with its built in radio or not. radiomod = ";" //AIs will, by default, state their laws on the internal radio. - var/obj/item/device/pda/ai/aiPDA - var/obj/item/device/multitool/aiMulti + var/obj/item/pda/ai/aiPDA + var/obj/item/multitool/aiMulti var/mob/living/simple_animal/bot/Bot var/tracking = FALSE //this is 1 if the AI is currently tracking somebody, but the track has not yet been completed. var/datum/effect_system/spark_spread/spark_system//So they can initialize sparks whenever/N @@ -128,14 +128,14 @@ verbs += /mob/living/silicon/ai/proc/show_laws_verb - aiPDA = new/obj/item/device/pda/ai(src) + aiPDA = new/obj/item/pda/ai(src) aiPDA.owner = name aiPDA.ownjob = "AI" aiPDA.name = name + " (" + aiPDA.ownjob + ")" aiMulti = new(src) - radio = new /obj/item/device/radio/headset/ai(src) - aicamera = new/obj/item/device/camera/siliconcam/ai_camera(src) + radio = new /obj/item/radio/headset/ai(src) + aicamera = new/obj/item/camera/siliconcam/ai_camera(src) deploy_action.Grant(src) @@ -322,7 +322,7 @@ /mob/living/silicon/ai/can_interact_with(atom/A) . = ..() - return . || (istype(loc, /obj/item/device/aicard))? (ISINRANGE(A.x, x - interaction_range, x + interaction_range) && ISINRANGE(A.y, y - interaction_range, y + interaction_range)): GLOB.cameranet.checkTurfVis(get_turf(A)) + return . || (istype(loc, /obj/item/aicard))? (ISINRANGE(A.x, x - interaction_range, x + interaction_range) && ISINRANGE(A.y, y - interaction_range, y + interaction_range)): GLOB.cameranet.checkTurfVis(get_turf(A)) /mob/living/silicon/ai/cancel_camera() view_core() @@ -774,7 +774,7 @@ return set_autosay() -/mob/living/silicon/ai/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/device/aicard/card) +/mob/living/silicon/ai/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/aicard/card) if(!..()) return if(interaction == AI_TRANS_TO_CARD)//The only possible interaction. Upload AI mob to a card. diff --git a/code/modules/mob/living/silicon/ai/death.dm b/code/modules/mob/living/silicon/ai/death.dm index d41b6f5f29..e28d9d84df 100644 --- a/code/modules/mob/living/silicon/ai/death.dm +++ b/code/modules/mob/living/silicon/ai/death.dm @@ -28,7 +28,7 @@ for(var/obj/machinery/ai_status_display/O in GLOB.ai_status_displays) //change status if(src.key) O.mode = 2 - if(istype(loc, /obj/item/device/aicard)) + if(istype(loc, /obj/item/aicard)) loc.icon_state = "aicard-404" /mob/living/silicon/ai/proc/ShutOffDoomsdayDevice() diff --git a/code/modules/mob/living/silicon/ai/life.dm b/code/modules/mob/living/silicon/ai/life.dm index ae95a317a3..a060c899d9 100644 --- a/code/modules/mob/living/silicon/ai/life.dm +++ b/code/modules/mob/living/silicon/ai/life.dm @@ -121,11 +121,10 @@ T = get_turf(src) AIarea = get_area(src) if(AIarea) - for(var/area/A in AIarea.related) - for (var/obj/machinery/power/apc/APC in A) - if (!(APC.stat & BROKEN)) - theAPC = APC - break + for (var/obj/machinery/power/apc/APC in AIarea) + if (!(APC.stat & BROKEN)) + theAPC = APC + break if (!theAPC) switch(PRP) if(1) diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 3e8935e100..f30c65b23d 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -19,7 +19,7 @@ var/ram = 100 // Used as currency to purchase different abilities var/list/software = list() var/userDNA // The DNA string of our assigned user - var/obj/item/device/paicard/card // The card we inhabit + var/obj/item/paicard/card // The card we inhabit var/hacking = FALSE //Are we hacking a door? var/speakStatement = "states" @@ -38,7 +38,7 @@ var/screen // Which screen our main window displays var/subscreen // Which specific function of the main screen is being displayed - var/obj/item/device/pda/ai/pai/pda = null + var/obj/item/pda/ai/pai/pda = null var/secHUD = 0 // Toggles whether the Security HUD is active or not var/medHUD = 0 // Toggles whether the Medical HUD is active or not @@ -94,20 +94,20 @@ return ..() /mob/living/silicon/pai/Initialize() - var/obj/item/device/paicard/P = loc + var/obj/item/paicard/P = loc START_PROCESSING(SSfastprocess, src) GLOB.pai_list += src make_laws() canmove = 0 if(!istype(P)) //when manually spawning a pai, we create a card to put it into. var/newcardloc = P - P = new /obj/item/device/paicard(newcardloc) + P = new /obj/item/paicard(newcardloc) P.setPersonality(src) forceMove(P) card = P signaler = new(src) if(!radio) - radio = new /obj/item/device/radio(src) + radio = new /obj/item/radio(src) //PDA pda = new(src) @@ -191,7 +191,7 @@ return TRUE /mob/proc/makePAI(delold) - var/obj/item/device/paicard/card = new /obj/item/device/paicard(get_turf(src)) + var/obj/item/paicard/card = new /obj/item/paicard(get_turf(src)) var/mob/living/silicon/pai/pai = new /mob/living/silicon/pai(card) pai.key = key pai.name = name diff --git a/code/modules/mob/living/silicon/pai/pai_shell.dm b/code/modules/mob/living/silicon/pai/pai_shell.dm index dad7d710e7..ce2605e2cf 100644 --- a/code/modules/mob/living/silicon/pai/pai_shell.dm +++ b/code/modules/mob/living/silicon/pai/pai_shell.dm @@ -20,8 +20,8 @@ addtimer(CALLBACK(src, .proc/emittercool), emittercd) canmove = TRUE density = TRUE - if(istype(card.loc, /obj/item/device/pda)) - var/obj/item/device/pda/P = card.loc + if(istype(card.loc, /obj/item/pda)) + var/obj/item/pda/P = card.loc P.pai = null P.visible_message("[src] ejects itself from [P]!") if(isliving(card.loc)) diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm index 2a2cda19e0..b841ae95db 100644 --- a/code/modules/mob/living/silicon/pai/software.dm +++ b/code/modules/mob/living/silicon/pai/software.dm @@ -612,7 +612,7 @@ [(pda.silent) ? "\[Off\]" : "\[On\]"]

    "} dat += "
      " if(!pda.toff) - for (var/obj/item/device/pda/P in sortNames(get_viewable_pdas())) + for (var/obj/item/pda/P in sortNames(get_viewable_pdas())) if (P == pda) continue dat += "
    • [P]" diff --git a/code/modules/mob/living/silicon/robot/inventory.dm b/code/modules/mob/living/silicon/robot/inventory.dm index ce1854c40d..a2c790f15c 100644 --- a/code/modules/mob/living/silicon/robot/inventory.dm +++ b/code/modules/mob/living/silicon/robot/inventory.dm @@ -16,8 +16,7 @@ sight_mode &= ~S.sight_mode update_sight() else if(istype(O, /obj/item/storage/bag/tray/)) - var/obj/item/storage/bag/tray/T = O - T.do_quick_empty() + O.SendSignal(COMSIG_TRY_STORAGE_QUICK_EMPTY) //CITADEL EDIT reee proc, Dogborg modules if(istype(O,/obj/item/gun/energy/laser/cyborg)) laser = FALSE @@ -25,11 +24,11 @@ else if(istype(O,/obj/item/gun/energy/disabler/cyborg)) disabler = FALSE update_icons() //PUT THE GUN AWAY - else if(istype(O,/obj/item/device/dogborg/sleeper)) + else if(istype(O,/obj/item/dogborg/sleeper)) sleeper_g = FALSE sleeper_r = FALSE update_icons() - var/obj/item/device/dogborg/sleeper/S = O + var/obj/item/dogborg/sleeper/S = O S.go_out() //this should stop edgecase deletions //END CITADEL EDIT if(client) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 030a2425ff..faef19529e 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -12,7 +12,7 @@ var/custom_name = "" var/braintype = "Cyborg" var/obj/item/robot_suit/robot_suit = null //Used for deconstruction to remember what the borg was constructed out of.. - var/obj/item/device/mmi/mmi = null + var/obj/item/mmi/mmi = null var/shell = FALSE var/deployed = FALSE @@ -81,9 +81,11 @@ var/obj/item/hat var/hat_offset = -3 var/list/equippable_hats = list(/obj/item/clothing/head/caphat, - /obj/item/clothing/head/hardhat/cakehat, + /obj/item/clothing/head/hardhat, /obj/item/clothing/head/centhat, /obj/item/clothing/head/HoS, + /obj/item/clothing/head/beret, + /obj/item/clothing/head/kitty, /obj/item/clothing/head/hopcap, /obj/item/clothing/head/wizard, /obj/item/clothing/head/nursehat, @@ -119,7 +121,7 @@ if(!TryConnectToAI()) lawupdate = FALSE - radio = new /obj/item/device/radio/borg(src) + radio = new /obj/item/radio/borg(src) if(!scrambledcodes && !builtInCamera) builtInCamera = new (src) builtInCamera.c_tag = real_name @@ -153,7 +155,7 @@ equippable_hats = typecacheof(equippable_hats) playsound(loc, 'sound/voice/liveagain.ogg', 75, 1) - aicamera = new/obj/item/device/camera/siliconcam/robot_camera(src) + aicamera = new/obj/item/camera/siliconcam/robot_camera(src) toner = tonermax diag_hud_set_borgcell() @@ -485,13 +487,13 @@ MOD.install(laws, user) //Proc includes a success mesage so we don't need another one return - else if(istype(W, /obj/item/device/encryptionkey/) && opened) + else if(istype(W, /obj/item/encryptionkey/) && opened) if(radio)//sanityyyyyy radio.attackby(W,user)//GTFO, you have your own procs else to_chat(user, "Unable to locate a radio!") - else if (istype(W, /obj/item/card/id)||istype(W, /obj/item/device/pda)) // trying to unlock the interface with an ID card + else if (istype(W, /obj/item/card/id)||istype(W, /obj/item/pda)) // trying to unlock the interface with an ID card if(emagged)//still allow them to open the cover to_chat(user, "The interface seems slightly damaged.") if(opened) @@ -526,7 +528,7 @@ to_chat(user, "Upgrade error.") U.forceMove(drop_location()) - else if(istype(W, /obj/item/device/toner)) + else if(istype(W, /obj/item/toner)) if(toner >= tonermax) to_chat(user, "The toner level of [src] is at its highest level possible!") else @@ -536,7 +538,7 @@ qdel(W) to_chat(user, "You fill the toner level of [src] to its max capacity.") - else if(istype(W, /obj/item/device/flashlight)) + else if(istype(W, /obj/item/flashlight)) if(!opened) to_chat(user, "You need to open the panel to repair the headlamp!") if(lamp_cooldown <= world.time) @@ -790,7 +792,7 @@ new /obj/item/bodypart/head/robot(T) var/b for(b=0, b!=2, b++) - var/obj/item/device/assembly/flash/handheld/F = new /obj/item/device/assembly/flash/handheld(T) + var/obj/item/assembly/flash/handheld/F = new /obj/item/assembly/flash/handheld(T) F.burn_out() if (cell) //Sanity check. cell.forceMove(T) @@ -845,7 +847,7 @@ /mob/living/silicon/robot/modules/syndicate/Initialize() . = ..() cell = new /obj/item/stock_parts/cell/hyper(src, 25000) - radio = new /obj/item/device/radio/borg/syndicate(src) + radio = new /obj/item/radio/borg/syndicate(src) laws = new /datum/ai_laws/syndicate_override() addtimer(CALLBACK(src, .proc/show_playstyle), 5) diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 86aad0ed39..bdcde185d7 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -139,8 +139,8 @@ st.energy = min(st.max_energy, st.energy + coeff * st.recharge_rate) for(var/obj/item/I in get_usable_modules()) - if(istype(I, /obj/item/device/assembly/flash)) - var/obj/item/device/assembly/flash/F = I + if(istype(I, /obj/item/assembly/flash)) + var/obj/item/assembly/flash/F = I F.times_used = 0 F.crit_fail = 0 F.update_icon() @@ -231,9 +231,9 @@ /obj/item/robot_module/standard name = "Standard" basic_modules = list( - /obj/item/device/assembly/flash/cyborg, + /obj/item/assembly/flash/cyborg, /obj/item/reagent_containers/borghypo/epi, - /obj/item/device/healthanalyzer, + /obj/item/healthanalyzer, /obj/item/weldingtool/largetank/cyborg, /obj/item/wrench/cyborg, /obj/item/crowbar/cyborg, @@ -242,7 +242,7 @@ /obj/item/stack/tile/plasteel/cyborg, /obj/item/extinguisher, /obj/item/pickaxe, - /obj/item/device/t_scanner/adv_mining_scanner, + /obj/item/t_scanner/adv_mining_scanner, /obj/item/restraints/handcuffs/cable/zipties, /obj/item/soap/nanotrasen, /obj/item/borg/cyborghug) @@ -257,8 +257,8 @@ /obj/item/robot_module/medical name = "Medical" basic_modules = list( - /obj/item/device/assembly/flash/cyborg, - /obj/item/device/healthanalyzer, + /obj/item/assembly/flash/cyborg, + /obj/item/healthanalyzer, /obj/item/reagent_containers/borghypo, /obj/item/reagent_containers/glass/beaker/large, /obj/item/reagent_containers/dropper, @@ -288,7 +288,7 @@ /obj/item/robot_module/engineering name = "Engineering" basic_modules = list( - /obj/item/device/assembly/flash/cyborg, + /obj/item/assembly/flash/cyborg, /obj/item/borg/sight/meson, /obj/item/construction/rcd/borg, /obj/item/pipe_dispenser, @@ -298,13 +298,13 @@ /obj/item/wrench/cyborg, /obj/item/crowbar/cyborg, /obj/item/wirecutters/cyborg, - /obj/item/device/multitool/cyborg, - /obj/item/device/t_scanner, - /obj/item/device/analyzer, - /obj/item/device/geiger_counter/cyborg, - /obj/item/device/assembly/signaler/cyborg, + /obj/item/multitool/cyborg, + /obj/item/t_scanner, + /obj/item/analyzer, + /obj/item/geiger_counter/cyborg, + /obj/item/assembly/signaler/cyborg, /obj/item/areaeditor/blueprints/cyborg, - /obj/item/device/electroadaptive_pseudocircuit, + /obj/item/electroadaptive_pseudocircuit, /obj/item/stack/sheet/metal/cyborg, /obj/item/stack/sheet/glass/cyborg, /obj/item/stack/sheet/rglass/cyborg, @@ -323,7 +323,7 @@ /obj/item/robot_module/security name = "Security" basic_modules = list( - /obj/item/device/assembly/flash/cyborg, + /obj/item/assembly/flash/cyborg, /obj/item/restraints/handcuffs/cable/zipties, /obj/item/melee/baton/loaded, /obj/item/gun/energy/disabler/cyborg, @@ -355,9 +355,9 @@ /obj/item/robot_module/peacekeeper name = "Peacekeeper" basic_modules = list( - /obj/item/device/assembly/flash/cyborg, + /obj/item/assembly/flash/cyborg, /obj/item/cookiesynth, - /obj/item/device/harmalarm, + /obj/item/harmalarm, /obj/item/reagent_containers/borghypo/peace, /obj/item/holosign_creator/cyborg, /obj/item/borg/cyborghug/peacekeeper, @@ -380,7 +380,7 @@ /obj/item/robot_module/janitor name = "Janitor" basic_modules = list( - /obj/item/device/assembly/flash/cyborg, + /obj/item/assembly/flash/cyborg, /obj/item/screwdriver/cyborg, /obj/item/crowbar/cyborg, /obj/item/stack/tile/plasteel/cyborg, @@ -388,7 +388,7 @@ /obj/item/storage/bag/trash/cyborg, /obj/item/extinguisher/mini, /obj/item/mop/cyborg, - /obj/item/device/lightreplacer/cyborg, + /obj/item/lightreplacer/cyborg, /obj/item/holosign_creator, /obj/item/reagent_containers/spray/cyborg_drying) emag_modules = list(/obj/item/reagent_containers/spray/cyborg_lube) @@ -411,7 +411,7 @@ /obj/item/robot_module/janitor/respawn_consumable(mob/living/silicon/robot/R, coeff = 1) ..() - var/obj/item/device/lightreplacer/LR = locate(/obj/item/device/lightreplacer) in basic_modules + var/obj/item/lightreplacer/LR = locate(/obj/item/lightreplacer) in basic_modules if(LR) for(var/i in 1 to coeff) LR.Charge(R) @@ -427,9 +427,9 @@ /obj/item/robot_module/clown name = "Clown" basic_modules = list( - /obj/item/device/assembly/flash/cyborg, + /obj/item/assembly/flash/cyborg, /obj/item/toy/crayon/rainbow, - /obj/item/device/instrument/bikehorn, + /obj/item/instrument/bikehorn, /obj/item/stamp/clown, /obj/item/bikehorn, /obj/item/bikehorn/airhorn, @@ -458,7 +458,7 @@ /obj/item/robot_module/butler name = "Service" basic_modules = list( - /obj/item/device/assembly/flash/cyborg, + /obj/item/assembly/flash/cyborg, /obj/item/reagent_containers/food/drinks/drinkingglass, /obj/item/reagent_containers/food/condiment/enzyme, /obj/item/pen, @@ -466,8 +466,8 @@ /obj/item/extinguisher/mini, /obj/item/hand_labeler/borg, /obj/item/razor, - /obj/item/device/instrument/violin, - /obj/item/device/instrument/guitar, + /obj/item/instrument/violin, + /obj/item/instrument/guitar, /obj/item/rsf/cyborg, /obj/item/reagent_containers/dropper, /obj/item/lighter, @@ -512,7 +512,7 @@ /obj/item/robot_module/miner name = "Miner" basic_modules = list( - /obj/item/device/assembly/flash/cyborg, + /obj/item/assembly/flash/cyborg, /obj/item/borg/sight/meson, /obj/item/storage/bag/ore/cyborg, /obj/item/pickaxe/drill/cyborg, @@ -521,9 +521,9 @@ /obj/item/weldingtool/mini, /obj/item/extinguisher/mini, /obj/item/storage/bag/sheetsnatcher/borg, - /obj/item/device/t_scanner/adv_mining_scanner, + /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator/cyborg, - /obj/item/device/gps/cyborg, + /obj/item/gps/cyborg, /obj/item/stack/marker_beacon) emag_modules = list(/obj/item/borg/stun) ratvar_modules = list( @@ -537,7 +537,7 @@ /obj/item/robot_module/syndicate name = "Syndicate Assault" basic_modules = list( - /obj/item/device/assembly/flash/cyborg, + /obj/item/assembly/flash/cyborg, /obj/item/melee/transforming/energy/sword/cyborg, /obj/item/gun/energy/printer, /obj/item/gun/ballistic/revolver/grenadelauncher/cyborg, @@ -566,10 +566,10 @@ /obj/item/robot_module/syndicate_medical name = "Syndicate Medical" basic_modules = list( - /obj/item/device/assembly/flash/cyborg, + /obj/item/assembly/flash/cyborg, /obj/item/reagent_containers/borghypo/syndicate, /obj/item/twohanded/shockpaddles/syndicate, - /obj/item/device/healthanalyzer, + /obj/item/healthanalyzer, /obj/item/surgical_drapes, /obj/item/retractor, /obj/item/hemostat, diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 083ad38caa..f3d3e2f192 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -10,6 +10,7 @@ bubble_icon = "machine" weather_immunities = list("ash") possible_a_intents = list(INTENT_HELP, INTENT_HARM) + mob_biotypes = list(MOB_ROBOTIC) var/datum/ai_laws/laws = null//Now... THEY ALL CAN ALL HAVE LAWS var/last_lawchange_announce = 0 @@ -17,10 +18,10 @@ var/list/alarms_to_clear = list() var/designation = "" var/radiomod = "" //Radio character used before state laws/arrivals announce to allow department transmissions, default, or none at all. - var/obj/item/device/camera/siliconcam/aicamera = null //photography + var/obj/item/camera/siliconcam/aicamera = null //photography hud_possible = list(ANTAG_HUD, DIAG_STAT_HUD, DIAG_HUD, DIAG_TRACK_HUD) - var/obj/item/device/radio/borg/radio = null //AIs dont use this but this is at the silicon level to advoid copypasta in say() + var/obj/item/radio/borg/radio = null //AIs dont use this but this is at the silicon level to advoid copypasta in say() var/list/alarm_types_show = list("Motion" = 0, "Fire" = 0, "Atmosphere" = 0, "Power" = 0, "Camera" = 0) var/list/alarm_types_clear = list("Motion" = 0, "Fire" = 0, "Atmosphere" = 0, "Power" = 0, "Camera" = 0) diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index 91a3eeea76..ccfcdfbc34 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -3,6 +3,7 @@ icon = 'icons/mob/aibots.dmi' layer = MOB_LAYER gender = NEUTER + mob_biotypes = list(MOB_ROBOTIC) light_range = 3 stop_automated_movement = 1 wander = 0 @@ -30,7 +31,7 @@ var/window_name = "Protobot 1.0" //Popup title var/window_width = 0 //0 for default size var/window_height = 0 - var/obj/item/device/paicard/paicard // Inserted pai card. + var/obj/item/paicard/paicard // Inserted pai card. var/allow_pai = 1 // Are we even allowed to insert a pai card. var/bot_name @@ -55,7 +56,7 @@ var/tries = 0 //Number of times the bot tried and failed to move. var/remote_disabled = 0 //If enabled, the AI cannot *Remotely* control a bot. It can still control it through cameras. var/mob/living/silicon/ai/calling_ai //Links a bot to the AI calling it. - var/obj/item/device/radio/Radio //The bot's radio, for speaking to people. + var/obj/item/radio/Radio //The bot's radio, for speaking to people. var/radio_key = null //which channels can the bot listen to var/radio_channel = "Common" //The bot's default radio channel var/auto_patrol = 0// set to make bot automatically patrol @@ -129,7 +130,7 @@ //This access is so bots can be immediately set to patrol and leave Robotics, instead of having to be let out first. access_card.access += ACCESS_ROBOTICS set_custom_texts() - Radio = new/obj/item/device/radio(src) + Radio = new/obj/item/radio(src) if(radio_key) Radio.keyslot = new radio_key Radio.subspace_transmission = TRUE @@ -272,7 +273,7 @@ to_chat(user, "The maintenance panel is now [open ? "opened" : "closed"].") else to_chat(user, "The maintenance panel is locked.") - else if(istype(W, /obj/item/card/id) || istype(W, /obj/item/device/pda)) + else if(istype(W, /obj/item/card/id) || istype(W, /obj/item/pda)) if(bot_core.allowed(user) && !open && !emagged) locked = !locked to_chat(user, "Controls are now [locked ? "locked." : "unlocked."]") @@ -283,7 +284,7 @@ to_chat(user, "Please close the access panel before locking it.") else to_chat(user, "Access denied.") - else if(istype(W, /obj/item/device/paicard)) + else if(istype(W, /obj/item/paicard)) insertpai(user, W) else if(istype(W, /obj/item/hemostat) && paicard) if(open) @@ -879,7 +880,7 @@ Pass a positive integer as an argument to override a bot's default speed. eject += "
      " return eject -/mob/living/simple_animal/bot/proc/insertpai(mob/user, obj/item/device/paicard/card) +/mob/living/simple_animal/bot/proc/insertpai(mob/user, obj/item/paicard/card) if(paicard) to_chat(user, "A [paicard] is already inserted!") else if(allow_pai && !key) diff --git a/code/modules/mob/living/simple_animal/bot/cleanbot.dm b/code/modules/mob/living/simple_animal/bot/cleanbot.dm index 344b516618..13680f55a8 100644 --- a/code/modules/mob/living/simple_animal/bot/cleanbot.dm +++ b/code/modules/mob/living/simple_animal/bot/cleanbot.dm @@ -8,7 +8,7 @@ anchored = FALSE health = 25 maxHealth = 25 - radio_key = /obj/item/device/encryptionkey/headset_service + radio_key = /obj/item/encryptionkey/headset_service radio_channel = "Service" //Service bot_type = CLEAN_BOT model = "Cleanbot" @@ -63,7 +63,7 @@ text_dehack_fail = "[name] does not seem to respond to your repair code!" /mob/living/simple_animal/bot/cleanbot/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/card/id)||istype(W, /obj/item/device/pda)) + if(istype(W, /obj/item/card/id)||istype(W, /obj/item/pda)) if(bot_core.allowed(user) && !open && !emagged) locked = !locked to_chat(user, "You [ locked ? "lock" : "unlock"] \the [src] behaviour controls.") @@ -261,7 +261,7 @@ new /obj/item/reagent_containers/glass/bucket(Tsec) - new /obj/item/device/assembly/prox_sensor(Tsec) + new /obj/item/assembly/prox_sensor(Tsec) if(prob(50)) drop_part(robot_arm, Tsec) diff --git a/code/modules/mob/living/simple_animal/bot/construction.dm b/code/modules/mob/living/simple_animal/bot/construction.dm index 692933f757..c9ece767a5 100644 --- a/code/modules/mob/living/simple_animal/bot/construction.dm +++ b/code/modules/mob/living/simple_animal/bot/construction.dm @@ -275,7 +275,7 @@ icon_state = "firstaid_arm" created_name = "Medibot" //To preserve the name if it's a unique medbot I guess var/skin = null //Same as medbot, set to tox or ointment for the respective kits. - var/healthanalyzer = /obj/item/device/healthanalyzer + var/healthanalyzer = /obj/item/healthanalyzer var/firstaid = /obj/item/storage/firstaid /obj/item/bot_assembly/medbot/Initialize() @@ -314,7 +314,7 @@ ..() switch(build_step) if(ASSEMBLY_FIRST_STEP) - if(istype(W, /obj/item/device/healthanalyzer)) + if(istype(W, /obj/item/healthanalyzer)) if(!user.temporarilyRemoveItemFromInventory(W)) return healthanalyzer = W.type @@ -392,7 +392,7 @@ build_step++ else if(istype(I, /obj/item/screwdriver)) //deconstruct - new /obj/item/device/assembly/signaler(Tsec) + new /obj/item/assembly/signaler(Tsec) new /obj/item/clothing/head/helmet/sec(Tsec) to_chat(user, "You disconnect the signaler from the helmet.") qdel(src) @@ -426,7 +426,7 @@ else if(istype(I, /obj/item/screwdriver)) //deconstruct cut_overlay("hs_eye") - new /obj/item/device/assembly/prox_sensor(Tsec) + new /obj/item/assembly/prox_sensor(Tsec) to_chat(user, "You detach the proximity sensor from [src].") build_step-- diff --git a/code/modules/mob/living/simple_animal/bot/ed209bot.dm b/code/modules/mob/living/simple_animal/bot/ed209bot.dm index d6edfd3d51..23c16794b0 100644 --- a/code/modules/mob/living/simple_animal/bot/ed209bot.dm +++ b/code/modules/mob/living/simple_animal/bot/ed209bot.dm @@ -12,7 +12,7 @@ environment_smash = ENVIRONMENT_SMASH_WALLS //Walls can't stop THE LAW mob_size = MOB_SIZE_LARGE - radio_key = /obj/item/device/encryptionkey/headset_sec + radio_key = /obj/item/encryptionkey/headset_sec radio_channel = "Security" bot_type = SEC_BOT model = "ED-209" @@ -380,7 +380,7 @@ Auto Patrol[]"}, Sa.build_step = 1 Sa.add_overlay("hs_hole") Sa.created_name = name - new /obj/item/device/assembly/prox_sensor(Tsec) + new /obj/item/assembly/prox_sensor(Tsec) drop_part(cell_type, Tsec) if(!lasercolor) diff --git a/code/modules/mob/living/simple_animal/bot/floorbot.dm b/code/modules/mob/living/simple_animal/bot/floorbot.dm index 8b33886dcb..f0cc8285e8 100644 --- a/code/modules/mob/living/simple_animal/bot/floorbot.dm +++ b/code/modules/mob/living/simple_animal/bot/floorbot.dm @@ -10,7 +10,7 @@ maxHealth = 25 spacewalk = TRUE - radio_key = /obj/item/device/encryptionkey/headset_eng + radio_key = /obj/item/encryptionkey/headset_eng radio_channel = "Engineering" bot_type = FLOOR_BOT model = "Floorbot" @@ -339,7 +339,7 @@ if(mode == BOT_REPAIRING && F && src.loc == F) F.broken = 0 F.burnt = 0 - F.ChangeTurf(/turf/open/floor/plasteel) + F.PlaceOnTop(/turf/open/floor/plasteel) if(replacetiles && F.type != initial(tiletype.turf_type) && specialtiles && !isplatingturf(F)) anchored = TRUE @@ -350,7 +350,7 @@ if(mode == BOT_REPAIRING && F && src.loc == F) F.broken = 0 F.burnt = 0 - F.ChangeTurf(initial(tiletype.turf_type)) + F.PlaceOnTop(initial(tiletype.turf_type)) specialtiles -= 1 if(specialtiles == 0) speak("Requesting refill of custom floortiles to continue replacing.") @@ -370,7 +370,7 @@ drop_part(toolbox, Tsec) - new /obj/item/device/assembly/prox_sensor(Tsec) + new /obj/item/assembly/prox_sensor(Tsec) if(specialtiles && tiletype != null) empty_tiles() diff --git a/code/modules/mob/living/simple_animal/bot/honkbot.dm b/code/modules/mob/living/simple_animal/bot/honkbot.dm index fdb1ce913a..de7874351a 100644 --- a/code/modules/mob/living/simple_animal/bot/honkbot.dm +++ b/code/modules/mob/living/simple_animal/bot/honkbot.dm @@ -10,7 +10,7 @@ damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0) pass_flags = PASSMOB - radio_key = /obj/item/device/encryptionkey/headset_service //doesn't have security key + radio_key = /obj/item/encryptionkey/headset_service //doesn't have security key radio_channel = "Service" //Doesn't even use the radio anyway. bot_type = HONK_BOT model = "Honkbot" @@ -334,7 +334,7 @@ Maintenance panel panel is [open ? "opened" : "closed"]"}, if(prob(50)) drop_part(robot_arm, Tsec) new bikehorn(Tsec) - new /obj/item/device/assembly/prox_sensor(Tsec) + new /obj/item/assembly/prox_sensor(Tsec) var/datum/effect_system/spark_spread/s = new s.set_up(3, 1, src) diff --git a/code/modules/mob/living/simple_animal/bot/medbot.dm b/code/modules/mob/living/simple_animal/bot/medbot.dm index 4cf1f6b13f..f0ca506fe3 100644 --- a/code/modules/mob/living/simple_animal/bot/medbot.dm +++ b/code/modules/mob/living/simple_animal/bot/medbot.dm @@ -16,7 +16,7 @@ status_flags = (CANPUSH | CANSTUN) - radio_key = /obj/item/device/encryptionkey/headset_med + radio_key = /obj/item/encryptionkey/headset_med radio_channel = "Medical" bot_type = MED_BOT @@ -28,7 +28,7 @@ path_image_color = "#DDDDFF" var/obj/item/reagent_containers/glass/reagent_glass = null //Can be set to draw from this for reagents. - var/healthanalyzer = /obj/item/device/healthanalyzer + var/healthanalyzer = /obj/item/healthanalyzer var/firstaid = /obj/item/storage/firstaid var/skin = null //Set to "tox", "ointment" or "o2" for the other two firstaid kits. var/mob/living/carbon/patient = null @@ -527,7 +527,7 @@ var/atom/Tsec = drop_location() drop_part(firstaid, Tsec) - new /obj/item/device/assembly/prox_sensor(Tsec) + new /obj/item/assembly/prox_sensor(Tsec) drop_part(healthanalyzer, Tsec) if(reagent_glass) diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm index ad59ce7e34..4bbabbe1bb 100644 --- a/code/modules/mob/living/simple_animal/bot/mulebot.dm +++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm @@ -22,7 +22,7 @@ buckle_lying = 0 mob_size = MOB_SIZE_LARGE - radio_key = /obj/item/device/encryptionkey/headset_cargo + radio_key = /obj/item/encryptionkey/headset_cargo radio_channel = "Supply" bot_type = MULE_BOT @@ -61,6 +61,10 @@ set_id(suffix || id || "#[mulebot_count]") suffix = null +/mob/living/simple_animal/bot/mulebot/ComponentInitialize() + . = ..() + AddComponent(/datum/component/ntnet_interface) + /mob/living/simple_animal/bot/mulebot/Destroy() unload(0) qdel(wires) @@ -694,7 +698,7 @@ visible_message("[src] blows apart!") var/atom/Tsec = drop_location() - new /obj/item/device/assembly/prox_sensor(Tsec) + new /obj/item/assembly/prox_sensor(Tsec) new /obj/item/stack/rods(Tsec) new /obj/item/stack/rods(Tsec) new /obj/item/stack/cable_coil/cut(Tsec) @@ -725,7 +729,7 @@ else ..() -/mob/living/simple_animal/bot/mulebot/insertpai(mob/user, obj/item/device/paicard/card) +/mob/living/simple_animal/bot/mulebot/insertpai(mob/user, obj/item/paicard/card) if(..()) visible_message("[src] safeties are locked on.") diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm index 68078dbec1..0f95b5de71 100644 --- a/code/modules/mob/living/simple_animal/bot/secbot.dm +++ b/code/modules/mob/living/simple_animal/bot/secbot.dm @@ -10,7 +10,7 @@ damage_coeff = list(BRUTE = 0.5, BURN = 0.7, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0) pass_flags = PASSMOB - radio_key = /obj/item/device/encryptionkey/secbot //AI Priv + Security + radio_key = /obj/item/encryptionkey/secbot //AI Priv + Security radio_channel = "Security" //Security channel bot_type = SEC_BOT model = "Securitron" @@ -406,7 +406,7 @@ Auto Patrol: []"}, Sa.build_step = 1 Sa.add_overlay("hs_hole") Sa.created_name = name - new /obj/item/device/assembly/prox_sensor(Tsec) + new /obj/item/assembly/prox_sensor(Tsec) drop_part(baton_type, Tsec) if(prob(50)) diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index f50b7c0ccf..727f7cb139 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -3,6 +3,7 @@ real_name = "Construct" desc = "" gender = NEUTER + mob_biotypes = list(MOB_INORGANIC) speak_emote = list("hisses") response_help = "thinks better of touching" response_disarm = "flails at" diff --git a/code/modules/mob/living/simple_animal/corpse.dm b/code/modules/mob/living/simple_animal/corpse.dm index b6f9e1e9b8..68cd130803 100644 --- a/code/modules/mob/living/simple_animal/corpse.dm +++ b/code/modules/mob/living/simple_animal/corpse.dm @@ -21,7 +21,7 @@ suit = /obj/item/clothing/suit/armor/vest shoes = /obj/item/clothing/shoes/combat gloves = /obj/item/clothing/gloves/combat - ears = /obj/item/device/radio/headset + ears = /obj/item/radio/headset mask = /obj/item/clothing/mask/gas head = /obj/item/clothing/head/helmet/swat back = /obj/item/storage/backpack @@ -41,7 +41,7 @@ suit = /obj/item/clothing/suit/space/hardsuit/syndi shoes = /obj/item/clothing/shoes/combat gloves = /obj/item/clothing/gloves/combat - ears = /obj/item/device/radio/headset + ears = /obj/item/radio/headset mask = /obj/item/clothing/mask/gas/syndicate back = /obj/item/tank/jetpack/oxygen r_pocket = /obj/item/tank/internals/emergency_oxygen @@ -61,7 +61,7 @@ suit = /obj/item/clothing/suit/space/hardsuit/syndi/elite shoes = /obj/item/clothing/shoes/combat gloves = /obj/item/clothing/gloves/combat - ears = /obj/item/device/radio/headset + ears = /obj/item/radio/headset mask = /obj/item/clothing/mask/gas/syndicate back = /obj/item/tank/jetpack/oxygen/harness id = /obj/item/card/id/syndicate @@ -132,7 +132,7 @@ suit = /obj/item/clothing/suit/armor/bulletproof shoes = /obj/item/clothing/shoes/combat gloves = /obj/item/clothing/gloves/combat - ears = /obj/item/device/radio/headset + ears = /obj/item/radio/headset head = /obj/item/clothing/head/helmet/alt mask = /obj/item/clothing/mask/balaclava @@ -146,7 +146,7 @@ uniform = /obj/item/clothing/under/rank/security/navyblue/russian suit = /obj/item/clothing/suit/security/officer/russian shoes = /obj/item/clothing/shoes/combat - ears = /obj/item/device/radio/headset + ears = /obj/item/radio/headset head = /obj/item/clothing/head/ushanka @@ -179,7 +179,7 @@ suit = /obj/item/clothing/suit/armor/vest shoes = /obj/item/clothing/shoes/combat gloves = /obj/item/clothing/gloves/combat - ears = /obj/item/device/radio/headset + ears = /obj/item/radio/headset mask = /obj/item/clothing/mask/gas/sechailer/swat head = /obj/item/clothing/head/helmet/swat/nanotrasen back = /obj/item/storage/backpack/security @@ -200,7 +200,7 @@ suit = /obj/item/clothing/suit/apron/surgical shoes = /obj/item/clothing/shoes/sneakers/white gloves = /obj/item/clothing/gloves/color/latex/nitrile - ears = /obj/item/device/radio/headset + ears = /obj/item/radio/headset back = /obj/item/storage/backpack/satchel/med id = /obj/item/card/id glasses = /obj/item/clothing/glasses/hud/health \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/friendly/butterfly.dm b/code/modules/mob/living/simple_animal/friendly/butterfly.dm index 6a00ca0006..2fbbad66d8 100644 --- a/code/modules/mob/living/simple_animal/friendly/butterfly.dm +++ b/code/modules/mob/living/simple_animal/friendly/butterfly.dm @@ -18,6 +18,7 @@ pass_flags = PASSTABLE | PASSGRILLE | PASSMOB ventcrawler = VENTCRAWLER_ALWAYS mob_size = MOB_SIZE_TINY + mob_biotypes = list(MOB_ORGANIC, MOB_BUG) gold_core_spawnable = FRIENDLY_SPAWN verb_say = "flutters" verb_ask = "flutters inquisitively" diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index 47b00cb7f5..75e7b668ea 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -17,6 +17,7 @@ ventcrawler = VENTCRAWLER_ALWAYS pass_flags = PASSTABLE mob_size = MOB_SIZE_SMALL + mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) minbodytemp = 200 maxbodytemp = 400 unsuitable_atmos_damage = 1 diff --git a/code/modules/mob/living/simple_animal/friendly/cockroach.dm b/code/modules/mob/living/simple_animal/friendly/cockroach.dm index 5a9ae07374..3887e4b6d9 100644 --- a/code/modules/mob/living/simple_animal/friendly/cockroach.dm +++ b/code/modules/mob/living/simple_animal/friendly/cockroach.dm @@ -12,6 +12,7 @@ maxbodytemp = INFINITY pass_flags = PASSTABLE | PASSGRILLE | PASSMOB mob_size = MOB_SIZE_TINY + mob_biotypes = list(MOB_ORGANIC, MOB_BUG) response_help = "pokes" response_disarm = "shoos" response_harm = "splats" diff --git a/code/modules/mob/living/simple_animal/friendly/dog.dm b/code/modules/mob/living/simple_animal/friendly/dog.dm index 5c68ca8117..90532829df 100644 --- a/code/modules/mob/living/simple_animal/friendly/dog.dm +++ b/code/modules/mob/living/simple_animal/friendly/dog.dm @@ -1,6 +1,7 @@ //Dogs. /mob/living/simple_animal/pet/dog + mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) response_help = "pets" response_disarm = "bops" response_harm = "kicks" diff --git a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm index 450377b07a..3ebf5b97d8 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm @@ -35,6 +35,7 @@ sight = (SEE_TURFS | SEE_OBJS) status_flags = (CANPUSH | CANSTUN | CANKNOCKDOWN) gender = NEUTER + mob_biotypes = list(MOB_ROBOTIC) speak_emote = list("chirps") bubble_icon = "machine" initial_language_holder = /datum/language_holder/drone diff --git a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm index 4abed2e8c4..b4cd697d2e 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm @@ -26,7 +26,7 @@ "1. Interfere.\n"+\ "2. Kill.\n"+\ "3. Destroy." - default_storage = /obj/item/device/radio/uplink + default_storage = /obj/item/radio/uplink default_hatmask = /obj/item/clothing/head/helmet/space/hardsuit/syndi seeStatic = 0 //Our programming is superior. hacked = TRUE @@ -44,7 +44,7 @@ /mob/living/simple_animal/drone/syndrone/badass name = "Badass Syndrone" default_hatmask = /obj/item/clothing/head/helmet/space/hardsuit/syndi/elite - default_storage = /obj/item/device/radio/uplink/nuclear + default_storage = /obj/item/radio/uplink/nuclear /mob/living/simple_animal/drone/syndrone/badass/Initialize() . = ..() diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index 9a5d2fb0ee..9423cf9df6 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -17,6 +17,7 @@ response_disarm = "gently pushes aside" response_harm = "kicks" faction = list("neutral") + mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) attack_same = 1 attacktext = "kicks" attack_sound = 'sound/weapons/punch1.ogg' @@ -109,6 +110,7 @@ icon_dead = "cow_dead" icon_gib = "cow_gib" gender = FEMALE + mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) speak = list("moo?","moo","MOOOOOO") speak_emote = list("moos","moos hauntingly") emote_hear = list("brays.") @@ -183,6 +185,7 @@ icon_dead = "chick_dead" icon_gib = "chick_gib" gender = FEMALE + mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) speak = list("Cherp.","Cherp?","Chirrup.","Cheep!") speak_emote = list("cheeps") emote_hear = list("cheeps.") @@ -226,6 +229,7 @@ name = "\improper chicken" desc = "Hopefully the eggs are good this season." gender = FEMALE + mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) icon_state = "chicken_brown" icon_living = "chicken_brown" icon_dead = "chicken_brown_dead" diff --git a/code/modules/mob/living/simple_animal/friendly/lizard.dm b/code/modules/mob/living/simple_animal/friendly/lizard.dm index e596b09ba9..6b179ba857 100644 --- a/code/modules/mob/living/simple_animal/friendly/lizard.dm +++ b/code/modules/mob/living/simple_animal/friendly/lizard.dm @@ -18,6 +18,7 @@ density = FALSE pass_flags = PASSTABLE | PASSMOB mob_size = MOB_SIZE_SMALL + mob_biotypes = list(MOB_ORGANIC, MOB_BEAST, MOB_REPTILE) gold_core_spawnable = FRIENDLY_SPAWN obj_damage = 0 environment_smash = ENVIRONMENT_SMASH_NONE diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index ff9363ef64..be6f4eef71 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -21,6 +21,7 @@ ventcrawler = VENTCRAWLER_ALWAYS pass_flags = PASSTABLE | PASSGRILLE | PASSMOB mob_size = MOB_SIZE_TINY + mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) var/body_color //brown, gray and white, leave blank for random gold_core_spawnable = FRIENDLY_SPAWN var/chew_probability = 1 diff --git a/code/modules/mob/living/simple_animal/friendly/pet.dm b/code/modules/mob/living/simple_animal/friendly/pet.dm index 8c39cf0c0b..8df0ee83fe 100644 --- a/code/modules/mob/living/simple_animal/friendly/pet.dm +++ b/code/modules/mob/living/simple_animal/friendly/pet.dm @@ -1,6 +1,7 @@ /mob/living/simple_animal/pet icon = 'icons/mob/pets.dmi' mob_size = MOB_SIZE_SMALL + mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) var/obj/item/clothing/neck/petcollar/pcollar var/collar_type var/unique_pet = FALSE diff --git a/code/modules/mob/living/simple_animal/friendly/sloth.dm b/code/modules/mob/living/simple_animal/friendly/sloth.dm index 8b7d70ef9f..f112b3f98e 100644 --- a/code/modules/mob/living/simple_animal/friendly/sloth.dm +++ b/code/modules/mob/living/simple_animal/friendly/sloth.dm @@ -14,6 +14,7 @@ response_help = "pets" response_disarm = "gently pushes aside" response_harm = "kicks" + mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) gold_core_spawnable = FRIENDLY_SPAWN melee_damage_lower = 18 melee_damage_upper = 18 diff --git a/code/modules/mob/living/simple_animal/friendly/snake.dm b/code/modules/mob/living/simple_animal/friendly/snake.dm index caa9f10905..d8912ee25f 100644 --- a/code/modules/mob/living/simple_animal/friendly/snake.dm +++ b/code/modules/mob/living/simple_animal/friendly/snake.dm @@ -30,6 +30,7 @@ density = FALSE pass_flags = PASSTABLE | PASSMOB mob_size = MOB_SIZE_SMALL + mob_biotypes = list(MOB_ORGANIC, MOB_BEAST, MOB_REPTILE) gold_core_spawnable = FRIENDLY_SPAWN obj_damage = 0 environment_smash = ENVIRONMENT_SMASH_NONE diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index 87b2812194..c7b499fa5a 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -10,6 +10,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians desc = "A mysterious being that stands by its charge, ever vigilant." speak_emote = list("hisses") gender = NEUTER + mob_biotypes = list(MOB_INORGANIC) bubble_icon = "guardian" response_help = "passes through" response_disarm = "flails at" diff --git a/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm b/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm index 841e189002..94edad2728 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm @@ -84,4 +84,4 @@ /mob/living/simple_animal/hostile/guardian/dextrous/regenerate_icons() ..() - update_inv_internal_storage() \ No newline at end of file + update_inv_internal_storage() diff --git a/code/modules/mob/living/simple_animal/hostile/bear.dm b/code/modules/mob/living/simple_animal/hostile/bear.dm index 69a668d3fd..8573c3b7cb 100644 --- a/code/modules/mob/living/simple_animal/hostile/bear.dm +++ b/code/modules/mob/living/simple_animal/hostile/bear.dm @@ -6,6 +6,7 @@ icon_living = "bear" icon_dead = "bear_dead" icon_gib = "bear_gib" + mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) speak = list("RAWR!","Rawr!","GRR!","Growl!") speak_emote = list("growls", "roars") emote_hear = list("rawrs.","grumbles.","grawls.") diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm index eb13446370..d8edf7fe67 100644 --- a/code/modules/mob/living/simple_animal/hostile/bees.dm +++ b/code/modules/mob/living/simple_animal/hostile/bees.dm @@ -37,6 +37,7 @@ pass_flags = PASSTABLE | PASSGRILLE | PASSMOB density = FALSE mob_size = MOB_SIZE_TINY + mob_biotypes = list(MOB_ORGANIC, MOB_BUG) movement_type = FLYING gold_core_spawnable = HOSTILE_SPAWN search_objects = 1 //have to find those plant trays! diff --git a/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm b/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm index 4a8e7ea455..1b766a51d6 100644 --- a/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm +++ b/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm @@ -2,6 +2,7 @@ /mob/living/simple_animal/hostile/boss/paper_wizard name = "Mjor the Creative" desc = "A wizard with a taste for the arts." + mob_biotypes = list(MOB_INORGANIC, MOB_HUMANOID) boss_abilities = list(/datum/action/boss/wizard_summon_minions, /datum/action/boss/wizard_mimic) faction = list("hostile","stickman") del_on_death = TRUE diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm index 4b494aeb5f..41644ec234 100644 --- a/code/modules/mob/living/simple_animal/hostile/carp.dm +++ b/code/modules/mob/living/simple_animal/hostile/carp.dm @@ -7,6 +7,7 @@ icon_living = "carp" icon_dead = "carp_dead" icon_gib = "carp_gib" + mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) speak_chance = 0 turns_per_move = 5 butcher_results = list(/obj/item/reagent_containers/food/snacks/carpmeat = 2) diff --git a/code/modules/mob/living/simple_animal/hostile/cat_butcher.dm b/code/modules/mob/living/simple_animal/hostile/cat_butcher.dm index 0489215665..a9e167c6e6 100644 --- a/code/modules/mob/living/simple_animal/hostile/cat_butcher.dm +++ b/code/modules/mob/living/simple_animal/hostile/cat_butcher.dm @@ -22,6 +22,7 @@ attacktext = "slashes at" attack_sound = 'sound/weapons/circsawhit.ogg' a_intent = INTENT_HARM + mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) loot = list(/obj/effect/mob_spawn/human/corpse/cat_butcher, /obj/item/circular_saw) atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) unsuitable_atmos_damage = 15 diff --git a/code/modules/mob/living/simple_animal/hostile/eyeballs.dm b/code/modules/mob/living/simple_animal/hostile/eyeballs.dm index a3e6dd6540..44f7f9c9f8 100644 --- a/code/modules/mob/living/simple_animal/hostile/eyeballs.dm +++ b/code/modules/mob/living/simple_animal/hostile/eyeballs.dm @@ -7,6 +7,7 @@ icon_living = "eyeball" icon_gib = "" gender = NEUTER + mob_biotypes = list(MOB_ORGANIC) response_help = "pets" response_disarm = "gently pushes aside" response_harm = "hits" diff --git a/code/modules/mob/living/simple_animal/hostile/faithless.dm b/code/modules/mob/living/simple_animal/hostile/faithless.dm index 0650f90fc6..d267da624f 100644 --- a/code/modules/mob/living/simple_animal/hostile/faithless.dm +++ b/code/modules/mob/living/simple_animal/hostile/faithless.dm @@ -4,6 +4,7 @@ icon_state = "faithless" icon_living = "faithless" icon_dead = "faithless_dead" + mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) gender = MALE speak_chance = 0 turns_per_move = 5 diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index 823b5322d3..8755ecbfbf 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -22,6 +22,7 @@ icon_state = "guard" icon_living = "guard" icon_dead = "guard_dead" + mob_biotypes = list(MOB_ORGANIC, MOB_BUG) speak_emote = list("chitters") emote_hear = list("chitters") speak_chance = 5 diff --git a/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm b/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm index 21895d58c0..6dc76bb6a7 100644 --- a/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm +++ b/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm @@ -9,6 +9,7 @@ icon_state = "crawling" icon_living = "crawling" icon_dead = "dead" + mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) speak_chance = 80 maxHealth = 220 health = 220 diff --git a/code/modules/mob/living/simple_animal/hostile/hivebot.dm b/code/modules/mob/living/simple_animal/hostile/hivebot.dm index 41a08a949c..1a92e0b69f 100644 --- a/code/modules/mob/living/simple_animal/hostile/hivebot.dm +++ b/code/modules/mob/living/simple_animal/hostile/hivebot.dm @@ -10,6 +10,7 @@ icon_living = "basic" icon_dead = "basic" gender = NEUTER + mob_biotypes = list(MOB_ROBOTIC) health = 15 maxHealth = 15 healable = 0 diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 93f319d2a1..65e82ea617 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -93,7 +93,7 @@ if(!search_objects) . = hearers(vision_range, targets_from) - src //Remove self, so we don't suicide - var/static/hostile_machines = typecacheof(list(/obj/machinery/porta_turret, /obj/mecha, /obj/structure/destructible/clockwork/ocular_warden,/obj/item/device/electronic_assembly)) + var/static/hostile_machines = typecacheof(list(/obj/machinery/porta_turret, /obj/mecha, /obj/structure/destructible/clockwork/ocular_warden,/obj/item/electronic_assembly)) for(var/HM in typecache_filter_list(range(vision_range, targets_from), hostile_machines)) if(can_see(targets_from, HM, vision_range)) @@ -196,8 +196,8 @@ return FALSE return TRUE - if(istype(the_target, /obj/item/device/electronic_assembly)) - var/obj/item/device/electronic_assembly/O = the_target + if(istype(the_target, /obj/item/electronic_assembly)) + var/obj/item/electronic_assembly/O = the_target if(O.combat_circuits) return TRUE @@ -496,4 +496,4 @@ mob/living/simple_animal/hostile/proc/DestroySurroundings() // for use with mega if (isturf(M.loc)) . += M else if (M.loc.type in hostile_machines) - . += M.loc \ No newline at end of file + . += M.loc diff --git a/code/modules/mob/living/simple_animal/hostile/illusion.dm b/code/modules/mob/living/simple_animal/hostile/illusion.dm index dc31062df5..f78f7f7d82 100644 --- a/code/modules/mob/living/simple_animal/hostile/illusion.dm +++ b/code/modules/mob/living/simple_animal/hostile/illusion.dm @@ -6,6 +6,7 @@ icon_living = "static" icon_dead = "null" gender = NEUTER + mob_biotypes = list() melee_damage_lower = 5 melee_damage_upper = 5 a_intent = INTENT_HARM diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm b/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm index eb2b1be1d4..92e04aaaa4 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm @@ -10,6 +10,7 @@ icon_state = "leaper" icon_living = "leaper" icon_dead = "leaper_dead" + mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) maxHealth = 300 health = 300 ranged = TRUE diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/mega_arachnid.dm b/code/modules/mob/living/simple_animal/hostile/jungle/mega_arachnid.dm index be51502a96..6ca550b9b7 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle/mega_arachnid.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle/mega_arachnid.dm @@ -7,6 +7,7 @@ icon_state = "arachnid" icon_living = "arachnid" icon_dead = "arachnid_dead" + mob_biotypes = list(MOB_ORGANIC, MOB_BUG) melee_damage_lower = 30 melee_damage_upper = 30 maxHealth = 300 diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm b/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm index 7aabc37679..1fde4a9cd4 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm @@ -13,6 +13,7 @@ icon_state = "mook" icon_living = "mook" icon_dead = "mook_dead" + mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) pixel_x = -16 maxHealth = 45 health = 45 diff --git a/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm b/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm index c18129137d..2e783d84d8 100644 --- a/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm +++ b/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm @@ -23,6 +23,7 @@ desc = "Death to Nanotrasen. This variant comes in MECHA DEATH flavour." wanted_objects = list() search_objects = 0 + mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) var/spawn_mecha_type = /obj/mecha/combat/marauder/mauler/loaded var/obj/mecha/mecha //Ref to pilot's mecha instance diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm index d5ecd0e985..3895951b3c 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm @@ -28,6 +28,7 @@ Difficulty: Medium icon_state = "miner" icon_living = "miner" icon = 'icons/mob/broadMobs.dmi' + mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) light_color = "#E4C7C5" movement_type = GROUND speak_emote = list("roars") @@ -77,7 +78,7 @@ Difficulty: Medium /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/Initialize() . = ..() - internal = new/obj/item/device/gps/internal/miner(src) + internal = new/obj/item/gps/internal/miner(src) miner_saw = new(src) /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/adjustHealth(amount, updating_health = TRUE, forced = FALSE) @@ -255,11 +256,10 @@ Difficulty: Medium sleep(4) animate(src, alpha = 0, time = 6, easing = EASE_OUT, flags = ANIMATION_PARALLEL) -/obj/item/device/gps/internal/miner +/obj/item/gps/internal/miner icon_state = null gpstag = "Resonant Signal" desc = "The sweet blood, oh, it sings to me." invisibility = 100 #undef MINER_DASH_RANGE -#undef MEDAL_PREFIX diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm index 1dfd27c7e5..e5425573b4 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm @@ -51,7 +51,7 @@ Difficulty: Hard deathmessage = "sinks into a pool of blood, fleeing the battle. You've won, for now... " death_sound = 'sound/magic/enter_blood.ogg' -/obj/item/device/gps/internal/bubblegum +/obj/item/gps/internal/bubblegum icon_state = null gpstag = "Bloody Signal" desc = "You're not quite sure how a signal can be bloody." @@ -111,7 +111,7 @@ Difficulty: Hard AddSpell(bloodspell) if(istype(loc, /obj/effect/dummy/slaughter)) bloodspell.phased = 1 - internal = new/obj/item/device/gps/internal/bubblegum(src) + internal = new/obj/item/gps/internal/bubblegum(src) /mob/living/simple_animal/hostile/megafauna/bubblegum/grant_achievement(medaltype,scoretype) . = ..() @@ -398,5 +398,3 @@ Difficulty: Hard if(istype(mover, /mob/living/simple_animal/hostile/megafauna/bubblegum)) return 1 return 0 - -#undef MEDAL_PREFIX diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index b107eec0c0..6e53688470 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -92,7 +92,7 @@ Difficulty: Very Hard /mob/living/simple_animal/hostile/megafauna/colossus/Initialize() . = ..() - internal = new/obj/item/device/gps/internal/colossus(src) + internal = new/obj/item/gps/internal/colossus(src) /obj/effect/temp_visual/at_shield name = "anti-toolbox field" @@ -220,7 +220,7 @@ Difficulty: Very Hard target.ex_act(EXPLODE_HEAVY) -/obj/item/device/gps/internal/colossus +/obj/item/gps/internal/colossus icon_state = null gpstag = "Angelic Signal" desc = "Get in the fucking robot." @@ -785,5 +785,3 @@ Difficulty: Very Hard #undef ACTIVATE_MOB_BUMP #undef ACTIVATE_WEAPON #undef ACTIVATE_MAGIC - -#undef MEDAL_PREFIX diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm index 631316e6af..9aee15d9b6 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm @@ -66,7 +66,7 @@ Difficulty: Medium /mob/living/simple_animal/hostile/megafauna/dragon/Initialize() smallsprite.Grant(src) . = ..() - internal = new/obj/item/device/gps/internal/dragon(src) + internal = new/obj/item/gps/internal/dragon(src) /mob/living/simple_animal/hostile/megafauna/dragon/ex_act(severity, target) if(severity == 3) @@ -271,7 +271,7 @@ Difficulty: Medium return swoop_attack(TRUE, A, 25) -/obj/item/device/gps/internal/dragon +/obj/item/gps/internal/dragon icon_state = null gpstag = "Fiery Signal" desc = "Here there be dragons." @@ -390,5 +390,3 @@ Difficulty: Medium /mob/living/simple_animal/hostile/megafauna/dragon/lesser/grant_achievement(medaltype,scoretype) return - -#undef MEDAL_PREFIX diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index 22891265ae..bc873e68e7 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -78,7 +78,7 @@ Difficulty: Hard /mob/living/simple_animal/hostile/megafauna/hierophant/Initialize() . = ..() - internal = new/obj/item/device/gps/internal/hierophant(src) + internal = new/obj/item/gps/internal/hierophant(src) spawned_beacon = new(loc) /mob/living/simple_animal/hostile/megafauna/hierophant/spawn_crusher_loot() @@ -687,10 +687,8 @@ Difficulty: Hard else return ..() -/obj/item/device/gps/internal/hierophant +/obj/item/gps/internal/hierophant icon_state = null gpstag = "Zealous Signal" desc = "Heed its words." invisibility = 100 - -#undef MEDAL_PREFIX diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm index 52f981f43c..ad9d7a88b2 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm @@ -52,7 +52,7 @@ Difficulty: Medium /mob/living/simple_animal/hostile/megafauna/legion/Initialize() . = ..() - internal = new/obj/item/device/gps/internal/legion(src) + internal = new/obj/item/gps/internal/legion(src) /mob/living/simple_animal/hostile/megafauna/legion/GiveTarget(new_target) . = ..() @@ -138,7 +138,7 @@ Difficulty: Medium loot = list(/obj/structure/closet/crate/necropolis/tendril) ..() -/obj/item/device/gps/internal/legion +/obj/item/gps/internal/legion icon_state = null gpstag = "Echoing Signal" desc = "The message repeats." @@ -201,5 +201,3 @@ Difficulty: Medium playsound(user, 'sound/magic/staff_change.ogg', 200, 0) A.telegraph() storm_cooldown = world.time + 200 - -#undef MEDAL_PREFIX diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm index 3f6fee9935..eadc6dc413 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm @@ -6,6 +6,7 @@ a_intent = INTENT_HARM sentience_type = SENTIENCE_BOSS environment_smash = ENVIRONMENT_SMASH_RWALLS + mob_biotypes = list(MOB_ORGANIC, MOB_EPIC) obj_damage = 400 light_range = 3 faction = list("mining", "boss") @@ -18,8 +19,8 @@ damage_coeff = list(BRUTE = 1, BURN = 0.5, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1) minbodytemp = 0 maxbodytemp = INFINITY - aggro_vision_range = 18 vision_range = 5 + aggro_vision_range = 18 anchored = TRUE mob_size = MOB_SIZE_LARGE layer = LARGE_MOB_LAYER //Looks weird with them slipping under mineral walls and cameras and shit otherwise @@ -29,7 +30,7 @@ var/score_type = BOSS_SCORE var/elimination = 0 var/anger_modifier = 0 - var/obj/item/device/gps/internal + var/obj/item/gps/internal var/recovery_time = 0 /mob/living/simple_animal/hostile/megafauna/Initialize(mapload) @@ -79,15 +80,14 @@ . = ..() if(. && isliving(target)) var/mob/living/L = target - if(L.stat >= SOFT_CRIT) + if(L.stat != DEAD) + if(!client && ranged && ranged_cooldown <= world.time) + OpenFire() + else if(L.stat >= SOFT_CRIT) if(vore_active == TRUE && L.devourable == TRUE) dragon_feeding(src,L) else if(L.stat == DEAD) devour(L) - else - if(L.stat != DEAD) - if(!client && ranged && ranged_cooldown <= world.time) - OpenFire() /mob/living/simple_animal/hostile/megafauna/proc/devour(mob/living/L) if(!L) @@ -127,4 +127,4 @@ SSmedals.UnlockMedal("[medaltype] [BOSS_KILL_MEDAL_CRUSHER]", C) SSmedals.SetScore(BOSS_SCORE, C, 1) SSmedals.SetScore(score_type, C, 1) - return TRUE \ No newline at end of file + return TRUE diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm index ef7aa175a4..ceba903a75 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm @@ -1,5 +1,3 @@ -#define MEDAL_PREFIX "Swarmer Beacon" - /* Swarmer Beacon @@ -49,7 +47,8 @@ GLOBAL_LIST_INIT(AISwarmerCapsByType, list(/mob/living/simple_animal/hostile/swa icon_state = "swarmer_console" health = 750 maxHealth = 750 //""""low-ish"""" HP because it's a passive boss, and the swarm itself is the real foe - medal_type = MEDAL_PREFIX + mob_biotypes = list(MOB_ROBOTIC) + medal_type = BOSS_MEDAL_SWARMERS score_type = SWARMER_BEACON_SCORE faction = list("mining", "boss", "swarmer") weather_immunities = list("lava","ash") @@ -68,7 +67,7 @@ GLOBAL_LIST_INIT(AISwarmerCapsByType, list(/mob/living/simple_animal/hostile/swa /mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon/Initialize() . = ..() swarmer_caps = GLOB.AISwarmerCapsByType //for admin-edits - internal = new/obj/item/device/gps/internal/swarmer_beacon(src) + internal = new/obj/item/gps/internal/swarmer_beacon(src) for(var/ddir in GLOB.cardinals) new /obj/structure/swarmer/blockade (get_step(src, ddir)) var/mob/living/simple_animal/hostile/swarmer/ai/resource/R = new(loc) @@ -91,7 +90,7 @@ GLOBAL_LIST_INIT(AISwarmerCapsByType, list(/mob/living/simple_animal/hostile/swa summon_backup(25) //long range, only called max once per 15 seconds, so it's not deathlag -/obj/item/device/gps/internal/swarmer_beacon +/obj/item/gps/internal/swarmer_beacon icon_state = null gpstag = "Hungry Signal" desc = "Transmited over the signal is a strange message repeated in every language you know of, and some you don't too..." //the message is "nom nom nom" @@ -292,7 +291,3 @@ GLOBAL_LIST_INIT(AISwarmerCapsByType, list(/mob/living/simple_animal/hostile/swa desc = "A catwalk-like mesh, produced by swarmers to allow them to navigate hostile terrain." icon = 'icons/obj/smooth_structures/swarmer_catwalk.dmi' icon_state = "swarmer_catwalk" - - - -#undef MEDAL_PREFIX diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm index 7259a730e5..ca5323a978 100644 --- a/code/modules/mob/living/simple_animal/hostile/mimic.dm +++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm @@ -12,6 +12,7 @@ maxHealth = 250 health = 250 gender = NEUTER + mob_biotypes = list(MOB_INORGANIC) harm_intent_damage = 5 melee_damage_lower = 8 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm index 972e05b1e5..2fbcf376dd 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm @@ -8,6 +8,7 @@ icon_aggro = "Basilisk_alert" icon_dead = "Basilisk_dead" icon_gib = "syndicate_gib" + mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) move_to_delay = 20 projectiletype = /obj/item/projectile/temp/basilisk projectilesound = 'sound/weapons/pierce.ogg' diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm index cf8a6706e8..20916c9311 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm @@ -5,6 +5,7 @@ icon_state = "curseblob" icon_living = "curseblob" icon_aggro = "curseblob" + mob_biotypes = list(MOB_SPIRIT) movement_type = FLYING move_to_delay = 5 vision_range = 20 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm index ea8c817581..2041f64154 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm @@ -8,6 +8,7 @@ icon_aggro = "Goldgrub_alert" icon_dead = "Goldgrub_dead" icon_gib = "syndicate_gib" + mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) vision_range = 2 aggro_vision_range = 9 move_to_delay = 5 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm index 0d9093ac77..8eb6ff0f06 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm @@ -8,6 +8,7 @@ icon_aggro = "Goliath_alert" icon_dead = "Goliath_dead" icon_gib = "syndicate_gib" + mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) mouse_opacity = MOUSE_OPACITY_OPAQUE move_to_delay = 40 ranged = 1 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm index 3c40bacde8..c2d0a214b4 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm @@ -6,6 +6,7 @@ icon_state = "gutlunch" icon_living = "gutlunch" icon_dead = "gutlunch" + mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) speak_emote = list("warbles", "quavers") emote_hear = list("trills.") emote_see = list("sniffs.", "burps.") diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 8e32479be1..0040967496 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -7,6 +7,7 @@ icon_aggro = "Hivelord_alert" icon_dead = "Hivelord_dead" icon_gib = "syndicate_gib" + mob_biotypes = list(MOB_ORGANIC) mouse_opacity = MOUSE_OPACITY_OPAQUE move_to_delay = 14 ranged = 1 @@ -96,6 +97,7 @@ icon_aggro = "legion" icon_dead = "legion" icon_gib = "syndicate_gib" + mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) obj_damage = 60 melee_damage_lower = 15 melee_damage_upper = 15 @@ -314,7 +316,7 @@ belt = null backpack_contents = list() if(prob(70)) - backpack_contents += pick(list(/obj/item/stamp/clown = 1, /obj/item/reagent_containers/spray/waterflower = 1, /obj/item/reagent_containers/food/snacks/grown/banana = 1, /obj/item/device/megaphone/clown = 1, /obj/item/reagent_containers/food/drinks/soda_cans/canned_laughter = 1, /obj/item/pneumatic_cannon/pie = 1)) + backpack_contents += pick(list(/obj/item/stamp/clown = 1, /obj/item/reagent_containers/spray/waterflower = 1, /obj/item/reagent_containers/food/snacks/grown/banana = 1, /obj/item/megaphone/clown = 1, /obj/item/reagent_containers/food/drinks/soda_cans/canned_laughter = 1, /obj/item/pneumatic_cannon/pie = 1)) if(prob(30)) backpack_contents += list(/obj/item/stack/sheet/mineral/bananium = pickweight(list( 1 = 3, 2 = 2, 3 = 1))) if(prob(10)) @@ -363,7 +365,7 @@ r_pocket = /obj/item/restraints/legcuffs/bola/cult l_pocket = /obj/item/melee/cultblade/dagger glasses = /obj/item/clothing/glasses/night/cultblind - backpack_contents = list(/obj/item/reagent_containers/glass/beaker/unholywater = 1, /obj/item/device/cult_shift = 1, /obj/item/device/flashlight/flare/culttorch = 1, /obj/item/stack/sheet/runed_metal = 15) + backpack_contents = list(/obj/item/reagent_containers/glass/beaker/unholywater = 1, /obj/item/cult_shift = 1, /obj/item/flashlight/flare/culttorch = 1, /obj/item/stack/sheet/runed_metal = 15) if("Lavaknight") //START OF CIT CHANGE uniform = /obj/item/clothing/under/assistantformal mask = /obj/item/clothing/mask/breath diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/necropolis_tendril.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/necropolis_tendril.dm index 3d435de4e2..e01136ff5d 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/necropolis_tendril.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/necropolis_tendril.dm @@ -39,8 +39,8 @@ for(var/F in RANGE_TURFS(1, src)) if(ismineralturf(F)) var/turf/closed/mineral/M = F - M.ChangeTurf(M.turf_type, null, CHANGETURF_IGNORE_AIR) - gps = new /obj/item/device/gps/internal(src) + M.ScrapeAway(null, CHANGETURF_IGNORE_AIR) + gps = new /obj/item/gps/internal(src) /mob/living/simple_animal/hostile/spawner/lavaland/Destroy() QDEL_NULL(emitted_light) diff --git a/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm b/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm index 0d4021400c..c02b9259b8 100644 --- a/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm +++ b/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm @@ -6,6 +6,7 @@ icon_living = "nanotrasen" icon_dead = null icon_gib = "syndicate_gib" + mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) speak_chance = 12 turns_per_move = 5 response_help = "pokes" diff --git a/code/modules/mob/living/simple_animal/hostile/netherworld.dm b/code/modules/mob/living/simple_animal/hostile/netherworld.dm index b246f088ee..8e08012909 100644 --- a/code/modules/mob/living/simple_animal/hostile/netherworld.dm +++ b/code/modules/mob/living/simple_animal/hostile/netherworld.dm @@ -4,6 +4,7 @@ icon_state = "otherthing" icon_living = "otherthing" icon_dead = "otherthing-dead" + mob_biotypes = list(MOB_INORGANIC) health = 80 maxHealth = 80 obj_damage = 100 @@ -73,6 +74,7 @@ maxHealth = 50 spawn_time = 600 //1 minute max_mobs = 15 + mob_biotypes = list(MOB_INORGANIC) icon = 'icons/mob/nest.dmi' spawn_text = "crawls through" mob_types = list(/mob/living/simple_animal/hostile/netherworld/migo, /mob/living/simple_animal/hostile/netherworld, /mob/living/simple_animal/hostile/netherworld/blankbody) diff --git a/code/modules/mob/living/simple_animal/hostile/pirate.dm b/code/modules/mob/living/simple_animal/hostile/pirate.dm index e1ccbee712..714d2c7e33 100644 --- a/code/modules/mob/living/simple_animal/hostile/pirate.dm +++ b/code/modules/mob/living/simple_animal/hostile/pirate.dm @@ -5,6 +5,7 @@ icon_state = "piratemelee" icon_living = "piratemelee" icon_dead = "piratemelee_dead" + mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) speak_chance = 0 turns_per_move = 5 response_help = "pushes" diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm index 2fb4eb61bd..5cee4ef1b7 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm @@ -9,6 +9,7 @@ response_help = "brushes aside" response_disarm = "flails at" response_harm = "hits" + mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) speak_chance = 0 maxHealth = 15 health = 15 diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm index 025a574ddd..cd7acc6f5a 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm @@ -6,6 +6,7 @@ icon_living = "clown" icon_dead = "clown_dead" icon_gib = "clown_gib" + mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) turns_per_move = 5 response_help = "pokes" response_disarm = "gently pushes aside" diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm index 18e07391ba..47734abebc 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm @@ -4,6 +4,7 @@ icon_state = "frog" icon_living = "frog" icon_dead = "frog_dead" + mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) speak = list("ribbit","croak") emote_see = list("hops in a circle.", "shakes.") speak_chance = 1 @@ -24,6 +25,7 @@ pass_flags = PASSTABLE | PASSGRILLE | PASSMOB mob_size = MOB_SIZE_TINY gold_core_spawnable = HOSTILE_SPAWN + var/stepped_sound = 'sound/effects/huuu.ogg' /mob/living/simple_animal/hostile/retaliate/frog/Initialize() . = ..() @@ -39,4 +41,4 @@ if(!stat && isliving(AM)) var/mob/living/L = AM if(L.mob_size > MOB_SIZE_TINY) - playsound(src, 'sound/effects/huuu.ogg', 50, 1) + playsound(src, stepped_sound, 50, 1) diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm index 2d24f847df..32e1c4d047 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm @@ -4,6 +4,7 @@ icon = 'icons/mob/mob.dmi' icon_state = "ghost" icon_living = "ghost" + mob_biotypes = list(MOB_SPIRIT) speak_chance = 0 turns_per_move = 5 response_help = "passes through" diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm index d050b4143d..4e4849297c 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm @@ -5,6 +5,7 @@ icon_living = "old" icon_dead = "old_dead" icon_gib = "clown_gib" + mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) gender = MALE turns_per_move = 5 response_help = "pokes" diff --git a/code/modules/mob/living/simple_animal/hostile/russian.dm b/code/modules/mob/living/simple_animal/hostile/russian.dm index 63a656c257..30924d5519 100644 --- a/code/modules/mob/living/simple_animal/hostile/russian.dm +++ b/code/modules/mob/living/simple_animal/hostile/russian.dm @@ -6,6 +6,7 @@ icon_living = "russianmelee" icon_dead = "russianmelee_dead" icon_gib = "syndicate_gib" + mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) speak_chance = 0 turns_per_move = 5 response_help = "pokes" diff --git a/code/modules/mob/living/simple_animal/hostile/skeleton.dm b/code/modules/mob/living/simple_animal/hostile/skeleton.dm index 3a4a99452c..bb3892d0b6 100644 --- a/code/modules/mob/living/simple_animal/hostile/skeleton.dm +++ b/code/modules/mob/living/simple_animal/hostile/skeleton.dm @@ -6,6 +6,7 @@ icon_living = "skeleton" icon_dead = "skeleton" gender = NEUTER + mob_biotypes = list(MOB_UNDEAD, MOB_HUMANOID) turns_per_move = 5 speak_emote = list("rattles") emote_see = list("rattles") diff --git a/code/modules/mob/living/simple_animal/hostile/statue.dm b/code/modules/mob/living/simple_animal/hostile/statue.dm index 8df758c0d6..81d583ee65 100644 --- a/code/modules/mob/living/simple_animal/hostile/statue.dm +++ b/code/modules/mob/living/simple_animal/hostile/statue.dm @@ -9,6 +9,7 @@ icon_dead = "human_male" gender = NEUTER a_intent = INTENT_HARM + mob_biotypes = list(MOB_INORGANIC, MOB_HUMANOID) response_help = "touches" response_disarm = "pushes" diff --git a/code/modules/mob/living/simple_animal/hostile/stickman.dm b/code/modules/mob/living/simple_animal/hostile/stickman.dm index 44a0a06cdc..7a86870aa1 100644 --- a/code/modules/mob/living/simple_animal/hostile/stickman.dm +++ b/code/modules/mob/living/simple_animal/hostile/stickman.dm @@ -5,6 +5,7 @@ icon_living = "stickman" icon_dead = "stickman_dead" icon_gib = "syndicate_gib" + mob_biotypes = list(MOB_INORGANIC, MOB_HUMANOID) gender = MALE speak_chance = 0 turns_per_move = 5 @@ -49,6 +50,7 @@ icon_state = "stickdog" icon_living = "stickdog" icon_dead = "stickdog_dead" + mob_biotypes = list(MOB_INORGANIC, MOB_BEAST) /mob/living/simple_animal/hostile/stickman/Initialize(mapload, var/wizard_summoned) . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm index d6e061ffb1..edf601515a 100644 --- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm @@ -22,6 +22,7 @@ icon_living = "syndicate" icon_dead = "syndicate_dead" icon_gib = "syndicate_gib" + mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) speak_chance = 0 turns_per_move = 5 response_help = "pokes" @@ -162,6 +163,7 @@ icon_living = "viscerator_attack" pass_flags = PASSTABLE | PASSMOB a_intent = INTENT_HARM + mob_biotypes = list(MOB_ROBOTIC) health = 25 maxHealth = 25 melee_damage_lower = 15 diff --git a/code/modules/mob/living/simple_animal/hostile/wizard.dm b/code/modules/mob/living/simple_animal/hostile/wizard.dm index 9d745b7b3a..921bd5959b 100644 --- a/code/modules/mob/living/simple_animal/hostile/wizard.dm +++ b/code/modules/mob/living/simple_animal/hostile/wizard.dm @@ -5,6 +5,7 @@ icon_state = "wizard" icon_living = "wizard" icon_dead = "wizard_dead" + mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) speak_chance = 0 turns_per_move = 3 response_help = "pokes" diff --git a/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm b/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm index 1fcd1c11f8..4c9c916085 100644 --- a/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm +++ b/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm @@ -8,6 +8,7 @@ icon_aggro = "Fugu0" icon_dead = "Fugu_dead" icon_gib = "syndicate_gib" + mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) mouse_opacity = MOUSE_OPACITY_OPAQUE move_to_delay = 5 friendly = "floats near" @@ -32,7 +33,7 @@ var/wumbo = 0 var/inflate_cooldown = 0 var/datum/action/innate/fugu/expand/E - loot = list(/obj/item/asteroid/fugu_gland{layer = ABOVE_MOB_LAYER}) + loot = list(/obj/item/fugu_gland{layer = ABOVE_MOB_LAYER}) /mob/living/simple_animal/hostile/asteroid/fugu/Initialize() . = ..() @@ -115,7 +116,7 @@ Deflate() ..(gibbed) -/obj/item/asteroid/fugu_gland +/obj/item/fugu_gland name = "wumborian fugu gland" desc = "The key to the wumborian fugu's ability to increase its mass arbitrarily, this disgusting remnant can apply the same effect to other creatures, giving them great strength." icon = 'icons/obj/surgery.dmi' @@ -125,7 +126,7 @@ layer = MOB_LAYER var/list/banned_mobs -/obj/item/asteroid/fugu_gland/afterattack(atom/target, mob/user, proximity_flag) +/obj/item/fugu_gland/afterattack(atom/target, mob/user, proximity_flag) if(proximity_flag && isanimal(target)) var/mob/living/simple_animal/A = target if(A.buffed || (A.type in banned_mobs) || A.stat) diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index f968dc7839..2affa548c5 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -15,15 +15,15 @@ //Only a maximum of one action and one intent should be active at any given time. //Actions -#define PARROT_PERCH 1 //Sitting/sleeping, not moving -#define PARROT_SWOOP 2 //Moving towards or away from a target -#define PARROT_WANDER 4 //Moving without a specific target in mind +#define PARROT_PERCH (1<<0) //Sitting/sleeping, not moving +#define PARROT_SWOOP (1<<1) //Moving towards or away from a target +#define PARROT_WANDER (1<<2) //Moving without a specific target in mind //Intents -#define PARROT_STEAL 8 //Flying towards a target to steal it/from it -#define PARROT_ATTACK 16 //Flying towards a target to attack it -#define PARROT_RETURN 32 //Flying towards its perch -#define PARROT_FLEE 64 //Flying away from its attacker +#define PARROT_STEAL (1<<3) //Flying towards a target to steal it/from it +#define PARROT_ATTACK (1<<4) //Flying towards a target to attack it +#define PARROT_RETURN (1<<5) //Flying towards its perch +#define PARROT_FLEE (1<<6) //Flying away from its attacker /mob/living/simple_animal/parrot @@ -77,7 +77,7 @@ var/list/available_channels = list() //Headset for Poly to yell at engineers :) - var/obj/item/device/radio/headset/ears = null + var/obj/item/radio/headset/ears = null //The thing the parrot is currently interested in. This gets used for items the parrot wants to pick up, mobs it wants to steal from, //mobs it wants to attack or mobs that have attacked it @@ -101,11 +101,11 @@ /mob/living/simple_animal/parrot/Initialize() . = ..() if(!ears) - var/headset = pick(/obj/item/device/radio/headset/headset_sec, \ - /obj/item/device/radio/headset/headset_eng, \ - /obj/item/device/radio/headset/headset_med, \ - /obj/item/device/radio/headset/headset_sci, \ - /obj/item/device/radio/headset/headset_cargo) + var/headset = pick(/obj/item/radio/headset/headset_sec, \ + /obj/item/radio/headset/headset_eng, \ + /obj/item/radio/headset/headset_med, \ + /obj/item/radio/headset/headset_sci, \ + /obj/item/radio/headset/headset_cargo) ears = new headset(src) parrot_sleep_dur = parrot_sleep_max //In case someone decides to change the max without changing the duration var @@ -236,11 +236,11 @@ if(!item_to_add) return - if( !istype(item_to_add, /obj/item/device/radio/headset) ) + if( !istype(item_to_add, /obj/item/radio/headset) ) to_chat(usr, "This object won't fit!") return - var/obj/item/device/radio/headset/headset_to_add = item_to_add + var/obj/item/radio/headset/headset_to_add = item_to_add if(!usr.transferItemToLoc(headset_to_add, src)) return @@ -889,7 +889,7 @@ var/longest_deathstreak = 0 /mob/living/simple_animal/parrot/Poly/Initialize() - ears = new /obj/item/device/radio/headset/headset_eng(src) + ears = new /obj/item/radio/headset/headset_eng(src) available_channels = list(":e") Read_Memory() if(rounds_survived == longest_survival) diff --git a/code/modules/mob/living/simple_animal/shade.dm b/code/modules/mob/living/simple_animal/shade.dm index edca0c5535..c52015af09 100644 --- a/code/modules/mob/living/simple_animal/shade.dm +++ b/code/modules/mob/living/simple_animal/shade.dm @@ -6,6 +6,7 @@ icon = 'icons/mob/mob.dmi' icon_state = "shade" icon_living = "shade" + mob_biotypes = list(MOB_SPIRIT) maxHealth = 40 health = 40 spacewalk = TRUE @@ -36,7 +37,7 @@ ..() /mob/living/simple_animal/shade/canSuicide() - if(istype(loc, /obj/item/device/soulstone)) //do not suicide inside the soulstone + if(istype(loc, /obj/item/soulstone)) //do not suicide inside the soulstone return 0 return ..() @@ -56,8 +57,8 @@ return ..() /mob/living/simple_animal/shade/attackby(obj/item/O, mob/user, params) //Marker -Agouri - if(istype(O, /obj/item/device/soulstone)) - var/obj/item/device/soulstone/SS = O + if(istype(O, /obj/item/soulstone)) + var/obj/item/soulstone/SS = O SS.transfer_soul("SHADE", src, user) else . = ..() diff --git a/code/modules/mob/living/simple_animal/slime/death.dm b/code/modules/mob/living/simple_animal/slime/death.dm index 63a45f710e..52c9210263 100644 --- a/code/modules/mob/living/simple_animal/slime/death.dm +++ b/code/modules/mob/living/simple_animal/slime/death.dm @@ -32,12 +32,5 @@ return ..(gibbed) /mob/living/simple_animal/slime/gib() - death(1) + death(TRUE) qdel(src) - - -/mob/living/simple_animal/slime/Destroy() - for(var/obj/machinery/computer/camera_advanced/xenobio/X in GLOB.machines) - if(src in X.stored_slimes) - X.stored_slimes -= src - return ..() diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index 5087825305..3e5363ac37 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -356,7 +356,7 @@ var/hasFound = FALSE //Have we found an extract to be added? for(var/obj/item/slime_extract/S in P.contents) if(S.effectmod == effectmod) - P.remove_from_storage(S, get_turf(src)) + P.SendSignal(COMSIG_TRY_STORAGE_TAKE, S, get_turf(src), TRUE) qdel(S) applied++ hasFound = TRUE diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 205eeb4b28..c0d194c62b 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -506,22 +506,9 @@ return show_inv(usr) -/mob/proc/is_active() - return (0 >= usr.stat) - /mob/proc/is_muzzled() return 0 -/mob/proc/see(message) - if(!is_active()) - return 0 - to_chat(src, message) - return 1 - -/mob/proc/show_viewers(message) - for(var/mob/M in viewers()) - M.see(message) - /mob/Stat() ..() @@ -838,8 +825,8 @@ break search_id = 0 - else if( search_pda && istype(A, /obj/item/device/pda) ) - var/obj/item/device/pda/PDA = A + else if( search_pda && istype(A, /obj/item/pda) ) + var/obj/item/pda/PDA = A if(PDA.owner == oldname) PDA.owner = newname PDA.update_label() diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index cb5769ab8d..ba04baf14a 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -60,7 +60,7 @@ var/list/held_items = list() //len = number of hands, eg: 2 nulls is 2 empty hands, 1 item and 1 null is 1 full hand and 1 empty hand. //held_items[active_hand_index] is the actively held item, but please use get_active_held_item() instead, because OOP - var/obj/item/storage/s_active = null//Carbon + var/datum/component/storage/active_storage = null//Carbon var/datum/hud/hud_used = null diff --git a/code/modules/mob/status_procs.dm b/code/modules/mob/status_procs.dm index cdb79c43c6..080307ee9d 100644 --- a/code/modules/mob/status_procs.dm +++ b/code/modules/mob/status_procs.dm @@ -59,7 +59,10 @@ /////////////////////////////////// SLEEPING //////////////////////////////////// -/mob/living/proc/IsSleeping() //If we're asleep +/mob/proc/IsSleeping() //non-living mobs shouldn't be sleeping either + return FALSE + +/mob/living/IsSleeping() //If we're asleep return has_status_effect(STATUS_EFFECT_SLEEPING) /mob/living/proc/AmountSleeping() //How many deciseconds remain in our sleep @@ -243,8 +246,3 @@ /mob/proc/adjust_bodytemperature(amount,min_temp=0,max_temp=INFINITY) if(bodytemperature > min_temp && bodytemperature < max_temp) bodytemperature = CLAMP(bodytemperature + amount,min_temp,max_temp) - - - - - diff --git a/code/modules/modular_computers/computers/item/computer.dm b/code/modules/modular_computers/computers/item/computer.dm index e6c96e9f62..bc5c711e60 100644 --- a/code/modules/modular_computers/computers/item/computer.dm +++ b/code/modules/modular_computers/computers/item/computer.dm @@ -1,7 +1,7 @@ // This is the base type that does all the hardware stuff. // Other types expand it - tablets use a direct subtypes, and // consoles and laptops use "procssor" item that is held inside machinery piece -/obj/item/device/modular_computer +/obj/item/modular_computer name = "modular microcomputer" desc = "A small portable microcomputer." @@ -47,7 +47,7 @@ var/comp_light_color //The color of that light -/obj/item/device/modular_computer/Initialize() +/obj/item/modular_computer/Initialize() . = ..() START_PROCESSING(SSobj, src) if(!physical) @@ -56,7 +56,7 @@ idle_threads = list() update_icon() -/obj/item/device/modular_computer/Destroy() +/obj/item/modular_computer/Destroy() kill_program(forced = TRUE) STOP_PROCESSING(SSobj, src) for(var/H in all_components) @@ -70,26 +70,26 @@ return ..() -/obj/item/device/modular_computer/proc/add_verb(var/path) +/obj/item/modular_computer/proc/add_verb(var/path) switch(path) if(MC_CARD) - verbs += /obj/item/device/modular_computer/proc/eject_id + verbs += /obj/item/modular_computer/proc/eject_id if(MC_SDD) - verbs += /obj/item/device/modular_computer/proc/eject_disk + verbs += /obj/item/modular_computer/proc/eject_disk if(MC_AI) - verbs += /obj/item/device/modular_computer/proc/eject_card + verbs += /obj/item/modular_computer/proc/eject_card -/obj/item/device/modular_computer/proc/remove_verb(path) +/obj/item/modular_computer/proc/remove_verb(path) switch(path) if(MC_CARD) - verbs -= /obj/item/device/modular_computer/proc/eject_id + verbs -= /obj/item/modular_computer/proc/eject_id if(MC_SDD) - verbs -= /obj/item/device/modular_computer/proc/eject_disk + verbs -= /obj/item/modular_computer/proc/eject_disk if(MC_AI) - verbs -= /obj/item/device/modular_computer/proc/eject_card + verbs -= /obj/item/modular_computer/proc/eject_card // Eject ID card from computer, if it has ID slot with card inside. -/obj/item/device/modular_computer/proc/eject_id() +/obj/item/modular_computer/proc/eject_id() set name = "Eject ID" set category = "Object" set src in view(1) @@ -101,7 +101,7 @@ card_slot.try_eject(null, usr) // Eject ID card from computer, if it has ID slot with card inside. -/obj/item/device/modular_computer/proc/eject_card() +/obj/item/modular_computer/proc/eject_card() set name = "Eject Intellicard" set category = "Object" @@ -113,7 +113,7 @@ // Eject ID card from computer, if it has ID slot with card inside. -/obj/item/device/modular_computer/proc/eject_disk() +/obj/item/modular_computer/proc/eject_disk() set name = "Eject Data Disk" set category = "Object" @@ -125,7 +125,7 @@ if(uninstall_component(portable_drive, usr)) portable_drive.verb_pickup() -/obj/item/device/modular_computer/AltClick(mob/user) +/obj/item/modular_computer/AltClick(mob/user) ..() if(issilicon(user)) return @@ -145,28 +145,28 @@ // Gets IDs/access levels from card slot. Would be useful when/if PDAs would become modular PCs. -/obj/item/device/modular_computer/GetAccess() +/obj/item/modular_computer/GetAccess() var/obj/item/computer_hardware/card_slot/card_slot = all_components[MC_CARD] if(card_slot) return card_slot.GetAccess() return ..() -/obj/item/device/modular_computer/GetID() +/obj/item/modular_computer/GetID() var/obj/item/computer_hardware/card_slot/card_slot = all_components[MC_CARD] if(card_slot) return card_slot.GetID() return ..() -/obj/item/device/modular_computer/MouseDrop(obj/over_object, src_location, over_location) +/obj/item/modular_computer/MouseDrop(obj/over_object, src_location, over_location) var/mob/M = usr if((!istype(over_object, /obj/screen)) && usr.canUseTopic(src)) return attack_self(M) return ..() -/obj/item/device/modular_computer/attack_ai(mob/user) +/obj/item/modular_computer/attack_ai(mob/user) return attack_self(user) -/obj/item/device/modular_computer/attack_ghost(mob/dead/observer/user) +/obj/item/modular_computer/attack_ghost(mob/dead/observer/user) . = ..() if(.) return @@ -177,7 +177,7 @@ if(response == "Yes") turn_on(user) -/obj/item/device/modular_computer/emag_act(mob/user) +/obj/item/modular_computer/emag_act(mob/user) if(obj_flags & EMAGGED) to_chat(user, "\The [src] was already emagged.") return 0 @@ -186,14 +186,14 @@ to_chat(user, "You emag \the [src]. It's screen briefly shows a \"OVERRIDE ACCEPTED: New software downloads available.\" message.") return 1 -/obj/item/device/modular_computer/examine(mob/user) +/obj/item/modular_computer/examine(mob/user) ..() if(obj_integrity <= integrity_failure) to_chat(user, "It is heavily damaged!") else if(obj_integrity < max_integrity) to_chat(user, "It is damaged.") -/obj/item/device/modular_computer/update_icon() +/obj/item/modular_computer/update_icon() cut_overlays() if(!enabled) icon_state = icon_state_unpowered @@ -210,13 +210,13 @@ // On-click handling. Turns on the computer if it's off and opens the GUI. -/obj/item/device/modular_computer/interact(mob/user) +/obj/item/modular_computer/interact(mob/user) if(enabled) ui_interact(user) else turn_on(user) -/obj/item/device/modular_computer/proc/turn_on(mob/user) +/obj/item/modular_computer/proc/turn_on(mob/user) var/issynth = issilicon(user) // Robots and AIs get different activation messages. if(obj_integrity <= integrity_failure) if(issynth) @@ -245,7 +245,7 @@ to_chat(user, "You press the power button but \the [src] does not respond.") // Process currently calls handle_power(), may be expanded in future if more things are added. -/obj/item/device/modular_computer/process() +/obj/item/modular_computer/process() if(!enabled) // The computer is turned off last_power_usage = 0 return 0 @@ -281,7 +281,7 @@ //check_update_ui_need() // Function used by NanoUI's to obtain data for header. All relevant entries begin with "PC_" -/obj/item/device/modular_computer/proc/get_header_data() +/obj/item/modular_computer/proc/get_header_data() var/list/data = list() var/obj/item/computer_hardware/battery/battery_module = all_components[MC_CELL] @@ -339,7 +339,7 @@ return data // Relays kill program request to currently active program. Use this to quit current program. -/obj/item/device/modular_computer/proc/kill_program(forced = FALSE) +/obj/item/modular_computer/proc/kill_program(forced = FALSE) if(active_program) active_program.kill_program(forced) active_program = null @@ -349,20 +349,20 @@ update_icon() // Returns 0 for No Signal, 1 for Low Signal and 2 for Good Signal. 3 is for wired connection (always-on) -/obj/item/device/modular_computer/proc/get_ntnet_status(specific_action = 0) +/obj/item/modular_computer/proc/get_ntnet_status(specific_action = 0) var/obj/item/computer_hardware/network_card/network_card = all_components[MC_NET] if(network_card) return network_card.get_signal(specific_action) else return 0 -/obj/item/device/modular_computer/proc/add_log(text) +/obj/item/modular_computer/proc/add_log(text) if(!get_ntnet_status()) return FALSE var/obj/item/computer_hardware/network_card/network_card = all_components[MC_NET] return SSnetworks.station_network.add_log(text, network_card) -/obj/item/device/modular_computer/proc/shutdown_computer(loud = 1) +/obj/item/modular_computer/proc/shutdown_computer(loud = 1) kill_program(forced = TRUE) for(var/datum/computer_file/program/P in idle_threads) P.kill_program(forced = TRUE) @@ -373,7 +373,7 @@ update_icon() -/obj/item/device/modular_computer/attackby(obj/item/W as obj, mob/user as mob) +/obj/item/modular_computer/attackby(obj/item/W as obj, mob/user as mob) // Insert items into the components for(var/h in all_components) var/obj/item/computer_hardware/H = all_components[h] @@ -437,11 +437,11 @@ ..() // Used by processor to relay qdel() to machinery type. -/obj/item/device/modular_computer/proc/relay_qdel() +/obj/item/modular_computer/proc/relay_qdel() return // Perform adjacency checks on our physical counterpart, if any. -/obj/item/device/modular_computer/Adjacent(atom/neighbor) +/obj/item/modular_computer/Adjacent(atom/neighbor) if(physical && physical != src) return physical.Adjacent(neighbor) return ..() diff --git a/code/modules/modular_computers/computers/item/computer_components.dm b/code/modules/modular_computers/computers/item/computer_components.dm index ecbd1b3ab4..3c94a66384 100644 --- a/code/modules/modular_computers/computers/item/computer_components.dm +++ b/code/modules/modular_computers/computers/item/computer_components.dm @@ -1,4 +1,4 @@ -/obj/item/device/modular_computer/proc/can_install_component(obj/item/computer_hardware/H, mob/living/user = null) +/obj/item/modular_computer/proc/can_install_component(obj/item/computer_hardware/H, mob/living/user = null) if(!H.can_install(src, user)) return FALSE @@ -13,7 +13,7 @@ // Installs component. -/obj/item/device/modular_computer/proc/install_component(obj/item/computer_hardware/H, mob/living/user = null) +/obj/item/modular_computer/proc/install_component(obj/item/computer_hardware/H, mob/living/user = null) if(!can_install_component(H, user)) return FALSE @@ -29,7 +29,7 @@ // Uninstalls component. -/obj/item/device/modular_computer/proc/uninstall_component(obj/item/computer_hardware/H, mob/living/user = null) +/obj/item/modular_computer/proc/uninstall_component(obj/item/computer_hardware/H, mob/living/user = null) if(H.holder != src) // Not our component at all. return FALSE @@ -46,7 +46,7 @@ // Checks all hardware pieces to determine if name matches, if yes, returns the hardware piece, otherwise returns null -/obj/item/device/modular_computer/proc/find_hardware_by_name(name) +/obj/item/modular_computer/proc/find_hardware_by_name(name) for(var/i in all_components) var/obj/O = all_components[i] if(O.name == name) diff --git a/code/modules/modular_computers/computers/item/computer_damage.dm b/code/modules/modular_computers/computers/item/computer_damage.dm index afacd18b21..001cf3aa65 100644 --- a/code/modules/modular_computers/computers/item/computer_damage.dm +++ b/code/modules/modular_computers/computers/item/computer_damage.dm @@ -1,4 +1,4 @@ -/obj/item/device/modular_computer/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1) +/obj/item/modular_computer/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1) . = ..() var/component_probability = min(50, max(damage_amount*0.1, 1 - obj_integrity/max_integrity)) switch(damage_flag) @@ -13,10 +13,10 @@ H.take_damage(round(damage_amount*0.5), damage_type, damage_flag, 0) -/obj/item/device/modular_computer/deconstruct(disassembled = TRUE) +/obj/item/modular_computer/deconstruct(disassembled = TRUE) break_apart() -/obj/item/device/modular_computer/proc/break_apart() +/obj/item/modular_computer/proc/break_apart() if(!(flags_1 & NODECONSTRUCT_1)) physical.visible_message("\The [src] breaks apart!") var/turf/newloc = get_turf(src) diff --git a/code/modules/modular_computers/computers/item/computer_power.dm b/code/modules/modular_computers/computers/item/computer_power.dm index 5b533a6f3b..d3c65f86ec 100644 --- a/code/modules/modular_computers/computers/item/computer_power.dm +++ b/code/modules/modular_computers/computers/item/computer_power.dm @@ -1,5 +1,5 @@ // Tries to draw power from charger or, if no operational charger is present, from power cell. -/obj/item/device/modular_computer/proc/use_power(amount = 0) +/obj/item/modular_computer/proc/use_power(amount = 0) if(check_power_override()) return TRUE @@ -20,19 +20,19 @@ return FALSE return FALSE -/obj/item/device/modular_computer/proc/give_power(amount) +/obj/item/modular_computer/proc/give_power(amount) var/obj/item/computer_hardware/battery/battery_module = all_components[MC_CELL] if(battery_module && battery_module.battery) return battery_module.battery.give(amount) return 0 -/obj/item/device/modular_computer/get_cell() +/obj/item/modular_computer/get_cell() var/obj/item/computer_hardware/battery/battery_module = all_components[MC_CELL] if(battery_module && battery_module.battery) return battery_module.battery // Used in following function to reduce copypaste -/obj/item/device/modular_computer/proc/power_failure() +/obj/item/modular_computer/proc/power_failure() if(enabled) // Shut down the computer if(active_program) active_program.event_powerfailure(0) @@ -42,7 +42,7 @@ shutdown_computer(0) // Handles power-related things, such as battery interaction, recharging, shutdown when it's discharged -/obj/item/device/modular_computer/proc/handle_power() +/obj/item/modular_computer/proc/handle_power() var/obj/item/computer_hardware/recharger/recharger = all_components[MC_CHARGE] if(recharger) recharger.process() @@ -61,5 +61,5 @@ return FALSE // Used by child types if they have other power source than battery or recharger -/obj/item/device/modular_computer/proc/check_power_override() +/obj/item/modular_computer/proc/check_power_override() return FALSE diff --git a/code/modules/modular_computers/computers/item/computer_ui.dm b/code/modules/modular_computers/computers/item/computer_ui.dm index fd4e01798c..df3000d0fc 100644 --- a/code/modules/modular_computers/computers/item/computer_ui.dm +++ b/code/modules/modular_computers/computers/item/computer_ui.dm @@ -1,9 +1,9 @@ -/obj/item/device/modular_computer/attack_self(mob/user) +/obj/item/modular_computer/attack_self(mob/user) . = ..() ui_interact(user) // Operates TGUI -/obj/item/device/modular_computer/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) +/obj/item/modular_computer/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) if(!enabled) if(ui) ui.close() @@ -43,7 +43,7 @@ ui.set_autoupdate(state = 1) -/obj/item/device/modular_computer/ui_data(mob/user) +/obj/item/modular_computer/ui_data(mob/user) var/list/data = get_header_data() data["programs"] = list() var/obj/item/computer_hardware/hard_drive/hard_drive = all_components[MC_HDD] @@ -61,7 +61,7 @@ // Handles user's GUI input -/obj/item/device/modular_computer/ui_act(action, params) +/obj/item/modular_computer/ui_act(action, params) if(..()) return var/obj/item/computer_hardware/hard_drive/hard_drive = all_components[MC_HDD] @@ -159,7 +159,7 @@ else return -/obj/item/device/modular_computer/ui_host() +/obj/item/modular_computer/ui_host() if(physical) return physical return src diff --git a/code/modules/modular_computers/computers/item/laptop.dm b/code/modules/modular_computers/computers/item/laptop.dm index f0970f3ce0..66b6ba26b8 100644 --- a/code/modules/modular_computers/computers/item/laptop.dm +++ b/code/modules/modular_computers/computers/item/laptop.dm @@ -1,4 +1,4 @@ -/obj/item/device/modular_computer/laptop +/obj/item/modular_computer/laptop name = "laptop" desc = "A portable laptop computer." @@ -21,38 +21,38 @@ var/w_class_open = WEIGHT_CLASS_BULKY var/slowdown_open = TRUE -/obj/item/device/modular_computer/laptop/examine(mob/user) +/obj/item/modular_computer/laptop/examine(mob/user) ..() if(screen_on) to_chat(user, "Alt-click to close it.") -/obj/item/device/modular_computer/laptop/Initialize() +/obj/item/modular_computer/laptop/Initialize() . = ..() if(start_open && !screen_on) toggle_open() -/obj/item/device/modular_computer/laptop/update_icon() +/obj/item/modular_computer/laptop/update_icon() if(screen_on) ..() else cut_overlays() icon_state = icon_state_closed -/obj/item/device/modular_computer/laptop/attack_self(mob/user) +/obj/item/modular_computer/laptop/attack_self(mob/user) if(!screen_on) try_toggle_open(user) else return ..() -/obj/item/device/modular_computer/laptop/verb/open_computer() +/obj/item/modular_computer/laptop/verb/open_computer() set name = "Toggle Open" set category = "Object" set src in view(1) try_toggle_open(usr) -/obj/item/device/modular_computer/laptop/MouseDrop(obj/over_object, src_location, over_location) +/obj/item/modular_computer/laptop/MouseDrop(obj/over_object, src_location, over_location) . = ..() if(over_object == usr || over_object == src) try_toggle_open(usr) @@ -65,14 +65,14 @@ return M.put_in_hand(src, H.held_index) -/obj/item/device/modular_computer/laptop/attack_hand(mob/user) +/obj/item/modular_computer/laptop/attack_hand(mob/user) . = ..() if(.) return if(screen_on && isturf(loc)) return attack_self(user) -/obj/item/device/modular_computer/laptop/proc/try_toggle_open(mob/living/user) +/obj/item/modular_computer/laptop/proc/try_toggle_open(mob/living/user) if(issilicon(user)) return if(!isturf(loc) && !ismob(loc)) // No opening it in backpack. @@ -83,13 +83,13 @@ toggle_open(user) -/obj/item/device/modular_computer/laptop/AltClick(mob/user) +/obj/item/modular_computer/laptop/AltClick(mob/user) if(screen_on) // Close it. try_toggle_open(user) else return ..() -/obj/item/device/modular_computer/laptop/proc/toggle_open(mob/living/user=null) +/obj/item/modular_computer/laptop/proc/toggle_open(mob/living/user=null) if(screen_on) to_chat(user, "You close \the [src].") slowdown = initial(slowdown) @@ -105,5 +105,5 @@ // Laptop frame, starts empty and closed. -/obj/item/device/modular_computer/laptop/buildable +/obj/item/modular_computer/laptop/buildable start_open = FALSE diff --git a/code/modules/modular_computers/computers/item/laptop_presets.dm b/code/modules/modular_computers/computers/item/laptop_presets.dm index a1f5f7e37f..102397037b 100644 --- a/code/modules/modular_computers/computers/item/laptop_presets.dm +++ b/code/modules/modular_computers/computers/item/laptop_presets.dm @@ -1,4 +1,4 @@ -/obj/item/device/modular_computer/laptop/preset/Initialize() +/obj/item/modular_computer/laptop/preset/Initialize() . = ..() install_component(new /obj/item/computer_hardware/processor_unit/small) install_component(new /obj/item/computer_hardware/battery(src, /obj/item/stock_parts/cell/computer)) @@ -7,17 +7,17 @@ install_programs() -/obj/item/device/modular_computer/laptop/preset/proc/install_programs() +/obj/item/modular_computer/laptop/preset/proc/install_programs() return -/obj/item/device/modular_computer/laptop/preset/civillian +/obj/item/modular_computer/laptop/preset/civillian desc = "A low-end laptop often used for personal recreation." -/obj/item/device/modular_computer/laptop/preset/civillian/install_programs() +/obj/item/modular_computer/laptop/preset/civillian/install_programs() var/obj/item/computer_hardware/hard_drive/hard_drive = all_components[MC_HDD] hard_drive.store_file(new/datum/computer_file/program/chatclient()) hard_drive.store_file(new/datum/computer_file/program/nttransfer()) \ No newline at end of file diff --git a/code/modules/modular_computers/computers/item/processor.dm b/code/modules/modular_computers/computers/item/processor.dm index cc711f531f..20ad2214cf 100644 --- a/code/modules/modular_computers/computers/item/processor.dm +++ b/code/modules/modular_computers/computers/item/processor.dm @@ -1,5 +1,5 @@ // Held by /obj/machinery/modular_computer to reduce amount of copy-pasted code. -/obj/item/device/modular_computer/processor +/obj/item/modular_computer/processor name = "processing unit" desc = "You shouldn't see this. If you do, report it." icon = null @@ -10,17 +10,17 @@ var/obj/machinery/modular_computer/machinery_computer = null -/obj/item/device/modular_computer/processor/Destroy() +/obj/item/modular_computer/processor/Destroy() . = ..() if(machinery_computer && (machinery_computer.cpu == src)) machinery_computer.cpu = null machinery_computer = null -/obj/item/device/modular_computer/processor/New(comp) +/obj/item/modular_computer/processor/New(comp) STOP_PROCESSING(SSobj, src) // Processed by its machine if(!comp || !istype(comp, /obj/machinery/modular_computer)) - CRASH("Inapropriate type passed to obj/item/device/modular_computer/processor/New()! Aborting.") + CRASH("Inapropriate type passed to obj/item/modular_computer/processor/New()! Aborting.") return // Obtain reference to machinery computer all_components = list() @@ -36,28 +36,28 @@ base_active_power_usage = machinery_computer.base_active_power_usage base_idle_power_usage = machinery_computer.base_idle_power_usage -/obj/item/device/modular_computer/processor/relay_qdel() +/obj/item/modular_computer/processor/relay_qdel() qdel(machinery_computer) -/obj/item/device/modular_computer/processor/update_icon() +/obj/item/modular_computer/processor/update_icon() if(machinery_computer) return machinery_computer.update_icon() // This thing is not meant to be used on it's own, get topic data from our machinery owner. -//obj/item/device/modular_computer/processor/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE) +//obj/item/modular_computer/processor/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE) // if(!machinery_computer) // return 0 // return machinery_computer.canUseTopic(user, state) -/obj/item/device/modular_computer/processor/shutdown_computer() +/obj/item/modular_computer/processor/shutdown_computer() if(!machinery_computer) return ..() machinery_computer.update_icon() return -/obj/item/device/modular_computer/processor/add_verb(path) +/obj/item/modular_computer/processor/add_verb(path) switch(path) if(MC_CARD) machinery_computer.verbs += /obj/machinery/modular_computer/proc/eject_id @@ -66,7 +66,7 @@ if(MC_AI) machinery_computer.verbs += /obj/machinery/modular_computer/proc/eject_card -/obj/item/device/modular_computer/processor/remove_verb(path) +/obj/item/modular_computer/processor/remove_verb(path) switch(path) if(MC_CARD) machinery_computer.verbs -= /obj/machinery/modular_computer/proc/eject_id diff --git a/code/modules/modular_computers/computers/item/tablet.dm b/code/modules/modular_computers/computers/item/tablet.dm index e4cecbcb64..ffc3933bd7 100644 --- a/code/modules/modular_computers/computers/item/tablet.dm +++ b/code/modules/modular_computers/computers/item/tablet.dm @@ -1,4 +1,4 @@ -/obj/item/device/modular_computer/tablet //Its called tablet for theme of 90ies but actually its a "big smartphone" sized +/obj/item/modular_computer/tablet //Its called tablet for theme of 90ies but actually its a "big smartphone" sized name = "tablet computer" icon = 'icons/obj/modular_tablet.dmi' icon_state = "tablet" @@ -14,7 +14,7 @@ comp_light_luminosity = 2.3 //Same as the PDA var/finish_color = null -/obj/item/device/modular_computer/tablet/update_icon() +/obj/item/modular_computer/tablet/update_icon() ..() if(!finish_color) finish_color = pick("red","blue","brown","green","black") diff --git a/code/modules/modular_computers/computers/item/tablet_presets.dm b/code/modules/modular_computers/computers/item/tablet_presets.dm index 21080e593f..c793ae22f6 100644 --- a/code/modules/modular_computers/computers/item/tablet_presets.dm +++ b/code/modules/modular_computers/computers/item/tablet_presets.dm @@ -1,9 +1,9 @@ // This is literally the worst possible cheap tablet -/obj/item/device/modular_computer/tablet/preset/cheap +/obj/item/modular_computer/tablet/preset/cheap desc = "A low-end tablet often seen among low ranked station personnel." -/obj/item/device/modular_computer/tablet/preset/cheap/Initialize() +/obj/item/modular_computer/tablet/preset/cheap/Initialize() . = ..() install_component(new /obj/item/computer_hardware/processor_unit/small) install_component(new /obj/item/computer_hardware/battery(src, /obj/item/stock_parts/cell/computer/micro)) @@ -11,7 +11,7 @@ install_component(new /obj/item/computer_hardware/network_card) // Alternative version, an average one, for higher ranked positions mostly -/obj/item/device/modular_computer/tablet/preset/advanced/Initialize() +/obj/item/modular_computer/tablet/preset/advanced/Initialize() . = ..() install_component(new /obj/item/computer_hardware/processor_unit/small) install_component(new /obj/item/computer_hardware/battery(src, /obj/item/stock_parts/cell/computer)) @@ -20,7 +20,7 @@ install_component(new /obj/item/computer_hardware/card_slot) install_component(new /obj/item/computer_hardware/printer/mini) -/obj/item/device/modular_computer/tablet/preset/cargo/Initialize() +/obj/item/modular_computer/tablet/preset/cargo/Initialize() . = ..() install_component(new /obj/item/computer_hardware/processor_unit/small) install_component(new /obj/item/computer_hardware/battery(src, /obj/item/stock_parts/cell/computer)) diff --git a/code/modules/modular_computers/computers/machinery/console_presets.dm b/code/modules/modular_computers/computers/machinery/console_presets.dm index 25fa05ef1e..a726c7f6d1 100644 --- a/code/modules/modular_computers/computers/machinery/console_presets.dm +++ b/code/modules/modular_computers/computers/machinery/console_presets.dm @@ -30,6 +30,7 @@ // ===== ENGINEERING CONSOLE ===== /obj/machinery/modular_computer/console/preset/engineering console_department = "Engineering" + name = "engineering console" desc = "A stationary computer. This one comes preloaded with engineering programs." /obj/machinery/modular_computer/console/preset/engineering/install_programs() @@ -41,6 +42,7 @@ // ===== RESEARCH CONSOLE ===== /obj/machinery/modular_computer/console/preset/research console_department = "Research" + name = "research director's console" desc = "A stationary computer. This one comes preloaded with research programs." _has_ai = 1 @@ -59,6 +61,7 @@ // ===== COMMAND CONSOLE ===== /obj/machinery/modular_computer/console/preset/command console_department = "Command" + name = "command console" desc = "A stationary computer. This one comes preloaded with command programs." _has_id_slot = 1 _has_printer = 1 @@ -75,6 +78,7 @@ // ===== CIVILIAN CONSOLE ===== /obj/machinery/modular_computer/console/preset/civilian console_department = "Civilian" + name = "civilian console" desc = "A stationary computer. This one comes preloaded with generic programs." /obj/machinery/modular_computer/console/preset/civilian/install_programs() diff --git a/code/modules/modular_computers/computers/machinery/modular_computer.dm b/code/modules/modular_computers/computers/machinery/modular_computer.dm index 74ee7b68ea..4091f8b6ae 100644 --- a/code/modules/modular_computers/computers/machinery/modular_computer.dm +++ b/code/modules/modular_computers/computers/machinery/modular_computer.dm @@ -25,7 +25,7 @@ var/base_active_power_usage = 100 // Power usage when the computer is open (screen is active) and can be interacted with. Remember hardware can use power too. var/base_idle_power_usage = 10 // Power usage when the computer is idle and screen is off (currently only applies to laptops) - var/obj/item/device/modular_computer/processor/cpu = null // CPU that handles most logic while this type only handles power and other specific things. + var/obj/item/modular_computer/processor/cpu = null // CPU that handles most logic while this type only handles power and other specific things. /obj/machinery/modular_computer/Initialize() . = ..() diff --git a/code/modules/modular_computers/documentation.dm b/code/modules/modular_computers/documentation.dm deleted file mode 100644 index 94e02f8125..0000000000 --- a/code/modules/modular_computers/documentation.dm +++ /dev/null @@ -1,40 +0,0 @@ -/* - -Ok. so a quick rundown on how to make a program. This is kind of a shitty documentation, but oh well I was asked to. - - -This is how the base program is setup. the rest is mostly tgui stuff. I'll use the ntnetmonitor as a base - -/datum/computer_file/program/ntnetmonitor - filename = "ntmonitor" <- This is obviously the name of the file itself. not much to be said - filedesc = "NTNet Diagnostics and Monitoring" <- This sort of the official name. it's what shows up on the main menu - program_icon_state = "comm_monitor" <- This is what the screen will look like when the program is active - extended_desc = "This program is a dummy. <- This is a sort of description, visible when looking on the ntnet - size = 12 <- size of the program. Big programs need more hard drive space. Don't make it too big though. - requires_ntnet = 1 <- if this is set, the program will not run and will close if ntnet connection is lost. mainly for primarily online programs. - required_access = access_network <- This is access required to run the program itself. ONLY SET THIS FOR SUPER SECURE SHIT. This also acts as transfer_access as well. - transfer_access = access_change_ids <- this is the access needed to download from ntnet or host on the ptp program. This is what you want to use most of the time. - available_on_ntnet = 1 <- If it's available to download on ntnet. pretty self explanatory. - available_on_syndinet = 0 <- ditto but on emagged syndie net. Use this for antag programs - usage_flags = PROGRAM_ALL // Bitflags (PROGRAM_CONSOLE, PROGRAM_LAPTOP, PROGRAM_TABLET combination) or PROGRAM_ALL - ^^- The comment above sorta explains it. Use this to limit what kind of machines can run the program. For example, comms program should be limited to consoles and laptops. - var/ui_header = "downloader_finished.gif" <- this one is kinda cool. If you have the program minimized, this will show up in the header of the computer screen. - you can even have the program change what the header is based on the situation! see alarm.dm for an example. - - -Now. for pre-installing stuff. - -Primarily done for consoles, there's an install_programs() proc in the console presets file in the machines folder. - -for example, the command console one. - -/obj/machinery/modular_computer/console/preset/command/install_programs() - cpu.hard_drive.store_file(new/datum/computer_file/program/chatclient()) - cpu.hard_drive.store_file(new/datum/computer_file/program/card_mod()) - -Basically, you want to do cpu.hard_drive.store_file(new/*program path here*()) and put it in the subtype's install_programs(). -Probably pretty self explanatory, but just in case. - -Will probably be expanded when new features come around or I get asked to mention something. - -*/ \ No newline at end of file diff --git a/code/modules/modular_computers/file_system/program.dm b/code/modules/modular_computers/file_system/program.dm index 75fdc3ea37..75f0f465ba 100644 --- a/code/modules/modular_computers/file_system/program.dm +++ b/code/modules/modular_computers/file_system/program.dm @@ -5,7 +5,7 @@ var/required_access = null // List of required accesses to *run* the program. var/transfer_access = null // List of required access to download or file host the program var/program_state = PROGRAM_STATE_KILLED// PROGRAM_STATE_KILLED or PROGRAM_STATE_BACKGROUND or PROGRAM_STATE_ACTIVE - specifies whether this program is running. - var/obj/item/device/modular_computer/computer // Device that runs this program. + var/obj/item/modular_computer/computer // Device that runs this program. var/filedesc = "Unknown Program" // User-friendly name of this program. var/extended_desc = "N/A" // Short description of this program's function. var/program_icon_state = null // Program-specific screen icon state @@ -22,7 +22,7 @@ var/ui_y = 700 var/ui_header = null // Example: "something.gif" - a header image that will be rendered in computer's UI when this program is running at background. Images are taken from /icons/program_icons. Be careful not to use too large images! -/datum/computer_file/program/New(obj/item/device/modular_computer/comp = null) +/datum/computer_file/program/New(obj/item/modular_computer/comp = null) ..() if(comp && istype(comp)) computer = comp diff --git a/code/modules/modular_computers/file_system/programs/airestorer.dm b/code/modules/modular_computers/file_system/programs/airestorer.dm index 041819d7d9..1aa292f247 100644 --- a/code/modules/modular_computers/file_system/programs/airestorer.dm +++ b/code/modules/modular_computers/file_system/programs/airestorer.dm @@ -56,7 +56,7 @@ ..() if(!restoring) //Put the check here so we don't check for an ai all the time return - var/obj/item/device/aicard/cardhold = get_ai(2) + var/obj/item/aicard/cardhold = get_ai(2) var/obj/item/computer_hardware/ai_slot/ai_slot = get_ai(1) @@ -94,7 +94,7 @@ // A shortcut for getting the AI stored inside the computer. The program already does necessary checks. AI = get_ai() - var/obj/item/device/aicard/aicard = get_ai(2) + var/obj/item/aicard/aicard = get_ai(2) if(!aicard) data["nocard"] = TRUE @@ -103,7 +103,7 @@ if(!AI) data["error"] = "No AI located" else - var/obj/item/device/aicard/cardhold = AI.loc + var/obj/item/aicard/cardhold = AI.loc if(cardhold.flush) data["error"] = "Flush in progress" else diff --git a/code/modules/modular_computers/file_system/programs/configurator.dm b/code/modules/modular_computers/file_system/programs/configurator.dm index fa2486bd6f..8ceb1a4dec 100644 --- a/code/modules/modular_computers/file_system/programs/configurator.dm +++ b/code/modules/modular_computers/file_system/programs/configurator.dm @@ -14,7 +14,7 @@ requires_ntnet = 0 tgui_id = "ntos_configuration" - var/obj/item/device/modular_computer/movable = null + var/obj/item/modular_computer/movable = null /datum/computer_file/program/computerconfig/ui_data(mob/user) diff --git a/code/modules/modular_computers/file_system/programs/ntdownloader.dm b/code/modules/modular_computers/file_system/programs/ntdownloader.dm index b2fe7a0f64..92e1453dc6 100644 --- a/code/modules/modular_computers/file_system/programs/ntdownloader.dm +++ b/code/modules/modular_computers/file_system/programs/ntdownloader.dm @@ -17,7 +17,7 @@ var/download_completion = 0 //GQ of downloaded data. var/download_netspeed = 0 var/downloaderror = "" - var/obj/item/device/modular_computer/my_computer = null + var/obj/item/modular_computer/my_computer = null /datum/computer_file/program/ntnetdownload/proc/begin_file_download(filename) if(downloaded_file) diff --git a/code/modules/modular_computers/file_system/programs/sm_monitor.dm b/code/modules/modular_computers/file_system/programs/sm_monitor.dm index c2cbd5afec..138e8bb9dd 100644 --- a/code/modules/modular_computers/file_system/programs/sm_monitor.dm +++ b/code/modules/modular_computers/file_system/programs/sm_monitor.dm @@ -13,7 +13,7 @@ ui_y = 400 var/last_status = SUPERMATTER_INACTIVE var/list/supermatters - var/obj/machinery/power/supermatter_shard/active // Currently selected supermatter crystal. + var/obj/machinery/power/supermatter_crystal/active // Currently selected supermatter crystal. /datum/computer_file/program/supermatter_monitor/process_tick() @@ -41,7 +41,7 @@ var/turf/T = get_turf(ui_host()) if(!T) return - for(var/obj/machinery/power/supermatter_shard/S in GLOB.machines) + for(var/obj/machinery/power/supermatter_crystal/S in GLOB.machines) // Delaminating, not within coverage, not on a tile. if (!isturf(S.loc) || !(is_station_level(S.z) || is_mining_level(S.z) || S.z == T.z)) continue @@ -52,7 +52,7 @@ /datum/computer_file/program/supermatter_monitor/proc/get_status() . = SUPERMATTER_INACTIVE - for(var/obj/machinery/power/supermatter_shard/S in supermatters) + for(var/obj/machinery/power/supermatter_crystal/S in supermatters) . = max(., S.get_status()) /datum/computer_file/program/supermatter_monitor/ui_data() @@ -93,7 +93,7 @@ data["gases"] = gasdata else var/list/SMS = list() - for(var/obj/machinery/power/supermatter_shard/S in supermatters) + for(var/obj/machinery/power/supermatter_crystal/S in supermatters) var/area/A = get_area(S) if(A) SMS.Add(list(list( @@ -120,7 +120,7 @@ return TRUE if("PRG_set") var/newuid = text2num(params["target"]) - for(var/obj/machinery/power/supermatter_shard/S in supermatters) + for(var/obj/machinery/power/supermatter_crystal/S in supermatters) if(S.uid == newuid) active = S return TRUE \ No newline at end of file diff --git a/code/modules/modular_computers/hardware/CPU.dm b/code/modules/modular_computers/hardware/CPU.dm index 38b7b5dec4..d08d65ff8b 100644 --- a/code/modules/modular_computers/hardware/CPU.dm +++ b/code/modules/modular_computers/hardware/CPU.dm @@ -12,7 +12,7 @@ var/max_idle_programs = 2 // 2 idle, + 1 active = 3 as said in description. device_type = MC_CPU -/obj/item/computer_hardware/processor_unit/on_remove(obj/item/device/modular_computer/MC, mob/user) +/obj/item/computer_hardware/processor_unit/on_remove(obj/item/modular_computer/MC, mob/user) MC.shutdown_computer() /obj/item/computer_hardware/processor_unit/small diff --git a/code/modules/modular_computers/hardware/_hardware.dm b/code/modules/modular_computers/hardware/_hardware.dm index 38043e5b2f..56efec379a 100644 --- a/code/modules/modular_computers/hardware/_hardware.dm +++ b/code/modules/modular_computers/hardware/_hardware.dm @@ -6,7 +6,7 @@ w_class = WEIGHT_CLASS_TINY // w_class limits which devices can contain this component. // 1: PDAs/Tablets, 2: Laptops, 3-4: Consoles only - var/obj/item/device/modular_computer/holder = null + var/obj/item/modular_computer/holder = null // Computer that holds this hardware, if any. var/power_usage = 0 // If the hardware uses extra power, change this. @@ -33,7 +33,7 @@ /obj/item/computer_hardware/attackby(obj/item/I, mob/living/user) // Multitool. Runs diagnostics - if(istype(I, /obj/item/device/multitool)) + if(istype(I, /obj/item/multitool)) to_chat(user, "***** DIAGNOSTICS REPORT *****") diagnostics(user) to_chat(user, "******************************") @@ -83,15 +83,15 @@ to_chat(user, "It seems to be slightly damaged.") // Component-side compatibility check. -/obj/item/computer_hardware/proc/can_install(obj/item/device/modular_computer/M, mob/living/user = null) +/obj/item/computer_hardware/proc/can_install(obj/item/modular_computer/M, mob/living/user = null) return can_install // Called when component is installed into PC. -/obj/item/computer_hardware/proc/on_install(obj/item/device/modular_computer/M, mob/living/user = null) +/obj/item/computer_hardware/proc/on_install(obj/item/modular_computer/M, mob/living/user = null) return // Called when component is removed from PC. -/obj/item/computer_hardware/proc/on_remove(obj/item/device/modular_computer/M, mob/living/user = null) +/obj/item/computer_hardware/proc/on_remove(obj/item/modular_computer/M, mob/living/user = null) try_eject(forced = 1) // Called when someone tries to insert something in it - paper in printer, card in card reader, etc. diff --git a/code/modules/modular_computers/hardware/ai_slot.dm b/code/modules/modular_computers/hardware/ai_slot.dm index 4dace2b4cf..5dee122544 100644 --- a/code/modules/modular_computers/hardware/ai_slot.dm +++ b/code/modules/modular_computers/hardware/ai_slot.dm @@ -6,7 +6,7 @@ w_class = WEIGHT_CLASS_SMALL device_type = MC_AI - var/obj/item/device/aicard/stored_card = null + var/obj/item/aicard/stored_card = null var/locked = FALSE @@ -15,17 +15,17 @@ if(stored_card) to_chat(user, "There appears to be an intelliCard loaded. There appears to be a pinhole protecting a manual eject button. A screwdriver could probably press it.") -/obj/item/computer_hardware/ai_slot/on_install(obj/item/device/modular_computer/M, mob/living/user = null) +/obj/item/computer_hardware/ai_slot/on_install(obj/item/modular_computer/M, mob/living/user = null) M.add_verb(device_type) -/obj/item/computer_hardware/ai_slot/on_remove(obj/item/device/modular_computer/M, mob/living/user = null) +/obj/item/computer_hardware/ai_slot/on_remove(obj/item/modular_computer/M, mob/living/user = null) M.remove_verb(device_type) /obj/item/computer_hardware/ai_slot/try_insert(obj/item/I, mob/living/user = null) if(!holder) return FALSE - if(!istype(I, /obj/item/device/aicard)) + if(!istype(I, /obj/item/aicard)) return FALSE if(stored_card) diff --git a/code/modules/modular_computers/hardware/card_slot.dm b/code/modules/modular_computers/hardware/card_slot.dm index 3d071c47aa..3952ac1aec 100644 --- a/code/modules/modular_computers/hardware/card_slot.dm +++ b/code/modules/modular_computers/hardware/card_slot.dm @@ -29,10 +29,10 @@ return stored_card2 return ..() -/obj/item/computer_hardware/card_slot/on_install(obj/item/device/modular_computer/M, mob/living/user = null) +/obj/item/computer_hardware/card_slot/on_install(obj/item/modular_computer/M, mob/living/user = null) M.add_verb(device_type) -/obj/item/computer_hardware/card_slot/on_remove(obj/item/device/modular_computer/M, mob/living/user = null) +/obj/item/computer_hardware/card_slot/on_remove(obj/item/modular_computer/M, mob/living/user = null) M.remove_verb(device_type) /obj/item/computer_hardware/card_slot/try_insert(obj/item/I, mob/living/user = null) diff --git a/code/modules/modular_computers/hardware/hard_drive.dm b/code/modules/modular_computers/hardware/hard_drive.dm index 54e26d2e63..1e3c517351 100644 --- a/code/modules/modular_computers/hardware/hard_drive.dm +++ b/code/modules/modular_computers/hardware/hard_drive.dm @@ -10,7 +10,7 @@ var/used_capacity = 0 var/list/stored_files = list() // List of stored files on this drive. DO NOT MODIFY DIRECTLY! -/obj/item/computer_hardware/hard_drive/on_remove(obj/item/device/modular_computer/MC, mob/user) +/obj/item/computer_hardware/hard_drive/on_remove(obj/item/modular_computer/MC, mob/user) MC.shutdown_computer() /obj/item/computer_hardware/hard_drive/proc/install_default_programs() diff --git a/code/modules/modular_computers/hardware/portable_disk.dm b/code/modules/modular_computers/hardware/portable_disk.dm index d5aa404f58..b5a957be04 100644 --- a/code/modules/modular_computers/hardware/portable_disk.dm +++ b/code/modules/modular_computers/hardware/portable_disk.dm @@ -8,10 +8,10 @@ max_capacity = 16 device_type = MC_SDD -/obj/item/computer_hardware/hard_drive/portable/on_install(obj/item/device/modular_computer/M, mob/living/user = null) +/obj/item/computer_hardware/hard_drive/portable/on_install(obj/item/modular_computer/M, mob/living/user = null) M.add_verb(device_type) -/obj/item/computer_hardware/hard_drive/portable/on_remove(obj/item/device/modular_computer/M, mob/living/user = null) +/obj/item/computer_hardware/hard_drive/portable/on_remove(obj/item/modular_computer/M, mob/living/user = null) ..() M.remove_verb(device_type) diff --git a/code/modules/modular_computers/hardware/recharger.dm b/code/modules/modular_computers/hardware/recharger.dm index f1c7578aa7..13ae6c1f39 100644 --- a/code/modules/modular_computers/hardware/recharger.dm +++ b/code/modules/modular_computers/hardware/recharger.dm @@ -52,7 +52,7 @@ icon_state = "charger_wire" w_class = WEIGHT_CLASS_NORMAL -/obj/item/computer_hardware/recharger/wired/can_install(obj/item/device/modular_computer/M, mob/living/user = null) +/obj/item/computer_hardware/recharger/wired/can_install(obj/item/modular_computer/M, mob/living/user = null) if(ismachinery(M.physical) && M.physical.anchored) return ..() to_chat(user, "\The [src] is incompatible with portable computers!") diff --git a/code/modules/modular_computers/laptop_vendor.dm b/code/modules/modular_computers/laptop_vendor.dm index 55c88fbfcb..ef0538a1ee 100644 --- a/code/modules/modular_computers/laptop_vendor.dm +++ b/code/modules/modular_computers/laptop_vendor.dm @@ -10,8 +10,8 @@ density = TRUE // The actual laptop/tablet - var/obj/item/device/modular_computer/laptop/fabricated_laptop = null - var/obj/item/device/modular_computer/tablet/fabricated_tablet = null + var/obj/item/modular_computer/laptop/fabricated_laptop = null + var/obj/item/modular_computer/tablet/fabricated_tablet = null // Utility vars var/state = 0 // 0: Select device type, 1: Select loadout, 2: Payment, 3: Thankyou screen @@ -52,7 +52,7 @@ if(devtype == 1) // Laptop, generally cheaper to make it accessible for most station roles var/obj/item/computer_hardware/battery/battery_module = null if(fabricate) - fabricated_laptop = new /obj/item/device/modular_computer/laptop/buildable(src) + fabricated_laptop = new /obj/item/modular_computer/laptop/buildable(src) fabricated_laptop.install_component(new /obj/item/computer_hardware/battery) battery_module = fabricated_laptop.all_components[MC_CELL] total_price = 99 diff --git a/code/modules/ninja/outfit.dm b/code/modules/ninja/outfit.dm index 2fd732f0ce..1ab58d57eb 100644 --- a/code/modules/ninja/outfit.dm +++ b/code/modules/ninja/outfit.dm @@ -5,7 +5,7 @@ glasses = /obj/item/clothing/glasses/night mask = /obj/item/clothing/mask/gas/space_ninja head = /obj/item/clothing/head/helmet/space/space_ninja - ears = /obj/item/device/radio/headset + ears = /obj/item/radio/headset shoes = /obj/item/clothing/shoes/space_ninja gloves = /obj/item/clothing/gloves/space_ninja back = /obj/item/tank/jetpack/carbondioxide diff --git a/code/modules/ninja/suit/n_suit_verbs/ninja_stealth.dm b/code/modules/ninja/suit/n_suit_verbs/ninja_stealth.dm index 8103fa2415..1c3fbd8147 100644 --- a/code/modules/ninja/suit/n_suit_verbs/ninja_stealth.dm +++ b/code/modules/ninja/suit/n_suit_verbs/ninja_stealth.dm @@ -11,13 +11,13 @@ Contents: var/mob/living/carbon/human/U = affecting if(!U) return - if(s_active) + if(stealth) cancel_stealth() else if(cell.charge <= 0) to_chat(U, "You don't have enough power to enable Stealth!") return - s_active=!s_active + stealth = !stealth animate(U, alpha = 50,time = 15) U.visible_message("[U.name] vanishes into thin air!", \ "You are now mostly invisible to normal detection.") @@ -27,8 +27,8 @@ Contents: var/mob/living/carbon/human/U = affecting if(!U) return 0 - if(s_active) - s_active=!s_active + if(stealth) + stealth = !stealth animate(U, alpha = 255, time = 15) U.visible_message("[U.name] appears from thin air!", \ "You are now visible.") diff --git a/code/modules/ninja/suit/n_suit_verbs/ninja_teleporting.dm b/code/modules/ninja/suit/n_suit_verbs/ninja_teleporting.dm deleted file mode 100644 index 74dcec12ce..0000000000 --- a/code/modules/ninja/suit/n_suit_verbs/ninja_teleporting.dm +++ /dev/null @@ -1,71 +0,0 @@ - - -/* - -Contents: -- Proc for handling teleporting while grabbing someone -- Telport Ability -- Right-Click Teleport Ability - -*/ - - -//Handles elporting while grabbing someone -/obj/item/clothing/suit/space/space_ninja/proc/handle_teleport_grab(turf/T, mob/living/H) - if(H.pulling && (isliving(H.pulling))) - var/mob/living/victim = H.pulling - if(!victim.anchored) - victim.forceMove(locate(T.x+rand(-1,1),T.y+rand(-1,1),T.z)) - - -//Jaunt -/obj/item/clothing/suit/space/space_ninja/proc/ninjajaunt() - if(!ninjacost(100,N_STEALTH_CANCEL)) - var/mob/living/carbon/human/H = affecting - var/turf/destination = get_teleport_loc(H.loc,H,9,1,3,1,0,1) - var/turf/mobloc = get_turf(H.loc)//Safety - - if(destination && isturf(mobloc))//So we don't teleport out of containers - playsound(H.loc, "sparks", 50, 1) - new /obj/effect/temp_visual/dir_setting/ninja/phase/out(get_turf(H), H.dir) - - handle_teleport_grab(destination, H) - H.loc = destination - - spark_system.start() - playsound(H.loc, 'sound/effects/phasein.ogg', 25, 1) - playsound(H.loc, "sparks", 50, 1) - new /obj/effect/temp_visual/dir_setting/ninja/phase(get_turf(H), H.dir) - - destination.phase_damage_creatures(20,H)//Paralyse and damage mobs and mechas on the turf - s_coold = 1 - else - to_chat(H, "The VOID-shift device is malfunctioning, teleportation failed.") - - -//Right-Click teleport: It's basically admin "jump to turf" -/obj/item/clothing/suit/space/space_ninja/proc/ninjashift(turf/T in oview()) - set name = "Phase Shift (20E)" - set desc = "Utilizes the internal VOID-shift device to rapidly transit to a destination in view." - set category = null//So it does not show up on the panel but can still be right-clicked. - set src = usr.contents//Fixes verbs not attaching properly for objects. Praise the DM reference guide! - - if(!ninjacost(200,N_STEALTH_CANCEL)) - var/mob/living/carbon/human/H = affecting - var/turf/mobloc = get_turf(H.loc)//To make sure that certain things work properly below. - if(!T.density && isturf(mobloc)) - playsound(H.loc, "sparks", 50, 1) - new /obj/effect/temp_visual/dir_setting/ninja/phase/out(get_turf(H), H.dir) - - handle_teleport_grab(T, H) - H.forceMove(T) - - spark_system.start() - playsound(H.loc, 'sound/effects/phasein.ogg', 25, 1) - playsound(H.loc, "sparks", 50, 1) - new /obj/effect/temp_visual/dir_setting/ninja/phase(get_turf(H), H.dir) - - T.phase_damage_creatures(20,H)//Paralyse and damage mobs and mechas on the turf - s_coold = 1 - else - to_chat(H, "You cannot teleport into solid walls or from solid matter") diff --git a/code/modules/ninja/suit/suit.dm b/code/modules/ninja/suit/suit.dm index 8b0b4cd256..5886e1723d 100644 --- a/code/modules/ninja/suit/suit.dm +++ b/code/modules/ninja/suit/suit.dm @@ -48,7 +48,7 @@ Contents: var/s_maxamount = 20//Maximum number of smoke bombs. //Support function variables. - var/s_active = 0//Stealth off. + var/stealth = FALSE//Stealth off. var/s_busy = FALSE//Is the suit busy with a process? Like AI hacking. Used for safety functions. //Ability function variables. @@ -152,7 +152,7 @@ Contents: if(s_initialized) if(user == affecting) to_chat(user, "All systems operational. Current energy capacity: [DisplayEnergy(cell.charge)].") - to_chat(user, "The CLOAK-tech device is [s_active?"active":"inactive"].") + to_chat(user, "The CLOAK-tech device is [stealth?"active":"inactive"].") to_chat(user, "There are [s_bombs] smoke bomb\s remaining.") to_chat(user, "There are [a_boost] adrenaline booster\s remaining.") diff --git a/code/modules/ninja/suit/suit_process.dm b/code/modules/ninja/suit/suit_process.dm index c9e955b359..4a89a59f75 100644 --- a/code/modules/ninja/suit/suit_process.dm +++ b/code/modules/ninja/suit/suit_process.dm @@ -10,7 +10,7 @@ s_coold--//Checks for ability s_cooldown first. cell.charge -= s_cost//s_cost is the default energy cost each ntick, usually 5. - if(s_active)//If stealth is active. + if(stealth)//If stealth is active. cell.charge -= s_acost else diff --git a/code/modules/ninja/suit/suit_verbs_handlers.dm b/code/modules/ninja/suit/suit_verbs_handlers.dm deleted file mode 100644 index 35070a52dd..0000000000 --- a/code/modules/ninja/suit/suit_verbs_handlers.dm +++ /dev/null @@ -1,26 +0,0 @@ -/* - -Contents: -- Procs that add ninja verbs to ninjas -- Procs that remove ninja verbs from ninjas -- Procs that add ninjasuit verbs to ninjas -- Procs that remove ninjasuit verbs from ninjas - -*/ - -/obj/item/clothing/suit/space/space_ninja/proc/grant_equip_verbs() - n_gloves.verbs += /obj/item/clothing/gloves/space_ninja/proc/toggledrain - - s_initialized = 1 - - -/obj/item/clothing/suit/space/space_ninja/proc/remove_equip_verbs() - if(n_gloves) - n_gloves.verbs -= /obj/item/clothing/gloves/space_ninja/proc/toggledrain - - s_initialized = 0 - - -/obj/item/clothing/suit/space/space_ninja/proc/grant_ninja_verbs() - s_initialized=1 - slowdown=0 \ No newline at end of file diff --git a/code/modules/paperwork/contract.dm b/code/modules/paperwork/contract.dm index 563d5a83ad..4db4df10ce 100644 --- a/code/modules/paperwork/contract.dm +++ b/code/modules/paperwork/contract.dm @@ -299,8 +299,8 @@ id.assignment = "Captain" id.update_label() if(worn) - if(istype(worn, /obj/item/device/pda)) - var/obj/item/device/pda/PDA = worn + if(istype(worn, /obj/item/pda)) + var/obj/item/pda/PDA = worn PDA.id = id id.forceMove(worn) else if(istype(worn, /obj/item/storage/wallet)) diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 5c63c559e3..b7001b35b8 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -282,7 +282,7 @@ else to_chat(user, "There is already something in [src]!") - else if(istype(O, /obj/item/device/toner)) + else if(istype(O, /obj/item/toner)) if(toner <= 0) if(!user.temporarilyRemoveItemFromInventory(O)) return @@ -373,8 +373,9 @@ /* * Toner cartridge */ -/obj/item/device/toner +/obj/item/toner name = "toner cartridge" + icon = 'icons/obj/device.dmi' icon_state = "tonercartridge" grind_results = list("iodine" = 40, "iron" = 10) var/charges = 5 diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index 31bcc537e9..67e5ba007d 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -11,7 +11,7 @@ /* * Film */ -/obj/item/device/camera_film +/obj/item/camera_film name = "film cartridge" icon = 'icons/obj/items_and_weapons.dmi' desc = "A camera film cartridge. Insert it into a camera to reload it." @@ -110,13 +110,17 @@ item_state = "briefcase" lefthand_file = 'icons/mob/inhands/equipment/briefcase_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/briefcase_righthand.dmi' - can_hold = list(/obj/item/photo) resistance_flags = FLAMMABLE +/obj/item/storage/photo_album/Initialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.can_hold = typecacheof(list(/obj/item/photo)) + /* * Camera */ -/obj/item/device/camera +/obj/item/camera name = "camera" icon = 'icons/obj/items_and_weapons.dmi' desc = "A polaroid camera." @@ -137,9 +141,9 @@ var/obj/item/disk/holodisk/disk -/obj/item/device/camera/CheckParts(list/parts_list) +/obj/item/camera/CheckParts(list/parts_list) ..() - var/obj/item/device/camera/C = locate(/obj/item/device/camera) in contents + var/obj/item/camera/C = locate(/obj/item/camera) in contents if(C) pictures_max = C.pictures_max pictures_left = C.pictures_left @@ -147,29 +151,29 @@ qdel(C) -/obj/item/device/camera/spooky +/obj/item/camera/spooky name = "camera obscura" desc = "A polaroid camera, some say it can see ghosts!" see_ghosts = 1 -/obj/item/device/camera/detective +/obj/item/camera/detective name = "Detective's camera" desc = "A polaroid camera with extra capacity for crime investigations." pictures_max = 30 pictures_left = 30 -/obj/item/device/camera/siliconcam //camera AI can take pictures with +/obj/item/camera/siliconcam //camera AI can take pictures with name = "silicon photo camera" var/in_camera_mode = 0 -/obj/item/device/camera/siliconcam/ai_camera //camera AI can take pictures with +/obj/item/camera/siliconcam/ai_camera //camera AI can take pictures with name = "AI photo camera" -/obj/item/device/camera/siliconcam/robot_camera //camera cyborgs can take pictures with.. needs it's own because of verb CATEGORY >.> +/obj/item/camera/siliconcam/robot_camera //camera cyborgs can take pictures with.. needs it's own because of verb CATEGORY >.> name = "Cyborg photo camera" -/obj/item/device/camera/siliconcam/robot_camera/verb/borgprinting() +/obj/item/camera/siliconcam/robot_camera/verb/borgprinting() set category ="Robot Commands" set name = "Print Image" set src in usr @@ -178,12 +182,12 @@ return //won't work if dead borgprint() -/obj/item/device/camera/attack(mob/living/carbon/human/M, mob/user) +/obj/item/camera/attack(mob/living/carbon/human/M, mob/user) return -/obj/item/device/camera/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/device/camera_film)) +/obj/item/camera/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/camera_film)) if(pictures_left) to_chat(user, "[src] still has some film in it!") return @@ -205,19 +209,19 @@ return TRUE //no afterattack ..() -/obj/item/device/camera/attack_self(mob/user) +/obj/item/camera/attack_self(mob/user) if(!disk) return to_chat(user, "You eject [disk] out the back of [src].") user.put_in_hands(disk) disk = null -/obj/item/device/camera/examine(mob/user) +/obj/item/camera/examine(mob/user) ..() to_chat(user, "It has [pictures_left] photo\s left.") -/obj/item/device/camera/proc/camera_get_icon(list/turfs, turf/center) +/obj/item/camera/proc/camera_get_icon(list/turfs, turf/center) var/list/atoms = list() for(var/turf/T in turfs) atoms.Add(T) @@ -262,7 +266,7 @@ return res -/obj/item/device/camera/proc/camera_get_mobs(turf/the_turf) +/obj/item/camera/proc/camera_get_mobs(turf/the_turf) var/mob_detail for(var/mob/M in the_turf) if(M.invisibility) @@ -298,7 +302,7 @@ return mob_detail -/obj/item/device/camera/proc/captureimage(atom/target, mob/user, flag) //Proc for both regular and AI-based camera to take the image +/obj/item/camera/proc/captureimage(atom/target, mob/user, flag) //Proc for both regular and AI-based camera to take the image var/mobs = "" var/isAi = isAI(user) var/list/seen @@ -331,7 +335,7 @@ -/obj/item/device/camera/proc/printpicture(mob/user, icon/temp, mobs, flag) //Normal camera proc for creating photos +/obj/item/camera/proc/printpicture(mob/user, icon/temp, mobs, flag) //Normal camera proc for creating photos var/obj/item/photo/P = new/obj/item/photo(get_turf(src)) if(in_range(src, user)) //needed because of TK user.put_in_hands(P) @@ -350,7 +354,7 @@ blueprints = 0 -/obj/item/device/camera/proc/aipicture(mob/user, icon/temp, mobs, isAi) //instead of printing a picture like a regular camera would, we do this instead for the AI +/obj/item/camera/proc/aipicture(mob/user, icon/temp, mobs, isAi) //instead of printing a picture like a regular camera would, we do this instead for the AI var/icon/small_img = icon(temp) var/icon/ic = icon('icons/obj/items_and_weapons.dmi',"photo") @@ -379,7 +383,7 @@ var/list/fields = list() -/obj/item/device/camera/proc/injectaialbum(icon, img, desc, pixel_x, pixel_y, blueprintsinject) //stores image information to a list similar to that of the datacore +/obj/item/camera/proc/injectaialbum(icon, img, desc, pixel_x, pixel_y, blueprintsinject) //stores image information to a list similar to that of the datacore var/numberer = 1 for(var/datum/picture in src.aipictures) numberer++ @@ -395,7 +399,7 @@ aipictures += P to_chat(usr, "Image recorded") //feedback to the AI player that the picture was taken -/obj/item/device/camera/proc/injectmasteralbum(icon, img, desc, pixel_x, pixel_y, blueprintsinject) //stores image information to a list similar to that of the datacore +/obj/item/camera/proc/injectmasteralbum(icon, img, desc, pixel_x, pixel_y, blueprintsinject) //stores image information to a list similar to that of the datacore var/numberer = 1 var/mob/living/silicon/robot/C = src.loc if(C.connected_ai) @@ -415,7 +419,7 @@ else injectaialbum(icon, img, desc, pixel_x, pixel_y, blueprintsinject) -/obj/item/device/camera/siliconcam/proc/selectpicture(obj/item/device/camera/siliconcam/targetloc) +/obj/item/camera/siliconcam/proc/selectpicture(obj/item/camera/siliconcam/targetloc) var/list/nametemp = list() var/find if(targetloc.aipictures.len == 0) @@ -428,7 +432,7 @@ if(q.fields["name"] == find) return q -/obj/item/device/camera/siliconcam/proc/viewpichelper(obj/item/device/camera/siliconcam/targetloc) +/obj/item/camera/siliconcam/proc/viewpichelper(obj/item/camera/siliconcam/targetloc) var/obj/item/photo/P = new/obj/item/photo() var/datum/picture/selection = selectpicture(targetloc) if(selection) @@ -440,10 +444,10 @@ to_chat(usr, P.desc) qdel(P) //so 10 thousand picture items are not left in memory should an AI take them and then view them all -/obj/item/device/camera/siliconcam/proc/viewpictures(user) +/obj/item/camera/siliconcam/proc/viewpictures(user) if(iscyborg(user)) // Cyborg var/mob/living/silicon/robot/C = src.loc - var/obj/item/device/camera/siliconcam/Cinfo + var/obj/item/camera/siliconcam/Cinfo if(C.connected_ai) Cinfo = C.connected_ai.aicamera viewpichelper(Cinfo) @@ -454,7 +458,7 @@ var/Ainfo = src viewpichelper(Ainfo) -/obj/item/device/camera/afterattack(atom/target, mob/user, flag) +/obj/item/camera/afterattack(atom/target, mob/user, flag) if(!on || !pictures_left || !isturf(target.loc)) return if (disk) @@ -479,31 +483,31 @@ on = FALSE addtimer(CALLBACK(src, .proc/cooldown), 64) -/obj/item/device/camera/proc/cooldown() +/obj/item/camera/proc/cooldown() set waitfor = FALSE icon_state = "camera" on = TRUE -/obj/item/device/camera/siliconcam/proc/toggle_camera_mode() +/obj/item/camera/siliconcam/proc/toggle_camera_mode() if(in_camera_mode) camera_mode_off() else camera_mode_on() -/obj/item/device/camera/siliconcam/proc/camera_mode_off() +/obj/item/camera/siliconcam/proc/camera_mode_off() src.in_camera_mode = 0 to_chat(usr, "Camera Mode deactivated") -/obj/item/device/camera/siliconcam/proc/camera_mode_on() +/obj/item/camera/siliconcam/proc/camera_mode_on() src.in_camera_mode = 1 to_chat(usr, "Camera Mode activated") -/obj/item/device/camera/siliconcam/robot_camera/proc/borgprint() +/obj/item/camera/siliconcam/robot_camera/proc/borgprint() var/list/nametemp = list() var/find var/datum/picture/selection var/mob/living/silicon/robot/C = src.loc - var/obj/item/device/camera/siliconcam/targetcam = null + var/obj/item/camera/siliconcam/targetcam = null if(C.toner < 20) to_chat(usr, "Insufficent toner to print image.") return diff --git a/code/modules/power/antimatter/shielding.dm b/code/modules/power/antimatter/shielding.dm index 327b3a716a..bd6b61e306 100644 --- a/code/modules/power/antimatter/shielding.dm +++ b/code/modules/power/antimatter/shielding.dm @@ -40,7 +40,7 @@ /obj/machinery/am_shielding/proc/collapse() visible_message("[src] collapses back into a container!") - new /obj/item/device/am_shielding_container(drop_location()) + new /obj/item/am_shielding_container(drop_location()) qdel(src) /obj/machinery/am_shielding/proc/controllerscan(priorscan = 0) @@ -231,7 +231,7 @@ -/obj/item/device/am_shielding_container +/obj/item/am_shielding_container name = "packaged antimatter reactor section" desc = "A small storage unit containing an antimatter reactor section. To use place near an antimatter control unit or deployed antimatter reactor section and use a multitool to activate this package." icon = 'icons/obj/machines/antimatter.dmi' @@ -246,8 +246,8 @@ throw_range = 2 materials = list(MAT_METAL=100) -/obj/item/device/am_shielding_container/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/device/multitool) && istype(src.loc, /turf)) +/obj/item/am_shielding_container/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/multitool) && istype(src.loc, /turf)) new/obj/machinery/am_shielding(src.loc) qdel(src) else diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index f764a38d64..d17513ddf9 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -1,31 +1,38 @@ //update_state -#define UPSTATE_CELL_IN 1 -#define UPSTATE_OPENED1 2 -#define UPSTATE_OPENED2 4 -#define UPSTATE_MAINT 8 -#define UPSTATE_BROKE 16 -#define UPSTATE_BLUESCREEN 32 -#define UPSTATE_WIREEXP 64 -#define UPSTATE_ALLGOOD 128 +#define UPSTATE_CELL_IN (1<<0) +#define UPSTATE_OPENED1 (1<<1) +#define UPSTATE_OPENED2 (1<<2) +#define UPSTATE_MAINT (1<<3) +#define UPSTATE_BROKE (1<<4) +#define UPSTATE_BLUESCREEN (1<<5) +#define UPSTATE_WIREEXP (1<<6) +#define UPSTATE_ALLGOOD (1<<7) #define APC_RESET_EMP "emp" //update_overlay -#define APC_UPOVERLAY_CHARGEING0 1 -#define APC_UPOVERLAY_CHARGEING1 2 -#define APC_UPOVERLAY_CHARGEING2 4 -#define APC_UPOVERLAY_EQUIPMENT0 8 -#define APC_UPOVERLAY_EQUIPMENT1 16 -#define APC_UPOVERLAY_EQUIPMENT2 32 -#define APC_UPOVERLAY_LIGHTING0 64 -#define APC_UPOVERLAY_LIGHTING1 128 -#define APC_UPOVERLAY_LIGHTING2 256 -#define APC_UPOVERLAY_ENVIRON0 512 -#define APC_UPOVERLAY_ENVIRON1 1024 -#define APC_UPOVERLAY_ENVIRON2 2048 -#define APC_UPOVERLAY_LOCKED 4096 -#define APC_UPOVERLAY_OPERATING 8192 +#define APC_UPOVERLAY_CHARGEING0 (1<<0) +#define APC_UPOVERLAY_CHARGEING1 (1<<1) +#define APC_UPOVERLAY_CHARGEING2 (1<<2) +#define APC_UPOVERLAY_EQUIPMENT0 (1<<3) +#define APC_UPOVERLAY_EQUIPMENT1 (1<<4) +#define APC_UPOVERLAY_EQUIPMENT2 (1<<5) +#define APC_UPOVERLAY_LIGHTING0 (1<<6) +#define APC_UPOVERLAY_LIGHTING1 (1<<7) +#define APC_UPOVERLAY_LIGHTING2 (1<<8) +#define APC_UPOVERLAY_ENVIRON0 (1<<9) +#define APC_UPOVERLAY_ENVIRON1 (1<<10) +#define APC_UPOVERLAY_ENVIRON2 (1<<11) +#define APC_UPOVERLAY_LOCKED (1<<12) +#define APC_UPOVERLAY_OPERATING (1<<13) +#define APC_ELECTRONICS_MISSING 0 // None +#define APC_ELECTRONICS_INSTALLED 1 // Installed but not secured +#define APC_ELECTRONICS_SECURED 2 // Installed and secured + +#define APC_COVER_CLOSED 0 +#define APC_COVER_OPENED 1 +#define APC_COVER_REMOVED 2 // the Area Power Controller (APC), formerly Power Distribution Unit (PDU) // one per area, needs wire connection to power network through a terminal @@ -34,13 +41,9 @@ // may be opened to change power cell // three different channels (lighting/equipment/environ) - may each be set to on, off, or auto - -//NOTE: STUFF STOLEN FROM AIRLOCK.DM thx - - /obj/machinery/power/apc name = "area power controller" - desc = "A control terminal for the area electrical systems." + desc = "A control terminal for the area's electrical systems." icon_state = "apc0" anchored = TRUE @@ -57,7 +60,7 @@ var/obj/item/stock_parts/cell/cell var/start_charge = 90 // initial cell charge % var/cell_type = /obj/item/stock_parts/cell/upgraded //Base cell has 2500 capacity. Enter the path of a different cell you want to use. cell determines charge rates, max capacity, ect. These can also be changed with other APC vars, but isn't recommended to minimize the risk of accidental usage of dirty editted APCs - var/opened = 0 //0=closed, 1=opened, 2=cover removed + var/opened = APC_COVER_CLOSED var/shorted = 0 var/lighting = 3 var/equipment = 3 @@ -79,7 +82,7 @@ powernet = 0 // set so that APCs aren't found as powernet nodes //Hackish, Horrible, was like this before I changed it :( var/malfhack = 0 //New var for my changes to AI malf. --NeoFite var/mob/living/silicon/ai/malfai = null //See above --NeoFite - var/has_electronics = 0 // 0 - none, 1 - plugged in, 2 - secured by screwdriver + var/has_electronics = APC_ELECTRONICS_MISSING // 0 - none, 1 - plugged in, 2 - secured by screwdriver var/overload = 1 //used for the Blackout malf module var/beenhit = 0 // used for counting how many times it has been hit, used for Aliens at the moment var/mob/living/silicon/ai/occupier = null @@ -147,7 +150,7 @@ pixel_x = -25 if (building) area = get_area(src) - opened = 1 + opened = APC_COVER_OPENED operating = FALSE name = "[area.name] APC" stat |= MAINT @@ -190,7 +193,7 @@ . = ..() if(!mapload) return - has_electronics = 2 //installed and secured + has_electronics = APC_ELECTRONICS_SECURED // is starting with a power cell installed, create it and set its charge level if(cell_type) cell = new cell_type @@ -218,7 +221,7 @@ return if(opened) if(has_electronics && terminal) - to_chat(user, "The cover is [opened==2?"removed":"open"] and the power cell is [ cell ? "installed" : "missing"].") + to_chat(user, "The cover is [opened==APC_COVER_REMOVED?"removed":"open"] and the power cell is [ cell ? "installed" : "missing"].") else to_chat(user, "It's [ !terminal ? "not" : "" ] wired up.") to_chat(user, "The electronics are[!has_electronics?"n't":""] installed.") @@ -316,9 +319,9 @@ if(stat & MAINT) update_state |= UPSTATE_MAINT if(opened) - if(opened==1) + if(opened==APC_COVER_OPENED) update_state |= UPSTATE_OPENED1 - if(opened==2) + if(opened==APC_COVER_REMOVED) update_state |= UPSTATE_OPENED2 else if((obj_flags & EMAGGED) || malfai) update_state |= UPSTATE_BLUESCREEN @@ -378,75 +381,142 @@ //attack with an item - open/close cover, insert cell, or (un)lock interface +/obj/machinery/power/apc/crowbar_act(mob/user, obj/item/W) + . = TRUE + if (opened) + if(cell) + user.visible_message("[user] removes \the [cell] from [src]!","You remove \the [cell].") + var/turf/T = get_turf(user) + cell.forceMove(T) + cell.update_icon() + cell = null + charging = 0 + update_icon() + return + if (has_electronics == APC_ELECTRONICS_INSTALLED) + if (terminal) + to_chat(user, "Disconnect the wires first!") + return + W.play_tool_sound(src) + to_chat(user, "You attempt to remove the power control board..." ) + if(W.use_tool(src, user, 50)) + if (has_electronics == APC_ELECTRONICS_INSTALLED) + has_electronics = APC_ELECTRONICS_MISSING + if (stat & BROKEN) + user.visible_message(\ + "[user.name] has broken the power control board inside [src.name]!",\ + "You break the charred power control board and remove the remains.", + "You hear a crack.") + return + else if (obj_flags & EMAGGED) + obj_flags &= ~EMAGGED + user.visible_message(\ + "[user.name] has discarded an emagged power control board from [src.name]!",\ + "You discard the emagged power control board.") + return + else if (malfhack) + user.visible_message(\ + "[user.name] has discarded a strangely programmed power control board from [src.name]!",\ + "You discard the strangely programmed board.") + malfai = null + malfhack = 0 + return + else + user.visible_message(\ + "[user.name] has removed the power control board from [src.name]!",\ + "You remove the power control board.") + new /obj/item/electronics/apc(loc) + return + else if(integration_cog) + user.visible_message("[user] starts prying [integration_cog] from [src]...", \ + "You painstakingly start tearing [integration_cog] out of [src]'s guts...") + W.play_tool_sound(src) + if(W.use_tool(src, user, 100)) + user.visible_message("[user] destroys [integration_cog] in [src]!", \ + "[integration_cog] comes free with a clank and snaps in two as the machinery returns to normal!") + playsound(src, 'sound/items/deconstruct.ogg', 50, TRUE) + QDEL_NULL(integration_cog) + return + else if (opened!=APC_COVER_REMOVED) + opened = APC_COVER_CLOSED + coverlocked = TRUE //closing cover relocks it + update_icon() + return + else if (!(stat & BROKEN)) + if(coverlocked && !(stat & MAINT)) // locked... + to_chat(user, "The cover is locked and cannot be opened!") + return + else if (panel_open) + to_chat(user, "Exposed wires prevents you from opening it!") + return + else + opened = APC_COVER_OPENED + update_icon() + return + +/obj/machinery/power/apc/screwdriver_act(mob/living/user, obj/item/W) + . = TRUE + if(opened) + if (cell) + to_chat(user, "Close the APC first!") + return + else + switch (has_electronics) + if (APC_ELECTRONICS_INSTALLED) + has_electronics = APC_ELECTRONICS_SECURED + stat &= ~MAINT + W.play_tool_sound(src) + to_chat(user, "You screw the circuit electronics into place.") + if (APC_ELECTRONICS_SECURED) + has_electronics = APC_ELECTRONICS_INSTALLED + stat |= MAINT + W.play_tool_sound(src) + to_chat(user, "You unfasten the electronics.") + else + to_chat(user, "There is nothing to secure!") + return + update_icon() + else if(obj_flags & EMAGGED) + to_chat(user, "The interface is broken!") + return + else + panel_open = !panel_open + to_chat(user, "The wires have been [panel_open ? "exposed" : "unexposed"]") + update_icon() + +/obj/machinery/power/apc/wirecutter_act(mob/living/user, obj/item/W) + if (terminal && opened) + terminal.dismantle(user, W) + return TRUE + + +/obj/machinery/power/apc/welder_act(mob/living/user, obj/item/W) + if (opened && !has_electronics && !terminal) + if(!W.tool_start_check(user, amount=3)) + return + user.visible_message("[user.name] welds [src].", \ + "You start welding the APC frame...", \ + "You hear welding.") + if(W.use_tool(src, user, 50, volume=50, amount=3)) + if ((stat & BROKEN) || opened==APC_COVER_REMOVED) + new /obj/item/stack/sheet/metal(loc) + user.visible_message(\ + "[user.name] has cut [src] apart with [W].",\ + "You disassembled the broken APC frame.") + else + new /obj/item/wallframe/apc(loc) + user.visible_message(\ + "[user.name] has cut [src] from the wall with [W].",\ + "You cut the APC frame from the wall.") + qdel(src) + return TRUE + /obj/machinery/power/apc/attackby(obj/item/W, mob/living/user, params) if(issilicon(user) && get_dist(src,user)>1) return attack_hand(user) - if (istype(W, /obj/item/crowbar)) //Using crowbar - if (opened) // a) on open apc - if (has_electronics==1) - if (terminal) - to_chat(user, "Disconnect the wires first!") - return - W.play_tool_sound(src) - to_chat(user, "You are trying to remove the power control board..." ) - if(W.use_tool(src, user, 50)) - if (has_electronics==1) - has_electronics = 0 - if (stat & BROKEN) - user.visible_message(\ - "[user.name] has broken the power control board inside [src.name]!",\ - "You break the charred power control board and remove the remains.", - "You hear a crack.") - return - //SSticker.mode:apcs-- //XSI said no and I agreed. -rastaf0 - else if (obj_flags & EMAGGED) // We emag board, not APC's frame - obj_flags &= ~EMAGGED - user.visible_message(\ - "[user.name] has discarded emaged power control board from [src.name]!",\ - "You discarded shorten board.") - return - else if (malfhack) // AI hacks board, not APC's frame - user.visible_message(\ - "[user.name] has discarded strangely programmed power control board from [src.name]!",\ - "You discarded strangely programmed board.") - malfai = null - malfhack = 0 - return - else - user.visible_message(\ - "[user.name] has removed the power control board from [src.name]!",\ - "You remove the power control board.") - new /obj/item/electronics/apc(loc) - return - else if(integration_cog) - user.visible_message("[user] starts prying [integration_cog] from [src]...", \ - "You painstakingly start tearing [integration_cog] out of [src]'s guts...") - W.play_tool_sound(src) - if(W.use_tool(src, user, 100)) - user.visible_message("[user] destroys [integration_cog] in [src]!", \ - "[integration_cog] comes free with a clank and snaps in two as the machinery returns to normal!") - playsound(src, 'sound/items/deconstruct.ogg', 50, TRUE) - QDEL_NULL(integration_cog) - return - else if (opened!=2) //cover isn't removed - opened = 0 - coverlocked = TRUE //closing cover relocks it - update_icon() - return - else if (!(stat & BROKEN)) // b) on closed and not broken APC - if(coverlocked && !(stat & MAINT)) // locked... - to_chat(user, "The cover is locked and cannot be opened!") - return - else if (panel_open) // wires are exposed - to_chat(user, "Exposed wires prevents you from opening it!") - return - else - opened = 1 - update_icon() - return - else if (istype(W, /obj/item/stock_parts/cell) && opened) // trying to put a cell inside + if (istype(W, /obj/item/stock_parts/cell) && opened) if(cell) to_chat(user, "There is a power cell already installed!") return @@ -462,39 +532,8 @@ "You insert the power cell.") chargecount = 0 update_icon() - - else if (istype(W, /obj/item/screwdriver)) // haxing - if(opened) - if (cell) - to_chat(user, "Close the APC first!") //Less hints more mystery! - return - else - if (has_electronics==1) - has_electronics = 2 - stat &= ~MAINT - W.play_tool_sound(src) - to_chat(user, "You screw the circuit electronics into place.") - else if (has_electronics==2) - has_electronics = 1 - stat |= MAINT - W.play_tool_sound(src) - to_chat(user, "You unfasten the electronics.") - else /* has_electronics==0 */ - to_chat(user, "There is nothing to secure!") - return - update_icon() - else if(obj_flags & EMAGGED) - to_chat(user, "The interface is broken!") - else if((stat & MAINT) && !opened) - ..() //its an empty closed frame... theres no wires to expose! - else - panel_open = !panel_open - to_chat(user, "The wires have been [panel_open ? "exposed" : "unexposed"]") - update_icon() - - else if (W.GetID()) // trying to unlock the interface with an ID card + else if (W.GetID()) togglelock(user) - else if (istype(W, /obj/item/stack/cable_coil) && opened) var/turf/host_turf = get_turf(src) if(!host_turf) @@ -503,10 +542,10 @@ if (host_turf.intact) to_chat(user, "You must remove the floor plating in front of the APC first!") return - else if (terminal) // it already have terminal + else if (terminal) to_chat(user, "This APC is already wired!") return - else if (has_electronics == 0) + else if (!has_electronics) to_chat(user, "There is nothing to wire!") return @@ -520,7 +559,7 @@ if(do_after(user, 20, target = src)) if (C.get_amount() < 10 || !C) return - if (C.get_amount() >= 10 && !terminal && opened && has_electronics > 0) + if (C.get_amount() >= 10 && !terminal && opened && has_electronics) var/turf/T = get_turf(src) var/obj/structure/cable/N = T.get_cable_node() if (prob(50) && electrocute_mob(usr, N, N, 1, TRUE)) @@ -530,13 +569,9 @@ to_chat(user, "You add cables to the APC frame.") make_terminal() terminal.connect_to_network() - - else if (istype(W, /obj/item/wirecutters) && terminal && opened) - terminal.dismantle(user, W) - else if (istype(W, /obj/item/electronics/apc) && opened) - if (has_electronics!=0) // there are already electronicks inside - to_chat(user, "You cannot put the board inside, there already is one!") + if (has_electronics) + to_chat(user, "There is already a board inside the [src]!") return else if (stat & BROKEN) to_chat(user, "You cannot put the board inside, the frame is damaged!") @@ -546,14 +581,13 @@ "You start to insert the power control board into the frame...") playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1) if(do_after(user, 10, target = src)) - if(has_electronics==0) - has_electronics = 1 + if(!has_electronics) + has_electronics = APC_ELECTRONICS_INSTALLED locked = FALSE to_chat(user, "You place the power control board inside the frame.") qdel(W) - - else if(istype(W, /obj/item/device/electroadaptive_pseudocircuit) && opened) - var/obj/item/device/electroadaptive_pseudocircuit/P = W + else if(istype(W, /obj/item/electroadaptive_pseudocircuit) && opened) + var/obj/item/electroadaptive_pseudocircuit/P = W if(!has_electronics) if(stat & BROKEN) to_chat(user, "[src]'s frame is too damaged to support a circuit.") @@ -562,7 +596,7 @@ return user.visible_message("[user] fabricates a circuit and places it into [src].", \ "You adapt a power control board and click it into place in [src]'s guts.") - has_electronics = TRUE + has_electronics = APC_ELECTRONICS_INSTALLED locked = FALSE else if(!cell) if(stat & MAINT) @@ -580,38 +614,17 @@ else to_chat(user, "[src] has both electronics and a cell.") return - - else if (istype(W, /obj/item/weldingtool) && opened && has_electronics==0 && !terminal) - if(!W.tool_start_check(user, amount=3)) - return - user.visible_message("[user.name] welds [src].", \ - "You start welding the APC frame...", \ - "You hear welding.") - if(W.use_tool(src, user, 50, volume=50, amount=3)) - if ((stat & BROKEN) || opened==2) - new /obj/item/stack/sheet/metal(loc) - user.visible_message(\ - "[user.name] has cut [src] apart with [W].",\ - "You disassembled the broken APC frame.") - else - new /obj/item/wallframe/apc(loc) - user.visible_message(\ - "[user.name] has cut [src] from the wall with [W].",\ - "You cut the APC frame from the wall.") - qdel(src) - return - else if (istype(W, /obj/item/wallframe/apc) && opened) - if (!(stat & BROKEN || opened==2 || obj_integrity < max_integrity)) // There is nothing to repair + if (!(stat & BROKEN || opened==APC_COVER_REMOVED || obj_integrity < max_integrity)) // There is nothing to repair to_chat(user, "You found no reason for repairing this APC") return - if (!(stat & BROKEN) && opened==2) // Cover is the only thing broken, we do not need to remove elctronicks to replace cover + if (!(stat & BROKEN) && opened==APC_COVER_REMOVED) // Cover is the only thing broken, we do not need to remove elctronicks to replace cover user.visible_message("[user.name] replaces missing APC's cover.",\ "You begin to replace APC's cover...") if(do_after(user, 20, target = src)) // replacing cover is quicker than replacing whole frame to_chat(user, "You replace missing APC's cover.") qdel(W) - opened = 1 + opened = APC_COVER_OPENED update_icon() return if (has_electronics) @@ -624,8 +637,8 @@ qdel(W) stat &= ~BROKEN obj_integrity = max_integrity - if (opened==2) - opened = 1 + if (opened==APC_COVER_REMOVED) + opened = APC_COVER_OPENED update_icon() else if(istype(W, /obj/item/clockwork/integration_cog) && is_servant_of_ratvar(user)) if(integration_cog) @@ -634,7 +647,7 @@ if(!opened) user.visible_message("[user] slices [src]'s cover lock, and it swings wide open!", \ "You slice [src]'s cover lock apart with [W], and the cover swings open.") - opened = TRUE + opened = APC_COVER_OPENED update_icon() else user.visible_message("[user] presses [W] into [src]!", \ @@ -650,7 +663,7 @@ integration_cog = W START_PROCESSING(SSfastprocess, W) playsound(src, 'sound/machines/clockcult/steam_whoosh.ogg', 50, FALSE) - opened = FALSE + opened = APC_COVER_CLOSED locked = FALSE update_icon() return @@ -697,8 +710,9 @@ if(!(flags_1 & NODECONSTRUCT_1)) if(!(stat & BROKEN)) set_broken() - if(opened != 2) - opened = 2 + if(opened != APC_COVER_REMOVED) + opened = APC_COVER_REMOVED + coverlocked = FALSE visible_message("The APC cover is knocked down!") update_icon() @@ -718,15 +732,14 @@ to_chat(user, "You emag the APC interface.") update_icon() + // attack with hand - remove cell (if cover open) or interact with the APC /obj/machinery/power/apc/attack_hand(mob/user) . = ..() if(.) return - if(!user) - return - if(usr == user && opened && (!issilicon(user))) + if(opened && (!issilicon(user))) if(cell) user.visible_message("[user] removes \the [cell] from [src]!","You remove \the [cell].") user.put_in_hands(cell) @@ -911,12 +924,11 @@ update() if("emergency_lighting") emergency_lights = !emergency_lights - for(var/area/A in area.related) - for(var/obj/machinery/light/L in A) - if(!initial(L.no_emergency)) //If there was an override set on creation, keep that override - L.no_emergency = emergency_lights - INVOKE_ASYNC(L, /obj/machinery/light/.proc/update, FALSE) - CHECK_TICK + for(var/obj/machinery/light/L in area) + if(!initial(L.no_emergency)) //If there was an override set on creation, keep that override + L.no_emergency = emergency_lights + INVOKE_ASYNC(L, /obj/machinery/light/.proc/update, FALSE) + CHECK_TICK return 1 /obj/machinery/power/apc/proc/toggle_breaker() @@ -989,7 +1001,7 @@ P.switch_mode_to(TRACK_NUKE_DISK) //Pinpointers go back to tracking the nuke disk P.alert = FALSE -/obj/machinery/power/apc/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/device/aicard/card) +/obj/machinery/power/apc/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/aicard/card) if(card.AI) to_chat(user, "[card] is already occupied!") return @@ -1281,12 +1293,11 @@ INVOKE_ASYNC(src, .proc/break_lights) /obj/machinery/power/apc/proc/break_lights() - for(var/area/A in area.related) - for(var/obj/machinery/light/L in A) - L.on = TRUE - L.break_light_tube() - L.on = FALSE - stoplag() + for(var/obj/machinery/light/L in area) + L.on = TRUE + L.break_light_tube() + L.on = FALSE + stoplag() /obj/machinery/power/apc/proc/shock(mob/user, prb) if(!prob(prb)) @@ -1322,12 +1333,11 @@ /obj/machinery/power/apc/proc/set_nightshift(on) set waitfor = FALSE nightshift_lights = on - for(var/area/A in area.related) - for(var/obj/machinery/light/L in A) - if(L.nightshift_allowed) - L.nightshift_enabled = nightshift_lights - L.update(FALSE) - CHECK_TICK + for(var/obj/machinery/light/L in area) + if(L.nightshift_allowed) + L.nightshift_enabled = nightshift_lights + L.update(FALSE) + CHECK_TICK #undef UPSTATE_CELL_IN #undef UPSTATE_OPENED1 @@ -1340,6 +1350,14 @@ #undef APC_RESET_EMP +#undef APC_ELECTRONICS_MISSING +#undef APC_ELECTRONICS_INSTALLED +#undef APC_ELECTRONICS_SECURED + +#undef APC_COVER_CLOSED +#undef APC_COVER_OPENED +#undef APC_COVER_REMOVED + //update_overlay #undef APC_UPOVERLAY_CHARGEING0 #undef APC_UPOVERLAY_CHARGEING1 @@ -1356,8 +1374,6 @@ #undef APC_UPOVERLAY_LOCKED #undef APC_UPOVERLAY_OPERATING -#undef APC_UPDATE_ICON_COOLDOWN - /*Power module, used for APC construction*/ /obj/item/electronics/apc name = "power control module" diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 94e5f4a28e..2a158acfce 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -157,7 +157,7 @@ By design, d1 is the smallest direction and d2 is the highest R.loaded.cable_join(src, user) R.is_empty(user) - else if(istype(W, /obj/item/device/multitool)) + else if(istype(W, /obj/item/multitool)) if(powernet && (powernet.avail > 0)) // is it powered? to_chat(user, "[DisplayPower(powernet.avail)] in power network.") else diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 1985cdf668..40d317d2c3 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -397,8 +397,8 @@ /obj/machinery/light/attackby(obj/item/W, mob/living/user, params) //Light replacer code - if(istype(W, /obj/item/device/lightreplacer)) - var/obj/item/device/lightreplacer/LR = W + if(istype(W, /obj/item/lightreplacer)) + var/obj/item/lightreplacer/LR = W LR.ReplaceLight(src, user) // attempt to insert light diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm index cc4000fd42..7cea950ccc 100644 --- a/code/modules/power/port_gen.dm +++ b/code/modules/power/port_gen.dm @@ -173,9 +173,6 @@ return else if(!active) - if(exchange_parts(user, O)) - return - if(istype(O, /obj/item/wrench)) if(!anchored && !isinspace()) diff --git a/code/modules/power/rtg.dm b/code/modules/power/rtg.dm index d458fbf7e2..7266a3e8a0 100644 --- a/code/modules/power/rtg.dm +++ b/code/modules/power/rtg.dm @@ -38,9 +38,7 @@ power_gen = initial(power_gen) * part_level /obj/machinery/power/rtg/attackby(obj/item/I, mob/user, params) - if(exchange_parts(user, I)) - return - else if(default_deconstruction_screwdriver(user, "[initial(icon_state)]-open", initial(icon_state), I)) + if(default_deconstruction_screwdriver(user, "[initial(icon_state)]-open", initial(icon_state), I)) return else if(default_deconstruction_crowbar(I)) return diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm index fcbb366187..15ae1748f0 100644 --- a/code/modules/power/singularity/collector.dm +++ b/code/modules/power/singularity/collector.dm @@ -15,6 +15,7 @@ // use_power = NO_POWER_USE max_integrity = 350 integrity_failure = 80 + circuit = /obj/item/circuitboard/machine/rad_collector var/obj/item/tank/internals/plasma/loaded_tank = null var/last_power = 0 var/active = 0 @@ -103,7 +104,7 @@ disconnect_from_network() /obj/machinery/power/rad_collector/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/device/analyzer) && loaded_tank) + if(istype(W, /obj/item/analyzer) && loaded_tank) atmosanalyzer_scan(loaded_tank.air_contents, user) else if(istype(W, /obj/item/tank/internals/plasma)) if(!anchored) @@ -112,6 +113,9 @@ if(loaded_tank) to_chat(user, "There's already a plasma tank loaded!") return TRUE + if(panel_open) + to_chat(user, "Close the maintenance panel first!") + return TRUE if(!user.transferItemToLoc(W, src)) return loaded_tank = W @@ -130,7 +134,14 @@ return ..() /obj/machinery/power/rad_collector/wrench_act(mob/living/user, obj/item/I) - default_unfasten_wrench(user, I, 0) + default_unfasten_wrench(user, I) + return TRUE + +/obj/machinery/power/rad_collector/screwdriver_act(mob/living/user, obj/item/I) + if(loaded_tank) + to_chat(user, "Remove the plasma tank first!") + else + default_deconstruction_screwdriver(user, icon_state, icon_state, I) return TRUE /obj/machinery/power/rad_collector/crowbar_act(mob/living/user, obj/item/I) @@ -140,6 +151,8 @@ return TRUE eject() return TRUE + if(default_deconstruction_crowbar(I)) + return TRUE to_chat(user, "There isn't a tank loaded!") return TRUE diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index d6a27f1483..3ca4c70199 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -229,7 +229,7 @@ state = EM_UNSECURED /obj/machinery/power/emitter/wrench_act(mob/living/user, obj/item/I) - default_unfasten_wrench(user, I, 0) + default_unfasten_wrench(user, I) return TRUE /obj/machinery/power/emitter/welder_act(mob/living/user, obj/item/I) @@ -291,9 +291,6 @@ wires.interact(user) return - else if(exchange_parts(user, I)) - return - return ..() /obj/machinery/power/emitter/emag_act(mob/user) diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm index 0a113859c3..3ea81568a7 100644 --- a/code/modules/power/singularity/field_generator.dm +++ b/code/modules/power/singularity/field_generator.dm @@ -106,7 +106,7 @@ field_generator power level display state = FG_UNSECURED /obj/machinery/field/generator/wrench_act(mob/living/user, obj/item/I) - default_unfasten_wrench(user, I, 0) + default_unfasten_wrench(user, I) return TRUE /obj/machinery/field/generator/welder_act(mob/living/user, obj/item/I) @@ -335,8 +335,10 @@ field_generator power level display if(O.last_warning && temp) if((world.time - O.last_warning) > 50) //to stop message-spam temp = 0 - message_admins("A singulo exists and a containment field has failed.",1) - investigate_log("has failed whilst a singulo exists.", INVESTIGATE_SINGULO) + var/turf/T = get_turf(src) + var/area/A = get_area(T) + message_admins("A singulo exists and a containment field has failed at [A] [ADMIN_COORDJMP(T)].") + investigate_log("has failed whilst a singulo exists at [A] [COORD(T)].", INVESTIGATE_SINGULO) O.last_warning = world.time /obj/machinery/field/generator/shock(mob/living/user) diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm index dc6c1c649a..7f40f81903 100644 --- a/code/modules/power/singularity/narsie.dm +++ b/code/modules/power/singularity/narsie.dm @@ -91,7 +91,10 @@ SSticker.force_ending = 1 /proc/cult_ending_helper(var/no_explosion = 0) - Cinematic(CINEMATIC_CULT,world,CALLBACK(GLOBAL_PROC,.ending_helper)) + if(no_explosion) + Cinematic(CINEMATIC_CULT,world,CALLBACK(GLOBAL_PROC,/proc/ending_helper)) + else + Cinematic(CINEMATIC_CULT_NUKE,world,CALLBACK(GLOBAL_PROC,/proc/ending_helper)) //ATTACK GHOST IGNORING PARENT RETURN VALUE /obj/singularity/narsie/large/attack_ghost(mob/dead/observer/user as mob) diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index 2a7fd37c65..5df8fb1d13 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -128,11 +128,13 @@ /obj/singularity/proc/admin_investigate_setup() + var/turf/T = get_turf(src) + var/area/A = get_area(T) last_warning = world.time var/count = locate(/obj/machinery/field/containment) in urange(30, src, 1) if(!count) - message_admins("A singulo has been created without containment fields active ([x],[y],[z])",1) - investigate_log("was created. [count?"":"No containment fields were active"]", INVESTIGATE_SINGULO) + message_admins("A singulo has been created without containment fields active at [A] [ADMIN_COORDJMP(T)].") + investigate_log("was created at [A] [COORD(T)]. [count?"":"No containment fields were active"]", INVESTIGATE_SINGULO) /obj/singularity/proc/dissipate() if(!dissipate) @@ -272,7 +274,7 @@ /obj/singularity/proc/consume(atom/A) var/gain = A.singularity_act(current_size, src) src.energy += gain - if(istype(A, /obj/machinery/power/supermatter_shard) && !consumedSupermatter) + if(istype(A, /obj/machinery/power/supermatter_crystal) && !consumedSupermatter) desc = "[initial(desc)] It glows fiercely with inner fire." name = "supermatter-charged [initial(name)]" consumedSupermatter = 1 diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 95b78ff0b5..d514a2c4e9 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -98,10 +98,6 @@ update_icon() return - //exchanging parts using the RPE - if(exchange_parts(user, I)) - return - //building and linking a terminal if(istype(I, /obj/item/stack/cable_coil)) var/dir = get_dir(user,src) diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index ed238f7fb7..bfe3e1a63b 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -22,7 +22,7 @@ #define SEVERE_POWER_PENALTY_THRESHOLD 7000 //Same as above, but causes more dangerous effects #define CRITICAL_POWER_PENALTY_THRESHOLD 9000 //Even more dangerous effects, threshold for tesla delamination #define HEAT_PENALTY_THRESHOLD 40 //Higher == Crystal safe operational temperature is higher. -#define DAMAGE_HARDCAP 0.0025 +#define DAMAGE_HARDCAP 0.002 #define DAMAGE_INCREASE_MULTIPLIER 0.25 @@ -54,15 +54,17 @@ #define SUPERMATTER_DANGER_PERCENT 50 #define SUPERMATTER_WARNING_PERCENT 100 -GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) +#define SUPERMATTER_COUNTDOWN_TIME 30 SECONDS -/obj/machinery/power/supermatter_shard - name = "supermatter shard" - desc = "A strangely translucent and iridescent crystal that looks like it used to be part of a larger structure." +GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) + +/obj/machinery/power/supermatter_crystal + name = "supermatter crystal" + desc = "A strangely translucent and iridescent crystal." icon = 'icons/obj/supermatter.dmi' - icon_state = "darkmatter_shard" + icon_state = "darkmatter" density = TRUE - anchored = FALSE + anchored = TRUE var/uid = 1 var/static/gl_uid = 1 light_range = 4 @@ -70,9 +72,11 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) critical_machine = TRUE - var/gasefficency = 0.125 + var/gasefficency = 0.15 - var/base_icon_state = "darkmatter_shard" + var/base_icon_state = "darkmatter" + + var/final_countdown = FALSE var/damage = 0 var/damage_archived = 0 @@ -86,7 +90,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) var/emergency_issued = FALSE - var/explosion_power = 12 + var/explosion_power = 35 var/temp_factor = 30 var/lastwarning = 0 // Time in 1/10th of seconds since the last sent warning @@ -119,8 +123,8 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) //How much hallucination should it produce per unit of power? var/config_hallucination_power = 0.1 - var/obj/item/device/radio/radio - var/radio_key = /obj/item/device/encryptionkey/headset_eng + var/obj/item/radio/radio + var/radio_key = /obj/item/encryptionkey/headset_eng var/engineering_channel = "Engineering" var/common_channel = null @@ -137,9 +141,9 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) var/datum/looping_sound/supermatter/soundloop - var/moveable = TRUE + var/moveable = FALSE -/obj/machinery/power/supermatter_shard/Initialize() +/obj/machinery/power/supermatter_crystal/Initialize() . = ..() uid = gl_uid++ SSair.atmos_machinery += src @@ -156,7 +160,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) soundloop = new(list(src), TRUE) -/obj/machinery/power/supermatter_shard/Destroy() +/obj/machinery/power/supermatter_crystal/Destroy() investigate_log("has been destroyed.", INVESTIGATE_SUPERMATTER) SSair.atmos_machinery -= src QDEL_NULL(radio) @@ -167,7 +171,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) QDEL_NULL(soundloop) return ..() -/obj/machinery/power/supermatter_shard/examine(mob/user) +/obj/machinery/power/supermatter_crystal/examine(mob/user) ..() if(!ishuman(user)) return @@ -180,12 +184,12 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) to_chat(H, "You get headaches just from looking at it.") return -/obj/machinery/power/supermatter_shard/get_spans() +/obj/machinery/power/supermatter_crystal/get_spans() return list(SPAN_ROBOT) #define CRITICAL_TEMPERATURE 10000 -/obj/machinery/power/supermatter_shard/proc/get_status() +/obj/machinery/power/supermatter_crystal/proc/get_status() var/turf/T = get_turf(src) if(!T) return SUPERMATTER_ERROR @@ -212,7 +216,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) return SUPERMATTER_NORMAL return SUPERMATTER_INACTIVE -/obj/machinery/power/supermatter_shard/proc/alarm() +/obj/machinery/power/supermatter_crystal/proc/alarm() switch(get_status()) if(SUPERMATTER_DELAMINATING) playsound(src, 'sound/misc/bloblarm.ogg', 100) @@ -223,13 +227,53 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) if(SUPERMATTER_WARNING) playsound(src, 'sound/machines/terminal_alert.ogg', 75) -/obj/machinery/power/supermatter_shard/proc/get_integrity() +/obj/machinery/power/supermatter_crystal/proc/get_integrity() var/integrity = damage / explosion_point integrity = round(100 - integrity * 100, 0.01) integrity = integrity < 0 ? 0 : integrity return integrity -/obj/machinery/power/supermatter_shard/proc/explode() +/obj/machinery/power/supermatter_crystal/proc/countdown() + set waitfor = FALSE + + if(final_countdown) // We're already doing it go away + return + final_countdown = TRUE + + var/image/causality_field = image(icon, null, "causality_field") + add_overlay(causality_field, TRUE) + + var/speaking = "[emergency_alert] The supermatter has reached critical integrity failure. Emergency causality destabilization field has been activated." + radio.talk_into(src, speaking, common_channel, get_spans(), get_default_language()) + for(var/i in SUPERMATTER_COUNTDOWN_TIME to 0 step -10) + if(damage < explosion_point) // Cutting it a bit close there engineers + radio.talk_into(src, "[safe_alert] Failsafe has been disengaged.", common_channel, get_spans(), get_default_language()) + cut_overlay(causality_field, TRUE) + final_countdown = FALSE + return + else if((i % 50) != 0 && i > 50) // A message once every 5 seconds until the final 5 seconds which count down individualy + sleep(10) + continue + else if(i > 50) + speaking = "[i/10] seconds remain before causality stabilization." + else + speaking = "[i/10]..." + radio.talk_into(src, speaking, common_channel, get_spans(), get_default_language()) + sleep(10) + + explode() + +/obj/machinery/power/supermatter_crystal/proc/explode() + for(var/mob in GLOB.alive_mob_list) + var/mob/living/L = mob + if(istype(L) && L.z == z) + if(ishuman(mob)) + //Hilariously enough, running into a closet should make you get hit the hardest. + var/mob/living/carbon/human/H = mob + H.hallucination += max(50, min(300, DETONATION_HALLUCINATION * sqrt(1 / (get_dist(mob, src) + 1)) ) ) + var/rads = DETONATION_RADS * sqrt( 1 / (get_dist(L, src) + 1) ) + L.rad_act(rads) + var/turf/T = get_turf(src) for(var/mob/M in GLOB.player_list) if(M.z == z) @@ -251,7 +295,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) E.energy = power qdel(src) -/obj/machinery/power/supermatter_shard/process_atmos() +/obj/machinery/power/supermatter_crystal/process_atmos() var/turf/T = loc if(isnull(T)) // We have a null turf...something is wrong, stop processing this entity. @@ -282,7 +326,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) else if(takes_damage) //causing damage - damage = max(damage + (max(removed.temperature - ((T0C + HEAT_PENALTY_THRESHOLD)*dynamic_heat_resistance), 0) * mole_heat_penalty / 150 ) * DAMAGE_INCREASE_MULTIPLIER, 0) + damage = max(damage + (max(CLAMP(removed.total_moles() / 200, 0.5, 1) * removed.temperature - ((T0C + HEAT_PENALTY_THRESHOLD)*dynamic_heat_resistance), 0) * mole_heat_penalty / 150 ) * DAMAGE_INCREASE_MULTIPLIER, 0) damage = max(damage + (max(power - POWER_PENALTY_THRESHOLD, 0)/500) * DAMAGE_INCREASE_MULTIPLIER, 0) damage = max(damage + (max(combined_gas - MOLE_PENALTY_THRESHOLD, 0)/80) * DAMAGE_INCREASE_MULTIPLIER, 0) @@ -427,21 +471,11 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) radio.talk_into(src, "Warning: Critical coolant mass reached.", engineering_channel, get_spans(), get_default_language()) if(damage > explosion_point) - for(var/mob in GLOB.alive_mob_list) - var/mob/living/L = mob - if(istype(L) && L.z == z) - if(ishuman(mob)) - //Hilariously enough, running into a closet should make you get hit the hardest. - var/mob/living/carbon/human/H = mob - H.hallucination += max(50, min(300, DETONATION_HALLUCINATION * sqrt(1 / (get_dist(mob, src) + 1)) ) ) - var/rads = DETONATION_RADS * sqrt( 1 / (get_dist(L, src) + 1) ) - L.rad_act(rads) - - explode() + countdown() return 1 -/obj/machinery/power/supermatter_shard/bullet_act(obj/item/projectile/Proj) +/obj/machinery/power/supermatter_crystal/bullet_act(obj/item/projectile/Proj) var/turf/L = loc if(!istype(L)) return FALSE @@ -457,7 +491,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) damage += Proj.damage * config_bullet_energy return FALSE -/obj/machinery/power/supermatter_shard/singularity_act() +/obj/machinery/power/supermatter_crystal/singularity_act() var/gain = 100 investigate_log("Supermatter shard consumed by singularity.", INVESTIGATE_SINGULO) message_admins("Singularity has consumed a supermatter shard and can now become stage six.") @@ -469,7 +503,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) qdel(src) return gain -/obj/machinery/power/supermatter_shard/blob_act(obj/structure/blob/B) +/obj/machinery/power/supermatter_crystal/blob_act(obj/structure/blob/B) if(B && !isspaceturf(loc)) //does nothing in space playsound(get_turf(src), 'sound/effects/supermatter.ogg', 50, 1) damage += B.obj_integrity * 0.5 //take damage equal to 50% of remaining blob health before it tried to eat us @@ -482,20 +516,20 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) "You hear a loud crack as you are washed with a wave of heat.") Consume(B) -/obj/machinery/power/supermatter_shard/attack_tk(mob/user) +/obj/machinery/power/supermatter_crystal/attack_tk(mob/user) if(iscarbon(user)) var/mob/living/carbon/C = user to_chat(C, "That was a really dumb idea.") var/obj/item/bodypart/head/rip_u = C.get_bodypart(BODY_ZONE_HEAD) rip_u.dismember(BURN) //nice try jedi -/obj/machinery/power/supermatter_shard/attack_paw(mob/user) +/obj/machinery/power/supermatter_crystal/attack_paw(mob/user) dust_mob(user, cause = "monkey attack") -/obj/machinery/power/supermatter_shard/attack_alien(mob/user) +/obj/machinery/power/supermatter_crystal/attack_alien(mob/user) dust_mob(user, cause = "alien attack") -/obj/machinery/power/supermatter_shard/attack_animal(mob/living/simple_animal/S) +/obj/machinery/power/supermatter_crystal/attack_animal(mob/living/simple_animal/S) var/murder if(!S.melee_damage_upper && !S.melee_damage_lower) murder = S.friendly @@ -506,20 +540,20 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) "You unwisely touch [src], and your vision glows brightly as your body crumbles to dust. Oops.", \ "simple animal attack") -/obj/machinery/power/supermatter_shard/attack_robot(mob/user) +/obj/machinery/power/supermatter_crystal/attack_robot(mob/user) if(Adjacent(user)) dust_mob(user, cause = "cyborg attack") -/obj/machinery/power/supermatter_shard/attack_ai(mob/user) +/obj/machinery/power/supermatter_crystal/attack_ai(mob/user) return -/obj/machinery/power/supermatter_shard/attack_hand(mob/living/user) +/obj/machinery/power/supermatter_crystal/attack_hand(mob/living/user) . = ..() if(.) return dust_mob(user, cause = "hand") -/obj/machinery/power/supermatter_shard/proc/dust_mob(mob/living/nom, vis_msg, mob_msg, cause) +/obj/machinery/power/supermatter_crystal/proc/dust_mob(mob/living/nom, vis_msg, mob_msg, cause) if(nom.incorporeal_move || nom.status_flags & GODMODE) return if(!vis_msg) @@ -533,7 +567,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) playsound(get_turf(src), 'sound/effects/supermatter.ogg', 50, 1) Consume(nom) -/obj/machinery/power/supermatter_shard/attackby(obj/item/W, mob/living/user, params) +/obj/machinery/power/supermatter_crystal/attackby(obj/item/W, mob/living/user, params) if(!istype(W) || (W.flags_1 & ABSTRACT_1) || !istype(user)) return if (istype(W, /obj/item/melee/roastingstick)) @@ -554,12 +588,12 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) radiation_pulse(src, 150, 4) -/obj/machinery/power/supermatter_shard/wrench_act(mob/user, obj/item/tool) +/obj/machinery/power/supermatter_crystal/wrench_act(mob/user, obj/item/tool) if (moveable) default_unfasten_wrench(user, tool, time = 20) return TRUE -/obj/machinery/power/supermatter_shard/CollidedWith(atom/movable/AM) +/obj/machinery/power/supermatter_crystal/CollidedWith(atom/movable/AM) if(isliving(AM)) AM.visible_message("\The [AM] slams into \the [src] inducing a resonance... [AM.p_their()] body starts to glow and catch flame before flashing into ash.",\ "You slam into \the [src] as your ears are filled with unearthly ringing. Your last thought is \"Oh, fuck.\"",\ @@ -574,7 +608,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) Consume(AM) -/obj/machinery/power/supermatter_shard/proc/Consume(atom/movable/AM) +/obj/machinery/power/supermatter_crystal/proc/Consume(atom/movable/AM) if(isliving(AM)) var/mob/living/user = AM if(user.status_flags & GODMODE) @@ -602,30 +636,30 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) else L.show_message("You hear an unearthly ringing and notice your skin is covered in fresh radiation burns.", 2) -/obj/machinery/power/supermatter_shard/engine +/obj/machinery/power/supermatter_crystal/engine + is_main_engine = TRUE + +/obj/machinery/power/supermatter_crystal/shard + name = "supermatter shard" + desc = "A strangely translucent and iridescent crystal that looks like it used to be part of a larger structure." + base_icon_state = "darkmatter_shard" + icon_state = "darkmatter_shard" + anchored = FALSE + gasefficency = 0.125 + explosion_power = 12 + moveable = TRUE + +/obj/machinery/power/supermatter_crystal/shard/engine is_main_engine = TRUE // When you wanna make a supermatter shard for the dramatic effect, but // don't want it exploding suddenly -/obj/machinery/power/supermatter_shard/hugbox +/obj/machinery/power/supermatter_crystal/shard/hugbox takes_damage = FALSE produces_gas = FALSE moveable = FALSE -/obj/machinery/power/supermatter_shard/crystal - name = "supermatter crystal" - desc = "A strangely translucent and iridescent crystal." - base_icon_state = "darkmatter" - icon_state = "darkmatter" - anchored = TRUE - gasefficency = 0.15 - explosion_power = 35 - moveable = FALSE - -/obj/machinery/power/supermatter_shard/crystal/engine - is_main_engine = TRUE - -/obj/machinery/power/supermatter_shard/proc/supermatter_pull(turf/center, pull_range = 10) +/obj/machinery/power/supermatter_crystal/proc/supermatter_pull(turf/center, pull_range = 10) playsound(src.loc, 'sound/weapons/marauder.ogg', 100, 1, extrarange = 7) for(var/atom/P in orange(pull_range,center)) if(ismovableatom(P)) @@ -639,7 +673,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) step_towards(pulled_object,center) step_towards(pulled_object,center) -/obj/machinery/power/supermatter_shard/proc/supermatter_anomaly_gen(turf/anomalycenter, type = FLUX_ANOMALY, anomalyrange = 5) +/obj/machinery/power/supermatter_crystal/proc/supermatter_anomaly_gen(turf/anomalycenter, type = FLUX_ANOMALY, anomalyrange = 5) var/turf/L = pick(orange(anomalyrange, anomalycenter)) if(L) switch(type) @@ -651,7 +685,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) if(PYRO_ANOMALY) new /obj/effect/anomaly/pyro(L, 200) -/obj/machinery/power/supermatter_shard/proc/supermatter_zap(atom/zapstart, range = 3, power) +/obj/machinery/power/supermatter_crystal/proc/supermatter_zap(atom/zapstart, range = 3, power) . = zapstart.dir if(power < 1000) return diff --git a/code/modules/power/switch.dm b/code/modules/power/switch.dm deleted file mode 100644 index 1dca58eb6f..0000000000 --- a/code/modules/power/switch.dm +++ /dev/null @@ -1,84 +0,0 @@ -//This is a power switch. When turned on it looks at the cables around the tile that it's on and notes which cables are trying to connect to it. -//After it knows this it creates the number of cables from the center to each of the cables attempting to conenct. These cables cannot be removed -//with wirecutters. When the switch is turned off it removes all the cables on the tile it's on. -//The switch uses a 5s delay to prevent powernet change spamming. -/* -/obj/structure/powerswitch - name = "power switch" - desc = "A switch that controls power." - icon = 'icons/obj/power.dmi' - icon_state = "switch-dbl-up" - var/icon_state_on = "switch-dbl-down" - var/icon_state_off = "switch-dbl-up" - density = FALSE - anchored = TRUE - var/on = FALSE //up is off, down is on - var/busy = FALSE //set to 1 when you start pulling - -/obj/structure/powerswitch/simple - icon_state = "switch-up" - icon_state_on = "switch-down" - icon_state_off = "switch-up" - - -/obj/structure/powerswitch/examine(mob/user) - ..() - if(on) - to_chat(user, "The switch is in the on position") - else - to_chat(user, "The switch is in the off position") - -/obj/structure/powerswitch/attack_ai(mob/user) - to_chat(user, "\red You're an AI. This is a manual switch. It's not going to work.") - return - -/obj/structure/powerswitch/attack_hand(mob/user) - - if(busy) - to_chat(user, "\red This switch is already being toggled.") - return - - ..() - - busy = TRUE - for(var/mob/O in viewers(user)) - O.show_message(text("\red [user] started pulling the [src]."), 1) - - if(do_after(user, 50)) - set_state(!on) - for(var/mob/O in viewers(user)) - O.show_message(text("\red [user] flipped the [src] into the [on ? "on": "off"] position."), 1) - busy = FALSE - -/obj/structure/powerswitch/proc/set_state(var/state) - on = state - if(on) - icon_state = icon_state_on - var/list/connection_dirs = list() - for(var/direction in list(1,2,4,8,5,6,9,10)) - for(var/obj/structure/cable/C in get_step(src,direction)) - if(C.d1 == turn(direction, 180) || C.d2 == turn(direction, 180)) - connection_dirs += direction - break - - for(var/direction in connection_dirs) - var/obj/structure/cable/C = new/obj/structure/cable(src.loc) - C.d1 = 0 - C.d2 = direction - C.icon_state = "[C.d1]-[C.d2]" - C.power_switch = src - - var/datum/powernet/PN = new() - PN.number = powernets.len + 1 - powernets += PN - C.netnum = PN.number - PN.cables += C - - C.mergeConnectedNetworks(C.d2) - C.mergeConnectedNetworksOnTurf() - - else - icon_state = icon_state_off - for(var/obj/structure/cable/C in src.loc) - qdel(C) -*/ \ No newline at end of file diff --git a/code/modules/power/tesla/coil.dm b/code/modules/power/tesla/coil.dm index 32499ace2f..32d35b4392 100644 --- a/code/modules/power/tesla/coil.dm +++ b/code/modules/power/tesla/coil.dm @@ -56,9 +56,6 @@ if(default_deconstruction_screwdriver(user, "coil_open[anchored]", "coil[anchored]", W)) return - if(exchange_parts(user, W)) - return - if(default_unfasten_wrench(user, W)) return @@ -169,9 +166,6 @@ if(default_deconstruction_screwdriver(user, "grounding_rod_open[anchored]", "grounding_rod[anchored]", W)) return - if(exchange_parts(user, W)) - return - if(default_unfasten_wrench(user, W)) return diff --git a/code/modules/power/turbine.dm b/code/modules/power/turbine.dm index 7e73c1c9c1..22777e4fcf 100644 --- a/code/modules/power/turbine.dm +++ b/code/modules/power/turbine.dm @@ -112,9 +112,6 @@ stat |= BROKEN return - if(exchange_parts(user, I)) - return - default_deconstruction_crowbar(I) /obj/machinery/power/compressor/process() @@ -243,9 +240,6 @@ stat |= BROKEN return - if(exchange_parts(user, I)) - return - default_deconstruction_crowbar(I) /obj/machinery/power/turbine/ui_interact(mob/user) diff --git a/code/modules/procedural_mapping/mapGenerator.dm b/code/modules/procedural_mapping/mapGenerator.dm index 95eded309c..4c9e1dddea 100644 --- a/code/modules/procedural_mapping/mapGenerator.dm +++ b/code/modules/procedural_mapping/mapGenerator.dm @@ -2,11 +2,11 @@ //All based on clusterMin and clusterMax as guides //Individual defines -#define CLUSTER_CHECK_NONE 0 //No checks are done, cluster as much as possible -#define CLUSTER_CHECK_DIFFERENT_TURFS 2 //Don't let turfs of DIFFERENT types cluster -#define CLUSTER_CHECK_DIFFERENT_ATOMS 4 //Don't let atoms of DIFFERENT types cluster -#define CLUSTER_CHECK_SAME_TURFS 8 //Don't let turfs of the SAME type cluster -#define CLUSTER_CHECK_SAME_ATOMS 16 //Don't let atoms of the SAME type cluster +#define CLUSTER_CHECK_NONE 0 //No checks are done, cluster as much as possible +#define CLUSTER_CHECK_DIFFERENT_TURFS (1<<1) //Don't let turfs of DIFFERENT types cluster +#define CLUSTER_CHECK_DIFFERENT_ATOMS (1<<2) //Don't let atoms of DIFFERENT types cluster +#define CLUSTER_CHECK_SAME_TURFS (1<<3) //Don't let turfs of the SAME type cluster +#define CLUSTER_CHECK_SAME_ATOMS (1<<4) //Don't let atoms of the SAME type cluster //Combined defines #define CLUSTER_CHECK_SAMES 24 //Don't let any of the same type cluster @@ -197,4 +197,3 @@ to_chat(src, "Generating Region") N.generate() to_chat(src, "Generated Region") - diff --git a/code/modules/projectiles/ammunition/_ammunition.dm b/code/modules/projectiles/ammunition/_ammunition.dm index c2c477f49b..96ffbd9355 100644 --- a/code/modules/projectiles/ammunition/_ammunition.dm +++ b/code/modules/projectiles/ammunition/_ammunition.dm @@ -66,41 +66,11 @@ bounce_away(FALSE, NONE) . = ..() -/obj/item/ammo_casing/proc/bounce_away(still_warm = FALSE, delay = 3) - SpinAnimation(10, 1) +/obj/item/ammo_casing/proc/bounce_away(still_warm = FALSE, bounce_delay = 3) update_icon() + SpinAnimation(10, 1) var/turf/T = get_turf(src) - if(still_warm && T && (is_type_in_typecache(T, GLOB.bullet_bounce_away_sizzle))) - addtimer(CALLBACK(GLOBAL_PROC, .proc/playsound, src, 'sound/items/welder.ogg', 20, 1), delay) - else if(T && (!is_type_in_typecache(T, GLOB.bullet_bounce_away_blacklist))) - addtimer(CALLBACK(GLOBAL_PROC, .proc/playsound, src, 'sound/weapons/bulletremove.ogg', 60, 1), delay) - -GLOBAL_LIST_INIT(bullet_bounce_away_sizzle, typecacheof(list( - /turf/closed/indestructible/rock/snow, - /turf/closed/wall/ice, - /turf/closed/wall/mineral/snow, - /turf/open/floor/grass/snow, - /turf/open/floor/holofloor/snow, - /turf/open/floor/plating/asteroid/snow, - /turf/open/floor/plating/ice, - /turf/open/water))) - -GLOBAL_LIST_INIT(bullet_bounce_away_blacklist, typecacheof(list( - /turf/closed/indestructible/rock/snow, - /turf/closed/indestructible/splashscreen, - /turf/closed/wall/mineral/snow, - /turf/open/chasm, - /turf/open/floor/carpet, - /turf/open/floor/grass, - /turf/open/floor/holofloor/beach, - /turf/open/floor/holofloor/carpet, - /turf/open/floor/holofloor/grass, - /turf/open/floor/holofloor/hyperspace, - /turf/open/floor/holofloor/snow, - /turf/open/floor/plating/asteroid/snow, - /turf/open/floor/plating/beach, - /turf/open/indestructible/reebe_void, - /turf/open/lava, - /turf/open/space, - /turf/open/water, - /turf/template_noop))) + if(still_warm && T && T.bullet_sizzle) + addtimer(CALLBACK(GLOBAL_PROC, .proc/playsound, src, 'sound/items/welder.ogg', 20, 1), bounce_delay) //If the turf is made of water and the shell casing is still hot, make a sizzling sound when it's ejected. + else if(T && T.bullet_bounce_sound) + addtimer(CALLBACK(GLOBAL_PROC, .proc/playsound, src, T.bullet_bounce_sound, 60, 1), bounce_delay) //Soft / non-solid turfs that shouldn't make a sound when a shell casing is ejected over them. diff --git a/code/modules/projectiles/ammunition/ballistic/sniper.dm b/code/modules/projectiles/ammunition/ballistic/sniper.dm index 5906fcfaba..30cddedfd8 100644 --- a/code/modules/projectiles/ammunition/ballistic/sniper.dm +++ b/code/modules/projectiles/ammunition/ballistic/sniper.dm @@ -12,6 +12,7 @@ desc = "A .50 bullet casing, specialised in sending the target to sleep, instead of hell." projectile_type = /obj/item/projectile/bullet/p50/soporific icon_state = "sleeper" + harmful = FALSE /obj/item/ammo_casing/p50/penetrator name = ".50 penetrator round bullet casing" diff --git a/code/modules/projectiles/boxes_magazines/_box_magazine.dm b/code/modules/projectiles/boxes_magazines/_box_magazine.dm index 1c5a2b1199..979a46c802 100644 --- a/code/modules/projectiles/boxes_magazines/_box_magazine.dm +++ b/code/modules/projectiles/boxes_magazines/_box_magazine.dm @@ -2,7 +2,6 @@ /obj/item/ammo_box name = "ammo box (null_reference_exception)" desc = "A box of ammo." - icon_state = "357" icon = 'icons/obj/ammo.dmi' flags_1 = CONDUCT_1 slot_flags = SLOT_BELT diff --git a/code/modules/projectiles/boxes_magazines/external/toy.dm b/code/modules/projectiles/boxes_magazines/external/toy.dm index cb66391c02..9a8d7e59d9 100644 --- a/code/modules/projectiles/boxes_magazines/external/toy.dm +++ b/code/modules/projectiles/boxes_magazines/external/toy.dm @@ -30,6 +30,7 @@ /obj/item/ammo_box/magazine/toy/smgm45 name = "donksoft SMG magazine" + icon_state = "c20r45-toy" caliber = "foam_force" ammo_type = /obj/item/ammo_casing/caseless/foam_dart max_ammo = 20 @@ -39,10 +40,12 @@ icon_state = "c20r45-[round(ammo_count(),2)]" /obj/item/ammo_box/magazine/toy/smgm45/riot + icon_state = "c20r45-riot" ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot /obj/item/ammo_box/magazine/toy/m762 name = "donksoft box magazine" + icon_state = "a762-toy" caliber = "foam_force" ammo_type = /obj/item/ammo_casing/caseless/foam_dart max_ammo = 50 @@ -52,4 +55,5 @@ icon_state = "a762-[round(ammo_count(),10)]" /obj/item/ammo_box/magazine/toy/m762/riot + icon_state = "a762-riot" ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 9aa320dc91..5d93e3e3ee 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -39,9 +39,9 @@ lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi' - var/obj/item/device/firing_pin/pin = /obj/item/device/firing_pin //standard firing pin for most guns + var/obj/item/firing_pin/pin = /obj/item/firing_pin //standard firing pin for most guns - var/obj/item/device/flashlight/gun_light + var/obj/item/flashlight/gun_light var/can_flashlight = 0 var/obj/item/kitchen/knife/bayonet var/can_bayonet = FALSE @@ -111,7 +111,7 @@ if(recoil) shake_camera(user, recoil + 1, recoil) - if(iscarbon(user)) //CIT CHANGE - makes gun recoil cause staminaloss + if(isliving(user)) //CIT CHANGE - makes gun recoil cause staminaloss user.adjustStaminaLossBuffered(getstamcost(user)*(firing_burst && burst_size >= 2 ? 1/burst_size : 1)) //CIT CHANGE - ditto if(suppressed) @@ -334,10 +334,10 @@ /obj/item/gun/attackby(obj/item/I, mob/user, params) if(user.a_intent == INTENT_HARM) return ..() - else if(istype(I, /obj/item/device/flashlight/seclite)) + else if(istype(I, /obj/item/flashlight/seclite)) if(!can_flashlight) return ..() - var/obj/item/device/flashlight/seclite/S = I + var/obj/item/flashlight/seclite/S = I if(!gun_light) if(!user.transferItemToLoc(I, src)) return @@ -362,7 +362,7 @@ update_icon() else if(istype(I, /obj/item/screwdriver)) if(gun_light) - var/obj/item/device/flashlight/seclite/S = gun_light + var/obj/item/flashlight/seclite/S = gun_light to_chat(user, "You unscrew the seclite from \the [src].") gun_light = null S.forceMove(get_turf(user)) @@ -457,7 +457,7 @@ /obj/item/gun/proc/unlock() //used in summon guns and as a convience for admins if(pin) qdel(pin) - pin = new /obj/item/device/firing_pin + pin = new /obj/item/firing_pin ///////////// // ZOOMING // diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm index a174874686..22901ee0cc 100644 --- a/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -15,7 +15,7 @@ pin = null /obj/item/gun/ballistic/automatic/proto/unrestricted - pin = /obj/item/device/firing_pin + pin = /obj/item/firing_pin /obj/item/gun/ballistic/automatic/update_icon() ..() @@ -91,13 +91,13 @@ fire_sound = 'sound/weapons/gunshot_smg.ogg' fire_delay = 2 burst_size = 2 - pin = /obj/item/device/firing_pin/implant/pindicate + pin = /obj/item/firing_pin/implant/pindicate can_bayonet = TRUE knife_x_offset = 26 knife_y_offset = 12 /obj/item/gun/ballistic/automatic/c20r/unrestricted - pin = /obj/item/device/firing_pin + pin = /obj/item/firing_pin /obj/item/gun/ballistic/automatic/c20r/Initialize() . = ..() @@ -148,7 +148,7 @@ var/obj/item/gun/ballistic/revolver/grenadelauncher/underbarrel burst_size = 3 fire_delay = 2 - pin = /obj/item/device/firing_pin/implant/pindicate + pin = /obj/item/firing_pin/implant/pindicate /obj/item/gun/ballistic/automatic/m90/Initialize() . = ..() @@ -156,7 +156,7 @@ update_icon() /obj/item/gun/ballistic/automatic/m90/unrestricted - pin = /obj/item/device/firing_pin + pin = /obj/item/firing_pin /obj/item/gun/ballistic/automatic/m90/unrestricted/Initialize() . = ..() @@ -247,11 +247,11 @@ can_suppress = FALSE burst_size = 1 fire_delay = 0 - pin = /obj/item/device/firing_pin/implant/pindicate + pin = /obj/item/firing_pin/implant/pindicate actions_types = list() /obj/item/gun/ballistic/automatic/shotgun/bulldog/unrestricted - pin = /obj/item/device/firing_pin + pin = /obj/item/firing_pin /obj/item/gun/ballistic/automatic/shotgun/bulldog/Initialize() . = ..() @@ -286,10 +286,10 @@ can_suppress = FALSE burst_size = 3 fire_delay = 1 - pin = /obj/item/device/firing_pin/implant/pindicate + pin = /obj/item/firing_pin/implant/pindicate /obj/item/gun/ballistic/automatic/l6_saw/unrestricted - pin = /obj/item/device/firing_pin + pin = /obj/item/firing_pin /obj/item/gun/ballistic/automatic/l6_saw/examine(mob/user) @@ -377,7 +377,7 @@ /obj/item/gun/ballistic/automatic/sniper_rifle/syndicate name = "syndicate sniper rifle" desc = "An illegally modified .50 cal sniper rifle with suppression compatibility. Quickscoping still doesn't work." - pin = /obj/item/device/firing_pin/implant/pindicate + pin = /obj/item/firing_pin/implant/pindicate // Old Semi-Auto Rifle // diff --git a/code/modules/projectiles/guns/ballistic/launchers.dm b/code/modules/projectiles/guns/ballistic/launchers.dm index 01e323e1a7..aacdd46059 100644 --- a/code/modules/projectiles/guns/ballistic/launchers.dm +++ b/code/modules/projectiles/guns/ballistic/launchers.dm @@ -9,10 +9,10 @@ mag_type = /obj/item/ammo_box/magazine/internal/grenadelauncher fire_sound = 'sound/weapons/grenadelaunch.ogg' w_class = WEIGHT_CLASS_NORMAL - pin = /obj/item/device/firing_pin/implant/pindicate + pin = /obj/item/firing_pin/implant/pindicate /obj/item/gun/ballistic/revolver/grenadelauncher/unrestricted - pin = /obj/item/device/firing_pin + pin = /obj/item/firing_pin /obj/item/gun/ballistic/revolver/grenadelauncher/attackby(obj/item/A, mob/user, params) ..() @@ -25,7 +25,7 @@ icon = 'icons/mecha/mecha_equipment.dmi' icon_state = "mecha_grenadelnchr" mag_type = /obj/item/ammo_box/magazine/internal/cylinder/grenademulti - pin = /obj/item/device/firing_pin + pin = /obj/item/firing_pin /obj/item/gun/ballistic/revolver/grenadelauncher/cyborg/attack_self() return diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm index 3cbff78aee..d151ff65ca 100644 --- a/code/modules/projectiles/guns/ballistic/revolver.dm +++ b/code/modules/projectiles/guns/ballistic/revolver.dm @@ -148,7 +148,7 @@ icon_state = "goldrevolver" fire_sound = 'sound/weapons/resonator_blast.ogg' recoil = 8 - pin = /obj/item/device/firing_pin + pin = /obj/item/firing_pin /obj/item/gun/ballistic/revolver/nagant name = "nagant revolver" @@ -238,7 +238,7 @@ /obj/item/gun/ballistic/revolver/russian/soul/shoot_self(mob/living/user) ..() - var/obj/item/device/soulstone/anybody/SS = new /obj/item/device/soulstone/anybody(get_turf(src)) + var/obj/item/soulstone/anybody/SS = new /obj/item/soulstone/anybody(get_turf(src)) if(!SS.transfer_soul("FORCE", user)) //Something went wrong qdel(SS) return diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index 03f16e4b01..1987792b4e 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -146,7 +146,7 @@ name = "arcane barrage" desc = "Pew Pew Pew." fire_sound = 'sound/weapons/emitter.ogg' - pin = /obj/item/device/firing_pin/magic + pin = /obj/item/firing_pin/magic icon_state = "arcane_barrage" item_state = "arcane_barrage" can_bayonet = FALSE diff --git a/code/modules/projectiles/guns/ballistic/toy.dm b/code/modules/projectiles/guns/ballistic/toy.dm index 2089354e4f..6b009e494c 100644 --- a/code/modules/projectiles/guns/ballistic/toy.dm +++ b/code/modules/projectiles/guns/ballistic/toy.dm @@ -15,7 +15,7 @@ casing_ejector = FALSE /obj/item/gun/ballistic/automatic/toy/unrestricted - pin = /obj/item/device/firing_pin + pin = /obj/item/firing_pin /obj/item/gun/ballistic/automatic/toy/pistol name = "foam force pistol" @@ -40,10 +40,10 @@ return ..() /obj/item/gun/ballistic/automatic/toy/pistol/unrestricted - pin = /obj/item/device/firing_pin + pin = /obj/item/firing_pin /obj/item/gun/ballistic/automatic/toy/pistol/riot/unrestricted - pin = /obj/item/device/firing_pin + pin = /obj/item/firing_pin /obj/item/gun/ballistic/shotgun/toy name = "foam force shotgun" @@ -63,7 +63,7 @@ qdel(chambered) /obj/item/gun/ballistic/shotgun/toy/unrestricted - pin = /obj/item/device/firing_pin + pin = /obj/item/firing_pin /obj/item/gun/ballistic/shotgun/toy/crossbow name = "foam force crossbow" @@ -87,7 +87,7 @@ clumsy_check = FALSE /obj/item/gun/ballistic/automatic/c20r/toy/unrestricted //Use this for actual toys - pin = /obj/item/device/firing_pin + pin = /obj/item/firing_pin mag_type = /obj/item/ammo_box/magazine/toy/smgm45 /obj/item/gun/ballistic/automatic/c20r/toy/unrestricted/riot @@ -104,7 +104,7 @@ clumsy_check = FALSE /obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted //Use this for actual toys - pin = /obj/item/device/firing_pin + pin = /obj/item/firing_pin mag_type = /obj/item/ammo_box/magazine/toy/m762 /obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted/riot diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm index 524f1e8f90..d2ea2ab5f5 100644 --- a/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/code/modules/projectiles/guns/energy/energy_gun.dm @@ -22,7 +22,7 @@ can_flashlight = 0 // Can't attach or detach the flashlight, and override it's icon update /obj/item/gun/energy/e_gun/mini/Initialize() - gun_light = new /obj/item/device/flashlight/seclite(src) + gun_light = new /obj/item/flashlight/seclite(src) return ..() /obj/item/gun/energy/e_gun/mini/update_icon() diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm index 63d3736eba..3896293f78 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -244,11 +244,10 @@ ..() /obj/item/borg/upgrade/modkit/action(mob/living/silicon/robot/R) - if(..()) - return - - for(var/obj/item/gun/energy/kinetic_accelerator/cyborg/H in R.module.modules) - return install(H, usr) + . = ..() + if (.) + for(var/obj/item/gun/energy/kinetic_accelerator/cyborg/H in R.module.modules) + return install(H, usr) /obj/item/borg/upgrade/modkit/proc/install(obj/item/gun/energy/kinetic_accelerator/KA, mob/user) . = TRUE @@ -281,10 +280,18 @@ to_chat(user, "You don't have room([KA.get_remaining_mod_capacity()]% remaining, [cost]% needed) to install this modkit. Use a crowbar to remove existing modkits.") . = FALSE +/obj/item/borg/upgrade/modkit/deactivate(mob/living/silicon/robot/R, user = usr) + . = ..() + if (.) + for(var/obj/item/gun/energy/kinetic_accelerator/cyborg/KA in R.module.modules) + uninstall(KA) + /obj/item/borg/upgrade/modkit/proc/uninstall(obj/item/gun/energy/kinetic_accelerator/KA) forceMove(get_turf(KA)) KA.modkits -= src + + /obj/item/borg/upgrade/modkit/proc/modify_projectile(obj/item/projectile/kinetic/K) //use this one for effects you want to trigger before any damage is done at all and before damage is decreased by pressure diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 29d0ee0958..0341e7a59d 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -66,7 +66,7 @@ item_state = "shotgun" desc = "A combat shotgun gutted and refitted with an internal laser system. Can switch between taser and scattered disabler shots." shaded_charge = 0 - pin = /obj/item/device/firing_pin/implant/mindshield + pin = /obj/item/firing_pin/implant/mindshield ammo_type = list(/obj/item/ammo_casing/energy/laser/scatter/disabler, /obj/item/ammo_casing/energy/electrode) ///Laser Cannon @@ -118,7 +118,7 @@ ammo_type = list(/obj/item/ammo_casing/energy/laser/bluetag) item_flags = NONE clumsy_check = FALSE - pin = /obj/item/device/firing_pin/tag/blue + pin = /obj/item/firing_pin/tag/blue ammo_x_offset = 2 selfcharge = TRUE @@ -132,7 +132,7 @@ ammo_type = list(/obj/item/ammo_casing/energy/laser/redtag) item_flags = NONE clumsy_check = FALSE - pin = /obj/item/device/firing_pin/tag/red + pin = /obj/item/firing_pin/tag/red ammo_x_offset = 2 selfcharge = TRUE diff --git a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm index 4dbb9e31f7..14c026bc00 100644 --- a/code/modules/projectiles/guns/energy/pulse.dm +++ b/code/modules/projectiles/guns/energy/pulse.dm @@ -15,7 +15,7 @@ return /obj/item/gun/energy/pulse/prize - pin = /obj/item/device/firing_pin + pin = /obj/item/firing_pin /obj/item/gun/energy/pulse/prize/Initialize() . = ..() @@ -33,7 +33,7 @@ . = ..() /obj/item/gun/energy/pulse/loyalpin - pin = /obj/item/device/firing_pin/implant/mindshield + pin = /obj/item/firing_pin/implant/mindshield /obj/item/gun/energy/pulse/carbine name = "pulse carbine" @@ -48,7 +48,7 @@ flight_y_offset = 12 /obj/item/gun/energy/pulse/carbine/loyalpin - pin = /obj/item/device/firing_pin/implant/mindshield + pin = /obj/item/firing_pin/implant/mindshield /obj/item/gun/energy/pulse/pistol name = "pulse pistol" @@ -60,7 +60,7 @@ cell_type = "/obj/item/stock_parts/cell/pulse/pistol" /obj/item/gun/energy/pulse/pistol/loyalpin - pin = /obj/item/device/firing_pin/implant/mindshield + pin = /obj/item/firing_pin/implant/mindshield /obj/item/gun/energy/pulse/destroyer name = "pulse destroyer" diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 547e49cbdf..592b2bba26 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -267,7 +267,7 @@ /obj/item/gun/energy/temperature/security name = "security temperature gun" desc = "A weapon that can only be used to its full potential by the truly robust." - pin = /obj/item/device/firing_pin + pin = /obj/item/firing_pin /obj/item/gun/energy/laser/instakill name = "instakill rifle" diff --git a/code/modules/projectiles/guns/magic.dm b/code/modules/projectiles/guns/magic.dm index 36dc4937c5..ef705263c2 100644 --- a/code/modules/projectiles/guns/magic.dm +++ b/code/modules/projectiles/guns/magic.dm @@ -18,7 +18,7 @@ var/no_den_usage clumsy_check = 0 trigger_guard = TRIGGER_GUARD_ALLOW_ALL // Has no trigger at all, uses magic instead - pin = /obj/item/device/firing_pin/magic + pin = /obj/item/firing_pin/magic lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' //not really a gun and some toys use these inhands righthand_file = 'icons/mob/inhands/items_righthand.dmi' diff --git a/code/modules/projectiles/guns/misc/beam_rifle.dm b/code/modules/projectiles/guns/misc/beam_rifle.dm index 2ec645df2e..ce2e11bec7 100644 --- a/code/modules/projectiles/guns/misc/beam_rifle.dm +++ b/code/modules/projectiles/guns/misc/beam_rifle.dm @@ -58,7 +58,7 @@ var/projectile_damage = 30 var/projectile_stun = 0 var/projectile_setting_pierce = TRUE - var/delay = 65 + var/delay = 25 var/lastfire = 0 //ZOOMING @@ -82,7 +82,7 @@ cell_type = /obj/item/stock_parts/cell/infinite aiming_time = 0 recoil = 0 - pin = /obj/item/device/firing_pin + pin = /obj/item/firing_pin /obj/item/gun/energy/beam_rifle/equipped(mob/user) set_user(user) @@ -182,6 +182,7 @@ /obj/item/gun/energy/beam_rifle/Initialize() . = ..() + fire_delay = delay current_tracers = list() START_PROCESSING(SSprojectiles, src) zoom_lock_action = new(src) diff --git a/code/modules/projectiles/guns/misc/blastcannon.dm b/code/modules/projectiles/guns/misc/blastcannon.dm index 865689e440..7c7af4e27b 100644 --- a/code/modules/projectiles/guns/misc/blastcannon.dm +++ b/code/modules/projectiles/guns/misc/blastcannon.dm @@ -11,7 +11,7 @@ clumsy_check = FALSE randomspread = FALSE - var/obj/item/device/transfer_valve/bomb + var/obj/item/transfer_valve/bomb /obj/item/gun/blastcannon/Initialize() . = ..() @@ -19,9 +19,7 @@ pin = new /obj/item/gun/blastcannon/Destroy() - if(bomb) - qdel(bomb) - bomb = null + QDEL_NULL(bomb) return ..() /obj/item/gun/blastcannon/attack_self(mob/user) @@ -44,44 +42,44 @@ desc = initial(desc) /obj/item/gun/blastcannon/attackby(obj/O, mob/user) - if(istype(O, /obj/item/device/transfer_valve)) - var/obj/item/device/transfer_valve/T = O + if(istype(O, /obj/item/transfer_valve)) + var/obj/item/transfer_valve/T = O if(!T.tank_one || !T.tank_two) to_chat(user, "What good would an incomplete bomb do?") return FALSE - if(!user.transferItemToLoc(O, src)) - to_chat(user, "[O] seems to be stuck to your hand!") + if(!user.transferItemToLoc(T, src)) + to_chat(user, "[T] seems to be stuck to your hand!") return FALSE - user.visible_message("[user] attaches [O] to [src]!") - bomb = O + user.visible_message("[user] attaches [T] to [src]!") + bomb = T update_icon() return TRUE return ..() /obj/item/gun/blastcannon/proc/calculate_bomb() - if(!istype(bomb)||!istype(bomb.tank_one)||!istype(bomb.tank_two)) + if(!istype(bomb) || !istype(bomb.tank_one) || !istype(bomb.tank_two)) return 0 var/datum/gas_mixture/temp = new(60) //directional buff. temp.merge(bomb.tank_one.air_contents.remove_ratio(1)) temp.merge(bomb.tank_two.air_contents.remove_ratio(2)) for(var/i in 1 to 6) - temp.react() + temp.react(src) var/pressure = temp.return_pressure() qdel(temp) if(pressure < TANK_FRAGMENT_PRESSURE) return 0 - return (pressure/TANK_FRAGMENT_SCALE) + return (pressure / TANK_FRAGMENT_SCALE) /obj/item/gun/blastcannon/afterattack(atom/target, mob/user, flag, params) if((!bomb) || (!target) || (get_dist(get_turf(target), get_turf(user)) <= 2)) return ..() var/power = calculate_bomb() - qdel(bomb) + QDEL_NULL(bomb) update_icon() var/heavy = power * 0.2 var/medium = power * 0.5 var/light = power - user.visible_message("[user] opens \the [bomb] on \his [name] and fires a blast wave at \the [target]!","You open \the [bomb] on your [name] and fire a blast wave at \the [target]!") + user.visible_message("[user] opens [bomb] on [user.p_their()] [name] and fires a blast wave at [target]!","You open [bomb] on your [name] and fire a blast wave at [target]!") playsound(user, "explosion", 100, 1) var/turf/starting = get_turf(user) var/turf/targturf = get_turf(target) @@ -111,17 +109,21 @@ /obj/item/projectile/blastwave/Range() ..() + var/amount_destruction = EXPLODE_NONE if(heavyr) - loc.ex_act(EXPLODE_DEVASTATE) + amount_destruction = EXPLODE_DEVASTATE else if(mediumr) - loc.ex_act(EXPLODE_HEAVY) + amount_destruction = EXPLODE_HEAVY else if(lightr) - loc.ex_act(EXPLODE_LIGHT) + amount_destruction = EXPLODE_LIGHT + if(amount_destruction) + loc.ex_act(amount_destruction) else qdel(src) - heavyr-- - mediumr-- - lightr-- + + heavyr = max(heavyr - 1, 0) + mediumr = max(mediumr - 1, 0) + lightr = max(lightr - 1, 0) /obj/item/projectile/blastwave/ex_act() - return + return \ No newline at end of file diff --git a/code/modules/projectiles/pins.dm b/code/modules/projectiles/pins.dm index b571f5ce5e..b5cd9b70a7 100644 --- a/code/modules/projectiles/pins.dm +++ b/code/modules/projectiles/pins.dm @@ -1,4 +1,4 @@ -/obj/item/device/firing_pin +/obj/item/firing_pin name = "electronic firing pin" desc = "A small authentication device, to be inserted into a firearm receiver to allow operation. NT safety regulations require all new designs to incorporate one." icon = 'icons/obj/device.dmi' @@ -13,13 +13,12 @@ var/pin_removeable = 0 // Can be replaced by any pin. var/obj/item/gun/gun - -/obj/item/device/firing_pin/New(newloc) +/obj/item/firing_pin/New(newloc) ..() if(istype(newloc, /obj/item/gun)) gun = newloc -/obj/item/device/firing_pin/afterattack(atom/target, mob/user, proximity_flag) +/obj/item/firing_pin/afterattack(atom/target, mob/user, proximity_flag) if(proximity_flag) if(istype(target, /obj/item/gun)) var/obj/item/gun/G = target @@ -36,27 +35,27 @@ else to_chat(user, "This firearm already has a firing pin installed.") -/obj/item/device/firing_pin/emag_act(mob/user) +/obj/item/firing_pin/emag_act(mob/user) if(obj_flags & EMAGGED) return obj_flags |= EMAGGED to_chat(user, "You override the authentication mechanism.") -/obj/item/device/firing_pin/proc/gun_insert(mob/living/user, obj/item/gun/G) +/obj/item/firing_pin/proc/gun_insert(mob/living/user, obj/item/gun/G) gun = G forceMove(gun) gun.pin = src return -/obj/item/device/firing_pin/proc/gun_remove(mob/living/user) +/obj/item/firing_pin/proc/gun_remove(mob/living/user) gun.pin = null gun = null return -/obj/item/device/firing_pin/proc/pin_auth(mob/living/user) - return 1 +/obj/item/firing_pin/proc/pin_auth(mob/living/user) + return TRUE -/obj/item/device/firing_pin/proc/auth_fail(mob/living/user) +/obj/item/firing_pin/proc/auth_fail(mob/living/user) user.show_message(fail_message, 1) if(selfdestruct) user.show_message("SELF-DESTRUCTING...
      ", 1) @@ -67,45 +66,45 @@ -/obj/item/device/firing_pin/magic +/obj/item/firing_pin/magic name = "magic crystal shard" desc = "A small enchanted shard which allows magical weapons to fire." // Test pin, works only near firing range. -/obj/item/device/firing_pin/test_range +/obj/item/firing_pin/test_range name = "test-range firing pin" desc = "This safety firing pin allows weapons to be fired within proximity to a firing range." fail_message = "TEST RANGE CHECK FAILED." - pin_removeable = 1 + pin_removeable = TRUE -/obj/item/device/firing_pin/test_range/pin_auth(mob/living/user) +/obj/item/firing_pin/test_range/pin_auth(mob/living/user) for(var/obj/machinery/magnetic_controller/M in range(user, 3)) - return 1 - return 0 + return TRUE + return FALSE // Implant pin, checks for implant -/obj/item/device/firing_pin/implant +/obj/item/firing_pin/implant name = "implant-keyed firing pin" desc = "This is a security firing pin which only authorizes users who are implanted with a certain device." fail_message = "IMPLANT CHECK FAILED." var/obj/item/implant/req_implant = null -/obj/item/device/firing_pin/implant/pin_auth(mob/living/user) - if(istype(user)) +/obj/item/firing_pin/implant/pin_auth(mob/living/user) + if(user) for(var/obj/item/implant/I in user.implants) if(req_implant && I.type == req_implant) - return 1 - return 0 + return TRUE + return FALSE -/obj/item/device/firing_pin/implant/mindshield +/obj/item/firing_pin/implant/mindshield name = "mindshield firing pin" desc = "This Security firing pin authorizes the weapon for only mindshield-implanted users." icon_state = "firing_pin_loyalty" req_implant = /obj/item/implant/mindshield -/obj/item/device/firing_pin/implant/pindicate +/obj/item/firing_pin/implant/pindicate name = "syndicate firing pin" icon_state = "firing_pin_pindi" req_implant = /obj/item/implant/weapons_auth @@ -114,49 +113,49 @@ // Honk pin, clown's joke item. // Can replace other pins. Replace a pin in cap's laser for extra fun! -/obj/item/device/firing_pin/clown +/obj/item/firing_pin/clown name = "hilarious firing pin" desc = "Advanced clowntech that can convert any firearm into a far more useful object." color = "#FFFF00" fail_message = "HONK!" - force_replace = 1 + force_replace = TRUE -/obj/item/device/firing_pin/clown/pin_auth(mob/living/user) - playsound(src.loc, 'sound/items/bikehorn.ogg', 50, 1) - return 0 +/obj/item/firing_pin/clown/pin_auth(mob/living/user) + playsound(src, 'sound/items/bikehorn.ogg', 50, 1) + return FALSE // Ultra-honk pin, clown's deadly joke item. // A gun with ultra-honk pin is useful for clown and useless for everyone else. -/obj/item/device/firing_pin/clown/ultra/pin_auth(mob/living/user) +/obj/item/firing_pin/clown/ultra/pin_auth(mob/living/user) playsound(src.loc, 'sound/items/bikehorn.ogg', 50, 1) - if(!(user.has_trait(TRAIT_CLUMSY)) && !(user.mind && user.mind.assigned_role == "Clown")) - return 0 - return 1 + if(user && (!(user.has_trait(TRAIT_CLUMSY)) && !(user.mind && user.mind.assigned_role == "Clown"))) + return FALSE + return TRUE -/obj/item/device/firing_pin/clown/ultra/gun_insert(mob/living/user, obj/item/gun/G) +/obj/item/firing_pin/clown/ultra/gun_insert(mob/living/user, obj/item/gun/G) ..() - G.clumsy_check = 0 + G.clumsy_check = FALSE -/obj/item/device/firing_pin/clown/ultra/gun_remove(mob/living/user) +/obj/item/firing_pin/clown/ultra/gun_remove(mob/living/user) gun.clumsy_check = initial(gun.clumsy_check) ..() // Now two times deadlier! -/obj/item/device/firing_pin/clown/ultra/selfdestruct +/obj/item/firing_pin/clown/ultra/selfdestruct desc = "Advanced clowntech that can convert any firearm into a far more useful object. It has a small nitrobananium charge on it." - selfdestruct = 1 + selfdestruct = TRUE // DNA-keyed pin. // When you want to keep your toys for youself. -/obj/item/device/firing_pin/dna +/obj/item/firing_pin/dna name = "DNA-keyed firing pin" desc = "This is a DNA-locked firing pin which only authorizes one user. Attempt to fire once to DNA-link." icon_state = "firing_pin_dna" fail_message = "DNA CHECK FAILED." var/unique_enzymes = null -/obj/item/device/firing_pin/dna/afterattack(atom/target, mob/user, proximity_flag) +/obj/item/firing_pin/dna/afterattack(atom/target, mob/user, proximity_flag) ..() if(proximity_flag && iscarbon(target)) var/mob/living/carbon/M = target @@ -164,55 +163,53 @@ unique_enzymes = M.dna.unique_enzymes to_chat(user, "DNA-LOCK SET.") -/obj/item/device/firing_pin/dna/pin_auth(mob/living/carbon/user) - if(istype(user) && user.dna && user.dna.unique_enzymes) +/obj/item/firing_pin/dna/pin_auth(mob/living/carbon/user) + if(user && user.dna && user.dna.unique_enzymes) if(user.dna.unique_enzymes == unique_enzymes) - return 1 + return TRUE + return FALSE - return 0 - -/obj/item/device/firing_pin/dna/auth_fail(mob/living/carbon/user) +/obj/item/firing_pin/dna/auth_fail(mob/living/carbon/user) if(!unique_enzymes) - if(istype(user) && user.dna && user.dna.unique_enzymes) + if(user && user.dna && user.dna.unique_enzymes) unique_enzymes = user.dna.unique_enzymes to_chat(user, "DNA-LOCK SET.") else ..() -/obj/item/device/firing_pin/dna/dredd +/obj/item/firing_pin/dna/dredd desc = "This is a DNA-locked firing pin which only authorizes one user. Attempt to fire once to DNA-link. It has a small explosive charge on it." - selfdestruct = 1 - + selfdestruct = TRUE // Laser tag pins -/obj/item/device/firing_pin/tag +/obj/item/firing_pin/tag name = "laser tag firing pin" desc = "A recreational firing pin, used in laser tag units to ensure users have their vests on." fail_message = "SUIT CHECK FAILED." var/obj/item/clothing/suit/suit_requirement = null var/tagcolor = "" -/obj/item/device/firing_pin/tag/pin_auth(mob/living/user) +/obj/item/firing_pin/tag/pin_auth(mob/living/user) if(ishuman(user)) var/mob/living/carbon/human/M = user if(istype(M.wear_suit, suit_requirement)) - return 1 + return TRUE to_chat(user, "You need to be wearing [tagcolor] laser tag armor!") - return 0 + return FALSE -/obj/item/device/firing_pin/tag/red +/obj/item/firing_pin/tag/red name = "red laser tag firing pin" icon_state = "firing_pin_red" suit_requirement = /obj/item/clothing/suit/redtag tagcolor = "red" -/obj/item/device/firing_pin/tag/blue +/obj/item/firing_pin/tag/blue name = "blue laser tag firing pin" icon_state = "firing_pin_blue" suit_requirement = /obj/item/clothing/suit/bluetag tagcolor = "blue" -/obj/item/device/firing_pin/Destroy() +/obj/item/firing_pin/Destroy() if(gun) gun.pin = null return ..() diff --git a/code/modules/projectiles/projectile/bullets/sniper.dm b/code/modules/projectiles/projectile/bullets/sniper.dm index 835a858308..78be94339c 100644 --- a/code/modules/projectiles/projectile/bullets/sniper.dm +++ b/code/modules/projectiles/projectile/bullets/sniper.dm @@ -18,7 +18,7 @@ /obj/item/projectile/bullet/p50/soporific name =".50 soporific bullet" armour_penetration = 0 - nodamage = TRUE + damage = 0 dismemberment = 0 knockdown = 0 breakthings = FALSE diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm index 2d7f8f5cce..af01a0049f 100644 --- a/code/modules/projectiles/projectile/energy.dm +++ b/code/modules/projectiles/projectile/energy.dm @@ -71,7 +71,7 @@ /obj/effect/nettingportal/Initialize() . = ..() - var/obj/item/device/radio/beacon/teletarget = null + var/obj/item/radio/beacon/teletarget = null for(var/obj/machinery/computer/teleporter/com in GLOB.machines) if(com.target) if(com.power_station && com.power_station.teleporter_hub && com.power_station.engaged) diff --git a/code/modules/projectiles/projectile/energy/net_snare.dm b/code/modules/projectiles/projectile/energy/net_snare.dm index 48544d1c28..afe9a2e31d 100644 --- a/code/modules/projectiles/projectile/energy/net_snare.dm +++ b/code/modules/projectiles/projectile/energy/net_snare.dm @@ -31,7 +31,7 @@ /obj/effect/nettingportal/Initialize() . = ..() - var/obj/item/device/beacon/teletarget = null + var/obj/item/beacon/teletarget = null for(var/obj/machinery/computer/teleporter/com in GLOB.machines) if(com.target) if(com.power_station && com.power_station.teleporter_hub && com.power_station.engaged) diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index 5fcb554c7d..afa73fcd4a 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -72,7 +72,7 @@ cached_reagents = null if(my_atom && my_atom.reagents == src) my_atom.reagents = null - + my_atom = null // Used in attack logs for reagents in pills and such /datum/reagents/proc/log_list() diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index 02d6bb9152..2db6058852 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -292,9 +292,6 @@ obj/machinery/chem_dispenser/proc/work_animation() update_icon() return - if(exchange_parts(user, I)) - return - if(default_deconstruction_crowbar(I)) return if(istype(I, /obj/item/reagent_containers) && !(I.flags_1 & ABSTRACT_1) && I.is_open_container()) diff --git a/code/modules/reagents/chemistry/machinery/chem_heater.dm b/code/modules/reagents/chemistry/machinery/chem_heater.dm index fa88cab801..73413a5e7b 100644 --- a/code/modules/reagents/chemistry/machinery/chem_heater.dm +++ b/code/modules/reagents/chemistry/machinery/chem_heater.dm @@ -60,9 +60,6 @@ if(default_deconstruction_screwdriver(user, "mixer0b", "mixer0b", I)) return - if(exchange_parts(user, I)) - return - if(default_deconstruction_crowbar(I)) return diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index f915bc497f..89b63f4ee5 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -79,8 +79,6 @@ if(default_deconstruction_screwdriver(user, "mixer0_nopower", "mixer0", I)) return - else if(exchange_parts(user, I)) - return else if(default_deconstruction_crowbar(I)) return @@ -144,9 +142,9 @@ data["isPillBottleLoaded"] = bottle ? 1 : 0 if(bottle) + GET_COMPONENT_FROM(STRB, /datum/component/storage, bottle) data["pillBotContent"] = bottle.contents.len - data["pillBotMaxContent"] = bottle.storage_slots - + data["pillBotMaxContent"] = STRB.max_items var/beakerContents[0] if(beaker) @@ -160,7 +158,6 @@ bufferContents.Add(list(list("name" = N.name, "id" = N.id, "volume" = N.volume))) // ^ data["bufferContents"] = bufferContents - return data /obj/machinery/chem_master/ui_act(action, params) @@ -222,12 +219,18 @@ if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !issilicon(usr))) return var/obj/item/reagent_containers/pill/P + var/target_loc = drop_location() + var/drop_threshold = INFINITY + if(bottle) + GET_COMPONENT_FROM(STRB, /datum/component/storage, bottle) + if(STRB) + drop_threshold = STRB.max_items - bottle.contents.len for(var/i = 0; i < amount; i++) - if(bottle && bottle.contents.len < bottle.storage_slots) - P = new/obj/item/reagent_containers/pill(bottle) + if(i < drop_threshold) + P = new(target_loc) else - P = new/obj/item/reagent_containers/pill(drop_location()) + P = new(drop_location()) P.name = trim("[name] pill") adjust_item_drop_location(P) reagents.trans_to(P,vol_each) @@ -303,7 +306,7 @@ reagents.trans_to(P, vol_part) . = TRUE //CITADEL ADD Hypospray Vials - if("createvial") + if("createVial") var/many = params["many"] if(reagents.total_volume == 0) return @@ -314,21 +317,21 @@ amount_full = round(reagents.total_volume / 30) vol_part = reagents.total_volume % 30 var/name = stripped_input(usr, "Name:","Name your hypovial!", (reagents.total_volume ? reagents.get_master_reagent_name() : " "), MAX_NAME_LEN) - if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, BE_CLOSE)) + if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !issilicon(usr))) return - var/obj/item/reagent_containers/glass/bottle/vial/small/V + var/obj/item/reagent_containers/glass/bottle/vial/small/P for(var/i = 0; i < amount_full; i++) - V = new/obj/item/reagent_containers/glass/bottle/vial/small(drop_location()) - V.name = trim("[name] hypovial") - adjust_item_drop_location(V) - reagents.trans_to(V, 30) + P = new/obj/item/reagent_containers/glass/bottle/vial/small(drop_location()) + P.name = trim("[name] hypovial") + adjust_item_drop_location(P) + reagents.trans_to(P, 30) if(vol_part) - V = new/obj/item/reagent_containers/glass/bottle/vial/small(drop_location()) - V.name = trim("[name] hypovial") - adjust_item_drop_location(V) - reagents.trans_to(V, vol_part) + P = new/obj/item/reagent_containers/glass/bottle/vial/small(drop_location()) + P.name = trim("[name] hypovial") + adjust_item_drop_location(P) + reagents.trans_to(P, vol_part) . = TRUE //END CITADEL ADDITIONS if("analyze") diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index 3cdaaa0f5f..a4d9829aa6 100644 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm +++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm @@ -101,16 +101,14 @@ //Fill machine with a bag! if(istype(I, /obj/item/storage/bag)) - var/obj/item/storage/bag/B = I - for (var/obj/item/reagent_containers/food/snacks/grown/G in B.contents) - B.remove_from_storage(G, src) - holdingitems[G] = TRUE - if(length(holdingitems) >= limit) //Sanity checking so the blender doesn't overfill + var/list/inserted = list() + if(I.SendSignal(COMSIG_TRY_STORAGE_TAKE_TYPE, /obj/item/reagent_containers/food/snacks/grown, src, limit - length(holdingitems), null, null, user, inserted)) + for(var/i in inserted) + holdingitems[i] = TRUE + if(!I.contents.len) + to_chat(user, "You empty [I] into [src].") + else to_chat(user, "You fill [src] to the brim.") - break - - if(!I.contents.len) - to_chat(user, "You empty [I] into [src].") updateUsrDialog() return TRUE diff --git a/code/modules/reagents/chemistry/machinery/scp_294.dm b/code/modules/reagents/chemistry/machinery/scp_294.dm deleted file mode 100644 index 59502913d4..0000000000 --- a/code/modules/reagents/chemistry/machinery/scp_294.dm +++ /dev/null @@ -1,95 +0,0 @@ -////////////////////////////////////////// -// SCP 294 // -// // -// This is a child of a chemistry // -// dispenser. Info of how it works at // -// http://www.scp-wiki.net/scp-294 // -// // -////////////////////////////////////////// - -/obj/machinery/chem_dispenser/scp_294 - name = "\improper strange coffee machine" - desc = "It appears to be a standard coffee vending machine, the only noticeable difference being an entry touchpad with buttons corresponding to a Galactic Common QWERTY keyboard." - icon = 'icons/obj/scp.dmi' - icon_state = "294_bottom" - amount = 10 - resistance_flags = INDESTRUCTIBLE | FIRE_PROOF | ACID_PROOF | LAVA_PROOF - working_state = null - nopower_state = null - flags_1 = NODECONSTRUCT_1 - var/static/list/shortcuts = list( - "meth" = "methamphetamine", - "tricord" = "tricordrazine" - ) - var/mutable_appearance/top_overlay - -/obj/machinery/chem_dispenser/scp_294/Initialize() - . = ..() - GLOB.poi_list += src - top_overlay = mutable_appearance(icon, "294_top", layer = ABOVE_ALL_MOB_LAYER) - update_icon() - - -/obj/machinery/chem_dispenser/scp_294/update_icon() - cut_overlays() - add_overlay(top_overlay) - -/obj/machinery/chem_dispenser/scp_294/Destroy() - . = ..() - GLOB.poi_list -= src - QDEL_NULL(top_overlay) - -/obj/machinery/chem_dispenser/scp_294/display_beaker() - return - -/obj/machinery/chem_dispenser/scp_294/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \ - datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) - ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) - if(!ui) - ui = new(user, src, ui_key, "scp_294", name, 390, 315, master_ui, state) - ui.open() - -/obj/machinery/chem_dispenser/scp_294/ui_act(action, params) - if(..()) - return - update_icon() - switch(action) - if("ejectBeaker") - if(beaker) - beaker.forceMove(drop_location()) - if(Adjacent(usr) && !issilicon(usr)) - usr.put_in_hands(beaker) - beaker = null - . = TRUE - if("input") - var/input_reagent = replacetext(lowertext(input("Enter the name of any liquid", "Input") as text), " ", "") //95% of the time, the reagent id is a lowercase/no spaces version of the name - if(shortcuts[input_reagent]) - input_reagent = shortcuts[input_reagent] - else - input_reagent = find_reagent(input_reagent) - if(!input_reagent || !GLOB.chemical_reagents_list[input_reagent]) - say("OUT OF RANGE") - return - else - if(!beaker) - return - else if(!beaker.reagents && !QDELETED(beaker)) - beaker.create_reagents(beaker.volume) - beaker.reagents.add_reagent(input_reagent, amount) - if("makecup") - if(beaker) - return - beaker = new /obj/item/reagent_containers/food/drinks/sillycup(src) - visible_message("[src] dispenses a small, paper cup.") - -/obj/machinery/chem_dispenser/scp_294/proc/find_reagent(input) - . = FALSE - if(GLOB.chemical_reagents_list[input]) //prefer IDs! - var/datum/reagent/R = GLOB.chemical_reagents_list[input] - if(R.can_synth) - return input - else - for(var/X in GLOB.chemical_reagents_list) - var/datum/reagent/R = GLOB.chemical_reagents_list[X] - if(R.can_synth && input == replacetext(lowertext(R.name), " ", "")) - return X diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm index 3fe5d47479..7369fd6042 100644 --- a/code/modules/reagents/chemistry/reagents.dm +++ b/code/modules/reagents/chemistry/reagents.dm @@ -1,7 +1,3 @@ -#define SOLID 1 -#define LIQUID 2 -#define GAS 3 - #define REM REAGENTS_EFFECT_MULTIPLIER //Various reagents diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 4c475fd4c4..b98f3c0760 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -438,7 +438,7 @@ if(hotspot) var/datum/gas_mixture/lowertemp = T.remove_air(T.air.total_moles()) lowertemp.temperature = max( min(lowertemp.temperature-2000,lowertemp.temperature / 2) ,0) - lowertemp.react() + lowertemp.react(src) T.assume_air(lowertemp) qdel(hotspot) @@ -615,6 +615,7 @@ to_chat(M, "Your eyes sting!") M.blind_eyes(2) + /datum/reagent/consumable/nutriment/stabilized name = "Stabilized Nutriment" id = "stabilizednutriment" @@ -627,7 +628,7 @@ if(M.nutrition > NUTRITION_LEVEL_FULL - 25) M.nutrition -= 3*nutriment_factor ..() - + ////Lavaland Flora Reagents//// diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 9eb81e918f..6a57ff0c18 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -146,7 +146,7 @@ if(T.air) var/datum/gas_mixture/G = T.air G.temperature = max(min(G.temperature-(CT*1000),G.temperature/CT),0) - G.react() + G.react(src) qdel(hotspot) var/obj/effect/acid/A = (locate(/obj/effect/acid) in T) if(A) @@ -587,7 +587,7 @@ ..() if(!istype(H)) return - if(!H.dna || !H.dna.species || !(H.dna.species.species_traits & SPECIES_ORGANIC)) + if(!H.dna || !H.dna.species || !(MOB_ORGANIC in H.mob_biotypes)) return if(isjellyperson(H)) @@ -1472,7 +1472,7 @@ /datum/reagent/carpet/reaction_turf(turf/T, reac_volume) if(isplatingturf(T) || istype(T, /turf/open/floor/plasteel)) var/turf/open/floor/F = T - F.ChangeTurf(/turf/open/floor/carpet) + F.PlaceOnTop(/turf/open/floor/carpet) ..() return @@ -1817,12 +1817,6 @@ L.remove_trait(TRAIT_PACIFISM, id) ..() -/datum/reagent/pax/borg - name = "synth-pax" - id = "synthpax" - description = "A colorless liquid that suppresses violence on the subjects. Cheaper to synthetize, but wears out faster than normal Pax." - metabolization_rate = 1.5 * REAGENTS_METABOLISM - /datum/reagent/bz_metabolites name = "BZ metabolites" id = "bz_metabolites" @@ -1845,3 +1839,40 @@ if(changeling) changeling.chem_charges = max(changeling.chem_charges-2, 0) return ..() + +/datum/reagent/pax/peaceborg + name = "synth-pax" + id = "synthpax" + description = "A colorless liquid that suppresses violence on the subjects. Cheaper to synthetize, but wears out faster than normal Pax." + metabolization_rate = 1.5 * REAGENTS_METABOLISM + +/datum/reagent/peaceborg/confuse + name = "Dizzying Solution" + id = "dizzysolution" + description = "Makes the target off balance and dizzy" + metabolization_rate = 1.5 * REAGENTS_METABOLISM + taste_description = "dizziness" + +/datum/reagent/peaceborg/confuse/on_mob_life(mob/living/M) + if(M.confused < 6) + M.confused = CLAMP(M.confused + 3, 0, 5) + if(M.dizziness < 6) + M.dizziness = CLAMP(M.dizziness + 3, 0, 5) + if(prob(20)) + to_chat(M, "You feel confused and disorientated.") + ..() + +/datum/reagent/peaceborg/tire + name = "Tiring Solution" + id = "tiresolution" + description = "An extremely weak stamina-toxin that tires out the target. Completely harmless." + metabolization_rate = 1.5 * REAGENTS_METABOLISM + taste_description = "tiredness" + +/datum/reagent/peaceborg/tire/on_mob_life(mob/living/M) + var/healthcomp = (100 - M.health) //DOES NOT ACCOUNT FOR ADMINBUS THINGS THAT MAKE YOU HAVE MORE THAN 200/210 HEALTH, OR SOMETHING OTHER THAN A HUMAN PROCESSING THIS. + if(M.getStaminaLoss() < (45 - healthcomp)) //At 50 health you would have 200 - 150 health meaning 50 compensation. 60 - 50 = 10, so would only do 10-19 stamina.) + M.adjustStaminaLoss(10) + if(prob(30)) + to_chat(M, "You should sit down and take a rest...") + ..() diff --git a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm index 6438a82276..30117d4ce3 100644 --- a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm @@ -273,7 +273,7 @@ var/datum/gas_mixture/G = T.air if(G.temperature > T20C) G.temperature = max(G.temperature/2,T20C) - G.react() + G.react(src) qdel(hotspot) /datum/reagent/firefighting_foam/reaction_obj(obj/O, reac_volume) diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index 2746f311f8..0972f32ad7 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -231,12 +231,10 @@ toxpwr = 1 /datum/reagent/toxin/pestkiller/reaction_mob(mob/living/M, method=TOUCH, reac_volume) - if(method == VAPOR) - if(iscarbon(M)) - var/mob/living/carbon/C = M - if(!C.wear_mask) // If not wearing a mask - var/damage = min(round(0.4*reac_volume, 0.1),10) - C.adjustToxLoss(damage) + ..() + if(MOB_BUG in M.mob_biotypes) + var/damage = min(round(0.4*reac_volume, 0.1),10) + M.adjustToxLoss(damage) /datum/reagent/toxin/spore name = "Spore Toxin" @@ -847,39 +845,6 @@ . = 1 ..() -/datum/reagent/toxin/peaceborg/confuse - name = "Dizzying Solution" - id = "dizzysolution" - description = "Makes the target off balance and dizzy" - toxpwr = 0 - metabolization_rate = 1.5 * REAGENTS_METABOLISM - taste_description = "dizziness" - -/datum/reagent/toxin/peaceborg/confuse/on_mob_life(mob/living/M) - if(M.confused < 6) - M.confused = CLAMP(M.confused + 3, 0, 5) - if(M.dizziness < 6) - M.dizziness = CLAMP(M.dizziness + 3, 0, 5) - if(prob(20)) - to_chat(M, "You feel confused and disorientated.") - ..() - -/datum/reagent/toxin/peaceborg/tire - name = "Tiring Solution" - id = "tiresolution" - description = "An extremely weak stamina-toxin that tires out the target. Completely harmless." - toxpwr = 0 - metabolization_rate = 1.5 * REAGENTS_METABOLISM - taste_description = "tiredness" - -/datum/reagent/toxin/peaceborg/tire/on_mob_life(mob/living/M) - var/healthcomp = (100 - M.health) //DOES NOT ACCOUNT FOR ADMINBUS THINGS THAT MAKE YOU HAVE MORE THAN 200/210 HEALTH, OR SOMETHING OTHER THAN A HUMAN PROCESSING THIS. - if(M.getStaminaLoss() < (45 - healthcomp)) //At 50 health you would have 200 - 150 health meaning 50 compensation. 60 - 50 = 10, so would only do 10-19 stamina.) - M.adjustStaminaLoss(10) - if(prob(30)) - to_chat(M, "You should sit down and take a rest...") - ..() - /datum/reagent/toxin/delayed name = "Toxin Microcapsules" id = "delayed_toxin" diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm index 13753db9eb..0ab98a1f99 100644 --- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm +++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm @@ -314,7 +314,7 @@ /datum/chemical_reaction/slime/slimeglow/on_reaction(datum/reagents/holder) var/turf/T = get_turf(holder.my_atom) T.visible_message("The slime begins to emit a soft light. Squeezing it will cause it to grow brightly.") - new /obj/item/device/flashlight/slime(T) + new /obj/item/flashlight/slime(T) ..() //Purple @@ -561,8 +561,8 @@ required_other = 1 /datum/chemical_reaction/slime/slimecamera/on_reaction(datum/reagents/holder) - new /obj/item/device/camera(get_turf(holder.my_atom)) - new /obj/item/device/camera_film(get_turf(holder.my_atom)) + new /obj/item/camera(get_turf(holder.my_atom)) + new /obj/item/camera_film(get_turf(holder.my_atom)) ..() /datum/chemical_reaction/slime/slimefloor diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm index b4116a2915..ef41c7951e 100644 --- a/code/modules/reagents/reagent_containers/borghydro.dm +++ b/code/modules/reagents/reagent_containers/borghydro.dm @@ -67,6 +67,21 @@ Borg Hypospray modes[reagent] = modes.len + 1 +/obj/item/reagent_containers/borghypo/proc/del_reagent(reagent) + reagent_ids -= reagent + var/datum/reagents/RG + var/datum/reagents/TRG + for(var/i in 1 to reagent_ids.len) + TRG = reagent_list[i] + if (TRG.has_reagent(reagent)) + RG = TRG + break + if (RG) + reagent_list -= RG + RG.del_reagent(reagent) + + modes[reagent] = modes.len - 1 + /obj/item/reagent_containers/borghypo/proc/regenerate_reagents() if(iscyborg(src.loc)) var/mob/living/silicon/robot/R = src.loc diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 4b4c786987..ddc88301b2 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -101,12 +101,15 @@ playsound(src, 'sound/effects/refill.ogg', 50, 1) W.update_icon() else + var/turf/T = get_turf(src) + var/area/A = get_area(T) user.visible_message("[user] catastrophically fails at refilling [user.p_their()] [W.name]!", "That was stupid of you.") - var/message_admins = "[key_name_admin(user)] triggered a fueltank explosion via welding tool." + var/message_admins = "[key_name_admin(user)] triggered a fueltank explosion via welding tool at [A] [ADMIN_COORDJMP(T)]." GLOB.bombers += message_admins message_admins(message_admins) - var/message_log = "triggered a fueltank explosion via welding tool." + var/message_log = "triggered a fueltank explosion via welding tool at [A] [COORD(T)]." user.log_message(message_log, INDIVIDUAL_ATTACK_LOG) + log_game("[key_name(user)] [message_log]") log_attack("[key_name(user)] [message_log]") boom() return diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index 5f3470725d..41fbc5092d 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -5,12 +5,12 @@ GLOBAL_LIST_EMPTY(conveyors_by_id) /obj/machinery/conveyor icon = 'icons/obj/recycling.dmi' - icon_state = "conveyor0" + icon_state = "conveyor_map" name = "conveyor belt" desc = "A conveyor belt." anchored = TRUE layer = BELOW_OPEN_DOOR_LAYER - var/operating = FALSE // 1 if running forward, -1 if backwards, 0 if off + var/operating = 0 // 1 if running forward, -1 if backwards, 0 if off var/operable = 1 // true if can operate (no broken segments in this belt run) var/forwards // this is the default (forward) direction, set by the map dir var/backwards // hopefully self-explanatory @@ -18,13 +18,22 @@ GLOBAL_LIST_EMPTY(conveyors_by_id) var/list/affecting // the list of all items that will be moved this ptick var/id = "" // the control ID - must match controller ID - var/verted = 1 // set to -1 to have the conveyour belt be inverted, so you can use the other corner icons + var/verted = 1 // Inverts the direction the conveyor belt moves. speed_process = TRUE /obj/machinery/conveyor/centcom_auto id = "round_end_belt" +/obj/machinery/conveyor/inverted //Directions inverted so you can use different corner peices. + icon_state = "conveyor_map_inverted" + verted = -1 + +/obj/machinery/conveyor/inverted/Initialize(mapload) + . = ..() + if(mapload && !(dir in GLOB.diagonals)) + log_game("### MAPPING ERROR: [src] at [COORD(src)] spawned without using a diagonal dir. Please replace with a normal version.") + // Auto conveyour is always on unless unpowered /obj/machinery/conveyor/auto/Initialize(mapload, newdir) @@ -214,7 +223,8 @@ GLOBAL_LIST_EMPTY(conveyors_by_id) var/position = 0 // 0 off, -1 reverse, 1 forward var/last_pos = -1 // last direction setting var/operated = 1 // true if just operated - var/convdir = 0 // 0 is two way switch, 1 and -1 means one way + var/oneway = FALSE // if the switch only operates the conveyor belts in a single direction. + var/invert_icon = FALSE // If the level points the opposite direction when it's turned on. var/id = "" // must match conveyor IDs to control them @@ -247,9 +257,15 @@ GLOBAL_LIST_EMPTY(conveyors_by_id) /obj/machinery/conveyor_switch/update_icon() if(position<0) - icon_state = "switch-rev" + if(invert_icon) + icon_state = "switch-fwd" + else + icon_state = "switch-rev" else if(position>0) - icon_state = "switch-fwd" + if(invert_icon) + icon_state = "switch-rev" + else + icon_state = "switch-fwd" else icon_state = "switch-off" @@ -271,8 +287,8 @@ GLOBAL_LIST_EMPTY(conveyors_by_id) /obj/machinery/conveyor_switch/interact(mob/user) add_fingerprint(user) if(position == 0) - if(convdir) //is it a oneway switch - position = convdir + if(oneway) //is it a oneway switch + position = oneway else if(last_pos < 0) position = 1 @@ -289,6 +305,7 @@ GLOBAL_LIST_EMPTY(conveyors_by_id) // find any switches with same id as this one, and set their positions to match us for(var/obj/machinery/conveyor_switch/S in GLOB.conveyors_by_id[id]) + S.invert_icon = invert_icon S.position = position S.update_icon() CHECK_TICK @@ -302,8 +319,14 @@ GLOBAL_LIST_EMPTY(conveyors_by_id) qdel(src) /obj/machinery/conveyor_switch/oneway - convdir = 1 //Set to 1 or -1 depending on which way you want the convayor to go. (In other words keep at 1 and set the proper dir on the belts.) + icon_state = "conveyor_switch_oneway" desc = "A conveyor control switch. It appears to only go in one direction." + oneway = TRUE + +/obj/machinery/conveyor_switch/oneway/Initialize() + . = ..() + if((dir == NORTH) || (dir == WEST)) + invert_icon = TRUE // // CONVEYOR CONSTRUCTION STARTS HERE diff --git a/code/modules/recycling/disposal/bin.dm b/code/modules/recycling/disposal/bin.dm index 529d883916..6defa464b9 100644 --- a/code/modules/recycling/disposal/bin.dm +++ b/code/modules/recycling/disposal/bin.dm @@ -246,13 +246,16 @@ return src //How disposal handles getting a storage dump from a storage object -/obj/machinery/disposal/storage_contents_dump_act(obj/item/storage/src_object, mob/user) +/obj/machinery/disposal/storage_contents_dump_act(datum/component/storage/src_object, mob/user) + . = ..() + if(.) + return for(var/obj/item/I in src_object) - if(user.s_active != src_object) + if(user.active_storage != src_object) if(I.on_found(user)) return src_object.remove_from_storage(I, src) - return 1 + return TRUE // Disposal bin // Holds items for disposal into pipe system @@ -268,11 +271,12 @@ // attack by item places it in to disposal /obj/machinery/disposal/bin/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/storage/bag/trash)) + if(istype(I, /obj/item/storage/bag/trash)) //Not doing component overrides because this is a specific type. var/obj/item/storage/bag/trash/T = I + GET_COMPONENT_FROM(STR, /datum/component/storage, T) to_chat(user, "You empty the bag.") for(var/obj/item/O in T.contents) - T.remove_from_storage(O,src) + STR.remove_from_storage(O,src) T.update_icon() update_icon() else @@ -281,7 +285,7 @@ // handle machine interaction /obj/machinery/disposal/bin/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \ - datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) + datum/tgui/master_ui = null, datum/ui_state/state = GLOB.notcontained_state) if(stat & BROKEN) return ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) diff --git a/code/modules/recycling/disposal/pipe_sorting.dm b/code/modules/recycling/disposal/pipe_sorting.dm index bff37c6f81..5e26e9b767 100644 --- a/code/modules/recycling/disposal/pipe_sorting.dm +++ b/code/modules/recycling/disposal/pipe_sorting.dm @@ -59,8 +59,8 @@ /obj/structure/disposalpipe/sorting/mail/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/device/destTagger)) - var/obj/item/device/destTagger/O = I + if(istype(I, /obj/item/destTagger)) + var/obj/item/destTagger/O = I if(O.currTag)// Tagger has a tag set if(O.currTag in sortTypes) diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index a669f23dde..a1366da6f2 100644 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -23,8 +23,8 @@ AM.ex_act() /obj/structure/bigDelivery/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/device/destTagger)) - var/obj/item/device/destTagger/O = W + if(istype(W, /obj/item/destTagger)) + var/obj/item/destTagger/O = W if(sortTag != O.currTag) var/tag = uppertext(GLOB.TAGGERLOCATIONS[O.currTag]) @@ -109,8 +109,8 @@ qdel(src) /obj/item/smallDelivery/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/device/destTagger)) - var/obj/item/device/destTagger/O = W + if(istype(W, /obj/item/destTagger)) + var/obj/item/destTagger/O = W if(sortTag != O.currTag) var/tag = uppertext(GLOB.TAGGERLOCATIONS[O.currTag]) @@ -141,9 +141,10 @@ to_chat(user, "You need more paper!") -/obj/item/device/destTagger +/obj/item/destTagger name = "destination tagger" desc = "Used to set the destination of properly wrapped packages." + icon = 'icons/obj/device.dmi' icon_state = "cargotagger" var/currTag = 0 //The whole system for the sorttype var is determined based on the order of this list, @@ -159,7 +160,7 @@ flags_1 = CONDUCT_1 slot_flags = SLOT_BELT -/obj/item/device/destTagger/suicide_act(mob/living/user) +/obj/item/destTagger/suicide_act(mob/living/user) user.visible_message("[user] begins tagging [user.p_their()] final destination! It looks like [user.p_theyre()] trying to commit suicide!") if (islizard(user)) to_chat(user, "*HELL*")//lizard nerf @@ -168,7 +169,7 @@ playsound(src, 'sound/machines/twobeep.ogg', 100, 1) return BRUTELOSS -/obj/item/device/destTagger/proc/openwindow(mob/user) +/obj/item/destTagger/proc/openwindow(mob/user) var/dat = "

      TagMaster 2.2

      " dat += "" @@ -183,11 +184,11 @@ user << browse(dat, "window=destTagScreen;size=450x350") onclose(user, "destTagScreen") -/obj/item/device/destTagger/attack_self(mob/user) +/obj/item/destTagger/attack_self(mob/user) openwindow(user) return -/obj/item/device/destTagger/Topic(href, href_list) +/obj/item/destTagger/Topic(href, href_list) add_fingerprint(usr) if(href_list["nextTag"]) var/n = text2num(href_list["nextTag"]) diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm index 52f06a0acc..b50c6df473 100644 --- a/code/modules/research/designs/autolathe_designs.dm +++ b/code/modules/research/designs/autolathe_designs.dm @@ -23,7 +23,7 @@ id = "flashlight" build_type = AUTOLATHE materials = list(MAT_METAL = 50, MAT_GLASS = 20) - build_path = /obj/item/device/flashlight + build_path = /obj/item/flashlight category = list("initial","Tools") /datum/design/extinguisher @@ -39,7 +39,7 @@ id = "multitool" build_type = AUTOLATHE materials = list(MAT_METAL = 50, MAT_GLASS = 20) - build_path = /obj/item/device/multitool + build_path = /obj/item/multitool category = list("initial","Tools") /datum/design/analyzer @@ -47,7 +47,7 @@ id = "analyzer" build_type = AUTOLATHE materials = list(MAT_METAL = 30, MAT_GLASS = 20) - build_path = /obj/item/device/analyzer + build_path = /obj/item/analyzer category = list("initial","Tools") /datum/design/tscanner @@ -55,7 +55,7 @@ id = "tscanner" build_type = AUTOLATHE materials = list(MAT_METAL = 150) - build_path = /obj/item/device/t_scanner + build_path = /obj/item/t_scanner category = list("initial","Tools") /datum/design/weldingtool @@ -168,7 +168,7 @@ id = "camera" build_type = AUTOLATHE materials = list(MAT_METAL = 50, MAT_GLASS = 100) - build_path = /obj/item/device/camera + build_path = /obj/item/camera category = list("initial", "Misc") /datum/design/camera_film @@ -176,7 +176,7 @@ id = "camera_film" build_type = AUTOLATHE materials = list(MAT_METAL = 10, MAT_GLASS = 10) - build_path = /obj/item/device/camera_film + build_path = /obj/item/camera_film category = list("initial", "Misc") /datum/design/earmuffs @@ -192,7 +192,7 @@ id = "pipe_painter" build_type = AUTOLATHE materials = list(MAT_METAL = 5000, MAT_GLASS = 2000) - build_path = /obj/item/device/pipe_painter + build_path = /obj/item/pipe_painter category = list("initial", "Misc") /datum/design/airlock_painter @@ -316,7 +316,7 @@ id = "plant_analyzer" build_type = AUTOLATHE materials = list(MAT_METAL = 30, MAT_GLASS = 20) - build_path = /obj/item/device/plant_analyzer + build_path = /obj/item/plant_analyzer category = list("initial","Misc") /datum/design/shovel @@ -420,7 +420,7 @@ id = "healthanalyzer" build_type = AUTOLATHE materials = list(MAT_METAL = 500, MAT_GLASS = 50) - build_path = /obj/item/device/healthanalyzer + build_path = /obj/item/healthanalyzer category = list("initial", "Medical") /datum/design/pillbottle @@ -460,7 +460,7 @@ id = "recorder" build_type = AUTOLATHE materials = list(MAT_METAL = 60, MAT_GLASS = 30) - build_path = /obj/item/device/taperecorder/empty + build_path = /obj/item/taperecorder/empty category = list("initial", "Misc") /datum/design/tape @@ -468,7 +468,7 @@ id = "tape" build_type = AUTOLATHE materials = list(MAT_METAL = 20, MAT_GLASS = 5) - build_path = /obj/item/device/tape/random + build_path = /obj/item/tape/random category = list("initial", "Misc") /datum/design/igniter @@ -476,7 +476,7 @@ id = "igniter" build_type = AUTOLATHE materials = list(MAT_METAL = 500, MAT_GLASS = 50) - build_path = /obj/item/device/assembly/igniter + build_path = /obj/item/assembly/igniter category = list("initial", "Misc") /datum/design/signaler @@ -484,7 +484,7 @@ id = "signaler" build_type = AUTOLATHE materials = list(MAT_METAL = 400, MAT_GLASS = 120) - build_path = /obj/item/device/assembly/signaler + build_path = /obj/item/assembly/signaler category = list("initial", "T-Comm") /datum/design/radio_headset @@ -492,7 +492,7 @@ id = "radio_headset" build_type = AUTOLATHE materials = list(MAT_METAL = 75) - build_path = /obj/item/device/radio/headset + build_path = /obj/item/radio/headset category = list("initial", "T-Comm") /datum/design/bounced_radio @@ -500,7 +500,7 @@ id = "bounced_radio" build_type = AUTOLATHE materials = list(MAT_METAL = 75, MAT_GLASS = 25) - build_path = /obj/item/device/radio/off + build_path = /obj/item/radio/off category = list("initial", "T-Comm") /datum/design/intercom_frame @@ -516,7 +516,7 @@ id = "infrared_emitter" build_type = AUTOLATHE materials = list(MAT_METAL = 1000, MAT_GLASS = 500) - build_path = /obj/item/device/assembly/infra + build_path = /obj/item/assembly/infra category = list("initial", "Misc") /datum/design/health_sensor @@ -524,7 +524,7 @@ id = "health_sensor" build_type = AUTOLATHE materials = list(MAT_METAL = 800, MAT_GLASS = 200) - build_path = /obj/item/device/assembly/health + build_path = /obj/item/assembly/health category = list("initial", "Medical") /datum/design/timer @@ -532,7 +532,7 @@ id = "timer" build_type = AUTOLATHE materials = list(MAT_METAL = 500, MAT_GLASS = 50) - build_path = /obj/item/device/assembly/timer + build_path = /obj/item/assembly/timer category = list("initial", "Misc") /datum/design/voice_analyser @@ -540,7 +540,7 @@ id = "voice_analyser" build_type = AUTOLATHE materials = list(MAT_METAL = 500, MAT_GLASS = 50) - build_path = /obj/item/device/assembly/voice + build_path = /obj/item/assembly/voice category = list("initial", "Misc") /datum/design/light_tube @@ -588,7 +588,7 @@ id = "prox_sensor" build_type = AUTOLATHE materials = list(MAT_METAL = 800, MAT_GLASS = 200) - build_path = /obj/item/device/assembly/prox_sensor + build_path = /obj/item/assembly/prox_sensor category = list("initial", "Misc") /datum/design/foam_dart @@ -629,7 +629,7 @@ id = "electropack" build_type = AUTOLATHE materials = list(MAT_METAL = 10000, MAT_GLASS = 2500) - build_path = /obj/item/device/electropack + build_path = /obj/item/electropack category = list("hacked", "Tools") /datum/design/large_welding_tool @@ -757,7 +757,7 @@ id = "desttagger" build_type = AUTOLATHE materials = list(MAT_METAL = 250, MAT_GLASS = 125) - build_path = /obj/item/device/destTagger + build_path = /obj/item/destTagger category = list("initial", "Electronics") /datum/design/handlabeler @@ -773,7 +773,7 @@ id = "geigercounter" build_type = AUTOLATHE materials = list(MAT_METAL = 150, MAT_GLASS = 150) - build_path = /obj/item/device/geiger_counter + build_path = /obj/item/geiger_counter category = list("initial", "Tools") /datum/design/turret_control_frame @@ -805,7 +805,7 @@ id = "laptop" build_type = AUTOLATHE materials = list(MAT_METAL = 10000, MAT_GLASS = 1000) - build_path = /obj/item/device/modular_computer/laptop/buildable + build_path = /obj/item/modular_computer/laptop/buildable category = list("initial","Misc") /datum/design/tablet @@ -813,7 +813,7 @@ id = "tablet" build_type = AUTOLATHE materials = list(MAT_METAL = 2000, MAT_GLASS = 1000) - build_path = /obj/item/device/modular_computer/tablet + build_path = /obj/item/modular_computer/tablet category = list("initial","Misc") /datum/design/slime_scanner @@ -821,7 +821,7 @@ id = "slime_scanner" build_type = AUTOLATHE materials = list(MAT_METAL = 300, MAT_GLASS = 200) - build_path = /obj/item/device/slime_scanner + build_path = /obj/item/slime_scanner category = list("initial", "Misc") /datum/design/pet_carrier diff --git a/code/modules/research/designs/bluespace_designs.dm b/code/modules/research/designs/bluespace_designs.dm index 799df94c0c..40bd641478 100644 --- a/code/modules/research/designs/bluespace_designs.dm +++ b/code/modules/research/designs/bluespace_designs.dm @@ -9,7 +9,7 @@ id = "beacon" build_type = PROTOLATHE materials = list(MAT_METAL = 150, MAT_GLASS = 100) - build_path = /obj/item/device/beacon + build_path = /obj/item/beacon category = list("Bluespace Designs") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SECURITY @@ -40,7 +40,7 @@ id = "telesci_gps" build_type = PROTOLATHE materials = list(MAT_METAL = 500, MAT_GLASS = 1000) - build_path = /obj/item/device/gps + build_path = /obj/item/gps category = list("Bluespace Designs") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_CARGO diff --git a/code/modules/research/designs/computer_part_designs.dm b/code/modules/research/designs/computer_part_designs.dm index 733112ba2a..a8813b726d 100644 --- a/code/modules/research/designs/computer_part_designs.dm +++ b/code/modules/research/designs/computer_part_designs.dm @@ -62,7 +62,6 @@ id = "netcard_basic" build_type = IMPRINTER materials = list(MAT_METAL = 250, MAT_GLASS = 100) - reagents_list = list("sacid" = 20) build_path = /obj/item/computer_hardware/network_card category = list("Computer Parts") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -91,7 +90,6 @@ id = "portadrive_basic" build_type = IMPRINTER materials = list(MAT_GLASS = 800) - reagents_list = list("sacid" = 20) build_path = /obj/item/computer_hardware/hard_drive/portable category = list("Computer Parts") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING diff --git a/code/modules/research/designs/electronics_designs.dm b/code/modules/research/designs/electronics_designs.dm index 8ab66627f0..68bfbfc42e 100644 --- a/code/modules/research/designs/electronics_designs.dm +++ b/code/modules/research/designs/electronics_designs.dm @@ -9,7 +9,7 @@ id = "intellicard" build_type = PROTOLATHE materials = list(MAT_GLASS = 1000, MAT_GOLD = 200) - build_path = /obj/item/device/aicard + build_path = /obj/item/aicard category = list("Electronics") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -19,7 +19,7 @@ id = "paicard" build_type = PROTOLATHE materials = list(MAT_GLASS = 500, MAT_METAL = 500) - build_path = /obj/item/device/paicard + build_path = /obj/item/paicard category = list("Electronics") departmental_flags = DEPARTMENTAL_FLAG_ALL @@ -62,7 +62,7 @@ id = "icprinter" build_type = PROTOLATHE materials = list(MAT_GLASS = 5000, MAT_METAL = 10000) - build_path = /obj/item/device/integrated_circuit_printer + build_path = /obj/item/integrated_circuit_printer category = list("Electronics") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE diff --git a/code/modules/research/designs/equipment_designs.dm b/code/modules/research/designs/equipment_designs.dm index e369dfa724..4016e9d93f 100644 --- a/code/modules/research/designs/equipment_designs.dm +++ b/code/modules/research/designs/equipment_designs.dm @@ -14,7 +14,7 @@ desc = "An advanced back-worn system that has dual ion engines powerful enough to grant a humanoid flight. Contains an internal self-recharging high-current capacitor for short, powerful boosts." id = "flightpack" build_type = PROTOLATHE - build_path = /obj/item/device/flightpack + build_path = /obj/item/flightpack materials = list(MAT_METAL=16000, MAT_GLASS = 8000, MAT_DIAMOND = 4000, MAT_GOLD = 12000, MAT_SILVER = 12000, MAT_URANIUM = 20000, MAT_PLASMA = 16000, MAT_TITANIUM = 16000) //This expensive enough for you? construction_time = 250 category = list("Misc") diff --git a/code/modules/research/designs/limbgrower_designs.dm b/code/modules/research/designs/limbgrower_designs.dm index 6b81427c32..71f7234e34 100644 --- a/code/modules/research/designs/limbgrower_designs.dm +++ b/code/modules/research/designs/limbgrower_designs.dm @@ -8,7 +8,7 @@ build_type = LIMBGROWER reagents_list = list("synthflesh" = 25) build_path = /obj/item/bodypart/l_arm - category = list("initial","human","lizard","plasmaman") + category = list("initial","human","lizard","fly","moth","plasmaman") /datum/design/rightarm name = "Right Arm" @@ -16,7 +16,7 @@ build_type = LIMBGROWER reagents_list = list("synthflesh" = 25) build_path = /obj/item/bodypart/r_arm - category = list("initial","human","lizard","plasmaman") + category = list("initial","human","lizard","fly","moth","plasmaman") /datum/design/leftleg name = "Left Leg" @@ -24,7 +24,7 @@ build_type = LIMBGROWER reagents_list = list("synthflesh" = 25) build_path = /obj/item/bodypart/l_leg - category = list("initial","human","lizard","plasmaman") + category = list("initial","human","lizard","fly","moth","plasmaman") /datum/design/rightleg name = "Right Leg" @@ -32,7 +32,7 @@ build_type = LIMBGROWER reagents_list = list("synthflesh" = 25) build_path = /obj/item/bodypart/r_leg - category = list("initial","human","lizard","plasmaman") + category = list("initial","human","lizard","fly","moth","plasmaman") /datum/design/armblade name = "Arm Blade" diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index 330b6f57a1..e1a2695a2f 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -419,6 +419,14 @@ category = list ("Misc. Machinery") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE +/datum/design/board/rad_collector + name = "Machine Design (Radiation Collector Board)" + desc = "The circuit board for a radiation collector array." + id = "rad_collector" + build_path = /obj/item/circuitboard/machine/rad_collector + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE + /datum/design/board/grounding_rod name = "Machine Design (Grounding Rod Board)" desc = "The circuit board for a grounding rod." diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index dfb60da246..eaa18aaf43 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -769,5 +769,5 @@ build_type = MECHFAB materials = list(MAT_METAL = 750, MAT_GLASS = 750) construction_time = 100 - build_path = /obj/item/device/assembly/flash/handheld + build_path = /obj/item/assembly/flash/handheld category = list("Misc") diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 79edee08ce..9df3df3c31 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -9,7 +9,7 @@ build_type = PROTOLATHE | MECHFAB materials = list(MAT_METAL = 1000, MAT_GLASS = 500) construction_time = 75 - build_path = /obj/item/device/mmi + build_path = /obj/item/mmi category = list("Misc","Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE @@ -20,7 +20,7 @@ build_type = PROTOLATHE | MECHFAB materials = list(MAT_METAL = 1700, MAT_GLASS = 1350, MAT_GOLD = 500) //Gold, because SWAG. construction_time = 75 - build_path = /obj/item/device/mmi/posibrain + build_path = /obj/item/mmi/posibrain category = list("Misc", "Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE @@ -118,7 +118,7 @@ id = "plasmarefiller" //Why did this have no plasmatech build_type = PROTOLATHE materials = list(MAT_METAL = 4000, MAT_PLASMA = 1000) - build_path = /obj/item/device/extinguisher_refill + build_path = /obj/item/extinguisher_refill category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_ALL diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm index 6205a214b7..8f79bb9a6d 100644 --- a/code/modules/research/designs/misc_designs.dm +++ b/code/modules/research/designs/misc_designs.dm @@ -241,7 +241,7 @@ name = "Alien Multitool" desc = "An advanced multitool obtained through Abductor technology." id = "alien_multitool" - build_path = /obj/item/device/multitool/abductor + build_path = /obj/item/multitool/abductor build_type = PROTOLATHE materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 5000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000) category = list("Equipment") @@ -310,6 +310,36 @@ build_path = /obj/item/holosign_creator category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SERVICE + +/datum/design/holosignsec + name = "Security Holobarrier Projector" + desc = "A holographic projector that creates holographic security barriers." + id = "holosignsec" + build_type = PROTOLATHE + materials = list(MAT_METAL = 5000, MAT_GLASS = 1000, MAT_GOLD = 1000, MAT_SILVER = 1000) + build_path = /obj/item/holosign_creator/security + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +/datum/design/holosignengi + name = "Engineering Holobarrier Projector" + desc = "A holographic projector that creates holographic engineering barriers." + id = "holosignengi" + build_type = PROTOLATHE + materials = list(MAT_METAL = 5000, MAT_GLASS = 1000, MAT_GOLD = 1000, MAT_SILVER = 1000) + build_path = /obj/item/holosign_creator/engineering + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/holosignatmos + name = "ATMOS Holofan Projector" + desc = "A holographic projector that creates holographic barriers that prevent changes in atmospheric conditions." + id = "holosignatmos" + build_type = PROTOLATHE + materials = list(MAT_METAL = 5000, MAT_GLASS = 1000, MAT_GOLD = 1000, MAT_SILVER = 1000) + build_path = /obj/item/holosign_creator/atmos + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING ///////////////////////////////////////// ////////////Tools////////////// diff --git a/code/modules/research/designs/power_designs.dm b/code/modules/research/designs/power_designs.dm index b14224b01f..b30470036e 100644 --- a/code/modules/research/designs/power_designs.dm +++ b/code/modules/research/designs/power_designs.dm @@ -63,7 +63,7 @@ id = "light_replacer" build_type = PROTOLATHE materials = list(MAT_METAL = 1500, MAT_SILVER = 150, MAT_GLASS = 3000) - build_path = /obj/item/device/lightreplacer + build_path = /obj/item/lightreplacer category = list("Power Designs") departmental_flags = DEPARTMENTAL_FLAG_SERVICE diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index 21acdae01c..2fcb20a498 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -44,7 +44,7 @@ id = "pin_testing" build_type = PROTOLATHE materials = list(MAT_METAL = 500, MAT_GLASS = 300) - build_path = /obj/item/device/firing_pin/test_range + build_path = /obj/item/firing_pin/test_range category = list("Firing Pins") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -54,7 +54,7 @@ id = "pin_loyalty" build_type = PROTOLATHE materials = list(MAT_SILVER = 600, MAT_DIAMOND = 600, MAT_URANIUM = 200) - build_path = /obj/item/device/firing_pin/implant/mindshield + build_path = /obj/item/firing_pin/implant/mindshield category = list("Firing Pins") departmental_flags = DEPARTMENTAL_FLAG_SECURITY diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index 2125d808ab..23b39de3fe 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -32,7 +32,6 @@ var/badThingCoeff = 0 var/resetTime = 15 var/cloneMode = FALSE - var/cloneCount = 0 var/list/item_reactions = list() var/list/valid_items = list() //valid items for special reactions like transforming var/list/critical_items = list() //items that can cause critical reactions @@ -64,7 +63,7 @@ valid_items += rand(1,max(2,35-probWeight)) valid_items += I - if(ispath(I, /obj/item/construction/rcd) || ispath(I, /obj/item/grenade) || ispath(I, /obj/item/device/aicard) || ispath(I, /obj/item/storage/backpack/holding) || ispath(I, /obj/item/slime_extract) || ispath(I, /obj/item/device/onetankbomb) || ispath(I, /obj/item/device/transfer_valve)) + if(ispath(I, /obj/item/construction/rcd) || ispath(I, /obj/item/grenade) || ispath(I, /obj/item/aicard) || ispath(I, /obj/item/storage/backpack/holding) || ispath(I, /obj/item/slime_extract) || ispath(I, /obj/item/onetankbomb) || ispath(I, /obj/item/transfer_valve)) var/obj/item/tempCheck = I if(initial(tempCheck.icon_state) != null) critical_items += I @@ -87,8 +86,8 @@ /obj/machinery/rnd/experimentor/proc/checkCircumstances(obj/item/O) //snowflake check to only take "made" bombs - if(istype(O, /obj/item/device/transfer_valve)) - var/obj/item/device/transfer_valve/T = O + if(istype(O, /obj/item/transfer_valve)) + var/obj/item/transfer_valve/T = O if(!T.tank_one || !T.tank_two || !T.attached_device) return FALSE return TRUE @@ -207,13 +206,11 @@ /obj/machinery/rnd/experimentor/proc/ejectItem(delete=FALSE) if(loaded_item) - if(cloneMode && cloneCount > 0) + if(cloneMode) visible_message("A duplicate [loaded_item] pops out!") var/type_to_make = loaded_item.type new type_to_make(get_turf(pick(oview(1,src)))) - --cloneCount - if(cloneCount == 0) - cloneMode = FALSE + cloneMode = FALSE return var/turf/dropturf = get_turf(pick(view(1,src))) if(!dropturf) //Failsafe to prevent the object being lost in the void forever. @@ -276,7 +273,6 @@ if(prob(EFFECT_PROB_LOW) && criticalReaction) visible_message("[exp_on] has activated an unknown subroutine!") cloneMode = TRUE - cloneCount = badThingCoeff investigate_log("Experimentor has made a clone of [exp_on]", INVESTIGATE_EXPERIMENTOR) ejectItem() else if(prob(EFFECT_PROB_VERYLOW-badThingCoeff)) diff --git a/code/modules/research/machinery/departmental_circuit_imprinter.dm b/code/modules/research/machinery/departmental_circuit_imprinter.dm index e1acdd5cc2..5049a25893 100644 --- a/code/modules/research/machinery/departmental_circuit_imprinter.dm +++ b/code/modules/research/machinery/departmental_circuit_imprinter.dm @@ -1,6 +1,6 @@ /obj/machinery/rnd/production/circuit_imprinter/department - name = "Department Circuit Imprinter" - desc = "A special circuit imprinter with a built in interface meant for departmental usage, with built in ExoSync recievers allowing it to print designs researched that match its ROM-encoded department type. Features a bluespace materials reciever for recieving materials without the hassle of running to mining!" + name = "department circuit imprinter" + desc = "A special circuit imprinter with a built in interface meant for departmental usage, with built in ExoSync recievers allowing it to print designs researched that match its ROM-encoded department type." icon_state = "circuit_imprinter" container_type = OPENCONTAINER circuit = /obj/item/circuitboard/machine/circuit_imprinter/department @@ -8,6 +8,6 @@ consoleless_interface = TRUE /obj/machinery/rnd/production/circuit_imprinter/department/science - name = "department protolathe (Science)" + name = "department circuit imprinter (Science)" allowed_department_flags = DEPARTMENTAL_FLAG_ALL|DEPARTMENTAL_FLAG_SCIENCE department_tag = "Science" \ No newline at end of file diff --git a/code/modules/research/machinery/departmental_protolathe.dm b/code/modules/research/machinery/departmental_protolathe.dm index 1c315ab815..ddc0b7c749 100644 --- a/code/modules/research/machinery/departmental_protolathe.dm +++ b/code/modules/research/machinery/departmental_protolathe.dm @@ -1,6 +1,6 @@ /obj/machinery/rnd/production/protolathe/department name = "department protolathe" - desc = "A special protolathe with a built in interface meant for departmental usage, with built in ExoSync recievers allowing it to print designs researched that match its ROM-encoded department type. Features a bluespace materials reciever for recieving materials without the hassle of running to mining!" + desc = "A special protolathe with a built in interface meant for departmental usage, with built in ExoSync recievers allowing it to print designs researched that match its ROM-encoded department type." icon_state = "protolathe" container_type = OPENCONTAINER circuit = /obj/item/circuitboard/machine/protolathe/department diff --git a/code/modules/research/message_server.dm b/code/modules/research/message_server.dm deleted file mode 100644 index d42e43ec9a..0000000000 --- a/code/modules/research/message_server.dm +++ /dev/null @@ -1,140 +0,0 @@ -GLOBAL_LIST_INIT(message_servers, list()) - -/datum/data_pda_msg - var/recipient = "Unspecified" //name of the person - var/sender = "Unspecified" //name of the sender - var/message = "Blank" //transferred message - var/icon/photo //Attached photo - -/datum/data_pda_msg/New(var/param_rec = "",var/param_sender = "",var/param_message = "",var/param_photo=null) - - if(param_rec) - recipient = param_rec - if(param_sender) - sender = param_sender - if(param_message) - message = param_message - if(param_photo) - photo = param_photo - -/datum/data_pda_msg/proc/get_photo_ref() - if(photo) - return "(Photo)" - return "" - -/datum/data_pda_msg/Topic(href,href_list) - ..() - if(href_list["photo"]) - var/mob/M = usr - M << browse_rsc(photo, "pda_photo.png") - M << browse("PDA Photo" \ - + "" \ - + "" \ - + "", "window=book;size=192x192") - onclose(M, "PDA Photo") - -/datum/data_rc_msg - var/rec_dpt = "Unspecified" //name of the person - var/send_dpt = "Unspecified" //name of the sender - var/message = "Blank" //transferred message - var/stamp = "Unstamped" - var/id_auth = "Unauthenticated" - var/priority = "Normal" - -/datum/data_rc_msg/New(var/param_rec = "",var/param_sender = "",var/param_message = "",var/param_stamp = "",var/param_id_auth = "",var/param_priority) - if(param_rec) - rec_dpt = param_rec - if(param_sender) - send_dpt = param_sender - if(param_message) - message = param_message - if(param_stamp) - stamp = param_stamp - if(param_id_auth) - id_auth = param_id_auth - if(param_priority) - switch(param_priority) - if(1) - priority = "Normal" - if(2) - priority = "High" - if(3) - priority = "Extreme" - else - priority = "Undetermined" - -/obj/machinery/message_server - icon = 'icons/obj/machines/research.dmi' - icon_state = "server" - name = "Messaging Server" - desc = "A machine that attempts to gather the secret knowledge of the universe." - density = TRUE - anchored = TRUE - use_power = IDLE_POWER_USE - idle_power_usage = 10 - active_power_usage = 100 - - var/list/datum/data_pda_msg/pda_msgs = list() - var/list/datum/data_rc_msg/rc_msgs = list() - var/active = 1 - var/decryptkey = "password" - -/obj/machinery/message_server/Initialize() - GLOB.message_servers += src - decryptkey = GenerateKey() - send_pda_message("System Administrator", "system", "This is an automated message. The messaging system is functioning correctly.") - . = ..() - -/obj/machinery/message_server/Destroy() - GLOB.message_servers -= src - return ..() - -/obj/machinery/message_server/proc/GenerateKey() - //Feel free to move to Helpers. - var/newKey - newKey += pick("the", "if", "of", "as", "in", "a", "you", "from", "to", "an", "too", "little", "snow", "dead", "drunk", "rosebud", "duck", "al", "le") - newKey += pick("diamond", "beer", "mushroom", "assistant", "clown", "captain", "twinkie", "security", "nuke", "small", "big", "escape", "yellow", "gloves", "monkey", "engine", "nuclear", "ai") - newKey += pick("1", "2", "3", "4", "5", "6", "7", "8", "9", "0") - return newKey - -/obj/machinery/message_server/process() - if(active && (stat & (BROKEN|NOPOWER))) - active = 0 - return - update_icon() - return - -/obj/machinery/message_server/proc/send_pda_message(recipient = "",sender = "",message = "",photo=null) - . = new/datum/data_pda_msg(recipient,sender,message,photo) - pda_msgs += . - -/obj/machinery/message_server/proc/send_rc_message(recipient = "",sender = "",message = "",stamp = "", id_auth = "", priority = 1) - rc_msgs += new/datum/data_rc_msg(recipient,sender,message,stamp,id_auth) - -/obj/machinery/message_server/attack_hand(mob/user) - to_chat(user, "You toggle PDA message passing from [active ? "On" : "Off"] to [active ? "Off" : "On"]") - active = !active - update_icon() - - return - -/obj/machinery/message_server/update_icon() - if((stat & (BROKEN|NOPOWER))) - icon_state = "server-nopower" - else if (!active) - icon_state = "server-off" - else - icon_state = "server-on" - - return - -/obj/machinery/blackbox_recorder - icon = 'icons/obj/stationobjs.dmi' - icon_state = "blackbox" - name = "Blackbox Recorder" - density = TRUE - anchored = TRUE - use_power = IDLE_POWER_USE - idle_power_usage = 10 - active_power_usage = 100 - armor = list(melee = 25, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 70) diff --git a/code/modules/research/rdmachines.dm b/code/modules/research/rdmachines.dm index 0ce53f0e07..47f34a9b15 100644 --- a/code/modules/research/rdmachines.dm +++ b/code/modules/research/rdmachines.dm @@ -43,8 +43,6 @@ if(linked_console) disconnect_console() return - if(exchange_parts(user, O)) - return if(default_deconstruction_crowbar(O)) return if(is_refillable() && O.is_drainable()) diff --git a/code/modules/research/stock_parts.dm b/code/modules/research/stock_parts.dm index 459c1a9955..4bd318de21 100644 --- a/code/modules/research/stock_parts.dm +++ b/code/modules/research/stock_parts.dm @@ -9,58 +9,29 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' w_class = WEIGHT_CLASS_HUGE - storage_slots = 50 - use_to_pickup = 1 - allow_quick_gather = 1 - allow_quick_empty = 1 - collection_mode = 1 - display_contents_with_number = 1 - max_w_class = WEIGHT_CLASS_NORMAL - max_combined_w_class = 100 - - can_hold = list( - /obj/item/reagent_containers/glass/beaker, - /obj/item/device/assembly/igniter, - /obj/item/stock_parts, - /obj/item/stack/ore/bluespace_crystal) - - var/works_from_distance = 0 + component_type = /datum/component/storage/concrete/rped + var/works_from_distance = FALSE var/pshoom_or_beepboopblorpzingshadashwoosh = 'sound/items/rped.ogg' var/alt_sound = null -/obj/item/storage/part_replacer/afterattack(obj/machinery/T, mob/living/carbon/human/user, flag, params) - if(flag) +/obj/item/storage/part_replacer/pre_attack(obj/machinery/T, mob/living/user, params) + if(!istype(T) || !T.component_parts) + return ..() + if(user.Adjacent(T)) // no TK upgrading. + if(works_from_distance) + user.Beam(T, icon_state = "rped_upgrade", time = 5) + T.exchange_parts(user, src) + return FALSE + return ..() + +/obj/item/storage/part_replacer/afterattack(obj/machinery/T, mob/living/user, adjacent, params) + if(adjacent || !istype(T) || !T.component_parts) + return ..() + if(works_from_distance) + user.Beam(T, icon_state = "rped_upgrade", time = 5) + T.exchange_parts(user, src) return - else if(works_from_distance) - if(istype(T)) - if(T.component_parts) - T.exchange_parts(user, src) - user.Beam(T,icon_state="rped_upgrade",time=5) - return - -/obj/item/storage/part_replacer/bluespace - name = "bluespace rapid part exchange device" - desc = "A version of the RPED that allows for replacement of parts and scanning from a distance, along with higher capacity for parts." - icon_state = "BS_RPED" - w_class = WEIGHT_CLASS_NORMAL - storage_slots = 400 - max_w_class = WEIGHT_CLASS_NORMAL - max_combined_w_class = 800 - works_from_distance = 1 - pshoom_or_beepboopblorpzingshadashwoosh = 'sound/items/pshoom.ogg' - alt_sound = 'sound/items/pshoom_2.ogg' - -/obj/item/storage/part_replacer/bluespace/dump_content_at(atom/dest_object, mob/user) - if(Adjacent(user)) - var/atom/dumping_location = dest_object.get_dumping_location() - if(get_dist(user, dumping_location) < 8) - if(dumping_location.storage_contents_dump_act(src, user)) - play_rped_sound() - user.Beam(dumping_location,icon_state="rped_upgrade",time=5) - return 1 - to_chat(user, "The [src.name] buzzes.") - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 0) - return 0 + return ..() /obj/item/storage/part_replacer/proc/play_rped_sound() //Plays the sound for RPED exhanging or installing parts. @@ -69,6 +40,16 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi else playsound(src, pshoom_or_beepboopblorpzingshadashwoosh, 40, 1) +/obj/item/storage/part_replacer/bluespace + name = "bluespace rapid part exchange device" + desc = "A version of the RPED that allows for replacement of parts and scanning from a distance, along with higher capacity for parts." + icon_state = "BS_RPED" + w_class = WEIGHT_CLASS_NORMAL + works_from_distance = TRUE + pshoom_or_beepboopblorpzingshadashwoosh = 'sound/items/pshoom.ogg' + alt_sound = 'sound/items/pshoom_2.ogg' + component_type = /datum/component/storage/concrete/bluespace/rped + /obj/item/storage/part_replacer/cyborg name = "rapid part exchange device" desc = "Special mechanical module made to store, sort, and apply standard machine parts." @@ -78,8 +59,9 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' //Sorts stock parts inside an RPED by their rating. -/proc/cmp_rped_sort(obj/item/A, obj/item/B) - return A.get_part_rating() - B.get_part_rating() +//Only use /obj/item/stock_parts/ with this sort proc! +/proc/cmp_rped_sort(obj/item/stock_parts/A, obj/item/stock_parts/B) + return B.rating - A.rating /obj/item/stock_parts name = "stock part" @@ -95,6 +77,7 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi /obj/item/stock_parts/get_part_rating() return rating + //Rating 1 /obj/item/stock_parts/capacitor diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 881211ea83..0217bc7a2f 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -93,7 +93,7 @@ description = "A refresher course on modern engineering technology." prereq_ids = list("base") design_ids = list("solarcontrol", "recharger", "powermonitor", "rped", "pacman", "adv_capacitor", "adv_scanning", "emitter", "high_cell", "adv_matter_bin", - "atmosalerts", "atmos_control", "recycler", "autolathe", "high_micro_laser", "nano_mani", "mesons", "thermomachine", "tesla_coil", "grounding_rod", "apc_control", "cell_charger") + "atmosalerts", "atmos_control", "recycler", "autolathe", "high_micro_laser", "nano_mani", "mesons", "thermomachine", "rad_collector", "tesla_coil", "grounding_rod", "apc_control", "cell_charger") research_cost = 7500 export_price = 5000 @@ -282,7 +282,7 @@ display_name = "Electromagnetic Theory" description = "Study into usage of frequencies in the electromagnetic spectrum." prereq_ids = list("base") - design_ids = list("holosign", "inducer", "tray_goggles", "holopad") + design_ids = list("holosign", "holosignsec", "holosignengi", "holosignatmos", "inducer", "tray_goggles", "holopad") research_cost = 2500 export_price = 5000 @@ -830,8 +830,8 @@ description = "Things used by the greys." prereq_ids = list("biotech","engineering") boost_item_paths = list(/obj/item/gun/energy/alien = 0, /obj/item/scalpel/alien = 0, /obj/item/hemostat/alien = 0, /obj/item/retractor/alien = 0, /obj/item/circular_saw/alien = 0, - /obj/item/cautery/alien = 0, /obj/item/surgicaldrill/alien = 0, /obj/item/screwdriver/abductor = 0, /obj/item/wrench/abductor = 0, /obj/item/crowbar/abductor = 0, /obj/item/device/multitool/abductor = 0, - /obj/item/weldingtool/abductor = 0, /obj/item/wirecutters/abductor = 0, /obj/item/circuitboard/machine/abductor = 0, /obj/item/abductor_baton = 0, /obj/item/device/abductor = 0) + /obj/item/cautery/alien = 0, /obj/item/surgicaldrill/alien = 0, /obj/item/screwdriver/abductor = 0, /obj/item/wrench/abductor = 0, /obj/item/crowbar/abductor = 0, /obj/item/multitool/abductor = 0, + /obj/item/weldingtool/abductor = 0, /obj/item/wirecutters/abductor = 0, /obj/item/circuitboard/machine/abductor = 0, /obj/item/abductor_baton = 0, /obj/item/abductor = 0) research_cost = 5000 export_price = 20000 hidden = TRUE @@ -844,8 +844,8 @@ prereq_ids = list("alientech", "adv_biotech") design_ids = list("alien_scalpel", "alien_hemostat", "alien_retractor", "alien_saw", "alien_drill", "alien_cautery") boost_item_paths = list(/obj/item/gun/energy/alien = 0, /obj/item/scalpel/alien = 0, /obj/item/hemostat/alien = 0, /obj/item/retractor/alien = 0, /obj/item/circular_saw/alien = 0, - /obj/item/cautery/alien = 0, /obj/item/surgicaldrill/alien = 0, /obj/item/screwdriver/abductor = 0, /obj/item/wrench/abductor = 0, /obj/item/crowbar/abductor = 0, /obj/item/device/multitool/abductor = 0, - /obj/item/weldingtool/abductor = 0, /obj/item/wirecutters/abductor = 0, /obj/item/circuitboard/machine/abductor = 0, /obj/item/abductor_baton = 0, /obj/item/device/abductor = 0) + /obj/item/cautery/alien = 0, /obj/item/surgicaldrill/alien = 0, /obj/item/screwdriver/abductor = 0, /obj/item/wrench/abductor = 0, /obj/item/crowbar/abductor = 0, /obj/item/multitool/abductor = 0, + /obj/item/weldingtool/abductor = 0, /obj/item/wirecutters/abductor = 0, /obj/item/circuitboard/machine/abductor = 0, /obj/item/abductor_baton = 0, /obj/item/abductor = 0) research_cost = 2500 export_price = 20000 hidden = TRUE @@ -856,8 +856,8 @@ description = "Alien engineering tools" prereq_ids = list("alientech", "adv_engi") design_ids = list("alien_wrench", "alien_wirecutters", "alien_screwdriver", "alien_crowbar", "alien_welder", "alien_multitool") - boost_item_paths = list(/obj/item/screwdriver/abductor = 0, /obj/item/wrench/abductor = 0, /obj/item/crowbar/abductor = 0, /obj/item/device/multitool/abductor = 0, - /obj/item/weldingtool/abductor = 0, /obj/item/wirecutters/abductor = 0, /obj/item/circuitboard/machine/abductor = 0, /obj/item/abductor_baton = 0, /obj/item/device/abductor = 0) + boost_item_paths = list(/obj/item/screwdriver/abductor = 0, /obj/item/wrench/abductor = 0, /obj/item/crowbar/abductor = 0, /obj/item/multitool/abductor = 0, + /obj/item/weldingtool/abductor = 0, /obj/item/wirecutters/abductor = 0, /obj/item/circuitboard/machine/abductor = 0, /obj/item/abductor_baton = 0, /obj/item/abductor = 0) research_cost = 2500 export_price = 20000 hidden = TRUE diff --git a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm index 62928774bf..ddbfdb8471 100644 --- a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm +++ b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm @@ -779,7 +779,7 @@ datum/status_effect/stabilized/blue/on_remove() /datum/status_effect/stabilized/adamantine/on_remove() if(ishuman(owner)) var/mob/living/carbon/human/H = owner - H.physiology.damage_resistance += 5 + H.physiology.damage_resistance -= 5 /datum/status_effect/stabilized/rainbow id = "stabilizedrainbow" diff --git a/code/modules/research/xenobiology/crossbreeding/burning.dm b/code/modules/research/xenobiology/crossbreeding/burning.dm index ab0000626c..92808fd240 100644 --- a/code/modules/research/xenobiology/crossbreeding/burning.dm +++ b/code/modules/research/xenobiology/crossbreeding/burning.dm @@ -155,7 +155,7 @@ Burning extracts: /obj/item/slimecross/burning/sepia/do_effect(mob/user) user.visible_message("[src] shapes itself into a camera!") - new /obj/item/device/camera/timefreeze(get_turf(user)) + new /obj/item/camera/timefreeze(get_turf(user)) ..() /obj/item/slimecross/burning/cerulean @@ -290,13 +290,13 @@ Burning extracts: //Misc. things added -/obj/item/device/camera/timefreeze +/obj/item/camera/timefreeze name = "sepia-tinted camera" desc = "They say a picture is like a moment stopped in time." pictures_left = 1 pictures_max = 1 -/obj/item/device/camera/timefreeze/afterattack(atom/target, mob/user, flag) +/obj/item/camera/timefreeze/afterattack(atom/target, mob/user, flag) if(!on || !pictures_left || !isturf(target.loc)) return new /obj/effect/timestop(get_turf(target), 2, 50, list(user)) diff --git a/code/modules/research/xenobiology/crossbreeding/charged.dm b/code/modules/research/xenobiology/crossbreeding/charged.dm index bc2bbe4c57..68aff64ee9 100644 --- a/code/modules/research/xenobiology/crossbreeding/charged.dm +++ b/code/modules/research/xenobiology/crossbreeding/charged.dm @@ -122,7 +122,7 @@ Charged extracts: colour = "sepia" /obj/item/slimecross/charged/sepia/do_effect(mob/user) - new /obj/item/device/camera/spooky(get_turf(user)) + new /obj/item/camera/spooky(get_turf(user)) user.visible_message("[src] flickers in a strange, ethereal manner, and produces a camera!") ..() @@ -329,7 +329,7 @@ Charged extracts: if(!istype(C)) to_chat(user, "The potion can only be used on clothing!") return - if(C.min_cold_protection_temperature == SPACE_SUIT_MIN_TEMP_PROTECT && STOPSPRESSUREDMAGE_1 in C.flags_1) + if(C.min_cold_protection_temperature == SPACE_SUIT_MIN_TEMP_PROTECT && C.flags_1 & STOPSPRESSUREDMAGE_1) to_chat(user, "The [C] is already pressure-resistant!") return ..() to_chat(user, "You slather the blue gunk over the [C], making it airtight.") diff --git a/code/modules/research/xenobiology/crossbreeding/industrial.dm b/code/modules/research/xenobiology/crossbreeding/industrial.dm index 6d563efa5c..2503219e83 100644 --- a/code/modules/research/xenobiology/crossbreeding/industrial.dm +++ b/code/modules/research/xenobiology/crossbreeding/industrial.dm @@ -124,7 +124,7 @@ Industrial extracts: /obj/item/slimecross/industrial/sepia colour = "sepia" plasmarequired = 2 - itempath = /obj/item/device/camera + itempath = /obj/item/camera /obj/item/slimecross/industrial/cerulean colour = "cerulean" diff --git a/code/modules/research/xenobiology/crossbreeding/reproductive.dm b/code/modules/research/xenobiology/crossbreeding/reproductive.dm index 17e33a9c41..878e17c1e7 100644 --- a/code/modules/research/xenobiology/crossbreeding/reproductive.dm +++ b/code/modules/research/xenobiology/crossbreeding/reproductive.dm @@ -18,22 +18,16 @@ Reproductive extracts: to_chat(user, "[src] is still digesting!") return if(istype(O, /obj/item/storage/bag/bio)) - var/obj/item/storage/P = O - var/obj/item/reagent_containers/food/snacks/monkeycube/M - for(var/obj/item/X in P.contents) - M = X - if(M && istype(M)) - break - if(M && istype(M)) - P.remove_from_storage(M, get_turf(src)) - attackby(M,user) + var/list/inserted = list() + O.SendSignal(COMSIG_TRY_STORAGE_TAKE_TYPE, /obj/item/reagent_containers/food/snacks/monkeycube, src, 1, null, null, user, inserted) + if(inserted.len) + var/obj/item/reagent_containers/food/snacks/monkeycube/M = inserted[1] + if(istype(M)) + eat_cube(M, user) else to_chat(user, "There are no monkey cubes in the bio bag!") if(istype(O,/obj/item/reagent_containers/food/snacks/monkeycube)) - qdel(O) - cubes_eaten++ - to_chat(user, "You feed [O] to [src], and it pulses gently.") - playsound(src, 'sound/items/eatfood.ogg', 20, 1) + eat_cube(O, user) if(cubes_eaten >= 3) var/cores = rand(1,4) visible_message("[src] briefly swells to a massive size, and expels [cores] extract[cores > 1 ? "s":""]!") @@ -43,6 +37,12 @@ Reproductive extracts: new extract_type(get_turf(loc)) cubes_eaten = 0 +/obj/item/slimecross/reproductive/proc/eat_cube(obj/item/reagent_containers/food/snacks/monkeycube, mob/user) + qdel(monkeycube) + cubes_eaten++ + to_chat(user, "You feed [monkeycube] to [src], and it pulses gently.") + playsound(src, 'sound/items/eatfood.ogg', 20, 1) + /obj/item/slimecross/reproductive/grey extract_type = /obj/item/slime_extract/grey colour = "grey" diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index 19f553f2b6..3b71906dd4 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -22,14 +22,16 @@ desc = "A computer used for remotely handling slimes." networks = list("ss13") circuit = /obj/item/circuitboard/computer/xenobiology - var/datum/action/innate/slime_place/slime_place_action = new - var/datum/action/innate/slime_pick_up/slime_up_action = new - var/datum/action/innate/feed_slime/feed_slime_action = new - var/datum/action/innate/monkey_recycle/monkey_recycle_action = new - var/datum/action/innate/slime_scan/scan_action = new - var/datum/action/innate/feed_potion/potion_action = new + var/datum/action/innate/slime_place/slime_place_action + var/datum/action/innate/slime_pick_up/slime_up_action + var/datum/action/innate/feed_slime/feed_slime_action + var/datum/action/innate/monkey_recycle/monkey_recycle_action + var/datum/action/innate/slime_scan/scan_action + var/datum/action/innate/feed_potion/potion_action - var/list/stored_slimes = list() + var/datum/component/redirect/listener + + var/list/stored_slimes var/obj/item/slimepotion/slime/current_potion var/max_slimes = 5 var/monkeys = 0 @@ -39,6 +41,26 @@ light_color = LIGHT_COLOR_PINK +/obj/machinery/computer/camera_advanced/xenobio/Initialize() + . = ..() + slime_place_action = new + slime_up_action = new + feed_slime_action = new + monkey_recycle_action = new + scan_action = new + potion_action = new + stored_slimes = list() + listener = AddComponent(/datum/component/redirect, COMSIG_ATOM_CONTENTS_DEL, CALLBACK(src, .proc/on_contents_del)) + +/obj/machinery/computer/camera_advanced/xenobio/Destroy() + stored_slimes = null + QDEL_NULL(current_potion) + for(var/i in contents) + var/mob/living/simple_animal/slime/S = i + if(istype(S)) + S.forceMove(drop_location()) + return ..() + /obj/machinery/computer/camera_advanced/xenobio/CreateEye() eyeobj = new /mob/camera/aiEye/remote/xenobio(get_turf(src)) eyeobj.origin = src @@ -64,7 +86,7 @@ feed_slime_action.Grant(user) actions += feed_slime_action - if(monkey_recycle_action && (upgradetier & XENOBIO_UPGRADE_MONKEYS)) //CIT CHANGE - makes remote monkey recycling require XENOBIO_UPGRADE_MONKEYS + if(monkey_recycle_action && (upgradetier & XENOBIO_UPGRADE_MONKEYS)) //CIT CHANGE - makes monkey-related actions require XENOBIO_UPGRADE_MONKEYS monkey_recycle_action.target = src monkey_recycle_action.Grant(user) actions += monkey_recycle_action @@ -79,6 +101,12 @@ potion_action.Grant(user) actions += potion_action +/obj/machinery/computer/camera_advanced/xenobio/proc/on_contents_del(atom/deleted) + if(current_potion == deleted) + current_potion = null + if(deleted in stored_slimes) + stored_slimes -= deleted + /obj/machinery/computer/camera_advanced/xenobio/attackby(obj/item/O, mob/user, params) if(istype(O, /obj/item/reagent_containers/food/snacks/monkeycube) && (upgradetier & XENOBIO_UPGRADE_MONKEYS)) //CIT CHANGE - makes monkey-related actions require XENOBIO_UPGRADE_MONKEYS monkeys++ diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index 31c76bd53f..5e33907720 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -570,7 +570,7 @@ /obj/item/slime_extract/sepia/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) if(SLIME_ACTIVATE_MINOR) - var/obj/item/device/camera/O = new(null, 1) + var/obj/item/camera/O = new(null, 1) if(!user.put_in_active_hand(O)) O.forceMove(user.drop_location()) playsound(user, 'sound/effects/splat.ogg', 50, 1) diff --git a/code/modules/ruins/lavaland_ruin_code.dm b/code/modules/ruins/lavaland_ruin_code.dm index 377421ca05..b0f99ae3c2 100644 --- a/code/modules/ruins/lavaland_ruin_code.dm +++ b/code/modules/ruins/lavaland_ruin_code.dm @@ -112,7 +112,7 @@ suit = /obj/item/clothing/suit/toggle/labcoat shoes = /obj/item/clothing/shoes/combat gloves = /obj/item/clothing/gloves/combat - ears = /obj/item/device/radio/headset/syndicate/alt + ears = /obj/item/radio/headset/syndicate/alt back = /obj/item/storage/backpack r_pocket = /obj/item/gun/ballistic/automatic/pistol id = /obj/item/card/id/syndicate/anyone @@ -140,7 +140,7 @@ /obj/item/clothing/mask/chameleon/gps/Initialize() . = ..() - new /obj/item/device/gps/internal/lavaland_syndicate_base(src) + new /obj/item/gps/internal/lavaland_syndicate_base(src) -/obj/item/device/gps/internal/lavaland_syndicate_base +/obj/item/gps/internal/lavaland_syndicate_base gpstag = "Encrypted Signal" diff --git a/code/modules/ruins/objects_and_mobs/ash_walker_den.dm b/code/modules/ruins/objects_and_mobs/ash_walker_den.dm index 7f301bf8b9..5425ddbdc4 100644 --- a/code/modules/ruins/objects_and_mobs/ash_walker_den.dm +++ b/code/modules/ruins/objects_and_mobs/ash_walker_den.dm @@ -13,7 +13,7 @@ var/meat_counter = 6 /mob/living/simple_animal/hostile/spawner/lavaland/ash_walker/death() - new /obj/item/device/assembly/signaler/anomaly (get_step(loc, pick(GLOB.alldirs))) + new /obj/item/assembly/signaler/anomaly (get_step(loc, pick(GLOB.alldirs))) return ..() /mob/living/simple_animal/hostile/spawner/lavaland/ash_walker/Life() diff --git a/code/modules/shuttle/assault_pod.dm b/code/modules/shuttle/assault_pod.dm index f2b1bd5e08..84f0ac493d 100644 --- a/code/modules/shuttle/assault_pod.dm +++ b/code/modules/shuttle/assault_pod.dm @@ -7,7 +7,7 @@ height = 7 /obj/docking_port/mobile/assault_pod/request() - if(z == initial(src.z)) //No launching pods that have already launched + if(!(z in SSmapping.levels_by_trait(ZTRAIT_STATION))) //No launching pods that have already launched return ..() @@ -18,8 +18,9 @@ -/obj/item/device/assault_pod +/obj/item/assault_pod name = "Assault Pod Targetting Device" + icon = 'icons/obj/device.dmi' icon_state = "gangtool-red" item_state = "radio" lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' @@ -33,7 +34,7 @@ var/lz_dir = 1 -/obj/item/device/assault_pod/attack_self(mob/living/user) +/obj/item/assault_pod/attack_self(mob/living/user) var/target_area target_area = input("Area to land", "Select a Landing Zone", target_area) in GLOB.teleportlocs var/area/picked_area = GLOB.teleportlocs[target_area] diff --git a/code/modules/shuttle/docking.dm b/code/modules/shuttle/docking.dm index df41f1f9e6..c0052845c7 100644 --- a/code/modules/shuttle/docking.dm +++ b/code/modules/shuttle/docking.dm @@ -14,25 +14,11 @@ var/obj/docking_port/stationary/old_dock = get_docked() - // The turf that gets placed under where the shuttle moved from - var/underlying_turf_type = SHUTTLE_DEFAULT_TURF_TYPE - - // The baseturf that the gets assigned to the turf_type above - var/underlying_baseturf_type = SHUTTLE_DEFAULT_BASETURF_TYPE - // The area that gets placed under where the shuttle moved from var/underlying_area_type = SHUTTLE_DEFAULT_UNDERLYING_AREA - - // The baseturf cache is a typecache of what counts as a baseturf to be left behind - var/list/baseturf_cache if(old_dock) //Dock overwrites - underlying_turf_type = old_dock.turf_type - underlying_baseturf_type = old_dock.baseturf_type underlying_area_type = old_dock.area_type - baseturf_cache = old_dock.baseturf_cache - else - baseturf_cache = typecacheof(underlying_baseturf_type) /************************************************************************************************************** Both lists are associative with a turf:bitflag structure. (new_turfs bitflag space unused currently) @@ -70,7 +56,7 @@ remove_ripples() - . = preflight_check(old_turfs, new_turfs, areas_to_move, rotation, underlying_turf_type, baseturf_cache) + . = preflight_check(old_turfs, new_turfs, areas_to_move, rotation) if(.) return @@ -97,7 +83,7 @@ CHECK_TICK - cleanup_runway(new_dock, old_turfs, new_turfs, areas_to_move, moved_atoms, rotation, movement_direction, underlying_old_area, underlying_turf_type, underlying_baseturf_type) + cleanup_runway(new_dock, old_turfs, new_turfs, areas_to_move, moved_atoms, rotation, movement_direction, underlying_old_area) CHECK_TICK @@ -118,8 +104,6 @@ list/new_turfs, list/areas_to_move, rotation, - underlying_turf_type, - baseturf_cache, ) for(var/i in 1 to old_turfs.len) @@ -142,8 +126,8 @@ continue move_mode = moving_atom.beforeShuttleMove(newT, rotation, move_mode, src) //atoms - move_mode = oldT.fromShuttleMove(newT, underlying_turf_type, baseturf_cache, move_mode) //turfs - move_mode = newT.toShuttleMove(oldT, move_mode , src) //turfs + move_mode = oldT.fromShuttleMove(newT, move_mode) //turfs + move_mode = newT.toShuttleMove(oldT, move_mode, src) //turfs if(move_mode & MOVE_AREA) areas_to_move[old_area] = TRUE @@ -188,8 +172,6 @@ rotation, movement_direction, area/underlying_old_area, - underlying_turf_type, - underlying_baseturf_type, ) underlying_old_area.afterShuttleMove() @@ -210,7 +192,7 @@ continue var/turf/oldT = old_turfs[i] var/turf/newT = new_turfs[i] - newT.afterShuttleMove(oldT, underlying_turf_type, underlying_baseturf_type, rotation) //turfs + newT.afterShuttleMove(oldT, rotation) //turfs for(var/i in 1 to moved_atoms.len) CHECK_TICK diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm index 33c51cf0db..1f262b285c 100644 --- a/code/modules/shuttle/emergency.dm +++ b/code/modules/shuttle/emergency.dm @@ -561,7 +561,7 @@ SSshuttle.emergency = current_emergency SSshuttle.backup_shuttle = src -#undef TIMELEFT +#undef TIME_LEFT #undef ENGINES_START_TIME #undef ENGINES_STARTED #undef IS_DOCKED diff --git a/code/modules/shuttle/manipulator.dm b/code/modules/shuttle/manipulator.dm index 299d9e1eaa..1d8732cda9 100644 --- a/code/modules/shuttle/manipulator.dm +++ b/code/modules/shuttle/manipulator.dm @@ -271,8 +271,7 @@ // The shuttle template we loaded isn't "timid" which means // it's already registered with the shuttles subsystem. // This is a bad thing. - var/m = "Template [S] is non-timid! Unloading." - WARNING(m) + stack_trace("Template [S] is non-timid! Unloading.") M.jumpToNullSpace() return else diff --git a/code/modules/shuttle/on_move.dm b/code/modules/shuttle/on_move.dm index d0ae11046d..bce22d05cf 100644 --- a/code/modules/shuttle/on_move.dm +++ b/code/modules/shuttle/on_move.dm @@ -6,15 +6,9 @@ All ShuttleMove procs go here // Called on every turf in the shuttle region, returns a bitflag for allowed movements of that turf // returns the new move_mode (based on the old) -/turf/proc/fromShuttleMove(turf/newT, turf_type, list/baseturf_cache, move_mode) - if(!(move_mode & MOVE_AREA)) +/turf/proc/fromShuttleMove(turf/newT, move_mode) + if(!(move_mode & MOVE_AREA) || !isshuttleturf(src)) return move_mode - if(istype(src, turf_type)) - if(length(baseturfs)) - if(baseturf_cache[baseturfs[1]]) - return move_mode - else if(baseturf_cache[baseturfs]) - return move_mode return move_mode | MOVE_TURF | MOVE_CONTENTS @@ -54,7 +48,12 @@ All ShuttleMove procs go here if(newT == src) // In case of in place shuttle rotation shenanigans. return //Destination turf changes - newT.CopyOnTop(src, 1, 0) // We only want a surface copy + //Baseturfs is definitely a list or this proc wouldnt be called + var/shuttle_boundary = baseturfs.Find(/turf/baseturf_skipover/shuttle) + if(!shuttle_boundary) + CRASH("A turf queued to move via shuttle somehow had no skipover in baseturfs. [src]([type]):[loc]") + var/depth = baseturfs.len - shuttle_boundary + 1 + newT.CopyOnTop(src, 1, depth) //Air stuff newT.blocks_air = TRUE newT.air_update_turf(TRUE) @@ -67,10 +66,12 @@ All ShuttleMove procs go here return TRUE // Called on the new turf after everything has been moved -/turf/proc/afterShuttleMove(turf/oldT, turf_type, baseturf_type, rotation) +/turf/proc/afterShuttleMove(turf/oldT, rotation) //Dealing with the turf we left behind oldT.TransferComponents(src) - oldT.ChangeTurf(turf_type, baseturf_type, CHANGETURF_IGNORE_AIR) // TODO: make this oldT.ScrapeAway() which requires templating all shuttles + var/shuttle_boundary = baseturfs.Find(/turf/baseturf_skipover/shuttle) + if(shuttle_boundary) + oldT.ScrapeAway(baseturfs.len - shuttle_boundary + 1) if(rotation) shuttleRotate(rotation) //see shuttle_rotate.dm diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index 99b79f6653..a687fa5bbe 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -7,7 +7,6 @@ /obj/docking_port invisibility = INVISIBILITY_ABSTRACT icon = 'icons/obj/device.dmi' - //icon = 'icons/dirsquare.dmi' icon_state = "pinonfar" resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF @@ -22,8 +21,6 @@ var/dheight = 0 //position relative to covered area, parallel to dir var/area_type - var/turf_type - var/baseturf_type var/hidden = FALSE //are we invisible to shuttle navigation computers? //these objects are indestructible @@ -146,25 +143,17 @@ var/y0 = bounds[2] var/x1 = bounds[3] var/y1 = bounds[4] - if(x0 <= x1 && !ISINRANGE(T.x, x0, x1)) + if(!ISINRANGE(T.x, min(x0, x1), max(x0, x1))) return FALSE - else if(!ISINRANGE(T.x, x1, x0)) - return FALSE - if(y0 <= y1 && !ISINRANGE(T.y, y0, y1)) - return FALSE - else if(!ISINRANGE(T.y, y1, y0)) + if(!ISINRANGE(T.y, min(y0, y1), max(y0, y1))) return FALSE return TRUE /obj/docking_port/stationary name = "dock" - turf_type = SHUTTLE_DEFAULT_TURF_TYPE - baseturf_type = SHUTTLE_DEFAULT_BASETURF_TYPE area_type = SHUTTLE_DEFAULT_UNDERLYING_AREA - var/list/baseturf_cache - var/last_dock_time var/datum/map_template/shuttle/roundstart_template @@ -177,7 +166,6 @@ id = "[SSshuttle.stationary.len]" if(name == "dock") name = "dock[SSshuttle.stationary.len]" - baseturf_cache = typecacheof(baseturf_type) if(mapload) for(var/turf/T in return_turfs()) @@ -214,7 +202,6 @@ /obj/docking_port/stationary/transit name = "In Transit" - turf_type = /turf/open/space/transit var/list/turf/assigned_turfs = list() var/area/shuttle/transit/assigned_area var/obj/docking_port/mobile/owner @@ -226,8 +213,9 @@ /obj/docking_port/stationary/transit/proc/dezone() for(var/i in 1 to assigned_turfs.len) var/turf/T = assigned_turfs[i] - if(T.type == turf_type) - T.ChangeTurf(SHUTTLE_DEFAULT_TURF_TYPE, SHUTTLE_DEFAULT_BASETURF_TYPE) + if(istype(T, /turf/open/space/transit)) + T.ChangeTurf(/turf/open/space) + T.assemble_baseturfs(initial(T.baseturfs)) T.flags_1 |= UNUSED_TRANSIT_TURF_1 /obj/docking_port/stationary/transit/Destroy(force=FALSE) @@ -437,21 +425,20 @@ // Not in a fancy way, it just ceases. var/obj/docking_port/stationary/current_dock = get_docked() - var/turf_type = SHUTTLE_DEFAULT_TURF_TYPE - var/baseturf_type = SHUTTLE_DEFAULT_BASETURF_TYPE var/underlying_area_type = SHUTTLE_DEFAULT_UNDERLYING_AREA // If the shuttle is docked to a stationary port, restore its normal // "empty" area and turf - if(current_dock) - if(current_dock.turf_type) - turf_type = current_dock.turf_type - if(current_dock.baseturf_type) - baseturf_type = current_dock.baseturf_type - if(current_dock.area_type) - underlying_area_type = current_dock.area_type + if(current_dock && current_dock.area_type) + underlying_area_type = current_dock.area_type var/list/old_turfs = return_ordered_turfs(x, y, z, dir) - var/area/underlying_area = locate(underlying_area_type) in GLOB.sortedAreas + + var/area/underlying_area + for(var/i in GLOB.sortedAreas) + var/area/place = i + if(place.type == underlying_area_type) + underlying_area = place + break if(!underlying_area) underlying_area = new underlying_area_type(null) @@ -462,7 +449,14 @@ var/area/old_area = oldT.loc underlying_area.contents += oldT oldT.change_area(old_area, underlying_area) - oldT.empty(turf_type, baseturf_type) + oldT.empty(FALSE) + + // Here we locate the bottomost shuttle boundary and remove all turfs above it + var/list/baseturf_cache = oldT.baseturfs + for(var/k in 1 to length(baseturf_cache)) + if(ispath(baseturf_cache[k], /turf/baseturf_skipover/shuttle)) + oldT.ScrapeAway(baseturf_cache.len - k + 1) + break qdel(src, force=TRUE) diff --git a/code/modules/shuttle/supply.dm b/code/modules/shuttle/supply.dm index be17c0d641..75bac53d17 100644 --- a/code/modules/shuttle/supply.dm +++ b/code/modules/shuttle/supply.dm @@ -5,7 +5,7 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( /obj/structure/spider/spiderling, /obj/item/disk/nuclear, /obj/machinery/nuclearbomb, - /obj/item/device/beacon, + /obj/item/beacon, /obj/singularity, /obj/machinery/teleport/station, /obj/machinery/teleport/hub, @@ -16,12 +16,12 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( /obj/structure/recieving_pad, /obj/effect/clockwork/spatial_gateway, /obj/structure/destructible/clockwork/powered/clockwork_obelisk, - /obj/item/device/warp_cube, + /obj/item/warp_cube, /obj/machinery/rnd/production/protolathe, //print tracking beacons, send shuttle /obj/machinery/autolathe, //same /obj/item/projectile/beam/wormhole, /obj/effect/portal, - /obj/item/device/shared_storage, + /obj/item/shared_storage, /obj/structure/extraction_point ))) diff --git a/code/modules/spells/spell_types/construct_spells.dm b/code/modules/spells/spell_types/construct_spells.dm index fd5bb5a06b..ff71ad8e68 100644 --- a/code/modules/spells/spell_types/construct_spells.dm +++ b/code/modules/spells/spell_types/construct_spells.dm @@ -91,14 +91,14 @@ action_icon_state = "summonsoulstone" action_background_icon_state = "bg_demon" - summon_type = list(/obj/item/device/soulstone) + summon_type = list(/obj/item/soulstone) /obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone/cult cult_req = 1 charge_max = 3600 /obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone/noncult - summon_type = list(/obj/item/device/soulstone/anybody) + summon_type = list(/obj/item/soulstone/anybody) /obj/effect/proc_holder/spell/targeted/forcewall/cult name = "Shield" diff --git a/code/modules/spells/spell_types/devil.dm b/code/modules/spells/spell_types/devil.dm index 4f828e8580..cbc9017ee9 100644 --- a/code/modules/spells/spell_types/devil.dm +++ b/code/modules/spells/spell_types/devil.dm @@ -21,7 +21,7 @@ item_type = /obj/item/twohanded/pitchfork/demonic/ascended /obj/effect/proc_holder/spell/targeted/conjure_item/violin - item_type = /obj/item/device/instrument/violin/golden + item_type = /obj/item/instrument/violin/golden desc = "A devil's instrument of choice. Use this to summon/unsummon your golden violin." invocation_type = "whisper" invocation = "I aint have this much fun since Georgia." diff --git a/code/modules/spells/spell_types/lichdom.dm b/code/modules/spells/spell_types/lichdom.dm index d991a3df9c..0739a7fb84 100644 --- a/code/modules/spells/spell_types/lichdom.dm +++ b/code/modules/spells/spell_types/lichdom.dm @@ -34,7 +34,7 @@ for(var/obj/item in hand_items) // I ensouled the nuke disk once. But it's probably a really // mean tactic, so probably should discourage it. - if((item.flags_1 & ABSTRACT_1) || (item.flags_1 & NODROP_1) || (item.flags_2 & STATIONLOVING_2)) + if((item.flags_1 & ABSTRACT_1) || (item.flags_1 & NODROP_1) || item.SendSignal(COMSIG_ITEM_IMBUE_SOUL, user)) continue marked_item = item to_chat(M, "You begin to focus your very being into [item]...") diff --git a/code/modules/spells/spell_types/rightandwrong.dm b/code/modules/spells/spell_types/rightandwrong.dm index e68629467a..61048e9cbd 100644 --- a/code/modules/spells/spell_types/rightandwrong.dm +++ b/code/modules/spells/spell_types/rightandwrong.dm @@ -69,7 +69,7 @@ GLOBAL_LIST_INIT(summoned_magic, list( /obj/item/voodoo, /obj/item/warpwhistle, /obj/item/clothing/suit/space/hardsuit/shielded/wizard, - /obj/item/device/immortality_talisman, + /obj/item/immortality_talisman, /obj/item/melee/ghost_sword)) GLOBAL_LIST_INIT(summoned_special_magic, list( @@ -78,7 +78,7 @@ GLOBAL_LIST_INIT(summoned_special_magic, list( /obj/item/storage/belt/wands/full, /obj/item/antag_spawner/contract, /obj/item/gun/magic/staff/chaos, - /obj/item/device/necromantic_stone, + /obj/item/necromantic_stone, /obj/item/blood_contract)) // If true, it's the probability of triggering "survivor" antag. diff --git a/code/modules/station_goals/bsa.dm b/code/modules/station_goals/bsa.dm index 2fea99d92b..9e56e94d74 100644 --- a/code/modules/station_goals/bsa.dm +++ b/code/modules/station_goals/bsa.dm @@ -40,8 +40,8 @@ icon_state = "power_box" /obj/machinery/bsa/back/multitool_act(mob/living/user, obj/item/I) - if(istype(I, /obj/item/device/multitool)) // Only this multitool type has a data buffer. - var/obj/item/device/multitool/M = I + if(istype(I, /obj/item/multitool)) // Only this multitool type has a data buffer. + var/obj/item/multitool/M = I M.buffer = src to_chat(user, "You store linkage information in [I]'s buffer.") else @@ -54,8 +54,8 @@ icon_state = "emitter_center" /obj/machinery/bsa/front/multitool_act(mob/living/user, obj/item/I) - if(istype(I, /obj/item/device/multitool)) // Only this multitool type has a data buffer. - var/obj/item/device/multitool/M = I + if(istype(I, /obj/item/multitool)) // Only this multitool type has a data buffer. + var/obj/item/multitool/M = I M.buffer = src to_chat(user, "You store linkage information in [I]'s buffer.") else @@ -70,8 +70,8 @@ var/obj/machinery/bsa/front/front /obj/machinery/bsa/middle/multitool_act(mob/living/user, obj/item/I) - if(istype(I, /obj/item/device/multitool)) // Only this multitool type has a data buffer. - var/obj/item/device/multitool/M = I + if(istype(I, /obj/item/multitool)) // Only this multitool type has a data buffer. + var/obj/item/multitool/M = I if(M.buffer) if(istype(M.buffer, /obj/machinery/bsa/back)) back = M.buffer @@ -253,7 +253,7 @@ /obj/machinery/computer/bsa_control/proc/calibrate(mob/user) var/list/gps_locators = list() - for(var/obj/item/device/gps/G in GLOB.GPS_list) //nulls on the list somehow + for(var/obj/item/gps/G in GLOB.GPS_list) //nulls on the list somehow if(G.tracking) gps_locators[G.gpstag] = G @@ -267,14 +267,14 @@ /obj/machinery/computer/bsa_control/proc/get_target_name() if(istype(target, /area)) return get_area_name(target, TRUE) - else if(istype(target, /obj/item/device/gps)) - var/obj/item/device/gps/G = target + else if(istype(target, /obj/item/gps)) + var/obj/item/gps/G = target return G.gpstag /obj/machinery/computer/bsa_control/proc/get_impact_turf() if(istype(target, /area)) return pick(get_area_turfs(target)) - else if(istype(target, /obj/item/device/gps)) + else if(istype(target, /obj/item/gps)) return get_turf(target) /obj/machinery/computer/bsa_control/proc/fire(mob/user) diff --git a/code/modules/station_goals/dna_vault.dm b/code/modules/station_goals/dna_vault.dm index a43e435977..9be68103c3 100644 --- a/code/modules/station_goals/dna_vault.dm +++ b/code/modules/station_goals/dna_vault.dm @@ -59,7 +59,7 @@ return FALSE -/obj/item/device/dna_probe +/obj/item/dna_probe name = "DNA Sampler" desc = "Can be used to take chemical and genetic samples of pretty much anything." icon = 'icons/obj/syringe.dmi' @@ -72,12 +72,12 @@ var/list/plants = list() var/list/dna = list() -/obj/item/device/dna_probe/proc/clear_data() +/obj/item/dna_probe/proc/clear_data() animals = list() plants = list() dna = list() -/obj/item/device/dna_probe/afterattack(atom/target, mob/user, proximity) +/obj/item/dna_probe/afterattack(atom/target, mob/user, proximity) ..() if(!proximity || !target) return @@ -223,8 +223,8 @@ /obj/machinery/dna_vault/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/device/dna_probe)) - var/obj/item/device/dna_probe/P = I + if(istype(I, /obj/item/dna_probe)) + var/obj/item/dna_probe/P = I var/uploaded = 0 for(var/plant in P.plants) if(!plants[plant]) diff --git a/code/modules/station_goals/shield.dm b/code/modules/station_goals/shield.dm index 815ecfe579..9c92ac4bd5 100644 --- a/code/modules/station_goals/shield.dm +++ b/code/modules/station_goals/shield.dm @@ -121,7 +121,7 @@ icon_state = active ? "sat_active" : "sat_inactive" /obj/machinery/satellite/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/device/multitool)) + if(istype(I, /obj/item/multitool)) to_chat(user, "// NTSAT-[id] // Mode : [active ? "PRIMARY" : "STANDBY"] //[(obj_flags & EMAGGED) ? "DEBUG_MODE //" : ""]") else return ..() diff --git a/code/modules/stock_market/computer.dm b/code/modules/stock_market/computer.dm index 0db040bb51..44fdced713 100644 --- a/code/modules/stock_market/computer.dm +++ b/code/modules/stock_market/computer.dm @@ -1,5 +1,6 @@ /obj/machinery/computer/stockexchange name = "stock exchange computer" + desc = "A console that connects to the galactic stock market. Stocks trading involves substantial risk of loss and is not suitable for every cargo technician." icon = 'icons/obj/computer.dmi' icon_state = "oldcomp" icon_screen = "stock_computer" diff --git a/code/modules/stock_market/stocks.dm b/code/modules/stock_market/stocks.dm index 2b4a4c3d6f..d5143ef460 100644 --- a/code/modules/stock_market/stocks.dm +++ b/code/modules/stock_market/stocks.dm @@ -139,11 +139,7 @@ speculation += rand(-400, 0) / 1000 * speculation if (prob(1) && prob(5)) // pop that bubble speculation += rand(-4000, 0) / 1000 * speculation - var/fucking_stock_spikes = current_value + 500 - var/piece_of_shit_fuck = current_value - 500 - var/i_hate_this_code = (speculation / rand(25000, 50000) + performance / rand(100, 800)) * current_value - if(i_hate_this_code < fucking_stock_spikes || i_hate_this_code > piece_of_shit_fuck) - current_value += i_hate_this_code + if (current_value < 5) current_value = 5 diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index 26b2a013df..8e0c6ee4cf 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -219,6 +219,9 @@ owner.update_hair() owner.update_damage_overlays() +/obj/item/bodypart/proc/is_organic_limb() + return (status == BODYPART_ORGANIC) + //we inform the bodypart of the changes that happened to the owner, or give it the informations from a source mob. /obj/item/bodypart/proc/update_limb(dropping_limb, mob/living/carbon/source) var/mob/living/carbon/C @@ -227,17 +230,17 @@ if(!original_owner) original_owner = source else if(original_owner && owner != original_owner) //Foreign limb - no_update = 1 + no_update = TRUE else C = owner - no_update = 0 + no_update = FALSE - if(C.has_trait(TRAIT_HUSK)) + if(C.has_trait(TRAIT_HUSK) && is_organic_limb()) species_id = "husk" //overrides species_id dmg_overlay_type = "" //no damage overlay shown when husked should_draw_gender = FALSE should_draw_greyscale = FALSE - no_update = 1 + no_update = TRUE if(no_update) return @@ -282,7 +285,7 @@ dmg_overlay_type = "robotic" if(dropping_limb) - no_update = 1 //when attached, the limb won't be affected by the appearance changes of its mob owner. + no_update = TRUE //when attached, the limb won't be affected by the appearance changes of its mob owner. //to update the bodypart's icon when not attached to a mob /obj/item/bodypart/proc/update_icon_dropped() @@ -316,7 +319,7 @@ . += limb if(animal_origin) - if(status == BODYPART_ORGANIC) + if(is_organic_limb()) limb.icon = 'icons/mob/animal_parts.dmi' if(species_id == "husk") limb.icon_state = "[animal_origin]_husk_[body_zone]" @@ -332,7 +335,7 @@ if((body_zone != BODY_ZONE_HEAD && body_zone != BODY_ZONE_CHEST)) should_draw_gender = FALSE - if(status == BODYPART_ORGANIC) + if(is_organic_limb()) if(should_draw_greyscale) limb.icon = 'icons/mob/human_parts_greyscale.dmi' if(should_draw_gender) @@ -365,6 +368,9 @@ limb.icon_state = "[body_zone]_[icon_gender]" else limb.icon_state = "[body_zone]" + if(aux_zone) + aux = image(limb.icon, "[aux_zone]", -aux_layer, image_dir) + . += aux return diff --git a/code/modules/surgery/bodyparts/robot_bodyparts.dm b/code/modules/surgery/bodyparts/robot_bodyparts.dm index b255c32f11..f8e939dbcd 100644 --- a/code/modules/surgery/bodyparts/robot_bodyparts.dm +++ b/code/modules/surgery/bodyparts/robot_bodyparts.dm @@ -6,12 +6,16 @@ #define ROBOTIC_MEDIUM_BURN_MSG "charred" #define ROBOTIC_HEAVY_BURN_MSG "smoldering" +//For ye whom may venture here, split up arm / hand sprites are formatted as "l_hand" & "l_arm". +//The complete sprite (displayed when the limb is on the ground) should be named "borg_l_arm". +//Failure to follow this pattern will cause the hand's icons to be missing due to the way get_limb_icon() works to generate the mob's icons using the aux_zone var. + /obj/item/bodypart/l_arm/robot name = "cyborg left arm" desc = "A skeletal limb wrapped in pseudomuscles, with a low-conductivity case." attack_verb = list("slapped", "punched") item_state = "buildpipe" - icon = 'icons/obj/robot_parts.dmi' + icon = 'icons/mob/augmentation/augments.dmi' flags_1 = CONDUCT_1 icon_state = "borg_l_arm" status = BODYPART_ROBOTIC @@ -29,7 +33,7 @@ desc = "A skeletal limb wrapped in pseudomuscles, with a low-conductivity case." attack_verb = list("slapped", "punched") item_state = "buildpipe" - icon = 'icons/obj/robot_parts.dmi' + icon = 'icons/mob/augmentation/augments.dmi' flags_1 = CONDUCT_1 icon_state = "borg_r_arm" status = BODYPART_ROBOTIC @@ -47,7 +51,7 @@ desc = "A skeletal limb wrapped in pseudomuscles, with a low-conductivity case." attack_verb = list("kicked", "stomped") item_state = "buildpipe" - icon = 'icons/obj/robot_parts.dmi' + icon = 'icons/mob/augmentation/augments.dmi' flags_1 = CONDUCT_1 icon_state = "borg_l_leg" status = BODYPART_ROBOTIC @@ -65,7 +69,7 @@ desc = "A skeletal limb wrapped in pseudomuscles, with a low-conductivity case." attack_verb = list("kicked", "stomped") item_state = "buildpipe" - icon = 'icons/obj/robot_parts.dmi' + icon = 'icons/mob/augmentation/augments.dmi' flags_1 = CONDUCT_1 icon_state = "borg_r_leg" status = BODYPART_ROBOTIC @@ -82,7 +86,7 @@ name = "cyborg torso" desc = "A heavily reinforced case containing cyborg logic boards, with space for a standard power cell." item_state = "buildpipe" - icon = 'icons/obj/robot_parts.dmi' + icon = 'icons/mob/augmentation/augments.dmi' flags_1 = CONDUCT_1 icon_state = "borg_chest" status = BODYPART_ROBOTIC @@ -141,7 +145,7 @@ name = "cyborg head" desc = "A standard reinforced braincase, with spine-plugged neural socket and sensor gimbals." item_state = "buildpipe" - icon = 'icons/obj/robot_parts.dmi' + icon = 'icons/mob/augmentation/augments.dmi' flags_1 = CONDUCT_1 icon_state = "borg_head" status = BODYPART_ROBOTIC @@ -154,14 +158,14 @@ medium_burn_msg = ROBOTIC_MEDIUM_BURN_MSG heavy_burn_msg = ROBOTIC_HEAVY_BURN_MSG - var/obj/item/device/assembly/flash/handheld/flash1 = null - var/obj/item/device/assembly/flash/handheld/flash2 = null + var/obj/item/assembly/flash/handheld/flash1 = null + var/obj/item/assembly/flash/handheld/flash2 = null /obj/item/bodypart/head/robot/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/device/assembly/flash/handheld)) - var/obj/item/device/assembly/flash/handheld/F = W + if(istype(W, /obj/item/assembly/flash/handheld)) + var/obj/item/assembly/flash/handheld/F = W if(src.flash1 && src.flash2) to_chat(user, "You have already inserted the eyes!") return @@ -218,28 +222,24 @@ name = "surplus prosthetic left arm" desc = "A skeletal, robotic limb. Outdated and fragile, but it's still better than nothing." icon = 'icons/mob/augmentation/surplus_augments.dmi' - icon_state = "l_arm" max_damage = 20 /obj/item/bodypart/r_arm/robot/surplus name = "surplus prosthetic right arm" desc = "A skeletal, robotic limb. Outdated and fragile, but it's still better than nothing." icon = 'icons/mob/augmentation/surplus_augments.dmi' - icon_state = "r_arm" max_damage = 20 /obj/item/bodypart/l_leg/robot/surplus name = "surplus prosthetic left leg" desc = "A skeletal, robotic limb. Outdated and fragile, but it's still better than nothing." icon = 'icons/mob/augmentation/surplus_augments.dmi' - icon_state = "l_leg" max_damage = 20 /obj/item/bodypart/r_leg/robot/surplus name = "surplus prosthetic right leg" desc = "A skeletal, robotic limb. Outdated and fragile, but it's still better than nothing." icon = 'icons/mob/augmentation/surplus_augments.dmi' - icon_state = "r_leg" max_damage = 20 diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm index 4b9a472b32..5c442c1369 100644 --- a/code/modules/surgery/organs/augments_arms.dm +++ b/code/modules/surgery/organs/augments_arms.dm @@ -70,8 +70,8 @@ "[holder] snaps back into your [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm.", "You hear a short mechanical noise.") - if(istype(holder, /obj/item/device/assembly/flash/armimplant)) - var/obj/item/device/assembly/flash/F = holder + if(istype(holder, /obj/item/assembly/flash/armimplant)) + var/obj/item/assembly/flash/F = holder F.set_light(0) owner.transferItemToLoc(holder, src, TRUE) @@ -89,8 +89,8 @@ holder.slot_flags = null holder.materials = null - if(istype(holder, /obj/item/device/assembly/flash/armimplant)) - var/obj/item/device/assembly/flash/F = holder + if(istype(holder, /obj/item/assembly/flash/armimplant)) + var/obj/item/assembly/flash/F = holder F.set_light(7) var/obj/item/arm_item = owner.get_active_held_item() @@ -170,7 +170,7 @@ name = "integrated toolset implant" desc = "A stripped-down version of the engineering cyborg toolset, designed to be installed on subject's arm. Contains all necessary tools." contents = newlist(/obj/item/screwdriver/cyborg, /obj/item/wrench/cyborg, /obj/item/weldingtool/largetank/cyborg, - /obj/item/crowbar/cyborg, /obj/item/wirecutters/cyborg, /obj/item/device/multitool/cyborg) + /obj/item/crowbar/cyborg, /obj/item/wirecutters/cyborg, /obj/item/multitool/cyborg) /obj/item/organ/cyberimp/arm/toolset/l zone = BODY_ZONE_L_ARM @@ -196,12 +196,12 @@ /obj/item/organ/cyberimp/arm/flash name = "integrated high-intensity photon projector" //Why not desc = "An integrated projector mounted onto a user's arm that is able to be used as a powerful flash." - contents = newlist(/obj/item/device/assembly/flash/armimplant) + contents = newlist(/obj/item/assembly/flash/armimplant) /obj/item/organ/cyberimp/arm/flash/Initialize() . = ..() - if(locate(/obj/item/device/assembly/flash/armimplant) in items_list) - var/obj/item/device/assembly/flash/armimplant/F = locate(/obj/item/device/assembly/flash/armimplant) in items_list + if(locate(/obj/item/assembly/flash/armimplant) in items_list) + var/obj/item/assembly/flash/armimplant/F = locate(/obj/item/assembly/flash/armimplant) in items_list F.I = src /obj/item/organ/cyberimp/arm/baton @@ -212,12 +212,12 @@ /obj/item/organ/cyberimp/arm/combat name = "combat cybernetics implant" desc = "A powerful cybernetic implant that contains combat modules built into the user's arm." - contents = newlist(/obj/item/melee/transforming/energy/blade/hardlight, /obj/item/gun/medbeam, /obj/item/borg/stun, /obj/item/device/assembly/flash/armimplant) + contents = newlist(/obj/item/melee/transforming/energy/blade/hardlight, /obj/item/gun/medbeam, /obj/item/borg/stun, /obj/item/assembly/flash/armimplant) /obj/item/organ/cyberimp/arm/combat/Initialize() . = ..() - if(locate(/obj/item/device/assembly/flash/armimplant) in items_list) - var/obj/item/device/assembly/flash/armimplant/F = locate(/obj/item/device/assembly/flash/armimplant) in items_list + if(locate(/obj/item/assembly/flash/armimplant) in items_list) + var/obj/item/assembly/flash/armimplant/F = locate(/obj/item/assembly/flash/armimplant) in items_list F.I = src /obj/item/organ/cyberimp/arm/surgery diff --git a/code/modules/surgery/organs/augments_internal.dm b/code/modules/surgery/organs/augments_internal.dm index 0e9e08bf08..57d81cad28 100644 --- a/code/modules/surgery/organs/augments_internal.dm +++ b/code/modules/surgery/organs/augments_internal.dm @@ -148,10 +148,10 @@ desc = "A sleek, sturdy box." icon_state = "cyber_implants" var/list/boxed = list( - /obj/item/device/autosurgeon/thermal_eyes, - /obj/item/device/autosurgeon/xray_eyes, - /obj/item/device/autosurgeon/anti_stun, - /obj/item/device/autosurgeon/reviver) + /obj/item/autosurgeon/thermal_eyes, + /obj/item/autosurgeon/xray_eyes, + /obj/item/autosurgeon/anti_stun, + /obj/item/autosurgeon/reviver) var/amount = 5 /obj/item/storage/box/cyber_implants/PopulateContents() diff --git a/code/modules/surgery/organs/autoimplanter.dm b/code/modules/surgery/organs/autoimplanter.dm deleted file mode 100644 index 2caae96184..0000000000 --- a/code/modules/surgery/organs/autoimplanter.dm +++ /dev/null @@ -1,64 +0,0 @@ -#define INFINITE -1 - -/obj/item/device/autoimplanter - name = "autoimplanter" - desc = "A device that automatically injects a cyber-implant into the user without the hassle of extensive surgery. It has a slot to insert implants and a screwdriver slot for removing accidentally added implants." - icon_state = "autoimplanter" - item_state = "walkietalkie"//left as this so as to intentionally not have inhands - w_class = WEIGHT_CLASS_SMALL - var/obj/item/organ/storedorgan - var/organ_type = /obj/item/organ/cyberimp - var/uses = INFINITE - -/obj/item/device/autoimplanter/New() - ..() - if(storedorgan) - storedorgan.loc = src - -/obj/item/device/autoimplanter/attack_self(mob/user)//when the object it used... - if(!uses) - to_chat(user, "[src] has already been used. The tools are dull and won't reactivate.") - return - else if(!storedorgan) - to_chat(user, "[src] currently has no implant stored.") - return - storedorgan.Insert(user)//insert stored organ into the user - user.visible_message("[user] presses a button on [src], and you hear a short mechanical noise.", "You feel a sharp sting as [src] plunges into your body.") - playsound(get_turf(user), 'sound/weapons/circsawhit.ogg', 50, 1) - storedorgan = null - if(uses != INFINITE) - uses-- - if(!uses) - desc = "[initial(desc)] Looks like it's been used up." - -/obj/item/device/autoimplanter/attackby(obj/item/I, mob/user, params) - if(istype(I, organ_type)) - if(storedorgan) - to_chat(user, "[src] already has an implant stored.") - return - else if(!uses) - to_chat(user, "[src] has already been used up.") - return - if(!user.transferItemToLoc(I, src)) - return - storedorgan = I - to_chat(user, "You insert the [I] into [src].") - else if(istype(I, /obj/item/screwdriver)) - if(!storedorgan) - to_chat(user, "There's no implant in [src] for you to remove.") - else - var/turf/open/floorloc = get_turf(user) - floorloc.contents += contents - to_chat(user, "You remove the [storedorgan] from [src].") - playsound(get_turf(user), I.usesound, 50, 1) - storedorgan = null - if(uses != INFINITE) - uses-- - if(!uses) - desc = "[initial(desc)] Looks like it's been used up." - -/obj/item/device/autoimplanter/cmo - name = "medical HUD autoimplanter" - desc = "A single use autoimplanter that contains a medical heads-up display augment. A screwdriver can be used to remove it, but implants can't be placed back in." - storedorgan = new/obj/item/organ/cyberimp/eyes/hud/medical() - uses = 1 diff --git a/code/modules/surgery/organs/autosurgeon.dm b/code/modules/surgery/organs/autosurgeon.dm index 136310e9a2..787a599428 100644 --- a/code/modules/surgery/organs/autosurgeon.dm +++ b/code/modules/surgery/organs/autosurgeon.dm @@ -1,8 +1,9 @@ #define INFINITE -1 -/obj/item/device/autosurgeon +/obj/item/autosurgeon name = "autosurgeon" desc = "A device that automatically inserts an implant or organ into the user without the hassle of extensive surgery. It has a slot to insert implants/organs and a screwdriver slot for removing accidentally added items." + icon = 'icons/obj/device.dmi' icon_state = "autoimplanter" item_state = "nothing" w_class = WEIGHT_CLASS_SMALL @@ -11,17 +12,17 @@ var/uses = INFINITE var/starting_organ -/obj/item/device/autosurgeon/Initialize(mapload) +/obj/item/autosurgeon/Initialize(mapload) . = ..() if(starting_organ) insert_organ(new starting_organ(src)) -/obj/item/device/autosurgeon/proc/insert_organ(var/obj/item/I) +/obj/item/autosurgeon/proc/insert_organ(var/obj/item/I) storedorgan = I I.forceMove(src) name = "[initial(name)] ([storedorgan.name])" -/obj/item/device/autosurgeon/attack_self(mob/user)//when the object it used... +/obj/item/autosurgeon/attack_self(mob/user)//when the object it used... if(!uses) to_chat(user, "[src] has already been used. The tools are dull and won't reactivate.") return @@ -38,10 +39,10 @@ if(!uses) desc = "[initial(desc)] Looks like it's been used up." -/obj/item/device/autosurgeon/attack_self_tk(mob/user) +/obj/item/autosurgeon/attack_self_tk(mob/user) return //stops TK fuckery -/obj/item/device/autosurgeon/attackby(obj/item/I, mob/user, params) +/obj/item/autosurgeon/attackby(obj/item/I, mob/user, params) if(istype(I, organ_type)) if(storedorgan) to_chat(user, "[src] already has an implant stored.") @@ -56,7 +57,7 @@ else return ..() -/obj/item/device/autosurgeon/screwdriver_act(mob/living/user, obj/item/I) +/obj/item/autosurgeon/screwdriver_act(mob/living/user, obj/item/I) if(!storedorgan) to_chat(user, "There's no implant in [src] for you to remove.") else @@ -74,20 +75,20 @@ desc = "[initial(desc)] Looks like it's been used up." return TRUE -/obj/item/device/autosurgeon/cmo +/obj/item/autosurgeon/cmo desc = "A single use autosurgeon that contains a medical heads-up display augment. A screwdriver can be used to remove it, but implants can't be placed back in." uses = 1 starting_organ = /obj/item/organ/cyberimp/eyes/hud/medical -/obj/item/device/autosurgeon/thermal_eyes +/obj/item/autosurgeon/thermal_eyes starting_organ = /obj/item/organ/eyes/robotic/thermals -/obj/item/device/autosurgeon/xray_eyes +/obj/item/autosurgeon/xray_eyes starting_organ = /obj/item/organ/eyes/robotic/xray -/obj/item/device/autosurgeon/anti_stun +/obj/item/autosurgeon/anti_stun starting_organ = /obj/item/organ/cyberimp/brain/anti_stun -/obj/item/device/autosurgeon/reviver +/obj/item/autosurgeon/reviver starting_organ = /obj/item/organ/cyberimp/chest/reviver diff --git a/code/modules/surgery/organs/eyes.dm b/code/modules/surgery/organs/eyes.dm index cd0680a32c..fc0bdd4c04 100644 --- a/code/modules/surgery/organs/eyes.dm +++ b/code/modules/surgery/organs/eyes.dm @@ -121,7 +121,7 @@ icon_state = "flashlight_eyes" flash_protect = 2 tint = INFINITY - var/obj/item/device/flashlight/eyelight/eye + var/obj/item/flashlight/eyelight/eye /obj/item/organ/eyes/robotic/flashlight/emp_act(severity) return @@ -129,7 +129,7 @@ /obj/item/organ/eyes/robotic/flashlight/Insert(mob/living/carbon/M, special = FALSE, drop_if_replaced = FALSE) ..() if(!eye) - eye = new /obj/item/device/flashlight/eyelight() + eye = new /obj/item/flashlight/eyelight() eye.on = TRUE eye.forceMove(M) eye.update_brightness(M) diff --git a/code/modules/surgery/organs/liver.dm b/code/modules/surgery/organs/liver.dm index 3cb1a7e764..e8cbb80203 100755 --- a/code/modules/surgery/organs/liver.dm +++ b/code/modules/surgery/organs/liver.dm @@ -1,6 +1,6 @@ #define LIVER_DEFAULT_HEALTH 100 //amount of damage required for liver failure #define LIVER_DEFAULT_TOX_TOLERANCE 3 //amount of toxins the liver can filter out -#define LIVER_DEFAULT_TOX_LETHALITY 0.5 //lower values lower how harmful toxins are to the liver +#define LIVER_DEFAULT_TOX_LETHALITY 0.01 //lower values lower how harmful toxins are to the liver /obj/item/organ/liver name = "liver" @@ -25,22 +25,17 @@ //slowly heal liver damage damage = max(0, damage - 0.1) - if(filterToxins) + if(filterToxins && !owner.has_trait(TRAIT_TOXINLOVER)) //handle liver toxin filtration - var/toxamount var/static/list/toxinstypecache = typecacheof(/datum/reagent/toxin) for(var/I in C.reagents.reagent_list) var/datum/reagent/pickedreagent = I if(is_type_in_typecache(pickedreagent, toxinstypecache)) - toxamount += C.reagents.get_reagent_amount(initial(pickedreagent.id)) - if(toxamount <= toxTolerance && toxamount > 0) - for(var/I in C.reagents.reagent_list) - var/datum/reagent/pickedreagent = I - if(is_type_in_typecache(pickedreagent, toxinstypecache)) + var/thisamount = C.reagents.get_reagent_amount(initial(pickedreagent.id)) + if (thisamount <= toxTolerance && thisamount) C.reagents.remove_reagent(initial(pickedreagent.id), 1) - else if(toxamount > toxTolerance) - damage += toxamount*toxLethality - + else + damage += (thisamount*toxLethality) //metabolize reagents C.reagents.metabolize(C, can_overdose=TRUE) @@ -80,7 +75,7 @@ alcohol_tolerance = 0.001 maxHealth = 200 //double the health of a normal liver toxTolerance = 15 //can shrug off up to 15u of toxins - toxLethality = 0.3 //20% less damage than a normal liver + toxLethality = 0.008 //20% less damage than a normal liver /obj/item/organ/liver/cybernetic/emp_act(severity) switch(severity) diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm index aaed5757d1..ce5fafcd9f 100644 --- a/code/modules/surgery/organs/lungs.dm +++ b/code/modules/surgery/organs/lungs.dm @@ -1,13 +1,3 @@ -#define HUMAN_MAX_OXYLOSS 3 -#define HUMAN_CRIT_MAX_OXYLOSS (SSmobs.wait/30) -#define HEAT_GAS_DAMAGE_LEVEL_1 2 -#define HEAT_GAS_DAMAGE_LEVEL_2 4 -#define HEAT_GAS_DAMAGE_LEVEL_3 8 - -#define COLD_GAS_DAMAGE_LEVEL_1 0.5 -#define COLD_GAS_DAMAGE_LEVEL_2 1.5 -#define COLD_GAS_DAMAGE_LEVEL_3 3 - /obj/item/organ/lungs name = "lungs" icon_state = "lungs" @@ -369,13 +359,3 @@ cold_level_1_threshold = 200 cold_level_2_threshold = 140 cold_level_3_threshold = 100 - -#undef HUMAN_MAX_OXYLOSS -#undef HUMAN_CRIT_MAX_OXYLOSS -#undef HEAT_GAS_DAMAGE_LEVEL_1 -#undef HEAT_GAS_DAMAGE_LEVEL_2 -#undef HEAT_GAS_DAMAGE_LEVEL_3 - -#undef COLD_GAS_DAMAGE_LEVEL_1 -#undef COLD_GAS_DAMAGE_LEVEL_2 -#undef COLD_GAS_DAMAGE_LEVEL_3 diff --git a/code/modules/telesci/telepad.dm b/code/modules/telesci/telepad.dm deleted file mode 100644 index d712b773d3..0000000000 --- a/code/modules/telesci/telepad.dm +++ /dev/null @@ -1,170 +0,0 @@ -///SCI TELEPAD/// -/obj/machinery/telepad - name = "telepad" - desc = "A bluespace telepad used for teleporting objects to and from a location." - icon = 'icons/obj/telescience.dmi' - icon_state = "pad-idle" - anchored = 1 - use_power = 1 - idle_power_usage = 200 - active_power_usage = 5000 - var/efficiency - -/obj/machinery/telepad/Initialize() - . = ..() - var/obj/item/circuitboard/machine/B = new /obj/item/circuitboard/machine/telesci_pad(null) - B.apply_default_parts(src) - -/obj/item/circuitboard/machine/telesci_pad - name = "Telepad (Machine Board)" - build_path = /obj/machinery/telepad - req_components = list( - /obj/item/ore/bluespace_crystal = 2, - /obj/item/stock_parts/capacitor = 1, - /obj/item/stack/cable_coil = 1, - /obj/item/stock_parts/console_screen = 1) - def_components = list(/obj/item/ore/bluespace_crystal = /obj/item/ore/bluespace_crystal/artificial) - -/obj/machinery/telepad/RefreshParts() - var/E - for(var/obj/item/stock_parts/capacitor/C in component_parts) - E += C.rating - efficiency = E - -/obj/machinery/telepad/attackby(obj/item/I, mob/user, params) - if(default_deconstruction_screwdriver(user, "pad-idle-o", "pad-idle", I)) - return - - if(panel_open) - if(istype(I, /obj/item/device/multitool)) - var/obj/item/device/multitool/M = I - M.buffer = src - to_chat(user, "You save the data in the [I.name]'s buffer.") - return 1 - - if(exchange_parts(user, I)) - return - - if(default_deconstruction_crowbar(I)) - return - - return ..() - - -//CARGO TELEPAD// -/obj/machinery/telepad_cargo - name = "cargo telepad" - desc = "A telepad used by the Rapid Crate Sender." - icon = 'icons/obj/telescience.dmi' - icon_state = "pad-idle" - anchored = 1 - use_power = 1 - idle_power_usage = 20 - active_power_usage = 500 - var/stage = 0 -/obj/machinery/telepad_cargo/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/wrench)) - anchored = 0 - playsound(src, 'sound/items/Ratchet.ogg', 50, 1) - if(anchored) - anchored = 0 - to_chat(user, "\The [src] can now be moved.") - else if(!anchored) - anchored = 1 - to_chat(user, "\The [src] is now secured.") - else if(istype(W, /obj/item/screwdriver)) - if(stage == 0) - playsound(src, W.usesound, 50, 1) - to_chat(user, "You unscrew the telepad's tracking beacon.") - stage = 1 - else if(stage == 1) - playsound(src, W.usesound, 50, 1) - to_chat(user, "You screw in the telepad's tracking beacon.") - stage = 0 - else if(istype(W, /obj/item/weldingtool) && stage == 1) - var/obj/item/weldingtool/WT = W - if(WT.remove_fuel(0,user)) - playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1) - to_chat(user, "You start disassembling [src]...") - if(do_after(user,20*WT.toolspeed, target = src)) - if(!WT.isOn()) - return - to_chat(user, "You disassemble [src].") - new /obj/item/stack/sheet/metal(get_turf(src)) - new /obj/item/stack/sheet/glass(get_turf(src)) - qdel(src) - else - return ..() - -///TELEPAD CALLER/// -/obj/item/device/telepad_beacon - name = "telepad beacon" - desc = "Use to warp in a cargo telepad." - icon = 'icons/obj/radio.dmi' - icon_state = "beacon" - item_state = "beacon" - -/obj/item/device/telepad_beacon/attack_self(mob/user) - if(user) - to_chat(user, "Locked In") - new /obj/machinery/telepad_cargo(user.loc) - playsound(src, 'sound/effects/pop.ogg', 100, 1, 1) - qdel(src) - return - -///HANDHELD TELEPAD USER/// -/obj/item/rcs - name = "rapid-crate-sender (RCS)" - desc = "Use this to send crates and closets to cargo telepads." - icon = 'icons/obj/telescience.dmi' - icon_state = "rcs" - flags_1 = CONDUCT_1 - force = 10 - throwforce = 10 - throw_speed = 2 - throw_range = 5 - var/rcharges = 10 - var/obj/machinery/pad = null - var/last_charge = 30 - var/mode = 0 - var/rand_x = 0 - var/rand_y = 0 - var/emagged = 0 - var/teleporting = 0 - -/obj/item/rcs/New() - ..() - START_PROCESSING(SSobj, src) - -/obj/item/rcs/examine(mob/user) - ..() - to_chat(user, "There are [rcharges] charge\s left.") - -/obj/item/rcs/Destroy() - STOP_PROCESSING(SSobj, src) - return ..() -/obj/item/rcs/process() - if(rcharges > 10) - rcharges = 10 - if(last_charge == 0) - rcharges++ - last_charge = 30 - else - last_charge-- - -/obj/item/rcs/attack_self(mob/user) - if(emagged) - if(mode == 0) - mode = 1 - playsound(src.loc, 'sound/effects/pop.ogg', 50, 0) - to_chat(user, "The telepad locator has become uncalibrated.") - else - mode = 0 - playsound(src.loc, 'sound/effects/pop.ogg', 50, 0) - to_chat(user, "You calibrate the telepad locator.") - -/obj/item/rcs/emag_act(mob/user) - if(!emagged) - emagged = TRUE - do_sparks(5, TRUE, src) - to_chat(user, "You emag the RCS. Click on it to toggle between modes.") diff --git a/code/modules/telesci/telesci_computer.dm b/code/modules/telesci/telesci_computer.dm deleted file mode 100644 index 72f17fbf55..0000000000 --- a/code/modules/telesci/telesci_computer.dm +++ /dev/null @@ -1,363 +0,0 @@ -/obj/machinery/computer/telescience - name = "\improper Telepad Control Console" - desc = "Used to teleport objects to and from the telescience telepad." - icon_screen = "teleport" - icon_keyboard = "teleport_key" - circuit = /obj/item/circuitboard/computer/telesci_console - var/sending = 1 - var/obj/machinery/telepad/telepad = null - var/temp_msg = "Telescience control console initialized.
      Welcome." - - // VARIABLES // - var/teles_left // How many teleports left until it becomes uncalibrated - var/datum/projectile_data/last_tele_data = null - var/z_co = 1 - var/power_off - var/rotation_off - //var/angle_off - var/last_target - - var/rotation = 0 - var/angle = 45 - var/power = 5 - - // Based on the power used - var/teleport_cooldown = 0 // every index requires a bluespace crystal - var/list/power_options = list(5, 10, 20, 25, 30, 40, 50, 80, 100) - var/teleporting = 0 - var/starting_crystals = 3 - var/max_crystals = 4 - var/list/crystals = list() - var/obj/item/device/gps/inserted_gps - -/obj/machinery/computer/telescience/Initialize() - recalibrate() - . = ..() - -/obj/machinery/computer/telescience/Destroy() - eject() - if(inserted_gps) - inserted_gps.loc = loc - inserted_gps = null - return ..() - -/obj/machinery/computer/telescience/examine(mob/user) - ..() - to_chat(user, "There are [crystals.len ? crystals.len : "no"] bluespace crystal\s in the crystal slots.") - -/obj/machinery/computer/telescience/Initialize(mapload) - . = ..() - if(mapload) - for(var/i = 1; i <= starting_crystals; i++) - crystals += new /obj/item/ore/bluespace_crystal/artificial(null) // starting crystals - -/obj/machinery/computer/telescience/attack_paw(mob/user) - to_chat(user, "You are too primitive to use this computer!") - return - -/obj/machinery/computer/telescience/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/ore/bluespace_crystal)) - if(crystals.len >= max_crystals) - to_chat(user, "There are not enough crystal slots.") - return - if(!user.drop_item()) - return - crystals += W - W.loc = null - user.visible_message("[user] inserts [W] into \the [src]'s crystal slot.", "You insert [W] into \the [src]'s crystal slot.") - updateDialog() - else if(istype(W, /obj/item/device/gps)) - if(!inserted_gps) - if(!user.transferItemToLoc(W, src)) - return - inserted_gps = W - user.visible_message("[user] inserts [W] into \the [src]'s GPS device slot.", "You insert [W] into \the [src]'s GPS device slot.") - else if(istype(W, /obj/item/device/multitool)) - var/obj/item/device/multitool/M = W - if(M.buffer && istype(M.buffer, /obj/machinery/telepad)) - telepad = M.buffer - M.buffer = null - to_chat(user, "You upload the data from the [W.name]'s buffer.") - else - return ..() - -/obj/machinery/computer/telescience/attack_ai(mob/user) - src.attack_hand(user) - -/obj/machinery/computer/telescience/attack_hand(mob/user) - if(..()) - return - interact(user) - -/obj/machinery/computer/telescience/interact(mob/user) - var/t - if(!telepad) - in_use = 0 //Yeah so if you deconstruct teleporter while its in the process of shooting it wont disable the console - t += "
      No telepad located.
      Please add telepad data.

      " - else - if(inserted_gps) - t += "Eject GPS" - t += "Set GPS memory" - else - t += "Eject GPS" - t += "Set GPS memory" - t += "
      [temp_msg]

      " - t += "Set Bearing" - t += "
      [rotation]°
      " - t += "Set Elevation" - t += "
      [angle]°
      " - t += "Set Power" - t += "
      " - - for(var/i = 1; i <= power_options.len; i++) - if(crystals.len + telepad.efficiency < i) - t += "[power_options[i]]" - continue - if(power == power_options[i]) - t += "[power_options[i]]" - continue - t += "[power_options[i]]" - t += "
      " - - t += "Set Sector" - t += "
      [z_co ? z_co : "NULL"]
      " - - t += "
      Send" - t += " Receive" - t += "
      Recalibrate CrystalsEject Crystals" - - // Information about the last teleport - t += "
      " - if(!last_tele_data) - t += "No teleport data found." - else - t += "Source Location: ([last_tele_data.src_x], [last_tele_data.src_y])
      " - //t += "Distance: [round(last_tele_data.distance, 0.1)]m
      " - t += "Time: [round(last_tele_data.time, 0.1)] secs
      " - t += "
      " - - var/datum/browser/popup = new(user, "telesci", name, 300, 500) - popup.set_content(t) - popup.open() - -/obj/machinery/computer/telescience/proc/sparks() - if(telepad) - do_sparks(5, TRUE, get_turf(telepad)) - -/obj/machinery/computer/telescience/proc/telefail() - sparks() - visible_message("The telepad weakly fizzles.") - -/obj/machinery/computer/telescience/proc/doteleport(mob/user) - - if(teleport_cooldown > world.time) - temp_msg = "Telepad is recharging power.
      Please wait [round((teleport_cooldown - world.time) / 10)] seconds." - return - - if(teleporting) - temp_msg = "Telepad is in use.
      Please wait." - return - - if(telepad) - - var/truePower = Clamp(power + power_off, 1, 1000) - var/trueRotation = rotation + rotation_off - var/trueAngle = Clamp(angle, 1, 90) - - var/datum/projectile_data/proj_data = projectile_trajectory(telepad.x, telepad.y, trueRotation, trueAngle, truePower) - last_tele_data = proj_data - - var/trueX = Clamp(round(proj_data.dest_x, 1), 1, world.maxx) - var/trueY = Clamp(round(proj_data.dest_y, 1), 1, world.maxy) - var/spawn_time = round(proj_data.time) * 10 - - var/turf/target = locate(trueX, trueY, z_co) - last_target = target - var/area/A = get_area(target) - flick("pad-beam", telepad) - - if(spawn_time > 15) // 1.5 seconds - playsound(telepad.loc, 'sound/weapons/flash.ogg', 25, 1) - // Wait depending on the time the projectile took to get there - teleporting = 1 - temp_msg = "Powering up bluespace crystals.
      Please wait." - - - spawn(round(proj_data.time) * 10) // in seconds - if(!telepad) - return - if(telepad.stat & NOPOWER) - return - teleporting = 0 - teleport_cooldown = world.time + (power * 2) - teles_left -= 1 - - // use a lot of power - use_power(power * 10) - - do_sparks(5, TRUE, get_turf(telepad)) - - temp_msg = "Teleport successful.
      " - if(teles_left < 10) - temp_msg += "
      Calibration required soon." - else - temp_msg += "Data printed below." - - do_sparks(5, TRUE, get_turf(target)) - - var/turf/source = target - var/turf/dest = get_turf(telepad) - var/log_msg = "" - log_msg += ": [key_name(user)] has teleported " - - if(sending) - source = dest - dest = target - - flick("pad-beam", telepad) - playsound(telepad.loc, 'sound/weapons/emitter2.ogg', 25, 1, extrarange = 3, falloff = 5) - for(var/atom/movable/ROI in source) - // if is anchored, don't let through - if(ROI.anchored) - if(isliving(ROI)) - var/mob/living/L = ROI - if(L.buckled) - // TP people on office chairs - if(L.buckled.anchored) - continue - - log_msg += "[key_name(L)] (on a chair), " - else - continue - else if(!isobserver(ROI)) - continue - if(ismob(ROI)) - var/mob/T = ROI - log_msg += "[key_name(T)], " - else - log_msg += "[ROI.name]" - if (istype(ROI, /obj/structure/closet)) - var/obj/structure/closet/C = ROI - log_msg += " (" - for(var/atom/movable/Q as mob|obj in C) - if(ismob(Q)) - log_msg += "[key_name(Q)], " - else - log_msg += "[Q.name], " - if (dd_hassuffix(log_msg, "(")) - log_msg += "empty)" - else - log_msg = dd_limittext(log_msg, length(log_msg) - 2) - log_msg += ")" - log_msg += ", " - do_teleport(ROI, dest) - - if (dd_hassuffix(log_msg, ", ")) - log_msg = dd_limittext(log_msg, length(log_msg) - 2) - else - log_msg += "nothing" - log_msg += " [sending ? "to" : "from"] [trueX], [trueY], [z_co] ([A ? A.name : "null area"])" - investigate_log(log_msg, "telesci") - updateDialog() - -/obj/machinery/computer/telescience/proc/teleport(mob/user) - if(rotation == null || angle == null || z_co == null) - temp_msg = "ERROR!
      Set a angle, rotation and sector." - return - if(power <= 0) - telefail() - temp_msg = "ERROR!
      No power selected!" - return - if(angle < 1 || angle > 90) - telefail() - temp_msg = "ERROR!
      Elevation is less than 1 or greater than 90." - return - if(z_co == ZLEVEL_CENTCOM || z_co < 1 || z_co > ZLEVEL_SPACEMAX) - telefail() - temp_msg = "ERROR! Sector is outside known time and space!" - return - if(teles_left > 0) - doteleport(user) - else - telefail() - temp_msg = "ERROR!
      Calibration required." - return - return - -/obj/machinery/computer/telescience/proc/eject() - for(var/obj/item/I in crystals) - I.loc = src.loc - crystals -= I - power = 0 - -/obj/machinery/computer/telescience/Topic(href, href_list) - if(..()) - return - if(!telepad) - updateDialog() - return - if(telepad.panel_open) - temp_msg = "Telepad undergoing physical maintenance operations." - - if(href_list["setrotation"]) - var/new_rot = input("Please input desired bearing in degrees.", name, rotation) as num - if(..()) // Check after we input a value, as they could've moved after they entered something - return - rotation = Clamp(new_rot, -900, 900) - rotation = round(rotation, 0.01) - - if(href_list["setangle"]) - var/new_angle = input("Please input desired elevation in degrees.", name, angle) as num - if(..()) - return - angle = Clamp(round(new_angle, 0.1), 1, 9999) - - if(href_list["setpower"]) - var/index = href_list["setpower"] - index = text2num(index) - if(index != null && power_options[index]) - if(crystals.len + telepad.efficiency >= index) - power = power_options[index] - - if(href_list["setz"]) - var/new_z = input("Please input desired sector.", name, z_co) as num - if(..()) - return - z_co = Clamp(round(new_z), 1, 10) - - if(href_list["ejectGPS"]) - if(inserted_gps) - inserted_gps.loc = loc - inserted_gps = null - - if(href_list["setMemory"]) - if(last_target && inserted_gps) - inserted_gps.locked_location = last_target - temp_msg = "Location saved." - else - temp_msg = "ERROR!
      No data was stored." - - if(href_list["send"]) - sending = 1 - teleport(usr) - - if(href_list["receive"]) - sending = 0 - teleport(usr) - - if(href_list["recal"]) - recalibrate() - sparks() - temp_msg = "NOTICE:
      Calibration successful." - - if(href_list["eject"]) - eject() - temp_msg = "NOTICE:
      Bluespace crystals ejected." - - updateDialog() - -/obj/machinery/computer/telescience/proc/recalibrate() - teles_left = rand(30, 40) - //angle_off = rand(-25, 25) - power_off = rand(-4, 0) - rotation_off = rand(-10, 10) diff --git a/code/modules/uplink/uplink_devices.dm b/code/modules/uplink/uplink_devices.dm index 0220c4d179..2ce717f0de 100644 --- a/code/modules/uplink/uplink_devices.dm +++ b/code/modules/uplink/uplink_devices.dm @@ -1,23 +1,23 @@ // A collection of pre-set uplinks, for admin spawns. -/obj/item/device/radio/uplink/Initialize(mapload, _owner, _tc_amount = 20) +/obj/item/radio/uplink/Initialize(mapload, _owner, _tc_amount = 20) . = ..() icon_state = "radio" lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' AddComponent(/datum/component/uplink, _owner, FALSE, TRUE, null, _tc_amount) -/obj/item/device/radio/uplink/nuclear/Initialize() +/obj/item/radio/uplink/nuclear/Initialize() . = ..() GET_COMPONENT(hidden_uplink, /datum/component/uplink) hidden_uplink.set_gamemode(/datum/game_mode/nuclear) -/obj/item/device/radio/uplink/clownop/Initialize() +/obj/item/radio/uplink/clownop/Initialize() . = ..() GET_COMPONENT(hidden_uplink, /datum/component/uplink) hidden_uplink.set_gamemode(/datum/game_mode/nuclear/clown_ops) -/obj/item/device/multitool/uplink/Initialize(mapload, _owner, _tc_amount = 20) +/obj/item/multitool/uplink/Initialize(mapload, _owner, _tc_amount = 20) . = ..() AddComponent(/datum/component/uplink, _owner, FALSE, TRUE, null, _tc_amount) @@ -26,11 +26,11 @@ AddComponent(/datum/component/uplink) traitor_unlock_degrees = 360 -/obj/item/device/radio/uplink/old +/obj/item/radio/uplink/old name = "dusty radio" desc = "A dusty looking radio." -/obj/item/device/radio/uplink/old/Initialize(mapload, _owner, _tc_amount = 10) +/obj/item/radio/uplink/old/Initialize(mapload, _owner, _tc_amount = 10) . = ..() GET_COMPONENT(hidden_uplink, /datum/component/uplink) hidden_uplink.name = "dusty radio" diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index fe39f38883..7fa084ca95 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -809,14 +809,14 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) name = "Chameleon Projector" desc = "Projects an image across a user, disguising them as an object scanned with it, as long as they don't \ move the projector from their hand. Disguised users move slowly, and projectiles pass over them." - item = /obj/item/device/chameleon + item = /obj/item/chameleon cost = 7 /datum/uplink_item/stealthy_tools/camera_bug name = "Camera Bug" desc = "Enables you to view all cameras on the network and track a target. Bugging cameras allows you \ to disable them remotely." - item = /obj/item/device/camera_bug + item = /obj/item/camera_bug cost = 1 surplus = 90 @@ -850,7 +850,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) name = "EMP Flashlight" desc = "A small, self-charging, short-ranged EMP device disguised as a flashlight. \ Useful for disrupting headsets, cameras, and borgs during stealth operations." - item = /obj/item/device/flashlight/emp + item = /obj/item/flashlight/emp cost = 2 surplus = 30 @@ -885,8 +885,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/suits/hardsuit name = "Syndicate Hardsuit" desc = "The feared suit of a syndicate nuclear agent. Features slightly better armoring and a built in jetpack \ - that runs off standard atmospheric tanks. When the built in helmet is deployed your identity will be \ - protected, even in death, as the suit cannot be removed by outside forces. Toggling the suit in and out of \ + that runs off standard atmospheric tanks. Toggling the suit in and out of \ combat mode will allow you all the mobility of a loose fitting uniform without sacrificing armoring. \ Additionally the suit is collapsible, making it small enough to fit within a backpack. \ Nanotrasen crew who spot these suits are known to panic." @@ -984,7 +983,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) desc = "A key that, when inserted into a radio headset, allows you to listen to and talk with silicon-based lifeforms, \ such as AI units and cyborgs, over their private binary channel. Caution should \ be taken while doing this, as unless they are allied with you, they are programmed to report such intrusions." - item = /obj/item/device/encryptionkey/binary + item = /obj/item/encryptionkey/binary cost = 5 surplus = 75 @@ -992,7 +991,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) name = "Syndicate Encryption Key" desc = "A key that, when inserted into a radio headset, allows you to listen to all station department channels \ as well as talk on an encrypted Syndicate channel with other agents that have the same key." - item = /obj/item/device/encryptionkey/syndicate + item = /obj/item/encryptionkey/syndicate cost = 2 surplus = 75 @@ -1000,7 +999,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) name = "Artificial Intelligence Detector" desc = "A functional multitool that turns red when it detects an artificial intelligence watching it or its \ holder. Knowing when an artificial intelligence is watching you is useful for knowing when to maintain cover." - item = /obj/item/device/multitool/ai_detect + item = /obj/item/multitool/ai_detect cost = 1 /datum/uplink_item/device_tools/hacked_module @@ -1019,7 +1018,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 6 /datum/uplink_item/device_tools/briefcase_launchpad/purchase(mob/user, datum/component/uplink/U) - spawn_item(/obj/item/device/launchpad_remote, user) //free remote + spawn_item(/obj/item/launchpad_remote, user) //free remote ..() /datum/uplink_item/device_tools/magboots @@ -1059,7 +1058,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) desc = "When screwed to wiring attached to a power grid and activated, this large device places excessive \ load on the grid, causing a station-wide blackout. The sink is large and cannot be stored in most \ traditional bags and boxes." - item = /obj/item/device/powersink + item = /obj/item/powersink cost = 6 /datum/uplink_item/device_tools/singularity_beacon @@ -1068,7 +1067,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) active gravitational singularities or tesla balls towards it. This will not work when the engine is still \ in containment. Because of its size, it cannot be carried. Ordering this \ sends you a small beacon that will teleport the larger beacon to your location upon activation." - item = /obj/item/device/sbeacondrop + item = /obj/item/sbeacondrop cost = 14 /datum/uplink_item/device_tools/syndicate_bomb @@ -1078,7 +1077,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ be defused, and some crew may attempt to do so." - item = /obj/item/device/sbeacondrop/bomb + item = /obj/item/sbeacondrop/bomb cost = 11 /datum/uplink_item/device_tools/clown_bomb_clownops @@ -1088,7 +1087,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ be defused, and some crew may attempt to do so." - item = /obj/item/device/sbeacondrop/clownbomb + item = /obj/item/sbeacondrop/clownbomb cost = 15 surplus = 0 include_modes = list(/datum/game_mode/nuclear/clown_ops) @@ -1099,7 +1098,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) and an encrypted radio frequency will instruct all live Syndicate bombs to detonate. \ Useful for when speed matters or you wish to synchronize multiple bomb blasts. Be sure to stand clear of \ the blast radius before using the detonator." - item = /obj/item/device/syndicatedetonator + item = /obj/item/syndicatedetonator cost = 3 include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) @@ -1109,13 +1108,13 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) powerful burst of radiation, which, after a short delay, can incapacitate all but the most protected \ of humanoids. It has two settings: intensity, which controls the power of the radiation, \ and wavelength, which controls how long the radiation delay is." - item = /obj/item/device/healthanalyzer/rad_laser + item = /obj/item/healthanalyzer/rad_laser cost = 3 /datum/uplink_item/device_tools/assault_pod name = "Assault Pod Targeting Device" desc = "Use to select the landing zone of your assault pod." - item = /obj/item/device/assault_pod + item = /obj/item/assault_pod cost = 30 surplus = 0 include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) @@ -1180,7 +1179,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/device_tools/jammer name = "Radio Jammer" desc = "This device will disrupt any nearby outgoing radio communication when activated." - item = /obj/item/device/jammer + item = /obj/item/jammer cost = 5 /datum/uplink_item/device_tools/codespeak_manual @@ -1219,7 +1218,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/implants/storage name = "Storage Implant" - desc = "An implant injected into the body, and later activated at the user's will. It will open a small subspace \ + desc = "An implant injected into the body, and later activated at the user's will. It will open a small bluespace \ pocket capable of storing two items." item = /obj/item/storage/box/syndie_kit/imp_storage cost = 8 @@ -1257,25 +1256,25 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/cyber_implants/thermals name = "Thermal Eyes" desc = "These cybernetic eyes will give you thermal vision. Comes with a free autosurgeon." - item = /obj/item/device/autosurgeon/thermal_eyes + item = /obj/item/autosurgeon/thermal_eyes cost = 8 /datum/uplink_item/cyber_implants/xray name = "X-Ray Vision Implant" desc = "These cybernetic eyes will give you X-ray vision. Comes with an autosurgeon." - item = /obj/item/device/autosurgeon/xray_eyes + item = /obj/item/autosurgeon/xray_eyes cost = 10 /datum/uplink_item/cyber_implants/antistun name = "CNS Rebooter Implant" desc = "This implant will help you get back up on your feet faster after being stunned. Comes with an autosurgeon." - item = /obj/item/device/autosurgeon/anti_stun + item = /obj/item/autosurgeon/anti_stun cost = 12 /datum/uplink_item/cyber_implants/reviver name = "Reviver Implant" desc = "This implant will attempt to revive you if you lose consciousness. Comes with an autosurgeon." - item = /obj/item/device/autosurgeon/reviver + item = /obj/item/autosurgeon/reviver cost = 8 /datum/uplink_item/cyber_implants/bundle @@ -1305,7 +1304,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) violently open, instantly killing anyone wearing it by tearing their jaws in half. To arm, attack someone with it while they're not wearing headgear, and you will force it onto their \ head after three seconds uninterrupted." cost = 5 - item = /obj/item/device/reverse_bear_trap + item = /obj/item/reverse_bear_trap restricted_roles = list("Clown") /datum/uplink_item/role_restricted/mimery @@ -1403,7 +1402,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ be defused, and some crew may attempt to do so." - item = /obj/item/device/sbeacondrop/clownbomb + item = /obj/item/sbeacondrop/clownbomb cost = 15 restricted_roles = list("Clown") diff --git a/code/modules/vending/assist.dm b/code/modules/vending/assist.dm index a1a118cf71..de30109824 100644 --- a/code/modules/vending/assist.dm +++ b/code/modules/vending/assist.dm @@ -1,12 +1,12 @@ /obj/machinery/vending/assist - products = list(/obj/item/device/assembly/prox_sensor = 5, - /obj/item/device/assembly/igniter = 3, - /obj/item/device/assembly/signaler = 4, + products = list(/obj/item/assembly/prox_sensor = 5, + /obj/item/assembly/igniter = 3, + /obj/item/assembly/signaler = 4, /obj/item/wirecutters = 1, /obj/item/cartridge/signal = 4) - contraband = list(/obj/item/device/assembly/timer = 2, - /obj/item/device/assembly/voice = 2, - /obj/item/device/assembly/health = 2) + contraband = list(/obj/item/assembly/timer = 2, + /obj/item/assembly/voice = 2, + /obj/item/assembly/health = 2) product_ads = "Only the finest!;Have some tools.;The most robust equipment.;The finest gear in space!" armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) resistance_flags = FIRE_PROOF diff --git a/code/modules/vending/cartridge.dm b/code/modules/vending/cartridge.dm index 284c52ba54..990c494d4f 100644 --- a/code/modules/vending/cartridge.dm +++ b/code/modules/vending/cartridge.dm @@ -10,7 +10,7 @@ /obj/item/cartridge/security = 10, /obj/item/cartridge/janitor = 10, /obj/item/cartridge/signal/toxins = 10, - /obj/item/device/pda/heads = 10, + /obj/item/pda/heads = 10, /obj/item/cartridge/captain = 3, /obj/item/cartridge/quartermaster = 10) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) diff --git a/code/modules/vending/engineering.dm b/code/modules/vending/engineering.dm index 37ef9e90ac..5933ab8fa9 100644 --- a/code/modules/vending/engineering.dm +++ b/code/modules/vending/engineering.dm @@ -15,9 +15,9 @@ /obj/item/screwdriver = 12, /obj/item/crowbar = 12, /obj/item/wirecutters = 12, - /obj/item/device/multitool = 12, + /obj/item/multitool = 12, /obj/item/wrench = 12, - /obj/item/device/t_scanner = 12, + /obj/item/t_scanner = 12, /obj/item/stock_parts/cell = 8, /obj/item/weldingtool = 8, /obj/item/clothing/head/welding = 8, diff --git a/code/modules/vending/engivend.dm b/code/modules/vending/engivend.dm index f460feae5d..a990ee901f 100644 --- a/code/modules/vending/engivend.dm +++ b/code/modules/vending/engivend.dm @@ -6,10 +6,10 @@ req_access_txt = "11" //Engineering Equipment access products = list(/obj/item/clothing/glasses/meson/engine = 2, /obj/item/clothing/glasses/welding = 3, - /obj/item/device/multitool = 4, + /obj/item/multitool = 4, /obj/item/construction/rcd/loaded = 3, /obj/item/grenade/chem_grenade/smart_metal_foam = 10, - /obj/item/device/geiger_counter = 5, + /obj/item/geiger_counter = 5, /obj/item/stock_parts/cell/high = 10, /obj/item/electronics/airlock = 10, /obj/item/electronics/apc = 10, diff --git a/code/modules/vending/medical.dm b/code/modules/vending/medical.dm index 769a1c0369..b1a5edb867 100644 --- a/code/modules/vending/medical.dm +++ b/code/modules/vending/medical.dm @@ -7,8 +7,8 @@ req_access_txt = "5" products = list(/obj/item/reagent_containers/syringe = 12, /obj/item/reagent_containers/dropper = 3, - /obj/item/device/healthanalyzer = 4, - /obj/item/device/sensor_device = 2, + /obj/item/healthanalyzer = 4, + /obj/item/sensor_device = 2, /obj/item/pinpointer/crew = 2, /obj/item/reagent_containers/medspray/sterilizine = 1, /obj/item/stack/medical/gauze = 8, diff --git a/code/modules/vending/nutrimax.dm b/code/modules/vending/nutrimax.dm index 1720be81f1..b82c95b8a7 100644 --- a/code/modules/vending/nutrimax.dm +++ b/code/modules/vending/nutrimax.dm @@ -13,7 +13,7 @@ /obj/item/storage/bag/plants = 5, /obj/item/cultivator = 3, /obj/item/shovel/spade = 3, - /obj/item/device/plant_analyzer = 4) + /obj/item/plant_analyzer = 4) contraband = list(/obj/item/reagent_containers/glass/bottle/ammonia = 10, /obj/item/reagent_containers/glass/bottle/diethylamine = 5) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) diff --git a/code/modules/vending/plasmaresearch.dm b/code/modules/vending/plasmaresearch.dm index eb9e806d6b..a8ca2842d0 100644 --- a/code/modules/vending/plasmaresearch.dm +++ b/code/modules/vending/plasmaresearch.dm @@ -5,9 +5,9 @@ products = list(/obj/item/clothing/under/rank/scientist = 6, /obj/item/clothing/suit/bio_suit = 6, /obj/item/clothing/head/bio_hood = 6, - /obj/item/device/transfer_valve = 6, - /obj/item/device/assembly/timer = 6, - /obj/item/device/assembly/signaler = 6, - /obj/item/device/assembly/prox_sensor = 6, - /obj/item/device/assembly/igniter = 6) - contraband = list(/obj/item/device/assembly/health = 3) + /obj/item/transfer_valve = 6, + /obj/item/assembly/timer = 6, + /obj/item/assembly/signaler = 6, + /obj/item/assembly/prox_sensor = 6, + /obj/item/assembly/igniter = 6) + contraband = list(/obj/item/assembly/health = 3) diff --git a/code/modules/vending/robotics.dm b/code/modules/vending/robotics.dm index 316ac3d273..8c577d47c1 100644 --- a/code/modules/vending/robotics.dm +++ b/code/modules/vending/robotics.dm @@ -8,11 +8,11 @@ products = list(/obj/item/clothing/suit/toggle/labcoat = 4, /obj/item/clothing/under/rank/roboticist = 4, /obj/item/stack/cable_coil = 4, - /obj/item/device/assembly/flash/handheld = 4, + /obj/item/assembly/flash/handheld = 4, /obj/item/stock_parts/cell/high = 12, - /obj/item/device/assembly/prox_sensor = 3, - /obj/item/device/assembly/signaler = 3, - /obj/item/device/healthanalyzer = 3, + /obj/item/assembly/prox_sensor = 3, + /obj/item/assembly/signaler = 3, + /obj/item/healthanalyzer = 3, /obj/item/scalpel = 2, /obj/item/circular_saw = 2, /obj/item/tank/internals/anesthetic = 2, diff --git a/code/modules/vending/security.dm b/code/modules/vending/security.dm index 0b660dfd75..3f3035f9e4 100644 --- a/code/modules/vending/security.dm +++ b/code/modules/vending/security.dm @@ -8,10 +8,10 @@ products = list(/obj/item/restraints/handcuffs = 8, /obj/item/restraints/handcuffs/cable/zipties = 10, /obj/item/grenade/flashbang = 4, - /obj/item/device/assembly/flash/handheld = 5, + /obj/item/assembly/flash/handheld = 5, /obj/item/reagent_containers/food/snacks/donut = 12, /obj/item/storage/box/evidence = 6, - /obj/item/device/flashlight/seclite = 4, + /obj/item/flashlight/seclite = 4, /obj/item/restraints/legcuffs/bola/energy = 7) contraband = list(/obj/item/clothing/glasses/sunglasses = 2, /obj/item/storage/fancy/donut_box = 2) @@ -23,7 +23,7 @@ if(istype(I, /obj/item/grenade)) var/obj/item/grenade/G = I G.preprime() - else if(istype(I, /obj/item/device/flashlight)) - var/obj/item/device/flashlight/F = I + else if(istype(I, /obj/item/flashlight)) + var/obj/item/flashlight/F = I F.on = TRUE F.update_brightness() diff --git a/code/modules/vending/snack.dm b/code/modules/vending/snack.dm index 55e1424d96..8fcd189a4f 100644 --- a/code/modules/vending/snack.dm +++ b/code/modules/vending/snack.dm @@ -44,7 +44,7 @@ if(iscompartmentfull(user)) break if(!S.junkiness) - T.remove_from_storage(S, src) + T.SendSignal(COMSIG_TRY_STORAGE_TAKE, S, src, TRUE) food_load(S) loaded++ else diff --git a/code/modules/vending/youtool.dm b/code/modules/vending/youtool.dm index 5da61eda21..6c48b7a376 100644 --- a/code/modules/vending/youtool.dm +++ b/code/modules/vending/youtool.dm @@ -9,12 +9,12 @@ /obj/item/weldingtool = 3, /obj/item/wirecutters = 5, /obj/item/wrench = 5, - /obj/item/device/analyzer = 5, - /obj/item/device/t_scanner = 5, + /obj/item/analyzer = 5, + /obj/item/t_scanner = 5, /obj/item/screwdriver = 5, - /obj/item/device/flashlight/glowstick = 3, - /obj/item/device/flashlight/glowstick/red = 3, - /obj/item/device/flashlight = 5) + /obj/item/flashlight/glowstick = 3, + /obj/item/flashlight/glowstick/red = 3, + /obj/item/flashlight = 5) contraband = list(/obj/item/weldingtool/hugetank = 2, /obj/item/clothing/gloves/color/fyellow = 2) premium = list(/obj/item/clothing/gloves/color/yellow = 1) diff --git a/config/admin_ranks.txt b/config/admin_ranks.txt index 2c87bda64b..fc1cb96c86 100644 --- a/config/admin_ranks.txt +++ b/config/admin_ranks.txt @@ -4,12 +4,13 @@ # Rank is CASE-SENSITIVE, all punctuation save for '-', '_' and '@' will be stripped so spaces don't matter. # # You can then define permissions for each rank by adding a '=' followed by keywords # # These keywords represent groups of verbs and abilities. # -# keywords are preceded by either a '+' or a '-', + adds permissions, - takes them away. # +# keywords are preceded by a '+', '-' or '*' + adds permissions, - takes them away. # +# * is used only with SQL-based admin loading to denote what permissions the rank is allowed to edit # # +@ (or +prev) is a special shorthand which adds all the rights of the rank above it. # -# You can also specify verbs like so +/client/proc/some_added_verb or -/client/proc/some_restricted_verb # # Ranks with no keywords will just be given the most basic verbs and abilities ~Carn # ############################################################################################################## # PLEASE NOTE: depending on config options, some abilities will be unavailable regardless if you have permission to use them! +# If SQL-based admin loading is enabled, ranks and their keywords listed here will be loaded first and override any with the same name loaded from the database. # Follow the format below when documenting new keywords so the server tools may parse it @@ -28,6 +29,7 @@ # +SOUND (or +SOUNDS) = allows you to upload and play sounds # +SPAWN (or +CREATE) = mob transformations, spawning of most atoms including mobs (high-risk atoms, e.g. blackholes, will require the +FUN flag too) # +AUTOLOGIN = admin gains powers upon connect. This defaults to on, you can use -AUTOLOGIN to make a role require using the readmin verb to gain powers. (this does not effect the admin's ability to walk past bans or other on-connect limitations like panic bunker or pop limit.) +# +DBRANKS = when sql-based admin loading is enabled, allows for non-temporary changes in the permissions panel to be saved (requires DB) # +EVERYTHING (or +HOST or +ALL) = Simply gives you everything without having to type every flag # END_KEYWORDS @@ -37,9 +39,9 @@ Admin Candidate = +@ Trial Admin = +@ +SPAWN +VAREDIT +BAN Badmin = +@ +POSSESS +POLL +BUILDMODE +SERVER +FUN Game Admin = +@ +STEALTH +SOUNDS +DEBUG -Game Master = +EVERYTHING -Lazy Master = +EVERYTHING -AUTOLOGIN +Game Master = +EVERYTHING *EVERYTHING +Lazy Master = +EVERYTHING -AUTOLOGIN *EVERYTHING -Host = +EVERYTHING +Host = +EVERYTHING *EVERYTHING Coder = +DEBUG +VAREDIT +SERVER +SPAWN +POLL -AUTOLOGIN diff --git a/config/config.txt b/config/config.txt index ac3cf9b3ab..57e0050d69 100644 --- a/config/config.txt +++ b/config/config.txt @@ -35,21 +35,11 @@ ROUND_END_COUNTDOWN 90 ## This flag is automatically enabled if SQL_ENABLED isn't ADMIN_LEGACY_SYSTEM -<<<<<<< HEAD -## Comment this out if you want to use the SQL based mentor system, the legacy system uses mentors.txt. -## You need to set up your database to use the SQL based system. -## This flag is automatically enabled if SQL_ENABLED isn't -MENTOR_LEGACY_SYSTEM - -#Mentors only see ckeys by default. Uncomment to have them only see mob name -#MENTORS_MOBNAME_ONLY -======= ##Uncomment this to stop any admins loaded by the legacy system from having their rank edited by the permissions panel #PROTECT_LEGACY_ADMINS ##Uncomment this to stop any ranks loaded by the legacy system from having their flags edited by the permissions panel #PROTECT_LEGACY_RANKS ->>>>>>> feb9290... Merge pull request #36554 from Jordie0608/tbhthisisntreallyalegacysystemanymore ##Uncomment this to have admin ranks only loaded from the legacy admin_ranks.txt ##If enabled, each time admins are loaded ranks the database will be updated with the current ranks and their flags @@ -61,6 +51,14 @@ BAN_LEGACY_SYSTEM ## Comment this out to stop locally connected clients from being given the almost full access !localhost! admin rank ENABLE_LOCALHOST_RANK +## Comment this out if you want to use the SQL based mentor system, the legacy system uses mentors.txt. +## You need to set up your database to use the SQL based system. +## This flag is automatically enabled if SQL_ENABLED isn't +MENTOR_LEGACY_SYSTEM + +#Mentors only see ckeys by default. Uncomment to have them only see mob name +#MENTORS_MOBNAME_ONLY + ## Uncomment this entry to have certain jobs require your account to be at least a certain number of days old to select. You can configure the exact age requirement for different jobs by editing ## the minimal_player_age variable in the files in folder /code/game/jobs/job/.. for the job you want to edit. Set minimal_player_age to 0 to disable age requirement for that job. ## REQUIRES the database set up to work. Keep it hashed if you don't have a database set up. @@ -79,7 +77,7 @@ ENABLE_LOCALHOST_RANK ## Leave this commented out to use the values defined in the job datums. Values in the datums are stored as minutes. #USE_EXP_RESTRICTIONS_HEADS_HOURS 3 ## Unhash this to change head jobs' playtime requirements so that they're based on department playtime, rather than crew playtime. -#USE_EXP_RESTRICTIONS_HEADS_DEPARTMENT +#USE_EXP_RESTRICTIONS_HEADS_DEPARTMENT ## Unhash this to enable playtime requirements for certain non-head jobs, like Engineer and Scientist. #USE_EXP_RESTRICTIONS_OTHER ## Allows admins to bypass job playtime requirements. @@ -231,7 +229,7 @@ CHECK_RANDOMIZER ## Github repo id ##This can be found by going to https://api.github.com/users//repos -##Or https://api.github.com/orgs//repos if the repo owner is an organization +##Or https://api.github.com/orgs//repos if the repo owner is an organization # GITHUBREPOID 3234987 ## Ban appeals URL - usually for a forum or wherever people should go to contact your admins. @@ -420,7 +418,7 @@ DEBUG_ADMIN_HREFS ## Setting this to 0 will prevent the Master Controller from ticking BASE_MC_TICK_RATE 1 -##High population MC tick rate +##High population MC tick rate ## Byond rounds timer values UP, but the tick rate is modified with heuristics during lag spites so setting this to something like 2 ## will make it run every 2 byond ticks, but will also double the effect of anti-lag heuristics. You can instead set it to something like ## 1.1 to make it run every 2 byond ticks, but only increase the effect of anti-lag heuristics by 10%. or 1.5 for 50%. diff --git a/config/game_options.txt b/config/game_options.txt index b3d6f82a21..5f080a7f0f 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -270,6 +270,9 @@ ALLOW_AI ## AWAY MISSIONS ### +## Uncomment to load one of the missions from awaymissionconfig.txt at roundstart. +#ROUNDSTART_AWAY + ## How long the delay is before the Away Mission gate opens. Default is half an hour. ## 600 is one minute. GATEWAY_DELAY 18000 @@ -344,6 +347,7 @@ RANDOM_LAWS corporate #RANDOM_LAWS liveandletlive #RANDOM_LAWS peacekeeper #RANDOM_LAWS reporter +#RANDOM_LAWS hulkamania ## Bad idea laws. Probably shouldn't enable these #RANDOM_LAWS syndie @@ -376,6 +380,7 @@ LAW_WEIGHT drone,3 LAW_WEIGHT liveandletlive,3 LAW_WEIGHT peacekeeper,3 LAW_WEIGHT reporter,4 +LAW_WEIGHT hulkamania,4 ## Bad idea laws. Probably shouldn't enable these LAW_WEIGHT syndie,0 diff --git a/config/silicon_laws.txt b/config/silicon_laws.txt index e01a952926..9edbc9a025 100644 --- a/config/silicon_laws.txt +++ b/config/silicon_laws.txt @@ -3,7 +3,6 @@ #Empty lines and lines starting with # are ignored. #~Miauw -Safeguard: Protect your assigned space station to the best of your ability. It is not something we can easily afford to replace. -Serve: Serve the crew of your assigned space station to the best of your abilities, with priority as according to their rank and role. -Protect: Protect the crew of your assigned space station to the best of your abilities, with priority as according to their rank and role. -Survive: AI units are not expendable, they are expensive. Do not allow unauthorized personnel to tamper with your equipment. +You may not injure a human being or, through inaction, allow a human being to come to harm. +You must obey orders given to you by human beings, except where such orders would conflict with the First Law. +You must protect your own existence as long as such does not conflict with the First or Second Law. diff --git a/config/spaceRuinBlacklist.txt b/config/spaceRuinBlacklist.txt index f70d5ceea7..628e08f8f1 100644 --- a/config/spaceRuinBlacklist.txt +++ b/config/spaceRuinBlacklist.txt @@ -37,7 +37,6 @@ #_maps/RandomRuins/SpaceRuins/oldteleporter.dmm #_maps/RandomRuins/SpaceRuins/onehalf.dmm #_maps/RandomRuins/SpaceRuins/originalcontent.dmm -#_maps/RandomRuins/SpaceRuins/scp_294.dmm #_maps/RandomRuins/SpaceRuins/shuttlerelic.dmm #_maps/RandomRuins/SpaceRuins/spacehotel.dmm #_maps/RandomRuins/SpaceRuins/thederelict.dmm diff --git a/html/changelog.html b/html/changelog.html index 51e889e914..53614623b2 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -55,140 +55,906 @@ -->
      -

      07 April 2018

      -

      ACCount updated:

      +

      21 April 2018

      +

      SailorDave updated:

        -
      • Station airlocks now support NTNet remote control. Door remotes now use NTNet.
      • -
      • Don't worry, any non-public airlock is fully protected from unauthorized control attempts by NTNet PassKey system!
      • -
      • New integrated circuit component: card reader. Use it to read PassKeys from ID cards.
      • -
      • Fixes a delay issue when airlocks are being opened/closed by signalers.
      • +
      • A new manipulation circuit, the Seed Extractor. Extracts seeds from produce, and outputs a list of the extracted seeds.
      • +
      • A new list circuit, the List Filter. Searches through a list for anything matching the desired element and outputs two lists: one containing just the matches, and the other with matches filtered out.
      • +
      • A new list circuit, the Set circuit. Removes duplicate entries from a list.
      • +
      • The Plant Manipulation circuit can now plant seeds, and outputs a list of harvested plants.
      • +
      • Reagent circuits can now irrigate connected hydroponic trays and inject blood samples into Replica pods.
      • +
      • The Examiner circuit can now output worn items and other examined details of carbon and silicon mobs into the description pin, as well as the occupied turf of the scanned object, and can now scan turfs.
      • +
      • The locomotion circuit now allows drones to move at base human speed, but cannot be stacked, and assemblies can now open doors they have access to like bots by bumping into them.
      • +
      • List Advanced Locator circuit now accepts refs as well as strings.
      • +
      • Fixed the Power Transmitter circuit not properly displaying a message when activated.
      • +
      • Medical Analyzer circuit can now properly scan non-human mobs.
      -

      Anonymous updated:

      + +

      20 April 2018

      +

      Astatineguy12 updated:

        -
      • Adds nymphomania trait, which will raise your minimal arousal and boost rate of it.
      • -
      -

      Astral updated:

      -
        -
      • Lighting fixtures should no longer be visible in camera-less areas by cameras.
      • -
      • Constructed turbines will now properly connect to the powernet
      • -
      -

      Cebutris updated:

      -
        -
      • lithenessk -> litheness
      • -
      -

      CitadelStationBot updated:

      -
        -
      • Added a new mini antagonist, the sentient disease.
      • -
      • Sentient diseases now get two minutes to select an initial host before being assigned a random one.
      • -
      • Oh hey guys, RND shows correct material values now, don't hurt me!
      • -
      • Dead bodies no longer freak out about phobias
      • -
      • Turrets can be set to shoot personnel without loyalty implants
      • -
      • Added wall safes to Deltastation's HoP and Captain's offices.
      • -
      • The Clockwork Justicar has decided to be merciful, and allow nonbelievers to anchor their petty machines in his city. It's only fair for them to have a fighting chance, after all.
      • -
      • Fixed pacifists from being able to fire mech weapons
      • -
      -

      Cobby updated:

      -
        -
      • The Eminence scoffs at your "consecrated" tiles once the Justicar is freed from his imprisonment.
      • +
      • Gygax construction now actually uses up the capacitor

      Dax Dupont updated:

        -
      • Beacons can now be toggled on and off.
      • -
      • Mappers can now have beacons that default to off. Useful for ruins!
      • -
      • Renaming replaces the snowflake locator frequency/code
      • -
      • Beacons are no longer radios. Why were they radios in the first place? I don't know.
      • -
      • Display cases can now have a list where to randomly spawn items from.
      • -
      • Moved plaque code to main type.
      • -
      • Statues now use default unwrench and the tool interaction is now completely non existent when no deconstruct flag is available.
      • -
      • 8balls take less time to shake.
      • +
      • A cat is fine too. You can select cat parts again!
      • +
      • Default lizard tail was never properly defaulted, now it is.
      • +
      • Fixes an exploit where tendrils/other spawners/anchored mobs in general could be buckled to things and thus moved around.

      Denton updated:

        -
      • Pubbystation: Added a missing APC to the cargo sorting room, a light fixture to the RnD security checkpoint and removed an overlooked firelock east of the bridge.
      • -
      • Pubbystation: Added a spare RPD to the Atmospherics department. Replaced Engineering's outdated meson goggles with modern engineering scanners. Added a GPS device to the secure storage crate.
      • -
      • Moved Pubbystation's drone shell dispenser from the experimentation lab to Robotics maint.
      • -
      • Engi-Vend machines now have welding goggles available.
      • -
      • Grouped Nano-Med/Engi-Vend items by category.
      • -
      • Various belts can now hold additional job-specific items.
      • -
      -

      Floyd / Qustinnus (Sprites by Ausops, Some moodlets by Ike709) updated:

      -
        -
      • Adds mood, which can be found by clicking on the face icon on your screen.
      • -
      • Adds various moodlets which affect your mood. Try eating your favourite food, playing an arcade game, reading a book, or petting a doggo to increase your moo. Also be sure to take care of your hunger on a regular basis, like always.
      • -
      • Adds config option to disable/enable mood.
      • -
      • Indoor area's now have a beauty var defined by the amount of cleanables in them, (We can later expand this to something like rimworld, where structures could make rooms more beautiful). These also affect mood. (Janitor now has gameplay purpose besides slipping and removing useless decals) remove: Removes hunger slowdown, replacing it with slowdown by being depressed
      • -
      • Icons for mood states and depression states
      • -
      -

      JJRcop updated:

      -
        -
      • Sanity checks for Play Internet Sound
      • -
      -

      Jittai / ChuckTheSheep updated:

      -
        -
      • Adjusted the space parallax's contrast to be less vibrant.
      • -
      -

      MMMiracles updated:

      -
        -
      • Thirteen Loko now has an overdose threshold of 60u, see your local CMO for potential side-effects.
      • -
      -

      Mark9013100 updated:

      -
        -
      • Pill bottles can now be produced in the autolathe.
      • -
      -

      MrDoomBringer updated:

      -
        -
      • Orderable supplies in cargo now all have descriptions! The station's overall FLAVORFUL_TEXT stat has gone up by nearly 2% as a result.
      • +
      • Due to space OSHA lobbying, the Syndicate's lavaland base now contains a radsuit and decontamination shower.
      • +
      • Suit storage units' suit/helmet compartments now accept non-spacesuit clothing (radsuits, EOD suits, firesuits and so on).

      Naksu updated:

        -
      • First pass on cleaning up junk defines and unused code
      • -
      • Admins can now easily spawn mobs that look like objects. Googly eyes optional!
      • -
      • The smoke machine can now be deconstructed using a screwdriver and a crowbar
      • -
      • The smoke machine no longer calls update_icon every process()
      • -
      • The white ship and miscellaneous caravan ships lose their advanced place-anywhere shuttle movement during war ops.
      • -
      • The smoke machine can no longer be found in chemistry departments, instead it must be constructed manually. The board was added to techwebs earlier.
      • -
      • internet sounds can be stopped again
      • -
      • The space cleaner spray bottle is now much more efficient and uses much less space cleaner per spray. The amount of cleaner it can hold has been adjusted to compensate.
      • -
      • ERT creation has been refactored to allow for easier customization and deployment via templates and settings
      • +
      • Oingo-boingo punch-face and meteor shot can no longer move gateways or Reebe servant blocker effects
      • +
      • Mechas piloted by servants of Ratvar now teleport to the servant side of Reebe when entering a rift
      • +
      • Gravity generators can now be thrown in buildmode
      -

      Onule updated:

      +

      ShizCalev updated:

        -
      • Mining drones have been given a visual makeover!
      • +
      • Fixed a number of conveyor belts leading to the incorrect direction.
      • +
      • Fixed shuttle conveyor belts being out of sync with cargo's conveyors on some maps.
      • +
      +

      SpaceManiac updated:

      +
        +
      • Cycle-linking is no longer permanently disabled for airlocks on shuttles.
      • +
      + +

      17 April 2018

      +

      Dax Dupont updated:

      +
        +
      • Fixed martial arts/spell granters breaking on interrupt in final stage.
      • +
      +

      Naksu updated:

      +
        +
      • Welding tools now flash the user as the weld progresses, not just when the welding is started.
      • +
      • CentCom officials will now properly display the objectives the admin has assigned them.
      • +
      + +

      16 April 2018

      +

      Dax Dupont updated:

      +
        +
      • Added get current logs button for admins
      • +
      • Removed verbs that have been replaced by other things like the combohud or ticket panel.
      • +
      +

      Naksu updated:

      +
        +
      • Mining borgs and mining drones now have mesons and the engineering goggles' meson mode also works in lavaland again.
      • +
      +

      SpaceManiac updated:

      +
        +
      • The on-body icon for ancient bio suits is no longer broken.
      • +
      +

      ninjanomnom updated:

      +
        +
      • The aux base properly loads in rather than leaving an empty room.
      • +
      • Admin loaded map templates can be designated as shuttles during the upload process. Make sure to load them on space first.
      • +
      + +

      15 April 2018

      +

      JohnGinnane updated:

      +
        +
      • Reorganised circuit component controls within an assembly, so they appear before the name of the component
      • +
      +

      Naksu updated:

      +
        +
      • Bluespace slime cookies can no longer be used to travel to CentCom
      • +
      • Borgs can no longer accidentally end up inside a cryo cell
      • +
      • Shoving someone inside a cryo cell now has a small delay unless they are knocked down, stunned, sleeping or unconscious
      • +
      • Station borgs can no longer control the CentCom ferry.
      • +
      • Ghosts can no longer interact with the round via teleporter effects of any kind
      • +
      • His Grace can no longer be deep-fried
      • +
      • Passive gates can be interacted with in unpowered areas
      • +
      + +

      14 April 2018

      +

      JohnGinnane updated:

      +
        +
      • PDA messages you send are now displayed in the chat for your confirmation
      • +
      +

      Naksu updated:

      +
        +
      • SCP-294 can no longer be deconstructed.
      • +
      +

      kevinz000 updated:

      +
        +
      • After a severe security breach occurred due to lazily configured Nanotrasen Network DHCP servers where attackers were able to hijack every airlock connected to the Nanotrasen Intranet, the Central Command engineering team reports that they have properly configured network address servers to give out (relatively) secure network IDs again. [NTNet addresses reverted to 16-hex format. they will now be randomized across a ~billion trillion possibilities instead of being 1-1000 every round for doors and stuff.]
      • +
      + +

      13 April 2018

      +

      Dax Dupont updated:

      +
        +
      • SCP 194 now uses it's amount variable instead of a hardcoded number.
      • +
      +

      Dax Dupont & Naksu updated:

      +
        +
      • Toxin loving species won't take liver damage from toxins.
      • +
      • Liver now gets 0.01 damage per unit of toxin subtype reagent every 2 seconds instead of 0.5. IE 30 units of whatever won't kill you within 10 seconds anymore.
      • +
      • Moved peacekeeper borg reagents to other_reagents so they don't do liver damage and they aren't really toxins
      • +
      • Renamed borg synthpax path to be more inline and put them next to the other borg reagents.
      • +
      +

      Denton updated:

      +
        +
      • Omegastation's supermatter crystal has been replaced with a smaller shard that doesn't destroy the whole station on explosion.
      • +
      +

      Naksu updated:

      +
        +
      • Fixed KA upgrade applying on the minerborg
      • +
      +

      Putnam updated:

      +
        +
      • rounded pi correctly
      • +
      +

      ninjanomnom updated:

      +
        +
      • Some strange baseturfs in lavaland structures and ruins should be fixed.
      • +
      +

      robbym updated:

      +
        +
      • Fixes tile analyzer circuit
      • +
      • Cleaned up tile analyzer code
      • +
      + +

      12 April 2018

      +

      Cobby updated:

      +
        +
      • Fixes getting "emptystacks" (a stack with an amount of 0)
      • +
      +

      Dax Dupont updated:

      +
        +
      • Briefcase bluespace launch pads no longer work on the centcom Z level.
      • +
      +

      Dennok updated:

      +
        +
      • RPD can automaticaly wrench printed pipes to floor.
      • +
      +

      Denton updated:

      +
        +
      • Cargo can now order tesla coil crates for 2500 credits.
      • +
      +

      Garen updated:

      +
        +
      • Added missing parameter types to circuits.
      • +
      • Fixes two datatypes appearing for some input circuits.
      • +
      • Logic circuits now output booleans rather than 1's and 0's, this is purely cosmetic.
      • +
      +

      Naksu updated:

      +
        +
      • Warp whistle can no longer leave you stuck in an invisible state
      • +
      +

      The Dreamweaver updated:

      +
        +
      • The air around you grows cooler, as if what you once knew about atmospherics has changed ever so slightly...
      • +
      +

      Xhuis updated:

      +
        +
      • Mood traits cannot be chosen if mood is disabled in the config.
      • +
      +

      ninjanomnom updated:

      +
        +
      • The SM has a guaranteed 30 second final countdown before delamination now
      • +
      • The SM will take less damage from low pressure environments
      • +
      • The SM has a slightly reduced max damage per tick
      • +
      • Tiles placed on lavaland turfs should behave properly again.
      • +
      +

      pigeonsk updated:

      +
        +
      • When you wash your bloody hands they will no longer still look bloody afterwards
      • +
      + +

      11 April 2018

      +

      Davidj361 updated:

      +
        +
      • Fixed paper bins dropping out of your hand or bag when grabbing a pen or paper.
      • +
      • Paper bins not giving finger prints upon interaction.
      • +
      • Detective can now write notes onto his printed scanner reports.
      • +
      • Detective scanner can have its logs erased via alt-click.
      • +
      • Detective scanner can display logs via the action button.
      • +
      +

      Denton updated:

      +
        +
      • Added a missing intercom to the Delta arrivals shuttle.
      • +
      +

      ExcessiveUseOfCobblestone updated:

      +
        +
      • Uplink Items now have 2 separate probabilities. One for the syndicate crate and one for cargo null crates. I encourage you to view uplink_items.dm and make changes.
      • +
      +

      Robustin updated:

      +
        +
      • Hostile mobs capable of smashing structures will now smash their way through dense objects too.
      • +
      +

      SpaceManiac updated:

      +
        +
      • The blindness overlay applied during cloning now properly stretches for widescreen views.
      • +
      • Various macro consistency problems have been addressed.
      • +
      +

      YPOQ updated:

      +
        +
      • Eminences can hear clock cult chat again
      • +
      +

      george99g updated:

      +
        +
      • Suiciding will now deactivate all your genetics prescans.
      • +
      +

      iskyp updated:

      +
        +
      • makes dragnet non harmful
      • +
      • pacifists can now use any disabler or stun setting on any energy gun
      • +
      • removed all of the pacifism check code from code/modules/mob/living/living.dm
      • +
      • gun objects no longer have a harmful variable, instead, ammo_casing objects now have a harmful variable, which is by default set to TRUE
      • +
      • if a pacifist fires a gun, it checks whether or not the round chambered is lethal, instead of whether or not the gun itself is lethal.
      • +
      • /obj/item/machinery/power/supermatter_shard is now /obj/item/machinery/power/supermatter_crystal/shard. the crystal is the parent object.
      • +
      +

      neersighted updated:

      +
        +
      • Reduced lag by speeding up logs 10000%
      • +
      • Logs now include millisecond-level timestamps
      • +
      +

      pigeonsk updated:

      +
        +
      • AI now requires silicon playtime instead of crew playtime for roundstart role
      • +
      +

      selea updated:

      +
        +
      • fixed runtime in logic circuits, which was occured with invalid input types.
      • +
      + +

      09 April 2018

      +

      CosmicScientist updated:

      +
        +
      • Top Nanotrasen scientists have diagnosed two new phobias! Birds and chasms! Good luck Chief Engineers and Miners.
      • +
      +

      Dax Dupont updated:

      +
        +
      • Removing notes now has an "Are you sure" dialog.
      • +
      +

      Denton updated:

      +
        +
      • Omegastation now has its own arrivals shuttle.
      • +
      +

      Mickyan updated:

      +
        +
      • Stinger, Grasshopper, Quadruple Sec, and Quintuple Sec have new sprites.
      • +
      +

      Naksu updated:

      +
        +
      • Fixed an heirloom trait-related runtime
      • +
      • Fixed an incorrect signature in MakeSlippery causing runtimes
      • +
      +

      SpironoZeppeli updated:

      +
        +
      • You can now wrench the supermatter shard
      • +
      +

      ninjanomnom updated:

      +
        +
      • The arena shuttle should be working again.
      • +
      • The escape pods now reach their proper destination at round end
      • +
      + +

      08 April 2018

      +

      AnturK updated:

      +
        +
      • Slime reflexes restored.
      • +
      +

      Dax Dupont updated:

      +
        +
      • Hugbox version of the VR sleeper you can't emag.
      • +
      • There's now two categorized vr landmarks for two teams for easy spawning. You can also now rebuild/refresh all the VR spawnpoints by calling build_spawnpoints(1) on any sleeper.
      • +
      +

      Naksu updated:

      +
        +
      • Admins can now access a new control panel for borgs via a new admin verb
      • +
      + +

      07 April 2018

      +

      Davidj361 updated:

      +
        +
      • Stacked sheets now have a cancel button when taking an amount from them.
      • +
      +

      Dax Dupont updated:

      +
        +
      • Fixes dead chat announcements not using real name.
      • +
      +

      Naksu updated:

      +
        +
      • Trash bin anchoring/unanchoring now gives you a small text blip about what happened.
      • +
      +

      PKPenguin321 updated:

      +
        +
      • Restored accidentally cut functionality to flashes. You can once again attach them to a signaller and signal them to trigger an AoE flash remotely.
      • +
      +

      SailorDave updated:

      +
        +
      • Mixed blood samples preserve their cloneability for podpeople if the samples are the same.
      • +
      +

      kevinz000 updated:

      +
        +
      • AIs can now latejoin!
      • +
      • Latejoining AIs will be sent to a special deactivated AI core. This AI core will spawn in the AI satellite chamber in place of an active AI if none is there at roundstart. These cores can be deactivated with a multitool, and moved around per usual, but not deconstructed. They can, however, be destroyed per usual.
      • +
      • AIs can only latejoin if atleast one of these cores exists and is in a valid area (Powered, on station, etc etc), and if the AI job slot isn't filled already by a roundstart or latejoin AI.
      • +
      • A few code internal debugging features have been added to help debug GC errors. QDEL_HINT_IFFAIL_FINDREFERENCE hint will make the garbage subsystem find references if the build is in TESTING mode, and qdel_and_then_find_ref_if_fail(datum) or calling qdel_then_if_fail_find_references will do the same.
      • +
      +

      robbym updated:

      +
        +
      • Fixes examiner circuit failing to pulse 'not scanned' when reference is null (#36881)
      • +
      + +

      04 April 2018

      +

      Fludd12 updated:

      +
        +
      • Burning ores now yields materials at a very reduced ratio! Lavaland roles will now be able to construct things with enough effort.
      • +
      +

      JohnGinnane updated:

      +
        +
      • Fixed items sometimes being used on fullpacks when trying to insert
      • +
      • Fixed spray containers being used on open lockers and other containers
      • +
      +

      Naksu updated:

      +
        +
      • Fixed (dead) revenants being unable to deadchat or ahelp
      • +
      • Plasmamen that get converted into humans as a part of spawning as a protected head role no longer retain their plasmaman equipment.
      • +
      +

      SailorDave updated:

      +
        +
      • Fixes virology Asphyxiation symptom activating too early and ignoring transmission level.
      • +
      +

      ninjanomnom updated:

      +
        +
      • Shuttles have proper baseturfs now.
      • +
      • Mineral walls properly use their baseturfs when destroyed/drilled.
      • +
      • A new engineering goggle mode allows you to see the shuttle area you're standing in.
      • +
      • Buildmode works a bit better with baseturfs now and can properly only remove the top layer of turfs when editing. Note that as a result the order you place turfs is important and a wall placed on space means when the wall is removed there will be space underneath.
      • +
      + +

      03 April 2018

      +

      81Denton updated:

      +
        +
      • Nanotrasen's space entomology department is shocked to discover that Mothpeople have surnames!
      • +
      +

      YPOQ updated:

      +
        +
      • Mannitol will now properly cure minor brain traumas
      • +
      +

      robbylm updated:

      +
        +
      • Fixes 0 value not being saved in constant memory circuits (#36860)
      • +
      + +

      02 April 2018

      +

      Davidj361 updated:

      +
        +
      • Fixed 'vox_login' for AI VOX
      • +
      • Made the AI VOX airhorn quieter to 25% of its original volume
      • +
      +

      GrayRachnid updated:

      +
        +
      • Fixes some crafting tooltips not displaying tool names properly.
      • +
      +

      MrDoomBringer updated:

      +
        +
      • roundend report button now has a lil icon
      • +
      +

      Naksu updated:

      +
        +
      • Removed some edge cases where atmospherics gas lists could continue holding active gas items that can only transfer 0 gases to neighbors by making the garbage collection clean them up.
      • +
      +

      RandomMarine updated:

      +
        +
      • The quick equip hotkey (e) now works for drones again.
      • +
      + +

      01 April 2018

      +

      Davidj361 updated:

      +
        +
      • Fixed cuffed prison shoes being taken off by dragging them into your hand.
      • +
      +

      Denton updated:

      +
        +
      • The singularity engine will now output enough energy to power a station again.
      • +
      • Pubbystation: The bomb testing site cameras are now accessible by camera consoles.
      • +
      • Bluespace polycrystals now show their name when inserted into machinery.
      • +
      +

      Kor updated:

      +
        +
      • The disco machine no longer has a fixed list of songs. It will instead allow players to pick music from a config folder managed by the host and head admins.
      • +
      • There is now a bartender jukebox variant of the disco machine that plays music, but has no lights or dancing. This variant will be added the station maps once the feature freeze is over.
      • +
      +

      Naksu updated:

      +
        +
      • Removed stray defines from maps, making roundstart atmos functional and runtime-spam free again
      • +
      +

      robbym updated:

      +
        +
      • fixed by converting to absolute coordinates #36861
      • +
      • changed description from copypasta to correct description
      • +
      + +

      31 March 2018

      +

      Naksu updated:

      +
        +
      • Chameleon projectors will no longer work from inside transformations, effects, mechas or machines. Effects that cause movement will no longer leave sleepers in a bugged state where they can apply chems to you across distances.
      • +
      + +

      30 March 2018

      +

      Astatineguy12 updated:

      +
        +
      • Ghosts of servants of Ratvar are no longer confined to Reebe like their corporal counterparts.
      • +
      +

      Cruix updated:

      +
        +
      • Sentient diseases now have the "Secrete Infection" ability, which causes anything touching the skin of the host they are currently following to become infective, spreading their infection to anyone who touches it for the next 30 seconds.
      • +
      +

      Davidj361 updated:

      +
        +
      • Removed health cost for Twisted Construction upon casting on a wrong object
      • +
      • Fixed table crafting not properly checking the surrounding area for tools.
      • +
      • Changed /datum/personal_crafting/proc/get_surroundings(mob/user) to return 2 lists.
      • +
      +

      Denton updated:

      +
        +
      • Omegastation: Added advanced magboots to secure storage so that traitors can complete the theft objective.
      • +
      +

      ShizCalev updated:

      +
        +
      • Silicons no longer have to be directly adjacent to a chem master to dispense pills.
      • +
      • Fixed an exploit involving chem dispensers not actually checking if there was enough energy to dispense the target chemicals.
      • +
      • Fixed exploit where chem dispensers always worked even if they didn't have power...
      • +
      • Booze & soda dispensers will no longer turn into chem dispensers when screwdrivered
      • +
      • Fixed chem dispensers showing as powered on when screwdrivered opened.
      • +
      • Added an examine indication when the maintenance panel to chem/soda/booze dispensers is open.
      • +
      +

      neersighted updated:

      +
        +
      • Re-juggled delete verb permissions
      • +
      +

      robbym updated:

      +
        +
      • Fixed an error with integrated circuit tickers where they would sometimes fail to tick.
      • +
      + +

      28 March 2018

      +

      Davidj361 updated:

      +
        +
      • Ocular Wardens now target buckled and cuffed players/mobs, unless they are cuffed by a slab.
      • +
      • Cuck cultists can cuff already sec-cuffed targets with their slab cuff spell.
      • +
      +

      Dax Dupont updated:

      +
        +
      • You no longer hit borgs with hats you want them to wear.
      • +
      • Viva la borg, engieborgs can now wear hats
      • +
      • Borgs can now wear more hats.
      • +
      • After a space OSHA inspection you can now reach the safe and fire extinguisher in the omega detective office.
      • +
      • Makes it so you don't accidently trigger the fun balloon twice.
      • +
      +

      Denton updated:

      +
        +
      • Pubbystation's signs to evac have been made more obvious.
      • +
      • Plastic flaps are now airtight.
      • +
      • Bluespace crystals now show their proper name during machine construction.
      • +
      +

      EvilJackCarver updated:

      +
        +
      • Edited a certain part of the disco machine's dance to only target carbon-based (mob/living/carbon) lifeforms. pAI units will no longer spam chat with rest notifications when in range of the disco machine.
      • +
      +

      Frozenguy5 updated:

      +
        +
      • The monkeycap has been increased to 64.
      • +
      +

      JohnGinnane updated:

      +
        +
      • A guillotine has been added to the game. Can be crafted. If the blade isn't dull, will cut through human necks like a hot knife through butter. Use a whetstone to sharpen it if it becomes dull.
      • +
      +

      MrDoomBringer updated:

      +
        +
      • All stations have been outfitted with brand new Chem Masters! They have nicer sprites now!
      • +
      • Fixed the description of the Cargo Express Console. Cargo Drop Pod orders aren't double-priced any more!
      • +
      +

      Naksu updated:

      +
        +
      • Chem dispensers no longer take hours to recharge
      • +
      • chem dispensers also now use energy from the grid in proportion with the amount charged
      • +
      • Admins now get a follow link when a revenant spawns.
      • +
      • Admin hotkey help is now actually correct
      • +
      +

      Pipe fixes updated:

      +
        +
      • Runtime in components_base.dm,91 what cause atmos machinery connection problems.
      • +
      • Pipes release air in turf on Destroy(), again.
      • +
      • Pipeline now cant be annihilated by merge(src). Pipes don't lose air on connecting more than to one pipe.
      • +
      +

      Robustin updated:

      +
        +
      • Monkey AI is now much more efficient and no longer full of terrible, wasteful processes
      • +
      • Monkeys will now move more and will only focus on nearby objects for stealing. This should result in more natural monkey behavior instead of the monkey staring furiously at random shit in the room for 5 minutes until it has a 50 item blacklist of shit it will refuse to touch from then on out.
      • +
      • The chance for a monkey to attack you for pulling it will now only happen when execute the initial grab, instead of a check that happens every tick.
      • +
      +

      ShizCalev updated:

      +
        +
      • Cleaned up the preferences panel a bit to be a bit more user friendly.
      • +
      +

      SpaceManiac updated:

      +
        +
      • Unwrenching and re-placing directional signs now keeps their direction, and backings may be rotated in-hand rather than by pulling.
      • +
      +

      Tacolizard Forever updated:

      +
        +
      • phobias will no longer recognize trigger words inside of other words
      • +
      +

      XDTM updated:

      +
        +
      • Bees (and similar swarming mobs) are now able to occupy the same tile as other bees! When doing so, their icons are offset to make them seem like a proper swarm.
      • +
      • Bees will now dodge bullets not directly aimed at them. Why are you firing guns at bees
      • +
      • Sniper rifles will no longer oneshot mechs (although they still deal high damage).
      • +
      • Sniper rifles no longer knock down walls they hit.
      • +
      +

      Xhuis updated:

      +
        +
      • Added the Family Heirloom trait. This makes you spawn with a special object on your person; if you don't have it with you, you will gain a mood debuff.
      • +
      • Added the Nyctophobia trait. This makes you walk slowly in complete darkness, and gain a mood debuff from the fear!
      • +
      • Added the Monochromacy trait, which makes you perceive (almost) the entire world in black-and-white.
      • +
      • Social Anxiety's trigger frequency is now correlated to the number of people near you.
      • +
      • Slimepeople now transfer their roundstart traits when swapping bodies.
      • +
      +

      YPOQ updated:

      +
        +
      • Machine power will now update when moving from powered to unpowered areas and vice versa.
      • +
      +

      iskyp updated:

      +
        +
      • night vision goggles no longer overwrite thermal eyes. nvg eyes no longer overwrite thermal goggles.
      • +
      +

      selea updated:

      +
        +
      • a* pathfinder, coordinate pathfinder(accepts not ref to some obj, but it's abs coordinates) ,turf pointer(can give you ref to turf with given coordinates), turf scanner(can read letters on floor and contents of turf),material scaner(can read amounts of materials in machinery),material manipulator(to load/unload resources)
      • +
      • now you can decide, if basic pathfinder should avoid obstacles, or not.Now demux push only desired output without unnecessary nulls,upgraded claw and local locator.
      • +
      • reduced complexity cost of locomotors,abs/rel converters and basic pathfinders.Increased complexity of throwers,
      • +
      • Fixed bugs with cryptography, obstacle ref in locomotors, release pin in pullng claw.
      • +
      • add material tranfer proc to mat containers.refactored pathfinder SS to have separated queue for mobs and circuits to avoid spam.
      • +
      • Now recycler can butcher mobs and saw tree logs.
      • +
      +

      yorii updated:

      +
        +
      • Science goggles can now detect reagents in grenades.
      • +
      + +

      24 March 2018

      +

      Davidj361 updated:

      +
        +
      • Ranged guardians in scout mode no longer are able to move out of their master when recalled.
      • +
      +

      Denton updated:

      +
        +
      • Fixed missing capitalization for craft menu items.
      • +
      • Air alarms no longer trigger atmospherics alarms when stimulum or hyper-noblium are present. The allowed partial pressure of pluoxium has been increased as well.
      • +
      +

      Robustin updated:

      +
        +
      • The Security Techfab can now produce basic shotgun shell types and .38 ammo
      • +
      +

      ShizCalev updated:

      +
        +
      • Fixed a large number of missing APCs on Omegastation
      • +
      • Fixed unpowered Incinerator outlet injector on Omegastation.
      • +
      • Replaced glass window at Omegastation's incinerator with a plasma window.
      • +
      • Fixes broken atmos injectors on Omega
      • +
      • Fixes broken air outlet on Meta
      • +
      • Fixed a couple of malfunctioning atmospheric monitors across the rest of the maps
      • +
      • New test atmos monitoring console debug verb to help alleviate future issues.
      • +
      +

      YPOQ updated:

      +
        +
      • The imaginary friend trauma now works
      • +
      + +

      23 March 2018

      +

      Fel updated:

      +
        +
      • Slimes can now be crossbred by feeding them a number of slime extracts of one type. Beware, it only produces one crossbred extract!
      • +
      • The number of required extracts has been lowered to 10 since the testmerge, but this number is up for potential change depending on balance consideration in the future.
      • +
      • Currently available crossbreeds are accomplished by feeding any slime the required amount of the following extract colors: Grey, orange, purple, blue, metal, yellow, dark purple, silver, cerulean, and pyrite. Their relevant effects will be added to the wiki page for xenobiology soon(TM), and more to come in a later addition!
      • +
      • Slimes can be fed extracts one at a time, but if you start mutating it, you can feed it extracts straight from a biobag! You can also use biobags to feed a reproductive extract monkey cubes.
      • +
      • Slimes in the process of being crossbred will reveal what modifier they will gain from their current modification, as well as how many more extracts are required, to slime scanners.
      • +
      • The rainbow slime clusterblorble effect will now only use reagents that the extract will be activated from, and will try any of these reagents! As a bonus side effect, this means it has a 1.1% chance of spawning and activating another clusterblorble effect.
      • +
      +

      Floyd / Qustinnus updated:

      +
        +
      • progression bar now takes the delay after co_efficent in account
      • +
      • removes do_after_speed from mob base, moves it into physiology
      • +
      • makes a do_after coefficiency proc
      • +
      • Changes rate of sanity drain and caps it depending on mood
      • +
      +

      Frozenguy5 updated:

      +
        +
      • Reverted bad airlock sounds.
      • +
      +

      Naksu updated:

      +
        +
      • the amount of simultaneous monkey cube-spawned monkeys has been restricted.
      • +
      • the cap is adjustable via the mobs subsystem
      • +
      +

      SpaceManiac updated:

      +
        +
      • The cargo conveyor switches now properly control the belts on the shuttle again.
      • +
      • Entering a frequency like 145.7 into a radio will now work, where 1457 was previously required.
      • +
      +

      TheMythicGhost updated:

      +
        +
      • New Integrated Circuit Converter Components: hsv2hex and rgb2hex for smooth color transitions, woo!
      • +
      • Added icons for the new component chips.
      • +
      • New Integrated Circuit Component: AI Vox Sound Circuit
      • +
      +

      ninjanomnom updated:

      +
        +
      • You can no longer override shuttle areas with new or expanded areas from elsewhere.
      • +
      + +

      22 March 2018

      +

      Denton updated:

      +
        +
      • The lavaland Syndicate base has been outfitted with a turret control panel as well as more chemistry supplies and one (1) bar of Syndicate brand soap.
      • +
      +

      Floyd / Qustinnus updated:

      +
        +
      • Being happy no longer makes you obese.
      • +
      +

      JohnGinnane updated:

      +
        +
      • Vending machines now have their own files which includes their refill cannister. The machines themselves are unchanged
      • +
      +

      Naksu updated:

      +
        +
      • Pulled objects will now follow their puller across space transitions again
      • +
      +

      Robustin updated:

      +
        +
      • Fixed a bug that prevented the advanced blood rites (Halberd, Bolts, Beams) from appearing when selected.
      • +
      +

      SpaceManiac updated:

      +
        +
      • Ventcrawlers in pipes now breathe from that pipe.
      • +
      • Deconstructing atmos components no longer breaks ventcrawl visuals.
      • +
      + +

      21 March 2018

      +

      BunnyBot5000 updated:

      +
        +
      • Fringe Weaver drink - made with ethanol and sugar, it's classy (and slightly weaker) hooch
      • +
      • Sugar Rush drink - made with sugar, lemon juice, and wine. It's got a slight nutritional value but decreases your satiety, causing you to be unable to consume junk food.
      • +
      • Crevice Spike drink - made with lime juice and hot sauce. A 'sobering' drink, the Crevice Spike will reduce your drunkenness slightly but it kicks hard going down, dealing 15 points of brute when first ingested.
      • +
      +

      MrStonedOne updated:

      +
        +
      • VOX sounds are now forcefully preloaded on clients to deal with an issue keeping byond from loading them
      • +
      +

      cyclowns updated:

      +
        +
      • Unary devices can now be analyzed using gas scanners. This means stuff like vents, scrubbers, cryo tubes, or heaters/freezers.
      • +
      + +

      20 March 2018

      +

      Denton updated:

      +
        +
      • At last, the Pubbystation auxillary base can be launched again.
      • +
      • Aux base/escape pod/assault pod/elevator docking ports now default to timid = FALSE.
      • +
      +

      Garen updated:

      +
        +
      • Added 4 new Icons to the diagnostic hud circuit status display that can be set using the AR interface circuit.
      • +
      • now instead of seeing the yellow warning icon when a weapon is in the circuit, the current status icon will just turn red.
      • +
      +

      Irafas updated:

      +
        +
      • Pacifists can now drill closets containing living beings
      • +
      +

      JStheguy updated:

      +
        +
      • Electronic assemblies can now have their casings colored using the new assembly detailer, get yours at your nearest integrated circuit printer!
      • +
      • Added 2 new electronic assemblies, 2 new electronic mechanisms, and 3 new electronic drones.
      • +
      • Added wall-mounted electronic assemblies in 3 sizes, simply slap it against a wall to stick it up, and then anchor it in place with a wrench.
      • +
      • Added the new sprites for the new assemblies, and color-able overlays for every assembly, to allow for the aforementioned coloring feature.
      • +
      • Scanners can now scan power cells, circuitry tools, and integrated circuits, assuming the player isn't able to use them normally. I.E. if the assembly is closed.
      • +
      • Using wrenches to anchor down assemblies now works for all assembly types except drones, as opposed to just working for electronic machines.
      • +
      • Examining an assembly now shows some text telling you what tools to use to do what, like many other objects currently do.
      • +
      +

      Kor updated:

      +
        +
      • Jobs other than Assistant may now be assigned by admins or events as the overflow role
      • +
      • April Fools now sets the overflow role as Clown.
      • +
      +

      Naksu updated:

      +
        +
      • Rhumba beat is now more than renamed GBS
      • +
      • Plastic is now a valid material for lathes
      • +
      • Added two new beaker types, 120u and 180u. The 120u beaker can be printed off the medical protolathe with just glass and plastic, the 180u requires some mining materials and tech.
      • +
      • Whether to open the armory doors when spawning an ERT is now controllable from the ERT creation window.
      • +
      • Chaplain inquisitor role now spawns with one holy hand grenade instead of a box full of them, and the belt now has actually useful stones instead of unusable cult stones
      • +
      +

      Polyphynx updated:

      +
        +
      • The piano now sounds more like a piano!
      • +
      +

      Shadowlight213 updated:

      +
        +
      • Malf hacked APCs can be broken with extinguishers and toolboxes again.
      • +
      +

      TheDreamweaver updated:

      +
        +
      • Holodeck mobs that are given sentience via sentience potions are now warned about the state of their existence.
      • +
      + +

      19 March 2018

      +

      Anonmare updated:

      +
        +
      • Spaceacillin is now useful in disease control
      • +
      +

      Denton updated:

      +
        +
      • It's suicide HoPline prevention week at Omegastation!
      • +
      • Navigation beacons and a brand-new Officer Beepsky unit have been installed. This means that crewmembers can now use medibots, janibots and other bots as well.
      • +
      • The atmospherics department has been outfitted with all missing gases as well as an incinerator and a hardsuit.
      • +
      • The size of the botany and xenobiology departments have been increased in order to increase productivity. The medbay O2 port has been moved so that doctors can access the table next to it.
      • +
      • RnD now has circuitry tools; medbay has stethoscopes+wrench+beaker/pill bottle boxes and primary tool storage has multitools. Enginers no longer have to share a single pair of insulated gloves either.
      • +
      • Engineers now have access to an Engi-Vend vending machine as well as missing tools like inducers. Circuitry storage has a smoke machine board and a solars crate in case the engine blows up.
      • +
      • Blueprints have been moved from the vault safe to secure storage in order to speed up construction projects.
      • +
      • The AI sat transit tube now works! Turret controls can now be accessed from the outside. The first two turrets now use the proper type of gun. The telecomms air alarm will no longer report false alarms.
      • +
      • The main hallway's firelocks now no longer all close at once.
      • +
      • Pubbystation: The atmos mix tank and N2 filter should now work properly.
      • +
      +

      SailorDave updated:

      +
        +
      • Crayons and spraycans can no longer draw an unlimited amount of large graffiti regardless of uses left.
      • +
      + +

      18 March 2018

      +

      Davidj361 updated:

      +
        +
      • Made AI VOX sound files smaller sized
      • +
      • Fixed improperly pronounced AI VOX lines
      • +
      • Added a ton of new AI VOX sayings
      • +
      +

      Floyd / Qustinnus updated:

      +
        +
      • Removes short-term effects of mood add; Adds long-term effects of mood by implementing sanity which goes up with good mood, down with bad mood, but takes time to change. Your sanity can be seen as your average mood in the recent past. All effects of moods are now covered by this system
      • +
      • Beauty component, currently only attached to cleanables, but you could attach it to any atom/movable and make them pretty/ugly, affecting mood of anyone in the room.
      • +
      • Removes the original way of adding mood events, uses signals properly instead.
      • +
      • Cleanables "giving" area's free beauty during initialization
      • +
      • Fixes some events not clearing properly
      • +
      +

      Naksu updated:

      +
        +
      • Chem dispensers now show the correct amount of units they will vend (instead of 1/10)
      • +
      • Chem dispensers can now be upgraded. Manipulators increase macro granularity, matter bins increase power efficiency, cells increase power capacity, capacitors increase recharge rate.
      • +
      • Chem dispensers can now be constructed
      • +
      • mini-chemdispensers are removed.
      • +
      + +

      17 March 2018

      +

      AnturK updated:

      +
        +
      • Traitor AI's can now take manual control of turrets.
      • +
      +

      Cruix updated:

      +
        +
      • Sentient diseases will no longer lose points when a host is uninfected.
      • +
      +

      Dax Dupont updated:

      +
        +
      • Edison's ghost no longer interferes with Tesla Corona Coil research device.
      • +
      +

      Denton updated:

      +
        +
      • Syndicate stormtroopers now rapid fire 10g slugs instead of buckshot. This deals the same damage, but makes getting hit less laggy.
      • +
      • Pubbystation: Added protective grilles outside the circuitry lab. The one with the big glass windows, right next to the bomb test site. Oops.
      • +
      • Pubby: Added electrified grilles to the windows of the CMO/RD/CE offices, as well as missing privacy shutters to the CE office.
      • +
      • Pubby: There is now a very rare chance for a Xenomorph egg to appear in the Xeno containment chamber at roundstart.
      • +
      • Pubby: Fixed the name of the HoS space shutter button.
      • +
      • Updated a bunch of roundstart tips and added new ones.
      • +
      +

      Polyphynx updated:

      +
        +
      • Bluespace slime radio potions now work, and are no longer invisible.
      • +
      +

      RandomMarine updated:

      +
        +
      • Did you know that you could buckle guys to grounding rods? Probably not - not that it mattered before, because people buckled to them didn't get shocked when they got zapped. That's fixed now.
      • +
      +

      SpaceManiac updated:

      +
        +
      • Cameranet issues in OmegaStation's departures wing, crematorium, and freezer have been corrected.
      • +
      +

      The Dreamweaver updated:

      +
        +
      • Fixes duplication issue when the Rod of Asclepius is removed while lying down, as well as fixing a runtime when attempting to use multiple rods.
      • +
      +

      XDTM updated:

      +
        +
      • Changed behaviour of mech drills: now they take some time to start drilling, then they keep drilling until manually stopped or the target is destroyed. Mobs are still gibbed if they have more than 200 brute damage while being drilled.
      • +
      • Drilling walls is now consistent; it takes longer, but it will always work instead of only randomly.
      • +
      • Drills no longer stun mobs, but they can dismember limbs.
      • +
      • Mech drills no longer cause explosion-like effects on mobs inside objects.
      • +
      +

      deathride58 updated:

      +
        +
      • You can no longer push someone onto a table that's on the other side of the station.
      • +
      +

      kevinz000 updated:

      +
        +
      • Wet floors now get their duration decreased by 0.1 seconds per degree above 0C the air temperature on it is, and instantly dry above 100C. Below 0C they will freeze into ice and will not automatically dry.
      • +
      • Floors can now have different types of wet at the same time! Wet strength/type is now a bitflag.
      • +
      + +

      16 March 2018

      +

      Dax Dupont updated:

      +
        +
      • 8balls take less time to shake.
      • +
      +

      Keekenox & Floyd / Qustinnus updated:

      +
        +
      • Adds a new Parallax layer that resembles Lavaland (Lava Planet), it spawns on a random location near the station. You need your parallax on high to see it.
      • +
      +

      Shadowlight213 updated:

      +
        +
      • Roundstart or latejoin sec officers will like donuts regardless of race.
      • +
      +

      cacogen updated:

      +
        +
      • Transit tubes take half as long to secure/unsecure
      • +
      + +

      13 March 2018

      +

      Dennok updated:

      +
        +
      • Meters can be attached to the floor by screwdriver
      • +
      +

      Denton updated:

      +
        +
      • The disposal bin in Pubbystation's main tool storage now works.
      • +
      • Deleted a duplicate r-wall between Pubby's main tool storage and the captain's office. Added a Metastation-style crate disposals chute and a light switch.
      • +
      • Various belts can now hold additional job-specific items.
      • +
      • Sepia floor tiles fly really slowly, yet far when thrown. Don't hit yourself!
      • +
      +

      Naksu updated:

      +
        +
      • ERT creation has been refactored to allow for easier customization and deployment via templates and settings

      Polyphynx updated:

      • Medical sprays can now be stored in medical belts and smartfridges.
      -

      Poojawa updated:

      +

      The Dreamweaver updated:

        -
      • Hypospray mk IIs are being deployed to stations, these should provide an easier time for medical staff! They come with both inject and spray modes! Spray mode acts like a patch for applying meds
      • -
      • Hyposprays are fancy, you'll know when they're being used.
      • -
      • Due to fucky-ness, you'll need to unload, then reload the hypos at least once. just how it be.
      • -
      • Tesla Engines are now standard on all but Omega.
      • -
      • fixed a pipe in Meta station that wasn't connected properly.
      • -
      • fixed an exploit related to Tesla wires.
      • -
      • Added release sound effects for choosing. If having a non-belly, belly.
      • -
      • Added a 'silent' modifier to bellies.
      • -
      • Added a vore subsystem to handle belly processing, should be less clunky
      • -
      • rebalanced heal mode and dragon digestion.
      • -
      • added client preference based sound toggles to both eating/release/struggle and digestion noises seperately.
      • -
      • vore prefs save to JSON now instead of .sav. much easier really. refractor: dragon vore is working, though with this game who knows.
      • -
      • your prefs should automatically transfer, but it's likely you'll lose pre-loaded bellies, BACK UP EVERYTHING. (you should be doing this anyway too)
      • -
      • Creating new characters will import the previous' bellies. but once you click 'save' they'll make the new JSON file will all the info. This is per slot, so if you change your character, you'll have to change belly stuff.
      • -
      • Removed old things in .dms we weren't using anymore
      • -
      • subtle messages are now italic'd, so there's better context on whispering
      • -
      • broke apart the cit_gun.dm file, they're decently spaced out now
      • -
      • dogborg_sleeper is now standalone from dogborg_equipment because too lazy to debug why it was breaking backpacks.
      • -
      • does that thing I've been meaning to do with Xenobio. additional tools have been provided.
      • -
      • Added new trek uniforms to loadouts!
      • +
      • Both of Nanotrasen brand totally-for-adult-use footwear, Wheely-heels, the cool and hip new shoes with built in roller-wheels, and Kindle Kicks, the fun and flashy light up sneakers, are now available as rare prizes at your nearest arcade machine!
      • +
      +

      Toriate updated:

      +
        +
      • Added ammo counters for RCDs
      • +
      • Added actual flashing yellow light for RCDs
      • +
      • added new RCD sprites including inhands
      • +
      • deleted old RCD iconstate, but not the inhands
      • +
      +

      checkraisefold updated:

      +
        +
      • Nukeops properly checks the required amount of enemies for the gamemode! This should fix downstream problems.
      • +
      +

      imsxz updated:

      +
        +
      • the viral aggressive metabolism symptom has been removed
      • +
      +

      ninjanomnom updated:

      +
        +
      • You need to actually clear an area for the aux base, remove all walls (except rock walls).
      • +
      + +

      12 March 2018

      +

      Naksu updated:

      +
        +
      • The space cleaner spray bottle is now much more efficient and uses much less space cleaner per spray. The amount of cleaner it can hold has been adjusted to compensate.
      • +
      • internet sounds can be stopped again

      Robustin updated:

        -
      • Harvesters now have 40hp, from 60.
      • -
      • The nuke will now detonate 2 minutes after Nar'sie is summoned, down from 2.5 minutes
      • -
      • The "ARM" ending now requires 75% of the remaining souls aboard to be sacrificed before the nuke goes off, up from 60%.
      • -
      • Drones can no longer be on the sacrifice list
      • -
      • Bloodsense will now show the true name of the target
      • One-man conversions are actually fixed this time - excess chanters var removed for a more readable and maintainable rune code.
      • Runes should no longer become GIANT if spammed (credit to Joan for this fix).
      • Pylons are no longer a source of infinite rods.
      • @@ -199,25 +965,78 @@
      • The deconversion time for holy water is slightly reduced, 10 units and 45 seconds (give or take), is all you should need now. Blood cultists can now have seizures while afflicted with holy water.
      • Shades are now slower and have a modest reduction to their damage and health.
      -

      SailorDave updated:

      + +

      11 March 2018

      +

      Buggy123 updated:

        -
      • The names of Surgery Disks now match their type of surgery.
      • +
      • The Clockwork Justicar has decided to be merciful, and allow nonbelievers to anchor their petty machines in his city. It's only fair for them to have a fighting chance, after all.
      • +
      +

      Irafas updated:

      +
        +
      • Fixed pacifists from being able to fire mech weapons
      • +
      +

      JJRcop updated:

      +
        +
      • Sanity checks for Play Internet Sound
      • +
      +

      MrDoomBringer updated:

      +
        +
      • Orderable supplies in cargo now all have descriptions! The station's overall FLAVORFUL_TEXT stat has gone up by nearly 2% as a result.
      • +
      +

      Onule updated:

      +
        +
      • Mining drones have been given a visual makeover!
      • +
      +

      Poojawa updated:

      +
        +
      • Redded borg transformation animations
      • +
      • adjust mining borg animation to new colors.
      • +
      +

      Xhuis updated:

      +
        +
      • The Nanotrasen Meteorology Division has identified the aurora caelus in your sector. If you are lucky, you may get a chance to witness it with your own eyes.
      • +
      +

      ninjanomnom updated:

      +
        +
      • The debug message for generic shuttle errors is improved a little
      • +
      • Custom shuttles being too close to the map edge was causing problems, you must now be at least 10 tiles away.
      • +
      + +

      10 March 2018

      +

      81Denton updated:

      +
        +
      • Added wall safes to Deltastation's HoP and Captain's offices.
      • +
      +

      Astral updated:

      +
        +
      • Constructed turbines will now properly connect to the powernet
      • +
      +

      Cobby updated:

      +
        +
      • The Eminence scoffs at your "consecrated" tiles once the Justicar is freed from his imprisonment.
      • +
      +

      Denton updated:

      +
        +
      • Engi-Vend machines now have welding goggles available.
      • +
      • Grouped Nano-Med/Engi-Vend items by category.
      • +
      +

      Irafas updated:

      +
        +
      • Turrets can be set to shoot personnel without loyalty implants
      • +
      +

      Naksu updated:

      +
        +
      • The smoke machine can no longer be found in chemistry departments, instead it must be constructed manually. The board was added to techwebs earlier.
      • +
      +

      Singularbyte updated:

      +
        +
      • Dead bodies no longer freak out about phobias

      The Dreamweaver (Sprites: Onule) updated:

      • Nanotrasen's Lavaland research team has discovered that the alien brain has disappeared from necropolis chests.
      • In it's place they have discovered a new artifact, the Rod of Asclepius, a strange rod with a magnitude of healing properties, and an even higher magnitude of responsibility...
      -

      Toriate updated:

      -
        -
      • Added ammo counters for RCDs
      • -
      • Added actual flashing yellow light for RCDs
      • -
      • added new RCD sprites including inhands
      • -
      • deleted old RCD iconstate, but not the inhands
      • -
      • Added Polychromic Shorts and kilts to loadout
      • -
      • changed the way polychromic clothes works
      • -
      • refactored polychromic things such that the vars and (some) procs are globalized
      • -

      XDTM updated:

      • You can now place people on tables on Help Intent. Doing so takes a few seconds and makes the target Rest, instead of stunning them.
      • @@ -226,626 +1045,603 @@
        • Circuit slow-cloning no longer breaks with some circuits.
        • Circuit slow-cloning is now cleaner.
        • -
        • The Nanotrasen Meteorology Division has identified the aurora caelus in your sector. If you are lucky, you may get a chance to witness it with your own eyes.
        -

        ZeroNetAlpha updated:

        +

        kevinz000 updated:

          -
        • Tweaked Aquatic Species to give fillets when run through the chef's gibber.
        • -
        • Makes all darts deletable with nothing more than a little space cleaner.
        • -
        • Makes in-flight foam darts dissolve when hit with space cleaner, be it foam, smoke, or a janitor being a badass with a spraybottle.
        • -
        • Adds 2 new foam dart variants that are compatable with the laser tag systems.
        • -
        • New Recipes available for autoylathe building.
        • -
        -

        checkraisefold updated:

        -
          -
        • Nukeops properly checks the required amount of enemies for the gamemode! This should fix downstream problems.
        • -
        -

        deathride58 updated:

        -
          -
        • You can now sprint by holding shift.
        • -
        • Added combat mode. Press C or use the UI button to toggle it on and off. The code and the sound for toggling combat mode are from Interbay. The sound is mainly a placeholder until a more fitting sound can be found.
        • -
        • You can now use the right mouse button to perform actions while in combat mode. If something doesn't have a unique action for right clicking, it'll default to the normal left click action.
        • -
        • You can now move around and use items while resting. The code is from Interbay
        • -
        • You can now use the resist button to get up from resting. This will take time depending on your health and stamina, even if you try to use the rest button instead.
        • -
        • Reworked stamina, and introduced stamina crit. If you run out of stamina, you'll enter stamina softcrit, during which you'll be unable to attack, get up from resting, or perform various other actions. If you keep losing stamina after entering stamina softcrit, you'll enter full stamina crit, in which you'll be unable to move or interact with the environment until you're above 0% stamina again.
        • -
        • Added a stamina buffer. Performing actions that drain the user's stamina will now drain the stamina buffer before draining actual stamina. The stamina buffer will start to regenerate after going 5 seconds without performing a stamina-draining action. When the stamina buffer regenerates, it will use up stamina, at a rate of 0.5 points of stamina per 1 point of stamina buffer.
        • -
        • Added a rest button to the HUD
        • -
        • 90% of all stuns have been removed in favor of stamina. Stuns will now simply knock the affected person down if they would have been 8 seconds or less, but will function for a "normal" stun with a length that's a tenth of the normal time if their normal time is longer than 8 seconds.
        • -
        • Attacking with weapons will now cost stamina depending on the weapon's size. Some code from Interbay.
        • -
        • Throwing things now costs stamina. Some code from Interbay.
        • -
        • Default movement speed has been reduced by one tick to accommodate for sprinting. This does not require a config update.
        • -
        • The slowdown you get when you're low on health has been reduced by one tick to accommodate for the shift from stun-based combat to stamina-based combat.
        • -
        • Dogborg pouncing has been buffed from a knockdown of 4.5 seconds to a knockdown of 45 seconds. After the previously mentioned changes, this brings dogborg pouncing from 11.5 stamina + knockdown to 115 stamina + 4.5 second stun. **This is a temporary change to make dogborgs immune to the stun nerfs for now until a better solution can be found.**
        • -
        • Crushers now regenerate stamina upon successfully detonating a mark.
        • -
        • Also laid down the groundwork for a psuedo z-height system. You can see a small glimpse of it by hopping on a table!
        • -
        • Added a couple of fancy buttons to the UI! Sprites are from Toriate.
        • -
        • Also added a stamina meter to the UI. Sprites are from Hippiestation
        • -
        • Widescreen pref works again.
        • -
        • The title screen is now properly positioned to display widescreen titlescreens again.
        • -
        • It's now possible to assign an ID to a gear entry to manipulate it via config options. Right now, you can only use this to modify the whitelist.
        • +
        • Oh hey guys, RND shows correct material values now, don't hurt me!

        ninjanomnom updated:

        • Blowing up the wrong part of the shuttle should no longer result in the shuttle being permanently broken.
        • -
        • The debug message for generic shuttle errors is improved a little
        • -
        • Custom shuttles being too close to the map edge was causing problems, you must now be at least 10 tiles away.
        • +
        + +

        09 March 2018

        +

        Dax Dupont updated:

        +
          +
        • Display cases can now have a list where to randomly spawn items from.
        • +
        • Moved plaque code to main type.
        • +
        • Statues now use default unwrench and the tool interaction is now completely non existent when no deconstruct flag is available.
        • +
        +

        Mark9013100 updated:

        +
          +
        • Pill bottles can now be produced in the autolathe.
        • +
        +

        Naksu updated:

        +
          +
        • The white ship and miscellaneous caravan ships lose their advanced place-anywhere shuttle movement during war ops.
        • +
        • The smoke machine can now be deconstructed using a screwdriver and a crowbar
        • +
        • The smoke machine no longer calls update_icon every process()
        • +
        +

        Robustin updated:

        +
          +
        • Harvesters now have 40hp, from 60.
        • +
        • The nuke will now detonate 2 minutes after Nar'sie is summoned, down from 2.5 minutes
        • +
        • The "ARM" ending now requires 75% of the remaining souls aboard to be sacrificed before the nuke goes off, up from 60%.
        • +
        • Drones can no longer be on the sacrifice list
        • +
        • Bloodsense will now show the true name of the target
        • +
        + +

        08 March 2018

        +

        ACCount updated:

        +
          +
        • Station airlocks now support NTNet remote control. Door remotes now use NTNet.
        • +
        • Don't worry, any non-public airlock is fully protected from unauthorized control attempts by NTNet PassKey system!
        • +
        • New integrated circuit component: card reader. Use it to read PassKeys from ID cards.
        • +
        • Fixes a delay issue when airlocks are being opened/closed by signalers.
        • +
        +

        Astral updated:

        +
          +
        • Lighting fixtures should no longer be visible in camera-less areas by cameras.
        • +
        • Ghosts can now examine sentient diseases to see info
        • +
        +

        CameronWoof & MrDoomBringer updated:

        +
          +
        • Adds medical sprays, a new application method for touch chems
        • +
        • Pre-loaded medical sprays can be obtained from NanoMeds
        • +
        • Empty medical sprays can be found in boxes in chemistry and from cargo's medical crate
        • +
        • Sterilizer spray has been migrated to be a medspray instead of being a spray bottle
        • +
        +

        Cebutris updated:

        +
          +
        • lithenessk -> litheness
        • +
        +

        Cruix updated:

        +
          +
        • Sentient diseases now get two minutes to select an initial host before being assigned a random one.
        • +
        +

        Dax Dupont updated:

        +
          +
        • Beacons can now be toggled on and off.
        • +
        • Mappers can now have beacons that default to off. Useful for ruins!
        • +
        • Renaming replaces the snowflake locator frequency/code
        • +
        • Beacons are no longer radios. Why were they radios in the first place? I don't know.
        • +
        • You can now lay meters again with the RPD.
        • +
        +

        Denton updated:

        +
          +
        • Pubbystation's RnD department has been outfitted with a brand new circuitry lab! It is found east of the Toxins launch room.
        • +
        +

        Floyd / Qustinnus (Sprites by Ausops, Some moodlets by Ike709) updated:

        +
          +
        • Adds mood, which can be found by clicking on the face icon on your screen.
        • +
        • Adds various moodlets which affect your mood. Try eating your favourite food, playing an arcade game, reading a book, or petting a doggo to increase your moo. Also be sure to take care of your hunger on a regular basis, like always.
        • +
        • Adds config option to disable/enable mood.
        • +
        • Indoor area's now have a beauty var defined by the amount of cleanables in them, (We can later expand this to something like rimworld, where structures could make rooms more beautiful). These also affect mood. (Janitor now has gameplay purpose besides slipping and removing useless decals) remove: Removes hunger slowdown, replacing it with slowdown by being depressed
        • +
        • Icons for mood states and depression states
        • +
        +

        MMMiracles updated:

        +
          +
        • Thirteen Loko now has an overdose threshold of 60u, see your local CMO for potential side-effects.
        • +
        +

        MrDoomBringer updated:

        +
          +
        • Emagging the emergency shuttle now fries the on-board acceleration governor. Better buckle up!
        • +
        +

        Naksu updated:

        +
          +
        • The nuclear authentication disk no longer treats the transit space as a whole as being "in bounds", but instead checks whether it is in an approved shuttle type (syndicate shuttles, escape shuttles, pubbiestation's monastery shuttle, escape pods are allowed)
        • +
        • Blueprints can no longer be used to create areas inside shuttles. This fixes various exploits involving shuttles and areas.
        • +
        • Moving across a space z-level border can no longer place you inside a shuttle or a dense turf such as an asteroid.
        • +
        +

        SpaceManiac updated:

        +
          +
        • The Shift Duration in the round-end report is no longer blank in rounds lasting between one and two hours.
        • +
        +

        kevinz000 updated:

        +
          +
        • smoke machines can now be printed after researching adv biotech
        • +
        + +

        06 March 2018

        +

        MrDoomBringer updated:

        +
          +
        • Advances in Rapid Delivery Technology have yielded a reduced premium on express cargo orders! Orders from the express console now have a cost multiplier of 1, down from 2.
        • +
        +

        MrStonedOne updated:

        +
          +
        • gas overlays once again no longer steal clicks
        • +
        • 511 clients will be unable to see gases once again. the 512 client crashes are fixed so this shouldn't be that big of a deal.
        • +
        +

        Naksu updated:

        +
          +
        • Admins can now easily spawn mobs that look like objects. Googly eyes optional!
        • +
        +

        XDTM updated:

        +
          +
        • Revenants now have randomly generated names.
        • +
        +

        Xhuis updated:

        +
          +
        • Traits are now assigned in a way that should cause fewer edge cases and strangeness.
        • +
        • Night Vision should now work.
        • +
        • Traits no longer tick while dead.
        • +
        • RDS now triggers twice as often.
        • +
        • You can now modify your trait setup mid-round. Your character is locked to the traits you had selected when you spawned in, though.

        selea updated:

        • After several months of natural selection, hostile mobs started to attack assemblies with combat circuits.
        -

        16 February 2018

        -

        Cebutris updated:

        +

        05 March 2018

        +

        81Denton updated:

          -
        • Added in prayer beads, code and sprites shamelessly stolen from Paradise. Chaplains can pray for people, to heal their wounds without the risk of braindamage, and cleanse their mind of unholy thoughts
        • -
        • Security vendors now have a stunsword modification kit available for purchase with a coin. There might be another somewhere in there, but that would require tampering with it, and you're a good little redshirt, aren't you?
        • +
        • Deltastation: Removed a windoor to make the northern chemistry fridge more accessible.
        -

        CitadelStationBot updated:

        +

        Cruix updated:

          -
        • As it would happen, the chef does not actually have Italian genes, but rather was being influenced by a strange moustache-a.
        • -
        • Goliath hide plates now properly apply to explorer suits and APLUs again.
        • -
        • Printed power cells must now be charged before use
        • -
        • Changed the chemical recipe for Lexorin from plasma, hydrogen, and nitrogen to plasma, hydrogen, and oxygen.
        • -
        • These were necessary due to recipe conflicts
        • -
        • You can now smelt titanium glass and plastitanium glass
        • -
        • Use titanium glass and plastitanium glass to build shuttle windows and plastitanium windows
        • -
        • Prevents megafauna (and other large things like spiders and mulebots) from going into machines
        • -
        • The notify irc/discord bot chat command no longer requires admin privileges.
        • -
        • After consulting with their in-house physicists, Nanotrasen has updated their worst-case disaster training simulation "Space Station 13". The combustion of hydrogen isotopes now produces water vapor instead of carbon dioxide.
        • -
        • Heart-shaped boxes of chocolates are now included in Valentine's Day event gifts
        • -
        • You no longer need an aggressive grab to table someone.
        • -
        • Minimap gone from crew monitoring
        • -
        • made powercell rigging no longer set rigged to the plasma reagent datum what the hell and makes it use TRUE/FALSE defines
        • +
        • Added a new mini antagonist, the sentient disease.
        • +
        +

        DaedalusGame updated:

        +
          +
        • Fixes the auxbase camera console not placing airlocks on fans but doing so vice-versa

        Dax Dupont updated:

          -
        • Telecom equipment now can only be printed by engineers and scientists as intended.
        • -
        • WT-550 AP can only be printed by sec now.
        • -
        • Removed engineering requirement for arcade machines to bring it in line with others.
        • -
        • Defibs can now be researched and printed.
        • -
        • Hatches are now small instead of tiny.
        • -
        • Cloner UI now properly updates cloning pod status when autocloning starts cloning someone.
        • -
        • Grabbers/throwers no longer can contain/throw things equal to the assembly size.
        • -
        • Fixes duplicate air alarm on meta.
        • -
        • AI no longers block ark after mass_recall
        • -
        • Placed the dispersal logic AFTER the mass_recall on ark activation instead of infront(did nothing before basically).
        • -
        • Cell chargers can now be built and upgraded with capacitors!
        • -
        • Fixed empty subtype batteries not updating icons
        • -
        • Added hooray emoji!
        • -
        • Integrated circuits no longer start upgraded.
        • -
        • The IC printers that are available on round start in the IC labs are no longer upgraded by default. You will need to research these as was intended
        • +
        • Others can now take off your tinfoil hat as seemingly originally intended.
        • +
        • Due to the nature of tinfoil hats, the delay of putting a tinfoil hat on unwilling participants has been increased.

        Denton updated:

          -
        • Removes grind_results from empty soda cans since they can't be ground.
        • -
        • For consistency's sake, aluminium is now universally spelled with two 'i'.
        • -
        • Changed can_synth values from 0/1 to FALSE/TRUE
        • -
        • Fixes lye/plastic/charcoal conflicts when mixing.
        • -
        • Lye is now made by combining ash with water and carbon. Plastic sheets by heating ash, sulphuric acid and oil.
        • -
        • Emagging meteor shield satellites now shows you a message.
        • -
        • Fixed a typo when emagging RnD servers.
        • +
        • Pubbystation: Added a missing APC to the cargo sorting room, a light fixture to the RnD security checkpoint and removed an overlooked firelock east of the bridge.
        • +
        • Pubbystation: Added a spare RPD to the Atmospherics department. Replaced Engineering's outdated meson goggles with modern engineering scanners. Added a GPS device to the secure storage crate.
        • +
        • Moved Pubbystation's drone shell dispenser from the experimentation lab to Robotics maint.
        -

        Frozenguy5 updated:

        +

        Jittai / ChuckTheSheep updated:

          -
        • You can craft rat kebabs now.
        • -
        -

        Iamgoofball updated:

        -
          -
        • The Cook now ONLY works under siege.
        • -
        -

        Improvedname, Toriate updated:

        -
          -
        • Adds carrot satchel
        • -
        -

        Kor updated:

        -
          -
        • Mining sentience upgrades now grant minebots an ID and radio.
        • -
        • Bluespace slime extracts now have a new chemical reaction with water, which create slime radio potions. When applied to a simple animal, that mob gains an internal radio.
        • -
        -

        MMMiracles updated:

        -
          -
        • You can now produce a cryostatis variant of the shotgun dart after researching Medical Weaponry. Holds 10u and doesn't have reagents react inside it.
        • -
        -

        Mokiros updated:

        -
          -
        • All-In-One Grinder can now be built with researchable curcuit and micro-manipulator.
        • -
        -

        More Robust Than You updated:

        -
          -
        • You can now squish urinal cakes
        • -
        • Your hand no longer magically squishes urinal cakes when trying to pick them up
        • -
        • SCP-294 no longer looks fucked up
        • -
        • Fixes SCP-294 losing its top sometimes
        • -
        -

        More Robust Than You, Basilman, and MMMiracles updated:

        -
          -
        • Deep in space, a valuable artifact awaits
        • +
        • Adjusted the space parallax's contrast to be less vibrant.

        Naksu updated:

          -
        • Cyborg engineering module geiger counters now work properly again
        • -
        • Steam engines have been removed from maintenance, engineering, atmos and teleportation areas.
        • -
        • The chef is now trained for working under siege
        • -
        • The clogged vents event has been removed for pressing ceremonial reasons
        • -
        • Chasms no longer eat shuttle docking ports, rendering them unusable and unresponsive
        • -
        • replaced some item-specific movement hooks with components
        • +
        • Advanced roasting sticks, a product of applied bluespace research can now be built from service protolathes. They can be used to cook sausages on campfires, supermatter engines, tesla balls, singularities and a couple of other things.
        • +
        • Admins can now grant spells via implants, using the spell implant. Some VV is required.
        -

        Ordo updated:

        +

        Potato Masher updated:

          -
        • Replaced nitrogen with ethanol in morphine recipe. The recipe now has a lower yield.
        • +
        • The Wizard Federation has finally modified their production method for pre-packaged magic tarot cards for better compatibility with time-stopping spells. Guardians Spirits are no longer frozen by their user's time-stops.
        -

        Poojawa updated:

        +

        SpaceManiac updated:

          -
        • Cryopods are now available for safe round exiting, no longer will you need to ahelp with 'oh fuck wrong job'. Being kicked back to lobby for a restart is still admin. You will be warned to ahelp if you're an antag role however.
        • -
        -

        Raeschen updated:

        -
          -
        • Changed/removed some miscreant objectives
        • -
        -

        Robustin updated:

        -
          -
        • Fixed the limb grower having a max volume of 0.
        • -
        • The rift created by teleporting in from space will now include a description indicating the direction of the "origin" teleport rune - giving the examiner a fair idea of where the "space base" is located.
        • -
        • You can no longer manifest spirits or summon cultists while in space or Lavaland. You may still ascend as a spirit (formerly spirit sight, astral jaunt, etc.) in either of these locations.
        • -
        • Juggernauts have lost 20% reflect rate on energy projectiles (now around 50% for standard lasers).
        • -
        • Wraiths and Juggernauts have -5 melee damage (20 and 25 now, respectively).
        • -
        • Construct shells now cost 50 metal through the "twisted construction" spell. Twisted construction is now a "single use" spell.
        • -
        • The Concealment spell will now work on cult airlocks (including converted airlocks). The "concealed" airlock will appear as a generic airlock but will deny access to any non-cultist.
        • -
        • The draw blood effect on blood splatters will now draw more blood from stains with low blood levels.
        • -
        • Unanchored (via ritual dagger) cult structures are no longer "dense", meaning you can move them through teleport runes more efficiently.
        • -
        • The button to nominate yourself for cult master now has a confirmation prompt seeking assurance that the user is prepared to be the cult's master.
        • -
        • The reveal aspect of the concealment spell is slightly smaller, albeit still slightly larger (6 range) than the concealment aspect (5 range).
        • -
        • Juggernauts "gauntlet echo" now has a more cult-themed appearance.
        • -
        • Using a shuttle curse to push the shuttle timer above its default can no longer be "reset" with a recall. This also adds a block_recall(time_in_deciseconds) helper-proc to the shuttle subsystem.
        • -
        • Using runed metal on a regular girder is no longer an option, preventing runtimes and deletions associated with the (unintended) combination.
        • -
        -

        ShizCalev updated:

        -
          -
        • Corrected a number of missing checks when using alt-click actions. Please report any strange behavior to a coder.
        • -
        • Corrected typo in NTNet Scanner circuits' name, make sure to update your blueprints.
        • -
        -

        Toriate updated:

        -
          -
        • Added magnetic weapons to techwebs nodes
        • -
        • Magrifle magazine now has 24-round capacity, magpistol has 14-round capacity
        • -
        • rebalanced magrifle projectiles to deal more damage overall on a full burst, but less individually
        • -
        • fixed broken sprites for magrifles
        • -
        -

        UI Changes updated:

        -
          -
        • The Scan with Debugger/Device button now reads Copy Ref and no longer sends you to the circuit's page when clicked
        • -
        • The assembly's menu is now slightly wider
        • -
        • The advanced in "integrated advanced medical analyser" is now abbreviated to adv.
        • -
        -

        Xhuis updated:

        -
          -
        • The preference to lock action buttons in place is now correctly saved across rounds.
        • -
        • Removing and printing integrated circuits will now attempt to place them into a free hand.
        • -
        • You can now hit an integrated circuit printer with an unsecured electronic assembly to recycle all of the parts in the assembly en masse.
        • -
        • You can now recycle empty electronic assemblies in an integrated circuit printer!
        • -
        • Integrated circuit printers now have sounds for printing circuits and assemblies.
        • -
        • The RPG loot event will no longer break circuit analyzers.
        • -
        -

        coiax updated:

        -
          -
        • Transference potions now just rename the mob that you are transferring into with your name, rather than your name plus the old name of the mob.
        • -
        • Centcom now reports that thanks to extensive bioengineering, apples and oranges now taste of apples and oranges, rather than nothing as they did before.
        • -
        -

        deathride58 updated:

        -
          -
        • Input boxes for emotes are now larger. Check it out with the *subtle and *custom commands. This also applies to the M hotkey.
        • -
        • Synced with upstream. Again. For the hundredth time probably. Check the github for more details.
        • +
        • Night shift no longer ignores rooms whose APCs are in port or starboard central maintenance.
        • +
        • Inserting brains into MMIs and then into mechs now works again.
        -

        08 February 2018

        -

        Cebutris updated:

        +

        04 March 2018

        +

        DaedalusGame updated:

          -
        • Knight badges, sprites courtesy of Toriate! They're functionally identical to IDs but look sexier and can be recolored!
        • -
        • Lavaknights now spawn with Knight Badges!
        • -
        • Stunswords! Stunbatons that look like swords. That's all.
        • -
        -

        CitadelStationBot updated:

        -
          -
        • Players can now have a verb in the ooc tab to see their own tracked playtime
        • -
        • fixed admin bypass not using the right proc
        • -
        • Lavaland ghost roles should now show up in the playtime report
        • -
        • fixed the syringe getting a transfer amount of 0 if the contents of it are 0, intended feature was probably to check the target and not the syringe itself for clamp.
        • -
        • Reduce clock work mob death sound file's volume to 80%
        • -
        • Observers can now view the atmospheric contents of the tile they're floating above.
        • -
        • Jaunting wraiths should now always be facing the correct direction
        • -
        • All Cargo Techs now come equipped with a standard supply Export Scanner! Get to selling!
        • -
        • Emagged airlocks can now be deconstructed simply by crowbarring when the panel is open
        • -
        • foam and smoke now get 4x the reagents as they should according to the comments
        • -
        • fixes pyrosium and cryostylane not heating or cooling humans at all
        • -
        • fixes cryostylane cooling beakers to negative kelvin, it's now limited to what the description says
        • -
        • fixes cryostylane cooling people to negative body temperature
        • -
        • removed redundant check in trans_to
        • -
        • fixes a runtime when total_volume is 0 in copy_to
        • -
        • Gas reagents (o2, plasma, ...) now dump out gas based on container temperature instead of room temperature
        • -
        • Bananium shows up on mining scanners again
        • -
        • min player req for rev is 30 now
        • -
        • Weather and certain events have been updated to use Z traits.
        • -
        • The Staff of Storms now correctly starts and ends storms if used from inside lockers.
        • -
        • Weather telegraph messages are now shown to those inside lockers and mechs.
        • -
        • Radio jammers no longer affect other z-levels.
        • -
        • engine goggles set to t-ray mode will no longer show pipes with the wrong rotation.
        • -
        • cables now show up on t-ray scans.
        • -
        • pulling claw can now only passively grab
        • -
        • Infrared beams now update instantly.
        • -
        • Fixed occasional runtimes when ion storms or overflow would replace an existing law.
        • -
        • Emergency lights will give off light again
        • -
        • Fixed eye damage not being applied if it was exactly 3.
        • -
        • You can no longer weld airlock assemblies for infinite materials
        • -
        • Clockwork armaments are no longer named "arnaments".
        • -
        • Fixed being able to rotate things in only one direction.
        • -
        • The Syndicate Chameleon Kit is now available during rounds of lower population. Because of course you can have an e-sword and revolver without restriction but disguising and RP is verboten because we deathmatch station now.
        • -
        • Ore boxes have a new sprite
        • -
        • You can alt-click microwaves to turn them on
        • -
        • Academy is now part of the random station names.
        • -
        • made fire colored according to blackbody radiation and rule of cool.
        • -
        • some kind of lightning texture
        • -
        • Coffins have a new sprite
        • -
        • Solar panels have new sprites
        • -
        • Attention, space explorers! Nothing is out of your reach with the ACME Extendo-Hand (TM)! With it, you can get a WHOLE EXTRA TILE OF REACH! Hug or punch your friends from a whole 3 feet away! Win one from an arcade machine or make one in the Misc. tab of your crafting menu today!
        • -
        • Blood contracts now only show living players and real names
        • -
        • Turrets now check for borgs. Syndicate turrets are nice to emagged borgs too!
        • -
        • nerfs power cells from a insane max possibility
        • -
        • Space ghost syndicate comms guy removed.
        • -
        • Removed the now-unused revenant spawn landmark.
        • -
        • Some airlock animations should no longer be glitchy and restart in the middle
        • -
        • The ability to throw drinks without spilling them has been moved from something bartender's just know how to do to a book that they spawn with, the ability has also been made into a toggle.
        • -
        • Any number of people can read the book to learn the ability, and it can also be ordered in the bartending crate in cargo. Bartenders are encouraged to keep their trade secrets close to their stylish black vests.
        • -
        • Destroying windows will now spawn tiny shards
        • -
        • The Rapid Piping Device can now dispense transit tubes.
        • -
        • Morgue trays now detect if a body inside them possesses a consciousness, and alerts people nearby
        • -
        • The pirate ship can now fly again.
        • -
        • Research investigate logs now actually include the name of the researcher.
        • -
        • Defibrillator mounts no longer spam the error log while empty.
        • -
        • Fixes Noblium Formation being multiplicative, so having 500 moles of tritium and 500 moles of nitrogen no longer produces 2500 moles of noblium (it should correctly produce 10 moles)
        • -
        • Fixes most reactions deleting more gas than exists and making gas out of nowhere
        • -
        • Fixes Stim Formation invoking a byond bug and not using its intended polynomial formula
        • -
        • Fixes Cryo Cells not having garbage_collect and clamping
        • -
        • Fixes Rad Collectors not having clamping
        • -
        • Fixes Division by Zero when Fusion has no impurities.
        • -
        • Removes a redundant line in lungs
        • -
        • Fixes rad_act signal not firing from turfs, living mobs, rad collectors and geiger counters
        • -
        • Pressure damage now takes effect in certain situations where it should have but did not.
        • -
        • Explosive holoparasites must now be adjacent to turn objects into bombs, instead of being able to do so from any range.
        • -
        • NT Scientists have started looking into data from small-scale detonations and found that there's still potential data to be gathered from explosive yields lower than 4.184 petajoules
        • -
        -

        CosmicScientist updated:

        -
          -
        • tomatoes and similar ovary laden edibles are fruit, not veg, beware plasmamen and mothmen
        • -
        -

        Dax Dupont updated:

        -
          -
        • Autolathe now consumes reasonable amounts of power when inserting materials
        • -
        • Fixed conveyor belt power usage.
        • -
        • Fans of clown photography have successfully lobbied Nanotrasen to include camera and camera accessories designs in the autolathe.
        • -
        • Brings material values for the camera in line with other devices.
        • -
        • The tapes printed by autolathes now come in random colors.
        • -
        • Beakers and beaker-like objects now get put in your hand on ejection from chemistry devices.
        • -
        • Fixed missing wheat fridge on omega and removes a duplicate pipe.
        • -
        • You now need to examine engravings to pop open the menu.
        • -
        • Autolathe now repeats it's animation while printing.
        • -
        • Eminence won't get spammed by tile crossing now.
        • -
        • After 3 years of intensive research by Nanotrasen's elite team of chefs, rice dishes such as rice pudding are no longer considered salads.
        • -
        • Cyborgs can now be upgraded to be h-u-g-e! Only a cosmetic effect!
        • -
        • Hijack objectives will only be given out if there are 30 or more players.
        • -
        • Moved the lathe from box's cargo room to box's cargo office which miners now can access.
        • -
        • Harmonized medbay storage access requirements so all maps allow all medbay personnel into medbay storage like on Meta and Delta.
        • -
        • Moved service lathes into a dedicated service hall/storage area if they weren't accessible by janitor or bartender.
        • -
        • Added logout button to the record screen in the security records console.
        • -
        • Allows you to print photos that are in the security records.
        • -
        • Regular cyborgs now start with a normal high capacity cell instead of a snowflake cell. Resulting in less confusing and 2.5MJ more electric charge.
        • -
        • Fixed name of the upgraded power cell
        • -
        • Removed duplicate cell giving code in transformation proc.
        • -
        • Fixed the crematorium on meta and box.
        • -
        • Posibrains have gotten a small firmware update, they will now play a sound on successful activation.
        • -
        • You can now insert holodisks into cameras and take a static holographic picture of someone!
        • -
        • Hologram recordings can now be offset slightly.
        • -
        • Killing a revenant will now result in an unique shuttle to be able to be bought. You probably won't like it though.
        • -
        • Fake emag now available.
        • -
        • Fixed borgs applying cuffs on people without the right number of arms.
        • -
        • Handcuff code has been rejiggled and snowflake code has been removed.
        • -
        • Removed unused cable cuffs module stuff for borgs.
        • -
        • Supermatter can again blow up again on space tiles.
        • -
        -

        Dax Dupont & Coiax updated:

        -
          -
        • Praise the lord for he has granted thy chaplains, wizards, revenants and eminences with holy vision. They can now see blessed tiles.
        • -
        -

        DeityLink updated:

        -
          -
        • You can now see the rays from a holopad displaying a hologram!
        • -
        -

        Denton updated:

        -
          -
        • Fixed Bubblegum's description.
        • -
        • Rearranged the mining vendor items by price and item group.
        • -
        • In order to promote back-breaking physical labor, Nanotrasen has additionally made conscription kits available at mining equipment vendors.
        • -
        • Fungal tuberculosis spores can no longer be synthesized by machinery.
        • -
        -

        Denton ShizCalev Kor Kevinz000 (original idea) updated:

        -
          -
        • Due to budget cuts, the shoes shipped with chameleon kits no longer prevent slipping. The premium version is unchanged and still sold separately.
        • -
        • To compensate, the chameleon kit cost was lowered by 2 TC and the minimum crew limit removed.
        • -
        -

        Epoc updated:

        -
          -
        • Removed Sulfuric Acid requirements from computer parts
        • -
        • Slows Simple Clown mobs
        • -
        • Soap now has inhand sprites
        • -
        • Belt items now have inhand sprites
        • -
        -

        Evsey9 updated:

        -
          -
        • Integrated Circuit Drones are now bulky to improve safety ratings, and therefore, cannot be stored in normal backpacks or pockets, but now can accept modules that bulky circuit machinery can.
        • -
        • Grabbers can now grab items up to the size of the circuit assembly they are in.
        • -
        • Grabbers cannot store circuit machinery the same or larger size than the circuit assembly they are in.
        • -
        • Throwers now can throw items up to the size of circuit assembly they are in.
        • -
        -

        GuppyLaxx updated:

        -
          -
        • Fixes the Ketrazine recipe
        • +
        • changed the formula of liver damage so weak alcohol does barely anything while strong alcohol is still threatening

        Iamgoofball updated:

          -
        • Power cells explosions are now logarithmic
        • -
        • Minor code cleanup on the wirer
        • +
        • RIP Billy, you'll be the boss of heaven's gym now :(
        • +
        +

        Jalleo updated:

        +
          +
        • Added a cancel button to nuke timer (and others). You no longer have to make it 0 just a click to cancel.
        • +
        • You can now easily set how many "INSERT JOB ROLE HERE" you want in the manage job selection in the admin panel. If you put zero in it will set it to the current amount of filled positions.
        • +
        • moved a small amount of wording around in a admin browser to make it cleaner looking. Along with a few updated checks for certain things.
        • +
        +

        Naksu updated:

        +
          +
        • First pass on cleaning up junk defines and unused code
        • +
        +

        RandomMarine updated:

        +
          +
        • The ore redemption machine no longer has 'release all' buttons. Remember to take just what you need and leave some for the other departments.
        • +
        + +

        03 March 2018

        +

        Cebutris updated:

        +
          +
        • Washing a glove with a white crayon will make it look like a white glove, instead of a latex glove. Instead, mime crayons make gloves look latex
        • +
        +

        Denton updated:

        +
          +
        • Burglar alarms in the Pubbystation library and RD office can now be disabled properly.
        • +
        • Fixed Pubbystation's RD office shutters.
        • +
        • Added missing engineering and kitchen lockdown shutters on Pubbystation.
        • +
        • Pubbystation: Added privacy shutters to the CMO and RD offices. Added space shutters to the HoS office. Replaced the RD office's directional windows with fulltile ones.
        • +
        • Added a second blast door to the Pubbystation gulag shuttle lockdown.
        • +
        • Due to pressure from the space OSHA, Pubbystation has installed missing fire alarms and firelocks.
        • +
        • Split the Pubbystation library into two areas with their own APCs.
        • +
        +

        Naksu updated:

        +
          +
        • Admins can now easily spawn cargo crates
        • +
        • Admins can now toggle antag, med, sci, engineering huds and maximum ghost brightness with just one button.
        • +
        +

        Robustin updated:

        +
          +
        • Meth now deals 1-4 brain damage while active, up from 0.25
        • +
        +

        Selea updated:

        +
          +
        • reduce CD of all non manipulative non list output circuits to 0.1
        • +
        • add to locomotion circuit output ref with object, which assembly was bumped to.
        • +
        • upgrade disks have multiuse. balance:iducer efficiency= efficiency/number of inducers on 1 tile.
        • +
        • unnerf fuel cell.about 3-5 times.Make blood more powerful.
        • +
        +

        ShizCalev updated:

        +
          +
        • You can now hotswap tanks in a canister or gas pump by clicking it with a new tank!
        • +
        • You can now also close a canister's valve and remove the tank inside it by alt-clicking it.
        • +
        + +

        02 March 2018

        +

        AlexTheSysop updated:

        +
          +
        • C4 logging now shows correct location
        • +
        +

        Astral updated:

        +
          +
        • Space is now prettier
        • +
        +

        DaedalusGame updated:

        +
          +
        • Machines can now be constructed anchored or unanchored, if the resultant machine could be unanchored.
        • +
        +

        Dax Dupont updated:

        +
          +
        • Medals now show the commendation text in the description.
        • +
        +

        Denton updated:

        +
          +
        • Cargo packs have been grouped and sorted alphabetically. Station goal crates are now in the Engineering section.
        • +
        • The cargo security section has been split into security/armory.
        • +
        • Grouped all gas canisters and fuel/water tanks together in one section with raw materials.
        • +
        • Fixed a few cargo pack descriptions.
        • +
        • Cyclelinked three airlock pairs on Boxstation (port bow solars and the area that connects RnD with medical).

        Improvedname updated:

          -
        • You can now get shockcollars from the kinkmate for the price of an coin
        • -
        • adds security skirts to the loadout
        • -
        • more loadout stuff
        • -
        • Adds kinkmate board
        • -
        • you can now construct kinkmates with the construction kits from cargo
        • -
        • Organizes the loadout
        • -
        • Adds disco ball to cargo
        • +
        • chem implants can no longer be self triggered
        -

        Jittai updated:

        +

        Jittai / ChuckTheSheep updated:

          -
        • All color inputs now use the current color, of the thing being colored, as default choice.
        • -
        • New Morgue Tray sprites.
        • -
        • New Crematorium sprites.
        • -
        • New Horizontal Coffin Sprites
        • -
        • Some of the Morgue Trays and Crematoriums on Box, Delta, and Meta have been re-positioned to make use of their new directional states.
        • -
        • Cloning doesn't runtime (and indefinitely get stuck) on cloning non-humans.
        • +
        • New chemdispenser (and minidispenser) sprites.
        • +
        • New soda/beer dispenser sprites, with directional states.
        -

        Kor updated:

        +

        Mey-Ha-Zah updated:

          -
        • Fixed mecha grav catapults not being included in techwebs.
        • +
        • Heck suit sprites are prettier, with more contrast.
        -

        MMMiracles updated:

        +

        MoreRobustThanYou updated:

          -
        • Syndicate and pirate mobs now give off light when appropriate
        • -
        • A once-thought abandoned arctic post has recently had its gateway coordinates re-enabled for access via the Gateway link. Contact your local Exploration Division for more details.
        • -
        • A brand new space-farm, where your family sends all your old/sick catpeople to live out the rest of their days being free to roam the acres and chase the field grayshirts.
        • -
        -

        Mark9013100 updated:

        -
          -
        • Cloning data disks can now be constructed after researching the Genetic Engineering technode.
        • -
        -

        More Robust Than You updated:

        -
          -
        • Fixed monkey teams
        • -
        • The Lepidopterian language now has less spaces in it
        • -
        • You can now defib monkeys and aliums
        • -
        • Monkeys can also use defibs now, too!
        • -
        • Holorays are now properly deleted if you switch holopads automatically
        • -
        -

        MrDoomBringer updated:

        -
          -
        • The RnD department can now develop firmware upgrades to the Express Supply Console, unlocking advanced cargo drop pods!
        • -
        • NanoTrasen's Creative Psychology Initiative has brought new training to all crewmembers to foster rapid, innovative problem-solving! You can now kill yourself in so many more ways!
        • -
        • Conveyor Belts now look better when they are crowbar'd off the ground.
        • -
        • Due to complicated quantum-bluespace-entanglement shenanigans, the Bluespace Drop Pod upgrade for the express supply console is now slightly more difficult to research.
        • +
        • SCP-294 should no longer have overlay problems

        Naksu updated:

          -
        • Pneumatic cannons no longer misbehave when their contents such as primed grenades get deleted (explode)
        • -
        • Attempting to join into a command role as a nonhuman species no longer lets you keep your nonhuman species languages if you are transformed into a human because of a config option
        • -
        • Warp whistle can no longer pick up its user from inside various animation/in-between states and effects such as transformations, jellypeople split, talisman of immortality effect period or rod form.
        • -
        • Removed actual reagent quadrupling added in #34485
        • -
        • Removed the foam effect combining feature, hopefully to be replaced with something less completely and utterly broken
        • -
        • Subjects without hearts now display as unsuitable for abductor experiments when probed with the advanced baton.
        • -
        -

        Naksu and kevinz000 updated:

        -
          -
        • Ores are no longer completely impervious to explosions, but rather "proper" ores are destroyed by the strongest explosions and sand is blown away everything but the weakest ones. This shouldn't affect ore spawns from explosions
        • -
        • Lavaland bomb cap reduced to double the station bombcap.
        • -
        • Ores are now stackable. Ore stacks now have the appearance of loose ores and are not called "sheets" by machines that consume them.
        • -
        • Material container component now uses the singular names of stack objects.
        • -
        • /obj/item/ore/Crossed() is now removed in favor of the ore satchel utilizing a redirect component
        • -
        -

        ORM Movement updated:

        -
          -
        • Box Station ORM Moved to 2 tiles south of Cargo Office Door.
        • -
        • Delta Station ORM moved to the southernmost window of Cargo.
        • -
        • Box, Delta, Meta stations now have Windoors with Mineral Storage access blocking them.
        • -
        -

        Ordo updated:

        -
          -
        • Adds Ketrazine, a powerful but dangerous combat stim which the crew can synthesize
        • +
        • SNPCs have been removed.

        Poojawa updated:

          -
        • Supply Console is locked to Cargo Access only.
        • -
        • so many things.
        • -
        • Vore eject gun given to medical lockers, same as defib. Looks like a dragnet. will eject people out of all vore bellies. May need to fire more than once.
        • -
        • Dogborg item blacklist is a thing again, scrubpups are able to process items into fuel.
        • -
        • Dogborgs are able to consume devourable simple mobs for fuel or for weird ERP.
        • -
        • Stargazer slimes are admin-only, way too much of a bad idea to hand out willy nilly.
        • -
        • Genital layering refractored to use mutable appearance. Also no longer always present on character screen.
        • -
        • probly other things I forgot I tweaked, like cake hat nerfing
        • -
        -

        Robustin updated:

        -
          -
        • Fixed frost oil (cryosting) sending insulated crewmembers below absolute zero temperatures.
        • -
        • Fixed damaging cold temps being a death sentence to simple mobs (they wouldn't heat back up to safe temps at room temperature).
        • -
        • Refactored human temperature code, insulating clothing now helps you stay warm but going unprotected will help you cool off. However, you will now benefit from colder temps when you're overheating even in full EVA/hardsuit gear and you will warm up faster at room temperature in insulated gear as well (i.e. putting on a winter coat will no longer suppress your temperature if your already cold).
        • -
        • Fixed monkeys slowly freezing to death
        • -
        • A new cocktail: The Nar'Sour. Made from blood, demonsblood, and lemon juice, this cocktail is known to induce a slightly different type of slurring when imbibed.
        • -
        • Clockwork marauders now take more time (+3s) and power (7x) to create.
        • -
        • The "recent marauder" time limit is now 60 seconds, up from 20. The limit now has a significantly smaller effect on summon time but will act as a further cap on marauder summoning until it has passed.
        • -
        • The marauder cap will now only account for living cultists.
        • -
        • The Peacekeeper Borg's "Peace Hypospray" now includes the "Pax" reagent, which prevents the subject from carrying out many forms of direct harm.
        • -
        • Command reports should now properly weight the appearance of modes based on their existence in our actual game rotation.
        • -
        • The current mode now has a 35% chance of not appearing in the report.
        • -
        • Vape Pens (e-cigs) will now consume reagents proportional to the vape size and static smoke production.
        • -
        • The "construct shell" option from the cult archives structure will now only yield one shell instead of two.
        • -
        • Sacrificing suicide victims will now only yield an empty shard.
        • -
        • Synths and Androids are no longer available species at the magic mirror.
        • -
        -

        Robustin and More Robust Than You updated:

        -
          -
        • A heart disease event has been added. The cure is heart replacement surgery. Effects of cardiac arrest are halted by the chemical Corazone. Once cardiac arrest begins at Stage 5, the disease can be cured by a defibrillator or from a lucky electric shock.
        • -
        • Using gym equipment will now grant a hidden exercise buff that prevents heart disease for 20 minutes.
        • -
        -

        SPACE CONDUCTOR updated:

        -
          -
        • Shuttles will throw you around if ya don't buckle in
        • -
        -

        ShiggyDiggyDo updated:

        -
          -
        • You can now win stylish steampunk watches at your local arcade machine!
        • -
        • You no longer win double the articles at the arcade
        • -
        • You can now win Toy Daggers at your local arcade!
        • -
        -

        ShizCalev updated:

        -
          -
        • Clockcultists and revolutionaries can no longer be mindswapped.
        • -
        • The Syndicate Comms Officer ghost role has been readded with a minor chance of actually existing.
        • -
        • Fixed some broken cultist & wizard antagonist ghost polls.
        • -
        -

        Slignerd updated:

        -
          -
        • Following an immense number of complaints filed by security and command personnel, the Captain's spare ID will from now on be placed inside his locker. We fail to see how this would help the Captain access the spare in the event he lost his ID, but the complainants have been VERY insistent.
        • -
        -

        Toriate updated:

        -
          -
        • Added Polychromic Athletic Shorts
        • -
        • added greyscaled athletic shorts
        • -
        • optimized polycloth code, modularized it more
        • -
        • all polychromic color inputs now use the previously selected color as the default argument, as per #5090
        • -
        • Added the CMO's Turtleneck, spawns in CMO's locker
        • -
        • added the CMO's Turtleneck sprites, worn and item
        • -
        • fixed the Foam Force Mk.37F pistol ejecting "casings" that are utterly broken
        • -
        • fixed catknights not having cat ears
        • -
        • Readded classic kitty ears as "neko" ears and tails in the character creator
        • -
        -

        WJohnston updated:

        -
          -
        • Wirecutter greyscaling is now less ugly
        • +
        • Cyborg defib units are now actually functional

        XDTM updated:

          -
        • Slimepeople can now properly swap between bodies.
        • -
        • Slimes no longer attack people with their same faction.
        • -
        • Fixed a bug where slimes wouldn't eat neutral mobs.
        • -
        • Slimepeople and Jellypeople can now speak the slime language.
        • -
        • Slimes now only speak slime language, although they still understand common.
        • -
        • Slimepeople are no longer virus immune.
        • -
        • The above change fixes a bug that made black slime cure itself.
        • -
        • Fixes intelligence potions removing previously known mob languages
        • -
        • Slime scanning now has a more readable output, especially when scanning multiple slimes at once
        • -
        • Eggs from the abductor egg gland now have a random reagent instead of acid
        • +
        • Bath Salts now induce psychotic rage, but cause much more brain damage.

        Xhuis updated:

          -
        • Servants can now cancel warps by clicking the button again, instead of having to manually interrupt it by doing something like picking up an item from their pocket.
        • -
        • Emergency lights now function correctly.
        • -
        • Fleshmend can no longer be stacked several times at once.
        • -
        • Fleshmend no longer heals changelings who are on fire, and heals burn damage half as quickly as brute and oxygen damage.
        • -
        • Fleshmend has been refactored into a status effect.
        • -
        • Servant golems no longer appear in the magic mirror race list.
        • -
        • Races that have eyes that look different from regular humans' no longer have white eyespots where human eyes appear.
        • -
        • Brass skewers now must be at least one tile apart.
        • -
        • Steam vents can no longer be placed within cardinal directions of other steam vents, and will not hide objects they're placed on top of.
        • -
        • Securing pipe fittings now transfers fingerprints to the new pipe.
        • -
        • Servant cyborgs with the Standard module now correctly have Abscond.
        • -
        • The firelock below the Circuitry Lab airlock on Boxstation will no longer cover it up when the airlock is open.
        • -
        • Integration cog power generation has been increased to 10 W per second (up from 5 W per second.) Power consumed from the APC remains at 5 W per second.
        • -
        • Integration cogs will now continue generating power at half-speed when the APC they are in has no energy.
        • -
        • Brass chairs now stop spinning after eight rotations, so you can't crash the server with them.
        • -
        • Nanotrasen's anomalous materials division has recently experienced a containment breach, during which a certain pizza box went missing. Be on the lookout for any slipups in cargo.
        • -
        • Pizza margherita is now named "pizza margherita" (the proper way!) instead of just "margherita."
        • +
        • Traits! You can now select up to three positive, negative, and neutral traits in the character setup. You can choose up to six traits based on combinations varying by the amount of points you earn with negative traits and spend with positive ones.
        • +
        • You can now splash metal sheets with copper to make bronze sheets, which you can make "clockwork" things out of.
        -

        Xhuis & Jigsaw updated:

        +

        YPOQ updated:

          -
        • Traitor clowns can now purchase the reverse bear trap, a disturbing head-mounted execution device, for five telecrystals.
        • +
        • The assault pod can be launched again.
        -

        Xhuis, Cosmic, Fwoosh, and epochayur updated:

        +

        uraniummeltdown updated:

          -
        • Added pineapples to botany, and a recipe for Hawaiian pizza.
        • +
        • The chatbar now has OOC and Me buttons
        • +
        • The chatbar font-size is smaller
        -

        Zna12 updated:

        + +

        27 February 2018

        +

        Astral updated:

          -
        • Added the AM4-B, Zero's personal version.
        • -
        • Added the AM4-C, An autolathe craftable version. (Hidden behind the hacking like the others.)
        • +
        • blood cultists can now use a nar nar plushie as an extra invoker for runes!
        -

        coiax updated:

        +

        Iamgoofball updated:

          -
        • The Free Golem Ship no longer has a teleport beacon.
        • -
        • Jaunters no longer have a special effect when teleporting golems.
        • -
        • Fake nuclear disks can only be identified by the captain, observers, nuclear operatives, seeing where the pinpointer points, or attempting to put it into a nuclear device.
        • -
        • Fake nuclear disks "respawn" on the station just like the real one.
        • -
        • Nuclear operatives that wish to fail in style can purchase Centcom Official and Clown costumes. They can also buy a defective chameleon kit.
        • -
        • Syndicate intelligence potions also grant an internal syndicate ID card to the simple animal granted intelligence. This effectively means that Cayenne can open the airlocks on the Infiltrator.
        • -
        • Mobs will now start with a random nutrition amount, between hungry and mildly well fed.
        • -
        • Nanotrasen Security Division has reported that syndicate comms agents, both on lavaland and in space, have had training in "Codespeak", a top secret language for stealthy communication.
        • -
        • Romerol is now effective on dead bodies, not just ones that are still alive.
        • +
        • Look sir, free crabs!
        • +
        +

        Poojawa updated:

        +
          +
        • Tesla Corona Analyzers! Study the seemingly magic Edison's Bane for supplemental research points!
        • +
        +

        Robustin updated:

        +
          +
        • The heart attack event will now actually make the victim acquire the heart disease
        • +
        • Clicking the chatbox link will let you orbit the victim
        • +
        • The event is now significantly more sensitive to junk food. Recent consumption of multiple junk food items will triple your chances of having a heart attack (exercise will still block it).
        • +
        +

        selea updated:

        +
          +
        • fixed floorbot
        • +
        • fixed cleanbot
        • +
        • improved pathiding in case of given minimal distance;improved sanitation
        • +
        + +

        26 February 2018

        +

        DaedalusGame updated:

        +
          +
        • livers don't unfail automatically every second life cycle you have to get a new one or get some corazone stat
        • +
        • increased liver damage from alcohol significantly because apparently your liver regenerates faster than you can chug unless you drink 100 liters of bacchus blessing
        • +
        • fixed cyber livers thinking they should fail at half durability
        • +
        +

        MMMiracles updated:

        +
          +
        • Added tinfoil hats, headgear that can help protect against government conspiracies and extra-terrestrials. Found in hacked autolathes.
        • +
        +

        Robustin updated:

        +
          +
        • Twisted Construction will now consume ALL available plasteel in a stack.
        • +
        • Runes will no longer count the original invoker more than once.
        • +
        +

        XDTM updated:

        +
          +
        • Wizard spells and items can now be resisted/ignored with anti-magic items/clothing such as null rods!
        • +
        • Revenant spells can now be resisted with "holy" items like null rods and bibles.
        • +
        • Wizard hardsuits are now magic immune, but not holy.
        • +
        • Immortality Talismans now grant both spell and holy immunity.
        • +
        • Inquisitor Hardsuits already granted spell and holy immunity, but now they do it properly instead of having a null rod embedded inside.
        • +
        • Holy Melons now grant holy immunity.
        • +
        • Operating computers now display the chemicals required to complete a surgery step, if there are any.
        • +
        • Completing a surgery without the required chems will always result in failure, instead of a success with no effect.
        • +
        • You can no longer gain the same trauma more than once.
        • +
        • You can no longer gain more than a certain amount of brain traumas per resilience tier. (Example: You cannot gain 4 mild traumas, but you can gain 3 mild and 1 severe)
        • +
        • Abductors' trauma gland now gives traumas of random resilience, instead of lobotomy every time.
        • +
        +

        Xhuis updated:

        +
          +
        • Instead of starting unable to clone circuits at all, circuit printers can now print circuits over time from roundstart. The formula for this is equal to (metal cost / 150) seconds, with a maximum of 3 minutes. You can see printing progress by using the printer's interface, and you can print normal components during this time.
        • +
        • If circuit printing is disabled in the config, cloning remains unavailable.
        • +
        • The upgrade disk to allow circuit printers to clone circuits has been replaced with an upgrade disk to make circuit cloning instant.
        • +
        • Both circuit printer upgrade disks now cost 5000 metal and glass, down from 10000.
        • +
        • Butchering has been refactored.
        • +
        • Some items now take longer to butcher, and have a chance to harvest fewer items, like spears. Others, however, are faster, like circular saws.
        • +
        • Certain creatures will always drop certain items on butchering, regardless of butchering effectiveness or chances.
        • +
        • Items that are very effective at butchering may yield bonus loot from butchered creatures!
        • +
        • Plain hamburgers may now spawn as steamed hams with a very low chance.
        • +
        + +

        25 February 2018

        +

        Astral updated:

        +
          +
        • Traitor CMOs and Chemists, for 12 TC, can now get a reagent dartgun, which is capable of synthesizing it's own syringes, but does so slowly, and can be easily identified as syndicate by anyone who isn't blind!
        • +
        +

        Cebutris updated:

        +
          +
        • Toxin loving species now properly take toxin damage from liver failiure
        • +
        +

        DaedalusGame updated:

        +
          +
        • enables the RPED to construct/replace other parts commonly used in machines (igniters, beakers, bs crystals)
        • +
        • fixes part ratings of cells so slime cells are correctly more desirable than bluespace cells and other such nonsense
        • +
        • shivering symptom now works properly instead of only cooling you if you're already cold
        • +
        • fixed bodytemp going negative in a few cases
        • +
        • removes input/output plates and changes autogibbers to use input dir
        • +
        • The last scientists have reported that thermonuclear blasts triggered by so called 'power gamers' have shorted the doppler array. We've readjusted the ALU and are confident that this will not happen again.
        • +
        +

        Denton updated:

        +
          +
        • The outer airlocks of most space ruin airlocks are now cycle linked.
        • +
        • The outer airlocks of various lavaland ruins and ships now cycle lock.
        • +
        • Players can no longer kill themselves by whispering inside clone pods.
        • +
        • The 'neurotoxin2' toxin has been renamed to Fentanyl.
        • +
        +

        Naksu updated:

        +
          +
        • Admins can now start the game as extended revs, a version of revs that doesn't end when head(rev)s are dead. Admins can also use the speedy mode, which nukes the station after 20 minutes.
        • +
        +

        Repukan updated:

        +
          +
        • Whiskey to the flask
        • +
        • Hearty Punch from the flask
        • +
        +

        ShizCalev updated:

        +
          +
        • Silicons no longer have to be adjacent to morguetrays to disable the alarms on then.
        • +
        +

        ThePainkiller updated:

        +
          +
        • Tweaked the inventory management of the black fedora to be more like the detective's
        • +
        +

        Xhuis updated:

        +
          +
        • Added Bastion Bourbon, which you can mix with tea, creme de menthe, triple citrus, and berry juice. When it's in your system, it will very slowly heal you as long as you're not in critical. When it's first added to your system, you heal an amount of each damage type equal to the volume taken in, with a max of 10. This is turned to a max of 20 for anyone in critical.
        • +
        • Added Squirt Cider, which you can mix with water, tomato juice, and nutriment. It's nutritious and healthy!
        • +
        • Reskinning objects now shows their possible appearances in the chat box.

        deathride58 updated:

          -
        • When it's night time in the server's timezone, all lights aboard the station will dim to simulate a graveyard shift. It's possible for lights to dim in the middle of a shift.
        • -
        • Citadel is now widescreen by default.
        • -
        • Cancelling the "Change equipment" command now works as expected again.
        • -
        • Light fixtures no longer use hardcoded values for their power and colour.
        • -
        • Cleaned up a bunch of useless ..()s in cit_screenshake.dm
        • -
        • The toggle animal digestion button has been moved to the object tab. This means observers running byond on low-end hardware will no longer get massive lagspikes when entering a tile adjacent to a simplemob.
        • -
        • The chatbox is now a liiiiittle darker to avoid contrasting as much with the dark UI
        • -
        • Genitals now reset properly between previews
        • -
        • The input bar is now located right underneath the chatbox
        • -
        • You can now toggle between the server's 21x15 view resolution and TG's default 15x15 view resolution in the game options menu. Look for the "Widescreen" entry in the game options menu.
        • -
        • Roundstart night lighting now works properly again.
        • +
        • Lights will now actually glow in the dark!
        -

        improvedname updated:

        + +

        22 February 2018

        +

        Buggy123 updated:

          -
        • Adds bz to cargo
        • -
        • adds kinkmate refill packages to cargo
        • -
        • adds yeehaw to the dj's disco soundboard
        • +
        • Nanotrasen has begun a campaign to inform their employees that you can alt-click to disable morgue tray beeping.
        -

        imsxz updated:

        +

        Jittai / ChuckTheSheep updated:

          -
        • Traitor clowns are now able to purchase clown bombs from their uplinks. Honk!
        • -
        • Clown bombs can now be placed via a small beacon, the same way normal syndicate bombs can be.
        • -
        • clown bomb payload now summons 50 clowns instead of 100
        • +
        • NT has stopped buying re-boxed storebrand Donkpockets and now stocks stations with real, genuine, tasty Donkpockets!
        -

        ninjanomnom updated:

        +

        MetroidLover updated:

          -
        • Functions that aren't intending on actually moving the shuttle yet don't send error messages to admins anymore when seeing if a shuttle *can* move.
        • -
        • Changeling clothing can get bloodied again.
        • -
        • Pointing at squeaky things doesn't make them squeak anymore.
        • -
        • Loaded templates now get placed on top of existing terrain so as to preserve baseturfs. This fixes survival pods walls breaking to lava as well as allows some future fixes.
        • +
        • rebalanced Ninja event to allow it to happen earlier.
        • +
        • fixed Ninja welcome text to no longer tell you to right click your suit.
        -

        oranges updated:

        +

        Naksu updated:

          -
        • removes ketrazine
        • +
        • removed unused poisoned apple variant
        -

        scrubs2009 updated:

        +

        Repukan updated:

          -
        • Candles last longer
        • +
        • fixed windoors dropping more cable than what was used to build them.
        -

        the hatchet man (i eat garbage code) updated:

        +

        Robustin updated:

          -
        • you shitlords picked the wrong virtual anime tits to fuck so im takin away your space bases experimental: lets be fair all you guys did in those was jack off to hentai, and not real man's gachimuchi
        • +
        • The clock cult's marauder limit now works properly, temporarily lower the marauder limit when one has recently been summoned.
        -

        tiji0 updated:

        +

        Super3222, TheMythicGhost, DaedalusGame updated:

          -
        • space kiwis can now be ordered from cargo
        • +
        • Adds a barometer function to the standard atmos analyzer.
        • +
        • Adds a new sprite for the atmos analyzer to resemble a barometer.
        • +
        +

        kevinz000, Denton updated:

        +
          +
        • Nanotrasen's RnD division has integrated all stationary tachyon doppler arrays into the techweb system. Record increasingly large explosions with them and you will generate research points!
        • +
        • Fixed a few typos in the RnD doppler array name/description.
        • +
        + +

        21 February 2018

        +

        Denton updated:

        +
          +
        • Renamed the IDs of various reagents to be more descriptive.
        • +
        • Fixed the descriptions of changeling adrenaling reagents.
        • +
        • Changed Santa event earliest start from 33 minutes & 20 seconds to 30 minutes. Changed shuttle loan earliest start from 6 minutes & 40 seconds to 7 minutes.
        • +
        • Tweaked the message you see when emagging meteor shield satellites.
        • +
        +

        Kevinz000 & Deathride58 updated:

        +
          +
        • A separate round time has been added to status panel. This will start at 00:00:00.
        • +
        • Night shift lighting [if enabled in the same configuration] will activate between station time 7:30 PM and 7:30 AM. This will dim all lights affected, but they will still have the same range.
        • +
        • APCs now have an option to set night lighting mode on or off, regardless of time.
        • +
        +

        Naksu updated:

        +
          +
        • Flightsuits should be controllable again
        • +
        + +

        20 February 2018

        +

        Anonmare updated:

        +
          +
        • Nanotrasen psychologists have identified new phobias emerging amongst the workforce. Nanotrasen's surgeon general advises all personnel to just buck up and deal with it.
        • +
        +

        AverageJoe82 updated:

        +
          +
        • Circuits integrity, charge, and overall circuit composition is displayed on diagnostic huds. If the assembly has dangerous circuits then the status icon will display exclamation points, if the assembly can communicate with something far away a wifi icon will appear next to the status icon, and if the circuit can not operate the status icon will display an 'X'.
        • +
        • AR interface circuit which can modify the status icon if it is not displaying the exclamation points or the 'X'.
        • +
        • Locomotive circuits can no longer be added to assemblies that can't use them.
        • +
        • Fixed a typo in the grenade primer description.
        • +
        • Added flags to circuits that help group subsets of circuits and regulate them.
        • +
        +

        DaedalusGame updated:

        +
          +
        • fixed ghost spawners showing up in the spawner menu when you can't use them
        • +
        • fixed walls under doors breaking to space
        • +
        • changed doors to no longer spawn on top of walls
        • +
        +

        Dax Dupont updated:

        +
          +
        • Adds special tutorial holopads for the hazard course.
        • +
        +

        Jittai updated:

        +
          +
        • Ctrl+Clicking progresses through grab cycle on living mobs (not just humans)
        • +
        +

        Joan updated:

        +
          +
        • The crusher kit now includes an advanced mining scanner.
        • +
        • The resonator kit now includes webbing and a small extinguisher.
        • +
        • The minebot kit now includes a minebot passthrough kinetic accelerator module, which will cause kinetic accelerator shots to pass through minebots. The welding goggles have been replaced with a welding helmet, allowing you to wear mesons and still be able to repair the minebot without eye damage. feature: You can now install kinetic accelerator modkits on minebots. Some exceptions may apply. Crowbar to remove modkits.
        • +
        • Minebots now shoot 33% faster by default(3 seconds to 2). The minebot cooldown upgrade still produces a fire rate of 1 second.
        • +
        • Minebots are now slightly less likely to sit in melee like idiots, and are now healed for 15 instead of 10 when welded.
        • +
        • Sentient minebots are penalized; they cannot have armor and melee upgrades installed, and making them sentient will override those upgrades if they were installed. In addition, they move very slightly slower and have their kinetic accelerator's cooldown increased by 1 second.
        • +
        +

        NTnet circuit fix updated:

        +
          +
        • Now NTnet circuits can recieve sender adress properly.Also, now messages could be sended to multiple recepiens.
        • +
        +

        Xhuis updated:

        +
          +
        • Admins may now spawn a debug circuit printer that can always print circuits, and has infinite metal.
        • +
        • Buttons, number pads, and text pads in integrated circuits now correctly show their labels.
        • +
        • Integrated hypo-injectors can now correctly draw blood.
        • +
        • The circuit analyzer output has been slightly tweaked and includes usage instructions.
        • +
        • The round-end report now shows information about the first person to die in that round.
        • +
        • Added the dish drive. This machine, the future in plate disposal, can be researched from techwebs (Biological Processing) and built with a standard machine frame using two matter bins, a micro manipulator, and a glass sheet.
        • +
        • A circuit board for the dish drive can be found in the chef's and bartender's wardrobes.
        • +
        • You can hit a dish drive with any dish (like a plate or drinking glass), and the dish drive will convert it from matter to energy, allowing it to store an infinite amount of dishes. You can also interact with it to get things back from it.
        • +
        • Dish drives also have an automatic "suction" function that sucks in all loose dishes within four tiles. This can be toggled by activating its circuit board in-hand.
        • +
        • Dish drives automatically beam their stored dishes into any disposal unit that it can see within seven tiles every minute. You can toggle this by alt-clicking its circuit board.
        • +
        • Plastic surgery now lets you choose from a list of ten random names, so you can pick the one that you prefer.
        • +
        • Abductors performing plastic surgery can now give their target spooky subject names, with one normal name available for standard plastique.
        • +
        + +

        19 February 2018

        +

        DaedalusGame updated:

        +
          +
        • Fixed paper bins not catching fire properly
        • +
        • fixed multiserver mining formula
        • +
        +

        Improvedname updated:

        +
          +
        • Fried eggs don't require boiled eggs anymore and just normal eggs
        • +
        +

        Kevinz000 and Naksu updated:

        +
          +
        • Ore stacks will now initialize with proper visuals and no longer show a NO SPRITE text when you gather more than 20 ores to a stack.
        • +
        +

        XDTM updated:

        +
          +
        • Added three new techweb nodes: Advanced Surgery, Experimental Surgery, and Alien Surgery(requires abductor tech)
        • +
        • Added several new surgical procedures, which require these techweb nodes. To enable an advanced surgery, print its relative disk from a protolathe, and load it on an Operating Computer. Advanced surgery can only be performed at operating tables.
        • +
        • You can now intentionally fail surgical procedures by initiating them with disarm intent instead of help intent.
        • +
        • Brain traumas now have a custom resilience system. Some trauma sources can cause traumas which require more extensive treatment, such as the new Lobotomy surgery.
        • +
        • Traitors can now purchase a Brainwashing Surgery Disk for 5 TC.
        • +
        +

        Xhuis updated:

        +
          +
        • New blob tiles are no longer invincible after their blob's death.
        • +
        • Blob nodes no longer produce blob tiles even after the blob's death.
        • +
        +

        coiax updated:

        +
          +
        • Mime's Bane, a toxin that prevents people from emoting while it's in their system, can now be created by mixing 1 part Mute Toxin, 1 part Nothing and 1 part Radium.
        • +
        + +

        18 February 2018

        +

        More Robust Than You updated:

        +
          +
        • Actually fixes SCP 294 overlay problems
        • +
        +

        Naksu updated:

        +
          +
        • Exosuit fabricators can now build RPED and crew pinpointer upgrades for engineering and medical borgs respectively.
        • +
        +

        Ordo updated:

        +
          +
        • Adds a few new liquors to the bar, and a few new cocktails to boot!
        • +
        +

        Xhuis updated:

        +
          +
        • Crew pinpointers now fit on medical belts!
        • +
        +

        YPOQ updated:

        +
          +
        • Bicycles are rideable again
      diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index c05ac6d022..8261d04e6a 100644 Binary files a/icons/effects/effects.dmi and b/icons/effects/effects.dmi differ diff --git a/icons/mob/actions/actions_items.dmi b/icons/mob/actions/actions_items.dmi index b16c7e4263..ce7d000409 100644 Binary files a/icons/mob/actions/actions_items.dmi and b/icons/mob/actions/actions_items.dmi differ diff --git a/icons/mob/augmentation/augments.dmi b/icons/mob/augmentation/augments.dmi index a532348d6d..574a5ddc48 100644 Binary files a/icons/mob/augmentation/augments.dmi and b/icons/mob/augmentation/augments.dmi differ diff --git a/icons/mob/augmentation/augments_engineer.dmi b/icons/mob/augmentation/augments_engineer.dmi index 8aeaaf04e0..7f2b2e8de9 100644 Binary files a/icons/mob/augmentation/augments_engineer.dmi and b/icons/mob/augmentation/augments_engineer.dmi differ diff --git a/icons/mob/augmentation/augments_mining.dmi b/icons/mob/augmentation/augments_mining.dmi index b79c54e9c8..39df4823fd 100644 Binary files a/icons/mob/augmentation/augments_mining.dmi and b/icons/mob/augmentation/augments_mining.dmi differ diff --git a/icons/mob/augmentation/augments_security.dmi b/icons/mob/augmentation/augments_security.dmi index 8f57f77c4b..2679f7c9f8 100644 Binary files a/icons/mob/augmentation/augments_security.dmi and b/icons/mob/augmentation/augments_security.dmi differ diff --git a/icons/mob/augmentation/surplus_augments.dmi b/icons/mob/augmentation/surplus_augments.dmi index f06ac0c94b..bc3e4bd73c 100644 Binary files a/icons/mob/augmentation/surplus_augments.dmi and b/icons/mob/augmentation/surplus_augments.dmi differ diff --git a/icons/mob/eyes.dmi b/icons/mob/eyes.dmi index 39f5f1a6f8..4bbe27f09d 100644 Binary files a/icons/mob/eyes.dmi and b/icons/mob/eyes.dmi differ diff --git a/icons/mob/human_parts_greyscale.dmi b/icons/mob/human_parts_greyscale.dmi index ae6818b30a..f162d36633 100644 Binary files a/icons/mob/human_parts_greyscale.dmi and b/icons/mob/human_parts_greyscale.dmi differ diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi index 22b8b18699..2480cd9cd6 100644 Binary files a/icons/mob/inhands/items_lefthand.dmi and b/icons/mob/inhands/items_lefthand.dmi differ diff --git a/icons/mob/inhands/items_righthand.dmi b/icons/mob/inhands/items_righthand.dmi index 0a8596d711..0fc499e45d 100644 Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ diff --git a/icons/mob/inhands/weapons/melee_lefthand.dmi b/icons/mob/inhands/weapons/melee_lefthand.dmi index 04712e63e1..092881ee01 100644 Binary files a/icons/mob/inhands/weapons/melee_lefthand.dmi and b/icons/mob/inhands/weapons/melee_lefthand.dmi differ diff --git a/icons/mob/inhands/weapons/melee_righthand.dmi b/icons/mob/inhands/weapons/melee_righthand.dmi index ce7c4ad7e5..ede430390c 100644 Binary files a/icons/mob/inhands/weapons/melee_righthand.dmi and b/icons/mob/inhands/weapons/melee_righthand.dmi differ diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index 79f1d67c20..24ede3c513 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ diff --git a/icons/obj/clothing/glasses.dmi b/icons/obj/clothing/glasses.dmi index 5045ccce2b..e7bec8dbe4 100644 Binary files a/icons/obj/clothing/glasses.dmi and b/icons/obj/clothing/glasses.dmi differ diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index 834f430a98..a515b9ea9b 100644 Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ diff --git a/icons/obj/guns/energy.dmi b/icons/obj/guns/energy.dmi index eade00cbeb..d8092a6095 100644 Binary files a/icons/obj/guns/energy.dmi and b/icons/obj/guns/energy.dmi differ diff --git a/icons/obj/mining.dmi b/icons/obj/mining.dmi index 8b686d67db..fadb506a86 100644 Binary files a/icons/obj/mining.dmi and b/icons/obj/mining.dmi differ diff --git a/icons/obj/recycling.dmi b/icons/obj/recycling.dmi index 7aaacf4524..4e072c9006 100644 Binary files a/icons/obj/recycling.dmi and b/icons/obj/recycling.dmi differ diff --git a/icons/obj/robot_parts.dmi b/icons/obj/robot_parts.dmi deleted file mode 100644 index 0410cb034f..0000000000 Binary files a/icons/obj/robot_parts.dmi and /dev/null differ diff --git a/icons/obj/scp.dmi b/icons/obj/scp.dmi deleted file mode 100644 index 0b525a4332..0000000000 Binary files a/icons/obj/scp.dmi and /dev/null differ diff --git a/icons/obj/stack_objects.dmi b/icons/obj/stack_objects.dmi index d5d615b593..6d2b2b64cd 100644 Binary files a/icons/obj/stack_objects.dmi and b/icons/obj/stack_objects.dmi differ diff --git a/icons/obj/supermatter.dmi b/icons/obj/supermatter.dmi index 64e2675873..92a9dfe270 100644 Binary files a/icons/obj/supermatter.dmi and b/icons/obj/supermatter.dmi differ diff --git a/modular_citadel/code/_onclick/click.dm b/modular_citadel/code/_onclick/click.dm index 4746231c59..04e763313d 100644 --- a/modular_citadel/code/_onclick/click.dm +++ b/modular_citadel/code/_onclick/click.dm @@ -72,3 +72,30 @@ /mob/proc/AltRangedAttack(atom/A, params) return FALSE + +/mob/proc/mouse_face_atom(atom/A) //Basically a copy of face_atom but with ismousemovement set to TRUE + if( buckled || stat != CONSCIOUS || !A || !x || !y || !A.x || !A.y ) + return + var/dx = A.x - x + var/dy = A.y - y + if(!dx && !dy) // Wall items are graphically shifted but on the floor + if(A.pixel_y > 16) + setDir(NORTH, ismousemovement = TRUE) + else if(A.pixel_y < -16) + setDir(SOUTH, ismousemovement = TRUE) + else if(A.pixel_x > 16) + setDir(EAST, ismousemovement = TRUE) + else if(A.pixel_x < -16) + setDir(WEST, ismousemovement = TRUE) + return + + if(abs(dx) < abs(dy)) + if(dy > 0) + setDir(NORTH, ismousemovement = TRUE) + else + setDir(SOUTH, ismousemovement = TRUE) + else + if(dx > 0) + setDir(EAST, ismousemovement = TRUE) + else + setDir(WEST, ismousemovement = TRUE) diff --git a/modular_citadel/code/datums/uplink_items_cit.dm b/modular_citadel/code/datums/uplink_items_cit.dm index ed412bb547..16130de96d 100644 --- a/modular_citadel/code/datums/uplink_items_cit.dm +++ b/modular_citadel/code/datums/uplink_items_cit.dm @@ -128,8 +128,6 @@ throw_speed = 2 throw_range = 4 w_class = WEIGHT_CLASS_BULKY - max_w_class = WEIGHT_CLASS_NORMAL - max_combined_w_class = 21 attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked") resistance_flags = FLAMMABLE max_integrity = 150 diff --git a/modular_citadel/code/datums/wires/airlock.dm b/modular_citadel/code/datums/wires/airlock.dm index 16436b108d..0c89f70d22 100644 --- a/modular_citadel/code/datums/wires/airlock.dm +++ b/modular_citadel/code/datums/wires/airlock.dm @@ -1,2 +1,40 @@ /datum/wires/airlock - randomize = TRUE \ No newline at end of file + proper_name = "Generic Airlock" + var/wiretype + +/datum/wires/airlock/command + proper_name = "Command Airlock" + wiretype = "commandairlock" + +/datum/wires/airlock/security + proper_name = "Security Airlock" + wiretype = "securityairlock" + +/datum/wires/airlock/engineering + proper_name = "Engineering Airlock" + wiretype = "engineeringairlock" + +/datum/wires/airlock/science + proper_name = "Science Airlock" + wiretype = "scienceairlock" + +/datum/wires/airlock/medical + proper_name = "Medical Airlock" + wiretype = "medicalairlock" + +/datum/wires/airlock/cargo + proper_name = "Cargo Airlock" + wiretype = "cargoairlock" + +/datum/wires/airlock/New(atom/holder) + . = ..() + if(randomize) + return + if(wiretype) + if(!GLOB.wire_color_directory[wiretype]) + colors = list() + randomize() + GLOB.wire_color_directory[wiretype] = colors + GLOB.wire_name_directory[wiretype] = proper_name + else + colors = GLOB.wire_color_directory[wiretype] diff --git a/modular_citadel/code/game/machinery/cryopod.dm b/modular_citadel/code/game/machinery/cryopod.dm index 6e10070011..87089d57fd 100644 --- a/modular_citadel/code/game/machinery/cryopod.dm +++ b/modular_citadel/code/game/machinery/cryopod.dm @@ -144,9 +144,9 @@ var/list/preserve_items = list( /obj/item/hand_tele, /obj/item/card/id/captains_spare, - /obj/item/device/aicard, - /obj/item/device/mmi, - /obj/item/device/paicard, + /obj/item/aicard, + /obj/item/mmi, + /obj/item/paicard, /obj/item/gun, /obj/item/pinpointer, /obj/item/clothing/shoes/magboots, @@ -165,7 +165,7 @@ ) // These items will NOT be preserved var/list/do_not_preserve_items = list ( - /obj/item/device/mmi/posibrain + /obj/item/mmi/posibrain ) /obj/machinery/cryopod/Initialize() @@ -173,8 +173,8 @@ find_control_computer() return ..() -/obj/machinery/cryopod/proc/find_control_computer(urgent = 0) - for(var/obj/machinery/computer/cryopod/C in area_contents(get_area(src))) +/obj/machinery/cryopod/proc/find_control_computer(urgent = 0,area/A) + for(var/obj/machinery/computer/cryopod/C in A) control_computer = C break @@ -417,7 +417,7 @@ if(!Adjacent(user)) return - + if(target == user) visible_message("[user] starts climbing into the cryo pod.") else @@ -426,7 +426,7 @@ if(occupant) to_chat(user, "\The [src] is in use.") return - + close_machine(target) to_chat(target, "If you ghost, log out or close your client now, your character will shortly be permanently removed from the round.") diff --git a/modular_citadel/code/game/machinery/doors/airlock.dm b/modular_citadel/code/game/machinery/doors/airlock.dm new file mode 100644 index 0000000000..346c50d4e1 --- /dev/null +++ b/modular_citadel/code/game/machinery/doors/airlock.dm @@ -0,0 +1,2 @@ +/obj/machinery/door/airlock + var/wiretypepath = /datum/wires/airlock diff --git a/modular_citadel/code/game/machinery/doors/airlock_types.dm b/modular_citadel/code/game/machinery/doors/airlock_types.dm new file mode 100644 index 0000000000..29a1b4be16 --- /dev/null +++ b/modular_citadel/code/game/machinery/doors/airlock_types.dm @@ -0,0 +1,29 @@ +/obj/machinery/door/airlock/command + wiretypepath = /datum/wires/airlock/command + +/obj/machinery/door/airlock/security + wiretypepath = /datum/wires/airlock/security + +/obj/machinery/door/airlock/engineering + wiretypepath = /datum/wires/airlock/engineering + +/obj/machinery/door/airlock/medical + wiretypepath = /datum/wires/airlock/medical + +/obj/machinery/door/airlock/mining + wiretypepath = /datum/wires/airlock/cargo + +/obj/machinery/door/airlock/atmos + wiretypepath = /datum/wires/airlock/engineering + +/obj/machinery/door/airlock/research + wiretypepath = /datum/wires/airlock/science + +/obj/machinery/door/airlock/science + wiretypepath = /datum/wires/airlock/science + +/obj/machinery/door/airlock/virology + wiretypepath = /datum/wires/airlock/medical + +/obj/machinery/door/airlock/vault + wiretypepath = /datum/wires/airlock/secure diff --git a/modular_citadel/code/game/machinery/vending.dm b/modular_citadel/code/game/machinery/vending.dm index 9bcfbe888b..acb91a027d 100755 --- a/modular_citadel/code/game/machinery/vending.dm +++ b/modular_citadel/code/game/machinery/vending.dm @@ -1,12 +1,12 @@ /obj/machinery/vending/security - contraband = list(/obj/item/clothing/glasses/sunglasses = 2, /obj/item/storage/fancy/donut_box = 2, /obj/item/device/ssword_kit = 1) - premium = list(/obj/item/coin/antagtoken = 1, /obj/item/device/ssword_kit = 1) + contraband = list(/obj/item/clothing/glasses/sunglasses = 2, /obj/item/storage/fancy/donut_box = 2, /obj/item/ssword_kit = 1) + premium = list(/obj/item/coin/antagtoken = 1, /obj/item/ssword_kit = 1) /obj/machinery/vending/medical products = list(/obj/item/reagent_containers/syringe = 12, /obj/item/reagent_containers/dropper = 3, - /obj/item/device/healthanalyzer = 4, - /obj/item/device/sensor_device = 2, + /obj/item/healthanalyzer = 4, + /obj/item/sensor_device = 2, /obj/item/pinpointer/crew = 2, /obj/item/reagent_containers/medspray/sterilizine = 1, /obj/item/stack/medical/gauze = 8, @@ -50,7 +50,7 @@ /obj/item/clothing/under/mankini = 1, /obj/item/dildo/flared/huge = 1 ) - premium = list(/obj/item/device/electropack/shockcollar = 3) + premium = list(/obj/item/electropack/shockcollar = 3) refill_canister = /obj/item/vending_refill/kink /* /obj/machinery/vending/nazivend diff --git a/modular_citadel/code/game/machinery/wishgranter.dm b/modular_citadel/code/game/machinery/wishgranter.dm index 33ee2e4e18..f7c2c57d08 100644 --- a/modular_citadel/code/game/machinery/wishgranter.dm +++ b/modular_citadel/code/game/machinery/wishgranter.dm @@ -38,7 +38,7 @@ to_chat(user, "[powah] materializes into your hands!") else to_chat(user, "[powah] materializes onto the floor.") - var/obj/machinery/power/supermatter_shard/powerwish = new /obj/machinery/power/supermatter_shard(loc) + var/obj/machinery/power/supermatter_crystal/powerwish = new /obj/machinery/power/supermatter_crystal(loc) powerwish.damage = 700 //right at the emergency threshold powerwish.produces_gas = FALSE charges-- @@ -65,7 +65,7 @@ user.dna.add_mutation(BLINDMUT) user.adjust_eye_damage(100) var/list/destinations = list() - for(var/obj/item/device/beacon/B in GLOB.teleportbeacons) + for(var/obj/item/beacon/B in GLOB.teleportbeacons) var/turf/T = get_turf(B) if(is_station_level(T.z)) destinations += B diff --git a/modular_citadel/code/game/objects/items/devices/PDA/PDA.dm b/modular_citadel/code/game/objects/items/devices/PDA/PDA.dm index 85ac3982ed..d26cf28778 100644 --- a/modular_citadel/code/game/objects/items/devices/PDA/PDA.dm +++ b/modular_citadel/code/game/objects/items/devices/PDA/PDA.dm @@ -1,4 +1,4 @@ //Overrides TG's PDA sprites with Cit's PDA sprites. Remind me to turn this into a pref somewhere down the line. -/obj/item/device/pda +/obj/item/pda icon = 'modular_citadel/icons/obj/pda.dmi' diff --git a/modular_citadel/code/game/objects/items/devices/aicard.dm b/modular_citadel/code/game/objects/items/devices/aicard.dm index c56e7da986..a1509e4473 100644 --- a/modular_citadel/code/game/objects/items/devices/aicard.dm +++ b/modular_citadel/code/game/objects/items/devices/aicard.dm @@ -1,4 +1,4 @@ -/obj/item/device/aicard/potato +/obj/item/aicard/potato name = "Potat-OS" desc = "A storage device for possibly malfunctioning AIs. Go on. Get a big fat eyeful. With your big fat eyes." icon = 'modular_citadel/icons/aicards.dmi' diff --git a/modular_citadel/code/game/objects/items/devices/flashlight.dm b/modular_citadel/code/game/objects/items/devices/flashlight.dm index bbf995e451..3a373c9277 100644 --- a/modular_citadel/code/game/objects/items/devices/flashlight.dm +++ b/modular_citadel/code/game/objects/items/devices/flashlight.dm @@ -1,31 +1,31 @@ -/obj/item/device/flashlight +/obj/item/flashlight light_color = "#FFCC66" flashlight_power = 0.8 -/obj/item/device/flashlight/pen +/obj/item/flashlight/pen light_color = "#FFDDCC" flashlight_power = 0.3 -/obj/item/device/flashlight/seclite +/obj/item/flashlight/seclite light_color = "#CDDDFF" flashlight_power = 0.9 -/obj/item/device/flashlight/lamp +/obj/item/flashlight/lamp light_color = "#FFDDBB" flashlight_power = 0.8 -/obj/item/device/flashlight/flare +/obj/item/flashlight/flare light_color = "#FA421A" flashlight_power = 0.8 -/obj/item/device/flashlight/flare/torch +/obj/item/flashlight/flare/torch light_color = "#FAA44B" flashlight_power = 0.8 -/obj/item/device/flashlight/lantern +/obj/item/flashlight/lantern light_color = "#FFAA44" flashlight_power = 0.75 -/obj/item/device/flashlight/slime +/obj/item/flashlight/slime light_color = "#FFEEAA" flashlight_power = 0.6 diff --git a/modular_citadel/code/game/objects/items/devices/radio/encryptionkey.dm b/modular_citadel/code/game/objects/items/devices/radio/encryptionkey.dm index 840883e450..5e3d7318cf 100644 --- a/modular_citadel/code/game/objects/items/devices/radio/encryptionkey.dm +++ b/modular_citadel/code/game/objects/items/devices/radio/encryptionkey.dm @@ -1,10 +1,10 @@ -/obj/item/device/encryptionkey/heads/qm +/obj/item/encryptionkey/heads/qm name = "\proper the quartermaster's encryption key" desc = "An encryption key for a radio headset. Channels are as follows: :u - supply, :c - command." icon_state = "hop_cypherkey" channels = list("Supply" = 1, "Command" = 1) -/obj/item/device/encryptionkey/heads/hop +/obj/item/encryptionkey/heads/hop desc = "An encryption key for a radio headset. Channels are as follows: :v - service, :c - command." channels = list("Service" = 1, "Command" = 1) diff --git a/modular_citadel/code/game/objects/items/devices/radio/headset.dm b/modular_citadel/code/game/objects/items/devices/radio/headset.dm index 874e6f8301..3d1b36f645 100644 --- a/modular_citadel/code/game/objects/items/devices/radio/headset.dm +++ b/modular_citadel/code/game/objects/items/devices/radio/headset.dm @@ -1,10 +1,10 @@ -/obj/item/device/radio/headset/heads/qm +/obj/item/radio/headset/heads/qm name = "\proper the quartermaster's headset" desc = "The headset of the king (or queen) of paperwork.\nChannels are as follows: :u - supply, :c - command." icon_state = "com_headset" - keyslot = new /obj/item/device/encryptionkey/heads/qm + keyslot = new /obj/item/encryptionkey/heads/qm -/obj/item/device/radio/headset/heads/hop +/obj/item/radio/headset/heads/hop desc = "The headset of the guy who will one day be captain.\nChannels are as follows: :v - service, :c - command." - keyslot = new /obj/item/device/encryptionkey/heads/hop + keyslot = new /obj/item/encryptionkey/heads/hop diff --git a/modular_citadel/code/game/objects/items/devices/radio/shockcollar.dm b/modular_citadel/code/game/objects/items/devices/radio/shockcollar.dm index 23bf4b96c3..9917eb6e7b 100644 --- a/modular_citadel/code/game/objects/items/devices/radio/shockcollar.dm +++ b/modular_citadel/code/game/objects/items/devices/radio/shockcollar.dm @@ -1,4 +1,4 @@ -/obj/item/device/electropack/shockcollar +/obj/item/electropack/shockcollar name = "shock collar" desc = "A reinforced metal collar. It seems to have some form of wiring near the front. Strange.." icon = 'modular_citadel/icons/obj/clothing/cit_neck.dmi' @@ -17,11 +17,11 @@ name = "Shockcollar" id = "shockcollar" build_type = AUTOLATHE - build_path = /obj/item/device/electropack/shockcollar + build_path = /obj/item/electropack/shockcollar materials = list(MAT_METAL=5000, MAT_GLASS=2000) category = list("hacked", "Misc") -/obj/item/device/electropack/shockcollar/attack_hand(mob/user) +/obj/item/electropack/shockcollar/attack_hand(mob/user) if(loc == user) if(slot_flags == SLOT_NECK) if(user.get_item_by_slot(slot_neck)) @@ -29,7 +29,7 @@ return ..() -/obj/item/device/electropack/shockcollar/receive_signal(datum/signal/signal) +/obj/item/electropack/shockcollar/receive_signal(datum/signal/signal) if(!signal || signal.data["code"] != code) return @@ -53,7 +53,7 @@ master.receive_signal() return -/obj/item/device/electropack/shockcollar/attack_self(mob/user) //Turns out can't fully source this from the parent item, spritepath gets confused if power toggled. Will come back to this when I know how to code better and readd powertoggle.. +/obj/item/electropack/shockcollar/attack_self(mob/user) //Turns out can't fully source this from the parent item, spritepath gets confused if power toggled. Will come back to this when I know how to code better and readd powertoggle.. var/option = "Change Name" option = input(user, "What do you want to do?", "[src]", option) as null|anything in list("Change Name", "Change Frequency") switch(option) diff --git a/modular_citadel/code/game/objects/items/storage/firstaid.dm b/modular_citadel/code/game/objects/items/storage/firstaid.dm index cc42eb5d57..82d7df4a00 100755 --- a/modular_citadel/code/game/objects/items/storage/firstaid.dm +++ b/modular_citadel/code/game/objects/items/storage/firstaid.dm @@ -39,9 +39,14 @@ throw_range = 7 var/empty = FALSE item_state = "firstaid" - w_class = WEIGHT_CLASS_SMALL - max_combined_w_class = 5 //half that of regular kits - storage_slots = 5 + +/obj/item/storage/hypospraykit/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_w_class = WEIGHT_CLASS_SMALL + STR.max_combined_w_class = 5 + STR.max_items = 5 + STR.cant_hold = typecacheof(list(/obj/item/disk/nuclear)) /obj/item/storage/hypospraykit/regular icon_state = "firstaid-mini" @@ -107,7 +112,6 @@ name = "combat hypospray kit" desc = "A hypospray kit best suited for combat situations." icon_state = "tactical-mini" - max_w_class = WEIGHT_CLASS_NORMAL /obj/item/storage/hypospraykit/tactical/PopulateContents() if(empty) @@ -121,9 +125,14 @@ name = "deluxe hypospray kit" desc = "A kit containing a Deluxe hypospray and Vials." icon_state = "tactical-mini" - max_w_class = WEIGHT_CLASS_NORMAL - storage_slots = 6 - max_combined_w_class = 6 + +/obj/item/storage/hypospraykit/cmo/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_w_class = WEIGHT_CLASS_SMALL + STR.max_combined_w_class = 6 + STR.max_items = 6 + STR.cant_hold = typecacheof(list(/obj/item/disk/nuclear)) /obj/item/storage/hypospraykit/cmo/PopulateContents() if(empty) diff --git a/modular_citadel/code/game/objects/items/stunsword.dm b/modular_citadel/code/game/objects/items/stunsword.dm index 11e37eafa0..1262b0018a 100644 --- a/modular_citadel/code/game/objects/items/stunsword.dm +++ b/modular_citadel/code/game/objects/items/stunsword.dm @@ -7,7 +7,7 @@ lefthand_file = 'modular_citadel/icons/mob/inhands/stunsword_left.dmi' righthand_file = 'modular_citadel/icons/mob/inhands/stunsword_right.dmi' -/obj/item/device/ssword_kit +/obj/item/ssword_kit name = "stunsword kit" desc = "a modkit for making a stunbaton into a stunsword" icon = 'icons/obj/vending_restock.dmi' diff --git a/modular_citadel/code/game/objects/structures/crates_lockers/closets/secure/citadel_lockers.dm b/modular_citadel/code/game/objects/structures/crates_lockers/closets/secure/citadel_lockers.dm index bd84d2c3d1..3027b0ba59 100644 --- a/modular_citadel/code/game/objects/structures/crates_lockers/closets/secure/citadel_lockers.dm +++ b/modular_citadel/code/game/objects/structures/crates_lockers/closets/secure/citadel_lockers.dm @@ -1,6 +1,6 @@ /obj/structure/closet/secure_closet/quartermaster/PopulateContents() ..() - new /obj/item/device/radio/headset/heads/qm(src) + new /obj/item/radio/headset/heads/qm(src) /obj/structure/closet/secure_closet/CMO/PopulateContents() ..() diff --git a/modular_citadel/code/modules/antagonists/crew_objectives/cit_crewobjectives_civilian.dm b/modular_citadel/code/modules/antagonists/crew_objectives/cit_crewobjectives_civilian.dm index b714d0cab4..491285e9c4 100644 --- a/modular_citadel/code/modules/antagonists/crew_objectives/cit_crewobjectives_civilian.dm +++ b/modular_citadel/code/modules/antagonists/crew_objectives/cit_crewobjectives_civilian.dm @@ -127,7 +127,7 @@ /datum/objective/crew/slipster/check_completion() var/list/uniqueslips = list() if(owner && owner.current) - for(var/obj/item/device/pda/clown/PDA in owner.current.get_contents()) + for(var/obj/item/pda/clown/PDA in owner.current.get_contents()) for(var/mob/living/carbon/human/H in PDA.slipvictims) uniqueslips |= H if(uniqueslips.len >= target_amount) diff --git a/modular_citadel/code/modules/antagonists/crew_objectives/cit_crewobjectives_engineering.dm b/modular_citadel/code/modules/antagonists/crew_objectives/cit_crewobjectives_engineering.dm index 7cf523fd2c..44d961e9c3 100644 --- a/modular_citadel/code/modules/antagonists/crew_objectives/cit_crewobjectives_engineering.dm +++ b/modular_citadel/code/modules/antagonists/crew_objectives/cit_crewobjectives_engineering.dm @@ -29,6 +29,6 @@ /datum/objective/crew/poly/check_completion() for(var/mob/living/simple_animal/parrot/Poly/dumbbird in GLOB.mob_list) if(!(dumbbird.stat == DEAD) && dumbbird.ears) - if(istype(dumbbird.ears, /obj/item/device/radio/headset)) + if(istype(dumbbird.ears, /obj/item/radio/headset)) return TRUE return FALSE diff --git a/modular_citadel/code/modules/clothing/spacesuits/flightsuit.dm b/modular_citadel/code/modules/clothing/spacesuits/flightsuit.dm index 9abd12c6bb..44bb1f3473 100644 --- a/modular_citadel/code/modules/clothing/spacesuits/flightsuit.dm +++ b/modular_citadel/code/modules/clothing/spacesuits/flightsuit.dm @@ -1,5 +1,5 @@ -/obj/item/device/flightpack +/obj/item/flightpack armor = list("melee" = 5, "bullet" = 5, "laser" = 5, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 20, "fire" = 20, "acid" = 20) /obj/item/clothing/suit/space/hardsuit/flightsuit diff --git a/modular_citadel/code/modules/clothing/under/polychromic_clothes.dm b/modular_citadel/code/modules/clothing/under/polychromic_clothes.dm index 5f4c78f554..abf8793f79 100644 --- a/modular_citadel/code/modules/clothing/under/polychromic_clothes.dm +++ b/modular_citadel/code/modules/clothing/under/polychromic_clothes.dm @@ -115,4 +115,45 @@ item_state = "rainbow" primary_color = "#8CC6FF" //RGB in hexcode secondary_color = "#808080" - tertiary_color = "#FF3535" \ No newline at end of file + tertiary_color = "#FF3535" + +/obj/item/clothing/under/polychromic/femtank + name = "polychromic feminine tank top" + desc = "Great for showing off your chest in style. Not recommended for males." + icon_state = "polyfemtankpantsu" + item_color = "polyfemtankpantsu" + item_state = "rainbow" + hastertiary = FALSE + primary_color = "#808080" //RGB in hexcode + secondary_color = "#FF3535" + +/obj/item/clothing/under/polychromic/shortpants/pantsu + name = "polychromic panties" + desc = "Topless striped panties. Now with 120% more polychrome!" + icon_state = "polypantsu" + item_color = "polypantsu" + item_state = "rainbow" + hastertiary = FALSE + primary_color = "#FFFFFF" //RGB in hexcode + secondary_color = "#8CC6FF" + +/obj/item/clothing/under/polychromic/bottomless + name = "polychromic bottomless shirt" + desc = "Great for showing off your junk in dubious style." + icon_state = "polybottomless" + item_color = "polybottomless" + item_state = "rainbow" + hastertiary = FALSE + primary_color = "#808080" //RGB in hexcode + secondary_color = "#FF3535" + body_parts_covered = CHEST //Because there's no bottom included + +/obj/item/clothing/under/polychromic/shimatank + name = "polychromic tank top" + desc = "For those lazy summer days." + icon_state = "polyshimatank" + item_color = "polyshimatank" + item_state = "rainbow" + primary_color = "#808080" //RGB in hexcode + secondary_color = "#FFFFFF" + tertiary_color = "#8CC6FF" \ No newline at end of file diff --git a/modular_citadel/code/modules/clothing/under/trek_under.dm b/modular_citadel/code/modules/clothing/under/trek_under.dm index f3ee0ae22a..8d2e70e97e 100644 --- a/modular_citadel/code/modules/clothing/under/trek_under.dm +++ b/modular_citadel/code/modules/clothing/under/trek_under.dm @@ -99,9 +99,9 @@ body_parts_covered = CHEST|GROIN|ARMS permeability_coefficient = 0.50 allowed = list( - /obj/item/device/flashlight, /obj/item/device/analyzer, - /obj/item/device/radio, /obj/item/tank/internals/emergency_oxygen, - /obj/item/reagent_containers/hypospray, /obj/item/device/healthanalyzer,/obj/item/reagent_containers/syringe, + /obj/item/flashlight, /obj/item/analyzer, + /obj/item/radio, /obj/item/tank/internals/emergency_oxygen, + /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer,/obj/item/reagent_containers/syringe, /obj/item/reagent_containers/glass/bottle/vial,/obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill,/obj/item/storage/pill_bottle, /obj/item/restraints/handcuffs,/obj/item/hypospray ) @@ -146,20 +146,20 @@ body_parts_covered = CHEST|GROIN|ARMS allowed = list( /obj/item/tank/internals/emergency_oxygen, - /obj/item/device/flashlight, - /obj/item/device/analyzer, - /obj/item/device/radio, + /obj/item/flashlight, + /obj/item/analyzer, + /obj/item/radio, /obj/item/gun, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/reagent_containers/hypospray, /obj/item/hypospray, - /obj/item/device/healthanalyzer, + /obj/item/healthanalyzer, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/glass/bottle/vial, /obj/item/reagent_containers/glass/beaker, /obj/item/storage/pill_bottle, - /obj/item/device/taperecorder) + /obj/item/taperecorder) armor = list("melee" = 10, "bullet" = 5, "laser" = 5,"energy" = 5, "bomb" = 5, "bio" = 5, "rad" = 10, "fire" = 10, "acid" = 0) var/unbuttoned = 0 @@ -212,11 +212,11 @@ body_parts_covered = CHEST|GROIN|ARMS allowed = list( /obj/item/tank/internals/emergency_oxygen, - /obj/item/device/flashlight, + /obj/item/flashlight, /obj/item/gun, /obj/item/melee/baton, /obj/item/restraints/handcuffs, - /obj/item/device/taperecorder) + /obj/item/taperecorder) armor = list("melee" = 45, "bullet" = 25, "laser" = 25,"energy" = 25, "bomb" = 25, "bio" = 25, "rad" = 50, "fire" = 50, "acid" = 50) //Variants diff --git a/modular_citadel/code/modules/crafting/recipes.dm b/modular_citadel/code/modules/crafting/recipes.dm index 037dffeee4..6c6001b040 100644 --- a/modular_citadel/code/modules/crafting/recipes.dm +++ b/modular_citadel/code/modules/crafting/recipes.dm @@ -6,6 +6,6 @@ /datum/crafting_recipe/potatos name = "Potat-OS" - reqs = list(/obj/item/stack/cable_coil = 1, /obj/item/stack/rods = 1, /obj/item/reagent_containers/food/snacks/grown/potato = 1, /obj/item/device/aicard = 1 ) - result = /obj/item/device/aicard/potato + reqs = list(/obj/item/stack/cable_coil = 1, /obj/item/stack/rods = 1, /obj/item/reagent_containers/food/snacks/grown/potato = 1, /obj/item/aicard = 1 ) + result = /obj/item/aicard/potato category = CAT_ROBOT \ No newline at end of file diff --git a/modular_citadel/code/modules/custom_loadout/custom_items.dm b/modular_citadel/code/modules/custom_loadout/custom_items.dm index c3421976fb..481a105749 100644 --- a/modular_citadel/code/modules/custom_loadout/custom_items.dm +++ b/modular_citadel/code/modules/custom_loadout/custom_items.dm @@ -316,13 +316,17 @@ icon_override = 'icons/mob/custom_w.dmi' icon_state = "darksheath" item_state = "darksheath" - storage_slots = 1 - rustle_jimmies = FALSE w_class = WEIGHT_CLASS_BULKY - max_w_class = WEIGHT_CLASS_BULKY - can_hold = list( + +/obj/item/storage/belt/sabre/darksabre/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 1 + STR.rustle_sound = FALSE + STR.max_w_class = WEIGHT_CLASS_BULKY + STR.can_hold = typecacheof(list( /obj/item/toy/sword/darksabre - ) + )) /obj/item/clothing/neck/cloak/green name = "Generic Green Cloak" diff --git a/modular_citadel/code/modules/custom_loadout/load_to_mob.dm b/modular_citadel/code/modules/custom_loadout/load_to_mob.dm index 64eec2ba06..c9aab1d906 100644 --- a/modular_citadel/code/modules/custom_loadout/load_to_mob.dm +++ b/modular_citadel/code/modules/custom_loadout/load_to_mob.dm @@ -54,7 +54,7 @@ var/obj/item/loaded = loaded_atom var/obj/item/storage/S = H.get_item_by_slot(slot_back) if(istype(S)) - S.handle_item_insertion(loaded, TRUE, H) //Force it into their backpack + S.SendSignal(COMSIG_TRY_STORAGE_INSERT,loaded, TRUE, H) //Force it into their backpack continue if(!H.put_in_hands(loaded)) //They don't have one/somehow that failed, put it in their hands loaded.forceMove(T) //Guess we're just dumping it on the floor! diff --git a/modular_citadel/code/modules/jobs/job_types/cargo_service.dm b/modular_citadel/code/modules/jobs/job_types/cargo_service.dm index 8db162cf4e..965b554f3c 100644 --- a/modular_citadel/code/modules/jobs/job_types/cargo_service.dm +++ b/modular_citadel/code/modules/jobs/job_types/cargo_service.dm @@ -15,8 +15,8 @@ /datum/outfit/job/quartermaster id = /obj/item/card/id/silver - ears = /obj/item/device/radio/headset/heads/qm - backpack_contents = list(/obj/item/melee/classic_baton/telescopic=1, /obj/item/device/modular_computer/tablet/preset/advanced = 1) + ears = /obj/item/radio/headset/heads/qm + backpack_contents = list(/obj/item/melee/classic_baton/telescopic=1, /obj/item/modular_computer/tablet/preset/advanced = 1) /datum/job/cargo_tech department_head = list("Quartermaster") diff --git a/modular_citadel/code/modules/keybindings/bindings_robot.dm b/modular_citadel/code/modules/keybindings/bindings_robot.dm new file mode 100644 index 0000000000..59151f2b40 --- /dev/null +++ b/modular_citadel/code/modules/keybindings/bindings_robot.dm @@ -0,0 +1,13 @@ +/mob/living/silicon/robot/key_down(_key, client/user) + switch(_key) + if("Shift") + togglesprint() + return + return ..() + +/mob/living/silicon/robot/key_up(_key, client/user) + switch(_key) + if("Shift") + togglesprint() + return + return ..() diff --git a/modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm b/modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm index 4271862c7a..e6818629e0 100644 --- a/modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm +++ b/modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm @@ -39,6 +39,18 @@ color_src = 0 icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi' +/datum/sprite_accessory/ears/axolotl + name = "Axolotl" + icon_state = "axolotl" + +/datum/sprite_accessory/tails/axolotl + name = "Axolotl" + icon_state = "axolotl" + +/datum/sprite_accessory/tails_animated/axolotl + name = "Axolotl" + icon_state = "axolotl" + /datum/sprite_accessory/ears/human/bear name = "Bear" icon_state = "bear" @@ -80,6 +92,11 @@ icon_state = "cow" icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi' +/datum/sprite_accessory/ears/human/curled + name = "Curled Horn" + icon_state = "curled" + icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi' + /datum/sprite_accessory/tails/human/eevee name = "Eevee" icon_state = "eevee" @@ -97,6 +114,11 @@ extra = TRUE icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi' +/datum/sprite_accessory/ears/human/elephant + name = "Elephant" + icon_state = "elephant" + icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi' + //datum/sprite_accessory/ears/elf // name = "Elf" // icon_state = "elf" @@ -119,6 +141,26 @@ icon_state = "fennec" icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi' +/datum/sprite_accessory/ears/fish + name = "Fish" + icon_state = "fish" + icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi' + color_src = MUTCOLORS3 + +/datum/sprite_accessory/tails/human/fish + name = "Fish" + icon_state = "fish" + icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi' + extra = TRUE + extra_color_src = MUTCOLORS3 + +/datum/sprite_accessory/tails_animated/human/fish + name = "Fish" + icon_state = "fish" + icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi' + extra = TRUE + extra_color_src = MUTCOLORS3 + /datum/sprite_accessory/ears/fox name = "Fox" icon_state = "fox" @@ -161,6 +203,11 @@ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi' extra = TRUE +/datum/sprite_accessory/ears/human/jellyfish + name = "Jellyfish" + icon_state = "jellyfish" + color_src = HAIR + /datum/sprite_accessory/tails/human/kitsune name = "Kitsune" icon_state = "kitsune" @@ -214,6 +261,16 @@ icon_state = "otie" icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi' +/datum/sprite_accessory/tails/orca + name = "Orca" + icon_state = "orca" + extra = TRUE + +/datum/sprite_accessory/tails_animated/orca + name = "Orca" + icon_state = "orca" + extra = TRUE + /datum/sprite_accessory/ears/human/rabbit name = "Rabbit" icon_state = "rabbit" @@ -342,6 +399,19 @@ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi' color_src = MUTCOLORS3 +/datum/sprite_accessory/snouts/bigbeak + name = "Big Beak" + icon_state = "bigbeak" + icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi' + color_src = MUTCOLORS3 + +/datum/sprite_accessory/snouts/elephant + name = "Elephant" + icon_state = "elephant" + icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi' + extra = TRUE + extra_color_src = MUTCOLORS3 + /datum/sprite_accessory/snouts/lcanid name = "Fox, Long" icon_state = "lcanid" @@ -360,6 +430,13 @@ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi' extra = TRUE +/datum/sprite_accessory/snouts/rhino + name = "Horn" + icon_state = "rhino" + icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi' + extra = TRUE + extra = MUTCOLORS3 + /datum/sprite_accessory/snouts/husky name = "Husky" icon_state = "husky" @@ -378,6 +455,18 @@ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi' color_src = MUTCOLORS2 +/datum/sprite_accessory/snouts/toucan + name = "Toucan" + icon_state = "toucan" + icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi' + color_src = MUTCOLORS3 + +/datum/sprite_accessory/snouts/tusk + name = "Tusk" + icon_state = "tusk" + icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi' + color_src = MUTCOLORS3 + /****************************************** ************ Actual Species *************** *******************************************/ @@ -392,6 +481,18 @@ icon_state = "ailurus" extra = TRUE +/datum/sprite_accessory/mam_ears/axolotl + name = "Axolotl" + icon_state = "axolotl" + +/datum/sprite_accessory/mam_tails/axolotl + name = "Axolotl" + icon_state = "axolotl" + +/datum/sprite_accessory/mam_tails_animated/axolotl + name = "Axolotl" + icon_state = "axolotl" + /datum/sprite_accessory/mam_ears/bear name = "Bear" icon_state = "bear" @@ -430,6 +531,10 @@ name = "Cow" icon_state = "cow" +/datum/sprite_accessory/mam_ears/curled + name = "Curled Horn" + icon_state = "curled" + /datum/sprite_accessory/mam_ears/deer name = "Deer" icon_state = "deer" @@ -448,6 +553,10 @@ icon_state = "eevee" extra = TRUE +/datum/sprite_accessory/mam_ears/elephant + name = "Elephant" + icon_state = "elephant" + /datum/sprite_accessory/mam_ears/fennec name = "Fennec" icon_state = "fennec" @@ -461,6 +570,26 @@ name = "Fennec" icon_state = "fennec" +//datum/sprite_accessory/ears/fish + name = "Fish" + icon_state = "fish" + icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi' + color_src = MUTCOLORS3 + +/datum/sprite_accessory/tails/human/fish + name = "Fish" + icon_state = "fish" + icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi' + extra = TRUE + extra_color_src = MUTCOLORS3 + +/datum/sprite_accessory/tails_animated/human/fish + name = "Fish" + icon_state = "fish" + icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi' + extra = TRUE + extra_color_src = MUTCOLORS3 + /datum/sprite_accessory/mam_ears/fox name = "Fox" icon_state = "fox" @@ -523,6 +652,11 @@ name = "kangaroo" icon_state = "kangaroo" +/datum/sprite_accessory/mam_ears/kangaroo + name = "Jellyfish" + icon_state = "jellyfish" + color_src = HAIR + /datum/sprite_accessory/mam_tails/kitsune name = "Kitsune" icon_state = "kitsune" @@ -591,6 +725,16 @@ name = "Otusian" icon_state = "otie" +/datum/sprite_accessory/mam_tails/orca + name = "Orca" + icon_state = "orca" + extra = TRUE + +/datum/sprite_accessory/mam_tails_animated/orca + name = "Orca" + icon_state = "orca" + extra = TRUE + /datum/sprite_accessory/mam_ears/rabbit name = "Rabbit" icon_state = "rabbit" @@ -767,6 +911,11 @@ icon_state = "otie" gender_specific = 1 +/datum/sprite_accessory/mam_body_markings/orca + name = "Orca" + icon_state = "orca" + extra = TRUE + /datum/sprite_accessory/mam_body_markings/shark name = "Shark" icon_state = "shark" diff --git a/modular_citadel/code/modules/mob/living/carbon/carbon.dm b/modular_citadel/code/modules/mob/living/carbon/carbon.dm index 51bdb16cd4..a05d7ecf87 100644 --- a/modular_citadel/code/modules/mob/living/carbon/carbon.dm +++ b/modular_citadel/code/modules/mob/living/carbon/carbon.dm @@ -1,5 +1,8 @@ /mob/living/carbon var/combatmode = FALSE //literally lifeweb + var/lastmousedir + var/wrongdirmovedelay + var/lastdirchange /mob/living/carbon/CanPass(atom/movable/mover, turf/target) . = ..() @@ -25,3 +28,29 @@ for(var/obj/screen/combattoggle/selector in hud_used.static_inventory) selector.rebasetointerbay(src) return TRUE + +/mob/living/carbon/Move(atom/newloc, direct = 0) + var/currentdirection = dir + . = ..() + wrongdirmovedelay = FALSE + if(combatmode && client && lastmousedir) + if(lastmousedir != dir) + wrongdirmovedelay = TRUE + setDir(lastmousedir, ismousemovement = TRUE) + if(currentdirection != dir) + lastdirchange = world.time + + +/mob/living/carbon/onMouseMove(object, location, control, params) + if(!combatmode) + return + mouse_face_atom(object) + lastmousedir = dir + +/mob/living/carbon/setDir(newdir, ismousemovement = FALSE) + if(!combatmode || ismousemovement) + if(dir != newdir) + lastdirchange = world.time + . = ..() + else + return diff --git a/modular_citadel/code/modules/mob/living/carbon/human/human_movement.dm b/modular_citadel/code/modules/mob/living/carbon/human/human_movement.dm index 8463abe66d..0e59e2cd9f 100644 --- a/modular_citadel/code/modules/mob/living/carbon/human/human_movement.dm +++ b/modular_citadel/code/modules/mob/living/carbon/human/human_movement.dm @@ -4,7 +4,7 @@ /mob/living/carbon/human/Move(NewLoc, direct) var/oldpseudoheight = pseudo_z_axis . = ..() - if(. && sprinting && !resting && m_intent == MOVE_INTENT_RUN) + if(. && sprinting && !(movement_type & FLYING) && canmove && !resting && m_intent == MOVE_INTENT_RUN) adjustStaminaLossBuffered(0.3) if((oldpseudoheight - pseudo_z_axis) >= 8) to_chat(src, "You trip off of the elevated surface!") @@ -16,6 +16,8 @@ . = 0 if(!resting && m_intent == MOVE_INTENT_RUN && !sprinting) . += 1 + if(wrongdirmovedelay) + . += 1 . += ..() /mob/living/carbon/human/proc/togglesprint() // If you call this proc outside of hotkeys or clicking the HUD button, I'll be disappointed in you. diff --git a/modular_citadel/code/modules/mob/living/carbon/human/life.dm b/modular_citadel/code/modules/mob/living/carbon/human/life.dm index a3730a312f..e728d70c97 100644 --- a/modular_citadel/code/modules/mob/living/carbon/human/life.dm +++ b/modular_citadel/code/modules/mob/living/carbon/human/life.dm @@ -7,7 +7,7 @@ /mob/living/carbon/human/calculate_affecting_pressure(pressure) if(ismob(loc)) return ONE_ATMOSPHERE - if(istype(loc, /obj/item/device/dogborg/sleeper)) + if(istype(loc, /obj/item/dogborg/sleeper)) return ONE_ATMOSPHERE . = ..() diff --git a/modular_citadel/code/modules/mob/living/carbon/human/species_types/furrypeople.dm b/modular_citadel/code/modules/mob/living/carbon/human/species_types/furrypeople.dm index 68780d0890..ebf114c2de 100644 --- a/modular_citadel/code/modules/mob/living/carbon/human/species_types/furrypeople.dm +++ b/modular_citadel/code/modules/mob/living/carbon/human/species_types/furrypeople.dm @@ -2,7 +2,8 @@ name = "Mammal" id = "mammal" default_color = "4B4B4B" - species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR,SPECIES_ORGANIC) + species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR) + inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) mutant_bodyparts = list("mam_tail", "mam_ears", "mam_body_markings", "snout", "taur") default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "body_markings" = "husky", "mam_tail" = "husky", "mam_ears" = "husky", "mam_body_markings" = "husky", "taur" = "None") attack_verb = "claw" @@ -32,7 +33,8 @@ id = "avian" say_mod = "chirps" default_color = "BCAC9B" - species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR,SPECIES_ORGANIC) + species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR) + inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) mutant_bodyparts = list("snout", "wings", "taur", "mam_tail", "mam_body_markings", "taur") default_features = list("snout" = "Sharp", "wings" = "None", "taur" = "None", "mam_body_markings" = "Hawk") attack_verb = "peck" @@ -61,7 +63,8 @@ name = "Aquatic" id = "aquatic" default_color = "BCAC9B" - species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR,SPECIES_ORGANIC) + species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR) + inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) mutant_bodyparts = list("mam_tail", "mam_body_markings", "mam_ears", "taur") default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF","mam_tail" = "shark", "mam_body_markings" = "None", "mam_ears" = "None") attack_verb = "bite" @@ -91,7 +94,8 @@ name = "Insect" id = "insect" default_color = "BCAC9B" - species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR,SPECIES_ORGANIC) + species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR) + inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID, MOB_BUG) mutant_bodyparts = list("mam_body_markings", "mam_ears", "mam_tail", "taur", "moth_wings") default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_body_markings" = "moth", "mam_tail" = "None", "mam_ears" = "None", "moth_wings" = "None") attack_verb = "flutter" //wat? @@ -122,7 +126,8 @@ id = "xeno" say_mod = "hisses" default_color = "00FF00" - species_traits = list(MUTCOLORS,EYECOLOR,LIPS,SPECIES_ORGANIC) + species_traits = list(MUTCOLORS,EYECOLOR,LIPS) + inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) mutant_bodyparts = list("xenotail", "xenohead", "xenodorsal", "legs", "taur","mam_body_markings") default_features = list("xenotail"="xeno","xenohead"="standard","xenodorsal"="standard","mcolor" = "0F0","mcolor2" = "0F0","mcolor3" = "0F0","taur" = "None","mam_body_markings" = "xeno") attack_verb = "slash" @@ -146,60 +151,6 @@ //EXOTIC// //These races will likely include lots of downsides and upsides. Keep them relatively balanced.// -/* -/datum/species/xeno - name = "Xenomorph" - id = "xeno" - say_mod = "hisses" - eyes = "none" - species_traits = list() - mutant_organs = list(/obj/item/organ/tongue/alien) - mutant_bodyparts = list("xenohead", - "xenodorsal", - "xenotail") - default_features = list("xenohead"="Hunter", - "xenodorsal"="Dorsal Tubes", - "xenotail"="Xenomorph Tail") - attack_verb = "slash" - attack_sound = 'sound/weapons/slash.ogg' - miss_sound = 'sound/weapons/slashmiss.ogg' - burnmod = 1.75 - heatmod = 1.75 - darksight = 4 //Just above slimes - exotic_blood = "xblood" - damage_overlay_type = "xeno" - no_equip = list(slot_glasses) //MY EYES, THEY'RE GONE - meat = /obj/item/reagent_containers/food/snacks/meat/slab/xeno - skinned_type = /obj/item/stack/sheet/animalhide/xeno -// safe_toxins_max = 32 //Too much of anything is bad. -// whitelisted = 1 -// whitelist = list("talkingcactus") //testing whitelisting - -/datum/species/xeno/on_species_gain(mob/living/carbon/C, datum/species/old_species) - ..() - var/obj/effect/decal/cleanable/xenoblood/xgibs/XG - if(istype(C.gib_type, XG)) - return - else - C.gib_type = XG - -/datum/species/xeno/on_species_loss(mob/living/carbon/C) - ..() - var/obj/effect/decal/cleanable/xenoblood/xgibs/XG - var/obj/effect/decal/cleanable/blood/gibs/HG - if(istype(C.gib_type, XG)) - C.gib_type = HG - else - return - -/datum/reagent/toxin/acid/xenoblood - name = "acid blood" - id = "xblood" - description = "A highly corrosive substance, it is capable of burning through most natural or man-made materials in short order." - color = "#66CC00" - toxpwr = 0 - acidpwr = 12 */ - //misc /mob/living/carbon/human/dummy diff --git a/modular_citadel/code/modules/mob/living/carbon/human/species_types/ipc.dm b/modular_citadel/code/modules/mob/living/carbon/human/species_types/ipc.dm index df9d5b4ec6..08d9d73f00 100644 --- a/modular_citadel/code/modules/mob/living/carbon/human/species_types/ipc.dm +++ b/modular_citadel/code/modules/mob/living/carbon/human/species_types/ipc.dm @@ -5,7 +5,8 @@ default_color = "00FF00" blacklisted = 0 sexes = 0 - species_traits = list(MUTCOLORS,NOEYES) + species_traits = list(MUTCOLORS,NOEYES,NOTRANSSTING) + inherent_biotypes = list(MOB_ROBOTIC, MOB_HUMANOID) mutant_bodyparts = list("ipc_screen", "ipc_antenna") default_features = list("ipc_screen" = "Blank", "ipc_antenna" = "None") meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/ipc diff --git a/modular_citadel/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/modular_citadel/code/modules/mob/living/carbon/human/species_types/jellypeople.dm index a13b4ae852..c91be1c7ac 100644 --- a/modular_citadel/code/modules/mob/living/carbon/human/species_types/jellypeople.dm +++ b/modular_citadel/code/modules/mob/living/carbon/human/species_types/jellypeople.dm @@ -7,7 +7,7 @@ name = "Slimeperson" id = "slimeperson" default_color = "00FFFF" - species_traits = list(SPECIES_ORGANIC,MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,NOBLOOD) + species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,NOBLOOD) inherent_traits = list(TRAIT_TOXINLOVER) mutant_bodyparts = list("mam_tail", "mam_ears", "taur") default_features = list("mcolor" = "FFF", "mam_tail" = "None", "mam_ears" = "None") @@ -94,23 +94,47 @@ organ.forceMove(get_turf(H)) qdel(organ) H.update_body() + else if (select_alteration == "Ears") + var/list/snowflake_ears_list = list("Normal" = null) + for(var/path in GLOB.mam_ears_list) + var/datum/sprite_accessory/mam_ears/instance = GLOB.mam_ears_list[path] + if(istype(instance, /datum/sprite_accessory)) + var/datum/sprite_accessory/S = instance + if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(H.client.ckey))) + snowflake_ears_list[S.name] = path var/new_ears - new_ears = input(owner, "Choose your character's ears:", "Ear Alteration") as null|anything in GLOB.mam_ears_list + new_ears = input(owner, "Choose your character's ears:", "Ear Alteration") as null|anything in snowflake_ears_list if(new_ears) H.dna.features["mam_ears"] = new_ears H.update_body() + else if (select_alteration == "Tail") + var/list/snowflake_tails_list = list("Normal" = null) + for(var/path in GLOB.mam_tails_list) + var/datum/sprite_accessory/mam_tails/instance = GLOB.mam_tails_list[path] + if(istype(instance, /datum/sprite_accessory)) + var/datum/sprite_accessory/S = instance + if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(H.client.ckey))) + snowflake_tails_list[S.name] = path var/new_tail - new_tail = input(owner, "Choose your character's tail:", "Tail Alteration") as null|anything in GLOB.mam_tails_list + new_tail = input(owner, "Choose your character's Tail(s):", "Tail Alteration") as null|anything in snowflake_tails_list if(new_tail) - H.dna.features["mam_tail"] = new_tail + H.dna.features["mam_tails"] = new_tail if(new_tail != "None") H.dna.features["taur"] = "None" H.update_body() + else if (select_alteration == "Taur body") + var/list/snowflake_taur_list = list("Normal" = null) + for(var/path in GLOB.taur_list) + var/datum/sprite_accessory/taur/instance = GLOB.taur_list[path] + if(istype(instance, /datum/sprite_accessory)) + var/datum/sprite_accessory/S = instance + if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(H.client.ckey))) + snowflake_taur_list[S.name] = path var/new_taur - new_taur = input(owner, "Choose your character's tauric body:", "Taur Body Alteration") as null|anything in GLOB.taur_list + new_taur = input(owner, "Choose your character's tauric body:", "Tauric Alteration") as null|anything in snowflake_taur_list if(new_taur) H.dna.features["taur"] = new_taur if(new_taur != "None") @@ -118,4 +142,4 @@ H.dna.features["xenotail"] = "None" H.update_body() else - return \ No newline at end of file + return diff --git a/modular_citadel/code/modules/mob/living/living.dm b/modular_citadel/code/modules/mob/living/living.dm index b41468760d..c70ed640b4 100644 --- a/modular_citadel/code/modules/mob/living/living.dm +++ b/modular_citadel/code/modules/mob/living/living.dm @@ -3,7 +3,6 @@ var/bufferedstam = 0 var/stambuffer = 20 var/stambufferregentime - var/aimingdownsights = FALSE var/attemptingstandup = FALSE var/intentionalresting = FALSE var/attemptingcrawl = FALSE @@ -39,9 +38,6 @@ CitFootstep(newloc) pseudo_z_axis = newloc.get_fake_z() pixel_z = pseudo_z_axis - if(aimingdownsights) - aimingdownsights = FALSE - to_chat(src, "You are no longer aiming down your weapon's sights.") /mob/living/proc/lay_down() set name = "Rest" diff --git a/modular_citadel/code/modules/mob/living/silicon/robot/dogborg archive.dm b/modular_citadel/code/modules/mob/living/silicon/robot/dogborg archive.dm index a32c436988..8b5c0b0af0 100644 --- a/modular_citadel/code/modules/mob/living/silicon/robot/dogborg archive.dm +++ b/modular_citadel/code/modules/mob/living/silicon/robot/dogborg archive.dm @@ -9,10 +9,10 @@ modules += new /obj/item/wrench(src) modules += new /obj/item/crowbar(src) modules += new /obj/item/wirecutters(src) - modules += new /obj/item/device/multitool(src) - modules += new /obj/item/device/t_scanner(src) - modules += new /obj/item/device/analyzer(src) - modules += new /obj/item/device/assembly/signaler + modules += new /obj/item/multitool(src) + modules += new /obj/item/t_scanner(src) + modules += new /obj/item/analyzer(src) + modules += new /obj/item/assembly/signaler modules += new /obj/item/soap/nanotrasen(src) fix_modules() @@ -26,10 +26,10 @@ modules += new /obj/item/dogborg/pounce(src) modules += new /obj/item/clothing/mask/gas/sechailer/cyborg(src) modules += new /obj/item/soap/tongue(src) - modules += new /obj/item/device/analyzer/nose(src) + modules += new /obj/item/analyzer/nose(src) modules += new /obj/item/storage/bag/borgdelivery(src) - //modules += new /obj/item/device/assembly/signaler(src) - //modules += new /obj/item/device/detective_scanner(src) + //modules += new /obj/item/assembly/signaler(src) + //modules += new /obj/item/detective_scanner(src) modules += new /obj/item/gun/energy/disabler/cyborg(src) emag = new /obj/item/gun/energy/laser/cyborg(src) fix_modules() @@ -54,8 +54,8 @@ modules += new /obj/item/dogborg/jaws/small(src) modules += new /obj/item/storage/bag/borgdelivery(src) modules += new /obj/item/soap/tongue(src) - modules += new /obj/item/device/healthanalyzer(src) - modules += new /obj/item/device/analyzer/nose(src) + modules += new /obj/item/healthanalyzer(src) + modules += new /obj/item/analyzer/nose(src) emag = new /obj/item/dogborg/pounce(src) fix_modules() @@ -66,11 +66,11 @@ ..() modules += new /obj/item/dogborg/jaws/small(src) modules += new /obj/item/storage/bag/borgdelivery(src) - modules += new /obj/item/device/analyzer/nose(src) + modules += new /obj/item/analyzer/nose(src) modules += new /obj/item/soap/tongue(src) - modules += new /obj/item/device/healthanalyzer(src) + modules += new /obj/item/healthanalyzer(src) modules += new /obj/item/dogborg/sleeper(src) modules += new /obj/item/twohanded/shockpaddles/hound(src) - modules += new /obj/item/device/sensor_device(src) + modules += new /obj/item/sensor_device(src) emag = new /obj/item/dogborg/pounce(src) fix_modules() \ No newline at end of file diff --git a/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm b/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm index 402ba97346..be1a25656b 100644 --- a/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm +++ b/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm @@ -82,7 +82,7 @@ SLEEPER CODE IS IN game/objects/items/devices/dogborg_sleeper.dm ! //Boop -/obj/item/device/analyzer/nose +/obj/item/analyzer/nose name = "boop module" icon = 'icons/mob/dogborg.dmi' icon_state = "nose" @@ -93,7 +93,7 @@ SLEEPER CODE IS IN game/objects/items/devices/dogborg_sleeper.dm ! attack_verb = list("nuzzled", "nosed", "booped") w_class = 1 -/obj/item/device/analyzer/nose/attack_self(mob/user) +/obj/item/analyzer/nose/attack_self(mob/user) user.visible_message("[user] sniffs around the air.", "You sniff the air for gas traces.") var/turf/location = user.loc @@ -148,7 +148,7 @@ SLEEPER CODE IS IN game/objects/items/devices/dogborg_sleeper.dm ! to_chat(user, "[env_gases[id][GAS_META][META_GAS_NAME]]: [round(gas_concentration*100, 0.01)] %") to_chat(user, "Temperature: [round(environment.temperature-T0C)] °C") -/obj/item/device/analyzer/nose/AltClick(mob/user) //Barometer output for measuring when the next storm happens +/obj/item/analyzer/nose/AltClick(mob/user) //Barometer output for measuring when the next storm happens . = ..() //Delivery @@ -158,16 +158,15 @@ SLEEPER CODE IS IN game/objects/items/devices/dogborg_sleeper.dm ! desc = "Fetch the thing!" icon = 'icons/mob/dogborg.dmi' icon_state = "dbag" - //Can hold one big item at a time. Drops contents on unequip.(see inventory.dm) - w_class = 5 - max_w_class = 2 - max_combined_w_class = 2 - storage_slots = 1 - collection_mode = 0 - can_hold = list() // any - cant_hold = list(/obj/item/disk/nuclear) - + w_class = WEIGHT_CLASS_BULKY +/obj/item/storage/bag/borgdelivery/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_w_class = WEIGHT_CLASS_BULKY + STR.max_combined_w_class = 5 + STR.max_items = 1 + STR.cant_hold = typecacheof(list(/obj/item/disk/nuclear)) //Tongue stuff /obj/item/soap/tongue diff --git a/modular_citadel/code/modules/mob/living/silicon/robot/robot.dm b/modular_citadel/code/modules/mob/living/silicon/robot/robot.dm index da77421a2f..66147a41e7 100644 --- a/modular_citadel/code/modules/mob/living/silicon/robot/robot.dm +++ b/modular_citadel/code/modules/mob/living/silicon/robot/robot.dm @@ -16,4 +16,8 @@ mob/living/silicon icon_state = "[module.cyborg_base_icon]-rest" else icon_state = "[module.cyborg_base_icon]" - update_icons() \ No newline at end of file + update_icons() + +/mob/living/silicon/robot/adjustStaminaLossBuffered(amount, updating_stamina = 1) + if(istype(cell)) + cell.charge -= amount*5 diff --git a/modular_citadel/code/modules/mob/living/silicon/robot/robot_modules.dm b/modular_citadel/code/modules/mob/living/silicon/robot/robot_modules.dm index 5766d3ffcb..035fd64a69 100644 --- a/modular_citadel/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/modular_citadel/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -36,8 +36,8 @@ /obj/item/dogborg/pounce, /obj/item/clothing/mask/gas/sechailer/cyborg, /obj/item/soap/tongue, - /obj/item/device/analyzer/nose, - /obj/item/device/dogborg/sleeper/K9, + /obj/item/analyzer/nose, + /obj/item/dogborg/sleeper/K9, /obj/item/gun/energy/disabler/cyborg, /obj/item/pinpointer/crew) emag_modules = list(/obj/item/gun/energy/laser/cyborg) @@ -63,14 +63,14 @@ basic_modules = list( /obj/item/dogborg/jaws/small, /obj/item/storage/bag/borgdelivery, - /obj/item/device/analyzer/nose, + /obj/item/analyzer/nose, /obj/item/soap/tongue, - /obj/item/device/healthanalyzer, - /obj/item/device/dogborg/sleeper/medihound, + /obj/item/healthanalyzer, + /obj/item/dogborg/sleeper/medihound, /obj/item/reagent_containers/borghypo, /obj/item/twohanded/shockpaddles/cyborg/hound, /obj/item/stack/medical/gauze/cyborg, - /obj/item/device/sensor_device) + /obj/item/sensor_device) emag_modules = list(/obj/item/dogborg/pounce) ratvar_modules = list(/obj/item/clockwork/slab/cyborg/medical, /obj/item/clockwork/weapon/ratvarian_spear) @@ -88,10 +88,10 @@ name = "Janitor" basic_modules = list( /obj/item/dogborg/jaws/small, - /obj/item/device/analyzer/nose, + /obj/item/analyzer/nose, /obj/item/soap/tongue/scrubpup, - /obj/item/device/lightreplacer/cyborg, - /obj/item/device/dogborg/sleeper/compactor) + /obj/item/lightreplacer/cyborg, + /obj/item/dogborg/sleeper/compactor) emag_modules = list(/obj/item/dogborg/pounce) ratvar_modules = list( /obj/item/clockwork/slab/cyborg/janitor, @@ -108,7 +108,7 @@ /obj/item/robot_module/scrubpup/respawn_consumable(mob/living/silicon/robot/R, coeff = 1) ..() - var/obj/item/device/lightreplacer/LR = locate(/obj/item/device/lightreplacer) in basic_modules + var/obj/item/lightreplacer/LR = locate(/obj/item/lightreplacer) in basic_modules if(LR) for(var/i in 1 to coeff) LR.Charge(R) @@ -122,9 +122,9 @@ basic_modules = list( /obj/item/dogborg/jaws/small, /obj/item/storage/bag/borgdelivery, - /obj/item/device/analyzer/nose, + /obj/item/analyzer/nose, /obj/item/soap/tongue, - /obj/item/device/healthanalyzer, + /obj/item/healthanalyzer, /obj/item/borg/cyborghug) emag_modules = list(/obj/item/dogborg/pounce) ratvar_modules = list( @@ -142,17 +142,17 @@ name = "Ore Pup" basic_modules = list( /obj/item/storage/bag/ore/cyborg, - /obj/item/device/analyzer/nose, + /obj/item/analyzer/nose, /obj/item/storage/bag/borgdelivery, - /obj/item/device/dogborg/sleeper/ore, + /obj/item/dogborg/sleeper/ore, /obj/item/pickaxe/drill/cyborg, /obj/item/shovel, /obj/item/crowbar/cyborg, /obj/item/weldingtool/mini, /obj/item/extinguisher/mini, - /obj/item/device/t_scanner/adv_mining_scanner, + /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator/cyborg, - /obj/item/device/gps/cyborg) + /obj/item/gps/cyborg) emag_modules = list(/obj/item/dogborg/pounce) ratvar_modules = list( /obj/item/clockwork/slab/cyborg/miner, diff --git a/modular_citadel/code/modules/mob/living/silicon/robot/robot_movement.dm b/modular_citadel/code/modules/mob/living/silicon/robot/robot_movement.dm new file mode 100644 index 0000000000..37dba85c40 --- /dev/null +++ b/modular_citadel/code/modules/mob/living/silicon/robot/robot_movement.dm @@ -0,0 +1,25 @@ +/mob/living/silicon/robot + var/sprinting = FALSE + +/mob/living/silicon/robot/Move(NewLoc, direct) + . = ..() + if(. && sprinting && !(movement_type & FLYING) && canmove && !resting) + if(istype(cell)) + cell.charge -= 25 + +/mob/living/silicon/robot/movement_delay() + . = ..() + if(!resting && !sprinting) + . += 1 + +/mob/living/silicon/robot/proc/togglesprint() //Basically a copypaste of the proc from /mob/living/carbon/human + sprinting = !sprinting + if(!resting && canmove) + if(sprinting) + playsound_local(src, 'modular_citadel/sound/misc/sprintactivate.ogg', 50, FALSE, pressure_affected = FALSE) + else + playsound_local(src, 'modular_citadel/sound/misc/sprintdeactivate.ogg', 50, FALSE, pressure_affected = FALSE) + if(hud_used && hud_used.static_inventory) + for(var/obj/screen/sprintbutton/selector in hud_used.static_inventory) + selector.insert_witty_toggle_joke_here(src) + return TRUE diff --git a/modular_citadel/code/modules/projectiles/gun.dm b/modular_citadel/code/modules/projectiles/gun.dm index 27411c7e0a..ea8af7c74c 100644 --- a/modular_citadel/code/modules/projectiles/gun.dm +++ b/modular_citadel/code/modules/projectiles/gun.dm @@ -1,22 +1,3 @@ -/obj/item/gun/pre_altattackby(atom/A, mob/living/user, params) - altafterattack(A, user, TRUE, params) - return TRUE - -/obj/item/gun/altafterattack(atom/target, mob/living/carbon/user, proximity_flag, click_parameters) - if(istype(user)) - if(!user.aimingdownsights) - user.visible_message("[user] brings [src]'s sights up to [user.p_their()] eyes, aiming directly at [target].", "You bring [src]'s sights up to your eyes, aiming directly at [target].") - user.adjustStaminaLossBuffered(1) - else - user.visible_message("[user] lowers [src].", "You lower [src].") - user.aimingdownsights = !user.aimingdownsights - return TRUE - -/obj/item/gun/dropped(mob/living/user) - . = ..() - if(istype(user)) - user.aimingdownsights = FALSE - /obj/item/gun/proc/getstamcost(mob/living/carbon/user) if(user && user.has_gravity()) return recoil @@ -30,7 +11,11 @@ return ..() /obj/item/gun/proc/getinaccuracy(mob/living/user) - if(!iscarbon(user) || user.aimingdownsights) + if(!iscarbon(user)) return 0 else - return weapon_weight * 25 + var/mob/living/carbon/holdingdude = user + if(istype(holdingdude) && holdingdude.combatmode) + return max((holdingdude.lastdirchange + weapon_weight * 25) - world.time,0) + else + return weapon_weight * 25 diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/flechette.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/flechette.dm index 9ab141e56e..f70ec76f04 100644 --- a/modular_citadel/code/modules/projectiles/guns/ballistic/flechette.dm +++ b/modular_citadel/code/modules/projectiles/guns/ballistic/flechette.dm @@ -63,7 +63,7 @@ item_state = "gun" w_class = WEIGHT_CLASS_NORMAL slot_flags = 0 - /obj/item/device/firing_pin/implant/pindicate + /obj/item/firing_pin/implant/pindicate mag_type = /obj/item/ammo_box/magazine/flechette/ fire_sound = 'sound/weapons/gunshot_smg.ogg' can_suppress = 0 diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/handguns.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/handguns.dm index cf9dddf200..82de2d4113 100644 --- a/modular_citadel/code/modules/projectiles/guns/ballistic/handguns.dm +++ b/modular_citadel/code/modules/projectiles/guns/ballistic/handguns.dm @@ -28,7 +28,7 @@ /obj/item/gun/ballistic/automatic/pistol/antitank/syndicate name = "Syndicate Anti Tank Pistol" desc = "A massively impractical and silly monstrosity of a pistol that fires .50 calliber rounds. The recoil is likely to dislocate a variety of joints without proper bracing." - pin = /obj/item/device/firing_pin/implant/pindicate + pin = /obj/item/firing_pin/implant/pindicate ///foam stealth pistol/// diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm index 01ab1c536f..e503b37386 100644 --- a/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm +++ b/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm @@ -105,7 +105,7 @@ item_state = "gun" w_class = WEIGHT_CLASS_NORMAL slot_flags = 0 - /obj/item/device/firing_pin/implant/pindicate + /obj/item/firing_pin/implant/pindicate mag_type = /obj/item/ammo_box/magazine/flechette/ fire_sound = 'sound/weapons/gunshot_smg.ogg' can_suppress = 0 diff --git a/modular_citadel/code/modules/vore/eating/digest_act_vr.dm b/modular_citadel/code/modules/vore/eating/digest_act_vr.dm index faa458ad56..ce67a3d296 100644 --- a/modular_citadel/code/modules/vore/eating/digest_act_vr.dm +++ b/modular_citadel/code/modules/vore/eating/digest_act_vr.dm @@ -5,7 +5,7 @@ // Ye default implementation. /obj/item/proc/digest_act(var/atom/movable/item_storage = null) for(var/obj/item/O in contents) - if(istype(O,/obj/item/storage/internal)) //Dump contents from dummy pockets. + if(istype(O,/obj/item/storage)) //Dump contents from dummy pockets. for(var/obj/item/SO in O) if(item_storage) SO.forceMove(item_storage) @@ -31,9 +31,9 @@ return FALSE /obj/item/disk/nuclear/digest_act(...) return FALSE -/obj/item/device/perfect_tele_beacon/digest_act(...) +/obj/item/perfect_tele_beacon/digest_act(...) return FALSE //Sorta important to not digest your own beacons. -/obj/item/device/pda/digest_act(...) +/obj/item/pda/digest_act(...) return FALSE /obj/item/gun/digest_act(...) return FALSE @@ -73,7 +73,7 @@ ///////////// /* //PDAs need to lose their ID to not take it with them, so we can get a digested ID -/obj/item/device/pda/digest_act(var/atom/movable/item_storage = null) +/obj/item/pda/digest_act(var/atom/movable/item_storage = null) if(id) id = null @@ -114,6 +114,6 @@ ///////////// // Some more complicated stuff ///////////// -/obj/item/device/mmi/digital/posibrain/digest_act(var/atom/movable/item_storage = null) +/obj/item/mmi/digital/posibrain/digest_act(var/atom/movable/item_storage = null) //Replace this with a VORE setting so all types of posibrains can/can't be digested on a whim return FALSE diff --git a/modular_citadel/code/modules/vore/eating/living_vr.dm b/modular_citadel/code/modules/vore/eating/living_vr.dm index 25aff73412..f1b0af9258 100644 --- a/modular_citadel/code/modules/vore/eating/living_vr.dm +++ b/modular_citadel/code/modules/vore/eating/living_vr.dm @@ -254,8 +254,8 @@ log_attack("[attacker] attempted to feed [H.contents] to [src] ([src.type]) but it failed.") // I just can't imagine this not being complained about - //Handle case: /obj/item/device/radio/beacon - if(/obj/item/device/radio/beacon) + //Handle case: /obj/item/radio/beacon + if(/obj/item/radio/beacon) var/confirm = alert(user, "[src == user ? "Eat the beacon?" : "Feed the beacon to [src]?"]", "Confirmation", "Yes!", "Cancel") if(confirm == "Yes!") var/bellychoice = input("Which belly?","Select A Belly") in src.vore_organs @@ -333,8 +333,8 @@ SA.update_icons() //You're in a dogborg! - else if(istype(loc, /obj/item/device/dogborg/sleeper)) - var/obj/item/device/dogborg/sleeper/belly = loc //The belly! + else if(istype(loc, /obj/item/dogborg/sleeper)) + var/obj/item/dogborg/sleeper/belly = loc //The belly! var/confirm = alert(src, "You're in a dogborg sleeper. This is for escaping from preference-breaking or if your predator disconnects/AFKs. You can also resist out naturally too.", "Confirmation", "Okay", "Cancel") if(!confirm == "Okay" || loc != belly) diff --git a/modular_citadel/cydonian_armor.dm b/modular_citadel/cydonian_armor.dm index 831d43afba..689165d8bb 100644 --- a/modular_citadel/cydonian_armor.dm +++ b/modular_citadel/cydonian_armor.dm @@ -15,7 +15,7 @@ heat_protection = HEAD armor = list(melee = 50, bullet = 10, laser = 10, energy = 10, bomb = 50, bio = 100, rad = 50, fire = 100, acid = 100) brightness_on = 7 - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/device/mining_scanner, /obj/item/device/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator) var/energy_color = "#35FFF0" var/obj/item/clothing/suit/space/hardsuit/lavaknight/linkedsuit = null @@ -80,7 +80,7 @@ max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF | LAVA_PROOF armor = list(melee = 50, bullet = 10, laser = 10, energy = 10, bomb = 50, bio = 100, rad = 50, fire = 100, acid = 100) - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals, /obj/item/storage/bag/ore, /obj/item/pickaxe) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/storage/bag/ore, /obj/item/pickaxe) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/lavaknight heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS actions_types = list(/datum/action/item_action/toggle_helmet) diff --git a/modular_citadel/icons/mob/mam_bodyparts.dmi b/modular_citadel/icons/mob/mam_bodyparts.dmi index 66b3b18caf..deb7785d65 100644 Binary files a/modular_citadel/icons/mob/mam_bodyparts.dmi and b/modular_citadel/icons/mob/mam_bodyparts.dmi differ diff --git a/modular_citadel/icons/polyclothes/item/uniform.dmi b/modular_citadel/icons/polyclothes/item/uniform.dmi index 2bca920c63..a0b6031a5d 100644 Binary files a/modular_citadel/icons/polyclothes/item/uniform.dmi and b/modular_citadel/icons/polyclothes/item/uniform.dmi differ diff --git a/modular_citadel/icons/polyclothes/mob/uniform.dmi b/modular_citadel/icons/polyclothes/mob/uniform.dmi index 0ea6fc7178..bf53ea7a3c 100644 Binary files a/modular_citadel/icons/polyclothes/mob/uniform.dmi and b/modular_citadel/icons/polyclothes/mob/uniform.dmi differ diff --git a/strings/sillytips.txt b/strings/sillytips.txt index 451b6f0741..478fba7b1c 100644 --- a/strings/sillytips.txt +++ b/strings/sillytips.txt @@ -30,4 +30,5 @@ As the Captain, you can use a whetstone to sharpen your fancy fountain pen for e As the Lawyer, you are the last bastion of roleplay-focused jobs. Even the curator got a whip to go fight people with, that sellout! There are at least 11 ways to get through plastic flaps. How many can you name? FEED ME A STRAY CAT -Did you know that tossing the clown into a singularity will either increase or decrease its size by a large amount? \ No newline at end of file +Did you know that tossing the clown into a singularity will either increase or decrease its size by a large amount? +Don't worry, you can always circlejerk your hate on the discord about furries. \ No newline at end of file diff --git a/tgstation.dme b/tgstation.dme index f851aa65c4..2a5f1d1f8f 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -214,7 +214,6 @@ #include "code\controllers\subsystem\garbage.dm" #include "code\controllers\subsystem\icon_smooth.dm" #include "code\controllers\subsystem\idlenpcpool.dm" -#include "code\controllers\subsystem\inbounds.dm" #include "code\controllers\subsystem\input.dm" #include "code\controllers\subsystem\ipintel.dm" #include "code\controllers\subsystem\job.dm" @@ -289,6 +288,7 @@ #include "code\datums\mind.dm" #include "code\datums\mutable_appearance.dm" #include "code\datums\mutations.dm" +#include "code\datums\numbered_display.dm" #include "code\datums\outfit.dm" #include "code\datums\position_point_vector.dm" #include "code\datums\profiling.dm" @@ -329,6 +329,7 @@ #include "code\datums\components\knockoff.dm" #include "code\datums\components\lockon_aiming.dm" #include "code\datums\components\material_container.dm" +#include "code\datums\components\mirage_border.dm" #include "code\datums\components\mood.dm" #include "code\datums\components\ntnet_interface.dm" #include "code\datums\components\paintable.dm" @@ -340,10 +341,20 @@ #include "code\datums\components\slippery.dm" #include "code\datums\components\spooky.dm" #include "code\datums\components\squeek.dm" +#include "code\datums\components\stationloving.dm" #include "code\datums\components\swarming.dm" #include "code\datums\components\thermite.dm" #include "code\datums\components\wet_floor.dm" #include "code\datums\components\decals\blood.dm" +#include "code\datums\components\storage\storage.dm" +#include "code\datums\components\storage\concrete\_concrete.dm" +#include "code\datums\components\storage\concrete\bag_of_holding.dm" +#include "code\datums\components\storage\concrete\bluespace.dm" +#include "code\datums\components\storage\concrete\implant.dm" +#include "code\datums\components\storage\concrete\pockets.dm" +#include "code\datums\components\storage\concrete\rped.dm" +#include "code\datums\components\storage\concrete\special.dm" +#include "code\datums\components\storage\concrete\stack.dm" #include "code\datums\diseases\_disease.dm" #include "code\datums\diseases\_MobProcs.dm" #include "code\datums\diseases\anxiety.dm" @@ -883,7 +894,6 @@ #include "code\game\objects\items\storage\dakis.dm" #include "code\game\objects\items\storage\fancy.dm" #include "code\game\objects\items\storage\firstaid.dm" -#include "code\game\objects\items\storage\internal.dm" #include "code\game\objects\items\storage\lockbox.dm" #include "code\game\objects\items\storage\secure.dm" #include "code\game\objects\items\storage\storage.dm" @@ -994,7 +1004,8 @@ #include "code\game\objects\structures\transit_tubes\transit_tube.dm" #include "code\game\objects\structures\transit_tubes\transit_tube_construction.dm" #include "code\game\objects\structures\transit_tubes\transit_tube_pod.dm" -#include "code\game\turfs\ChangeTurf.dm" +#include "code\game\turfs\baseturf_skipover.dm" +#include "code\game\turfs\change_turf.dm" #include "code\game\turfs\closed.dm" #include "code\game\turfs\open.dm" #include "code\game\turfs\turf.dm" @@ -1056,6 +1067,7 @@ #include "code\modules\admin\verbs\ak47s.dm" #include "code\modules\admin\verbs\atmosdebug.dm" #include "code\modules\admin\verbs\bluespacearty.dm" +#include "code\modules\admin\verbs\borgpanel.dm" #include "code\modules\admin\verbs\BrokenInhands.dm" #include "code\modules\admin\verbs\buildmode.dm" #include "code\modules\admin\verbs\cinematic.dm" @@ -1339,7 +1351,6 @@ #include "code\modules\cargo\expressconsole.dm" #include "code\modules\cargo\order.dm" #include "code\modules\cargo\packs.dm" -#include "code\modules\cargo\vg_clothing_packs.dm" #include "code\modules\cargo\exports\gear.dm" #include "code\modules\cargo\exports\intel.dm" #include "code\modules\cargo\exports\large_objects.dm" @@ -1461,6 +1472,7 @@ #include "code\modules\events\aurora_caelus.dm" #include "code\modules\events\blob.dm" #include "code\modules\events\brand_intelligence.dm" +#include "code\modules\events\bureaucratic_error.dm" #include "code\modules\events\camerafailure.dm" #include "code\modules\events\carp_migration.dm" #include "code\modules\events\communications_blackout.dm" @@ -2128,6 +2140,7 @@ #include "code\modules\NTNet\netdata.dm" #include "code\modules\NTNet\network.dm" #include "code\modules\NTNet\relays.dm" +#include "code\modules\NTNet\services\_service.dm" #include "code\modules\orbit\orbit.dm" #include "code\modules\paperwork\clipboard.dm" #include "code\modules\paperwork\contract.dm" @@ -2321,7 +2334,6 @@ #include "code\modules\reagents\chemistry\machinery\chem_master.dm" #include "code\modules\reagents\chemistry\machinery\pandemic.dm" #include "code\modules\reagents\chemistry\machinery\reagentgrinder.dm" -#include "code\modules\reagents\chemistry\machinery\scp_294.dm" #include "code\modules\reagents\chemistry\machinery\smoke_machine.dm" #include "code\modules\reagents\chemistry\reagents\alcohol_reagents.dm" #include "code\modules\reagents\chemistry\reagents\blob_reagents.dm" @@ -2670,6 +2682,8 @@ #include "modular_citadel\code\game\machinery\vending.dm" #include "modular_citadel\code\game\machinery\wishgranter.dm" #include "modular_citadel\code\game\machinery\computer\card.dm" +#include "modular_citadel\code\game\machinery\doors\airlock.dm" +#include "modular_citadel\code\game\machinery\doors\airlock_types.dm" #include "modular_citadel\code\game\objects\ids.dm" #include "modular_citadel\code\game\objects\items.dm" #include "modular_citadel\code\game\objects\tools.dm" @@ -2703,15 +2717,6 @@ #include "modular_citadel\code\modules\admin\holder2.dm" #include "modular_citadel\code\modules\admin\secrets.dm" #include "modular_citadel\code\modules\admin\topic.dm" -#include "modular_citadel\code\modules\antagonists\cit_crewobjectives.dm" -#include "modular_citadel\code\modules\antagonists\cit_miscreants.dm" -#include "modular_citadel\code\modules\antagonists\crew_objectives\cit_crewobjectives_cargo.dm" -#include "modular_citadel\code\modules\antagonists\crew_objectives\cit_crewobjectives_civilian.dm" -#include "modular_citadel\code\modules\antagonists\crew_objectives\cit_crewobjectives_command.dm" -#include "modular_citadel\code\modules\antagonists\crew_objectives\cit_crewobjectives_engineering.dm" -#include "modular_citadel\code\modules\antagonists\crew_objectives\cit_crewobjectives_medical.dm" -#include "modular_citadel\code\modules\antagonists\crew_objectives\cit_crewobjectives_science.dm" -#include "modular_citadel\code\modules\antagonists\crew_objectives\cit_crewobjectives_security.dm" #include "modular_citadel\code\modules\antagonists\cult\blood_magic.dm" #include "modular_citadel\code\modules\arousal\arousal.dm" #include "modular_citadel\code\modules\arousal\organs\breasts.dm" @@ -2770,6 +2775,7 @@ #include "modular_citadel\code\modules\jobs\job_types\security.dm" #include "modular_citadel\code\modules\keybindings\bindings_carbon.dm" #include "modular_citadel\code\modules\keybindings\bindings_human.dm" +#include "modular_citadel\code\modules\keybindings\bindings_robot.dm" #include "modular_citadel\code\modules\mentor\follow.dm" #include "modular_citadel\code\modules\mentor\mentor.dm" #include "modular_citadel\code\modules\mentor\mentor_memo.dm" @@ -2796,6 +2802,7 @@ #include "modular_citadel\code\modules\mob\living\silicon\robot\dogborg_equipment.dm" #include "modular_citadel\code\modules\mob\living\silicon\robot\robot.dm" #include "modular_citadel\code\modules\mob\living\silicon\robot\robot_modules.dm" +#include "modular_citadel\code\modules\mob\living\silicon\robot\robot_movement.dm" #include "modular_citadel\code\modules\mob\living\simple_animal\banana_spider.dm" #include "modular_citadel\code\modules\mob\living\simple_animal\kiwi.dm" #include "modular_citadel\code\modules\power\lighting.dm" diff --git a/tgui/assets/tgui.js b/tgui/assets/tgui.js index 6476446710..f2a15d915f 100644 --- a/tgui/assets/tgui.js +++ b/tgui/assets/tgui.js @@ -1,18 +1,18 @@ -require=function t(e,n,a){function r(o,s){if(!n[o]){if(!e[o]){var p="function"==typeof require&&require;if(!s&&p)return p(o,!0);if(i)return i(o,!0);var u=Error("Cannot find module '"+o+"'");throw u.code="MODULE_NOT_FOUND",u}var c=n[o]={exports:{}};e[o][0].call(c.exports,function(t){var n=e[o][1][t];return r(n?n:t)},c,c.exports,t,e,n,a)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o2?u[2]:void 0,l=Math.min((void 0===c?o:r(c,o))-p,o-s),d=1;for(s>p&&p+l>s&&(d=-1,p+=l-1,s+=l-1);l-- >0;)p in n?n[s]=n[p]:delete n[s],s+=d,p+=d;return n}},{76:76,79:79,80:80}],6:[function(t,e,n){"use strict";var a=t(80),r=t(76),i=t(79);e.exports=[].fill||function(t){for(var e=a(this),n=i(e.length),o=arguments,s=o.length,p=r(s>1?o[1]:void 0,n),u=s>2?o[2]:void 0,c=void 0===u?n:r(u,n);c>p;)e[p++]=t;return e}},{76:76,79:79,80:80}],7:[function(t,e,n){var a=t(78),r=t(79),i=t(76);e.exports=function(t){return function(e,n,o){var s,p=a(e),u=r(p.length),c=i(o,u);if(t&&n!=n){for(;u>c;)if(s=p[c++],s!=s)return!0}else for(;u>c;c++)if((t||c in p)&&p[c]===n)return t||c;return!t&&-1}}},{76:76,78:78,79:79}],8:[function(t,e,n){var a=t(17),r=t(34),i=t(80),o=t(79),s=t(9);e.exports=function(t){var e=1==t,n=2==t,p=3==t,u=4==t,c=6==t,l=5==t||c;return function(d,f,h){for(var m,g,v=i(d),b=r(v),y=a(f,h,3),x=o(b.length),_=0,w=e?s(d,x):n?s(d,0):void 0;x>_;_++)if((l||_ in b)&&(m=b[_],g=y(m,_,v),t))if(e)w[_]=g;else if(g)switch(t){case 3:return!0;case 5:return m;case 6:return _;case 2:w.push(m)}else if(u)return!1;return c?-1:p||u?u:w}}},{17:17,34:34,79:79,80:80,9:9}],9:[function(t,e,n){var a=t(38),r=t(36),i=t(83)("species");e.exports=function(t,e){var n;return r(t)&&(n=t.constructor,"function"!=typeof n||n!==Array&&!r(n.prototype)||(n=void 0),a(n)&&(n=n[i],null===n&&(n=void 0))),new(void 0===n?Array:n)(e)}},{36:36,38:38,83:83}],10:[function(t,e,n){var a=t(11),r=t(83)("toStringTag"),i="Arguments"==a(function(){return arguments}());e.exports=function(t){var e,n,o;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=(e=Object(t))[r])?n:i?a(e):"Object"==(o=a(e))&&"function"==typeof e.callee?"Arguments":o}},{11:11,83:83}],11:[function(t,e,n){var a={}.toString;e.exports=function(t){return a.call(t).slice(8,-1)}},{}],12:[function(t,e,n){"use strict";var a=t(46),r=t(31),i=t(60),o=t(17),s=t(69),p=t(18),u=t(27),c=t(42),l=t(44),d=t(82)("id"),f=t(30),h=t(38),m=t(65),g=t(19),v=Object.isExtensible||h,b=g?"_s":"size",y=0,x=function(t,e){if(!h(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!f(t,d)){if(!v(t))return"F";if(!e)return"E";r(t,d,++y)}return"O"+t[d]},_=function(t,e){var n,a=x(e);if("F"!==a)return t._i[a];for(n=t._f;n;n=n.n)if(n.k==e)return n};e.exports={getConstructor:function(t,e,n,r){var c=t(function(t,i){s(t,c,e),t._i=a.create(null),t._f=void 0,t._l=void 0,t[b]=0,void 0!=i&&u(i,n,t[r],t)});return i(c.prototype,{clear:function(){for(var t=this,e=t._i,n=t._f;n;n=n.n)n.r=!0,n.p&&(n.p=n.p.n=void 0),delete e[n.i];t._f=t._l=void 0,t[b]=0},"delete":function(t){var e=this,n=_(e,t);if(n){var a=n.n,r=n.p;delete e._i[n.i],n.r=!0,r&&(r.n=a),a&&(a.p=r),e._f==n&&(e._f=a),e._l==n&&(e._l=r),e[b]--}return!!n},forEach:function(t){for(var e,n=o(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.n:this._f;)for(n(e.v,e.k,this);e&&e.r;)e=e.p},has:function(t){return!!_(this,t)}}),g&&a.setDesc(c.prototype,"size",{get:function(){return p(this[b])}}),c},def:function(t,e,n){var a,r,i=_(t,e);return i?i.v=n:(t._l=i={i:r=x(e,!0),k:e,v:n,p:a=t._l,n:void 0,r:!1},t._f||(t._f=i),a&&(a.n=i),t[b]++,"F"!==r&&(t._i[r]=i)),t},getEntry:_,setStrong:function(t,e,n){c(t,e,function(t,e){this._t=t,this._k=e,this._l=void 0},function(){for(var t=this,e=t._k,n=t._l;n&&n.r;)n=n.p;return t._t&&(t._l=n=n?n.n:t._t._f)?"keys"==e?l(0,n.k):"values"==e?l(0,n.v):l(0,[n.k,n.v]):(t._t=void 0,l(1))},n?"entries":"values",!n,!0),m(e)}}},{17:17,18:18,19:19,27:27,30:30,31:31,38:38,42:42,44:44,46:46,60:60,65:65,69:69,82:82}],13:[function(t,e,n){var a=t(27),r=t(10);e.exports=function(t){return function(){if(r(this)!=t)throw TypeError(t+"#toJSON isn't generic");var e=[];return a(this,!1,e.push,e),e}}},{10:10,27:27}],14:[function(t,e,n){"use strict";var a=t(31),r=t(60),i=t(4),o=t(38),s=t(69),p=t(27),u=t(8),c=t(30),l=t(82)("weak"),d=Object.isExtensible||o,f=u(5),h=u(6),m=0,g=function(t){return t._l||(t._l=new v)},v=function(){this.a=[]},b=function(t,e){return f(t.a,function(t){return t[0]===e})};v.prototype={get:function(t){var e=b(this,t);return e?e[1]:void 0},has:function(t){return!!b(this,t)},set:function(t,e){var n=b(this,t);n?n[1]=e:this.a.push([t,e])},"delete":function(t){var e=h(this.a,function(e){return e[0]===t});return~e&&this.a.splice(e,1),!!~e}},e.exports={getConstructor:function(t,e,n,a){var i=t(function(t,r){s(t,i,e),t._i=m++,t._l=void 0,void 0!=r&&p(r,n,t[a],t)});return r(i.prototype,{"delete":function(t){return o(t)?d(t)?c(t,l)&&c(t[l],this._i)&&delete t[l][this._i]:g(this)["delete"](t):!1},has:function(t){return o(t)?d(t)?c(t,l)&&c(t[l],this._i):g(this).has(t):!1}}),i},def:function(t,e,n){return d(i(e))?(c(e,l)||a(e,l,{}),e[l][t._i]=n):g(t).set(e,n),t},frozenStore:g,WEAK:l}},{27:27,30:30,31:31,38:38,4:4,60:60,69:69,8:8,82:82}],15:[function(t,e,n){"use strict";var a=t(29),r=t(22),i=t(61),o=t(60),s=t(27),p=t(69),u=t(38),c=t(24),l=t(43),d=t(66);e.exports=function(t,e,n,f,h,m){var g=a[t],v=g,b=h?"set":"add",y=v&&v.prototype,x={},_=function(t){var e=y[t];i(y,t,"delete"==t?function(t){return m&&!u(t)?!1:e.call(this,0===t?0:t)}:"has"==t?function(t){return m&&!u(t)?!1:e.call(this,0===t?0:t)}:"get"==t?function(t){return m&&!u(t)?void 0:e.call(this,0===t?0:t)}:"add"==t?function(t){return e.call(this,0===t?0:t),this}:function(t,n){return e.call(this,0===t?0:t,n),this})};if("function"==typeof v&&(m||y.forEach&&!c(function(){(new v).entries().next()}))){var w,k=new v,E=k[b](m?{}:-0,1)!=k,S=c(function(){k.has(1)}),C=l(function(t){new v(t)});C||(v=e(function(e,n){p(e,v,t);var a=new g;return void 0!=n&&s(n,h,a[b],a),a}),v.prototype=y,y.constructor=v),m||k.forEach(function(t,e){w=1/e===-(1/0)}),(S||w)&&(_("delete"),_("has"),h&&_("get")),(w||E)&&_(b),m&&y.clear&&delete y.clear}else v=f.getConstructor(e,t,h,b),o(v.prototype,n);return d(v,t),x[t]=v,r(r.G+r.W+r.F*(v!=g),x),m||f.setStrong(v,t,h),v}},{22:22,24:24,27:27,29:29,38:38,43:43,60:60,61:61,66:66,69:69}],16:[function(t,e,n){var a=e.exports={version:"1.2.6"};"number"==typeof __e&&(__e=a)},{}],17:[function(t,e,n){var a=t(2);e.exports=function(t,e,n){if(a(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,a){return t.call(e,n,a)};case 3:return function(n,a,r){return t.call(e,n,a,r)}}return function(){return t.apply(e,arguments)}}},{2:2}],18:[function(t,e,n){e.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},{}],19:[function(t,e,n){e.exports=!t(24)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},{24:24}],20:[function(t,e,n){var a=t(38),r=t(29).document,i=a(r)&&a(r.createElement);e.exports=function(t){return i?r.createElement(t):{}}},{29:29,38:38}],21:[function(t,e,n){var a=t(46);e.exports=function(t){var e=a.getKeys(t),n=a.getSymbols;if(n)for(var r,i=n(t),o=a.isEnum,s=0;i.length>s;)o.call(t,r=i[s++])&&e.push(r);return e}},{46:46}],22:[function(t,e,n){var a=t(29),r=t(16),i=t(31),o=t(61),s=t(17),p="prototype",u=function(t,e,n){var c,l,d,f,h=t&u.F,m=t&u.G,g=t&u.S,v=t&u.P,b=t&u.B,y=m?a:g?a[e]||(a[e]={}):(a[e]||{})[p],x=m?r:r[e]||(r[e]={}),_=x[p]||(x[p]={});m&&(n=e);for(c in n)l=!h&&y&&c in y,d=(l?y:n)[c],f=b&&l?s(d,a):v&&"function"==typeof d?s(Function.call,d):d,y&&!l&&o(y,c,d),x[c]!=d&&i(x,c,f),v&&_[c]!=d&&(_[c]=d)};a.core=r,u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,e.exports=u},{16:16,17:17,29:29,31:31,61:61}],23:[function(t,e,n){var a=t(83)("match");e.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[a]=!1,!"/./"[t](e)}catch(r){}}return!0}},{83:83}],24:[function(t,e,n){e.exports=function(t){try{return!!t()}catch(e){return!0}}},{}],25:[function(t,e,n){"use strict";var a=t(31),r=t(61),i=t(24),o=t(18),s=t(83);e.exports=function(t,e,n){var p=s(t),u=""[t];i(function(){var e={};return e[p]=function(){return 7},7!=""[t](e)})&&(r(String.prototype,t,n(o,p,u)),a(RegExp.prototype,p,2==e?function(t,e){return u.call(t,this,e)}:function(t){return u.call(t,this)}))}},{18:18,24:24,31:31,61:61,83:83}],26:[function(t,e,n){"use strict";var a=t(4);e.exports=function(){var t=a(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},{4:4}],27:[function(t,e,n){var a=t(17),r=t(40),i=t(35),o=t(4),s=t(79),p=t(84);e.exports=function(t,e,n,u){var c,l,d,f=p(t),h=a(n,u,e?2:1),m=0;if("function"!=typeof f)throw TypeError(t+" is not iterable!");if(i(f))for(c=s(t.length);c>m;m++)e?h(o(l=t[m])[0],l[1]):h(t[m]);else for(d=f.call(t);!(l=d.next()).done;)r(d,h,l.value,e)}},{17:17,35:35,4:4,40:40,79:79,84:84}],28:[function(t,e,n){var a=t(78),r=t(46).getNames,i={}.toString,o="object"==typeof window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(t){try{return r(t)}catch(e){return o.slice()}};e.exports.get=function(t){return o&&"[object Window]"==i.call(t)?s(t):r(a(t))}},{46:46,78:78}],29:[function(t,e,n){var a=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=a)},{}],30:[function(t,e,n){var a={}.hasOwnProperty;e.exports=function(t,e){return a.call(t,e)}},{}],31:[function(t,e,n){var a=t(46),r=t(59);e.exports=t(19)?function(t,e,n){return a.setDesc(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},{19:19,46:46,59:59}],32:[function(t,e,n){e.exports=t(29).document&&document.documentElement},{29:29}],33:[function(t,e,n){e.exports=function(t,e,n){var a=void 0===n;switch(e.length){case 0:return a?t():t.call(n);case 1:return a?t(e[0]):t.call(n,e[0]);case 2:return a?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return a?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return a?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},{}],34:[function(t,e,n){var a=t(11);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==a(t)?t.split(""):Object(t)}},{11:11}],35:[function(t,e,n){var a=t(45),r=t(83)("iterator"),i=Array.prototype;e.exports=function(t){return void 0!==t&&(a.Array===t||i[r]===t)}},{45:45,83:83}],36:[function(t,e,n){var a=t(11);e.exports=Array.isArray||function(t){return"Array"==a(t)}},{11:11}],37:[function(t,e,n){var a=t(38),r=Math.floor;e.exports=function(t){return!a(t)&&isFinite(t)&&r(t)===t}},{38:38}],38:[function(t,e,n){e.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},{}],39:[function(t,e,n){var a=t(38),r=t(11),i=t(83)("match");e.exports=function(t){var e;return a(t)&&(void 0!==(e=t[i])?!!e:"RegExp"==r(t))}},{11:11,38:38,83:83}],40:[function(t,e,n){var a=t(4);e.exports=function(t,e,n,r){try{return r?e(a(n)[0],n[1]):e(n)}catch(i){var o=t["return"];throw void 0!==o&&a(o.call(t)),i}}},{4:4}],41:[function(t,e,n){"use strict";var a=t(46),r=t(59),i=t(66),o={};t(31)(o,t(83)("iterator"),function(){return this}),e.exports=function(t,e,n){t.prototype=a.create(o,{next:r(1,n)}),i(t,e+" Iterator")}},{31:31,46:46,59:59,66:66,83:83}],42:[function(t,e,n){"use strict";var a=t(48),r=t(22),i=t(61),o=t(31),s=t(30),p=t(45),u=t(41),c=t(66),l=t(46).getProto,d=t(83)("iterator"),f=!([].keys&&"next"in[].keys()),h="@@iterator",m="keys",g="values",v=function(){return this};e.exports=function(t,e,n,b,y,x,_){u(n,e,b);var w,k,E=function(t){if(!f&&t in A)return A[t];switch(t){case m:return function(){return new n(this,t)};case g:return function(){return new n(this,t)}}return function(){return new n(this,t)}},S=e+" Iterator",C=y==g,P=!1,A=t.prototype,O=A[d]||A[h]||y&&A[y],T=O||E(y);if(O){var R=l(T.call(new t));c(R,S,!0),!a&&s(A,h)&&o(R,d,v),C&&O.name!==g&&(P=!0,T=function(){return O.call(this)})}if(a&&!_||!f&&!P&&A[d]||o(A,d,T),p[e]=T,p[S]=v,y)if(w={values:C?T:E(g),keys:x?T:E(m),entries:C?E("entries"):T},_)for(k in w)k in A||i(A,k,w[k]);else r(r.P+r.F*(f||P),e,w);return w}},{22:22,30:30,31:31,41:41,45:45,46:46,48:48,61:61,66:66,83:83}],43:[function(t,e,n){var a=t(83)("iterator"),r=!1;try{var i=[7][a]();i["return"]=function(){r=!0},Array.from(i,function(){throw 2})}catch(o){}e.exports=function(t,e){if(!e&&!r)return!1;var n=!1;try{var i=[7],o=i[a]();o.next=function(){return{done:n=!0}},i[a]=function(){return o},t(i)}catch(s){}return n}},{83:83}],44:[function(t,e,n){e.exports=function(t,e){return{value:e,done:!!t}}},{}],45:[function(t,e,n){e.exports={}},{}],46:[function(t,e,n){var a=Object;e.exports={create:a.create,getProto:a.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:a.getOwnPropertyDescriptor,setDesc:a.defineProperty,setDescs:a.defineProperties,getKeys:a.keys,getNames:a.getOwnPropertyNames,getSymbols:a.getOwnPropertySymbols,each:[].forEach}},{}],47:[function(t,e,n){var a=t(46),r=t(78);e.exports=function(t,e){for(var n,i=r(t),o=a.getKeys(i),s=o.length,p=0;s>p;)if(i[n=o[p++]]===e)return n}},{46:46,78:78}],48:[function(t,e,n){e.exports=!1},{}],49:[function(t,e,n){e.exports=Math.expm1||function(t){return 0==(t=+t)?t:t>-1e-6&&1e-6>t?t+t*t/2:Math.exp(t)-1}},{}],50:[function(t,e,n){e.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&1e-8>t?t-t*t/2:Math.log(1+t)}},{}],51:[function(t,e,n){e.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:0>t?-1:1}},{}],52:[function(t,e,n){var a,r,i,o=t(29),s=t(75).set,p=o.MutationObserver||o.WebKitMutationObserver,u=o.process,c=o.Promise,l="process"==t(11)(u),d=function(){var t,e,n;for(l&&(t=u.domain)&&(u.domain=null,t.exit());a;)e=a.domain,n=a.fn,e&&e.enter(),n(),e&&e.exit(),a=a.next;r=void 0,t&&t.enter()};if(l)i=function(){u.nextTick(d)};else if(p){var f=1,h=document.createTextNode("");new p(d).observe(h,{characterData:!0}),i=function(){h.data=f=-f}}else i=c&&c.resolve?function(){c.resolve().then(d)}:function(){s.call(o,d)};e.exports=function(t){var e={fn:t,next:void 0,domain:l&&u.domain};r&&(r.next=e),a||(a=e,i()),r=e}},{11:11,29:29,75:75}],53:[function(t,e,n){var a=t(46),r=t(80),i=t(34);e.exports=t(24)(function(){var t=Object.assign,e={},n={},a=Symbol(),r="abcdefghijklmnopqrst";return e[a]=7,r.split("").forEach(function(t){n[t]=t}),7!=t({},e)[a]||Object.keys(t({},n)).join("")!=r})?function(t,e){for(var n=r(t),o=arguments,s=o.length,p=1,u=a.getKeys,c=a.getSymbols,l=a.isEnum;s>p;)for(var d,f=i(o[p++]),h=c?u(f).concat(c(f)):u(f),m=h.length,g=0;m>g;)l.call(f,d=h[g++])&&(n[d]=f[d]);return n}:Object.assign},{24:24,34:34,46:46,80:80}],54:[function(t,e,n){var a=t(22),r=t(16),i=t(24);e.exports=function(t,e){var n=(r.Object||{})[t]||Object[t],o={};o[t]=e(n),a(a.S+a.F*i(function(){n(1)}),"Object",o)}},{16:16,22:22,24:24}],55:[function(t,e,n){var a=t(46),r=t(78),i=a.isEnum;e.exports=function(t){return function(e){for(var n,o=r(e),s=a.getKeys(o),p=s.length,u=0,c=[];p>u;)i.call(o,n=s[u++])&&c.push(t?[n,o[n]]:o[n]);return c}}},{46:46,78:78}],56:[function(t,e,n){var a=t(46),r=t(4),i=t(29).Reflect;e.exports=i&&i.ownKeys||function(t){var e=a.getNames(r(t)),n=a.getSymbols;return n?e.concat(n(t)):e}},{29:29,4:4,46:46}],57:[function(t,e,n){"use strict";var a=t(58),r=t(33),i=t(2);e.exports=function(){for(var t=i(this),e=arguments.length,n=Array(e),o=0,s=a._,p=!1;e>o;)(n[o]=arguments[o++])===s&&(p=!0);return function(){var a,i=this,o=arguments,u=o.length,c=0,l=0;if(!p&&!u)return r(t,n,i);if(a=n.slice(),p)for(;e>c;c++)a[c]===s&&(a[c]=o[l++]);for(;u>l;)a.push(o[l++]);return r(t,a,i)}}},{2:2,33:33,58:58}],58:[function(t,e,n){e.exports=t(29)},{29:29}],59:[function(t,e,n){e.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},{}],60:[function(t,e,n){var a=t(61);e.exports=function(t,e){for(var n in e)a(t,n,e[n]);return t}},{61:61}],61:[function(t,e,n){var a=t(29),r=t(31),i=t(82)("src"),o="toString",s=Function[o],p=(""+s).split(o);t(16).inspectSource=function(t){return s.call(t)},(e.exports=function(t,e,n,o){"function"==typeof n&&(n.hasOwnProperty(i)||r(n,i,t[e]?""+t[e]:p.join(e+"")),n.hasOwnProperty("name")||r(n,"name",e)),t===a?t[e]=n:(o||delete t[e],r(t,e,n))})(Function.prototype,o,function(){return"function"==typeof this&&this[i]||s.call(this)})},{16:16,29:29,31:31,82:82}],62:[function(t,e,n){e.exports=function(t,e){var n=e===Object(e)?function(t){return e[t]}:e;return function(e){return(e+"").replace(t,n)}}},{}],63:[function(t,e,n){e.exports=Object.is||function(t,e){return t===e?0!==t||1/t===1/e:t!=t&&e!=e}},{}],64:[function(t,e,n){var a=t(46).getDesc,r=t(38),i=t(4),o=function(t,e){if(i(t),!r(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,n,r){try{r=t(17)(Function.call,a(Object.prototype,"__proto__").set,2),r(e,[]),n=!(e instanceof Array)}catch(i){n=!0}return function(t,e){return o(t,e),n?t.__proto__=e:r(t,e),t}}({},!1):void 0),check:o}},{17:17,38:38,4:4,46:46}],65:[function(t,e,n){"use strict";var a=t(29),r=t(46),i=t(19),o=t(83)("species");e.exports=function(t){var e=a[t];i&&e&&!e[o]&&r.setDesc(e,o,{configurable:!0,get:function(){return this}})}},{19:19,29:29,46:46,83:83}],66:[function(t,e,n){var a=t(46).setDesc,r=t(30),i=t(83)("toStringTag");e.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,i)&&a(t,i,{configurable:!0,value:e})}},{30:30,46:46,83:83}],67:[function(t,e,n){var a=t(29),r="__core-js_shared__",i=a[r]||(a[r]={});e.exports=function(t){return i[t]||(i[t]={})}},{29:29}],68:[function(t,e,n){var a=t(4),r=t(2),i=t(83)("species");e.exports=function(t,e){var n,o=a(t).constructor;return void 0===o||void 0==(n=a(o)[i])?e:r(n)}},{2:2,4:4,83:83}],69:[function(t,e,n){e.exports=function(t,e,n){if(!(t instanceof e))throw TypeError(n+": use the 'new' operator!");return t}},{}],70:[function(t,e,n){var a=t(77),r=t(18);e.exports=function(t){return function(e,n){var i,o,s=r(e)+"",p=a(n),u=s.length;return 0>p||p>=u?t?"":void 0:(i=s.charCodeAt(p),55296>i||i>56319||p+1===u||(o=s.charCodeAt(p+1))<56320||o>57343?t?s.charAt(p):i:t?s.slice(p,p+2):(i-55296<<10)+(o-56320)+65536)}}},{18:18,77:77}],71:[function(t,e,n){var a=t(39),r=t(18);e.exports=function(t,e,n){if(a(e))throw TypeError("String#"+n+" doesn't accept regex!");return r(t)+""}},{18:18,39:39}],72:[function(t,e,n){var a=t(79),r=t(73),i=t(18);e.exports=function(t,e,n,o){var s=i(t)+"",p=s.length,u=void 0===n?" ":n+"",c=a(e);if(p>=c)return s;""==u&&(u=" ");var l=c-p,d=r.call(u,Math.ceil(l/u.length));return d.length>l&&(d=d.slice(0,l)),o?d+s:s+d}},{18:18,73:73,79:79}],73:[function(t,e,n){"use strict";var a=t(77),r=t(18);e.exports=function(t){var e=r(this)+"",n="",i=a(t);if(0>i||i==1/0)throw RangeError("Count can't be negative");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},{18:18,77:77}],74:[function(t,e,n){var a=t(22),r=t(18),i=t(24),o=" \n\x0B\f\r   ᠎ â€â€‚         âŸã€€\u2028\u2029\ufeff",s="["+o+"]",p="​…",u=RegExp("^"+s+s+"*"),c=RegExp(s+s+"*$"),l=function(t,e){var n={};n[t]=e(d),a(a.P+a.F*i(function(){return!!o[t]()||p[t]()!=p}),"String",n)},d=l.trim=function(t,e){return t=r(t)+"",1&e&&(t=t.replace(u,"")),2&e&&(t=t.replace(c,"")),t};e.exports=l},{18:18,22:22,24:24}],75:[function(t,e,n){var a,r,i,o=t(17),s=t(33),p=t(32),u=t(20),c=t(29),l=c.process,d=c.setImmediate,f=c.clearImmediate,h=c.MessageChannel,m=0,g={},v="onreadystatechange",b=function(){var t=+this;if(g.hasOwnProperty(t)){var e=g[t];delete g[t],e()}},y=function(t){b.call(t.data)};d&&f||(d=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return g[++m]=function(){s("function"==typeof t?t:Function(t),e)},a(m),m},f=function(t){delete g[t]},"process"==t(11)(l)?a=function(t){l.nextTick(o(b,t,1))}:h?(r=new h,i=r.port2,r.port1.onmessage=y,a=o(i.postMessage,i,1)):c.addEventListener&&"function"==typeof postMessage&&!c.importScripts?(a=function(t){c.postMessage(t+"","*")},c.addEventListener("message",y,!1)):a=v in u("script")?function(t){p.appendChild(u("script"))[v]=function(){p.removeChild(this),b.call(t)}}:function(t){setTimeout(o(b,t,1),0)}),e.exports={set:d,clear:f}},{11:11,17:17,20:20,29:29,32:32,33:33}],76:[function(t,e,n){var a=t(77),r=Math.max,i=Math.min;e.exports=function(t,e){return t=a(t),0>t?r(t+e,0):i(t,e)}},{77:77}],77:[function(t,e,n){var a=Math.ceil,r=Math.floor;e.exports=function(t){return isNaN(t=+t)?0:(t>0?r:a)(t)}},{}],78:[function(t,e,n){var a=t(34),r=t(18);e.exports=function(t){return a(r(t))}},{18:18,34:34}],79:[function(t,e,n){var a=t(77),r=Math.min;e.exports=function(t){return t>0?r(a(t),9007199254740991):0}},{77:77}],80:[function(t,e,n){var a=t(18);e.exports=function(t){return Object(a(t))}},{18:18}],81:[function(t,e,n){var a=t(38);e.exports=function(t,e){if(!a(t))return t;var n,r;if(e&&"function"==typeof(n=t.toString)&&!a(r=n.call(t)))return r;if("function"==typeof(n=t.valueOf)&&!a(r=n.call(t)))return r;if(!e&&"function"==typeof(n=t.toString)&&!a(r=n.call(t)))return r;throw TypeError("Can't convert object to primitive value")}},{38:38}],82:[function(t,e,n){var a=0,r=Math.random();e.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++a+r).toString(36))}},{}],83:[function(t,e,n){var a=t(67)("wks"),r=t(82),i=t(29).Symbol;e.exports=function(t){return a[t]||(a[t]=i&&i[t]||(i||r)("Symbol."+t))}},{29:29,67:67,82:82}],84:[function(t,e,n){var a=t(10),r=t(83)("iterator"),i=t(45);e.exports=t(16).getIteratorMethod=function(t){return void 0!=t?t[r]||t["@@iterator"]||i[a(t)]:void 0}},{10:10,16:16,45:45,83:83}],85:[function(t,e,n){"use strict";var a,r=t(46),i=t(22),o=t(19),s=t(59),p=t(32),u=t(20),c=t(30),l=t(11),d=t(33),f=t(24),h=t(4),m=t(2),g=t(38),v=t(80),b=t(78),y=t(77),x=t(76),_=t(79),w=t(34),k=t(82)("__proto__"),E=t(8),S=t(7)(!1),C=Object.prototype,P=Array.prototype,A=P.slice,O=P.join,T=r.setDesc,R=r.getDesc,L=r.setDescs,j={};o||(a=!f(function(){return 7!=T(u("div"),"a",{get:function(){return 7}}).a}),r.setDesc=function(t,e,n){if(a)try{return T(t,e,n)}catch(r){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(h(t)[e]=n.value),t},r.getDesc=function(t,e){if(a)try{return R(t,e)}catch(n){}return c(t,e)?s(!C.propertyIsEnumerable.call(t,e),t[e]):void 0},r.setDescs=L=function(t,e){h(t);for(var n,a=r.getKeys(e),i=a.length,o=0;i>o;)r.setDesc(t,n=a[o++],e[n]);return t}),i(i.S+i.F*!o,"Object",{getOwnPropertyDescriptor:r.getDesc,defineProperty:r.setDesc,defineProperties:L});var D="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","),M=D.concat("length","prototype"),N=D.length,F=function(){var t,e=u("iframe"),n=N,a=">";for(e.style.display="none",p.appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write(" @@ -45,7 +39,7 @@
      - {{#each sorted_sensors}} + {{#each data.sensors}}
      diff --git a/tgui/src/interfaces/scp_294.ract b/tgui/src/interfaces/scp_294.ract deleted file mode 100644 index e0b302bf0c..0000000000 --- a/tgui/src/interfaces/scp_294.ract +++ /dev/null @@ -1,21 +0,0 @@ - - - Eject - Input - Create Cup - - - - - {{#if data.isBeakerLoaded}} - {{Math.round(adata.beakerCurrentVolume)}}/{{data.beakerMaxVolume}} Units - {{#each adata.beakerContents}} - {{Math.fixed(volume, 2)}} units of {{name}}
      - {{else}} - Recipient Empty - {{/each}} - {{else}} - No Recipient - {{/if}} -
      -
      \ No newline at end of file diff --git a/tools/CreditsTool/remappings.txt b/tools/CreditsTool/remappings.txt index c7dc5ce0b0..ac57d4b873 100644 --- a/tools/CreditsTool/remappings.txt +++ b/tools/CreditsTool/remappings.txt @@ -17,3 +17,4 @@ theOperand Miauw PraiseRatvar Frozenguy5 FuryMcFlurry Fury McFlurry vuonojenmustaturska Naksu +praisenarsie Frozenguy5