diff --git a/.github/MC_tab.md b/.github/MC_tab.md new file mode 100644 index 000000000000..01ad1e6aa174 --- /dev/null +++ b/.github/MC_tab.md @@ -0,0 +1,36 @@ +The MC tab hold information on how the game is performing. Here's a crash course on what the most important of those numbers mean. + +If you already know what these numbers mean and you want to see them update faster than the default refresh rate of once every 2 seconds, you can enable the admin pref to make the MC tab refresh every 4 deciseconds. Please don't do this unless you actually need that information at a faster refresh rate since updating every subsystems information is expensive. + +# Main Entries: + + * CPU: What percentage of a tick the game is using before starting the next tick. If this is above 100 it means we are over budget. + + * TickCount: How many ticks should have elapsed since the start of the game if no ticks were ever delayed from starting. + + * TickDrift: How many ticks since the game started that have been delayed. Essentially this is how many ticks the game is running behind. If this is increasing then the game is currently not able to keep up with demand. + + * Internal Tick Usage: You might have heard of this referred to as "maptick". It's how much of the tick that an internal byond function called SendMaps() has taken recently. The higher this is the less time our code has to run. SendMaps() deals with sending players updates of their view of the game world so it has to run every tick but it's expensive so ideally this is optimized as much as possible. You can see a more detailed breakdown of the cost of SendMaps by looking at the profiler in the debug tab -> "Send Maps Profile". + +# Master Controller Entry: + + * TickRate: How many Byond ticks go between each master controller iteration. By default this is 1 meaning the MC runs once every byond tick. But certain configurations can increase this slightly. + + * Iteration: How many times the MC has ran since starting. + + * TickLimit: This SHOULD be what percentage of the tick the MC can use when it starts a run, however currently it just represents how much of the tick the MC can use by the time that SSstatpanels fires. Someone should fix that. + +# Subsystem Entries: + +Subsystems will typically have a base stat entry of the form: +[ ] Name 12ms|28%(2%)|3 + +The brackets hold a letter if the subsystem is in a state other than idle. + +The first numbered entry is the cost of the subsystem, which is a running average of how many milliseconds the subsystem takes to complete a full run. This is increased every time the subsystem resumes an uncompleted run or starts a new run and decays when runs take less time. If this balloons to huge values then it means that the amount of work the subsystem needs to complete in a run is far greater than the amount of time it actually has to execute in whenever it is its turn to fire. + +The second numbered entry is like cost, but in percentage of an ideal tick this subsystem takes to complete a run. They both represent the same data. + +The third entry (2%) is how much time this subsystem spent executing beyond the time it was allocated by the MC. This is bad, it means that this subsystem doesn't yield when it's taking too much time and makes the job of the MC harder. The MC will attempt to account for this but it is better for all subsystems to be able to correctly yield when their turn is done. + +The fourth entry represents how many times this subsystem fires before it completes a run. diff --git a/_maps/RandomRuins/BeachRuins/beach_colony.dmm b/_maps/RandomRuins/BeachRuins/beach_colony.dmm index 95f9f4baa89c..05a810e004ad 100644 --- a/_maps/RandomRuins/BeachRuins/beach_colony.dmm +++ b/_maps/RandomRuins/BeachRuins/beach_colony.dmm @@ -383,7 +383,7 @@ }, /area/overmap_encounter/planetoid/beachplanet/explored) "NG" = ( -/obj/item/gun/ballistic/automatic/pistol/m1911/no_mag{ +/obj/item/gun/ballistic/automatic/pistol/candor/no_mag{ pixel_x = 13 }, /obj/item/toy/plush/carpplushie{ diff --git a/_maps/RandomRuins/BeachRuins/beach_crashed_engineer.dmm b/_maps/RandomRuins/BeachRuins/beach_crashed_engineer.dmm index 4e47f54d4970..998e43b9085a 100644 --- a/_maps/RandomRuins/BeachRuins/beach_crashed_engineer.dmm +++ b/_maps/RandomRuins/BeachRuins/beach_crashed_engineer.dmm @@ -230,7 +230,7 @@ /turf/open/floor/plating, /area/ruin/unpowered) "kH" = ( -/obj/item/book/manual/wiki/engineering_construction, +/obj/item/book/manual/wiki/construction, /turf/open/floor/plating/beach/sand{ light_range = 2 }, @@ -453,7 +453,7 @@ /turf/open/floor/plasteel/tech, /area/ruin/unpowered) "sB" = ( -/obj/item/book/manual/wiki/engineering_guide, +/obj/item/book/manual/wiki/engineering, /turf/open/floor/plating/beach/sand{ light_range = 2 }, @@ -858,7 +858,7 @@ /area/overmap_encounter/planetoid/beachplanet/explored) "Kl" = ( /obj/effect/radiation, -/obj/item/book/manual/wiki/engineering_singulo_tesla, +/obj/item/book/manual/wiki/engineering, /turf/open/water/beach/deep, /area/overmap_encounter/planetoid/beachplanet/explored) "Ko" = ( diff --git a/_maps/RandomRuins/BeachRuins/beach_crashed_starwalker.dmm b/_maps/RandomRuins/BeachRuins/beach_crashed_starwalker.dmm index 87df4d5dc092..346458a87daf 100644 --- a/_maps/RandomRuins/BeachRuins/beach_crashed_starwalker.dmm +++ b/_maps/RandomRuins/BeachRuins/beach_crashed_starwalker.dmm @@ -3374,7 +3374,7 @@ /obj/structure/cable/orange{ icon_state = "2-10" }, -/obj/item/gun/ballistic/shotgun/lethal, +/obj/item/gun/ballistic/shotgun/brimstone, /obj/structure/spacevine, /turf/open/floor/mineral/plastitanium, /area/ruin/beach/starwalker) diff --git a/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm b/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm index 588fe99b9792..3b801c086ff3 100644 --- a/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm +++ b/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm @@ -297,7 +297,7 @@ "mD" = ( /obj/structure/table/wood, /obj/machinery/light/small/directional/north, -/obj/item/gun/ballistic/shotgun/winchester, +/obj/item/gun/ballistic/shotgun/flamingarrow, /turf/open/floor/wood, /area/ruin/beach) "mE" = ( diff --git a/_maps/RandomRuins/BeachRuins/beach_ocean_town.dmm b/_maps/RandomRuins/BeachRuins/beach_ocean_town.dmm index c65fe197ed88..583c196e3dc3 100644 --- a/_maps/RandomRuins/BeachRuins/beach_ocean_town.dmm +++ b/_maps/RandomRuins/BeachRuins/beach_ocean_town.dmm @@ -3308,7 +3308,7 @@ /area/overmap_encounter/planetoid/beachplanet/explored) "MY" = ( /obj/structure/table, -/obj/item/book/manual/wiki/barman_recipes, +/obj/item/book/manual/wiki/drinks, /turf/open/floor/wood{ light_range = 2 }, @@ -3321,7 +3321,7 @@ /area/overmap_encounter/planetoid/beachplanet/explored) "Ni" = ( /obj/structure/table/wood, -/obj/item/book/manual/wiki/medical_cloning, +/obj/item/book/manual/wiki/medicine, /obj/machinery/light/small/directional/west, /turf/open/floor/wood, /area/ruin/beach/oceantown) diff --git a/_maps/RandomRuins/IceRuins/icemoon_hydroponics_lab.dmm b/_maps/RandomRuins/IceRuins/icemoon_hydroponics_lab.dmm index 96126bfbaf4e..67613238e83d 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_hydroponics_lab.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_hydroponics_lab.dmm @@ -870,7 +870,7 @@ /turf/open/floor/plasteel/tech, /area/ruin/powered/hydroponicslab) "oo" = ( -/obj/item/gun/ballistic/automatic/pistol/m1911/no_mag{ +/obj/item/gun/ballistic/automatic/pistol/candor/no_mag{ pixel_x = 2; pixel_y = -3 }, @@ -1794,7 +1794,7 @@ /area/ruin/powered/hydroponicslab) "Mz" = ( /obj/effect/decal/cleanable/blood, -/obj/item/gun/ballistic/automatic/pistol/m1911/no_mag, +/obj/item/gun/ballistic/automatic/pistol/candor/no_mag, /obj/effect/turf_decal/techfloor{ dir = 4 }, diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm index 4e44e6fb41e0..b514b1c40f9c 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm @@ -617,7 +617,7 @@ /obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/obj/item/book/manual/wiki/engineering_singulo_tesla, +/obj/item/book/manual/wiki/engineering, /turf/open/floor/plasteel/icemoon, /area/ruin) "bE" = ( @@ -828,7 +828,7 @@ /turf/open/floor/plasteel/icemoon, /area/ruin) "cc" = ( -/obj/item/book/manual/wiki/atmospherics, +/obj/item/book/manual/wiki/engineering, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_drakelair.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_drakelair.dmm index 4c8ccc99dfcb..f089a09b8fba 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_drakelair.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_drakelair.dmm @@ -127,7 +127,8 @@ "iT" = ( /obj/structure/stone_tile/slab, /mob/living/simple_animal/hostile/megafauna/dragon/icemoon{ - loot = list(/obj/structure/closet/crate/necropolis/dragon,/obj/item/keycard/gatedrop/drakelair) + loot = list(/obj/structure/closet/crate/necropolis/dragon,/obj/item/keycard/gatedrop/drakelair); + crusher_loot = list(/obj/structure/closet/crate/necropolis/dragon/crusher,/obj/item/keycard/gatedrop/drakelair) }, /turf/open/indestructible/boss, /area/ruin) diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_hermit.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_hermit.dmm index 06f364c61fea..3f105e83ef81 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_hermit.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_hermit.dmm @@ -56,7 +56,7 @@ /turf/open/floor/wood, /area/ruin/powered) "sC" = ( -/obj/item/gun/ballistic/rifle/boltaction, +/obj/item/gun/ballistic/rifle/illestren, /obj/structure/table/wood, /obj/item/flashlight/lantern, /turf/open/floor/wood, diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_oldstation.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_oldstation.dmm index b63742662227..162934ae538b 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_oldstation.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_oldstation.dmm @@ -1416,7 +1416,6 @@ "ex" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, -/obj/item/book/manual/wiki/security_space_law, /obj/effect/turf_decal/corner/opaque/red{ dir = 1 }, diff --git a/_maps/RandomRuins/JungleRuins/jungle_abandoned_library.dmm b/_maps/RandomRuins/JungleRuins/jungle_abandoned_library.dmm index 71b31e40d1fd..007b969e0985 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_abandoned_library.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_abandoned_library.dmm @@ -597,7 +597,7 @@ /obj/effect/turf_decal/siding/wood{ dir = 4 }, -/obj/item/book/manual/wiki/medical_cloning{ +/obj/item/book/manual/wiki/medicine{ pixel_x = 14 }, /obj/structure/fluff/paper/stack{ @@ -1305,7 +1305,7 @@ /obj/effect/turf_decal/siding/wood{ dir = 4 }, -/obj/item/book/manual/wiki/engineering_guide{ +/obj/item/book/manual/wiki/engineering{ pixel_x = -6; pixel_y = 9 }, @@ -1581,7 +1581,7 @@ /obj/effect/turf_decal/siding/wood{ dir = 4 }, -/obj/item/book/manual/wiki/plumbing{ +/obj/item/book/manual/wiki/piloting{ pixel_y = 7; pixel_x = 5 }, @@ -2058,7 +2058,7 @@ /obj/effect/turf_decal/siding/wood{ dir = 4 }, -/obj/item/book/manual/wiki/telescience{ +/obj/item/book/manual/wiki/surgery{ pixel_y = 11; pixel_x = -4 }, @@ -2760,7 +2760,7 @@ /obj/effect/turf_decal/siding/wood{ dir = 4 }, -/obj/item/book/manual/wiki/robotics_cyborgs{ +/obj/item/book/manual/wiki/robotics{ pixel_x = -5; pixel_y = 4 }, @@ -2929,7 +2929,7 @@ /turf/open/floor/wood, /area/ruin/jungle) "SN" = ( -/obj/item/book/manual/wiki/research_and_development{ +/obj/item/book/manual/wiki/command{ pixel_y = 5; pixel_x = -5 }, @@ -2980,7 +2980,7 @@ /turf/closed/mineral/random/jungle, /area/ruin/jungle) "TE" = ( -/obj/structure/bookcase/manuals/research_and_development, +/obj/structure/bookcase/manuals/chemistry, /turf/open/floor/wood, /area/ruin/jungle) "TH" = ( @@ -3254,7 +3254,7 @@ /obj/effect/turf_decal/siding/wood{ dir = 4 }, -/obj/item/book/manual/wiki/infections{ +/obj/item/book/manual/wiki/piloting{ pixel_x = 2; pixel_y = 10 }, diff --git a/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm b/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm index c8cd0dfd8964..645aa9e6d127 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm @@ -544,7 +544,7 @@ /area/overmap_encounter/planetoid/jungle/explored) "dZ" = ( /obj/structure/table/wood, -/obj/item/book/manual/wiki/engineering_guide, +/obj/item/book/manual/wiki/engineering, /obj/machinery/light/small/broken/directional/west, /turf/open/floor/wood, /area/ruin/jungle/starport) @@ -1939,7 +1939,7 @@ /area/overmap_encounter/planetoid/jungle/explored) "nI" = ( /obj/structure/table/wood, -/obj/item/book/manual/wiki/toxins, +/obj/item/book/manual/wiki/chemistry, /obj/machinery/light/small/broken/directional/east, /turf/open/floor/wood{ icon_state = "wood-broken3" diff --git a/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm b/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm index cca97a317ce2..4242fcba0327 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm @@ -1379,7 +1379,7 @@ /obj/item/gun/ballistic/shotgun/automatic/combat{ pixel_y = 5 }, -/obj/item/gun/ballistic/revolver/nagant{ +/obj/item/gun/ballistic/revolver/ashhand{ pixel_y = -1 }, /turf/open/floor/plasteel/tech, @@ -1760,13 +1760,12 @@ pixel_x = -3; pixel_y = -5 }, -/obj/item/ammo_box/n762_clip, -/obj/item/ammo_box/n762, +/obj/item/ammo_casing/a4570, /obj/item/ammo_box/magazine/aks74u, /obj/item/ammo_box/magazine/aks74u, /obj/item/ammo_box/magazine/aks74u, -/obj/item/ammo_box/n762, -/obj/item/ammo_box/n762_clip, +/obj/item/ammo_box/magazine/illestren_a850r, +/obj/item/ammo_box/magazine/illestren_a850r, /turf/open/floor/plasteel/tech, /area/ruin/jungle/cavecrew/security) "vr" = ( @@ -2332,14 +2331,10 @@ dir = 1 }, /obj/effect/turf_decal/siding/wood/corner, -/obj/item/book/manual/wiki/engineering_guide{ +/obj/item/book/manual/wiki/engineering{ pixel_x = 5; pixel_y = -7 }, -/obj/item/book/manual/wiki/grenades{ - pixel_x = -3; - pixel_y = 1 - }, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/wrapping, /turf/open/floor/wood, @@ -2818,11 +2813,11 @@ dir = 1 }, /obj/effect/turf_decal/siding/wood, -/obj/item/book/manual/wiki/engineering_hacking{ +/obj/item/book/manual/wiki/hacking{ pixel_x = -8; pixel_y = 6 }, -/obj/item/book/manual/wiki/cooking_to_serve_man{ +/obj/item/book/manual/wiki/cooking{ pixel_x = 5; pixel_y = -6 }, @@ -3119,7 +3114,7 @@ /obj/structure/table/reinforced{ color = "#c1b6a5" }, -/obj/machinery/fax/frontiersmen, +/obj/machinery/fax/ruin, /turf/open/floor/plasteel/tech, /area/ruin/jungle/cavecrew/bridge) "Ls" = ( @@ -3782,7 +3777,7 @@ color = "#66b266"; dir = 4 }, -/obj/item/book/manual/wiki/experimentor{ +/obj/item/book/manual/wiki/surgery{ pixel_x = 10; pixel_y = -5 }, diff --git a/_maps/RandomRuins/JungleRuins/jungle_demon.dmm b/_maps/RandomRuins/JungleRuins/jungle_demon.dmm index adbb037af38c..523c618d2244 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_demon.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_demon.dmm @@ -515,7 +515,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/suit_storage_unit/inherit, /obj/item/tank/internals/oxygen/red, -/obj/item/clothing/suit/space/hardsuit/syndi, +/obj/item/clothing/suit/space/hardsuit/syndi/ramzi, /obj/item/clothing/mask/gas/syndicate, /turf/open/floor/plasteel/dark, /area/ruin/powered) diff --git a/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm b/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm index 7aa1aa7bfd2c..720ed17fc830 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm @@ -745,7 +745,7 @@ /obj/effect/mob_spawn/human/corpse/assistant{ outfit = /datum/outfit/job/chemist }, -/obj/item/gun/ballistic/automatic/pistol/m1911/no_mag{ +/obj/item/gun/ballistic/automatic/pistol/candor/no_mag{ pixel_y = -13 }, /turf/open/floor/plating/dirt/jungle/wasteland/lit, diff --git a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm b/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm index cc5902f26a82..5aff7b4501b5 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm @@ -5802,7 +5802,7 @@ /area/overmap_encounter/planetoid/cave/explored) "Lv" = ( /obj/structure/table/reinforced, -/obj/item/book/manual/wiki/tcomms{ +/obj/item/book/manual/wiki/construction{ pixel_x = -7; pixel_y = 4 }, @@ -6376,10 +6376,6 @@ /obj/item/radio/intercom/directional/south{ name = "Station Intercom (General)" }, -/obj/item/book/manual/wiki/security_space_law{ - pixel_x = -4; - pixel_y = 4 - }, /turf/open/floor/mineral/plastitanium/red/brig, /area/overmap_encounter/planetoid/cave/explored) "OC" = ( diff --git a/_maps/RandomRuins/JungleRuins/jungle_pirate.dmm b/_maps/RandomRuins/JungleRuins/jungle_pirate.dmm index 55bb54c7012d..83f17d9f7026 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_pirate.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_pirate.dmm @@ -265,7 +265,7 @@ /turf/open/floor/wood, /area/ruin/unpowered) "LD" = ( -/obj/item/ammo_box/n762, +/obj/item/ammo_box/c45_speedloader, /obj/structure/table/wood/poker, /turf/open/floor/wood, /area/ruin/unpowered) @@ -313,9 +313,9 @@ /area/ruin/unpowered) "Sk" = ( /obj/structure/safe, -/obj/item/gun/ballistic/shotgun/lethal, -/obj/item/gun/ballistic/shotgun/lethal, -/obj/item/gun/ballistic/shotgun/lethal, +/obj/item/gun/ballistic/shotgun/brimstone, +/obj/item/gun/ballistic/shotgun/brimstone, +/obj/item/gun/ballistic/shotgun/brimstone, /obj/item/gun/grenadelauncher, /turf/open/floor/wood, /area/ruin/unpowered) diff --git a/_maps/RandomRuins/JungleRuins/jungle_surface_bombmakers_cabin.dmm b/_maps/RandomRuins/JungleRuins/jungle_surface_bombmakers_cabin.dmm index 1952fa3e16c8..ca1c8dc0794f 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_surface_bombmakers_cabin.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_surface_bombmakers_cabin.dmm @@ -219,11 +219,6 @@ /area/overmap_encounter/planetoid/jungle/explored) "wK" = ( /obj/structure/table/wood, -/obj/item/book/manual/wiki/grenades{ - desc = "Some kind of manual about making hellish grenades and explosives. Completely unreadable, but you feel as though you've gained a level in explosives."; - name = "Pete's Lesson"; - pixel_y = 3 - }, /turf/open/floor/wood{ icon_state = "wood-broken5" }, diff --git a/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm b/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm index 018739e20dc4..ebd333289382 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm @@ -1330,7 +1330,7 @@ "OW" = ( /obj/structure/table/reinforced, /obj/item/trash/syndi_cakes, -/obj/machinery/fax, +/obj/machinery/fax/ruin, /turf/open/floor/plating, /area/ruin/jungle/syndifort/jerry) "Ph" = ( diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_codelab.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_codelab.dmm index 1bbc1b76a834..1ff358a4dd8b 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_codelab.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_codelab.dmm @@ -545,7 +545,7 @@ /turf/open/floor/plasteel/white, /area/ruin/unpowered/codelab/storage) "gz" = ( -/obj/structure/bookcase/manuals/research_and_development, +/obj/structure/bookcase/manuals/chemistry, /turf/open/floor/plasteel/white, /area/ruin/unpowered/codelab/reception) "gC" = ( diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_fuckedupandevilclub.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_fuckedupandevilclub.dmm index 98488b286f8d..2cffcb4d76bd 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_fuckedupandevilclub.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_fuckedupandevilclub.dmm @@ -562,7 +562,7 @@ /obj/structure/table/reinforced, /obj/item/ammo_casing/shotgun/incendiary, /obj/item/ammo_casing/shotgun/dragonsbreath, -/obj/item/gun/ballistic/shotgun/lethal, +/obj/item/gun/ballistic/shotgun/brimstone, /turf/open/floor/plasteel/cult, /area/ruin/unpowered) "OF" = ( diff --git a/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm b/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm index 9cf2b5a40bae..d78e01dbae06 100644 --- a/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm +++ b/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm @@ -1608,10 +1608,6 @@ /area/ruin/powered) "AY" = ( /obj/structure/table/wood, -/obj/item/book/manual/wiki/security_space_law{ - pixel_x = 12; - pixel_y = 2 - }, /obj/item/flashlight/lamp{ pixel_y = 4 }, @@ -2130,7 +2126,7 @@ pixel_x = 5; pixel_y = -9 }, -/obj/item/gun/ballistic/automatic/pistol/m1911/no_mag, +/obj/item/gun/ballistic/automatic/pistol/candor/no_mag, /obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/ruin/powered) diff --git a/_maps/RandomRuins/RockRuins/rockplanet_house.dmm b/_maps/RandomRuins/RockRuins/rockplanet_house.dmm index 275e2b7b1c17..e06f8a456840 100644 --- a/_maps/RandomRuins/RockRuins/rockplanet_house.dmm +++ b/_maps/RandomRuins/RockRuins/rockplanet_house.dmm @@ -11,7 +11,7 @@ /area/ruin/unpowered) "h" = ( /obj/structure/table/wood, -/obj/item/gun/ballistic/automatic/pistol/m1911, +/obj/item/gun/ballistic/automatic/pistol/candor, /obj/item/ammo_box/magazine/m45, /obj/effect/gibspawner/human/bodypartless, /obj/item/ammo_box/magazine/m45, diff --git a/_maps/RandomRuins/RockRuins/rockplanet_miningexpedition.dmm b/_maps/RandomRuins/RockRuins/rockplanet_miningexpedition.dmm index e4f0f716266c..f617a687b16c 100644 --- a/_maps/RandomRuins/RockRuins/rockplanet_miningexpedition.dmm +++ b/_maps/RandomRuins/RockRuins/rockplanet_miningexpedition.dmm @@ -41,6 +41,12 @@ /obj/structure/sign/poster/contraband/tools, /turf/closed/wall/r_wall/rust, /area/ruin/unpowered) +"js" = ( +/obj/item/chair, +/obj/effect/decal/cleanable/blood, +/obj/item/gun/ballistic/automatic/pistol/candor, +/turf/open/floor/plasteel/grimy, +/area/ruin/unpowered) "lg" = ( /obj/structure/table, /obj/machinery/microwave, @@ -162,6 +168,12 @@ /obj/machinery/vending/mining_equipment, /turf/open/floor/plasteel/mono, /area/ruin/unpowered) +"Cy" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/mob_spawn/human/miner, +/obj/item/pickaxe, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) "CL" = ( /obj/structure/sign/poster/random, /turf/closed/wall/r_wall/rust, @@ -262,12 +274,6 @@ }, /turf/open/floor/plasteel/rockvault, /area/ruin/unpowered) -"Qo" = ( -/obj/effect/decal/cleanable/blood, -/obj/effect/mob_spawn/human/miner, -/obj/item/pickaxe, -/turf/open/floor/plating/asteroid/rockplanet/lit, -/area/overmap_encounter/planetoid/rockplanet/explored) "Qr" = ( /obj/effect/turf_decal/rechargefloor, /obj/structure/mecha_wreckage/ripley, @@ -293,12 +299,6 @@ /obj/machinery/light/broken/directional/east, /turf/open/floor/plasteel/grimy, /area/ruin/unpowered) -"TI" = ( -/obj/item/chair, -/obj/effect/decal/cleanable/blood, -/obj/item/gun/ballistic/automatic/pistol/m1911, -/turf/open/floor/plasteel/grimy, -/area/ruin/unpowered) "Uu" = ( /obj/machinery/light/broken/directional/north, /obj/effect/decal/cleanable/oil, @@ -448,7 +448,7 @@ tN (5,1,1) = {" yZ yZ -Qo +Cy yZ Vw YN @@ -523,7 +523,7 @@ yZ tN yZ Vw -TI +js Wz Vw yZ diff --git a/_maps/RandomRuins/RockRuins/rockplanet_nomadcrash.dmm b/_maps/RandomRuins/RockRuins/rockplanet_nomadcrash.dmm index 5fee55e35c6d..35c9612a7998 100644 --- a/_maps/RandomRuins/RockRuins/rockplanet_nomadcrash.dmm +++ b/_maps/RandomRuins/RockRuins/rockplanet_nomadcrash.dmm @@ -1128,7 +1128,7 @@ /obj/item/ammo_box/magazine/m45{ pixel_x = 7 }, -/obj/item/gun/ballistic/automatic/pistol/m1911/no_mag, +/obj/item/gun/ballistic/automatic/pistol/candor/no_mag, /turf/open/floor/plating/ashplanet/rocky, /area/ruin/rockplanet/nanotrasen) "HG" = ( diff --git a/_maps/RandomRuins/RockRuins/rockplanet_saloon.dmm b/_maps/RandomRuins/RockRuins/rockplanet_saloon.dmm index a7af51d9a489..3b597c46f4e4 100644 --- a/_maps/RandomRuins/RockRuins/rockplanet_saloon.dmm +++ b/_maps/RandomRuins/RockRuins/rockplanet_saloon.dmm @@ -291,7 +291,7 @@ /area/overmap_encounter/planetoid/rockplanet/explored) "hj" = ( /obj/structure/table/wood, -/obj/item/book/manual/wiki/barman_recipes{ +/obj/item/book/manual/wiki/drinks{ pixel_x = -2; pixel_y = 12 }, @@ -477,7 +477,7 @@ pixel_x = 4; pixel_y = 6 }, -/obj/item/gun/ballistic/shotgun/riot{ +/obj/item/gun/ballistic/shotgun/hellfire{ pixel_x = -10; pixel_y = 2 }, diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm index aaea1e5ca79d..379e35a7d2f9 100644 --- a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm +++ b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm @@ -744,7 +744,7 @@ /area/ruin) "Df" = ( /obj/structure/table, -/obj/item/gun/ballistic/rifle/boltaction/polymer, +/obj/item/gun/ballistic/rifle/polymer, /turf/open/floor/concrete, /area/ruin) "Di" = ( @@ -882,7 +882,7 @@ "Hn" = ( /obj/structure/closet/secure_closet/hydroponics, /obj/item/circuitboard/machine/plantgenes, -/obj/item/gun/ballistic/rifle/boltaction/polymer, +/obj/item/gun/ballistic/rifle/polymer, /turf/open/floor/wood, /area/ruin) "HP" = ( @@ -923,7 +923,7 @@ /area/overmap_encounter/planetoid/sand/explored) "Ig" = ( /obj/structure/table, -/obj/item/gun/ballistic/automatic/pistol/m1911, +/obj/item/gun/ballistic/automatic/pistol/candor, /turf/open/floor/concrete, /area/ruin) "Io" = ( diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm index 6b6f03797383..673b21cf90ae 100644 --- a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm +++ b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm @@ -1342,7 +1342,7 @@ /area/ruin/whitesands/saloon) "Oc" = ( /obj/structure/closet/cabinet, -/obj/item/gun/ballistic/shotgun/riot, +/obj/item/gun/ballistic/shotgun/hellfire, /obj/item/storage/box/rubbershot{ pixel_x = -5; pixel_y = 5 diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_pubbyslopcrash.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_pubbyslopcrash.dmm index 1cd150e9b8dc..244eef61fa03 100644 --- a/_maps/RandomRuins/SandRuins/whitesands_surface_pubbyslopcrash.dmm +++ b/_maps/RandomRuins/SandRuins/whitesands_surface_pubbyslopcrash.dmm @@ -1,156 +1,137 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"as" = ( -/obj/machinery/light/directional/north, -/obj/structure/table/reinforced, -/obj/machinery/reagentgrinder{ - pixel_x = 6; - pixel_y = 14 +"ab" = ( +/obj/effect/decal/fakelattice{ + icon_state = "lattice-141" }, -/obj/item/reagent_containers/food/snacks/meat/slab/xeno, -/turf/open/floor/plastic, -/area/ruin/whitesands/pubbycrash) +/turf/open/floor/plating/asteroid/whitesands/dried, +/area/overmap_encounter/planetoid/cave/explored) +"as" = ( +/obj/machinery/door/airlock/public/glass, +/turf/open/floor/plasteel, +/area/ruin/whitesands/pubbycrash/split) "aR" = ( -/obj/structure/sign/number/one, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/stack/ore/salvage/scrapmetal, -/turf/open/floor/engine, -/area/ruin/whitesands/pubbycrash) -"ba" = ( -/obj/machinery/door/airlock/external/glass, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/layer_manifold, -/turf/open/floor/plasteel/dark, -/area/ruin/whitesands/pubbycrash) -"by" = ( -/obj/effect/decal/cleanable/dirt/dust, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "2-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/pod, -/area/ruin/whitesands/pubbycrash) -"bS" = ( -/obj/item/t_scanner/adv_mining_scanner/lesser, -/obj/item/kinetic_crusher, -/obj/structure/rack, -/obj/item/pickaxe/mini, -/obj/item/pickaxe/mini, -/obj/effect/turf_decal/siding/brown, -/obj/item/gun/energy/kinetic_accelerator, -/obj/machinery/firealarm/directional/south, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech/techmaint, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash/engine_room) +"ba" = ( +/obj/structure/salvageable/computer, +/obj/item/stack/ore/salvage/scrapgold, +/turf/open/floor/plasteel/tech, /area/ruin/whitesands/pubbycrash) -"bW" = ( +"by" = ( /obj/effect/turf_decal/box, -/obj/structure/table/reinforced, -/obj/item/storage/toolbox/mechanical{ - pixel_x = 2; - pixel_y = -2 - }, -/obj/item/storage/toolbox/mechanical{ - pixel_x = -3; - pixel_y = 1 - }, -/obj/item/storage/toolbox/electrical{ - pixel_x = 2; - pixel_y = 3 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/railing{ dir = 1 }, /obj/effect/turf_decal/industrial/warning{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/obj/structure/salvageable/computer, /turf/open/floor/plasteel, /area/ruin/whitesands/pubbycrash) +"bS" = ( +/obj/structure/girder/displaced, +/turf/open/floor/plating/asteroid/whitesands/dried, +/area/overmap_encounter/planetoid/cave/explored) +"bW" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/light/directional/east, +/obj/effect/gibspawner, +/obj/item/stack/ore/salvage/scrapmetal/five, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/whitesands/pubbycrash/engine_room) "bZ" = ( /turf/open/floor/plating/asteroid/whitesands, -/area/overmap_encounter/planetoid/sand) +/area/overmap_encounter/planetoid/sand/explored) +"ch" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/whitesands/pubbycrash/engine_room) "ck" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/warning{ +/obj/effect/turf_decal/industrial/warning, +/obj/machinery/button/door{ + id = "pubbywspodsw"; + name = "Pod Door Control"; + pixel_x = -25; dir = 4 }, -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/dark, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/engine, /area/ruin/whitesands/pubbycrash) "co" = ( /obj/structure/cable{ icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable{ - icon_state = "1-4" - }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/patterned/grid, /area/ruin/whitesands/pubbycrash) "cp" = ( -/obj/effect/turf_decal/spline/fancy/opaque/black, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/dark, -/area/ruin/whitesands/pubbycrash) +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/effect/turf_decal/industrial/warning, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash/engine_room) "ct" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/airalarm/directional/south, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 +/obj/structure/bed/dogbed{ + anchored = 1; + name = "citrus's bed" }, -/obj/effect/decal/cleanable/vomit/old, -/turf/open/floor/plasteel/grimy, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 9 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/pod, /area/ruin/whitesands/pubbycrash) "cx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/item/stack/ore/salvage/scrapmetal, -/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/machinery/firealarm/directional/south, /turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) "cN" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ruin/whitesands/pubbycrash) -"di" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 12 +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/ash{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/effect/decal/cleanable/ash{ + pixel_x = -2; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/ash{ + pixel_x = -6; + pixel_y = 8 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + initial_gas_mix = "ws_atmos" }, +/area/ruin/whitesands/pubbycrash/split) +"di" = ( +/obj/effect/turf_decal/box, +/obj/structure/table/reinforced, /obj/structure/railing, -/obj/machinery/airalarm/directional/east, -/obj/item/stack/sheet/cotton/cloth, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plastic, +/obj/effect/turf_decal/industrial/warning, +/turf/open/floor/plasteel, /area/ruin/whitesands/pubbycrash) "dm" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "engine fuel pump" - }, -/obj/effect/spawner/lootdrop/maintenance/two, -/turf/open/floor/plasteel/tech, -/area/ruin/whitesands/pubbycrash) -"dW" = ( -/obj/item/stack/cable_coil/cut/red, -/obj/item/stack/ore/salvage/scrapgold, -/turf/open/floor/plating, -/area/ruin/whitesands/pubbycrash) -"ek" = ( /obj/effect/turf_decal/industrial/stand_clear, /obj/effect/turf_decal/industrial/warning, /obj/machinery/button/door{ @@ -164,434 +145,475 @@ /obj/structure/salvageable/server, /turf/open/floor/engine, /area/ruin/whitesands/pubbycrash) -"eq" = ( -/obj/structure/sign/number/one, -/obj/effect/decal/cleanable/vomit/old, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/engine, -/area/ruin/whitesands/pubbycrash) -"ff" = ( -/obj/structure/railing{ - dir = 4 +"dW" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable{ +/obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/machinery/airalarm/directional/west, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/stairs{ - dir = 1 - }, -/area/ruin/whitesands/pubbycrash) -"fk" = ( -/obj/structure/table/reinforced, -/obj/item/storage/fancy/donut_box{ - pixel_y = 2 - }, +/obj/effect/decal/cleanable/dirt/dust, /obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/structure/sign/poster/official/random{ - pixel_y = -32 + dir = 4 }, -/obj/structure/railing{ +/obj/effect/turf_decal/number/nine{ dir = 4 }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/plasteel/dark, -/area/ruin/whitesands/pubbycrash) -"fA" = ( -/obj/machinery/light/directional/east, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 +/obj/item/stock_parts/cell/hyper, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash/engine_room) +"ek" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 9 }, -/obj/structure/sign/poster/official/random{ - pixel_x = 32 - }, -/obj/effect/spawner/lootdrop/maintenance/two, +/obj/item/stack/ore/salvage/scrapmetal, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) -"fO" = ( -/obj/machinery/power/terminal{ +"eq" = ( +/obj/structure/railing{ dir = 8 }, -/obj/structure/cable{ - icon_state = "0-4" +/obj/item/kirbyplants/random, +/obj/structure/railing{ + dir = 4 }, -/obj/effect/spawner/lootdrop/maintenance/two, -/turf/open/floor/plasteel/tech, -/area/ruin/whitesands/pubbycrash) -"fR" = ( -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 +/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, -/obj/machinery/firealarm/directional/west, -/obj/item/stack/ore/salvage/scraptitanium, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel, +/area/ruin/whitesands/pubbycrash/split) +"ff" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/ore/salvage/scraptitanium, +/turf/open/floor/engine, /area/ruin/whitesands/pubbycrash) -"fX" = ( -/obj/effect/turf_decal/box/corners{ - dir = 4 +"fk" = ( +/obj/structure/closet/wall/blue{ + dir = 1; + name = "Captain's locker"; + pixel_y = -28 }, -/obj/item/stack/ore/salvage/scrapmetal/five, +/obj/item/clothing/suit/space/hardsuit/mining/heavy, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/engine, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/ash/large, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + initial_gas_mix = "ws_atmos" + }, +/area/ruin/whitesands/pubbycrash/split) +"fr" = ( +/obj/machinery/door/airlock/external/glass, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/layer_manifold, +/turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) -"gg" = ( -/obj/structure/reagent_dispensers/servingdish, +"fA" = ( +/obj/effect/turf_decal/box, /obj/structure/table/reinforced, -/obj/item/kitchen/spoon/plastic{ +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/effect/spawner/lootdrop/maintenance/five, +/obj/effect/spawner/lootdrop/maintenance/five, +/turf/open/floor/plasteel, +/area/ruin/whitesands/pubbycrash) +"fO" = ( +/obj/item/stack/ore/salvage/scrapmetal/five{ + pixel_y = -9; pixel_x = 6 }, -/obj/item/kitchen/spoon/plastic{ - pixel_x = -1 +/turf/open/floor/plating/asteroid/whitesands/lit, +/area/overmap_encounter/planetoid/sand/explored) +"fR" = ( +/obj/structure/cable/yellow{ + icon_state = "0-8" }, -/obj/item/kitchen/spoon/plastic{ - pixel_x = 13 +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash/engine_room) +"fX" = ( +/obj/structure/cable{ + icon_state = "1-8" }, -/turf/open/floor/plastic, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/obj/effect/decal/cleanable/glass, +/obj/effect/turf_decal/industrial/warning{ + dir = 9 + }, +/obj/structure/salvageable/machine, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/whitesands/pubbycrash/engine_room) +"ge" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/ash{ + pixel_x = 2; + pixel_y = -2 + }, +/obj/effect/decal/cleanable/ash{ + pixel_y = -3; + pixel_x = -6 + }, +/obj/item/gun/energy/laser/hitscanpistol, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + initial_gas_mix = "ws_atmos" + }, +/area/ruin/whitesands/pubbycrash/split) +"gg" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/effect/decal/cleanable/vomit/old, +/obj/effect/decal/cleanable/vomit/old, +/obj/item/stack/ore/salvage/scrapmetal, +/obj/effect/mob_spawn/human/corpse/nanotrasenassaultsoldier, +/obj/effect/gibspawner, +/turf/open/floor/plasteel/tech, /area/ruin/whitesands/pubbycrash) "gs" = ( /obj/effect/decal/fakelattice{ icon_state = "lattice-8" }, /turf/open/floor/plating/asteroid/whitesands/lit, -/area/overmap_encounter/planetoid/sand) +/area/overmap_encounter/planetoid/sand/explored) "gu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "2-4" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, /obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/patterned/grid, -/area/ruin/whitesands/pubbycrash) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/whitesands/pubbycrash/engine_room) "gx" = ( /obj/effect/decal/fakelattice{ icon_state = "lattice-5" }, /turf/open/floor/plating/asteroid/whitesands/lit, -/area/overmap_encounter/planetoid/sand) +/area/overmap_encounter/planetoid/sand/explored) "gy" = ( -/obj/effect/turf_decal/box, -/obj/structure/table/reinforced, -/obj/structure/railing, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel, -/area/ruin/whitesands/pubbycrash) +/obj/machinery/power/apc/auto_name/directional/east{ + start_charge = 0 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/whitesands/pubbycrash/engine_room) "gG" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/chair{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/effect/turf_decal/industrial/warning{ dir = 4 }, -/obj/machinery/door/airlock/engineering{ +/obj/effect/turf_decal/number/seven{ dir = 4 }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/dark, -/area/ruin/whitesands/pubbycrash) +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash/engine_room) "gL" = ( -/obj/effect/turf_decal/box/corners{ +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/industrial/outline/orange, +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/whitesands/pubbycrash/engine_room) +"hh" = ( +/turf/closed/mineral/random/whitesands, +/area/ruin/whitesands/pubbycrash) +"ho" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 4 }, +/obj/structure/railing/corner, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/directional/south, +/obj/effect/decal/cleanable/garbage, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash/engine_room) +"hz" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 10 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/structure/salvageable/safe_server, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"ih" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black, +/obj/item/stack/ore/salvage/scraptitanium, /obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/engine, +/turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) -"hh" = ( -/obj/machinery/door/airlock/external/glass, +"iw" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin, +/obj/item/pen, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/noticeboard{ + pixel_y = 31 + }, /obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/obj/effect/turf_decal/industrial/warning{ +/obj/structure/railing{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) -"ho" = ( +"iW" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "engine fuel pump" + }, +/obj/effect/spawner/lootdrop/maintenance/two, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash/engine_room) +"jt" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "0-4" }, -/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 4 }, -/obj/effect/decal/cleanable/oil, -/obj/effect/decal/cleanable/vomit/old, -/turf/open/floor/plasteel/tech/techmaint, -/area/ruin/whitesands/pubbycrash) -"hz" = ( -/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 6 + }, +/obj/structure/salvageable/server, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash/engine_room) +"jA" = ( +/obj/machinery/firealarm/directional/west, +/obj/effect/decal/fakelattice{ + icon_state = "lattice-2" + }, +/turf/open/floor/plating/asteroid/whitesands/dried, +/area/overmap_encounter/planetoid/cave/explored) +"jF" = ( /obj/structure/railing/corner{ dir = 8 }, -/obj/structure/railing/corner, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/decal/cleanable/vomit/old, -/turf/open/floor/plasteel/tech, -/area/ruin/whitesands/pubbycrash) -"hA" = ( -/obj/structure/closet/wall/red{ - dir = 4; - name = "Pilots locker"; - pixel_x = -29; - welded = 1 +/obj/structure/railing{ + dir = 4 }, -/obj/item/clothing/under/suit/black, -/obj/item/clothing/under/suit/black, -/obj/item/clothing/suit/jacket, -/obj/item/clothing/suit/jacket, -/obj/item/clothing/head/beret/black, -/obj/item/clothing/head/beret/black, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 1 }, -/obj/item/clothing/under/rank/security/officer/nt, -/obj/item/clothing/under/rank/security/officer/nt, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/whitesands/pubbycrash) -"iw" = ( -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor{ - id = "whiteship_windows" - }, -/turf/open/floor/plating, -/area/ruin/whitesands/pubbycrash) -"iW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/catwalk, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ruin/whitesands/pubbycrash) -"jt" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/spawner/lootdrop/maintenance/two, -/turf/open/floor/engine, -/area/ruin/whitesands/pubbycrash) -"jA" = ( -/obj/item/trash/cheesie{ - pixel_x = 5; - pixel_y = 6 - }, -/obj/structure/table/reinforced{ - color = "#c1b6a5" - }, -/turf/open/floor/plasteel/grimy, -/area/ruin/whitesands/pubbycrash) -"jF" = ( -/obj/item/stack/ore/salvage/scraptitanium, -/turf/open/floor/plating, -/area/ruin/whitesands/pubbycrash) +/area/ruin/whitesands/pubbycrash/split) "jG" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/ntspaceworks_small/left{ - dir = 4 - }, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ - dir = 4; - faction = list("saloon") - }, -/turf/open/floor/plasteel/tech, -/area/ruin/whitesands/pubbycrash) +/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4, +/turf/open/floor/engine/hull, +/area/ruin/whitesands/pubbycrash/engine_room) "kp" = ( /obj/structure/girder/displaced, /turf/open/floor/plating/asteroid/whitesands/lit, -/area/overmap_encounter/planetoid/sand) +/area/overmap_encounter/planetoid/sand/explored) "kA" = ( -/obj/item/reagent_containers/food/drinks/britcup{ - pixel_x = 9; - pixel_y = -3 - }, -/obj/item/trash/pistachios{ - pixel_y = 5 - }, -/obj/structure/table/reinforced{ - color = "#c1b6a5" +/obj/structure/railing/corner, +/obj/effect/decal/fakelattice{ + icon_state = "lattice-23" }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/grimy, -/area/ruin/whitesands/pubbycrash) +/turf/open/floor/plating/asteroid/whitesands/dried, +/area/overmap_encounter/planetoid/cave/explored) "kM" = ( -/obj/structure/table/reinforced, -/obj/machinery/power/apc/auto_name/directional/north{ - start_charge = 0 - }, +/obj/machinery/holopad, +/obj/effect/decal/cleanable/dirt/dust, /obj/structure/cable{ - icon_state = "0-2" - }, -/obj/item/flashlight/lamp{ - pixel_x = -6; - pixel_y = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/railing{ - dir = 8 + icon_state = "2-8" }, -/obj/item/photo{ - pixel_y = -12 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 }, -/obj/item/toy/figure/captain{ - pixel_x = 7; - pixel_y = 12 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 }, -/obj/machinery/airalarm/directional/west, -/obj/item/stack/ore/salvage/scrapmetal, -/turf/open/floor/plasteel/tech, +/turf/open/floor/plasteel/grimy, /area/ruin/whitesands/pubbycrash) "kP" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable/yellow, -/obj/effect/spawner/lootdrop/maintenance/two, -/turf/open/floor/plasteel/tech, -/area/ruin/whitesands/pubbycrash) +/obj/item/stack/cable_coil/cut/red, +/obj/item/stack/ore/salvage/scrapgold, +/obj/item/stack/ore/salvage/scrapgold, +/obj/item/stack/ore/salvage/scrapmetal/five, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash/engine_room) "kU" = ( /obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 + icon_state = "4-8" }, -/turf/open/floor/plasteel/stairs{ - dir = 8 +/obj/structure/cable{ + icon_state = "1-4" }, +/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) "ln" = ( -/obj/structure/cable/yellow{ - icon_state = "0-8" +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/emcloset/wall{ + dir = 1; + pixel_y = -28 }, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/salvageable/machine, -/turf/open/floor/plasteel/tech, -/area/ruin/whitesands/pubbycrash) +/obj/effect/spawner/lootdrop/maintenance/two, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/whitesands/pubbycrash/engine_room) "ly" = ( -/obj/machinery/door/airlock/hatch, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/showroomfloor, -/area/ruin/whitesands/pubbycrash) -"lA" = ( -/obj/structure/table/reinforced, -/obj/item/laser_pointer, -/obj/item/radio/off{ - pixel_x = 6; - pixel_y = 14 +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 }, +/obj/effect/gibspawner, /turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) -"lB" = ( +"lA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"lB" = ( /obj/effect/decal/cleanable/dirt/dust, -/obj/structure/railing{ - dir = 8 +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "engine fuel pump" }, -/obj/structure/catwalk, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 4 +/obj/machinery/light/small/directional/north, +/obj/effect/spawner/lootdrop/maintenance/two, +/obj/item/stack/sheet/mineral/wood/fifty, +/obj/structure/closet/crate, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash/engine_room) +"lI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/ash, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + initial_gas_mix = "ws_atmos" }, -/turf/open/floor/plating, -/area/ruin/whitesands/pubbycrash) +/area/ruin/whitesands/pubbycrash/split) "lK" = ( -/obj/effect/turf_decal/box, -/obj/structure/railing, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/industrial/warning, -/obj/structure/salvageable/autolathe, -/turf/open/floor/plasteel, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/spline/fancy/opaque/black, +/turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) "lR" = ( /obj/effect/decal/fakelattice{ icon_state = "lattice-46" }, /turf/open/floor/plating/asteroid/whitesands/lit, -/area/overmap_encounter/planetoid/sand) +/area/overmap_encounter/planetoid/sand/explored) "mp" = ( -/obj/effect/decal/fakelattice{ - icon_state = "lattice-3" +/obj/effect/turf_decal/box/corners{ + dir = 4 }, -/turf/open/floor/plating/asteroid/whitesands/lit, -/area/overmap_encounter/planetoid/sand) +/obj/item/stack/ore/salvage/scrapmetal/five, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/whitesands/pubbycrash) "mH" = ( -/turf/open/floor/plating, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) "mU" = ( +/obj/structure/railing, /obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/ash{ - pixel_x = 2; - pixel_y = -2 +/obj/effect/decal/cleanable/vomit/old, +/obj/effect/mob_spawn/human/corpse/damaged/whitesands/survivor, +/turf/open/floor/plastic, +/area/ruin/whitesands/pubbycrash/split) +"mW" = ( +/obj/item/stack/ore/salvage/scrapmetal/five{ + pixel_y = -12; + pixel_x = 5 }, -/obj/effect/decal/cleanable/ash{ - pixel_y = -3; - pixel_x = -6 +/obj/effect/decal/fakelattice{ + icon_state = "lattice-4" }, -/obj/item/gun/energy/laser/hitscanpistol, +/turf/open/floor/plating/asteroid/whitesands/lit, +/area/overmap_encounter/planetoid/sand/explored) +"no" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/ash/large, /turf/open/floor/plating{ icon_state = "panelscorched"; initial_gas_mix = "ws_atmos" }, -/area/ruin/whitesands/pubbycrash) -"mW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - dir = 4 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ruin/whitesands/pubbycrash) +/area/ruin/whitesands/pubbycrash/split) "nq" = ( /obj/effect/decal/fakelattice{ icon_state = "lattice-55" }, /turf/open/floor/plating/asteroid/whitesands/lit, -/area/overmap_encounter/planetoid/sand) +/area/overmap_encounter/planetoid/sand/explored) "nG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -599,128 +621,113 @@ icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/machinery/firealarm/directional/south, +/obj/effect/decal/cleanable/wrapping, +/obj/effect/decal/cleanable/plastic, /turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) "nP" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/machinery/suit_storage_unit/open, -/turf/open/floor/plasteel/dark, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/spawner/lootdrop/maintenance/two, +/turf/open/floor/engine, /area/ruin/whitesands/pubbycrash) "nQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/patterned/grid, /area/ruin/whitesands/pubbycrash) -"oo" = ( +"oj" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/closet/emcloset/wall{ +/obj/effect/decal/cleanable/ash{ + pixel_x = 2; + pixel_y = -2 + }, +/obj/effect/decal/cleanable/ash{ + pixel_y = -2; + pixel_x = 5 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + initial_gas_mix = "ws_atmos" + }, +/area/ruin/whitesands/pubbycrash/split) +"oo" = ( +/obj/structure/closet/wall/white{ dir = 1; - pixel_y = -28 + name = "Medicine storage"; + pixel_y = -30 }, -/obj/effect/spawner/lootdrop/maintenance/two, -/turf/open/floor/plasteel/tech/grid, +/obj/item/storage/firstaid/ancient{ + pixel_x = 6; + pixel_y = -5 + }, +/obj/item/storage/firstaid/medical, +/obj/structure/sign/poster/official/random{ + pixel_x = 32 + }, +/turf/open/floor/pod, /area/ruin/whitesands/pubbycrash) "oq" = ( +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/item/stack/ore/salvage/scrapmetal, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/dark, +/turf/open/floor/engine, /area/ruin/whitesands/pubbycrash) "oO" = ( -/obj/effect/decal/fakelattice, -/turf/open/floor/plating/asteroid/whitesands/lit, -/area/overmap_encounter/planetoid/sand) -"oS" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/table/reinforced, +/obj/item/laser_pointer, +/obj/item/radio/off{ + pixel_x = 6; + pixel_y = 14 }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech, +/turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) +"oS" = ( +/obj/effect/decal/fakelattice{ + icon_state = "lattice-55" + }, +/turf/open/floor/plating/asteroid/whitesands/dried, +/area/overmap_encounter/planetoid/cave/explored) "pe" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/obj/effect/decal/cleanable/dirt/dust, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/obj/structure/railing{ dir = 8 }, -/obj/structure/catwalk, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 - }, -/obj/item/stock_parts/cell/hyper{ - pixel_x = 5; - pixel_y = 4 - }, -/obj/item/stack/ore/salvage/scrapmetal/five{ - pixel_x = -9 - }, -/turf/open/floor/plating, -/area/ruin/whitesands/pubbycrash) -"pu" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, +/obj/effect/turf_decal/industrial/hatch/yellow, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/effect/turf_decal/ntspaceworks_small/right{ +/obj/machinery/door/airlock/external{ dir = 4 }, -/obj/effect/decal/cleanable/vomit/old, -/obj/effect/mob_spawn/human/corpse/nanotrasensoldier, -/obj/item/storage/box/stockparts/basic{ - pixel_x = -3; - pixel_y = 4 +/turf/open/floor/plasteel/tech/grid, +/area/ruin/whitesands/pubbycrash/engine_room) +"pu" = ( +/obj/effect/decal/fakelattice{ + icon_state = "lattice-139" }, -/turf/open/floor/plasteel/tech, -/area/ruin/whitesands/pubbycrash) +/turf/open/floor/plating/asteroid/whitesands/dried, +/area/overmap_encounter/planetoid/cave/explored) "pE" = ( +/obj/effect/decal/cleanable/dirt, /obj/structure/railing/corner{ dir = 8 }, -/obj/structure/railing{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, +/obj/structure/railing/corner, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/vomit/old, +/turf/open/floor/plasteel/tech, /area/ruin/whitesands/pubbycrash) "pG" = ( -/obj/machinery/firealarm/directional/west, -/turf/closed/mineral/random/whitesands, -/area/overmap_encounter/planetoid/cave/explored) -"pR" = ( /obj/effect/turf_decal/industrial/stand_clear, /obj/effect/turf_decal/industrial/warning{ dir = 1 @@ -730,73 +737,75 @@ /obj/structure/salvageable/server, /turf/open/floor/engine, /area/ruin/whitesands/pubbycrash) -"pT" = ( -/obj/effect/turf_decal/box, -/obj/structure/table/reinforced, -/obj/structure/railing{ - dir = 1 +"pR" = ( +/obj/machinery/door/airlock/external/glass, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 }, /obj/effect/turf_decal/industrial/warning{ - dir = 1 + dir = 4 }, -/obj/effect/spawner/lootdrop/maintenance/five, -/obj/effect/spawner/lootdrop/maintenance/five, -/turf/open/floor/plasteel, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) -"qz" = ( -/obj/structure/window/reinforced{ +"pT" = ( +/obj/effect/turf_decal/industrial/caution, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing/corner{ dir = 8 }, -/obj/machinery/door/window/northleft{ - dir = 4; - name = "Engine Access" - }, -/obj/structure/cable{ - icon_state = "0-8" +/obj/structure/catwalk, +/obj/machinery/button/door{ + id = "whiteshipubbyEngines"; + name = "Engine Lockdown Control"; + pixel_x = -25; + dir = 4 }, -/obj/structure/frame/machine, -/obj/item/stack/cable_coil/cut/red, -/obj/item/circuitboard/machine/shuttle/smes, +/obj/structure/salvageable/circuit_imprinter, /turf/open/floor/plating, -/area/ruin/whitesands/pubbycrash) +/area/ruin/whitesands/pubbycrash/engine_room) +"qz" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/whitesands/pubbycrash/engine_room) "qN" = ( /obj/effect/decal/fakelattice{ icon_state = "lattice-74" }, /turf/open/floor/plating/asteroid/whitesands/lit, -/area/overmap_encounter/planetoid/sand) +/area/overmap_encounter/planetoid/sand/explored) "re" = ( -/obj/machinery/shower{ - dir = 1 +/obj/machinery/power/terminal{ + dir = 8 }, -/obj/structure/railing/corner{ - dir = 1 +/obj/structure/cable{ + icon_state = "0-4" }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech/techmaint, -/area/ruin/whitesands/pubbycrash) +/obj/effect/spawner/lootdrop/maintenance/two, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash/engine_room) "rT" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/effect/turf_decal/siding/brown, /obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/ash/large, -/turf/open/floor/plating{ - icon_state = "panelscorched"; - initial_gas_mix = "ws_atmos" - }, -/area/ruin/whitesands/pubbycrash) +/obj/machinery/suit_storage_unit/open, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/whitesands/pubbycrash/split) "rW" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plasteel/tech, -/area/ruin/whitesands/pubbycrash) +/obj/item/stack/cable_coil/cut/red, +/obj/item/stack/ore/salvage/scrapgold, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash/engine_room) "rZ" = ( -/obj/structure/chair/office/light{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/grimy, +/obj/machinery/door/airlock/hatch, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/showroomfloor, /area/ruin/whitesands/pubbycrash) "sd" = ( /obj/effect/decal/fakelattice{ @@ -809,100 +818,77 @@ }, /obj/effect/decal/cleanable/vomit, /turf/open/floor/plating/asteroid/whitesands/lit, -/area/overmap_encounter/planetoid/sand) +/area/overmap_encounter/planetoid/sand/explored) "so" = ( -/obj/effect/turf_decal/industrial/caution, -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/structure/catwalk, -/obj/structure/sign/poster/retro/nanotrasen_logo_70s{ - pixel_x = -32 - }, -/obj/effect/spawner/lootdrop/maintenance/two, -/turf/open/floor/plating, -/area/ruin/whitesands/pubbycrash) +/obj/effect/decal/cleanable/dirt/dust, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/whitesands/pubbycrash/engine_room) "ss" = ( -/obj/machinery/light/directional/west, +/obj/machinery/door/airlock/glass, /obj/structure/cable{ icon_state = "1-2" }, -/obj/structure/table/reinforced, -/obj/item/paper_bin{ - pixel_x = -4 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"sA" = ( +/obj/effect/decal/fakelattice{ + icon_state = "lattice-2" }, -/obj/item/folder/blue{ - pixel_x = 3; - pixel_y = 2 - }, -/obj/item/folder/white, -/obj/item/pen, -/obj/structure/railing{ - dir = 8 - }, -/obj/item/stamp/captain{ - pixel_x = -6; - pixel_y = 8 - }, -/obj/item/spacecash/bundle/c1000{ - pixel_x = 2; - pixel_y = -14 - }, -/obj/item/spacecash/bundle/c1000{ - pixel_x = 2; - pixel_y = -14 - }, -/obj/item/spacecash/bundle/c1000{ - pixel_x = 4; - pixel_y = -16 - }, -/turf/open/floor/plasteel/tech, -/area/ruin/whitesands/pubbycrash) -"sA" = ( -/obj/structure/sign/nanotrasen, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ruin/whitesands/pubbycrash) +/turf/open/floor/plating/asteroid/whitesands/dried, +/area/overmap_encounter/planetoid/cave/explored) "sC" = ( /obj/structure/cable{ icon_state = "4-8" }, +/obj/effect/decal/cleanable/dirt/dust, /obj/structure/cable{ icon_state = "1-4" }, -/obj/machinery/light/directional/south, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) "sD" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/ash, -/obj/effect/decal/cleanable/ash{ - pixel_y = -3; - pixel_x = -6 +/obj/structure/railing/corner{ + dir = 4 }, -/turf/open/floor/plating{ - icon_state = "panelscorched"; - initial_gas_mix = "ws_atmos" +/obj/effect/turf_decal/siding/brown{ + dir = 1 }, -/area/ruin/whitesands/pubbycrash) -"sV" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 4 +/obj/structure/closet/wall{ + icon_door = "orange_wall"; + name = "Mining equipment"; + pixel_y = 28 }, +/obj/item/clothing/glasses/meson, +/obj/item/clothing/glasses/meson, +/obj/item/storage/bag/ore, +/obj/item/storage/bag/ore, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, /obj/structure/cable{ - icon_state = "1-4" + icon_state = "0-4" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc/auto_name/directional/west{ + start_charge = 0 }, -/obj/structure/railing, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/whitesands/pubbycrash/split) +"sV" = ( +/obj/structure/frame/machine, +/obj/item/circuitboard/machine/shuttle/engine/plasma, +/obj/item/stack/cable_coil/cut/red, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash/engine_room) +"tB" = ( +/obj/structure/sign/number/one, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech, +/obj/item/stack/ore/salvage/scrapmetal, +/turf/open/floor/engine, /area/ruin/whitesands/pubbycrash) "uh" = ( /obj/effect/decal/cleanable/dirt, @@ -912,329 +898,320 @@ }, /area/ruin/whitesands/pubbycrash) "ul" = ( -/mob/living/simple_animal/hostile/asteroid/whitesands/ranged, -/turf/open/floor/plating/asteroid/whitesands/lit, -/area/overmap_encounter/planetoid/sand) +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash) "up" = ( -/obj/effect/turf_decal/box/corners{ - dir = 1 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/item/stack/ore/salvage/scrapmetal, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/engine, -/area/ruin/whitesands/pubbycrash) +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/catwalk, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash/engine_room) "uB" = ( +/obj/effect/turf_decal/siding/brown, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 5 + }, +/obj/effect/turf_decal/industrial/outline/yellow, /obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/ash, -/obj/effect/decal/cleanable/ash{ - pixel_x = -6; - pixel_y = 8 +/obj/machinery/suit_storage_unit/open, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/whitesands/pubbycrash/split) +"vc" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/structure/sign/poster/official/random{ + pixel_y = -32 }, -/turf/open/floor/plating{ - icon_state = "panelscorched"; - initial_gas_mix = "ws_atmos" +/obj/effect/turf_decal/industrial/warning{ + dir = 10 }, -/area/ruin/whitesands/pubbycrash) -"vc" = ( -/obj/effect/turf_decal/box/corners, -/obj/effect/decal/cleanable/dirt, -/obj/item/stack/ore/salvage/scraptitanium, -/turf/open/floor/engine, -/area/ruin/whitesands/pubbycrash) +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/whitesands/pubbycrash/engine_room) "vw" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 +/obj/effect/turf_decal/box/corners{ + dir = 4 }, -/obj/effect/gibspawner, -/turf/open/floor/plasteel/dark, -/area/ruin/whitesands/pubbycrash) -"vL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/decal/cleanable/dirt, -/obj/item/stack/ore/salvage/scraptitanium, +/obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/engine, /area/ruin/whitesands/pubbycrash) -"vO" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/ash{ - pixel_x = 6; - pixel_y = 8 +"vL" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + dir = 4; + id = "whiteship_windows" }, -/obj/effect/decal/cleanable/ash{ - pixel_x = -2; - pixel_y = 3 +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash/engine_room) +"vO" = ( +/obj/structure/railing{ + dir = 1 }, -/obj/effect/decal/cleanable/ash{ - pixel_x = -6; - pixel_y = 8 +/obj/effect/turf_decal/siding/brown{ + dir = 1 }, -/turf/open/floor/plating{ - icon_state = "panelscorched"; - initial_gas_mix = "ws_atmos" +/obj/structure/cable{ + icon_state = "4-8" }, -/area/ruin/whitesands/pubbycrash) -"vX" = ( -/obj/item/radio/intercom/directional/west, -/obj/structure/chair/office/light{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 4 }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/plasteel/grimy, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/whitesands/pubbycrash/split) +"vX" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ruin/whitesands/pubbycrash) "wn" = ( -/obj/effect/turf_decal/siding/brown, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 5 +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 }, -/obj/effect/turf_decal/industrial/outline/yellow, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/sign/poster/official/random{ + pixel_x = 32 + }, +/obj/effect/spawner/lootdrop/maintenance/two, /obj/effect/decal/cleanable/dirt, -/obj/machinery/suit_storage_unit/open, -/turf/open/floor/plasteel/tech/techmaint, +/turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) "wL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, /obj/effect/decal/cleanable/dirt, -/obj/structure/closet/wall/red{ - dir = 8; - name = "Firearm Locker"; - pixel_x = 29; - welded = 1 - }, /obj/effect/turf_decal/spline/fancy/opaque/black{ dir = 1 }, -/obj/item/gun/ballistic/automatic/pistol/commander, -/obj/item/gun/ballistic/automatic/pistol/commander, -/obj/item/ammo_box/magazine/co9mm, -/obj/item/ammo_box/magazine/co9mm, -/obj/item/ammo_box/magazine/co9mm, -/obj/item/ammo_box/magazine/co9mm, +/obj/effect/decal/cleanable/vomit/old, /turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) "wV" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, -/obj/structure/catwalk, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + id = "whiteship_windows" }, /turf/open/floor/plating, /area/ruin/whitesands/pubbycrash) "xa" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 9 - }, -/obj/effect/decal/cleanable/glass, -/obj/effect/turf_decal/industrial/warning{ - dir = 9 + dir = 4 }, -/obj/structure/salvageable/machine, -/turf/open/floor/plasteel/tech/techmaint, -/area/ruin/whitesands/pubbycrash) +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/gibspawner, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash/engine_room) "xc" = ( /mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ dir = 4 }, /turf/open/floor/plating/asteroid/whitesands/lit, -/area/overmap_encounter/planetoid/sand) +/area/overmap_encounter/planetoid/sand/explored) "xy" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, /obj/structure/cable{ - icon_state = "2-4" + icon_state = "4-8" }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/machinery/door/airlock/grunge{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/ruin/whitesands/pubbycrash) -"xA" = ( -/obj/effect/turf_decal/industrial/warning/corner{ +/obj/machinery/door/firedoor/border_only{ dir = 8 }, -/obj/structure/salvageable/computer, -/turf/open/floor/plasteel/tech, +/turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) -"yj" = ( +"xz" = ( +/obj/effect/turf_decal/box, /obj/structure/table/reinforced, -/obj/item/paper_bin, -/obj/item/pen, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/structure/noticeboard{ - pixel_y = 31 +/obj/item/storage/toolbox/mechanical{ + pixel_x = 2; + pixel_y = -2 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 +/obj/item/storage/toolbox/mechanical{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/item/storage/toolbox/electrical{ + pixel_x = 2; + pixel_y = 3 }, /obj/structure/railing{ - dir = 4 + dir = 1 }, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/turf/open/floor/plasteel, /area/ruin/whitesands/pubbycrash) +"xA" = ( +/turf/open/floor/plating{ + icon_state = "panelscorched"; + initial_gas_mix = "ws_atmos" + }, +/area/ruin/whitesands/pubbycrash) +"xH" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/industrial/warning/corner, +/obj/effect/spawner/lootdrop/maintenance/two, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash/engine_room) +"xX" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/whitesands/pubbycrash/engine_room) +"yj" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/obj/structure/railing, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash/engine_room) "ym" = ( -/obj/effect/gibspawner, -/turf/open/floor/plating/asteroid/whitesands/lit, -/area/overmap_encounter/planetoid/sand) +/obj/item/stack/ore/salvage/scraptitanium, +/turf/open/floor/plating/asteroid/whitesands/dried, +/area/overmap_encounter/planetoid/cave/explored) "yt" = ( /obj/effect/decal/fakelattice{ icon_state = "lattice-141" }, /turf/open/floor/plating/asteroid/whitesands/lit, -/area/overmap_encounter/planetoid/sand) +/area/overmap_encounter/planetoid/sand/explored) "yx" = ( -/obj/structure/railing/corner, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 1 - }, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ - dir = 4; - faction = list("adobe"); - desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body, twisted by the heavy metals and high background radiation of the sandworlds. Their helmet also seems to be filled with vomit" - }, -/obj/effect/decal/cleanable/vomit, -/turf/open/floor/plasteel, -/area/ruin/whitesands/pubbycrash) +/obj/effect/decal/fakelattice, +/turf/open/floor/plating/asteroid/whitesands/dried, +/area/overmap_encounter/planetoid/cave/explored) "yK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/door/airlock/grunge{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, /obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/grid, /area/ruin/whitesands/pubbycrash) "yU" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 4 +/obj/effect/decal/fakelattice{ + icon_state = "lattice-46" }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/gibspawner, -/turf/open/floor/plasteel/tech, -/area/ruin/whitesands/pubbycrash) +/turf/open/floor/plating/asteroid/whitesands/dried, +/area/overmap_encounter/planetoid/cave/explored) "zi" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/east, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/box, +/obj/structure/table/reinforced, +/obj/item/storage/belt/utility, +/obj/item/storage/belt/utility, +/obj/item/multitool, +/obj/structure/railing, +/obj/effect/turf_decal/industrial/warning, +/turf/open/floor/plasteel, /area/ruin/whitesands/pubbycrash) "zP" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ruin/whitesands/pubbycrash) -"zX" = ( -/obj/structure/railing/corner{ - dir = 1 +/obj/effect/decal/cleanable/oil{ + icon_state = "floor6" }, /obj/effect/turf_decal/industrial/warning/corner{ dir = 1 }, -/obj/structure/table/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/structure/reagent_dispensers/servingdish, -/obj/item/kitchen/spoon/plastic{ - pixel_x = -1 +/obj/effect/turf_decal/ntspaceworks_small{ + dir = 4 }, -/obj/item/kitchen/spoon/plastic{ - pixel_x = 13 +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash/engine_room) +"zX" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 1 }, -/obj/item/kitchen/spoon/plastic{ - pixel_x = 6 +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/directional/west, +/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ + dir = 1; + faction = list("saloon") }, /turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) +"Ai" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/whitesands/pubbycrash/engine_room) "Ak" = ( -/obj/structure/closet/crate/bin, +/obj/item/reagent_containers/food/drinks/britcup{ + pixel_x = 9; + pixel_y = -3 + }, /obj/item/trash/pistachios{ pixel_y = 5 }, -/obj/item/trash/energybar, -/obj/item/trash/cheesie, -/obj/item/trash/can/food, -/obj/item/trash/sosjerky{ - pixel_x = 5 +/obj/structure/table/reinforced{ + color = "#c1b6a5" }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/grimy, /area/ruin/whitesands/pubbycrash) -"AH" = ( +"AA" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/whitesands/pubbycrash/split) +"AD" = ( /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-8" }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/oil{ - icon_state = "floor6" +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/stairs{ + dir = 8 }, -/turf/open/floor/plasteel/tech, /area/ruin/whitesands/pubbycrash) +"AH" = ( +/obj/structure/frame/machine, +/obj/item/stack/cable_coil/cut/red, +/obj/item/stack/ore/salvage/scrapgold, +/obj/item/stack/ore/salvage/scrapgold, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash/engine_room) "AJ" = ( -/turf/closed/wall/mineral/titanium, -/area/ruin/whitesands/pubbycrash) +/turf/open/floor/plating/asteroid/whitesands/dried, +/area/overmap_encounter/planetoid/cave/explored) "AO" = ( -/obj/machinery/light/directional/west, -/obj/effect/turf_decal/industrial/warning, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/ruin/whitesands/pubbycrash) -"Bd" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) -"Bz" = ( +"Bd" = ( /obj/effect/turf_decal/box/corners{ dir = 8 }, @@ -1242,21 +1219,7 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/engine, /area/ruin/whitesands/pubbycrash) -"BD" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/structure/salvageable/machine, -/turf/open/floor/plasteel/dark, -/area/ruin/whitesands/pubbycrash) -"BH" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/obj/effect/decal/cleanable/vomit/old, -/turf/open/floor/plasteel/dark, -/area/ruin/whitesands/pubbycrash) -"Cg" = ( +"Bi" = ( /obj/structure/table/reinforced, /obj/item/storage/toolbox/mechanical{ pixel_x = -2; @@ -1274,220 +1237,270 @@ }, /turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) -"Cs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +"Bw" = ( +/turf/closed/mineral/random/whitesands, +/area/ruin/whitesands/pubbycrash/engine_room) +"Bz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 4 }, +/obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - icon_state = "2-4" + icon_state = "1-8" }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/structure/catwalk, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash/engine_room) +"BD" = ( +/obj/effect/decal/fakelattice{ + icon_state = "lattice-9" + }, +/turf/open/floor/plating/asteroid/whitesands/dried, +/area/overmap_encounter/planetoid/cave/explored) +"BH" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ruin/whitesands/pubbycrash) -"Ct" = ( -/obj/effect/decal/cleanable/dirt, +/obj/structure/catwalk, /obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 + dir = 8 }, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ - faction = list("saloon") +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash/engine_room) +"Cg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/door/airlock/highsecurity, /turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) -"Cw" = ( -/obj/item/stack/ore/salvage/scraptitanium, -/turf/open/floor/plating/asteroid/whitesands/lit, -/area/overmap_encounter/planetoid/sand) -"Dg" = ( +"Cs" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/turf_decal/ntspaceworks_small/right{ + dir = 4 + }, +/obj/effect/decal/cleanable/vomit/old, +/obj/effect/mob_spawn/human/corpse/nanotrasensoldier, +/obj/item/storage/box/stockparts/basic{ + pixel_x = -3; + pixel_y = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash/engine_room) +"Ct" = ( /obj/structure/cable{ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, -/obj/machinery/airalarm/directional/east, /turf/open/floor/plasteel/tech/techmaint, -/area/ruin/whitesands/pubbycrash) -"Di" = ( -/obj/structure/railing/corner, -/turf/closed/mineral/random/whitesands, -/area/overmap_encounter/planetoid/cave/explored) -"Dn" = ( -/obj/structure/railing, -/obj/structure/salvageable/computer{ +/area/ruin/whitesands/pubbycrash/engine_room) +"Cw" = ( +/obj/item/stack/ore/salvage/scraptitanium, +/turf/open/floor/plating/asteroid/whitesands/lit, +/area/overmap_encounter/planetoid/sand/explored) +"Dg" = ( +/obj/effect/turf_decal/industrial/warning/corner{ dir = 8 }, -/obj/item/stack/ore/salvage/scrapgold, +/obj/structure/salvageable/computer, /turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash/engine_room) +"Di" = ( +/obj/structure/sign/number/one, +/obj/effect/decal/cleanable/vomit/old, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/whitesands/pubbycrash) +"Dn" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/salvageable/machine, +/turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) "Dx" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor{ - id = "whiteship_windows" +/obj/effect/decal/fakelattice{ + icon_state = "lattice-141" }, -/turf/open/floor/plating, -/area/ruin/whitesands/pubbycrash) +/turf/open/floor/plating/asteroid/whitesands, +/area/overmap_encounter/planetoid/cave/explored) "DB" = ( -/obj/structure/table/reinforced, /obj/effect/decal/cleanable/dirt, -/obj/structure/salvageable/machine, -/turf/open/floor/plastic, -/area/ruin/whitesands/pubbycrash) -"DQ" = ( -/obj/effect/turf_decal/spline/fancy/opaque/black, -/obj/item/stack/ore/salvage/scraptitanium, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/ruin/whitesands/pubbycrash) -"DY" = ( -/obj/structure/cable{ - icon_state = "0-4" +/obj/effect/decal/cleanable/ash, +/obj/effect/decal/cleanable/ash{ + pixel_x = -6; + pixel_y = 8 }, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + initial_gas_mix = "ws_atmos" + }, +/area/ruin/whitesands/pubbycrash/split) +"DQ" = ( /obj/structure/cable{ - icon_state = "0-2" + icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 6 +/obj/machinery/airalarm/directional/east, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/whitesands/pubbycrash/engine_room) +"DY" = ( +/obj/structure/window/reinforced{ + dir = 8 }, -/obj/structure/salvageable/machine, -/turf/open/floor/plasteel/tech, -/area/ruin/whitesands/pubbycrash) +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Engine Access" + }, +/obj/structure/frame/machine, +/obj/item/circuitboard/machine/shuttle/heater, +/obj/item/stack/cable_coil/cut/red, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash/engine_room) "Ea" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel/patterned/grid, /area/ruin/whitesands/pubbycrash) "Eb" = ( -/obj/structure/frame/machine, -/obj/item/circuitboard/machine/shuttle/engine/plasma, -/obj/item/stack/cable_coil/cut/red, -/turf/open/floor/plating, +/obj/item/trash/cheesie{ + pixel_x = 5; + pixel_y = 6 + }, +/obj/structure/table/reinforced{ + color = "#c1b6a5" + }, +/turf/open/floor/plasteel/grimy, /area/ruin/whitesands/pubbycrash) "Eh" = ( -/obj/machinery/door/airlock/public/glass, -/turf/open/floor/plasteel, -/area/ruin/whitesands/pubbycrash) -"Em" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/ash{ pixel_x = 3; pixel_y = -3 }, -/obj/item/lighter/enigma, +/obj/item/lighter, /turf/open/floor/plating{ icon_state = "panelscorched"; initial_gas_mix = "ws_atmos" }, -/area/ruin/whitesands/pubbycrash) -"Et" = ( -/obj/effect/decal/cleanable/oil{ - icon_state = "floor6" +/area/overmap_encounter/planetoid/sand/explored) +"Em" = ( +/obj/machinery/light/directional/north, +/obj/structure/table/reinforced, +/obj/machinery/reagentgrinder{ + pixel_x = 6; + pixel_y = 14 }, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 1 +/obj/item/reagent_containers/food/snacks/meat/slab/xeno, +/turf/open/floor/plastic, +/area/ruin/whitesands/pubbycrash/split) +"Et" = ( +/obj/item/stack/ore/salvage/scraptitanium{ + pixel_x = -3; + pixel_y = -10 }, -/obj/effect/turf_decal/ntspaceworks_small{ - dir = 4 +/obj/effect/decal/fakelattice{ + icon_state = "lattice-21" }, -/turf/open/floor/plasteel/tech, -/area/ruin/whitesands/pubbycrash) +/turf/open/floor/plating/asteroid/whitesands/dried, +/area/overmap_encounter/planetoid/cave/explored) "Ew" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/structure/sign/poster/official/random{ - pixel_y = -32 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 10 +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ruin/whitesands/pubbycrash) +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash/engine_room) "EG" = ( /obj/machinery/door/airlock/hatch{ welded = 1 }, /turf/template_noop, -/area/ruin/whitesands/pubbycrash) +/area/ruin/whitesands/pubbycrash/split) "ET" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/structure/cable/yellow{ + icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/light/directional/west, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ - dir = 1; - faction = list("saloon") +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/ruin/whitesands/pubbycrash) -"Fc" = ( -/obj/structure/window/reinforced{ - dir = 8 +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/number/four{ + dir = 4 }, -/obj/machinery/door/window/northleft{ - dir = 4; - name = "Engine Access" +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash/engine_room) +"Fc" = ( +/obj/item/stack/ore/salvage/scraptitanium{ + pixel_x = 8 }, -/obj/structure/frame/machine, -/obj/item/circuitboard/machine/shuttle/heater, -/obj/item/stack/cable_coil/cut/red, -/turf/open/floor/plating, -/area/ruin/whitesands/pubbycrash) +/turf/open/floor/plating/asteroid/whitesands/lit, +/area/overmap_encounter/planetoid/sand/explored) "Fn" = ( -/obj/structure/railing, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/structure/chair/office/light{ dir = 4 }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/grimy, +/area/ruin/whitesands/pubbycrash) +"Fo" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/stairs{ - dir = 4 +/obj/effect/decal/cleanable/ash, +/obj/effect/decal/cleanable/ash{ + pixel_y = -3; + pixel_x = -6 }, -/area/ruin/whitesands/pubbycrash) -"Fq" = ( /turf/open/floor/plating{ - icon_state = "platingdmg1"; + icon_state = "panelscorched"; initial_gas_mix = "ws_atmos" }, -/area/ruin/whitesands/pubbycrash) -"FP" = ( -/obj/effect/turf_decal/box, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/railing{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/obj/structure/salvageable/machine, -/turf/open/floor/plasteel, -/area/ruin/whitesands/pubbycrash) -"FY" = ( +/area/ruin/whitesands/pubbycrash/split) +"Fq" = ( /obj/structure/railing/corner{ dir = 8 }, @@ -1501,158 +1514,179 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 5 }, -/obj/structure/salvageable/machine, +/obj/structure/salvageable/server, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"FP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/obj/structure/railing{ + dir = 10; + layer = 4.1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black, +/obj/item/stack/ore/salvage/scrapgold, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"FY" = ( +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/industrial/warning, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) "Ga" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "0-4" + }, /turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) "Gi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /obj/structure/cable{ icon_state = "4-8" }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/door/airlock/highsecurity, /turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) "Gl" = ( /turf/template_noop, /area/template_noop) -"GA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/closed/wall/mineral/titanium/nodiagonal, +"Gp" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/vomit/old, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mob_spawn/human/corpse/nanotrasensoldier, +/turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) -"GF" = ( -/obj/structure/window/reinforced{ +"GA" = ( +/obj/structure/railing, +/obj/structure/salvageable/computer{ dir = 8 }, -/obj/machinery/door/window/northright{ - dir = 4; - name = "Engine Access" - }, -/obj/structure/frame/machine, -/obj/item/circuitboard/machine/shuttle/heater, -/obj/item/stack/cable_coil/cut/red, -/obj/item/stack/ore/salvage/scrapplasma/five, -/turf/open/floor/plating, +/obj/item/stack/ore/salvage/scrapgold, +/turf/open/floor/plasteel/tech, /area/ruin/whitesands/pubbycrash) -"GK" = ( -/obj/structure/closet/wall/blue{ - dir = 1; - name = "Captain's locker"; - pixel_y = -28 - }, -/obj/item/clothing/suit/space/hardsuit/mining/heavy, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, +"GF" = ( +/obj/machinery/newscaster/directional/west, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/ash/large, /turf/open/floor/plating{ icon_state = "panelscorched"; initial_gas_mix = "ws_atmos" }, -/area/ruin/whitesands/pubbycrash) +/area/ruin/whitesands/pubbycrash/split) +"GK" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plastic, +/area/ruin/whitesands/pubbycrash/split) "Ha" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/tech, -/area/ruin/whitesands/pubbycrash) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/whitesands/pubbycrash/engine_room) "Hb" = ( -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 + dir = 8 }, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/salvageable/machine, -/turf/open/floor/plasteel/tech, -/area/ruin/whitesands/pubbycrash) -"Ho" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/atmospherics/components/binary/dp_vent_pump{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/light/directional/east, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, /obj/effect/gibspawner, -/obj/item/stack/ore/salvage/scrapmetal/five, -/turf/open/floor/plasteel/tech/techmaint, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/whitesands/pubbycrash/engine_room) +"Ho" = ( +/obj/effect/turf_decal/box/corners, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/ore/salvage/scraptitanium, +/turf/open/floor/engine, /area/ruin/whitesands/pubbycrash) "Hq" = ( -/obj/item/stack/cable_coil/cut/red, -/obj/item/stack/ore/salvage/scrapgold, -/obj/item/stack/ore/salvage/scrapgold, -/obj/item/stack/ore/salvage/scrapmetal/five, -/turf/open/floor/plating, +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/office/light{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, /area/ruin/whitesands/pubbycrash) "HQ" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 4 +/obj/item/stack/ore/salvage/scrapmetal/five{ + pixel_y = -12; + pixel_x = 4 }, -/obj/structure/railing/corner, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/light/small/directional/south, -/obj/effect/decal/cleanable/garbage, -/turf/open/floor/plasteel/tech, -/area/ruin/whitesands/pubbycrash) +/turf/open/floor/plating/asteroid/whitesands/dried, +/area/overmap_encounter/planetoid/cave/explored) "If" = ( -/turf/open/floor/plating{ - icon_state = "panelscorched"; - initial_gas_mix = "ws_atmos" +/obj/structure/railing{ + dir = 8 }, -/area/ruin/whitesands/pubbycrash) -"Ig" = ( +/obj/effect/turf_decal/industrial/outline/yellow, /obj/effect/turf_decal/industrial/warning{ - dir = 10 + dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/structure/salvageable/machine, +/obj/machinery/suit_storage_unit/open, /turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) -"Ik" = ( +"Ig" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = 12 + }, +/obj/structure/railing, +/obj/machinery/airalarm/directional/east, +/obj/item/stack/sheet/cotton/cloth, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plastic, +/area/ruin/whitesands/pubbycrash/split) +"Ik" = ( +/obj/structure/table/reinforced, +/obj/item/storage/fancy/donut_box{ + pixel_y = 2 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/sign/poster/official/random{ + pixel_y = -32 + }, +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) "In" = ( -/obj/structure/railing, -/turf/closed/mineral/random/whitesands, -/area/overmap_encounter/planetoid/cave/explored) +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash) "IC" = ( /obj/item/stack/ore/salvage/scrapmetal/five, /turf/open/floor/plating/asteroid/whitesands/lit, -/area/overmap_encounter/planetoid/sand) +/area/overmap_encounter/planetoid/sand/explored) "IQ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/turf/open/floor/plasteel/dark, -/area/ruin/whitesands/pubbycrash) -"Ji" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ruin/whitesands/pubbycrash) -"Jz" = ( -/obj/item/stack/ore/salvage/scrapmetal/five, -/obj/item/stack/ore/salvage/scraptitanium, -/turf/open/floor/plating/asteroid/whitesands/lit, -/area/overmap_encounter/planetoid/sand) -"JI" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/turf_decal/spline/fancy/opaque/black, @@ -1661,7 +1695,20 @@ }, /turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) -"Kt" = ( +"IR" = ( +/obj/machinery/camera/autoname{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/plasteel/grimy, +/area/ruin/whitesands/pubbycrash) +"IU" = ( /obj/machinery/door/airlock/external/glass, /obj/effect/turf_decal/industrial/warning{ dir = 8 @@ -1673,454 +1720,524 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) -"Ky" = ( -/obj/machinery/door/airlock/external{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/atmospherics/pipe/layer_manifold{ - dir = 4 +"Ji" = ( +/obj/effect/decal/cleanable/generic, +/obj/structure/chair/office/light{ + dir = 8 }, -/turf/open/floor/plasteel/tech/grid, -/area/ruin/whitesands/pubbycrash) -"KB" = ( -/obj/structure/salvageable/computer, -/obj/item/stack/ore/salvage/scrapgold, -/turf/open/floor/plasteel/tech, +/turf/open/floor/plasteel/grimy, /area/ruin/whitesands/pubbycrash) -"KI" = ( +"Jz" = ( +/obj/item/stack/ore/salvage/scrapmetal/five, +/obj/item/stack/ore/salvage/scraptitanium, +/turf/open/floor/plating/asteroid/whitesands/lit, +/area/overmap_encounter/planetoid/sand/explored) +"JI" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/decal/cleanable/plasma, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/ruin/whitesands/pubbycrash) -"KO" = ( -/obj/machinery/power/apc/auto_name/directional/east{ - start_charge = 10 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 }, -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "0-2" +/obj/structure/railing{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech/techmaint, -/area/ruin/whitesands/pubbycrash) -"KS" = ( -/obj/effect/turf_decal/box, -/obj/structure/table/reinforced, -/obj/item/storage/belt/utility, -/obj/item/storage/belt/utility, -/obj/item/multitool, -/obj/structure/railing, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel, +/obj/structure/catwalk, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 + }, +/obj/structure/salvageable/protolathe, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash/engine_room) +"Kt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ + faction = list("saloon") + }, +/turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) -"KT" = ( +"Ky" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/whitesands/pubbycrash/split) +"KB" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/chair/office/light{ +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, +/obj/effect/decal/cleanable/vomit/old, /turf/open/floor/plasteel/grimy, /area/ruin/whitesands/pubbycrash) -"Lj" = ( -/obj/machinery/door/airlock/glass, -/obj/structure/cable{ - icon_state = "1-2" +"KI" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 }, +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) -"Lm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +"KO" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/ntspaceworks_small/left{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" +/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ + dir = 4; + faction = list("saloon") }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash/engine_room) +"KS" = ( +/obj/effect/turf_decal/industrial/caution, +/obj/structure/railing/corner{ + dir = 8 }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-4" +/obj/structure/railing/corner{ + dir = 1 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ruin/whitesands/pubbycrash) -"Ls" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/turf_decal/siding/brown, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/suit_storage_unit/open, -/turf/open/floor/plasteel/tech/techmaint, -/area/ruin/whitesands/pubbycrash) -"LM" = ( -/turf/closed/mineral/random/whitesands, -/area/ruin/whitesands/pubbycrash) -"LU" = ( -/obj/structure/cable/yellow{ - icon_state = "2-4" +/obj/structure/catwalk, +/obj/structure/sign/poster/retro/nanotrasen_logo_70s{ + pixel_x = -32 }, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/effect/spawner/lootdrop/maintenance/two, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash/engine_room) +"KT" = ( +/obj/structure/railing, +/obj/effect/decal/fakelattice{ + icon_state = "lattice-12" }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +/turf/open/floor/plating/asteroid/whitesands/dried, +/area/overmap_encounter/planetoid/cave/explored) +"Li" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, -/obj/effect/turf_decal/number/nine{ - dir = 4 +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/wall/red{ + dir = 8; + name = "Firearm Locker"; + pixel_x = 29; + welded = 1 }, -/obj/item/stock_parts/cell/hyper, -/turf/open/floor/plasteel/tech, -/area/ruin/whitesands/pubbycrash) -"LW" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor{ - dir = 4; - id = "whiteship_windows" +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 }, -/turf/open/floor/plating, +/obj/item/gun/ballistic/automatic/pistol/commander, +/obj/item/gun/ballistic/automatic/pistol/commander, +/obj/item/ammo_box/magazine/co9mm, +/obj/item/ammo_box/magazine/co9mm, +/obj/item/ammo_box/magazine/co9mm, +/obj/item/ammo_box/magazine/co9mm, +/turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) -"Mi" = ( -/obj/structure/sign/number/two, +"Lj" = ( /obj/effect/decal/cleanable/dirt/dust, -/obj/item/stack/ore/salvage/scraptitanium, -/obj/effect/gibspawner, -/turf/open/floor/engine, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/pod, /area/ruin/whitesands/pubbycrash) -"Ml" = ( -/obj/structure/window/reinforced{ +"Lm" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/structure/railing{ dir = 8 }, -/obj/machinery/door/window/northright{ - dir = 4; - name = "Engine Access" +/obj/structure/catwalk, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 + }, +/obj/item/stock_parts/cell/hyper{ + pixel_x = 5; + pixel_y = 4 + }, +/obj/item/stack/ore/salvage/scrapmetal/five{ + pixel_x = -9 }, -/obj/structure/frame/machine, -/obj/item/stack/cable_coil/cut/red, -/obj/item/circuitboard/machine/shuttle/smes, /turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash/engine_room) +"Ls" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg1"; + initial_gas_mix = "ws_atmos" + }, /area/ruin/whitesands/pubbycrash) -"Mr" = ( +"LM" = ( +/obj/item/stack/ore/salvage/scrapmetal/five, +/obj/item/stack/ore/salvage/scraptitanium, +/obj/effect/decal/fakelattice{ + icon_state = "lattice-4" + }, +/turf/open/floor/plating/asteroid/whitesands/dried, +/area/overmap_encounter/planetoid/cave/explored) +"LU" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/salvageable/computer{ dir = 8 }, /turf/open/floor/plasteel/tech, /area/ruin/whitesands/pubbycrash) -"NI" = ( -/obj/machinery/holopad, -/obj/effect/decal/cleanable/dirt/dust, +"LW" = ( /obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/oil{ + icon_state = "floor6" }, -/turf/open/floor/plasteel/grimy, -/area/ruin/whitesands/pubbycrash) -"Og" = ( +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash/engine_room) +"Mi" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "1-8" }, -/obj/structure/table/reinforced, -/obj/machinery/recharger, /obj/structure/railing{ - dir = 10; - layer = 4.1 + dir = 1 }, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/obj/item/stack/ore/salvage/scrapgold, -/turf/open/floor/plasteel/tech, -/area/ruin/whitesands/pubbycrash) -"Oz" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/ash{ - pixel_x = 2; - pixel_y = -2 +/turf/open/floor/plasteel/stairs{ + dir = 4 }, -/obj/effect/decal/cleanable/ash{ - pixel_y = -2; - pixel_x = 5 +/area/ruin/whitesands/pubbycrash/engine_room) +"Ml" = ( +/obj/structure/sign/poster/official/random{ + pixel_x = 32 }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/ash/large, /turf/open/floor/plating{ icon_state = "panelscorched"; initial_gas_mix = "ws_atmos" }, -/area/ruin/whitesands/pubbycrash) -"Pr" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/industrial/warning/corner, -/obj/effect/spawner/lootdrop/maintenance/two, -/turf/open/floor/plasteel/tech, -/area/ruin/whitesands/pubbycrash) -"Pu" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/ruin/whitesands/pubbycrash) -"PA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/area/ruin/whitesands/pubbycrash/split) +"Mr" = ( +/obj/structure/closet/crate/bin, +/obj/item/trash/pistachios{ + pixel_y = 5 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/item/trash/energybar, +/obj/item/trash/cheesie, +/obj/item/trash/can/food, +/obj/item/trash/sosjerky{ + pixel_x = 5 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"NI" = ( +/obj/structure/railing{ dir = 4 }, /obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/patterned/grid, -/area/ruin/whitesands/pubbycrash) -"PI" = ( /obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/railing{ - dir = 1 + icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/stairs{ - dir = 4 - }, -/area/ruin/whitesands/pubbycrash) -"PK" = ( -/obj/effect/gibspawner, -/turf/open/floor/plating, -/area/ruin/whitesands/pubbycrash) -"PY" = ( -/obj/effect/decal/cleanable/generic, -/obj/structure/chair/office/light{ - dir = 8 + dir = 1 }, -/turf/open/floor/plasteel/grimy, /area/ruin/whitesands/pubbycrash) -"PZ" = ( +"Og" = ( /obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "engine fuel pump" +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/machinery/light/small/directional/north, -/obj/effect/spawner/lootdrop/maintenance/two, -/obj/item/stack/sheet/mineral/wood/fifty, -/obj/structure/closet/crate, -/turf/open/floor/plasteel/tech, -/area/ruin/whitesands/pubbycrash) -"Qb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/effect/decal/cleanable/vomit/old, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/decal/cleanable/vomit/old, -/obj/item/stack/ore/salvage/scrapmetal, -/obj/effect/mob_spawn/human/corpse/nanotrasenassaultsoldier, -/obj/effect/gibspawner, -/turf/open/floor/plasteel/tech, -/area/ruin/whitesands/pubbycrash) -"Qo" = ( -/obj/effect/decal/fakelattice{ - icon_state = "lattice-9" - }, -/turf/open/floor/plating/asteroid/whitesands/lit, -/area/overmap_encounter/planetoid/sand) -"Qu" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 4 +/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ + dir = 1; + faction = list("saloon") }, +/obj/effect/mob_spawn/human/corpse/nanotrasensoldier, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"Oz" = ( +/obj/structure/table/reinforced, +/obj/effect/decal/cleanable/dirt, +/obj/structure/salvageable/machine, +/turf/open/floor/plastic, +/area/ruin/whitesands/pubbycrash/split) +"ON" = ( +/obj/structure/railing/corner, /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 + icon_state = "1-2" }, -/obj/structure/railing, -/obj/structure/railing{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 1 }, -/turf/open/floor/plasteel/stairs{ - dir = 4 +/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ + dir = 4; + faction = list("adobe"); + desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body, twisted by the heavy metals and high background radiation of the sandworlds. Their helmet also seems to be filled with vomit" }, -/area/ruin/whitesands/pubbycrash) -"Qw" = ( -/obj/structure/cable/yellow{ - icon_state = "2-4" +/obj/effect/decal/cleanable/vomit, +/turf/open/floor/plasteel, +/area/ruin/whitesands/pubbycrash/split) +"Pr" = ( +/obj/structure/closet/wall/red{ + dir = 4; + name = "Pilots locker"; + pixel_x = -29; + welded = 1 }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/item/clothing/under/suit/black, +/obj/item/clothing/under/suit/black, +/obj/item/clothing/suit/jacket, +/obj/item/clothing/suit/jacket, +/obj/item/clothing/head/beret/black, +/obj/item/clothing/head/beret/black, +/obj/structure/cable{ + icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 1 + }, +/obj/item/clothing/under/rank/security/officer/nt, +/obj/item/clothing/under/rank/security/officer/nt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/whitesands/pubbycrash/split) +"Pu" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 4 }, -/obj/structure/chair{ - dir = 1 +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable/yellow, +/obj/effect/spawner/lootdrop/maintenance/two, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash/engine_room) +"PA" = ( +/obj/structure/cable/yellow{ + icon_state = "0-8" }, -/obj/effect/turf_decal/industrial/warning{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/number/seven{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/effect/turf_decal/industrial/outline/yellow, /turf/open/floor/plasteel/tech, -/area/ruin/whitesands/pubbycrash) -"QD" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/patterned/grid, -/area/ruin/whitesands/pubbycrash) -"QI" = ( -/obj/machinery/power/terminal{ +/area/ruin/whitesands/pubbycrash/engine_room) +"PI" = ( +/obj/structure/window/reinforced{ dir = 8 }, -/obj/structure/cable{ - icon_state = "0-4" +/obj/machinery/door/window/northright{ + dir = 4; + name = "Engine Access" }, -/obj/machinery/portable_atmospherics/canister/toxins, -/turf/open/floor/plasteel/tech, +/obj/structure/frame/machine, +/obj/item/stack/cable_coil/cut/red, +/obj/item/circuitboard/machine/shuttle/smes, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash/engine_room) +"PK" = ( +/obj/effect/turf_decal/box, +/obj/structure/railing, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/industrial/warning, +/obj/structure/salvageable/autolathe, +/turf/open/floor/plasteel, /area/ruin/whitesands/pubbycrash) -"QR" = ( -/obj/structure/extinguisher_cabinet/directional/north, -/obj/machinery/camera/autoname{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/turf/open/floor/plasteel/grimy, +"PY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) -"RC" = ( -/obj/structure/railing{ - dir = 8 +"PZ" = ( +/obj/effect/decal/fakelattice{ + icon_state = "lattice-21" }, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/turf_decal/industrial/warning{ +/turf/open/floor/plating/asteroid/whitesands/dried, +/area/overmap_encounter/planetoid/cave/explored) +"Qb" = ( +/obj/effect/gibspawner, +/turf/open/floor/plating/asteroid/whitesands/dried, +/area/overmap_encounter/planetoid/cave/explored) +"Qo" = ( +/mob/living/simple_animal/hostile/asteroid/whitesands/ranged, +/turf/open/floor/plating/asteroid/whitesands/dried, +/area/overmap_encounter/planetoid/cave/explored) +"Qu" = ( +/obj/structure/window/reinforced{ dir = 8 }, -/obj/machinery/airalarm/directional/north, -/obj/machinery/suit_storage_unit/open, -/turf/open/floor/plasteel/dark, -/area/ruin/whitesands/pubbycrash) -"RL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/machinery/door/window/northright{ + dir = 4; + name = "Engine Access" + }, +/obj/structure/frame/machine, +/obj/item/circuitboard/machine/shuttle/heater, +/obj/item/stack/cable_coil/cut/red, +/obj/item/stack/ore/salvage/scrapplasma/five, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash/engine_room) +"Qw" = ( +/obj/machinery/door/airlock/external{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/machinery/atmospherics/pipe/layer_manifold{ dir = 4 }, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/whitesands/pubbycrash/engine_room) +"QD" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/door/airlock/engineering{ + dir = 4 + }, /obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/wrapping, -/obj/effect/decal/cleanable/plastic, /turf/open/floor/plasteel/dark, -/area/ruin/whitesands/pubbycrash) -"RT" = ( -/turf/closed/mineral/random/whitesands, +/area/ruin/whitesands/pubbycrash/engine_room) +"QI" = ( +/obj/item/stack/ore/salvage/scraptitanium{ + pixel_y = 8; + pixel_x = 6 + }, +/turf/open/floor/plating/asteroid/whitesands/dried, /area/overmap_encounter/planetoid/cave/explored) -"Sy" = ( +"QR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/industrial/outline/grey, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/whitesands/pubbycrash/engine_room) +"RC" = ( /obj/effect/spawner/lootdrop/maintenance/two, /obj/item/stack/ore/salvage/scraptitanium, /obj/effect/decal/cleanable/dirt, /turf/open/floor/engine, /area/ruin/whitesands/pubbycrash) -"SO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/components/binary/dp_vent_pump{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/gibspawner, -/turf/open/floor/plasteel/tech/grid, -/area/ruin/whitesands/pubbycrash) -"SU" = ( +"RL" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/reagent_dispensers/fueltank, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/patterned/grid, /area/ruin/whitesands/pubbycrash) -"Tg" = ( -/obj/structure/railing, +"RT" = ( +/turf/closed/mineral/random/whitesands, +/area/overmap_encounter/planetoid/cave/explored) +"Sy" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 4 + }, /obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/vomit/old, -/obj/effect/mob_spawn/human/corpse/damaged/whitesands/survivor, -/turf/open/floor/plastic, -/area/ruin/whitesands/pubbycrash) -"TB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/structure/railing, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plasteel/stairs{ dir = 4 }, +/area/ruin/whitesands/pubbycrash/engine_room) +"SO" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + id = "whiteship_windows" + }, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash/engine_room) +"SU" = ( +/obj/effect/decal/fakelattice{ + icon_state = "lattice-4" + }, +/turf/open/floor/plating/asteroid/whitesands/dried, +/area/overmap_encounter/planetoid/cave/explored) +"Tg" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Engine Access" + }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "0-8" + }, +/obj/structure/frame/machine, +/obj/item/stack/cable_coil/cut/red, +/obj/item/circuitboard/machine/shuttle/smes, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash/engine_room) +"TB" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 }, -/obj/effect/decal/cleanable/dirt/dust, /obj/structure/cable{ - icon_state = "0-4" + icon_state = "4-8" }, -/turf/open/floor/plasteel/dark, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/grid, /area/ruin/whitesands/pubbycrash) "TF" = ( -/obj/structure/sign/poster/official/random{ - pixel_x = 32 +/obj/structure/railing, +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/ash/large, -/turf/open/floor/plating{ - icon_state = "panelscorched"; - initial_gas_mix = "ws_atmos" +/turf/open/floor/plasteel/stairs{ + dir = 4 }, -/area/ruin/whitesands/pubbycrash) +/area/ruin/whitesands/pubbycrash/split) "Uo" = ( /obj/effect/turf_decal/spline/fancy/opaque/black, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/decal/cleanable/vomit/old, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mob_spawn/human/corpse/nanotrasensoldier, -/turf/open/floor/plasteel/dark, -/area/ruin/whitesands/pubbycrash) -"Us" = ( -/obj/effect/decal/cleanable/dirt/dust, /obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/decal/cleanable/vomit/old, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ - dir = 1; - faction = list("saloon") + icon_state = "0-4" }, -/obj/effect/mob_spawn/human/corpse/nanotrasensoldier, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) -"Uy" = ( +"Us" = ( /obj/machinery/door/airlock/hatch{ welded = 1 }, @@ -2135,217 +2252,258 @@ /obj/machinery/door/firedoor/border_only, /turf/open/floor/pod, /area/ruin/whitesands/pubbycrash) +"Uy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/plasma, +/obj/effect/turf_decal/spline/fancy/opaque/black, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) "Vj" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4, -/turf/open/floor/engine/hull, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) "Vt" = ( /turf/open/floor/plating/asteroid/whitesands/lit, -/area/overmap_encounter/planetoid/sand) +/area/overmap_encounter/planetoid/sand/explored) "VG" = ( /obj/structure/sign/number/two, -/obj/item/stack/ore/salvage/scrapmetal, -/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/stack/ore/salvage/scraptitanium, +/obj/effect/gibspawner, /turf/open/floor/engine, /area/ruin/whitesands/pubbycrash) "VK" = ( /obj/structure/cable{ - icon_state = "2-8" + icon_state = "4-8" }, -/obj/effect/turf_decal/industrial/outline/orange, -/obj/machinery/portable_atmospherics/canister/toxins, -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/turf/open/floor/plasteel/tech/techmaint, -/area/ruin/whitesands/pubbycrash) +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash/engine_room) "VP" = ( /obj/effect/decal/fakelattice{ icon_state = "lattice-2" }, /turf/open/floor/plating/asteroid/whitesands/lit, -/area/overmap_encounter/planetoid/sand) -"Wg" = ( -/obj/structure/frame/machine, -/obj/item/stack/cable_coil/cut/red, -/obj/item/stack/ore/salvage/scrapgold, -/obj/item/stack/ore/salvage/scrapgold, -/turf/open/floor/plating, -/area/ruin/whitesands/pubbycrash) -"Wo" = ( -/obj/structure/bed/dogbed{ - anchored = 1; - name = "citrus's bed" +/area/overmap_encounter/planetoid/sand/explored) +"VZ" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 9 +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + id = "whiteship_windows" }, -/obj/machinery/light/directional/east, -/turf/open/floor/pod, -/area/ruin/whitesands/pubbycrash) -"WD" = ( -/obj/effect/turf_decal/industrial/stand_clear, -/obj/effect/turf_decal/industrial/warning, -/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash/split) +"Wg" = ( +/obj/structure/sign/number/two, +/obj/item/stack/ore/salvage/scrapmetal, /obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/maintenance/two, /turf/open/floor/engine, /area/ruin/whitesands/pubbycrash) -"Xm" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/ash, -/turf/open/floor/plating{ - icon_state = "panelscorched"; - initial_gas_mix = "ws_atmos" - }, -/area/ruin/whitesands/pubbycrash) -"Xn" = ( -/obj/effect/turf_decal/industrial/caution, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/obj/structure/railing/corner{ +"Wo" = ( +/obj/structure/railing{ dir = 8 }, -/obj/structure/catwalk, -/obj/machinery/button/door{ - id = "whiteshipubbyEngines"; - name = "Engine Lockdown Control"; - pixel_x = -25; - dir = 4 +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 }, -/obj/structure/salvageable/destructive_analyzer, +/obj/machinery/airalarm/directional/north, +/obj/machinery/suit_storage_unit/open, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"WD" = ( +/obj/item/stack/ore/salvage/scraptitanium, /turf/open/floor/plating, /area/ruin/whitesands/pubbycrash) -"XA" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/item/kirbyplants/random, -/obj/structure/railing{ +"Xi" = ( +/obj/item/radio/intercom/directional/west, +/obj/structure/chair/office/light{ dir = 4 }, -/obj/machinery/light/directional/south, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/turf/open/floor/plasteel/grimy, +/area/ruin/whitesands/pubbycrash) +"Xm" = ( +/obj/item/t_scanner/adv_mining_scanner/lesser, +/obj/item/kinetic_crusher, +/obj/structure/rack, +/obj/item/pickaxe/mini, +/obj/item/pickaxe/mini, +/obj/effect/turf_decal/siding/brown, +/obj/item/gun/energy/kinetic_accelerator, +/obj/machinery/firealarm/directional/south, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/whitesands/pubbycrash/split) +"Xn" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ruin/whitesands/pubbycrash) +"XA" = ( +/obj/item/stack/ore/salvage/scrapmetal/five, +/turf/open/floor/plating/asteroid/whitesands/dried, +/area/overmap_encounter/planetoid/cave/explored) "XK" = ( -/obj/effect/decal/cleanable/dirt/dust, /obj/effect/turf_decal/spline/fancy/opaque/black{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/firealarm/directional/west, +/obj/item/stack/ore/salvage/scraptitanium, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) "Yt" = ( -/obj/machinery/newscaster/directional/west, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/ash/large, -/turf/open/floor/plating{ - icon_state = "panelscorched"; - initial_gas_mix = "ws_atmos" +/obj/structure/reagent_dispensers/servingdish, +/obj/structure/table/reinforced, +/obj/item/kitchen/spoon/plastic{ + pixel_x = 6 }, -/area/ruin/whitesands/pubbycrash) +/obj/item/kitchen/spoon/plastic{ + pixel_x = -1 + }, +/obj/item/kitchen/spoon/plastic{ + pixel_x = 13 + }, +/turf/open/floor/plastic, +/area/ruin/whitesands/pubbycrash/split) "Yu" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/structure/girder, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash/engine_room) +"YC" = ( +/obj/structure/railing/corner{ + dir = 1 }, -/obj/effect/decal/cleanable/dirt/dust, /obj/effect/turf_decal/industrial/warning/corner{ - dir = 4 + dir = 1 }, -/obj/machinery/light/directional/east, -/obj/effect/turf_decal/number/four{ - dir = 4 +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 }, -/turf/open/floor/plasteel/tech, -/area/ruin/whitesands/pubbycrash) -"YC" = ( -/obj/structure/closet/wall/white{ - dir = 1; - name = "Medicine storage"; - pixel_y = -30 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 }, -/obj/item/storage/firstaid/ancient{ - pixel_x = 6; - pixel_y = -5 +/obj/structure/reagent_dispensers/servingdish, +/obj/item/kitchen/spoon/plastic{ + pixel_x = -1 }, -/obj/item/storage/firstaid/medical, -/obj/structure/sign/poster/official/random{ - pixel_x = 32 +/obj/item/kitchen/spoon/plastic{ + pixel_x = 13 }, -/turf/open/floor/pod, +/obj/item/kitchen/spoon/plastic{ + pixel_x = 6 + }, +/turf/open/floor/plasteel/dark, /area/ruin/whitesands/pubbycrash) "YL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/power/terminal{ + dir = 8 + }, /obj/structure/cable{ - icon_state = "2-4" + icon_state = "0-4" }, -/obj/effect/turf_decal/industrial/outline/grey, -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plasteel/tech/techmaint, -/area/ruin/whitesands/pubbycrash) +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash/engine_room) "Zg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 +/turf/open/floor/engine/hull, +/area/overmap_encounter/planetoid/cave/explored) +"Zj" = ( +/obj/effect/decal/fakelattice{ + icon_state = "lattice-3" + }, +/turf/open/floor/plating/asteroid/whitesands/dried, +/area/overmap_encounter/planetoid/cave/explored) +"Zk" = ( +/obj/effect/gibspawner, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash) +"Zp" = ( +/obj/structure/table/reinforced, +/obj/machinery/power/apc/auto_name/directional/north{ + start_charge = 0 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/item/flashlight/lamp{ + pixel_x = -6; + pixel_y = 8 }, +/obj/effect/decal/cleanable/dirt, /obj/structure/railing{ dir = 8 }, -/obj/structure/catwalk, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 +/obj/item/photo{ + pixel_y = -12 }, -/obj/structure/salvageable/protolathe, -/turf/open/floor/plating, -/area/ruin/whitesands/pubbycrash) -"Zj" = ( -/turf/open/floor/engine/hull, -/area/ruin/whitesands/pubbycrash) -"Zk" = ( -/obj/structure/railing/corner{ - dir = 4 +/obj/item/toy/figure/captain{ + pixel_x = 7; + pixel_y = 12 }, -/obj/effect/turf_decal/siding/brown{ - dir = 1 +/obj/item/stack/ore/salvage/scrapmetal, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"Zu" = ( +/obj/machinery/light/directional/west, +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/structure/closet/wall{ - icon_door = "orange_wall"; - name = "Mining equipment"; - pixel_y = 28 +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = -4 }, -/obj/item/clothing/glasses/meson, -/obj/item/clothing/glasses/meson, -/obj/item/storage/bag/ore, -/obj/item/storage/bag/ore, -/obj/item/clothing/suit/hazardvest, -/obj/item/clothing/suit/hazardvest, -/obj/structure/cable{ - icon_state = "0-4" +/obj/item/folder/blue{ + pixel_x = 3; + pixel_y = 2 }, -/obj/effect/decal/cleanable/cobweb, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech/techmaint, -/area/ruin/whitesands/pubbycrash) -"Zp" = ( +/obj/item/folder/white, +/obj/item/pen, /obj/structure/railing{ - dir = 1 + dir = 8 }, -/obj/effect/turf_decal/siding/brown{ - dir = 1 +/obj/item/stamp/captain{ + pixel_x = -6; + pixel_y = 8 + }, +/obj/item/spacecash/bundle/c1000{ + pixel_x = 2; + pixel_y = -14 + }, +/obj/item/spacecash/bundle/c1000{ + pixel_x = 2; + pixel_y = -14 + }, +/obj/item/spacecash/bundle/c1000{ + pixel_x = 4; + pixel_y = -16 }, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"Zx" = ( /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ dir = 4 }, -/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/vomit/old, /turf/open/floor/plasteel/tech/techmaint, -/area/ruin/whitesands/pubbycrash) +/area/ruin/whitesands/pubbycrash/engine_room) (1,1,1) = {" Gl @@ -2354,15 +2512,15 @@ Gl Gl Gl Gl -RT -RT -RT -RT -RT -RT -RT -RT -RT +Gl +Gl +Gl +Gl +Gl +Gl +Gl +Gl +Gl Gl Gl Gl @@ -2378,22 +2536,22 @@ Gl Gl Gl RT -RT -RT -RT -RT -RT -RT -RT -RT -RT -RT -RT -RT -RT -RT -RT -RT +Gl +Gl +Gl +Gl +Gl +Gl +Gl +Gl +Gl +Gl +Gl +Gl +Gl +Gl +Gl +Gl Gl Gl Gl @@ -2403,25 +2561,25 @@ Gl "} (3,1,1) = {" Gl +Gl RT RT -RT -RT -RT -RT -RT -RT -RT -RT -RT -RT -RT -RT -RT -RT -RT -RT -RT +Vt +Vt +Vt +Gl +Gl +Gl +Vt +Vt +Gl +Vt +Vt +Gl +Gl +Gl +Gl +Gl Gl Gl Gl @@ -2433,24 +2591,24 @@ Gl RT RT RT -RT -cN -dW -Eb -LM -cN -Ky -cN -cN -Hq -Wg -cN -RT -RT -RT -RT -RT Vt +Vt +Vt +Vt +Vt +Vt +Vt +Vt +Vt +Vt +Vt +Vt +Vt +RT +Gl +Gl +Gl +Gl Gl Gl Gl @@ -2459,135 +2617,135 @@ Gl Gl RT RT -RT -RT -cN -qz -GF -cN -cN -SO -oo -cN +Vt +Vt +Vt +Vt +Vt +Vt +Vt +Vt +Vt +Vt Fc -Ml -cN -RT -RT -RT -RT -RT Vt Vt +Vt +RT +RT +Gl +Gl Gl Gl -"} -(6,1,1) = {" Gl Gl +"} +(6,1,1) = {" RT RT RT -cN +Vt +Vt +Vt QI -dm -cN -cN +AJ +AJ +bS mW -cN -Ji +Vt +sA PZ fO -cN -RT +SU +Vt RT RT RT -Vt -Vt -Vt Gl Gl -"} -(7,1,1) = {" Gl Gl +Gl +"} +(7,1,1) = {" RT RT RT -cN +RT +AJ +AJ SU HQ -cN -xA +sA +oS pu Et -jG +AJ yU oS Dx +AJ RT RT RT -RT -Vt -Vt -Vt Gl Gl -"} -(8,1,1) = {" Gl Gl +Gl +"} +(8,1,1) = {" RT RT RT -cN +RT +AJ +xX rW sV -cN -Pr +Bw +xX Qw -LU +xX Yu kP AH -Dx +xX +AJ RT RT RT RT Vt -Vt -Vt -Vt +Gl +Gl Gl "} (9,1,1) = {" Gl -Gl RT RT RT -cN -cN +RT +xX +Tg Qu -cN -Ha +xX +xX Hb ln -cN +xX DY PI -cN -RT +xX +AJ +AJ RT RT RT Vt Vt -Vt -Vt +Gl Gl "} (10,1,1) = {" @@ -2595,27 +2753,27 @@ Gl RT RT RT -Vj -GA +RT +xX YL iW -Xn -Zg +xX +xX pe -wV +xX so lB re -cN -Zj +xX +RT +AJ RT RT Vt Vt Vt -Vt -Vt -Vt +Gl +Gl "} (11,1,1) = {" RT @@ -2623,71 +2781,72 @@ RT RT RT AJ -cN +xX VK ho -Ho +xX Dg Cs zP KO xa Ew -cN +SO +RT AJ RT RT Vt Vt Vt -Vt -Vt -Vt +Gl +Gl "} (12,1,1) = {" RT RT RT -RT -sA -cN -LW -LW -cN -cN +AJ +AJ +xX +aR +yj +xX +xH gG -cN -cN -LW +dW +ET +Pu LW -cN -sA +SO +AJ +AJ RT RT Vt Vt Vt Vt -Vt -Vt +Gl "} (13,1,1) = {" +Gl RT RT RT -RT -RT -RT -aR +AJ +xX +xX Sy -ET +xX cp PA fR -AO +xX jt Mi -ek +xX +AJ RT RT RT @@ -2695,27 +2854,26 @@ Vt Vt Vt Vt -Vt -Vt +Gl "} (14,1,1) = {" +Gl RT RT RT -RT -RT -RT -RT +jG +Ha +QR Bz pT JI Lm BH -KS -up -RT -RT -RT +KS +up +qz +xX +Zg RT RT Vt @@ -2726,14 +2884,14 @@ Vt Vt "} (15,1,1) = {" -Gl -RT -RT RT RT RT +AJ +ch +xX gL -vc +Zx bW DQ gu @@ -2741,52 +2899,52 @@ Ct gy fX vc +xX +ch RT RT -RT -RT -bZ Vt Vt Vt Vt -Gl +Vt +Vt "} (16,1,1) = {" -Gl -Gl RT RT RT -pR -eq +AJ +Ai +xX vL -FP -KI +vL +xX +xX QD -vw -lK -RT -VG -WD -RT -RT -RT -bZ +xX +xX +vL +vL +xX +Ai +AJ +AJ +Vt +Vt Vt Vt Vt Vt -Gl "} (17,1,1) = {" -Gl -Gl RT RT +AJ +AJ sA -cN -cN +Zj +tB RC zX Uo @@ -2794,26 +2952,26 @@ nQ XK FY nP -cN -cN -sA +VG +dm +AJ +AJ RT RT -bZ Vt Vt Vt Vt -Gl +Vt "} (18,1,1) = {" -Gl -Gl RT RT RT -ck -Kt +AJ +AJ +RT +RT Bd fA IQ @@ -2823,49 +2981,49 @@ zi oq hh ck -ba -Cw +AJ +RT +RT +RT Vt Vt Vt Vt Vt -Gl -Gl "} (19,1,1) = {" -Gl -Gl RT RT RT -cN -cN -cN -cN -cN +RT +AJ +RT +vw +Ho +xz +ih yK -cN -cN -cN -cN -cN -cN -Vt -Cw +Kt +di +mp +Ho +hh +AJ +AJ +RT +AJ Vt Vt Vt Vt Gl -Gl "} (20,1,1) = {" -Gl -Gl RT RT RT +RT +AJ pG Di ff @@ -2874,35 +3032,143 @@ Uy co ly PK -jF -mH +hh +Wg +hh +RT +AJ +Vt +bZ Vt -IC Vt Vt -Cw -VP -gx Vt -Gl Gl "} (21,1,1) = {" Gl -Gl -RT RT RT RT -In +Xn +vX +vX Wo YC -cN +Gp RL -cN +Vj Fq If +vX +vX +Xn +RT +Vt +bZ +Vt +Vt +Vt +Vt +Gl +"} +(22,1,1) = {" +Gl +RT +RT +RT +AJ +KI +IU +AO +wn +lK +TB +Li +mH +PY +pR +KI +fr +Cw +Vt +Vt +Vt +Vt +Vt +Gl +Gl +"} +(23,1,1) = {" +Gl +RT +RT +RT +AJ +vX +vX +vX +vX +vX +xy +vX +vX +vX +vX +vX +vX +Vt +Cw +Vt +Vt +Vt +Vt +Gl +Gl +"} +(24,1,1) = {" +RT +RT +RT +RT +AJ +jA +kA +NI +Lj +Us +sC +rZ +Zk +WD +ul +AJ +IC +Vt +Vt +Cw +VP +gx Vt +Gl +Gl +"} +(25,1,1) = {" +RT +RT +RT +RT +RT +AJ +KT +ct +oo +vX +nG +vX +Ls +xA +AJ Vt kp Cw @@ -2914,224 +3180,223 @@ RT Gl Gl "} -(22,1,1) = {" +(26,1,1) = {" Gl RT RT RT -cN -cN -cN -cN -cN -cN -TB -cN -mH -IC +vX +vX +vX +vX +vX +vX +Ga +vX +ul +XA RT Vt Vt Vt -cN -cN -cN -cN +AA +AA +AA +AA RT Gl Gl "} -(23,1,1) = {" +(27,1,1) = {" Gl RT RT RT -iw +wV +Xi +Fn +IR vX -rZ -QR -cN -Ak -xy -Pu -Cw -Vt +Mr +Gi +In +ym +AJ RT VP gx xc -cN -Zk -Ls -cN +AA +sD +rT +AA RT RT Gl "} -(24,1,1) = {" -Gl +(28,1,1) = {" Gl RT RT -iw -jA -kA -NI -Lj -Us -sC -cN -Vt +RT +wV +Eb +Ak +kM +ss +Og +kU +vX +AJ RT RT IC lR nq -cN -Zp -bS -cN +AA +vO +Xm +AA RT RT Gl "} -(25,1,1) = {" -Gl +(29,1,1) = {" Gl RT RT -iw -PY -KT -ct -cN -Ig -nG -cN -Vt +RT +wV +Ji +Hq +KB +vX +hz +cx +vX +AJ RT Vt Vt -cN -cN -cN -Fn -wn -cN +AA +AA +AA +TF +uB +AA RT RT Gl "} -(26,1,1) = {" -Gl +(30,1,1) = {" Gl RT RT -cN -yj -Cg -fk -cN -BD -Ga -cN -ul -Cw +RT +vX +iw +Bi +Ik +vX +Dn +lA +vX +Qo +ym Cw sd -Eh -hA -yx -pE -XA -cN +as +Pr +ON +jF +eq +AA RT RT RT "} -(27,1,1) = {" -Gl +(31,1,1) = {" Gl RT RT -cN -cN -cN -cN -cN -cN -Gi -cN -Jz +RT +vX +vX +vX +vX +vX +vX +Cg +vX +LM kp Vt Vt -cN -gg -Tg -sD -rT -iw +AA +Yt +mU +Fo +no +VZ RT RT RT "} -(28,1,1) = {" -Gl +(32,1,1) = {" Gl RT RT RT RT -cN -kM -ss -Og -kU -If -yt +RT +vX +Zp +Zu +FP +AD +xA +ab Vt IC Vt +AA +Em +GK cN -as -Ik -vO -Xm -iw +lI +VZ RT RT RT "} -(29,1,1) = {" -Gl +(33,1,1) = {" Gl Gl RT RT RT -cN -KB -Qb -hz -cx +RT +vX +ba +gg +pE +ek uh -oO -mp +yx +Zj gx Vt -cN +AA +Oz +Ig +Ml DB -di -TF -uB -iw +VZ RT RT RT "} -(30,1,1) = {" -Gl +(34,1,1) = {" Gl Gl RT @@ -3139,27 +3404,26 @@ RT RT RT RT -Mr -Dn -lA -If -Qo -ym +RT +LU +GA +oO +xA +BD +Qb gs Cw -cN -cN -cN -cN -cN -cN +AA +AA +AA +AA +AA +AA RT RT RT "} -(31,1,1) = {" -Gl -Gl +(35,1,1) = {" Gl RT RT @@ -3169,23 +3433,24 @@ RT RT RT RT -cN -IC +RT +RT +vX +XA Vt Vt Vt -cN -Yt -mU -cN -cN -AJ +AA +GF +ge +AA +AA +Ky RT RT Gl "} -(32,1,1) = {" -Gl +(36,1,1) = {" Gl RT RT @@ -3197,21 +3462,22 @@ RT RT RT RT +RT Vt Cw VP nq EG -Em -GK -cN -AJ +Eh +fk +AA +Ky RT RT RT Gl "} -(33,1,1) = {" +(37,1,1) = {" Gl Gl RT @@ -3228,17 +3494,17 @@ kp IC Vt qN -cN -Oz -cN -AJ +AA +oj +AA +Ky RT RT RT RT Gl "} -(34,1,1) = {" +(38,1,1) = {" Gl Gl Gl @@ -3265,7 +3531,7 @@ Gl Gl Gl "} -(35,1,1) = {" +(39,1,1) = {" Gl Gl Gl @@ -3292,7 +3558,7 @@ Gl Gl Gl "} -(36,1,1) = {" +(40,1,1) = {" Gl Gl Gl diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_starfurycrash.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_starfurycrash.dmm index 00a0e830f8c2..bc8616028058 100644 --- a/_maps/RandomRuins/SandRuins/whitesands_surface_starfurycrash.dmm +++ b/_maps/RandomRuins/SandRuins/whitesands_surface_starfurycrash.dmm @@ -637,7 +637,7 @@ /area/overmap_encounter/planetoid/cave/explored) "KT" = ( /obj/structure/safe/floor, -/obj/item/clothing/suit/space/hardsuit/syndi, +/obj/item/clothing/suit/space/hardsuit/syndi/ramzi, /obj/item/documents/syndicate, /turf/open/floor/plating{ icon_state = "panelscorched"; diff --git a/_maps/RandomRuins/SpaceRuins/astraeus.dmm b/_maps/RandomRuins/SpaceRuins/astraeus.dmm index bafc48460b64..adf957299b7a 100644 --- a/_maps/RandomRuins/SpaceRuins/astraeus.dmm +++ b/_maps/RandomRuins/SpaceRuins/astraeus.dmm @@ -937,7 +937,7 @@ name = "paper - Munitions Inventory"; pixel_x = 7 }, -/obj/item/book/manual/wiki/engineering_hacking{ +/obj/item/book/manual/wiki/hacking{ pixel_x = -6 }, /turf/open/floor/plasteel/airless, diff --git a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm index 58799b7c71ca..a4f6006bf88b 100644 --- a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm +++ b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm @@ -522,7 +522,7 @@ /turf/open/floor/plasteel, /area/ruin/space/has_grav/derelictoutpost/powerstorage) "bI" = ( -/obj/item/gun/ballistic/automatic/pistol/m1911{ +/obj/item/gun/ballistic/automatic/pistol/candor{ spawnwithmagazine = 0 }, /turf/open/floor/plasteel, @@ -1333,7 +1333,7 @@ desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor" }, -/obj/item/gun/ballistic/automatic/pistol/m1911{ +/obj/item/gun/ballistic/automatic/pistol/candor{ spawnwithmagazine = 0 }, /obj/item/ammo_box/magazine/m45, @@ -1493,7 +1493,7 @@ /turf/open/floor/plating, /area/ruin/space/has_grav/derelictoutpost) "dJ" = ( -/obj/item/gun/ballistic/automatic/pistol/m1911{ +/obj/item/gun/ballistic/automatic/pistol/candor{ spawnwithmagazine = 0 }, /obj/structure/alien/weeds{ diff --git a/_maps/RandomRuins/SpaceRuins/clericden.dmm b/_maps/RandomRuins/SpaceRuins/clericden.dmm index b70a3ada2857..e163b6f46cea 100644 --- a/_maps/RandomRuins/SpaceRuins/clericden.dmm +++ b/_maps/RandomRuins/SpaceRuins/clericden.dmm @@ -578,7 +578,7 @@ /turf/open/floor/plasteel/dark/airless, /area/ruin/unpowered/no_grav) "Cb" = ( -/obj/item/book/manual/wiki/barman_recipes, +/obj/item/book/manual/wiki/drinks, /obj/structure/fluff/paper/stack{ dir = 5 }, @@ -650,7 +650,7 @@ /turf/open/floor/carpet/airless, /area/ruin/unpowered/no_grav) "Fz" = ( -/obj/item/book/manual/wiki/engineering_construction, +/obj/item/book/manual/wiki/construction, /obj/structure/fluff/paper/stack{ dir = 9 }, diff --git a/_maps/RandomRuins/SpaceRuins/corporate_mining.dmm b/_maps/RandomRuins/SpaceRuins/corporate_mining.dmm index 6ed5ed67825f..3585b4dcc1e3 100644 --- a/_maps/RandomRuins/SpaceRuins/corporate_mining.dmm +++ b/_maps/RandomRuins/SpaceRuins/corporate_mining.dmm @@ -956,7 +956,7 @@ /area/ruin/space) "xK" = ( /obj/structure/table/wood, -/obj/machinery/fax, +/obj/machinery/fax/ruin, /turf/open/floor/wood, /area/ruin/space/has_grav/corporatemine/crewquarters) "xT" = ( diff --git a/_maps/RandomRuins/SpaceRuins/dangerous_research.dmm b/_maps/RandomRuins/SpaceRuins/dangerous_research.dmm index f477717d9b81..28695ad57a80 100644 --- a/_maps/RandomRuins/SpaceRuins/dangerous_research.dmm +++ b/_maps/RandomRuins/SpaceRuins/dangerous_research.dmm @@ -192,7 +192,7 @@ "gC" = ( /obj/structure/table, /obj/effect/turf_decal/corner/opaque/green/border, -/obj/item/book/manual/wiki/infections, +/obj/item/book/manual/wiki/chemistry, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav) "gH" = ( diff --git a/_maps/RandomRuins/SpaceRuins/fueldepot.dmm b/_maps/RandomRuins/SpaceRuins/fueldepot.dmm index 478e36ffe5bb..abe9e9f4562c 100644 --- a/_maps/RandomRuins/SpaceRuins/fueldepot.dmm +++ b/_maps/RandomRuins/SpaceRuins/fueldepot.dmm @@ -224,7 +224,7 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt/dust, -/obj/item/gun/ballistic/shotgun/lethal, +/obj/item/gun/ballistic/shotgun/brimstone, /turf/open/floor/mineral/plastitanium, /area/ruin/unpowered) "hL" = ( diff --git a/_maps/RandomRuins/SpaceRuins/lab4071.dmm b/_maps/RandomRuins/SpaceRuins/lab4071.dmm index b69f076fa2f6..86829ac573bd 100644 --- a/_maps/RandomRuins/SpaceRuins/lab4071.dmm +++ b/_maps/RandomRuins/SpaceRuins/lab4071.dmm @@ -3369,7 +3369,7 @@ pixel_y = -2 }, /obj/item/ammo_box/magazine/m45, -/obj/item/gun/ballistic/automatic/pistol/m1911{ +/obj/item/gun/ballistic/automatic/pistol/candor{ pixel_x = -3; pixel_y = 5 }, diff --git a/_maps/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/RandomRuins/SpaceRuins/oldstation.dmm index 1b9136861194..635321fa9d4b 100644 --- a/_maps/RandomRuins/SpaceRuins/oldstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldstation.dmm @@ -1507,7 +1507,6 @@ "ex" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, -/obj/item/book/manual/wiki/security_space_law, /obj/effect/turf_decal/corner/opaque/red{ dir = 1 }, diff --git a/_maps/RandomRuins/SpaceRuins/onehalf.dmm b/_maps/RandomRuins/SpaceRuins/onehalf.dmm index d613f4bcf8f8..ed19285b586e 100644 --- a/_maps/RandomRuins/SpaceRuins/onehalf.dmm +++ b/_maps/RandomRuins/SpaceRuins/onehalf.dmm @@ -920,7 +920,7 @@ /obj/structure/safe/floor, /obj/item/tank/internals/oxygen/red, /obj/item/clothing/mask/gas/syndicate, -/obj/item/clothing/suit/space/hardsuit/syndi, +/obj/item/clothing/suit/space/hardsuit/syndi/ramzi, /obj/item/reagent_containers/food/drinks/bottle/rum, /obj/item/reagent_containers/food/drinks/bottle/rum, /obj/item/folder/syndicate/mining, diff --git a/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm b/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm index 486cbbce85fd..3175796cd159 100644 --- a/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm +++ b/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm @@ -7011,7 +7011,7 @@ "Cb" = ( /obj/structure/table, /obj/structure/spacevine, -/obj/item/book/manual/wiki/engineering_guide, +/obj/item/book/manual/wiki/engineering, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ dir = 6 }, @@ -11252,7 +11252,7 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/item/book/manual/wiki/engineering_singulo_tesla, +/obj/item/book/manual/wiki/engineering, /turf/open/space/basic, /area/space/nearstation) "Rp" = ( diff --git a/_maps/RandomRuins/SpaceRuins/spacemall.dmm b/_maps/RandomRuins/SpaceRuins/spacemall.dmm index 276292022795..c2efbe90506d 100644 --- a/_maps/RandomRuins/SpaceRuins/spacemall.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacemall.dmm @@ -1085,7 +1085,7 @@ /area/ruin/space/has_grav/spacemall/dorms) "eb" = ( /obj/structure/table/reinforced, -/obj/item/book/manual/wiki/engineering_hacking, +/obj/item/book/manual/wiki/hacking, /turf/open/floor/plasteel, /area/ruin/space/has_grav/spacemall/shop) "ed" = ( diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_fortress_of_solitide.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_fortress_of_solitide.dmm index 66ab48f18a92..e931e0091d26 100644 --- a/_maps/RandomRuins/WasteRuins/wasteplanet_fortress_of_solitide.dmm +++ b/_maps/RandomRuins/WasteRuins/wasteplanet_fortress_of_solitide.dmm @@ -401,7 +401,7 @@ /area/ruin/powered) "dT" = ( /obj/structure/table/wood, -/obj/machinery/fax, +/obj/machinery/fax/ruin, /turf/open/floor/plating, /area/ruin/powered) "dU" = ( diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_lab.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_lab.dmm index 617cde29db7b..c1ba42b3c415 100644 --- a/_maps/RandomRuins/WasteRuins/wasteplanet_lab.dmm +++ b/_maps/RandomRuins/WasteRuins/wasteplanet_lab.dmm @@ -99,7 +99,7 @@ /area/ruin/powered) "fq" = ( /obj/structure/table, -/obj/item/ammo_box/n762, +/obj/item/ammo_box/c45_speedloader, /turf/open/floor/plasteel/mono/white, /area/ruin/powered) "fJ" = ( @@ -165,12 +165,6 @@ "hl" = ( /turf/open/floor/plasteel/mono/dark, /area/ruin/powered) -"hL" = ( -/obj/structure/displaycase/noalert{ - start_showpiece_type = /obj/item/ammo_box/magazine/sniper_rounds - }, -/turf/open/floor/plasteel, -/area/ruin/powered) "ih" = ( /obj/structure/table/wood/reinforced, /obj/item/stack/sheet/mineral/uranium/five, @@ -207,12 +201,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, /area/ruin/powered) -"iE" = ( -/obj/structure/displaycase/noalert{ - start_showpiece_type = /obj/item/ammo_box/magazine/mm712x82 - }, -/turf/open/floor/plasteel, -/area/ruin/powered) "jn" = ( /obj/effect/turf_decal/industrial/warning{ dir = 1 @@ -313,12 +301,6 @@ /obj/item/modular_computer/laptop/preset, /turf/open/floor/plasteel/dark, /area/ruin/powered) -"os" = ( -/obj/structure/displaycase/noalert{ - start_showpiece_type = /obj/item/ammo_box/magazine/smgm45 - }, -/turf/open/floor/plasteel, -/area/ruin/powered) "ov" = ( /obj/effect/turf_decal/corner/transparent/neutral/diagonal, /obj/machinery/autolathe/hacked, @@ -496,9 +478,7 @@ /turf/open/floor/plasteel/white, /area/ruin/powered) "wf" = ( -/obj/structure/displaycase/noalert{ - start_showpiece_type = /obj/item/ammo_box/magazine/co9mm - }, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/ruin/powered) "wp" = ( @@ -626,9 +606,7 @@ /area/ruin/powered) "BK" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/displaycase/noalert{ - start_showpiece_type = /obj/item/ammo_box/magazine/mm712x82 - }, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/ruin/powered) "Cl" = ( @@ -866,9 +844,7 @@ /turf/open/floor/plasteel, /area/ruin/powered) "Ta" = ( -/obj/structure/displaycase/noalert{ - start_showpiece_type = /obj/item/ammo_box/magazine/ebr - }, +/obj/item/kirbyplants/random, /turf/open/floor/plating/rust, /area/ruin/powered) "Tb" = ( @@ -1179,7 +1155,7 @@ Rw Rw Rw Ta -iE +wf wf GR tD @@ -1529,9 +1505,9 @@ Rw Rw Rw Rw -os +wf BK -hL +wf GR tD tD diff --git a/_maps/configs/inteq_valor.json b/_maps/configs/inteq_valor.json new file mode 100644 index 000000000000..92162ac1a5da --- /dev/null +++ b/_maps/configs/inteq_valor.json @@ -0,0 +1,40 @@ +{ + "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", + "map_name": "Valor-Class Field Care Cruiser", + "prefix": "IRMV", + "description": "The Valor is the dedicated medical vessel of the Inteq fleet, suitable for treatment both for Inteq combat casualties, or paid treatment of outsiders. It's equipped with high-end medical equipment and a small ambulance for patient transport for this purpose.", + "tags": ["Medical", "Subshuttle"], + "namelists": [ + "MYTHOLOGICAL", + "NATURAL", + "INTEQ" + ], + "map_short_name": "Valor-class", + "map_path": "_maps/shuttles/inteq/inteq_valor.dmm", + "limit": 1, + "job_slots": { + "Vanguard": { + "outfit": "/datum/outfit/job/inteq/captain", + "officer": true, + "slots": 1 + }, + "Honorable Corpsman": { + "outfit": "/datum/outfit/job/inteq/cmo/empty", + "officer": true, + "slots": 1 + }, + "Corpsman": { + "outfit": "/datum/outfit/job/inteq/paramedic/empty", + "slots": 3 + }, + "Enforcer": { + "outfit": "/datum/outfit/job/inteq/security/empty", + "slots": 2 + }, + "Recruit": { + "outfit": "/datum/outfit/job/inteq/assistant", + "slots": 2 + } + }, + "enabled": true +} diff --git a/_maps/configs/minutemen_corvus.json b/_maps/configs/minutemen_corvus.json index 502a67ce6b03..0e424099b8cc 100644 --- a/_maps/configs/minutemen_corvus.json +++ b/_maps/configs/minutemen_corvus.json @@ -4,7 +4,7 @@ "prefix": "CMSV", "description": "A lightly equipped patrol vessel used by the Minutemen for extended operations in the Frontier. In many systems, a lone Corvus is the only sign of Minutemen presence, an image that is not helped by their widespread usage. The Corvus was originally a light personal vessel retrofitted for combat usage by the Colonial Militia, which was later adopted as their official remote infantry patrol ship as a symbol of colonial ingenuity and grit. First designated the Wallaby-class, until the crew of a now-legendary Wallaby-class known as the CMSV Corvus single handedly destroyed a Frontiersmen capital ship in 392.", "tags": [ - "Combot", + "Combat", "Riot" ], "namelists": [ diff --git a/_maps/configs/syndicate_aegis.json b/_maps/configs/syndicate_aegis.json index 9dc307f7f091..5946a8e78343 100644 --- a/_maps/configs/syndicate_aegis.json +++ b/_maps/configs/syndicate_aegis.json @@ -1,5 +1,5 @@ { - "prefix": "SSV", + "prefix": "SUNS", "map_name": "Aegis-class Long Term Care Ship", "map_short_name": "Aegis-class", "map_path": "_maps/shuttles/syndicate/syndicate_aegis.dmm", @@ -18,7 +18,7 @@ ], "job_slots": { "Captain": { - "outfit": "/datum/outfit/job/syndicate/captain", + "outfit": "/datum/outfit/job/syndicate/captain/suns", "officer": true, "slots": 1 }, @@ -34,7 +34,7 @@ }, "Mechanic": { - "outfit": "/datum/outfit/job/syndicate/engineer", + "outfit": "/datum/outfit/job/syndicate/engineer/suns", "slots": 1 }, diff --git a/_maps/configs/syndicate_cybersun_kansatsu.json b/_maps/configs/syndicate_cybersun_kansatsu.json index fbde6dc608d6..a9c9fcb94349 100644 --- a/_maps/configs/syndicate_cybersun_kansatsu.json +++ b/_maps/configs/syndicate_cybersun_kansatsu.json @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", - "prefix": "SSV", + "prefix": "CSSV", "namelists": [ "CYBERSUN", "SPACE", diff --git a/_maps/configs/syndicate_gorlex_hyena.json b/_maps/configs/syndicate_gorlex_hyena.json index 4e9086139275..51b046d114b7 100644 --- a/_maps/configs/syndicate_gorlex_hyena.json +++ b/_maps/configs/syndicate_gorlex_hyena.json @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", - "prefix": "SSV", + "prefix": "NGRV", "namelists": [ "GORLEX", "NATURAL_AGGRESSIVE", diff --git a/_maps/configs/syndicate_gorlex_komodo.json b/_maps/configs/syndicate_gorlex_komodo.json index 5692eaf44a14..595b61b079d9 100644 --- a/_maps/configs/syndicate_gorlex_komodo.json +++ b/_maps/configs/syndicate_gorlex_komodo.json @@ -1,5 +1,5 @@ { - "prefix": "SSV", + "prefix": "ISV", "namelists": [ "GORLEX", "NATURAL_AGGRESSIVE", diff --git a/_maps/configs/syndicate_litieguai.json b/_maps/configs/syndicate_litieguai.json index 887828e28176..685a53187422 100644 --- a/_maps/configs/syndicate_litieguai.json +++ b/_maps/configs/syndicate_litieguai.json @@ -1,7 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Li Tieguai-class Rescue Ship", - "prefix": "SSV", + "prefix": "CSSV", "map_short_name": "Li Tieguai-class", "description": "A small, nimble, and exceptionally well-built medical response vessel, the Li Tieguai is a recent addition to Cybersun’s fleet, forming a critical component of their Frontier stabilization program. Li Tieguais come equipped with high-end medical equipment, including a selection of Cybersun augments and prosthetics, as well as weaponry and armor sufficient to protect its personnel in the often-dangerous Frontier sectors, so that they can offer premium healthcare (at premium prices) in even the most dangerous of scenarios.", "tags": [ diff --git a/_maps/configs/syndicate_lugol.json b/_maps/configs/syndicate_lugol.json index 26599d93a8ee..673d9be16ff5 100644 --- a/_maps/configs/syndicate_lugol.json +++ b/_maps/configs/syndicate_lugol.json @@ -1,6 +1,6 @@ { "map_name": "Lugol-class GEC Engineering Project", - "prefix": "SEV", + "prefix": "XSV", "map_short_name": "Lugol-class", "description": "The Lugol is effectively an enormous Galactic Engineers Concordat research barge, used as a test bed for refinements to power systems, new technologies, and so on. As it offers freedom from the usual constraints of working aboard vessels belonging to other Syndicate factions, Lugols are especially popular among the GEC’s more radical members. Accordingly, they have a reputation for either accomplishing the impossible or generating the equivalent of a new star when they inevitably melt down. Lugols are generally only found on the Frontier, where the collateral damage from potential accidents can be kept to a minimum and secrecy, when needed, can be better maintained.", "tags": [ @@ -14,7 +14,7 @@ ], "map_path": "_maps/shuttles/syndicate/syndicate_gec_lugol.dmm", "map_id": "gec_lugol", - "limit": 2, + "limit": 1, "job_slots": { "Project Overseer": { "outfit": "/datum/outfit/job/syndicate/ce/gec", diff --git a/_maps/configs/syndicate_luxembourg.json b/_maps/configs/syndicate_luxembourg.json deleted file mode 100644 index 1433f2da547a..000000000000 --- a/_maps/configs/syndicate_luxembourg.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", - "prefix": "SSV", - "namelists": [ - "DONK", - "MERCANTILE", - "SPACE" - ], - "map_name": "Luxembourg-class Delivery Vessel", - "description": "A dual-purpose delivery vessel and mobile storefront, Luxembourgs make up a substantial portion of Donk! Co.’s fleet on the Frontier, where the ever-opportunistic corporation has begun to fill the gaps left behind by the collapse of Nanotrasen’s logistics network. Donk! Co. managers have a great degree of autonomy, and so any given Luxembourg will often bear substantial modifications to the sales floor and on-board cafe, the better to entice new customers in an unstable yet lucrative region of space.", - "tags": [ - "Robotics", - "Cargo" - ], - "map_short_name": "Luxembourg-class", - "map_path": "_maps/shuttles/syndicate/syndicate_luxembourg.dmm", - "limit": 1, - "starting_funds": 6000, - "job_slots": { - "Manager": { - "outfit": "/datum/outfit/job/syndicate/quartermaster/donk", - "slots": 1 - }, - "Customer Service Representative": { - "outfit": "/datum/outfit/job/syndicate/cargo_tech/donk", - "slots": 5 - }, - "Food and Beverage Specialist": { - "outfit": "/datum/outfit/job/syndicate/bartender", - "slots": 1 - }, - "GEC Contracted Engineer": { - "outfit": "/datum/outfit/job/syndicate/engineer/gec", - "slots": 1 - } - }, - "enabled": true -} diff --git a/_maps/map_catalogue.txt b/_maps/map_catalogue.txt index 3d86570f326c..284e944454f4 100644 --- a/_maps/map_catalogue.txt +++ b/_maps/map_catalogue.txt @@ -337,8 +337,8 @@ Find the key for using this catalogue in "map_catalogue_key.txt" Tags = "No Combat", "Minor Loot", "Inhospitable" File Name = "_maps\RandomRuins\Ruins\whitesands_surface_pubbyslopcrash.dmm" - Size = (x = 35)(y = 25)(z = 1) - Tags = "Minor Combat Challange", "Medium Loot", "Shelter" + Size = (x = 40)(y = 25)(z = 1) + Tags = "Minor Combat Challenge", "Medium Loot", "Shelter" diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index e2b1ff97158c..bd415e97bae8 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -1096,6 +1096,18 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/control) +"apm" = ( +/obj/structure/rack, +/obj/item/gun/ballistic/automatic/gal/inteq{ + pixel_x = 1; + pixel_y = 4 + }, +/obj/item/gun/ballistic/automatic/gal/inteq{ + pixel_x = -4; + pixel_y = -2 + }, +/turf/open/floor/plasteel, +/area/centcom) "apt" = ( /obj/structure/closet/secure_closet/security, /obj/item/storage/belt/security/full, @@ -1504,7 +1516,6 @@ /area/centcom/ferry) "arZ" = ( /obj/structure/table/reinforced, -/obj/item/book/manual/wiki/security_space_law, /obj/item/taperecorder, /turf/open/floor/plasteel/grimy, /area/centcom/ferry) @@ -2197,7 +2208,6 @@ /turf/open/floor/wood, /area/wizard_station) "axw" = ( -/obj/machinery/vending/magivend, /turf/open/floor/engine/cult, /area/wizard_station) "axx" = ( @@ -3419,6 +3429,17 @@ /obj/machinery/light/directional/west, /turf/open/floor/plating/asteroid, /area/tdome/tdomeadmin) +"aIF" = ( +/obj/structure/table/reinforced, +/obj/item/storage/ration/crayons{ + pixel_x = 9; + pixel_y = 5 + }, +/obj/item/storage/ration/shredded_beef{ + pixel_x = -2 + }, +/turf/open/floor/plasteel, +/area/centcom) "aIH" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/corner/transparent/neutral{ @@ -4435,7 +4456,7 @@ "aOO" = ( /obj/item/reagent_containers/food/condiment/enzyme, /obj/item/reagent_containers/food/drinks/shaker, -/obj/item/book/manual/wiki/barman_recipes, +/obj/item/book/manual/wiki/drinks, /obj/structure/closet/crate, /turf/open/floor/plasteel, /area/centcom/holding) @@ -4560,6 +4581,9 @@ }, /turf/open/floor/plasteel, /area/tdome/arena) +"aPu" = ( +/turf/closed/indestructible/reinforced, +/area/centcom) "aPw" = ( /obj/machinery/door/airlock/centcom{ name = "CentCom Security"; @@ -6202,10 +6226,16 @@ }, /turf/open/floor/plasteel, /area/centcom/control) +"bbf" = ( +/obj/machinery/door/airlock/command{ + dir = 4; + req_access_txt = "109" + }, +/turf/open/floor/plasteel, +/area/centcom) "bbL" = ( /obj/structure/table/wood, /obj/item/folder/red, -/obj/item/book/manual/wiki/security_space_law, /obj/item/restraints/handcuffs, /obj/item/assembly/flash/handheld, /obj/effect/turf_decal/corner/transparent/neutral{ @@ -6470,6 +6500,13 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/supply) +"bFc" = ( +/obj/structure/table/reinforced, +/obj/item/radio/intercom/wideband/table{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom) "bIh" = ( /obj/structure/chair{ dir = 4 @@ -6484,6 +6521,16 @@ /obj/effect/turf_decal/industrial/warning, /turf/open/floor/plasteel, /area/centcom/control) +"bIJ" = ( +/obj/structure/sign/minutemen{ + pixel_y = -28 + }, +/obj/machinery/light/directional/west, +/obj/machinery/telecomms/relay/preset/minutemen{ + autolinkers = list("relay") + }, +/turf/open/floor/plasteel, +/area/centcom) "bMY" = ( /obj/effect/turf_decal/corner/opaque/green{ dir = 1 @@ -6526,9 +6573,30 @@ }, /turf/open/floor/plasteel, /area/centcom/control) +"bRF" = ( +/obj/structure/table/reinforced, +/obj/structure/sign/poster/minutemen/bard{ + pixel_y = -32 + }, +/obj/item/ammo_box/magazine/p16{ + pixel_x = -5; + pixel_y = 6 + }, +/obj/item/ammo_box/magazine/p16{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/item/ammo_casing{ + pixel_x = 7; + pixel_y = 7 + }, +/obj/item/ammo_casing{ + pixel_x = 11 + }, +/turf/open/floor/plasteel, +/area/centcom) "bRK" = ( /obj/structure/table/reinforced, -/obj/item/book/manual/wiki/security_space_law, /obj/item/taperecorder, /obj/effect/turf_decal/corner/transparent/neutral{ dir = 1 @@ -6542,6 +6610,26 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/ferry) +"bSy" = ( +/obj/structure/table/wood/fancy/blue, +/obj/structure/sign/solgov_seal{ + pixel_y = 28 + }, +/obj/item/clothing/head/beret/solgov{ + pixel_x = 11; + pixel_y = -1 + }, +/turf/open/floor/carpet/royalblue, +/area/centcom) +"bUH" = ( +/obj/effect/turf_decal/minutemen/corner{ + dir = 1 + }, +/obj/structure/chair/comfy{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom) "bVe" = ( /obj/structure/table/reinforced, /obj/item/restraints/handcuffs/cable/zipties, @@ -6664,6 +6752,21 @@ }, /turf/open/floor/plasteel, /area/centcom/control) +"ciU" = ( +/obj/structure/table/reinforced, +/obj/structure/sign/poster/contraband/gec{ + pixel_x = 32 + }, +/obj/item/paper_bin/construction, +/obj/item/pen, +/turf/open/floor/mineral/plastitanium, +/area/centcom) +"cjo" = ( +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/centcom) "ckq" = ( /obj/effect/turf_decal/corner/transparent/neutral{ dir = 1 @@ -6813,6 +6916,16 @@ }, /turf/open/floor/plasteel, /area/centcom/ferry) +"cxm" = ( +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 10 + }, +/obj/effect/turf_decal/steeldecal/steel_decals_central6, +/obj/structure/chair/comfy{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/centcom) "cyx" = ( /obj/effect/turf_decal/corner/transparent/neutral{ dir = 1 @@ -6848,6 +6961,12 @@ }, /turf/open/floor/plasteel/white, /area/tdome/tdomeobserve) +"cCK" = ( +/obj/machinery/telecomms/relay/preset/syndicate{ + autolinkers = list("relay") + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom) "cDe" = ( /obj/effect/turf_decal/corner/transparent/neutral{ dir = 1 @@ -6937,6 +7056,15 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/evac) +"cIS" = ( +/obj/structure/rack, +/obj/item/gun/ballistic/shotgun/bulldog/inteq, +/obj/item/gun/ballistic/shotgun/bulldog/inteq{ + pixel_x = -5; + pixel_y = -5 + }, +/turf/open/floor/plasteel, +/area/centcom) "cKk" = ( /obj/effect/turf_decal/corner/opaque/green{ dir = 8 @@ -6980,6 +7108,15 @@ }, /turf/open/floor/plasteel, /area/syndicate_mothership/control) +"cUG" = ( +/obj/structure/sign/poster/contraband/syndicate_recruitment{ + pixel_x = -32 + }, +/obj/machinery/computer/secure_data/syndie{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom) "cVC" = ( /obj/structure/noticeboard{ dir = 8; @@ -7047,6 +7184,11 @@ }, /turf/open/floor/plasteel/dark, /area/tdome/tdomeobserve) +"cZi" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/centcom) "dhD" = ( /obj/effect/turf_decal/corner/transparent/neutral{ dir = 1 @@ -7115,6 +7257,16 @@ }, /turf/open/floor/plasteel, /area/centcom/supply) +"dom" = ( +/obj/structure/sign/solgov_seal{ + pixel_y = 28 + }, +/obj/structure/table/wood/fancy/blue, +/obj/item/flashlight/lamp/green{ + pixel_y = 3 + }, +/turf/open/floor/carpet/royalblue, +/area/centcom) "dop" = ( /obj/structure/table/reinforced, /obj/item/storage/firstaid/regular, @@ -7185,6 +7337,18 @@ }, /turf/open/floor/plasteel, /area/centcom/evac) +"duw" = ( +/obj/effect/decal/cleanable/blood{ + icon_state = "floor5-old"; + pixel_y = -6; + pixel_x = -3 + }, +/obj/item/restraints/handcuffs/cable/zipties/used{ + pixel_x = -3; + pixel_y = -4 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/centcom) "dvo" = ( /obj/effect/turf_decal/industrial/warning, /turf/open/floor/plasteel/dark, @@ -7205,6 +7369,9 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/control) +"dER" = ( +/turf/open/floor/carpet/royalblue, +/area/centcom) "dGb" = ( /obj/effect/turf_decal/corner/transparent/neutral{ dir = 1 @@ -7270,6 +7437,15 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/control) +"dKW" = ( +/obj/structure/closet/crate/bin, +/obj/structure/sign/minutemen{ + pixel_y = 28 + }, +/obj/machinery/light/directional/east, +/obj/item/reagent_containers/food/snacks/pancakes/blueberry, +/turf/open/floor/plasteel, +/area/centcom) "dMa" = ( /obj/item/radio{ pixel_x = 5; @@ -7582,6 +7758,10 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/control) +"emF" = ( +/obj/effect/turf_decal/corner/opaque/yellow/full, +/turf/open/floor/plasteel, +/area/centcom) "enx" = ( /obj/item/kirbyplants{ icon_state = "plant-21"; @@ -7620,6 +7800,19 @@ }, /turf/open/floor/plasteel/white, /area/centcom/holding) +"eqM" = ( +/obj/effect/turf_decal/solgov/wood/bottom_left, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30" + }, +/turf/open/floor/wood/walnut, +/area/centcom) +"etl" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood/mahogany, +/area/centcom) "etp" = ( /obj/structure/table, /obj/item/paper_bin, @@ -7730,6 +7923,9 @@ }, /turf/open/floor/plasteel, /area/tdome/tdomeobserve) +"eAJ" = ( +/turf/closed/indestructible/wood, +/area/centcom) "eCK" = ( /obj/effect/turf_decal/corner/opaque/red{ dir = 1 @@ -7862,6 +8058,13 @@ heat_capacity = 1e+006 }, /area/tdome/tdomeobserve) +"eLy" = ( +/obj/machinery/door/airlock/hatch{ + dir = 4; + req_access = "109" + }, +/turf/open/floor/plasteel/patterned/grid, +/area/centcom) "eSx" = ( /obj/structure/noticeboard{ dir = 8; @@ -7961,6 +8164,13 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/control) +"eWz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/catwalk/over, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/centcom) "eYx" = ( /obj/item/kirbyplants{ icon_state = "plant-21" @@ -8005,6 +8215,12 @@ }, /turf/open/floor/plasteel, /area/centcom/supply) +"fau" = ( +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/centcom) "fda" = ( /obj/machinery/modular_computer/console/preset/command{ dir = 8 @@ -8155,7 +8371,6 @@ /turf/open/floor/plasteel/dark, /area/centcom/supply) "fsQ" = ( -/obj/item/book/manual/wiki/security_space_law, /obj/item/taperecorder, /obj/structure/table/wood, /obj/effect/turf_decal/corner/transparent/neutral{ @@ -8242,6 +8457,12 @@ }, /turf/open/floor/plasteel, /area/centcom/supply) +"fKt" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin, +/obj/item/pen/edagger, +/turf/open/floor/mineral/plastitanium, +/area/centcom) "fLD" = ( /obj/structure/closet/secure_closet/courtroom, /obj/effect/turf_decal/corner/transparent/neutral{ @@ -8385,6 +8606,16 @@ }, /turf/open/floor/plasteel, /area/centcom/control) +"fTU" = ( +/obj/effect/turf_decal/corner/opaque/yellow/three_quarters{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/centcom) +"fUc" = ( +/obj/machinery/door/airlock/security, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom) "fUK" = ( /obj/machinery/light/directional/west, /obj/effect/turf_decal/corner/transparent/bar, @@ -8449,6 +8680,12 @@ }, /turf/open/floor/plasteel, /area/tdome/tdomeobserve) +"gaU" = ( +/obj/effect/turf_decal/minutemen/corner{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom) "gba" = ( /obj/structure/table/reinforced, /obj/machinery/recharger, @@ -8485,6 +8722,12 @@ }, /turf/open/floor/plasteel, /area/centcom/supply) +"gfJ" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/carpet/royalblue, +/area/centcom) "ggX" = ( /obj/machinery/pdapainter, /obj/effect/turf_decal/corner/transparent/neutral{ @@ -8596,6 +8839,16 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/control) +"gsx" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/sign/solgov_seal{ + pixel_y = -28 + }, +/obj/structure/closet/crate/bin, +/turf/open/floor/wood/walnut, +/area/centcom) "gwE" = ( /obj/effect/turf_decal/corner/opaque/blue{ dir = 1 @@ -8653,6 +8906,13 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/control) +"gDV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/catwalk/over, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/centcom) "gFU" = ( /obj/machinery/computer/helm, /obj/effect/turf_decal/industrial/warning{ @@ -8805,6 +9065,12 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/control) +"gTo" = ( +/obj/structure/table/wood/fancy/blue, +/obj/machinery/light/directional/north, +/obj/machinery/fax/admin/solgov, +/turf/open/floor/carpet/royalblue, +/area/centcom) "gUp" = ( /obj/structure/chair{ dir = 1 @@ -8845,6 +9111,20 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/plasteel, /area/centcom/supply) +"hba" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = 5 + }, +/obj/item/clothing/head/cowboy/sec/minutemen{ + pixel_y = 8; + pixel_x = -4 + }, +/obj/item/pen/fourcolor{ + pixel_x = 5 + }, +/turf/open/floor/plasteel, +/area/centcom) "hbh" = ( /obj/structure/table/wood, /obj/item/phone{ @@ -8951,7 +9231,7 @@ "hra" = ( /obj/structure/table/reinforced, /obj/item/storage/lockbox/loyalty, -/obj/item/gun/ballistic/automatic/assault/ar, +/obj/item/gun/energy/e_gun/hades, /obj/machinery/light/directional/north, /obj/effect/turf_decal/industrial/warning, /turf/open/floor/plasteel, @@ -9008,10 +9288,12 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/ferry) +"hzJ" = ( +/turf/closed/indestructible/riveted, +/area/centcom) "hzR" = ( /obj/structure/table/wood, /obj/item/folder/red, -/obj/item/book/manual/wiki/security_space_law, /obj/item/restraints/handcuffs, /obj/item/assembly/flash/handheld, /obj/effect/turf_decal/corner/transparent/neutral{ @@ -9043,6 +9325,12 @@ }, /turf/open/floor/plasteel/dark, /area/tdome/tdomeadmin) +"hBf" = ( +/obj/effect/turf_decal/minutemen/edge{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom) "hDn" = ( /obj/effect/turf_decal/corner/opaque/blue{ dir = 1 @@ -9200,6 +9488,10 @@ /obj/machinery/vending/wardrobe/cent_wardrobe, /turf/open/floor/plasteel/dark, /area/centcom/ferry) +"hYV" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/ship/dirt, +/area/centcom) "hZs" = ( /obj/structure/table/reinforced, /obj/item/folder/red{ @@ -9246,6 +9538,26 @@ /obj/machinery/firealarm/directional/north, /turf/open/floor/plasteel/dark, /area/centcom/supply) +"ibc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/paper/stack{ + dir = 5; + pixel_y = 25; + layer = 2.89 + }, +/obj/structure/fluff/paper/stack{ + dir = 4; + pixel_y = -4; + pixel_x = 11 + }, +/obj/structure/fluff/paper/stack{ + dir = 1; + pixel_x = -16; + pixel_y = -2 + }, +/obj/effect/turf_decal/steeldecal/steel_decals_central4, +/turf/open/floor/plasteel/patterned/grid, +/area/centcom) "ieA" = ( /obj/item/kirbyplants{ icon_state = "plant-22" @@ -9302,6 +9614,26 @@ }, /turf/open/floor/plasteel, /area/centcom/control) +"igC" = ( +/obj/structure/sign/minutemen{ + pixel_y = -28 + }, +/obj/structure/table/reinforced, +/obj/item/clothing/head/helmet/bulletproof/minutemen{ + pixel_x = -1; + pixel_y = 8 + }, +/obj/item/clothing/head/helmet/bulletproof/minutemen{ + pixel_x = 3; + pixel_y = 11 + }, +/obj/machinery/light/directional/east, +/obj/item/reagent_containers/food/drinks/bottle/rum{ + pixel_x = -9; + pixel_y = 3 + }, +/turf/open/floor/plasteel, +/area/centcom) "igW" = ( /obj/structure/bed/roller, /obj/machinery/iv_drip, @@ -9431,6 +9763,16 @@ }, /turf/open/floor/plasteel/white, /area/tdome/tdomeobserve) +"iti" = ( +/obj/effect/decal/fakelattice{ + color = "#808080"; + layer = 2.038 + }, +/obj/effect/turf_decal/corner_steel_grid/full, +/turf/open/floor/plasteel/elevatorshaft{ + color = "#808080" + }, +/area/centcom) "iuo" = ( /obj/machinery/computer/auxillary_base{ pixel_y = 32 @@ -9472,6 +9814,14 @@ }, /turf/open/floor/plasteel, /area/centcom/supplypod) +"iwJ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9; + color = "#543C30" + }, +/obj/machinery/light/directional/west, +/turf/open/floor/wood/walnut, +/area/centcom) "iyp" = ( /obj/effect/turf_decal/corner/opaque/green{ dir = 1 @@ -9521,6 +9871,15 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/control) +"iyJ" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/head/hardhat{ + pixel_x = -5; + pixel_y = 6 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/mineral/plastitanium, +/area/centcom) "izl" = ( /obj/machinery/computer/secure_data{ dir = 1 @@ -9573,6 +9932,9 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/plasteel/dark, /area/centcom/control) +"iDo" = ( +/turf/open/floor/ship/dirt, +/area/centcom) "iDE" = ( /obj/effect/turf_decal/corner/transparent/bar, /obj/effect/turf_decal/corner/transparent/bar{ @@ -9627,6 +9989,27 @@ }, /turf/open/floor/plasteel, /area/tdome/arena) +"iRP" = ( +/obj/structure/table/glass, +/obj/item/desk_flag{ + pixel_x = -7; + pixel_y = 6; + name = "white flag"; + desc = "Show in case of Minutemen patrols." + }, +/obj/item/radio/intercom/wideband/directional/north, +/turf/open/floor/plasteel/patterned/grid, +/area/centcom) +"iSo" = ( +/obj/machinery/door/airlock/solgov{ + req_access_txt = "109" + }, +/turf/open/floor/wood/walnut, +/area/centcom) +"iWI" = ( +/obj/effect/turf_decal/minutemen/middle, +/turf/open/floor/mineral/plastitanium, +/area/centcom) "iWU" = ( /obj/effect/turf_decal/corner/opaque/brown{ dir = 8 @@ -9650,6 +10033,9 @@ }, /turf/open/floor/plasteel/white, /area/centcom/holding) +"iZr" = ( +/turf/open/floor/mineral/plastitanium, +/area/centcom) "iZH" = ( /obj/machinery/vending/snack, /obj/effect/turf_decal/corner/transparent/neutral{ @@ -9747,6 +10133,14 @@ }, /turf/open/floor/plasteel, /area/centcom/control) +"jja" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9; + color = "#543C30" + }, +/obj/effect/turf_decal/solgov/wood/center_left, +/turf/open/floor/wood/walnut, +/area/centcom) "jjE" = ( /obj/effect/turf_decal/corner/transparent/neutral{ dir = 1 @@ -9760,6 +10154,12 @@ }, /turf/open/floor/plasteel, /area/centcom/supplypod/loading/ert) +"jly" = ( +/obj/machinery/computer/med_data/syndie{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom) "jlB" = ( /obj/item/cardboard_cutout{ desc = "They seem to be ignoring you... Typical."; @@ -9870,6 +10270,17 @@ }, /turf/open/floor/plasteel, /area/centcom/control) +"jyy" = ( +/obj/structure/table/wood, +/obj/item/paper_bin/bundlenatural{ + pixel_y = 4 + }, +/obj/item/pen/charcoal{ + pixel_x = -5; + pixel_y = -4 + }, +/turf/open/floor/wood/mahogany, +/area/centcom) "jCA" = ( /obj/effect/turf_decal/industrial/warning{ dir = 5 @@ -9898,6 +10309,26 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/ferry) +"jDt" = ( +/obj/item/shard{ + icon_state = "small"; + pixel_x = 9; + pixel_y = -7 + }, +/obj/item/shard{ + icon_state = "medium"; + pixel_x = -10; + pixel_y = 11 + }, +/obj/machinery/fax/admin/frontiersmen, +/obj/structure/table_frame, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plasteel/patterned/grid, +/area/centcom) +"jEn" = ( +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/wood/mahogany, +/area/centcom) "jEB" = ( /obj/item/kirbyplants{ icon_state = "plant-22" @@ -9910,6 +10341,14 @@ }, /turf/open/floor/plasteel, /area/centcom/control) +"jFa" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/head/HoS/cybersun{ + pixel_x = 2 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom) "jGz" = ( /obj/item/clipboard, /obj/item/folder/red, @@ -9966,6 +10405,10 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/supply) +"jPn" = ( +/obj/effect/turf_decal/syndicateemblem/middle/middle, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom) "jPL" = ( /obj/machinery/vending/cola, /obj/effect/turf_decal/corner/transparent/bar, @@ -10115,7 +10558,6 @@ /area/centcom/evac) "kel" = ( /obj/structure/table/reinforced, -/obj/item/book/manual/wiki/security_space_law, /obj/item/taperecorder, /obj/effect/turf_decal/corner/transparent/neutral{ dir = 1 @@ -10196,6 +10638,12 @@ }, /turf/open/floor/plasteel, /area/centcom/control) +"kiC" = ( +/obj/effect/turf_decal/minutemen/edge{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom) "kjt" = ( /obj/machinery/computer/communications{ dir = 8 @@ -10243,12 +10691,27 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/control) +"kkC" = ( +/obj/structure/table/reinforced, +/obj/structure/sign/poster/minutemen/gold{ + pixel_y = 32 + }, +/obj/machinery/fax/admin/minutemen, +/turf/open/floor/plasteel, +/area/centcom) "kkV" = ( /obj/effect/turf_decal/corner/opaque/green{ dir = 4 }, /turf/open/floor/plasteel, /area/tdome/arena_source) +"kmQ" = ( +/obj/effect/turf_decal/syndicateemblem/middle/right, +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom) "kqM" = ( /obj/machinery/shower{ dir = 4 @@ -10346,6 +10809,14 @@ /obj/machinery/light/directional/south, /turf/open/floor/plasteel, /area/centcom/control) +"kFX" = ( +/obj/item/clothing/head/intern{ + pixel_x = 7; + pixel_y = 5 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/patterned/grid, +/area/centcom) "kHH" = ( /obj/effect/turf_decal/corner/opaque/red{ dir = 1 @@ -10458,6 +10929,10 @@ }, /turf/open/floor/plasteel/grimy, /area/centcom/control) +"kXn" = ( +/obj/effect/turf_decal/syndicateemblem/bottom/left, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom) "laX" = ( /obj/structure/chair/office/light{ dir = 8 @@ -10525,6 +11000,11 @@ }, /turf/open/floor/plasteel/dark, /area/ctf) +"lfi" = ( +/obj/structure/table/wood, +/obj/machinery/fax/admin/roumain, +/turf/open/floor/wood/mahogany, +/area/centcom) "lfw" = ( /obj/structure/table/reinforced, /obj/item/paper_bin, @@ -10542,6 +11022,10 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/control) +"lfK" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/mineral/plastitanium, +/area/centcom) "lfS" = ( /obj/effect/turf_decal/corner/opaque/green, /turf/open/floor/plasteel, @@ -10659,6 +11143,11 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/ferry) +"lmY" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/centcom) "lnt" = ( /obj/effect/turf_decal/industrial/warning{ dir = 6 @@ -10774,7 +11263,6 @@ "lDl" = ( /obj/structure/table/wood, /obj/item/folder/red, -/obj/item/book/manual/wiki/security_space_law, /obj/item/restraints/handcuffs, /obj/item/assembly/flash/handheld, /obj/machinery/airalarm/directional/south, @@ -10875,6 +11363,19 @@ }, /turf/open/floor/plasteel/dark, /area/tdome/tdomeobserve) +"lHR" = ( +/obj/item/paper_bin, +/obj/item/clothing/head/beret/sec/frontier/officer{ + pixel_y = 12; + pixel_x = -6 + }, +/obj/item/pen{ + pixel_x = -8; + pixel_y = -3 + }, +/obj/structure/table/glass, +/turf/open/floor/plasteel/patterned/grid, +/area/centcom) "lIm" = ( /obj/structure/table, /obj/item/paper/pamphlet/centcom/visitor_info, @@ -10903,6 +11404,23 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/ferry) +"lJp" = ( +/turf/closed/indestructible/syndicate, +/area/centcom) +"lKP" = ( +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/machinery/light/directional/north, +/obj/machinery/telecomms/relay/preset/inteq{ + autolinkers = list("relay") + }, +/turf/open/floor/plasteel, +/area/centcom) "lMB" = ( /obj/effect/turf_decal/industrial/warning, /turf/open/floor/plasteel, @@ -10933,6 +11451,18 @@ }, /turf/open/floor/plasteel, /area/tdome/arena_source) +"lQr" = ( +/obj/structure/table/reinforced, +/obj/item/flashlight/lamp{ + pixel_x = 8; + pixel_y = 3 + }, +/obj/structure/sign/minutemen{ + pixel_y = 28 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel, +/area/centcom) "lQv" = ( /obj/effect/turf_decal/corner/opaque/brown, /obj/effect/turf_decal/corner/opaque/brown{ @@ -10995,6 +11525,28 @@ }, /turf/open/floor/plasteel/dark, /area/tdome/tdomeadmin) +"lXI" = ( +/obj/item/ammo_casing/spent{ + pixel_x = -6; + pixel_y = -10 + }, +/obj/item/ammo_casing/spent{ + pixel_x = 9; + pixel_y = -6 + }, +/obj/item/ammo_casing/spent{ + pixel_x = 3 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/centcom) +"lXQ" = ( +/obj/effect/decal/cleanable/blood{ + icon_state = "floor3-old"; + pixel_x = -9; + pixel_y = -11 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/centcom) "lYC" = ( /obj/effect/turf_decal/industrial/warning{ dir = 4 @@ -11004,6 +11556,12 @@ }, /turf/open/floor/plasteel/dark, /area/ctf) +"lYF" = ( +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/centcom) "mbm" = ( /obj/effect/turf_decal/corner/transparent/neutral{ dir = 1 @@ -11130,6 +11688,22 @@ }, /turf/open/floor/plasteel/dark, /area/ctf) +"moE" = ( +/obj/structure/table/reinforced, +/obj/machinery/computer/secure_data/laptop{ + dir = 4; + pixel_y = 6; + pixel_x = -4 + }, +/turf/open/floor/plasteel, +/area/centcom) +"mpi" = ( +/obj/machinery/door/airlock/hatch{ + dir = 4; + req_access_txt = "109" + }, +/turf/open/floor/plasteel/patterned/grid, +/area/centcom) "mpw" = ( /obj/effect/landmark/prisonwarp, /obj/effect/turf_decal/corner/transparent/neutral{ @@ -11161,6 +11735,15 @@ /obj/machinery/light/directional/west, /turf/open/floor/plasteel, /area/centcom/control) +"msQ" = ( +/obj/structure/table/reinforced, +/obj/structure/sign/poster/contraband/cybersun{ + pixel_y = -32 + }, +/obj/item/paper_bin/carbon, +/obj/item/pen/fountain, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom) "mtq" = ( /obj/effect/turf_decal/corner/transparent/bar, /obj/effect/turf_decal/corner/transparent/bar{ @@ -11222,6 +11805,13 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/ferry) +"myU" = ( +/obj/effect/turf_decal/syndicateemblem/middle/left, +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom) "mzM" = ( /obj/structure/fans/tiny, /obj/effect/turf_decal/corner/transparent/neutral{ @@ -11236,6 +11826,12 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/supply) +"mAL" = ( +/obj/structure/table/reinforced, +/obj/machinery/fax/admin/syndicate, +/obj/machinery/light/directional/west, +/turf/open/floor/mineral/plastitanium, +/area/centcom) "mBc" = ( /obj/structure/table/reinforced, /obj/item/stack/packageWrap, @@ -11259,6 +11855,21 @@ }, /turf/open/floor/plasteel/dark, /area/tdome/tdomeadmin) +"mDT" = ( +/obj/effect/decal/fakelattice{ + color = "#808080"; + layer = 2.038 + }, +/obj/effect/turf_decal/corner_steel_grid/diagonal, +/obj/machinery/light/directional/east, +/obj/effect/decal/cleanable/garbage{ + pixel_x = 5; + pixel_y = -5 + }, +/turf/open/floor/plasteel/elevatorshaft{ + color = "#808080" + }, +/area/centcom) "mEC" = ( /obj/structure/sink{ dir = 8; @@ -11293,6 +11904,32 @@ luminosity = 2 }, /area/ctf) +"mGE" = ( +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/centcom) +"mJl" = ( +/obj/effect/turf_decal/syndicateemblem/top/left, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom) +"mJP" = ( +/obj/effect/decal/fakelattice{ + color = "#808080"; + layer = 2.038 + }, +/obj/effect/turf_decal/corner_steel_grid/full{ + dir = 4 + }, +/obj/machinery/light/broken/directional/west, +/turf/open/floor/plasteel/elevatorshaft{ + color = "#808080" + }, +/area/centcom) "mKb" = ( /obj/machinery/button/door/indestructible{ id = "thunderdomegen"; @@ -11365,6 +12002,10 @@ }, /turf/open/floor/plasteel, /area/tdome/arena) +"mPN" = ( +/obj/effect/turf_decal/syndicateemblem/top/right, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom) "mUb" = ( /obj/structure/table/wood, /obj/item/paper_bin, @@ -11409,6 +12050,10 @@ /obj/machinery/firealarm/directional/north, /turf/open/floor/plasteel/dark, /area/centcom/ferry) +"mVC" = ( +/obj/structure/destructible/tribal_torch/lit, +/turf/open/floor/wood/mahogany, +/area/centcom) "mYG" = ( /obj/machinery/airalarm/directional/east, /obj/structure/filingcabinet/filingcabinet, @@ -11442,6 +12087,14 @@ /obj/machinery/newscaster/directional/west, /turf/open/floor/plasteel/dark, /area/centcom/ferry) +"naB" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5; + color = "#543C30" + }, +/obj/machinery/light/directional/east, +/turf/open/floor/wood/walnut, +/area/centcom) "ncR" = ( /obj/machinery/door/poddoor{ id = "XCCQMLoaddoor2"; @@ -11515,6 +12168,13 @@ }, /turf/open/floor/plasteel, /area/tdome/tdomeobserve) +"njp" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8; + color = "#543C30" + }, +/turf/open/floor/wood/walnut, +/area/centcom) "njY" = ( /obj/machinery/status_display/evac{ pixel_y = 32 @@ -11553,6 +12213,12 @@ }, /turf/open/floor/plasteel, /area/centcom/supplypod/loading/three) +"nos" = ( +/obj/structure/catwalk/over, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/centcom) "noV" = ( /obj/structure/table/reinforced, /obj/item/storage/fancy/donut_box, @@ -11824,6 +12490,41 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/ferry) +"nYl" = ( +/obj/structure/table/wood/fancy/blue, +/obj/item/paper_bin/carbon, +/obj/item/pen/solgov, +/obj/item/pen/fourcolor{ + pixel_x = -9; + pixel_y = -3 + }, +/obj/item/desk_flag/solgov{ + pixel_y = 12; + pixel_x = -8 + }, +/turf/open/floor/carpet/royalblue, +/area/centcom) +"nYZ" = ( +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 8 + }, +/obj/machinery/computer/secure_data, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel, +/area/centcom) +"oaQ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4; + color = "#543C30" + }, +/turf/open/floor/wood/walnut, +/area/centcom) "oba" = ( /obj/structure/table/wood, /obj/structure/safe/floor, @@ -11883,6 +12584,24 @@ }, /turf/open/floor/plasteel/dark, /area/tdome/tdomeobserve) +"odH" = ( +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/gun/ballistic/automatic/assault/ak47/inteq{ + pixel_y = 3 + }, +/obj/item/gun/ballistic/automatic/assault/ak47/inteq{ + pixel_y = -1; + pixel_x = -5 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel, +/area/centcom) "odV" = ( /obj/structure/chair/office{ dir = 8 @@ -12028,6 +12747,12 @@ }, /turf/open/floor/plasteel, /area/centcom/control) +"ouD" = ( +/obj/machinery/door/airlock/grunge{ + req_access = "109" + }, +/turf/open/floor/plasteel, +/area/centcom) "ouO" = ( /obj/effect/turf_decal/corner/opaque/green, /turf/open/floor/plasteel, @@ -12160,6 +12885,13 @@ }, /turf/open/floor/plasteel, /area/centcom/supply) +"oHB" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/destructible/tribal_torch/lit, +/turf/open/floor/wood/mahogany, +/area/centcom) "oHU" = ( /obj/machinery/computer/communications{ dir = 8 @@ -12338,6 +13070,16 @@ /obj/effect/turf_decal/corner/opaque/blue, /turf/open/floor/plasteel, /area/centcom/control) +"phf" = ( +/obj/structure/table/wood/fancy/blue, +/obj/structure/sign/poster/solgov/paperwork{ + pixel_y = 32 + }, +/obj/item/radio/intercom/wideband/table{ + dir = 1 + }, +/turf/open/floor/carpet/royalblue, +/area/centcom) "phB" = ( /obj/machinery/light/directional/north, /obj/effect/turf_decal/corner/transparent/neutral{ @@ -12428,6 +13170,10 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/ferry) +"plP" = ( +/obj/effect/turf_decal/corner/opaque/yellow/three_quarters, +/turf/open/floor/plasteel, +/area/centcom) "pmP" = ( /obj/effect/turf_decal/corner/opaque/green, /obj/effect/turf_decal/corner/opaque/green{ @@ -12435,6 +13181,19 @@ }, /turf/open/floor/plasteel, /area/centcom/ferry) +"psm" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10; + color = "#543C30" + }, +/obj/structure/sign/solgov_seal{ + pixel_y = -28 + }, +/obj/machinery/telecomms/relay/preset/solgov{ + autolinkers = list("relay") + }, +/turf/open/floor/wood/walnut, +/area/centcom) "psp" = ( /obj/structure/chair{ dir = 8 @@ -12496,11 +13255,30 @@ /obj/effect/spawner/xmastree, /turf/open/floor/plasteel, /area/syndicate_mothership/control) +"pvN" = ( +/obj/machinery/light/directional/east, +/obj/machinery/telecomms/relay/preset/frontiersmen{ + autolinkers = list("relay") + }, +/turf/open/floor/plasteel/patterned/grid, +/area/centcom) "pvV" = ( /obj/machinery/igniter/on, /obj/effect/turf_decal/industrial/hatch/yellow, /turf/open/floor/plasteel, /area/tdome/arena_source) +"pvW" = ( +/obj/effect/turf_decal/minutemen/edge, +/turf/open/floor/mineral/plastitanium, +/area/centcom) +"pwr" = ( +/obj/effect/turf_decal/solgov/wood/top_right, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 1 + }, +/turf/open/floor/wood/walnut, +/area/centcom) "pwJ" = ( /obj/structure/chair/comfy/brown{ color = "#596479" @@ -12606,7 +13384,7 @@ /area/centcom/holding) "pDx" = ( /obj/structure/table/wood, -/obj/item/book/manual/wiki/barman_recipes, +/obj/item/book/manual/wiki/drinks, /obj/item/reagent_containers/food/drinks/shaker, /obj/item/reagent_containers/glass/rag, /obj/machinery/newscaster/directional/north{ @@ -12724,6 +13502,13 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/control) +"pLM" = ( +/obj/effect/turf_decal/siding/wood{ + color = "#543C30" + }, +/obj/effect/turf_decal/solgov/wood/bottom_right, +/turf/open/floor/wood/walnut, +/area/centcom) "pOL" = ( /obj/effect/turf_decal/industrial/warning{ dir = 9 @@ -12819,6 +13604,12 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/control) +"pTR" = ( +/obj/effect/turf_decal/minutemen/edge{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom) "pVF" = ( /obj/machinery/computer/card/centcom{ dir = 8 @@ -12896,6 +13687,11 @@ /obj/effect/turf_decal/corner/opaque/red, /turf/open/floor/plasteel, /area/tdome/tdomeobserve) +"qju" = ( +/obj/structure/table/wood/fancy/blue, +/obj/item/papercutter, +/turf/open/floor/carpet/royalblue, +/area/centcom) "qkb" = ( /obj/item/kirbyplants{ icon_state = "plant-21" @@ -12913,6 +13709,16 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/ferry) +"qkP" = ( +/obj/effect/turf_decal/solgov/wood/bottom_left{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 1 + }, +/turf/open/floor/wood/walnut, +/area/centcom) "qmm" = ( /obj/effect/turf_decal/industrial/warning{ dir = 4 @@ -12927,6 +13733,13 @@ }, /turf/open/floor/plasteel, /area/centcom/control) +"qoL" = ( +/turf/open/floor/wood/mahogany, +/area/centcom) +"qqj" = ( +/obj/machinery/light/directional/north, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom) "qsu" = ( /obj/structure/sink{ dir = 4; @@ -13002,7 +13815,6 @@ /area/centcom/control) "qHN" = ( /obj/structure/table/reinforced, -/obj/item/book/manual/wiki/security_space_law, /obj/item/taperecorder, /obj/effect/turf_decal/corner/transparent/neutral{ dir = 1 @@ -13048,6 +13860,27 @@ }, /turf/open/floor/plasteel/dark, /area/tdome/tdomeobserve) +"qLN" = ( +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/structure/table, +/obj/structure/sign/poster/contraband/inteq{ + pixel_y = 32 + }, +/obj/item/desk_flag/trans{ + pixel_x = 12; + pixel_y = 2 + }, +/obj/item/radio/intercom/wideband/table{ + dir = 1; + pixel_x = -1 + }, +/turf/open/floor/plasteel, +/area/centcom) "qNc" = ( /obj/effect/turf_decal/corner/transparent/neutral{ dir = 1 @@ -13064,6 +13897,14 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/ferry) +"qQe" = ( +/obj/machinery/hydroponics/soil, +/turf/open/floor/ship/dirt, +/area/centcom) +"qQA" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood/mahogany, +/area/centcom) "qSb" = ( /obj/machinery/keycard_auth{ pixel_y = -25 @@ -13094,6 +13935,9 @@ }, /turf/open/floor/plasteel, /area/tdome/tdomeobserve) +"qVq" = ( +/turf/open/floor/plasteel, +/area/centcom) "qXd" = ( /obj/structure/table/wood, /obj/item/taperecorder, @@ -13324,6 +14168,14 @@ /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/plasteel/dark, /area/centcom/control) +"rjV" = ( +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/item/kirbyplants/random, +/turf/open/floor/plasteel, +/area/centcom) "rln" = ( /obj/machinery/door/airlock/centcom{ name = "CentCom Supply"; @@ -13347,6 +14199,16 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/ferry) +"rmj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/paper/stack, +/obj/item/chair/plastic{ + dir = 1; + pixel_x = -9; + pixel_y = 6 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/centcom) "roJ" = ( /obj/effect/turf_decal/corner/transparent/neutral{ dir = 1 @@ -13451,6 +14313,14 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/control) +"rvC" = ( +/obj/structure/table/reinforced, +/obj/item/radio/headset/minutemen/alt/captain{ + pixel_y = 2; + pixel_x = 1 + }, +/turf/open/floor/plasteel, +/area/centcom) "rvW" = ( /obj/structure/sink{ dir = 4; @@ -13684,6 +14554,16 @@ }, /turf/open/floor/plasteel, /area/tdome/arena_source) +"rUa" = ( +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 8 + }, +/obj/item/kirbyplants/random, +/turf/open/floor/plasteel, +/area/centcom) "rUH" = ( /obj/structure/table/reinforced, /obj/item/reagent_containers/food/snacks/mint, @@ -13786,7 +14666,6 @@ /turf/open/floor/plasteel, /area/centcom/control) "sow" = ( -/obj/item/book/manual/wiki/security_space_law, /obj/structure/table/wood, /obj/effect/turf_decal/corner/transparent/neutral{ dir = 1 @@ -13967,6 +14846,10 @@ /obj/effect/turf_decal/corner/opaque/blue, /turf/open/floor/plasteel/dark, /area/ctf) +"sMn" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/grid, +/area/centcom) "sMK" = ( /obj/effect/turf_decal/corner/opaque/brown, /obj/effect/turf_decal/corner/opaque/brown{ @@ -13991,6 +14874,13 @@ }, /turf/open/floor/plasteel/white, /area/centcom/holding) +"sQw" = ( +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/yellow, +/turf/open/floor/plasteel, +/area/centcom) "sRB" = ( /obj/machinery/light/directional/east, /obj/effect/turf_decal/corner/transparent/bar, @@ -14051,6 +14941,12 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/control) +"sVJ" = ( +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/centcom) "sWb" = ( /obj/item/storage/briefcase{ pixel_x = -3; @@ -14070,6 +14966,22 @@ }, /turf/open/floor/plasteel/dark, /area/tdome/tdomeadmin) +"sZJ" = ( +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/structure/table, +/obj/item/clothing/head/helmet/inteq{ + pixel_x = -12; + pixel_y = 7 + }, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/plasteel, +/area/centcom) "sZS" = ( /obj/effect/turf_decal/industrial/hatch/yellow, /turf/open/floor/plasteel, @@ -14272,12 +15184,44 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/evac) +"ttK" = ( +/obj/effect/decal/fakelattice{ + color = "#808080"; + layer = 2.038 + }, +/obj/effect/turf_decal/corner_steel_grid/full{ + dir = 8 + }, +/obj/item/trash/can{ + pixel_x = -6; + pixel_y = 10 + }, +/turf/open/floor/plasteel/elevatorshaft{ + color = "#808080" + }, +/area/centcom) "tuw" = ( /obj/effect/turf_decal/industrial/loading{ dir = 8 }, /turf/open/floor/plasteel, /area/centcom/supply) +"tvO" = ( +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/structure/rack, +/obj/item/gun/ballistic/automatic/smg/inteq{ + pixel_x = 2 + }, +/obj/item/gun/ballistic/automatic/smg/inteq{ + pixel_x = -1; + pixel_y = -6 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel, +/area/centcom) "tyg" = ( /obj/effect/turf_decal/corner/opaque/blue{ dir = 1 @@ -14307,6 +15251,25 @@ }, /turf/open/floor/plasteel/dark, /area/tdome/tdomeadmin) +"tAe" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood{ + icon_state = "floor1-old"; + pixel_y = 10; + pixel_x = -8 + }, +/obj/effect/decal/cleanable/blood{ + icon_state = "floor2-old" + }, +/obj/effect/decal/cleanable/shreds{ + pixel_y = 11; + pixel_x = 4 + }, +/obj/effect/turf_decal/steeldecal/steel_decals_central5, +/turf/open/floor/plasteel/patterned/grid, +/area/centcom) "tAB" = ( /obj/structure/filingcabinet/medical, /obj/effect/turf_decal/corner/transparent/neutral{ @@ -14321,6 +15284,21 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/control) +"tBa" = ( +/obj/structure/table/wood, +/obj/item/book/manual/srmlore{ + pixel_y = 4; + pixel_x = -4 + }, +/obj/item/flashlight/lantern{ + pixel_x = 8; + pixel_y = 13 + }, +/obj/item/book/manual/trickwines_4_brewers{ + pixel_x = -1 + }, +/turf/open/floor/wood/mahogany, +/area/centcom) "tBL" = ( /obj/structure/table/reinforced, /obj/item/storage/fancy/donut_box, @@ -14378,6 +15356,12 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/control) +"tGR" = ( +/obj/effect/turf_decal/minutemen/corner{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom) "tHd" = ( /obj/effect/turf_decal/industrial/warning{ dir = 5 @@ -14410,6 +15394,11 @@ }, /turf/open/floor/plasteel, /area/centcom/evac) +"tOf" = ( +/obj/effect/turf_decal/solgov/wood/center, +/obj/machinery/light/floor, +/turf/open/floor/wood/walnut, +/area/centcom) "tOg" = ( /obj/machinery/computer/prisoner/management{ dir = 1 @@ -14481,6 +15470,10 @@ }, /turf/open/floor/plasteel, /area/tdome/arena_source) +"tUy" = ( +/obj/structure/catwalk/over, +/turf/open/floor/plating, +/area/centcom) "tWM" = ( /obj/structure/table/reinforced, /obj/item/radio{ @@ -14573,6 +15566,34 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/control) +"unc" = ( +/obj/effect/turf_decal/siding/wood{ + color = "#543C30" + }, +/obj/effect/turf_decal/solgov/wood/bottom_center, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30" + }, +/turf/open/floor/wood/walnut, +/area/centcom) +"unP" = ( +/obj/structure/table, +/obj/item/crowbar{ + pixel_y = 8; + pixel_x = -4 + }, +/obj/item/electropack{ + pixel_x = 7; + pixel_y = -2 + }, +/obj/item/kitchen/knife{ + pixel_y = -5; + pixel_x = -5 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/centcom) "uqL" = ( /obj/effect/turf_decal/industrial/warning{ dir = 1 @@ -14586,6 +15607,10 @@ }, /turf/open/floor/plasteel, /area/centcom/control) +"uuY" = ( +/obj/effect/turf_decal/syndicateemblem/bottom/right, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom) "uzX" = ( /obj/structure/table, /obj/item/toy/katana, @@ -14709,6 +15734,9 @@ heat_capacity = 1e+006 }, /area/tdome/tdomeobserve) +"uKW" = ( +/turf/open/floor/mineral/plastitanium/red, +/area/centcom) "uLr" = ( /obj/item/storage/firstaid/toxin, /obj/item/storage/firstaid/o2{ @@ -14751,6 +15779,11 @@ }, /turf/open/floor/plasteel, /area/centcom/supplypod/loading/four) +"uOa" = ( +/obj/effect/turf_decal/syndicateemblem/bottom/middle, +/obj/structure/chair/office/dark, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom) "uRu" = ( /obj/structure/table/wood, /obj/item/paper_bin, @@ -14847,6 +15880,10 @@ }, /turf/open/floor/plasteel, /area/syndicate_mothership/control) +"veN" = ( +/obj/structure/sign/syndicate, +/turf/closed/indestructible/syndicate, +/area/centcom) "veT" = ( /obj/machinery/vending/coffee, /obj/effect/turf_decal/corner/transparent/bar, @@ -15124,6 +16161,10 @@ }, /turf/open/floor/plasteel/dark, /area/ctf) +"vFM" = ( +/obj/machinery/telecomms/hub/preset, +/turf/open/floor/plasteel, +/area/centcom) "vGf" = ( /obj/effect/turf_decal/industrial/warning{ dir = 10 @@ -15133,6 +16174,18 @@ }, /turf/open/floor/plasteel/dark, /area/ctf) +"vIg" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9; + color = "#543C30" + }, +/obj/effect/turf_decal/solgov/wood/top, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 1 + }, +/turf/open/floor/wood/walnut, +/area/centcom) "vKH" = ( /obj/structure/table, /obj/machinery/reagentgrinder, @@ -15164,6 +16217,12 @@ }, /turf/open/floor/plasteel/dark, /area/tdome/tdomeobserve) +"vQk" = ( +/obj/structure/chair/wood/wings{ + dir = 1 + }, +/turf/open/floor/wood/mahogany, +/area/centcom) "vQM" = ( /obj/structure/table/wood, /obj/machinery/recharger, @@ -15196,6 +16255,13 @@ }, /turf/open/floor/plasteel, /area/centcom/evac) +"wad" = ( +/obj/effect/turf_decal/minutemen/corner, +/obj/structure/chair/comfy{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom) "wbj" = ( /obj/effect/turf_decal/corner/transparent/neutral, /obj/effect/turf_decal/corner/transparent/neutral{ @@ -15255,6 +16321,15 @@ }, /turf/open/floor/circuit/red, /area/ctf) +"weV" = ( +/obj/structure/fluff/paper/stack{ + dir = 6; + pixel_y = 11; + pixel_x = 7 + }, +/obj/structure/catwalk/over, +/turf/open/floor/plating, +/area/centcom) "wfQ" = ( /obj/structure/trap/ctf/red, /obj/effect/turf_decal/corner/opaque/red{ @@ -15399,6 +16474,28 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/ferry) +"wAh" = ( +/obj/machinery/fax/admin/inteq, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/centcom) +"wCp" = ( +/obj/structure/table/wood/fancy/blue, +/obj/item/folder/solgov/red{ + pixel_x = -3 + }, +/obj/item/folder/solgov{ + pixel_y = 5; + pixel_x = 2 + }, +/turf/open/floor/carpet/royalblue, +/area/centcom) "wEF" = ( /obj/effect/turf_decal/corner/opaque/red, /obj/effect/turf_decal/corner/opaque/red{ @@ -15553,6 +16650,7 @@ name = "CentCom Stand"; req_access_txt = "109" }, +/obj/machinery/fax/admin, /turf/open/floor/plasteel/grimy, /area/centcom/control) "xaO" = ( @@ -15680,6 +16778,10 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/control) +"xxi" = ( +/obj/effect/turf_decal/syndicateemblem/top/middle, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom) "xEx" = ( /obj/structure/chair, /obj/effect/turf_decal/industrial/warning{ @@ -15779,6 +16881,10 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/ferry) +"xTt" = ( +/obj/effect/turf_decal/solgov/wood/center_right, +/turf/open/floor/wood/walnut, +/area/centcom) "xWv" = ( /obj/effect/turf_decal/corner/opaque/green{ dir = 1 @@ -15829,6 +16935,13 @@ dir = 1 }, /area/centcom/supply) +"yhk" = ( +/obj/machinery/door/airlock/wood{ + dir = 4; + req_access = "109" + }, +/turf/open/floor/wood/mahogany, +/area/centcom) "yhL" = ( /obj/effect/turf_decal/corner/opaque/red{ dir = 1 @@ -25311,21 +26424,21 @@ aaa aaa aaa aaa +aPu +aPu +aPu +aPu +aPu +aPu +aPu aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +hzJ +hzJ +hzJ +hzJ +bbf +hzJ +hzJ aaa aaa aaa @@ -25568,21 +26681,21 @@ aaa aaa aaa aaa +aPu +bSy +wCp +iwJ +njp +psm +aPu aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +hzJ +lQr +moE +qVq +qVq +bIJ +hzJ aaa aaa aaa @@ -25825,21 +26938,21 @@ aaa aaa aaa aaa +aPu +nYl +dER +qkP +jja +eqM +aPu aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +hzJ +hba +wad +pTR +gaU +vFM +hzJ aaa aaa aaa @@ -26082,21 +27195,21 @@ aaa aaa aaa aaa +aPu +gTo +gfJ +vIg +tOf +unc +iSo aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +hzJ +kkC +pvW +iWI +hBf +rvC +hzJ aaa aaa aaa @@ -26339,21 +27452,21 @@ aaa aaa aaa aaa +aPu +phf +dER +pwr +xTt +pLM +aPu aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +hzJ +qVq +tGR +kiC +bUH +bRF +hzJ aaa aaa aaa @@ -26596,21 +27709,21 @@ aaa aaa aaa aaa +aPu +dom +qju +naB +oaQ +gsx +aPu aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +hzJ +dKW +qVq +qVq +aIF +igC +hzJ aaa aaa aaa @@ -26853,21 +27966,21 @@ aaa aaa aaa aaa +aPu +aPu +aPu +aPu +aPu +aPu +aPu aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +hzJ +hzJ +hzJ +hzJ +hzJ +hzJ +hzJ aaa aaa aaa @@ -27367,21 +28480,21 @@ aaa aaa aaa aaa +lJp +lJp +lJp +lJp +lJp +lJp +lJp aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +hzJ +hzJ +hzJ +mpi +hzJ +hzJ +hzJ aaa aaa aaa @@ -27624,21 +28737,21 @@ aaa aaa aaa aaa +veN +cCK +cUG +mAL +fKt +iZr +veN aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +hzJ +mJP +lmY +tUy +sMn +kFX +hzJ aaa aaa aaa @@ -27881,21 +28994,21 @@ aaa aaa aaa aaa +fUc +uKW +mJl +myU +kXn +msQ +lJp aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +hzJ +lHR +rmj +weV +lXI +tAe +hzJ aaa aaa aaa @@ -28138,21 +29251,21 @@ aaa aaa aaa aaa +lJp +qqj +xxi +jPn +uOa +jFa +lJp aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +hzJ +jDt +ibc +eWz +lXQ +duw +hzJ aaa aaa aaa @@ -28395,21 +29508,21 @@ aaa aaa aaa aaa +fUc +uKW +mPN +kmQ +uuY +jly +lJp aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +hzJ +iRP +fau +gDV +iti +unP +hzJ aaa aaa aaa @@ -28652,21 +29765,21 @@ aaa aaa aaa aaa +veN +lfK +ciU +iyJ +bFc +iZr +veN aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +hzJ +mDT +ttK +nos +cZi +pvN +hzJ aaa aaa aaa @@ -28909,21 +30022,21 @@ aaa aaa aaa aaa +lJp +lJp +lJp +lJp +lJp +lJp +lJp aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +hzJ +hzJ +hzJ +eLy +hzJ +hzJ +hzJ aaa aaa aaa @@ -29423,21 +30536,21 @@ aaa aaa aaa aaa +aPu +aPu +aPu +aPu +aPu +aPu +aPu aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +eAJ +eAJ +eAJ +eAJ +eAJ +eAJ +eAJ aaa aaa aaa @@ -29680,21 +30793,21 @@ aaa aaa aaa aaa +aPu +nYZ +mGE +rUa +mGE +odH +aPu aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +eAJ +mVC +qoL +jEn +etl +oHB +eAJ aaa aaa aaa @@ -29937,21 +31050,21 @@ aaa aaa aaa aaa +aPu +qLN +fTU +emF +sVJ +apm +aPu aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +eAJ +tBa +qoL +qQA +iDo +hYV +eAJ aaa aaa aaa @@ -30194,21 +31307,21 @@ aaa aaa aaa aaa +aPu +wAh +cxm +emF +emF +cjo +ouD aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +eAJ +lfi +vQk +qQA +iDo +qQe +eAJ aaa aaa aaa @@ -30451,21 +31564,21 @@ aaa aaa aaa aaa +aPu +sZJ +plP +emF +lYF +cIS +aPu aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +eAJ +jyy +qoL +qQA +iDo +qQe +eAJ aaa aaa aaa @@ -30708,21 +31821,21 @@ aaa aaa aaa aaa +aPu +lKP +sQw +rjV +sQw +tvO +aPu aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +eAJ +mVC +qoL +qQA +iDo +hYV +eAJ aaa aaa aaa @@ -30965,21 +32078,21 @@ aaa aaa aaa aaa +aPu +aPu +aPu +aPu +aPu +aPu +aPu aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +eAJ +eAJ +eAJ +yhk +eAJ +eAJ +eAJ aaa aaa aaa diff --git a/_maps/outpost/hangar/nt_asteroid_20x20.dmm b/_maps/outpost/hangar/nt_asteroid_20x20.dmm index c3d35afcea10..159af62d17cf 100644 --- a/_maps/outpost/hangar/nt_asteroid_20x20.dmm +++ b/_maps/outpost/hangar/nt_asteroid_20x20.dmm @@ -1037,7 +1037,7 @@ /obj/structure/table/reinforced{ color = "#c1b6a5" }, -/obj/machinery/fax, +/obj/machinery/fax/ruin, /turf/open/floor/plasteel/dark{ planetary_atmos = 1 }, diff --git a/_maps/outpost/hangar/nt_asteroid_40x20.dmm b/_maps/outpost/hangar/nt_asteroid_40x20.dmm index 959b27a5dd98..0d229e5d7af9 100644 --- a/_maps/outpost/hangar/nt_asteroid_40x20.dmm +++ b/_maps/outpost/hangar/nt_asteroid_40x20.dmm @@ -1233,7 +1233,7 @@ /obj/structure/table/reinforced{ color = "#c1b6a5" }, -/obj/machinery/fax, +/obj/machinery/fax/ruin, /obj/effect/turf_decal/techfloor{ dir = 4 }, diff --git a/_maps/outpost/nanotrasen_asteroid.dmm b/_maps/outpost/nanotrasen_asteroid.dmm index 8f5c38ded0ea..99eee11d1b60 100644 --- a/_maps/outpost/nanotrasen_asteroid.dmm +++ b/_maps/outpost/nanotrasen_asteroid.dmm @@ -3558,7 +3558,7 @@ /area/outpost/crew/library) "mZ" = ( /obj/structure/table/wood, -/obj/machinery/fax, +/obj/machinery/fax/ruin, /turf/open/floor/plasteel, /area/outpost/crew/canteen) "na" = ( @@ -7054,10 +7054,6 @@ pixel_y = 4; pixel_x = 5 }, -/obj/item/book/manual/wiki/security_space_law{ - pixel_x = -6; - pixel_y = -10 - }, /turf/open/floor/plasteel/dark, /area/outpost/security) "yI" = ( @@ -14782,10 +14778,6 @@ /area/outpost/crew/dorm) "ZD" = ( /obj/structure/table/reinforced, -/obj/item/book/manual/wiki/security_space_law{ - pixel_x = 4; - pixel_y = 2 - }, /obj/machinery/door/window/brigdoor/southright{ req_access_txt = "101" }, diff --git a/_maps/outpost/nanotrasen_ice.dmm b/_maps/outpost/nanotrasen_ice.dmm index bc92fdbc20c0..19ac0333527e 100644 --- a/_maps/outpost/nanotrasen_ice.dmm +++ b/_maps/outpost/nanotrasen_ice.dmm @@ -1250,10 +1250,6 @@ pixel_x = -5; pixel_y = 3 }, -/obj/item/book/manual/wiki/security_space_law{ - pixel_x = 13; - pixel_y = 1 - }, /turf/open/floor/plasteel/telecomms_floor, /area/outpost/security) "jl" = ( @@ -7463,7 +7459,7 @@ /area/outpost/security/armory) "XG" = ( /obj/structure/table/reinforced, -/obj/machinery/fax, +/obj/machinery/fax/ruin, /obj/machinery/light/directional/south, /turf/open/floor/plasteel/telecomms_floor, /area/outpost/security) @@ -7835,10 +7831,6 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/table/reinforced, /obj/machinery/recharger, -/obj/item/book/manual/wiki/security_space_law{ - pixel_y = 17; - pixel_x = 3 - }, /obj/machinery/light/directional/west, /turf/open/floor/plasteel/telecomms_floor, /area/outpost/security/checkpoint) diff --git a/_maps/shuttles/independent/independent_dwayne.dmm b/_maps/shuttles/independent/independent_dwayne.dmm index e5ff88f9fc28..c1a9eab8c37f 100644 --- a/_maps/shuttles/independent/independent_dwayne.dmm +++ b/_maps/shuttles/independent/independent_dwayne.dmm @@ -2102,9 +2102,9 @@ dir = 4 }, /obj/structure/guncase/shotgun, -/obj/item/gun/ballistic/shotgun/winchester, -/obj/item/gun/ballistic/shotgun/winchester, -/obj/item/gun/ballistic/shotgun/winchester, +/obj/item/gun/ballistic/shotgun/flamingarrow, +/obj/item/gun/ballistic/shotgun/flamingarrow, +/obj/item/gun/ballistic/shotgun/flamingarrow, /turf/open/floor/plasteel, /area/ship/cargo) "WE" = ( diff --git a/_maps/shuttles/independent/independent_halftrack.dmm b/_maps/shuttles/independent/independent_halftrack.dmm index f82d26ffd66d..46e6989a124f 100644 --- a/_maps/shuttles/independent/independent_halftrack.dmm +++ b/_maps/shuttles/independent/independent_halftrack.dmm @@ -200,16 +200,16 @@ /obj/machinery/airalarm/directional/south, /obj/machinery/firealarm/directional/west, /obj/structure/closet/crate/secure/weapon, -/obj/item/storage/box/lethalshot, -/obj/item/storage/box/lethalshot, -/obj/item/storage/box/lethalshot, -/obj/item/storage/box/lethalshot, -/obj/item/storage/box/lethalshot, -/obj/item/storage/box/beanbag, -/obj/item/storage/box/beanbag, -/obj/item/storage/box/beanbag, -/obj/item/storage/box/beanbag, -/obj/item/storage/box/beanbag, +/obj/item/ammo_box/a12g, +/obj/item/ammo_box/a12g, +/obj/item/ammo_box/a12g, +/obj/item/ammo_box/a12g, +/obj/item/ammo_box/a12g, +/obj/item/ammo_box/a12g/beanbag, +/obj/item/ammo_box/a12g/beanbag, +/obj/item/ammo_box/a12g/beanbag, +/obj/item/ammo_box/a12g/beanbag, +/obj/item/ammo_box/a12g/beanbag, /obj/effect/turf_decal/box/red, /turf/open/floor/plasteel/dark, /area/ship/security) @@ -949,10 +949,10 @@ dir = 8 }, /obj/structure/rack, -/obj/item/gun/ballistic/shotgun/riot, -/obj/item/gun/ballistic/shotgun/riot, -/obj/item/gun/ballistic/shotgun/riot, -/obj/item/gun/ballistic/shotgun/riot, +/obj/item/gun/ballistic/shotgun/hellfire, +/obj/item/gun/ballistic/shotgun/hellfire, +/obj/item/gun/ballistic/shotgun/hellfire, +/obj/item/gun/ballistic/shotgun/hellfire, /turf/open/floor/plasteel/dark, /area/ship/security/armory) "vT" = ( diff --git a/_maps/shuttles/independent/independent_mudskipper.dmm b/_maps/shuttles/independent/independent_mudskipper.dmm index 4c67eadac91e..e3ff8985e3d1 100644 --- a/_maps/shuttles/independent/independent_mudskipper.dmm +++ b/_maps/shuttles/independent/independent_mudskipper.dmm @@ -171,6 +171,10 @@ dir = 8 }, /obj/effect/turf_decal/corner/transparent/neutral, +/obj/machinery/light_switch{ + pixel_y = 23; + pixel_x = -3 + }, /turf/open/floor/plasteel/dark, /area/ship/bridge) "dQ" = ( @@ -970,7 +974,7 @@ "uW" = ( /obj/machinery/door/airlock/grunge{ name = "Bridge"; - req_one_access_txt = "7" + req_one_access_txt = "20" }, /obj/effect/turf_decal/industrial/warning, /obj/effect/turf_decal/industrial/warning{ @@ -1058,6 +1062,11 @@ /obj/structure/dresser, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 22; + pixel_y = -6 + }, /turf/open/floor/wood/walnut{ icon_state = "wood-broken7" }, diff --git a/_maps/shuttles/independent/independent_nemo.dmm b/_maps/shuttles/independent/independent_nemo.dmm index f693cbcbdc27..1ffde7c6d45b 100644 --- a/_maps/shuttles/independent/independent_nemo.dmm +++ b/_maps/shuttles/independent/independent_nemo.dmm @@ -2178,7 +2178,7 @@ }, /obj/item/firing_pin, /obj/item/kitchen/knife/hunting, -/obj/item/gun/ballistic/shotgun/contender, +/obj/item/gun/ballistic/shotgun/doublebarrel/beacon, /obj/item/ammo_box/a4570, /obj/item/ammo_box/a4570, /turf/open/floor/carpet/black, @@ -2241,7 +2241,7 @@ /turf/open/floor/plating, /area/ship/crew/dorm) "GX" = ( -/obj/item/book/manual/wiki/tcomms, +/obj/item/book/manual/wiki/engineering, /obj/effect/turf_decal/number/five{ dir = 8 }, @@ -3248,7 +3248,7 @@ /turf/open/floor/carpet/black, /area/ship/crew/dorm) "VK" = ( -/obj/structure/bookcase/manuals/research_and_development, +/obj/structure/bookcase/manuals/chemistry, /obj/effect/turf_decal/siding/wood{ dir = 8 }, diff --git a/_maps/shuttles/independent/independent_rigger.dmm b/_maps/shuttles/independent/independent_rigger.dmm index 3c3235362343..a6312b7de614 100644 --- a/_maps/shuttles/independent/independent_rigger.dmm +++ b/_maps/shuttles/independent/independent_rigger.dmm @@ -1005,8 +1005,8 @@ pixel_y = 28; req_access_txt = "1" }, -/obj/item/gun/ballistic/shotgun/winchester, -/obj/item/gun/ballistic/automatic/pistol/m1911, +/obj/item/gun/ballistic/shotgun/flamingarrow, +/obj/item/gun/ballistic/automatic/pistol/candor, /turf/open/floor/plasteel/dark, /area/ship/security) "mJ" = ( @@ -3770,7 +3770,7 @@ /obj/item/clothing/suit/armor/vest/capcarapace/duster, /obj/item/clothing/glasses/sunglasses, /obj/item/clothing/head/caphat/cowboy, -/obj/item/gun/ballistic/automatic/pistol/m1911, +/obj/item/gun/ballistic/automatic/pistol/candor, /obj/structure/closet/secure_closet/wall{ dir = 8; icon_state = "solgov_wall"; diff --git a/_maps/shuttles/independent/independent_rube_goldberg.dmm b/_maps/shuttles/independent/independent_rube_goldberg.dmm index b8960b78342d..1f4b57035031 100644 --- a/_maps/shuttles/independent/independent_rube_goldberg.dmm +++ b/_maps/shuttles/independent/independent_rube_goldberg.dmm @@ -1311,7 +1311,7 @@ /obj/item/rcd_ammo, /obj/item/rcd_ammo, /obj/item/clothing/gloves/color/yellow, -/obj/item/gun/ballistic/shotgun/winchester, +/obj/item/gun/ballistic/shotgun/flamingarrow, /obj/item/ammo_box/c38_box, /obj/item/storage/fancy/cigarettes/cigars/cohiba, /obj/effect/turf_decal/corner/opaque/yellow/border{ diff --git a/_maps/shuttles/independent/independent_shepherd.dmm b/_maps/shuttles/independent/independent_shepherd.dmm index 36430872f33c..b3e9e88c6d2c 100644 --- a/_maps/shuttles/independent/independent_shepherd.dmm +++ b/_maps/shuttles/independent/independent_shepherd.dmm @@ -12,11 +12,6 @@ /obj/item/clothing/suit/hooded/chaplain_hoodie, /obj/item/clothing/suit/hooded/chaplainsuit/monkhabit, /obj/item/clothing/suit/hooded/chaplainsuit/monkhabit, -/obj/item/clothing/suit/chaplainsuit/nun, -/obj/item/clothing/suit/chaplainsuit/nun, -/obj/item/clothing/suit/chaplainsuit/holidaypriest, -/obj/item/clothing/suit/chaplainsuit/bishoprobe, -/obj/item/clothing/head/bishopmitre, /obj/structure/closet/wall{ dir = 8; pixel_x = 30 @@ -25,15 +20,6 @@ /obj/item/clothing/suit/hooded/chaplain_hoodie, /obj/item/clothing/suit/hooded/chaplainsuit/monkhabit, /obj/item/clothing/suit/hooded/chaplainsuit/monkhabit, -/obj/item/clothing/suit/chaplainsuit/nun, -/obj/item/clothing/suit/chaplainsuit/nun, -/obj/item/clothing/suit/chaplainsuit/monkrobeeast, -/obj/item/clothing/suit/chaplainsuit/monkrobeeast, -/obj/effect/turf_decal/siding/wood/end, -/obj/item/clothing/head/nun_hood, -/obj/item/clothing/head/nun_hood, -/obj/item/clothing/head/nun_hood, -/obj/item/clothing/head/nun_hood, /turf/open/floor/wood, /area/ship/crew/dorm) "am" = ( @@ -545,8 +531,7 @@ /obj/item/honey_frame, /obj/item/queen_bee/bought, /obj/effect/turf_decal/siding/wood{ - color = "#332521"; - layer = 70 + color = "#332521" }, /turf/open/floor/grass/fairy, /area/ship/crew/hydroponics) @@ -892,7 +877,8 @@ /obj/structure/window/reinforced/spawner/east, /obj/effect/decal/cleanable/dirt, /obj/machinery/door/window/northleft{ - req_one_access_txt = list("12","22","37") + req_one_access_txt = null; + req_one_access = list(12,22,37) }, /turf/open/floor/wood/ebony, /area/ship/crew/hydroponics) @@ -1209,7 +1195,6 @@ /obj/structure/closet/secure_closet/personal/cabinet, /obj/item/gun/ballistic/shotgun/doublebarrel, /obj/item/key/displaycase, -/obj/item/soulstone/anybody/chaplain, /obj/item/megaphone, /obj/item/storage/box/beanbag, /turf/open/floor/carpet/nanoweave/blue, @@ -1223,7 +1208,6 @@ /turf/closed/wall/r_wall, /area/ship/crew/dorm/dormtwo) "kE" = ( -/obj/structure/fluff/divine/nexus, /turf/open/floor/carpet/nanoweave/blue, /area/ship/crew/chapel/office) "kH" = ( @@ -1380,7 +1364,7 @@ /obj/effect/turf_decal/siding/wood/corner{ dir = 8 }, -/obj/structure/altar_of_gods, +/obj/structure/fluff/divine/convertaltar, /turf/open/floor/wood, /area/ship/crew/chapel) "md" = ( @@ -1864,7 +1848,8 @@ "qj" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/window/northleft{ - req_one_access_txt = list("12","22","37") + req_one_access_txt = null; + req_one_access = list(12,22,37) }, /turf/open/floor/ship/dirt/dark, /area/ship/crew/hydroponics) @@ -1961,6 +1946,10 @@ /obj/effect/turf_decal/siding/wood{ dir = 5 }, +/obj/machinery/light_switch{ + pixel_y = 23; + pixel_x = 11 + }, /turf/open/floor/wood, /area/ship/hallway/port) "qV" = ( @@ -2430,7 +2419,9 @@ color = "#332521"; dir = 5 }, -/obj/item/toy/plush/hornet/gay, +/obj/item/toy/plush/hornet/gay{ + layer = 3.1 + }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /obj/machinery/power/apc/auto_name/directional/east, /obj/structure/cable{ @@ -2805,6 +2796,15 @@ /obj/effect/turf_decal/corner/opaque/lightgrey/mono, /turf/open/floor/engine/air, /area/ship/engineering/atmospherics) +"yZ" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/light_switch{ + dir = 1; + pixel_x = -6; + pixel_y = -25 + }, +/turf/open/floor/wood, +/area/ship/hallway/starboard) "zt" = ( /obj/structure/table/wood, /obj/item/storage/firstaid/regular, @@ -2914,6 +2914,7 @@ color = "#332521"; dir = 10 }, +/obj/machinery/hydroponics/soil, /turf/open/floor/grass/fairy, /area/ship/crew/hydroponics) "Aq" = ( @@ -3121,10 +3122,6 @@ }, /turf/open/floor/ship/dirt/dark, /area/ship/crew/hydroponics) -"Cx" = ( -/obj/machinery/mineral/ore_redemption, -/turf/open/floor/ship/dirt/dark, -/area/ship/crew/canteen) "CL" = ( /obj/effect/turf_decal/corner/opaque/bottlegreen/diagonal, /obj/machinery/power/apc/auto_name/directional/west, @@ -3532,9 +3529,9 @@ dir = 8 }, /obj/effect/turf_decal/siding/wood{ - color = "#332521"; - layer = 70 + color = "#332521" }, +/obj/machinery/hydroponics/soil, /turf/open/floor/grass/fairy, /area/ship/crew/hydroponics) "Ga" = ( @@ -3567,7 +3564,6 @@ /obj/structure/window/reinforced/spawner, /obj/item/storage/belt/utility/full/engi, /obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, /obj/item/clothing/head/welding, /obj/item/clothing/head/welding, /obj/item/multitool, @@ -3911,6 +3907,7 @@ color = "#332521"; dir = 6 }, +/obj/machinery/hydroponics/soil, /turf/open/floor/grass/fairy, /area/ship/crew/hydroponics) "Jv" = ( @@ -4086,8 +4083,7 @@ /obj/item/honey_frame, /obj/item/queen_bee/bought, /obj/effect/turf_decal/siding/wood{ - color = "#332521"; - layer = 70 + color = "#332521" }, /turf/open/floor/grass/fairy, /area/ship/crew/hydroponics) @@ -4412,9 +4408,9 @@ }, /obj/structure/flora/ausbushes/brflowers, /obj/effect/turf_decal/siding/wood{ - color = "#332521"; - layer = 70 + color = "#332521" }, +/obj/machinery/hydroponics/soil, /turf/open/floor/grass/fairy, /area/ship/crew/hydroponics) "NN" = ( @@ -4435,16 +4431,15 @@ /obj/item/honey_frame, /obj/item/queen_bee/bought, /obj/effect/turf_decal/siding/wood{ - color = "#332521"; - layer = 70 + color = "#332521" }, /turf/open/floor/grass/fairy, /area/ship/crew/hydroponics) "NX" = ( /obj/effect/turf_decal/siding/wood{ - color = "#332521"; - layer = 70 + color = "#332521" }, +/obj/machinery/hydroponics/soil, /turf/open/floor/grass/fairy, /area/ship/crew/hydroponics) "NZ" = ( @@ -4567,7 +4562,8 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/item/toy/plush/lizardplushie{ pixel_x = -2; - pixel_y = 7 + pixel_y = 7; + layer = 3.1 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/cable{ @@ -4602,7 +4598,9 @@ color = "#332521"; dir = 9 }, -/obj/item/toy/plush/snakeplushie, +/obj/item/toy/plush/snakeplushie{ + layer = 3.1 + }, /turf/open/floor/carpet/black, /area/ship/crew/dorm/dormtwo) "PE" = ( @@ -4740,8 +4738,7 @@ /obj/item/honey_frame, /obj/item/queen_bee/bought, /obj/effect/turf_decal/siding/wood{ - color = "#332521"; - layer = 70 + color = "#332521" }, /turf/open/floor/grass/fairy, /area/ship/crew/hydroponics) @@ -5102,13 +5099,9 @@ "Ss" = ( /obj/structure/table/wood, /obj/item/areaeditor/shuttle, -/obj/item/nullrod, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 1 }, -/obj/item/spacecash/bundle/c1000, -/obj/item/spacecash/bundle/c1000, -/obj/item/spacecash/bundle/c1000, /obj/machinery/firealarm/directional/east, /obj/machinery/light/directional/east, /turf/open/floor/carpet/nanoweave/blue, @@ -5446,13 +5439,6 @@ }, /turf/open/floor/wood, /area/ship/crew/library) -"Vr" = ( -/obj/machinery/light_switch{ - pixel_x = 6; - pixel_y = 23 - }, -/turf/closed/wall/r_wall, -/area/ship/engineering/atmospherics) "Vu" = ( /obj/structure/chair/pew/left, /obj/effect/turf_decal/siding/wood{ @@ -5496,8 +5482,7 @@ dir = 1 }, /obj/effect/turf_decal/siding/wood{ - color = "#332521"; - layer = 70 + color = "#332521" }, /turf/open/floor/grass/fairy, /area/ship/crew/hydroponics) @@ -5512,7 +5497,8 @@ }, /obj/item/toy/plush/goatplushie{ pixel_x = 2; - pixel_y = 3 + pixel_y = 3; + layer = 3.1 }, /turf/open/floor/carpet/black, /area/ship/crew/dorm/dormtwo) @@ -5532,7 +5518,8 @@ dir = 1 }, /obj/item/toy/plush/moth{ - pixel_y = 3 + pixel_y = 3; + layer = 3.1 }, /turf/open/floor/carpet/black, /area/ship/crew/dorm/dormtwo) @@ -5734,9 +5721,9 @@ "XH" = ( /obj/structure/flora/ausbushes/ppflowers, /obj/effect/turf_decal/siding/wood{ - color = "#332521"; - layer = 70 + color = "#332521" }, +/obj/machinery/hydroponics/soil, /turf/open/floor/grass/fairy, /area/ship/crew/hydroponics) "XL" = ( @@ -5760,8 +5747,7 @@ "XY" = ( /obj/machinery/light/floor, /obj/effect/turf_decal/siding/wood{ - color = "#332521"; - layer = 70 + color = "#332521" }, /turf/open/floor/grass/fairy, /area/ship/crew/hydroponics) @@ -6758,7 +6744,7 @@ xj (21,1,1) = {" xj xj -Vr +Uf Ez jS QI @@ -6826,7 +6812,7 @@ JL UW hw Vh -FL +yZ mB Ga oQ @@ -7163,7 +7149,7 @@ xj xj ZG Te -Cx +Tf Tf fP Tf diff --git a/_maps/shuttles/independent/independent_tranquility.dmm b/_maps/shuttles/independent/independent_tranquility.dmm index 4a8f4e5ed30b..fd1a368ebc50 100644 --- a/_maps/shuttles/independent/independent_tranquility.dmm +++ b/_maps/shuttles/independent/independent_tranquility.dmm @@ -1775,18 +1775,6 @@ }, /turf/open/floor/carpet/nanoweave/beige, /area/ship/hallway/port) -"nO" = ( -/obj/structure/chair/sofa/corner{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/obj/structure/sign/poster/rilena/random{ - pixel_x = 32 - }, -/turf/open/floor/wood/walnut, -/area/ship/crew) "nX" = ( /obj/structure/frame/machine, /obj/item/stack/cable_coil/random/five, @@ -2671,6 +2659,35 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering/engine) +"vU" = ( +/obj/structure/table, +/obj/item/ammo_box/magazine/m45/rubber{ + pixel_x = 7; + pixel_y = -2 + }, +/obj/effect/turf_decal/borderfloorblack{ + dir = 6 + }, +/obj/effect/turf_decal/borderfloorblack{ + dir = 5 + }, +/obj/item/gun/ballistic/automatic/pistol/candor/no_mag{ + pixel_x = -2; + pixel_y = 9 + }, +/obj/item/reagent_containers/glass/rag{ + pixel_x = -6; + pixel_y = 1 + }, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/sign/poster/contraband/lusty_xenomorph{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/tech, +/area/ship/security/armory) "vV" = ( /obj/structure/table, /obj/effect/turf_decal/siding/wood{ @@ -3832,6 +3849,18 @@ }, /turf/open/floor/plasteel/tech, /area/ship/crew/crewfour) +"Fk" = ( +/obj/structure/chair/sofa/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/sign/poster/rilena/random{ + pixel_x = 32 + }, +/turf/open/floor/wood/walnut, +/area/ship/crew) "Fl" = ( /obj/structure/table, /obj/item/defibrillator/loaded, @@ -4801,7 +4830,7 @@ pixel_x = -6; pixel_y = 26 }, -/obj/item/book/manual/wiki/tcomms{ +/obj/item/book/manual/wiki/engineering{ pixel_x = -8; pixel_y = -1 }, @@ -5478,35 +5507,6 @@ }, /turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/engineering/engine) -"Rk" = ( -/obj/structure/table, -/obj/item/ammo_box/magazine/m45/rubber{ - pixel_x = 7; - pixel_y = -2 - }, -/obj/effect/turf_decal/borderfloorblack{ - dir = 6 - }, -/obj/effect/turf_decal/borderfloorblack{ - dir = 5 - }, -/obj/item/gun/ballistic/automatic/pistol/m1911/no_mag{ - pixel_x = -2; - pixel_y = 9 - }, -/obj/item/reagent_containers/glass/rag{ - pixel_x = -6; - pixel_y = 1 - }, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/sign/poster/contraband/lusty_xenomorph{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/tech, -/area/ship/security/armory) "Rm" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 @@ -6906,7 +6906,7 @@ KI HP PH gk -nO +Fk Ef wz xo @@ -7658,7 +7658,7 @@ qa qa qa PS -Rk +vU fZ qq xI diff --git a/_maps/shuttles/inteq/inteq_colossus.dmm b/_maps/shuttles/inteq/inteq_colossus.dmm index bf86ed599f7f..1ebfe3d028af 100644 --- a/_maps/shuttles/inteq/inteq_colossus.dmm +++ b/_maps/shuttles/inteq/inteq_colossus.dmm @@ -2652,6 +2652,7 @@ }, /obj/item/storage/belt/security/webbing/inteq, /obj/item/storage/belt/military/assault, +/obj/item/clothing/head/inteq_peaked, /turf/open/floor/carpet/orange, /area/ship/bridge) "Dq" = ( diff --git a/_maps/shuttles/inteq/inteq_talos.dmm b/_maps/shuttles/inteq/inteq_talos.dmm index dfc829d40320..24e272c4d2b5 100644 --- a/_maps/shuttles/inteq/inteq_talos.dmm +++ b/_maps/shuttles/inteq/inteq_talos.dmm @@ -4700,8 +4700,6 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt/dust, /obj/item/book/manual/srmlore, -/obj/item/book/manual/wiki/detective, -/obj/item/book/manual/wiki/security_space_law, /obj/structure/bookcase, /obj/item/book/random, /obj/item/book/random, @@ -6289,7 +6287,7 @@ id = "talos_engine_shutter" }, /obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/turf/closed/wall/mineral/plastitanium/nodiagonal, +/turf/open/floor/plating, /area/ship/engineering/engine) "Pm" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ @@ -7589,6 +7587,7 @@ }, /obj/item/storage/belt/security/webbing/inteq/alt, /obj/item/storage/belt/security/webbing/inteq, +/obj/item/clothing/head/inteq_peaked, /turf/open/floor/plasteel/dark, /area/ship/bridge) "YC" = ( diff --git a/_maps/shuttles/inteq/inteq_valor.dmm b/_maps/shuttles/inteq/inteq_valor.dmm new file mode 100644 index 000000000000..b518e589dd29 --- /dev/null +++ b/_maps/shuttles/inteq/inteq_valor.dmm @@ -0,0 +1,6664 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/dorm) +"ah" = ( +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/structure/chair, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"ap" = ( +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/brown/line, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"ar" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-9" + }, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"as" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"aC" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/carpet/black, +/area/ship/crew/dorm) +"aU" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2, +/turf/open/floor/plasteel/tech/grid, +/area/ship/cargo) +"aW" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/airlock/grunge{ + name = "Medbay" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/turf_decal/borderfloorblack{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating/dark/corner, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"bh" = ( +/obj/structure/railing{ + dir = 6 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 6 + }, +/obj/effect/turf_decal/box/corners, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance/five, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"bv" = ( +/obj/effect/turf_decal/box/white/corners, +/obj/effect/turf_decal/box/white/corners{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/structure/closet/secure_closet{ + icon_state = "med_secure"; + name = "corpsman's locker"; + req_access = list(5) + }, +/obj/item/clothing/under/syndicate/inteq/corpsman, +/obj/item/clothing/under/syndicate/inteq/skirt/corpsman, +/obj/item/clothing/suit/armor/inteq/corpsman, +/obj/item/clothing/head/soft/inteq/corpsman, +/obj/item/storage/backpack/messenger/med, +/obj/item/storage/backpack/medic, +/obj/item/pinpointer/crew, +/obj/item/storage/belt/medical/webbing, +/obj/item/storage/firstaid/regular, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/crew/office) +"bx" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/structure/closet/firecloset/wall{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"bB" = ( +/turf/closed/wall/mineral/plastitanium, +/area/ship/medical) +"bF" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/light/directional/east, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/tech/grid, +/area/ship/cargo) +"bI" = ( +/obj/effect/turf_decal/borderfloorwhite, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"bJ" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/effect/turf_decal/trimline/opaque/brown/line, +/obj/machinery/light/directional/south, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"bN" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel/tech/grid, +/area/ship/cargo) +"bR" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/airlock/grunge{ + name = "Medbay" + }, +/obj/effect/turf_decal/borderfloorblack{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ship/hallway/central) +"bS" = ( +/obj/machinery/suit_storage_unit/inherit, +/obj/item/clothing/suit/space/hardsuit/security/independent/inteq, +/turf/open/floor/carpet/orange, +/area/ship/bridge) +"cj" = ( +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/sink/kitchen{ + dir = 4; + pixel_x = -12 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"ct" = ( +/obj/structure/railing{ + dir = 5; + layer = 2.9 + }, +/obj/structure/closet/crate{ + name = "training equipment crate" + }, +/obj/item/gun/energy/laser/practice{ + pixel_x = -5; + pixel_y = 10 + }, +/obj/item/gun/energy/laser/practice{ + pixel_y = 5 + }, +/obj/item/gun/energy/laser/practice{ + pixel_x = 5 + }, +/obj/item/clothing/ears/earmuffs, +/obj/item/clothing/ears/earmuffs, +/obj/item/clothing/ears/earmuffs, +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 5 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"cu" = ( +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/ship/maintenance/port) +"cE" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"cI" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/tech/grid, +/area/ship/cargo) +"cW" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/brown/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/brown/line, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"cZ" = ( +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/structure/sign/poster/official/fruit_bowl{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"de" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"dk" = ( +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/machinery/airalarm/directional/south, +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"dl" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, +/area/ship/medical) +"dp" = ( +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/machinery/airalarm/directional/south, +/obj/structure/closet/crate/bin, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/dorm) +"du" = ( +/obj/machinery/door/airlock/public{ + dir = 4; + name = "Dormitories" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/effect/turf_decal/borderfloorblack{ + dir = 8 + }, +/turf/open/floor/carpet/black, +/area/ship/crew/dorm) +"dA" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/brown/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"dG" = ( +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 4 + }, +/obj/structure/marker_beacon, +/turf/open/floor/engine/hull/reinforced, +/area/ship/external/dark) +"dI" = ( +/obj/machinery/door/airlock/grunge{ + dir = 8; + name = "Custodian Closet" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/canteen) +"dM" = ( +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/item/kirbyplants/random, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"dN" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/airlock/grunge{ + dir = 4; + name = "Surgery" + }, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"dO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/stairs/right{ + dir = 8 + }, +/area/ship/cargo) +"dQ" = ( +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"ec" = ( +/obj/structure/closet/crate/internals, +/obj/item/tank/internals/oxygen, +/obj/item/tank/internals/oxygen, +/obj/item/tank/internals/oxygen, +/obj/item/tank/internals/oxygen, +/obj/item/tank/internals/oxygen, +/obj/item/tank/internals/plasmaman/full, +/obj/item/tank/internals/plasmaman/full, +/obj/item/clothing/head/helmet/space/inteq, +/obj/item/clothing/head/helmet/space/inteq, +/obj/item/clothing/suit/space/inteq, +/obj/item/clothing/suit/space/inteq, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"ei" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ship/maintenance/starboard) +"ej" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black/corner{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"em" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/airlock/command{ + name = "Bridge"; + dir = 8; + req_access = list(19) + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"ew" = ( +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/structure/table, +/obj/structure/closet/secure_closet/wall{ + icon_state = "sec_wall"; + name = "equipment locker"; + pixel_y = 28; + req_access = list(1) + }, +/obj/item/storage/box/zipties, +/obj/item/reagent_containers/spray/pepper, +/obj/item/megaphone/sec, +/obj/item/clothing/suit/armor/vest/alt, +/obj/item/clothing/suit/armor/vest/alt, +/obj/item/kitchen/knife/combat/survival, +/obj/item/kitchen/knife/combat/survival, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"ey" = ( +/turf/closed/wall/mineral/plastitanium, +/area/ship/maintenance/starboard) +"eM" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4; + name = "Helm" + }, +/obj/effect/turf_decal/corner/opaque/yellow, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"eN" = ( +/obj/structure/bed, +/obj/structure/curtain, +/obj/item/bedsheet/medical, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"eU" = ( +/obj/structure/table, +/obj/item/storage/backpack/duffelbag/med/surgery{ + pixel_x = -2; + pixel_y = 7 + }, +/obj/item/reagent_containers/medigel/sterilizine{ + pixel_x = 8; + pixel_y = 3 + }, +/obj/effect/turf_decal/borderfloorwhite, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"eV" = ( +/obj/structure/closet/firecloset/wall{ + dir = 1; + pixel_y = -28 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"eZ" = ( +/obj/item/reagent_containers/food/drinks/coffee{ + pixel_x = -2; + pixel_y = 9 + }, +/obj/structure/table/wood, +/turf/open/floor/carpet/black, +/area/ship/crew/dorm) +"fa" = ( +/obj/machinery/cryopod{ + dir = 1 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/crew/cryo) +"fe" = ( +/obj/structure/closet/crate{ + name = "food crate" + }, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/obj/item/storage/ration/crayons, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"fj" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/structure/closet/secure_closet/medical2, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"fE" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/line{ + dir = 9 + }, +/obj/machinery/vending/cigarette, +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"fG" = ( +/obj/effect/turf_decal/box/corners, +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"fK" = ( +/obj/machinery/computer/crew{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 8 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/bridge) +"fN" = ( +/obj/machinery/suit_storage_unit/inherit, +/obj/item/clothing/suit/space/inteq, +/obj/item/clothing/head/helmet/space/inteq, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/cargo) +"fO" = ( +/obj/structure/closet/secure_closet{ + icon_state = "med_secure"; + name = "corpsman's locker"; + req_access = list(5) + }, +/obj/item/clothing/under/syndicate/inteq/corpsman, +/obj/item/clothing/under/syndicate/inteq/skirt/corpsman, +/obj/item/clothing/suit/armor/inteq/corpsman, +/obj/item/clothing/head/soft/inteq/corpsman, +/obj/effect/turf_decal/siding/thinplating, +/obj/item/storage/backpack/messenger/med, +/obj/item/storage/backpack/medic, +/obj/item/pinpointer/crew, +/obj/item/storage/belt/medical/webbing, +/obj/item/storage/firstaid/regular, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/crew/office) +"fQ" = ( +/obj/structure/bed/dogbed{ + name = "Picket's bed"; + anchored = 1; + desc = "A comfy-looking dog bed. Despite the name, the owner is a cat." + }, +/mob/living/simple_animal/pet/cat{ + dir = 4; + name = "Picket"; + desc = "Guardian of the bridge and the Honorable Corpsman's bedsheets." + }, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/carpet/blue, +/area/ship/bridge) +"gb" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 10 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/port) +"gh" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/port) +"gi" = ( +/obj/effect/turf_decal/industrial/traffic/corner, +/obj/structure/marker_beacon, +/turf/open/floor/engine/hull/reinforced, +/area/ship/external/dark) +"gl" = ( +/obj/machinery/stasis, +/obj/effect/turf_decal/box/white, +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel/mono/white, +/area/ship/medical) +"gm" = ( +/obj/machinery/power/smes/shuttle/precharged{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/door/window/eastright{ + name = "Engine Access" + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"gn" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ship/crew/dorm) +"gp" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/brown/warning{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"gq" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/machinery/light/small/directional/east, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20 + }, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/cargo) +"gt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/observer_start, +/obj/machinery/holopad/emergency/security, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"gU" = ( +/obj/effect/turf_decal/siding/thinplating/dark/corner, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/brown/warning, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"gZ" = ( +/obj/machinery/door/airlock/external{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ship/medical) +"hj" = ( +/obj/effect/turf_decal/siding/thinplating/corner, +/obj/effect/turf_decal/siding/thinplating/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/warning, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"hl" = ( +/obj/effect/turf_decal/siding/thinplating, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/port) +"hm" = ( +/obj/effect/turf_decal/industrial/loading{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"ht" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/airlock/grunge{ + name = "Central Hallway" + }, +/obj/effect/turf_decal/borderfloorblack{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"hw" = ( +/obj/structure/table, +/obj/item/paicard{ + pixel_x = 5; + pixel_y = 2 + }, +/obj/item/paicard{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/crew/cryo) +"hN" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/line{ + dir = 4 + }, +/obj/structure/closet/crate/bin, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/item/trash/can, +/obj/item/trash/candy, +/obj/item/trash/chips, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"hS" = ( +/turf/open/floor/carpet/black, +/area/ship/crew/dorm) +"hW" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = 12 + }, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"id" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/airlock/grunge{ + name = "Central Hallway" + }, +/obj/effect/turf_decal/borderfloorblack, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"ie" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/line{ + dir = 6 + }, +/obj/structure/chair/sofa/left{ + dir = 8 + }, +/obj/structure/closet/firecloset/wall{ + dir = 1; + pixel_y = -28 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"ix" = ( +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 9 + }, +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"iI" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/traffic/corner, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"iN" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/port) +"iQ" = ( +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"jj" = ( +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"jk" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/airlock/grunge{ + name = "Crew Quarters" + }, +/obj/effect/turf_decal/borderfloorblack, +/turf/open/floor/plasteel/dark, +/area/ship/hallway/central) +"jp" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"jw" = ( +/obj/effect/turf_decal/siding/thinplating/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/warning{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"jG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/industrial/traffic{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"jL" = ( +/obj/structure/grille, +/obj/structure/window/plasma/reinforced/plastitanium, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "valor_external" + }, +/turf/open/floor/plating, +/area/ship/medical) +"jN" = ( +/obj/structure/chair/office/light, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/patterned, +/area/ship/crew/office) +"jQ" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/light/directional/east, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel/tech/grid, +/area/ship/cargo) +"jR" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/machinery/computer/cryopod/directional/east, +/obj/effect/turf_decal/steeldecal/steel_decals_central7{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ship/crew/cryo) +"jS" = ( +/turf/closed/wall/mineral/plastitanium, +/area/ship/bridge) +"jT" = ( +/obj/structure/sign/poster/contraband/cardinal_port_starboard{ + pixel_y = 32 + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/ship/hallway/central) +"jU" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/line{ + dir = 10 + }, +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"ka" = ( +/turf/closed/wall/mineral/plastitanium, +/area/ship/crew/canteen) +"ko" = ( +/obj/effect/turf_decal/siding/thinplating/dark/corner, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance_hatch{ + dir = 4; + name = "Starboard Engines" + }, +/turf/open/floor/plasteel/dark, +/area/ship/maintenance/starboard) +"kv" = ( +/obj/structure/bed, +/obj/item/bedsheet/cmo{ + name = "honorable corpsman's bedsheet"; + desc = "It's a sterilized blanket that has a cross emblem. There's some cat fur on it, likely from Picket." + }, +/obj/structure/curtain/cloth, +/obj/machinery/light/directional/west, +/turf/open/floor/carpet/blue, +/area/ship/bridge) +"ky" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/ship/hallway/port) +"kG" = ( +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/ship/hallway/central) +"kH" = ( +/obj/structure/cable{ + icon_state = "4-9" + }, +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"kK" = ( +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 28 + }, +/obj/structure/rack, +/obj/item/storage/belt/security/webbing/inteq{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/storage/belt/security/webbing/inteq{ + pixel_x = 8; + pixel_y = 4 + }, +/obj/item/clothing/head/helmet/inteq{ + pixel_x = -9; + pixel_y = 6 + }, +/obj/item/clothing/head/helmet/inteq{ + pixel_x = -7 + }, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"kL" = ( +/obj/machinery/light/directional/south, +/obj/structure/rack, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"kW" = ( +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/structure/closet/crate/bin, +/obj/item/storage/box/inteqmaid, +/obj/item/trash/chips, +/obj/item/trash/energybar, +/obj/item/trash/cheesie, +/obj/item/trash/pistachios, +/turf/open/floor/plasteel/tech, +/area/ship/hallway/central) +"lc" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plating, +/area/ship/hallway/central) +"ln" = ( +/obj/structure/dresser, +/obj/structure/noticeboard{ + pixel_y = 28 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/carpet/black, +/area/ship/crew/dorm) +"lv" = ( +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/structure/table, +/obj/machinery/door/window/northleft, +/obj/item/reagent_containers/glass/bottle/formaldehyde{ + pixel_x = -9; + pixel_y = 7 + }, +/obj/item/reagent_containers/glass/bottle/charcoal{ + pixel_y = 6 + }, +/obj/item/reagent_containers/glass/bottle/morphine{ + pixel_x = 9; + pixel_y = 7 + }, +/obj/item/reagent_containers/glass/bottle/epinephrine{ + pixel_x = -5 + }, +/obj/item/reagent_containers/glass/bottle/mannitol{ + pixel_x = 6 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/medical) +"lD" = ( +/obj/structure/sign/warning/nosmoking/burnt{ + pixel_y = -32 + }, +/obj/item/cigbutt/cigarbutt{ + pixel_x = -7; + pixel_y = 3 + }, +/obj/machinery/telecomms/relay/preset/mining{ + autolinkers = list("relay","hub"); + freq_listening = list(1347); + id = "IRMG Relay"; + name = "IRMG Relay"; + network = "irmg_commnet" + }, +/turf/open/floor/plating, +/area/ship/maintenance/starboard) +"lE" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"lI" = ( +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/closet/crate/bin, +/obj/structure/cable, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"lN" = ( +/obj/structure/table, +/obj/machinery/computer/med_data/laptop{ + dir = 1; + pixel_y = 8 + }, +/obj/machinery/door/window/southleft, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/crew/office) +"lW" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black/corner{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = 6 + }, +/obj/item/pen{ + pixel_x = 6 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 + }, +/obj/item/reagent_containers/food/drinks/bottle/cognac{ + pixel_x = -6; + pixel_y = 13 + }, +/obj/item/gps{ + pixel_x = -10 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/item/spacecash/bundle/mediumrand{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"ma" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/turf/open/floor/plasteel/dark, +/area/ship/crew/dorm) +"md" = ( +/obj/machinery/atmospherics/pipe/layer_manifold{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ship/medical) +"mj" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/food/drinks/mug/coco{ + pixel_x = 13; + pixel_y = 5 + }, +/obj/machinery/computer/med_data/laptop{ + dir = 1; + pixel_y = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"ml" = ( +/obj/machinery/door/poddoor{ + dir = 4; + id = "valor_cargo" + }, +/obj/machinery/power/shieldwallgen/atmos{ + dir = 1; + id = "valor_holo"; + anchored = 1 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/ship/cargo) +"mp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/turf/open/floor/plasteel/tech, +/area/ship/medical) +"mt" = ( +/obj/machinery/autolathe, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/cargo) +"mw" = ( +/obj/effect/turf_decal/trimline/opaque/brown/warning{ + dir = 4 + }, +/obj/effect/turf_decal/borderfloorwhite{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/ship/medical) +"mx" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/brown/line, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"mz" = ( +/obj/structure/table/reinforced, +/obj/item/radio/intercom/table{ + pixel_x = -2; + pixel_y = -2 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"mB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ship/crew/dorm) +"mG" = ( +/obj/structure/closet/secure_closet{ + icon_state = "med_secure"; + name = "corpsman's locker"; + req_access = list(5) + }, +/obj/item/clothing/under/syndicate/inteq/corpsman, +/obj/item/clothing/under/syndicate/inteq/skirt/corpsman, +/obj/item/clothing/suit/armor/inteq/corpsman, +/obj/item/clothing/head/soft/inteq/corpsman, +/obj/effect/turf_decal/box/white/corners{ + dir = 1 + }, +/obj/effect/turf_decal/box/white/corners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 10 + }, +/obj/item/storage/backpack/messenger/med, +/obj/item/storage/backpack/medic, +/obj/item/pinpointer/crew, +/obj/item/storage/belt/medical/webbing, +/obj/item/storage/firstaid/regular, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/crew/office) +"mH" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/carpet/black, +/area/ship/crew/dorm) +"mI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ship/crew/dorm) +"mZ" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/line{ + dir = 5 + }, +/obj/machinery/vending/snack/random, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"nc" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 4 + }, +/turf/open/floor/engine/hull/reinforced, +/area/ship/external/dark) +"nd" = ( +/obj/machinery/power/smes/shuttle/precharged{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/door/window/eastright{ + name = "Engine Access" + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/ship/maintenance/starboard) +"ni" = ( +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/canteen) +"nk" = ( +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/ship/bridge) +"ns" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"nx" = ( +/obj/structure/railing{ + dir = 6 + }, +/obj/item/target{ + pixel_y = 10; + pixel_x = -9 + }, +/obj/item/target/alien{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/target{ + pixel_x = -8; + pixel_y = 2 + }, +/obj/effect/turf_decal/box/corners, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/structure/rack, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"nz" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + dir = 8; + name = "Cargo Bay" + }, +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"nB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"nK" = ( +/obj/effect/turf_decal/trimline/opaque/blue/warning, +/obj/effect/turf_decal/borderfloorwhite{ + dir = 1 + }, +/obj/machinery/door/airlock/medical/glass{ + name = "Surgical Bay #2" + }, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"nU" = ( +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/structure/closet/crate/trashcart/laundry, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/plasteel/dark, +/area/ship/crew/dorm) +"nX" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/cargo) +"nZ" = ( +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/crew/canteen) +"og" = ( +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/structure/weightmachine/stacklifter, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"om" = ( +/obj/structure/table, +/obj/item/flashlight/lamp/green, +/turf/open/floor/carpet/black, +/area/ship/crew/dorm) +"oy" = ( +/obj/effect/turf_decal/trimline/opaque/brown/warning{ + dir = 6 + }, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"oz" = ( +/obj/structure/railing{ + dir = 4; + layer = 2.9 + }, +/obj/effect/turf_decal/borderfloor/corner{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "6-8" + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"oC" = ( +/obj/machinery/suit_storage_unit/inherit, +/obj/item/clothing/suit/space/inteq, +/obj/item/clothing/head/helmet/space/inteq, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/medical) +"oL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/steeldecal/steel_decals_central7, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"oO" = ( +/turf/closed/wall/mineral/plastitanium, +/area/ship/crew/office) +"pa" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + dir = 8; + name = "Canteen" + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/crew/canteen) +"pd" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating/dark/end{ + dir = 1 + }, +/obj/structure/sign/warning/nosmoking/circle{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"pj" = ( +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 6 + }, +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"pt" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/brown/line, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"pz" = ( +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 6 + }, +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"pA" = ( +/obj/structure/closet/wall{ + pixel_y = 28 + }, +/obj/item/radio, +/obj/item/radio, +/obj/item/radio, +/obj/item/radio, +/obj/item/radio, +/obj/item/radio, +/obj/item/radio, +/obj/item/radio, +/obj/item/radio, +/obj/item/radio, +/obj/item/radio, +/obj/item/radio, +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/plasteel/tech/grid, +/area/ship/crew/cryo) +"pC" = ( +/obj/structure/table/optable, +/obj/machinery/defibrillator_mount/loaded{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"pL" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-6" + }, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"pO" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"pU" = ( +/obj/structure/closet/firecloset/wall{ + pixel_y = 28 + }, +/obj/machinery/atmospherics/components/binary/pump/on/layer2{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-10" + }, +/turf/open/floor/plating, +/area/ship/maintenance/starboard) +"qe" = ( +/obj/effect/turf_decal/industrial/traffic, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"qk" = ( +/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/tech, +/area/ship/hallway/central) +"qt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"qA" = ( +/obj/structure/closet/crate/trashcart, +/obj/item/trash/can/food/beans, +/obj/item/trash/can, +/obj/item/trash/boritos, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"qG" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "valor_cargo"; + name = "Cargo Bay Door Control"; + pixel_x = -5; + pixel_y = 25 + }, +/obj/machinery/button/shieldwallgen{ + id = "valor_holo"; + pixel_x = 5; + pixel_y = 23 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"qL" = ( +/turf/closed/wall/mineral/plastitanium, +/area/ship/hallway/port) +"qQ" = ( +/obj/machinery/shower, +/obj/item/soap, +/obj/structure/curtain/bounty, +/obj/effect/turf_decal/steeldecal/steel_decals10, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/crew/canteen) +"qR" = ( +/obj/structure/grille, +/obj/structure/window/plasma/reinforced/plastitanium, +/turf/open/floor/plating, +/area/ship/medical) +"qW" = ( +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ship/medical) +"qX" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/machinery/firealarm/directional/east, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/cargo) +"qZ" = ( +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/plasteel/dark, +/area/ship/crew/dorm) +"rc" = ( +/obj/structure/grille, +/obj/structure/window/plasma/reinforced/plastitanium, +/obj/machinery/door/poddoor/shutters{ + id = "valor_external" + }, +/turf/open/floor/plating, +/area/ship/crew/dorm) +"rL" = ( +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"rO" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/effect/turf_decal/trimline/opaque/brown/line, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"rX" = ( +/obj/structure/sign/poster/contraband/inteq_gec{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"rY" = ( +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"sc" = ( +/obj/structure/rack, +/obj/machinery/firealarm/directional/east, +/obj/item/radio/intercom/directional/south, +/obj/item/defibrillator/loaded{ + pixel_x = 3; + pixel_y = 10 + }, +/obj/item/defibrillator/loaded{ + pixel_x = -2; + pixel_y = 2 + }, +/turf/open/floor/plasteel/mono/white, +/area/ship/medical) +"se" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/line{ + dir = 4 + }, +/obj/item/kirbyplants/random, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"si" = ( +/obj/effect/turf_decal/trimline/opaque/blue/warning, +/obj/effect/turf_decal/borderfloorwhite{ + dir = 1 + }, +/obj/machinery/door/airlock/medical/glass{ + name = "Surgical Bay #1" + }, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"ss" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"su" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/brown/line{ + dir = 1 + }, +/obj/structure/chair, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"sy" = ( +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 8 + }, +/obj/item/gun/ballistic/automatic/pistol/commander/inteq/no_mag{ + pixel_x = -4; + pixel_y = 8 + }, +/obj/item/gun/ballistic/automatic/pistol/commander/inteq/no_mag{ + pixel_y = 4 + }, +/obj/item/gun/ballistic/automatic/pistol/commander/inteq/no_mag{ + pixel_x = 4 + }, +/obj/structure/closet/secure_closet/wall{ + icon_state = "sec_wall"; + name = "weapons lockup"; + pixel_y = 28; + req_access = list(1) + }, +/obj/structure/table, +/obj/item/ammo_box/magazine/co9mm/rubber, +/obj/item/ammo_box/magazine/co9mm/rubber, +/obj/item/ammo_box/magazine/co9mm/rubber, +/obj/item/ammo_box/magazine/co9mm, +/obj/item/ammo_box/magazine/co9mm, +/obj/item/ammo_box/magazine/co9mm, +/obj/machinery/recharger, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"sz" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/brown/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"sJ" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/line{ + dir = 8 + }, +/obj/structure/table, +/obj/item/cigbutt, +/obj/item/cigbutt{ + pixel_y = 12 + }, +/obj/effect/decal/cleanable/ash, +/obj/item/cigbutt{ + pixel_x = -9; + pixel_y = 10 + }, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"sM" = ( +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/machinery/modular_computer/console/preset/command, +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/bridge) +"sZ" = ( +/obj/structure/weightmachine/weightlifter, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"te" = ( +/obj/structure/railing{ + dir = 1; + layer = 2.9 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/structure/rack, +/obj/item/target/clown{ + pixel_x = 9; + pixel_y = 5 + }, +/obj/item/target/syndicate{ + pixel_x = -8; + pixel_y = 3 + }, +/obj/item/target/syndicate{ + pixel_y = 5 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"tj" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_y = 20 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/cargo) +"tk" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/canteen) +"ty" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/dorm) +"tz" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/crew/cryo) +"tH" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel/tech/grid, +/area/ship/cargo) +"tS" = ( +/obj/effect/turf_decal/siding/thinplating, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/port) +"tZ" = ( +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/ship/crew/office) +"ua" = ( +/obj/effect/turf_decal/siding/thinplating/corner, +/obj/effect/turf_decal/siding/thinplating/corner{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/port) +"un" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"uo" = ( +/obj/effect/turf_decal/siding/thinplating/corner, +/obj/effect/turf_decal/siding/thinplating/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/warning{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"ux" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/cargo) +"uA" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/dorm) +"uB" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/noticeboard{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/port) +"uS" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"vh" = ( +/obj/machinery/suit_storage_unit/inherit, +/obj/item/clothing/suit/space/inteq, +/obj/item/clothing/head/helmet/space/inteq, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/cargo) +"vi" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"vn" = ( +/obj/machinery/stasis{ + dir = 1 + }, +/obj/effect/turf_decal/box/white, +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/mono/white, +/area/ship/medical) +"vx" = ( +/obj/effect/turf_decal/siding/thinplating/dark/end, +/obj/machinery/airalarm/directional/south, +/obj/structure/closet/wall/white{ + dir = 8; + pixel_x = 28 + }, +/obj/item/clothing/under/rank/medical/gown, +/obj/item/clothing/under/rank/medical/gown, +/obj/item/clothing/under/rank/medical/gown, +/obj/item/clothing/shoes/sandal/slippers, +/obj/item/clothing/shoes/sandal/slippers, +/obj/item/clothing/shoes/sandal/slippers, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"vy" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light/floor, +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"vI" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/machinery/smartfridge/bloodbank/preloaded{ + pixel_y = 32; + density = 0 + }, +/obj/structure/table, +/obj/machinery/cell_charger, +/turf/open/floor/plasteel/mono/dark, +/area/ship/medical) +"vK" = ( +/obj/machinery/cryopod{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/siding/white/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/crew/cryo) +"vX" = ( +/obj/structure/grille, +/obj/structure/window/plasma/reinforced/plastitanium, +/obj/machinery/door/poddoor/shutters{ + id = "valor_external" + }, +/turf/open/floor/plating, +/area/ship/hallway/port) +"wa" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/crew/canteen) +"wc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "2-6" + }, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"wj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"wt" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/brown/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/brown/line, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"wA" = ( +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"wD" = ( +/obj/machinery/cryopod, +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/siding/white/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/crew/cryo) +"wI" = ( +/obj/effect/turf_decal/trimline/opaque/brown/warning{ + dir = 8 + }, +/obj/effect/turf_decal/borderfloorwhite{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ship/medical) +"wL" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/plasteel/patterned, +/area/ship/crew/office) +"wS" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/corner_techfloor_gray/diagonal, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"wV" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"xb" = ( +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"xg" = ( +/obj/machinery/light/directional/south, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"xj" = ( +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/ship/cargo) +"xl" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 6 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/machinery/light_switch{ + dir = 1; + pixel_y = -20 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/port) +"xp" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/brown/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/brown/arrow_ccw, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"xs" = ( +/obj/machinery/iv_drip, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"xy" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = 12 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/turf/open/floor/plasteel/tech, +/area/ship/medical) +"xz" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"xH" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/line{ + dir = 8 + }, +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"xI" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/brown/line, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"xJ" = ( +/obj/machinery/iv_drip, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"xU" = ( +/obj/docking_port/mobile{ + can_move_docking_ports = 1; + name = "valor docking port"; + port_direction = 8; + preferred_direction = 4; + dir = 2 + }, +/turf/closed/wall/mineral/plastitanium, +/area/ship/maintenance/port) +"yb" = ( +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/structure/closet/secure_closet/freezer{ + anchored = 1; + locked = 0; + name = "fridge" + }, +/obj/item/storage/cans/sixbeer, +/obj/effect/turf_decal/steeldecal/steel_decals_central4{ + dir = 1 + }, +/obj/item/reagent_containers/food/snacks/hotdog, +/obj/effect/spawner/lootdrop/donkpockets, +/obj/effect/spawner/lootdrop/donkpockets, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"yu" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/turf/open/floor/carpet/black, +/area/ship/crew/dorm) +"yy" = ( +/obj/structure/railing{ + dir = 5; + layer = 2.9 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/obj/structure/rack, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/metal/fifty, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"yK" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plating, +/area/ship/medical) +"yN" = ( +/obj/structure/chair/office/dark, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"yT" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/computer/secure_data/laptop{ + dir = 1; + pixel_y = 8 + }, +/obj/machinery/door/window/brigdoor/southleft, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"ze" = ( +/obj/item/clothing/mask/gas/sechailer/inteq, +/obj/item/clothing/gloves/tackler/combat/insulated, +/obj/item/clothing/shoes/combat, +/obj/item/storage/backpack/messenger/inteq, +/obj/item/megaphone/command, +/obj/item/clothing/under/syndicate/inteq/skirt, +/obj/item/clothing/under/syndicate/inteq, +/obj/item/clothing/suit/armor/hos/inteq, +/obj/item/clothing/head/beret/sec/hos/inteq, +/obj/structure/closet/secure_closet/wall{ + dir = 4; + icon_door = "solgov_wall"; + icon_state = "solgov_wall"; + name = "vanguard's locker"; + pixel_x = -28; + req_access = list(58) + }, +/obj/item/storage/lockbox/medal/sec, +/obj/item/clothing/glasses/hud/security/sunglasses/inteq, +/obj/item/clothing/head/inteq_peaked, +/turf/open/floor/carpet/orange, +/area/ship/bridge) +"zh" = ( +/turf/closed/wall/mineral/plastitanium, +/area/ship/maintenance/port) +"zi" = ( +/obj/machinery/computer/helm{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/machinery/light_switch{ + pixel_y = 20 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/bridge) +"zr" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 + }, +/obj/machinery/airalarm/directional/south, +/obj/machinery/fax{ + pixel_y = 3 + }, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"zs" = ( +/obj/effect/turf_decal/siding/thinplating, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/port) +"zA" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 5 + }, +/obj/structure/closet/crate/bin, +/obj/structure/sign/poster/official/get_your_legs{ + pixel_y = 32 + }, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20 + }, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"zD" = ( +/obj/machinery/computer/operating{ + dir = 4 + }, +/obj/effect/turf_decal/borderfloorwhite, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"zE" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/airlock/grunge{ + dir = 4; + name = "Sick Bay" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"zG" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/line{ + dir = 8 + }, +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/machinery/computer/helm/viewscreen/directional/west, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"zI" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/airlock/grunge{ + name = "Cargo Bay" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/turf_decal/borderfloorblack, +/turf/open/floor/plasteel/patterned, +/area/ship/medical) +"zK" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/airlock/public/glass{ + name = "Supply Storage" + }, +/obj/effect/turf_decal/corner_techfloor_grid{ + dir = 5 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"zL" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"zO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"zS" = ( +/obj/structure/table, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 9 + }, +/obj/item/storage/box/masks{ + pixel_x = -7; + pixel_y = 10 + }, +/obj/item/storage/box/gloves{ + pixel_x = 8; + pixel_y = 10 + }, +/obj/structure/sign/poster/official/walk{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/medical) +"zT" = ( +/obj/structure/railing, +/obj/effect/turf_decal/borderfloor/corner, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"Ab" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4; + name = "Helm" + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/effect/turf_decal/steeldecal/steel_decals3, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"Af" = ( +/obj/machinery/power/smes/shuttle/precharged{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/door/window/eastleft{ + name = "Engine Access" + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/ship/maintenance/starboard) +"Am" = ( +/turf/open/floor/carpet/orange, +/area/ship/bridge) +"An" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 + }, +/obj/effect/turf_decal/steeldecal/steel_decals_central7, +/obj/machinery/airalarm/directional/north, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/port) +"Av" = ( +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"AD" = ( +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/ship/maintenance/starboard) +"AE" = ( +/obj/structure/table, +/obj/item/storage/backpack/duffelbag/med/surgery{ + pixel_x = -2; + pixel_y = 7 + }, +/obj/item/reagent_containers/medigel/sterilizine{ + pixel_x = 8; + pixel_y = 3 + }, +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/borderfloorwhite, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"AG" = ( +/obj/structure/bed, +/obj/item/bedsheet/hos{ + name = "vanguard's bedsheet" + }, +/obj/structure/curtain/bounty, +/obj/machinery/light/directional/west, +/turf/open/floor/carpet/orange, +/area/ship/bridge) +"AH" = ( +/obj/effect/turf_decal/siding/thinplating/corner, +/obj/effect/turf_decal/siding/thinplating/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"AM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/stairs/left{ + dir = 8 + }, +/area/ship/cargo) +"AO" = ( +/obj/structure/rack, +/obj/item/reagent_containers/glass/bucket, +/obj/item/mop, +/obj/effect/turf_decal/corner/opaque/yellow/border{ + dir = 1 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/sign/poster/contraband/ss13{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/canteen) +"AP" = ( +/obj/effect/turf_decal/siding/thinplating, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/port) +"AV" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 4 + }, +/obj/structure/table, +/obj/structure/bedsheetbin, +/obj/effect/turf_decal/siding/thinplating/dark/end{ + dir = 1 + }, +/obj/structure/sign/poster/official/work_for_a_future{ + desc = "A poster encouraging you to work for your future."; + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"Bc" = ( +/obj/structure/bed, +/obj/item/bedsheet/brown, +/obj/structure/curtain/bounty, +/obj/machinery/light/directional/west, +/turf/open/floor/carpet/black, +/area/ship/crew/dorm) +"Bh" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"BC" = ( +/obj/structure/filingcabinet/double, +/obj/structure/sign/poster/official/help_others{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/crew/office) +"BL" = ( +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/light_switch{ + dir = 1; + pixel_y = -20 + }, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"BV" = ( +/obj/structure/grille, +/obj/structure/window/plasma/reinforced/plastitanium, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "valor_external" + }, +/obj/structure/closet/crate/bin, +/turf/open/floor/plating, +/area/ship/hallway/central) +"Cb" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/traffic{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"Cc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"Ch" = ( +/obj/structure/punching_bag, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"Cr" = ( +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 8 + }, +/obj/machinery/photocopier, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"Ct" = ( +/obj/structure/catwalk/over, +/turf/open/floor/plating/airless, +/area/ship/external/dark) +"CC" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plating, +/area/ship/hallway/port) +"CF" = ( +/obj/structure/table/optable, +/obj/machinery/defibrillator_mount/loaded{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"CH" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/dorm) +"CT" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Security Office"; + req_access = list(1) + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"CV" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black/corner{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"Dj" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ship/maintenance/starboard) +"Dl" = ( +/obj/machinery/power/terminal, +/obj/structure/cable/yellow, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/corner_techfloor_gray/diagonal, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"Dm" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/ship/crew/cryo) +"Dw" = ( +/obj/structure/cable/yellow, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/airalarm/directional/east, +/obj/machinery/power/port_gen/pacman/super, +/obj/item/stack/sheet/mineral/uranium/twenty, +/turf/open/floor/plating, +/area/ship/maintenance/starboard) +"Dx" = ( +/obj/effect/turf_decal/siding/thinplating/dark/end, +/obj/structure/rack, +/obj/item/storage/firstaid/brute{ + pixel_x = 5; + pixel_y = 4 + }, +/obj/item/storage/firstaid/o2{ + pixel_x = -6; + pixel_y = -2 + }, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"DA" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/thinplating/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/port) +"DD" = ( +/obj/machinery/holopad/emergency/command, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"DG" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = -12 + }, +/obj/structure/sign/poster/official/cleanliness{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/mono/white, +/area/ship/medical) +"DL" = ( +/obj/machinery/door/airlock/external{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ship/medical) +"DR" = ( +/obj/machinery/door/airlock/hatch{ + name = "Cargo Bay" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloorblack{ + dir = 1 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/hallway/port) +"DT" = ( +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/ship/hallway/central) +"DU" = ( +/obj/structure/grille, +/obj/structure/window/plasma/reinforced/plastitanium, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "valor_external" + }, +/turf/open/floor/plating, +/area/ship/hallway/port) +"Ea" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/industrial/traffic{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"Ed" = ( +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 9 + }, +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"Ei" = ( +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/machinery/washing_machine, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ship/crew/dorm) +"El" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"EA" = ( +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"EE" = ( +/obj/effect/turf_decal/trimline/opaque/brown/line{ + dir = 5 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 5 + }, +/obj/structure/chair, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20 + }, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"EJ" = ( +/obj/effect/turf_decal/siding/thinplating/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"EK" = ( +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/machinery/light/directional/west, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/dorm) +"EL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"EM" = ( +/obj/structure/bed, +/obj/structure/curtain, +/obj/machinery/light/directional/north, +/obj/item/bedsheet/medical, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"ET" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"EY" = ( +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/ship/crew/cryo) +"Fa" = ( +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"Ff" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/cargo) +"Fs" = ( +/obj/effect/turf_decal/trimline/opaque/brown/filled/warning, +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/effect/turf_decal/trimline/opaque/brown/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"Ft" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"FF" = ( +/obj/structure/bed, +/obj/item/bedsheet/brown, +/obj/structure/curtain/bounty, +/obj/structure/sign/poster/contraband/masked_men{ + pixel_y = -32 + }, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/carpet/black, +/area/ship/crew/dorm) +"FH" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"FI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light/floor, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"FJ" = ( +/obj/structure/table, +/obj/item/folder/red{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/item/paper_bin{ + pixel_x = -15; + pixel_y = 3 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"FY" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/stairs, +/area/ship/cargo) +"FZ" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/port) +"Gd" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"Gm" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/patterned, +/area/ship/crew/office) +"Go" = ( +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/machinery/light/directional/south, +/obj/structure/table, +/obj/item/storage/fancy/donut_box, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"GA" = ( +/obj/structure/sign/poster/contraband/inteq_nt{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 4; + piping_layer = 2 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/plating, +/area/ship/maintenance/starboard) +"GF" = ( +/obj/structure/closet/cardboard, +/obj/item/clothing/gloves/boxing/yellow, +/obj/item/clothing/gloves/boxing/yellow, +/obj/item/clothing/gloves/boxing/green, +/obj/item/clothing/gloves/boxing/green, +/obj/item/clothing/gloves/boxing/blue, +/obj/item/clothing/gloves/boxing/blue, +/obj/item/clothing/gloves/boxing, +/obj/item/clothing/gloves/boxing, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"GR" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"Hg" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/port) +"Hi" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/tech/grid, +/area/ship/cargo) +"Hw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/airlock/public/glass{ + name = "EVA Storage" + }, +/obj/effect/turf_decal/corner_techfloor_grid{ + dir = 10 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"HA" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-10" + }, +/turf/open/floor/plating, +/area/ship/maintenance/starboard) +"HB" = ( +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/structure/table, +/obj/machinery/door/window/northright, +/obj/structure/sign/poster/official/moth/epi{ + pixel_y = -32 + }, +/obj/item/storage/firstaid/radiation{ + pixel_x = -6; + pixel_y = 5 + }, +/obj/item/storage/firstaid/toxin{ + pixel_x = 6; + pixel_y = 1 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/medical) +"HC" = ( +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/ship/hallway/port) +"HE" = ( +/obj/structure/grille, +/obj/structure/window/plasma/reinforced/plastitanium, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "valor_bridge"; + name = "Bridge Shutters" + }, +/turf/open/floor/plating, +/area/ship/bridge) +"HK" = ( +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/ship/crew/canteen) +"HL" = ( +/obj/structure/reagent_dispensers/beerkeg, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"HN" = ( +/obj/machinery/cryopod, +/turf/open/floor/plasteel/tech/grid, +/area/ship/crew/cryo) +"HQ" = ( +/obj/structure/sink{ + dir = 1; + pixel_y = -7 + }, +/obj/structure/mirror{ + pixel_y = -24 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/crew/canteen) +"HT" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black/corner{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"Ie" = ( +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 8 + }, +/obj/structure/table, +/obj/structure/bedsheetbin/empty, +/turf/open/floor/plasteel/dark, +/area/ship/crew/dorm) +"Ik" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/line{ + dir = 4 + }, +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"Io" = ( +/obj/machinery/rnd/server, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/cargo) +"IA" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/brown/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/brown/arrow_ccw, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"IB" = ( +/obj/effect/turf_decal/trimline/opaque/brown/filled/warning, +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/effect/turf_decal/trimline/opaque/brown/arrow_ccw{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"IL" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/machinery/light_switch{ + dir = 1; + pixel_y = -20 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"IM" = ( +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/structure/sign/poster/contraband/inteq{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"IN" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"IQ" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/storage/bag/tray{ + pixel_y = 5; + pixel_x = -1 + }, +/obj/item/reagent_containers/food/drinks/soda_cans/cola{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/reagent_containers/food/snacks/burger/plain{ + pixel_y = 3; + pixel_x = -4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"Jd" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/structure/railing{ + dir = 1; + layer = 2.9 + }, +/obj/structure/closet/crate{ + name = "sandbags crate" + }, +/obj/item/storage/box/emptysandbags{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/item/storage/box/emptysandbags, +/obj/item/storage/box/emptysandbags{ + pixel_x = 5; + pixel_y = -5 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"Jh" = ( +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"Jn" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/plasteel/tech, +/area/ship/medical) +"Jt" = ( +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/structure/sign/poster/official/moth{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"Jz" = ( +/obj/structure/table, +/obj/item/phone{ + pixel_x = -14 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/jukebox/boombox{ + pixel_y = 2; + pixel_x = 3 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"JC" = ( +/obj/machinery/door/poddoor{ + dir = 4; + id = "valor_cargo" + }, +/turf/open/floor/plating, +/area/ship/cargo) +"JJ" = ( +/obj/structure/ore_box, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"JS" = ( +/obj/structure/railing{ + dir = 9; + layer = 2.9 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance/two, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"Kh" = ( +/turf/open/floor/carpet/blue, +/area/ship/bridge) +"Ki" = ( +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 6 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/airlock/public/glass{ + dir = 8; + name = "Cryogenics" + }, +/turf/open/floor/plasteel/tech, +/area/ship/crew/cryo) +"Km" = ( +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/structure/reagent_dispensers/water_cooler, +/obj/structure/sign/poster/contraband/eat{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"Kn" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"Ko" = ( +/obj/machinery/computer/cargo/express{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 8 + }, +/obj/machinery/light/directional/east, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/bridge) +"Kp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"Kz" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"KB" = ( +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 6 + }, +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"KC" = ( +/obj/structure/table, +/obj/item/folder{ + pixel_y = 4; + pixel_x = -3 + }, +/obj/item/folder/blue{ + pixel_x = 2 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"KD" = ( +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"KH" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"KU" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"KV" = ( +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"KW" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/line{ + dir = 8 + }, +/obj/item/kirbyplants/random, +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"KY" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"Lb" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/line{ + dir = 1 + }, +/obj/structure/sign/poster/contraband/hacking_guide{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"Ls" = ( +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/tech, +/area/ship/hallway/central) +"LH" = ( +/obj/machinery/light/floor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"LI" = ( +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/ship/medical) +"LJ" = ( +/obj/machinery/computer/operating{ + dir = 8 + }, +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/borderfloorwhite, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"LL" = ( +/obj/structure/rack, +/obj/item/pickaxe/emergency, +/obj/item/pickaxe/emergency, +/obj/item/pickaxe/emergency, +/obj/machinery/airalarm/directional/east, +/obj/machinery/light_switch{ + dir = 1; + pixel_y = -20 + }, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/cargo) +"LR" = ( +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"Md" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/stairs{ + dir = 8 + }, +/area/ship/cargo) +"Mn" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"Mq" = ( +/obj/structure/table, +/turf/open/floor/carpet/black, +/area/ship/crew/dorm) +"Mt" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/carpet/black, +/area/ship/crew/dorm) +"Mw" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 10 + }, +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1; + piping_layer = 4 + }, +/turf/open/floor/plating/airless, +/area/ship/external/dark) +"ME" = ( +/obj/machinery/door/airlock/medical/glass{ + name = "Medical Office" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/patterned, +/area/ship/crew/office) +"MK" = ( +/obj/machinery/power/shuttle/engine/electric{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/turf/open/floor/plating/airless, +/area/ship/external/dark) +"MR" = ( +/obj/machinery/suit_storage_unit/inherit, +/obj/item/clothing/suit/space/inteq, +/obj/item/clothing/head/helmet/space/inteq, +/obj/structure/sign/poster/official/safety_internals{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/cargo) +"MS" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/item/flashlight/lamp{ + pixel_y = 10; + pixel_x = -13 + }, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"Nh" = ( +/turf/closed/wall/mineral/plastitanium, +/area/ship/cargo) +"Nn" = ( +/obj/structure/table/reinforced, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/turf_decal/corner/opaque/yellow/border{ + dir = 1 + }, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/soap{ + pixel_x = -6 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/canteen) +"Nu" = ( +/obj/structure/closet/secure_closet/wall{ + dir = 4; + pixel_x = -28; + req_access = list(19); + name = "honorable corpsman's locker" + }, +/obj/item/clothing/shoes/combat, +/obj/item/megaphone/command, +/obj/item/clothing/under/syndicate/inteq/corpsman, +/obj/item/clothing/under/syndicate/inteq/skirt/corpsman, +/obj/item/clothing/suit/armor/hos/inteq, +/obj/item/clothing/suit/hooded/wintercoat/security/inteq/alt, +/obj/item/storage/backpack/messenger/med, +/obj/item/clothing/head/beret/sec/brig_phys{ + icon_state = "beret_med"; + name = "honorable corpsman beret"; + desc = "A beret made out of white reinforced fabric with a lue cross emblazoned on it. Smells faintly of blood and gauze." + }, +/obj/item/clothing/glasses/hud/health/sunglasses, +/obj/item/storage/box/hypospray/CMO, +/obj/item/clothing/gloves/color/latex/nitrile, +/turf/open/floor/carpet/blue, +/area/ship/bridge) +"NA" = ( +/obj/effect/turf_decal/trimline/opaque/brown/filled/warning, +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/opaque/brown/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"ND" = ( +/obj/effect/turf_decal/steeldecal/steel_decals_central6, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"NE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + dir = 8; + name = "Cargo Bay" + }, +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"NG" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/stairs/medium{ + dir = 8 + }, +/area/ship/cargo) +"NI" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating/dark/corner, +/obj/machinery/firealarm/directional/west, +/obj/effect/turf_decal/trimline/opaque/brown/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"NM" = ( +/obj/structure/grille, +/obj/structure/window/plasma/reinforced/plastitanium, +/obj/machinery/door/poddoor/shutters{ + id = "valor_external" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plating, +/area/ship/hallway/port) +"NT" = ( +/obj/structure/table, +/obj/item/storage/toolbox/electrical{ + pixel_x = -2; + pixel_y = 8 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/machinery/light/directional/south, +/obj/structure/sign/poster/contraband/tools{ + pixel_x = -32 + }, +/obj/effect/turf_decal/corner_techfloor_gray/full, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"NZ" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/effect/turf_decal/trimline/opaque/brown/line, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"Od" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/line{ + dir = 4 + }, +/obj/structure/chair/sofa/right{ + dir = 8 + }, +/obj/structure/closet/emcloset/wall{ + dir = 8; + pixel_x = 28 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"Oh" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_y = 6 + }, +/obj/item/pen{ + pixel_y = 6 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"Oj" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/structure/closet/emcloset/wall{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"Ok" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"OC" = ( +/obj/structure/bed, +/obj/structure/curtain, +/obj/machinery/light/directional/south, +/obj/item/bedsheet/medical, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"OD" = ( +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"OE" = ( +/obj/structure/table/reinforced, +/obj/item/radio/intercom/wideband/table{ + dir = 4; + pixel_x = 4; + pixel_y = 8 + }, +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/machinery/button/door{ + pixel_x = -9; + dir = 8; + pixel_y = 8; + name = "Bridge Shutters"; + id = "valor_bridge" + }, +/obj/machinery/button/door{ + pixel_x = -9; + dir = 8; + pixel_y = -4; + id = "valor_external"; + name = "External Shutters" + }, +/obj/item/radio/intercom/table{ + dir = 4; + pixel_x = 4; + pixel_y = -6 + }, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"OK" = ( +/obj/machinery/iv_drip/saline, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/cargo) +"OM" = ( +/turf/open/floor/pod, +/area/ship/cargo) +"OR" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/cargo) +"OT" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plasteel/tech/grid, +/area/ship/cargo) +"OV" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/light/small/directional/east, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plating, +/area/ship/medical) +"Pb" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "0-5" + }, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"Pe" = ( +/obj/effect/turf_decal/trimline/opaque/brown/warning, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating/dark/corner, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"Pg" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = -12 + }, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"Pk" = ( +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/machinery/washing_machine, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/dorm) +"PJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/light_switch{ + dir = 1; + pixel_y = -20 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/crew/office) +"PL" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/brown/line{ + dir = 1 + }, +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"PU" = ( +/turf/closed/wall/mineral/plastitanium, +/area/ship/crew/cryo) +"Qc" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 + }, +/obj/structure/noticeboard{ + pixel_y = 28 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/port) +"Qd" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/cargo) +"Qk" = ( +/obj/structure/table, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/spawner/lootdrop/donut, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"Qn" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/brown/line, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"Qo" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/plasteel/patterned, +/area/ship/crew/office) +"Qw" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/line{ + dir = 8 + }, +/obj/structure/table, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20; + pixel_y = 5 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"QE" = ( +/obj/structure/extinguisher_cabinet/directional/north, +/obj/structure/sign/warning/vacuum{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/tech, +/area/ship/medical) +"QG" = ( +/obj/effect/turf_decal/siding/thinplating/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"QO" = ( +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 8 + }, +/obj/machinery/airalarm/directional/west, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"QQ" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/canteen) +"Rc" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/structure/sign/warning/incident{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/cargo) +"Re" = ( +/obj/structure/closet/crate/freezer, +/obj/machinery/iv_drip, +/obj/item/reagent_containers/blood/universal, +/obj/item/reagent_containers/blood/universal, +/obj/item/reagent_containers/blood/universal, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/cargo) +"Rh" = ( +/turf/closed/wall/mineral/plastitanium, +/area/ship/security) +"Rj" = ( +/obj/structure/toilet/secret{ + secret_type = "/obj/item/toy/plush/moth"; + dir = 8 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/crew/canteen) +"Rz" = ( +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/item/chair/plastic, +/obj/item/chair/plastic{ + pixel_y = 3; + pixel_x = -3 + }, +/obj/item/chair/plastic{ + pixel_y = 6; + pixel_x = 2 + }, +/obj/item/chair/plastic{ + pixel_y = 8; + pixel_x = -3 + }, +/obj/structure/rack, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"RA" = ( +/obj/item/storage/backpack/messenger/inteq, +/obj/item/storage/backpack/messenger/inteq, +/obj/item/storage/backpack/messenger/inteq, +/obj/item/clothing/head/beret/sec/inteq, +/obj/item/clothing/head/beret/sec/inteq, +/obj/item/clothing/head/beret/sec/inteq, +/obj/item/clothing/head/soft/inteq, +/obj/item/clothing/head/soft/inteq, +/obj/item/clothing/head/soft/inteq, +/obj/structure/closet/wall{ + pixel_y = 28 + }, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/carpet/black, +/area/ship/crew/dorm) +"RF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, +/area/ship/medical) +"RI" = ( +/obj/structure/rack, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"Sd" = ( +/obj/effect/turf_decal/siding/thinplating, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/port) +"Sf" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating/end{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/port) +"Sh" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"Sl" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/carpet/black, +/area/ship/crew/dorm) +"Sq" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"Sv" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/carpet/black, +/area/ship/crew/dorm) +"SX" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ship/maintenance/starboard) +"Td" = ( +/turf/template_noop, +/area/template_noop) +"Tu" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/coffee{ + pixel_x = -7; + pixel_y = 6 + }, +/obj/item/reagent_containers/food/drinks/coffee{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"Tw" = ( +/turf/closed/wall/mineral/plastitanium, +/area/ship/hallway/central) +"TC" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/turf/open/floor/carpet/black, +/area/ship/crew/dorm) +"TL" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"TS" = ( +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/structure/table, +/obj/item/storage/box/cups{ + pixel_y = 7; + pixel_x = -3 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"TW" = ( +/obj/structure/bed, +/obj/item/bedsheet/brown, +/obj/structure/curtain/bounty, +/turf/open/floor/carpet/black, +/area/ship/crew/dorm) +"Uf" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/machinery/light/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "0-5" + }, +/turf/open/floor/plating, +/area/ship/maintenance/starboard) +"Ug" = ( +/obj/machinery/door/poddoor{ + dir = 4; + id = "valor_cargo" + }, +/obj/machinery/power/shieldwallgen/atmos{ + id = "valor_holo"; + anchored = 1 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/ship/cargo) +"Ui" = ( +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/brown/warning{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"Uj" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/brown/line, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"Um" = ( +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/ship/crew/dorm) +"Us" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"Uv" = ( +/obj/docking_port/stationary{ + height = 15; + width = 15; + name = "valor dock"; + dwidth = 15; + dir = 8 + }, +/turf/template_noop, +/area/template_noop) +"Uz" = ( +/obj/machinery/power/smes/engineering{ + charge = 1e+006 + }, +/obj/effect/turf_decal/borderfloorblack/full, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20 + }, +/turf/open/floor/plating, +/area/ship/maintenance/starboard) +"UC" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"UN" = ( +/obj/effect/turf_decal/siding/thinplating, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/port) +"UO" = ( +/obj/effect/landmark/subship{ + subship_template = /datum/map_template/shuttle/subshuttles/haste + }, +/turf/open/floor/pod, +/area/ship/cargo) +"UQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"Ve" = ( +/turf/open/floor/plasteel/tech, +/area/ship/medical) +"Vp" = ( +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/structure/rack, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/item/ammo_box/c9mm/rubbershot{ + pixel_x = 5; + pixel_y = 10 + }, +/obj/item/ammo_box/c9mm{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/machinery/light/small/directional/north, +/obj/structure/sign/poster/official/safety_report{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"Vy" = ( +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel/tech, +/area/ship/hallway/central) +"VB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"VD" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/airlock/grunge{ + dir = 4; + name = "Port Hallway" + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/dorm) +"VT" = ( +/obj/structure/closet/emcloset/empty{ + anchored = 1; + can_be_unanchored = 1; + name = "oxygen closet" + }, +/obj/item/tank/internals/oxygen, +/obj/item/tank/internals/oxygen, +/obj/item/tank/internals/oxygen, +/obj/item/tank/internals/oxygen, +/obj/item/tank/internals/oxygen, +/obj/item/tank/internals/plasmaman/full, +/obj/item/tank/internals/plasmaman/full, +/obj/effect/turf_decal/techfloor, +/turf/open/floor/plasteel/tech/grid, +/area/ship/medical) +"VY" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-5" + }, +/turf/open/floor/plating, +/area/ship/maintenance/starboard) +"Wb" = ( +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 9 + }, +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"Wd" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/folder/white{ + pixel_x = -15; + pixel_y = -1 + }, +/obj/item/pen, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/toy/figure/paramedic{ + pixel_x = -13; + pixel_y = 14; + name = "Corpsman action figure" + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/crew/office) +"Wp" = ( +/obj/machinery/door/airlock/hatch{ + name = "Port Hallway" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloorblack, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/port) +"Wv" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "2-9" + }, +/obj/structure/cable{ + icon_state = "2-10" + }, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"WC" = ( +/obj/structure/grille, +/obj/structure/window/plasma/reinforced/plastitanium, +/obj/machinery/door/poddoor/shutters{ + id = "valor_external" + }, +/turf/open/floor/plating, +/area/ship/medical) +"WO" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/opaque/brown/line{ + dir = 9 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"WQ" = ( +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/machinery/airalarm/directional/east, +/obj/machinery/power/port_gen/pacman/super, +/obj/item/stack/sheet/mineral/uranium/twenty, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"WX" = ( +/obj/effect/turf_decal/siding/thinplating, +/obj/effect/turf_decal/trimline/opaque/yellow/line, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"Xf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"Xg" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/machinery/vending/medical/syndicate_access{ + name = "\improper InteqMed Plus" + }, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/mono/dark, +/area/ship/medical) +"Xi" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"Xn" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/turf/open/floor/carpet/black, +/area/ship/crew/dorm) +"Xq" = ( +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20; + pixel_y = 5 + }, +/turf/open/floor/carpet/black, +/area/ship/crew/dorm) +"Xu" = ( +/obj/machinery/suit_storage_unit/inherit, +/obj/item/clothing/suit/space/inteq, +/obj/item/clothing/head/helmet/space/inteq, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plasteel/tech/grid, +/area/ship/medical) +"Xw" = ( +/obj/effect/turf_decal/trimline/opaque/brown/filled/warning, +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/opaque/brown/arrow_ccw{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"Xx" = ( +/obj/structure/closet/secure_closet/medical1, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plasteel/patterned, +/area/ship/crew/office) +"XD" = ( +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"XR" = ( +/obj/effect/turf_decal/siding/thinplating/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/corner{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/port) +"XT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/airlock/public/glass{ + dir = 8; + name = "Canteen" + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/crew/canteen) +"XU" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"Yd" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/line{ + dir = 4 + }, +/obj/machinery/vending/cola/random, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) +"Ye" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/brown/line, +/turf/open/floor/plasteel/dark, +/area/ship/medical) +"Yi" = ( +/turf/open/floor/plasteel/white, +/area/ship/medical) +"Yn" = ( +/obj/machinery/door/airlock/grunge{ + dir = 8; + name = "Restroom" + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/crew/canteen) +"Yt" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"Yu" = ( +/obj/effect/turf_decal/techfloor, +/obj/structure/closet/firecloset, +/obj/machinery/advanced_airlock_controller{ + pixel_x = 28 + }, +/obj/structure/sign/poster/official/safety_internals{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/medical) +"Yx" = ( +/obj/machinery/rnd/production/techfab/department/medical, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/cargo) +"YF" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/corner_techfloor_gray/diagonal, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/ship/maintenance/starboard) +"YL" = ( +/obj/structure/grille, +/obj/structure/window/plasma/reinforced/plastitanium, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "valor_external" + }, +/turf/open/floor/plating, +/area/ship/hallway/central) +"YM" = ( +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/obj/structure/table, +/turf/open/floor/plasteel/dark, +/area/ship/crew/dorm) +"YR" = ( +/obj/item/clothing/under/syndicate/inteq, +/obj/item/clothing/under/syndicate/inteq, +/obj/item/clothing/under/syndicate/inteq, +/obj/item/clothing/under/syndicate/inteq/skirt, +/obj/item/clothing/under/syndicate/inteq/skirt, +/obj/item/clothing/under/syndicate/inteq/skirt, +/obj/item/clothing/shoes/sneakers/black, +/obj/item/clothing/shoes/sneakers/black, +/obj/item/clothing/shoes/sneakers/black, +/obj/item/clothing/shoes/combat, +/obj/item/clothing/shoes/combat, +/obj/item/clothing/shoes/combat, +/obj/structure/closet/wall{ + pixel_y = 28 + }, +/turf/open/floor/carpet/black, +/area/ship/crew/dorm) +"YZ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + dir = 4; + name = "Port Engines" + }, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"Zd" = ( +/obj/machinery/power/smes/shuttle/precharged{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/door/window/eastleft{ + name = "Engine Access" + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"Zf" = ( +/obj/structure/railing{ + dir = 4; + layer = 2.9 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"Zr" = ( +/obj/structure/rack, +/obj/item/roller, +/obj/item/roller{ + pixel_y = 8; + pixel_x = -1 + }, +/obj/item/roller{ + pixel_y = 16; + pixel_x = 1 + }, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/cargo) +"Zu" = ( +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/ship/security) +"ZF" = ( +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"ZG" = ( +/obj/machinery/power/smes/engineering{ + charge = 1e+006 + }, +/obj/effect/turf_decal/borderfloorblack/full, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20 + }, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"ZZ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/carpet/black, +/area/ship/crew/dorm) + +(1,1,1) = {" +xU +MK +MK +MK +zh +Td +Td +Td +Td +Td +Td +Td +Td +Td +Td +Uv +Td +Td +Td +Td +Td +Td +Td +Td +Td +Td +ey +MK +MK +MK +ey +"} +(2,1,1) = {" +cu +Zd +gm +Zd +cu +zh +Td +Td +Td +Td +Td +gi +nc +nc +nc +nc +nc +nc +nc +dG +Td +Td +Td +Td +Td +ey +AD +Af +nd +Af +AD +"} +(3,1,1) = {" +cu +pL +wS +Pb +NT +cu +Td +Td +Td +Td +Td +Nh +Ug +JC +JC +JC +JC +JC +ml +Nh +Td +Td +Td +Td +Td +AD +GA +VY +YF +Uf +AD +"} +(4,1,1) = {" +cu +rX +Wv +wc +eV +cu +Td +Td +Td +Td +Nh +xj +qG +iI +Cb +Cb +Cb +Cb +xz +xj +Nh +Td +Td +Td +Td +AD +pU +ei +HA +lD +AD +"} +(5,1,1) = {" +cu +WQ +Dl +ZG +ar +cu +Td +Td +Td +Td +xj +og +FI +qe +OM +OM +OM +UO +LH +Rz +xj +Td +Td +Td +Td +AD +Dj +Uz +SX +Dw +AD +"} +(6,1,1) = {" +cu +cu +cu +cu +YZ +cu +Td +Td +Td +Td +xj +rL +uS +qe +OM +OM +OM +OM +Kz +RI +xj +Td +Td +Td +Td +AD +ko +AD +AD +AD +AD +"} +(7,1,1) = {" +Zu +sy +BL +Zu +Sf +HC +qL +Td +Td +Td +xj +sZ +uS +qe +OM +OM +OM +OM +Kz +kL +xj +Td +Td +Td +bB +LI +ns +qR +pC +zD +LI +"} +(8,1,1) = {" +Zu +ew +yN +yT +DA +gb +vX +Td +Td +Td +xj +GF +uS +qe +OM +OM +OM +OM +Kz +rL +xj +Td +Td +Td +WC +WO +gp +qR +Yi +bI +LI +"} +(9,1,1) = {" +Zu +kK +LR +MS +FZ +hl +NM +Mw +Td +Td +xj +Ch +FI +qe +OM +OM +OM +OM +vy +fG +xj +Td +Td +Td +WC +dA +Pe +si +hW +AE +LI +"} +(10,1,1) = {" +Zu +Vp +rY +CT +XR +UN +HC +DU +DU +DU +HC +Zf +oz +qe +OM +OM +OM +OM +Kz +ZF +LI +jL +jL +jL +LI +PL +bJ +LI +LI +LI +LI +"} +(11,1,1) = {" +Zu +Rh +Rh +Zu +uB +ua +Wp +CC +ky +CC +DR +Qd +FY +kH +Mn +Ea +jG +Mn +de +KU +zI +yK +OV +yK +aW +Ui +gU +nK +Pg +eU +LI +"} +(12,1,1) = {" +tZ +BC +jN +lN +gh +zs +HC +HC +HC +HC +HC +OT +JS +jj +qt +Kp +Kn +dQ +Fa +Ft +LI +LI +LI +LI +LI +su +rO +qR +Yi +bI +LI +"} +(13,1,1) = {" +tZ +Xx +Gm +Wd +Hg +tS +HC +MR +vh +fN +xj +tj +te +fe +Ok +Xf +as +HL +ec +xg +xj +Zr +Re +OK +LI +EE +oy +qR +CF +LJ +LI +"} +(14,1,1) = {" +tZ +mG +Qo +tZ +An +Sd +HC +Oj +XU +XU +xj +cI +Jd +qA +UQ +hm +Cc +JJ +zT +Md +xj +XU +XU +cE +LI +LI +dN +LI +LI +LI +LI +"} +(15,1,1) = {" +tZ +fO +PJ +tZ +Qc +AP +HC +bx +ss +Sh +Hw +ux +ct +nx +AM +NG +dO +yy +bh +nX +zK +Yt +Yt +IL +LI +zS +pt +vn +DG +lv +LI +"} +(16,1,1) = {" +tZ +bv +wL +ME +iN +xl +HC +OR +gq +LL +Nh +Rc +bF +Hi +aU +bN +tH +Ff +jQ +qX +xj +Yx +Io +mt +LI +vI +Ye +mw +mw +HB +LI +"} +(17,1,1) = {" +oO +tZ +tZ +tZ +VD +Um +DT +DT +DT +DT +DT +DT +DT +DT +NE +DT +nz +DT +Tw +Tw +DT +DT +DT +DT +DT +Xg +Uj +dl +Jn +LI +bB +"} +(18,1,1) = {" +Td +Um +Ie +EK +ty +dp +DT +Vy +qk +Ls +DT +fE +sJ +xH +EJ +KW +QG +zG +Qw +jU +DT +kW +qk +Vy +DT +fj +Qn +RF +Ve +WC +Td +"} +(19,1,1) = {" +Td +rc +YM +mB +ma +CH +jk +lc +lc +lc +ht +jw +GR +jp +Wb +pj +pz +Sq +GR +hj +id +lc +lc +lc +bR +XD +NZ +wI +wI +WC +Td +"} +(20,1,1) = {" +Td +rc +aa +mI +gn +qZ +DT +kG +kG +kG +Tw +Lb +lE +wj +KB +ix +Ed +zO +lE +WX +DT +jT +kG +kG +DT +zA +mx +gl +sc +LI +Td +"} +(21,1,1) = {" +Td +Um +nU +uA +Pk +Ei +DT +YL +YL +BV +DT +mZ +Yd +hN +AH +se +uo +Ik +Od +ie +DT +YL +YL +YL +DT +LI +zE +LI +LI +LI +Td +"} +(22,1,1) = {" +Td +Um +Um +du +Um +Um +Um +Td +Td +Td +HK +HK +ka +ka +XT +HK +pa +HK +HK +HK +HK +Td +Td +Td +LI +AV +ap +NI +Dx +LI +Td +"} +(23,1,1) = {" +Td +Um +ln +aC +Xq +Bc +Um +Td +Td +Td +HK +dM +Cr +wA +vi +iQ +pO +cj +QO +lI +HK +Td +Td +Td +LI +xJ +xp +IB +xs +LI +Td +"} +(24,1,1) = {" +Td +rc +eZ +Sv +yu +om +rc +Ct +Td +Td +HK +Jh +Av +VB +KC +zL +Us +Tu +ET +Go +HK +Td +Td +Ct +WC +eN +cW +Fs +eN +WC +Td +"} +(25,1,1) = {" +Td +rc +Sl +ZZ +hS +TW +rc +Ct +Ct +Td +HK +IM +Oh +Bh +FJ +zL +EL +Qk +Xi +dk +HK +Td +Ct +Ct +WC +KD +wt +NA +KD +WC +Td +"} +(26,1,1) = {" +Td +Um +YR +TC +Xn +Mq +rc +Ct +Ct +Ct +HK +ah +mj +IN +nB +gt +oL +IN +wV +yb +HK +Ct +Ct +Ct +LI +EM +IA +Xw +OC +LI +Td +"} +(27,1,1) = {" +Td +Um +RA +mH +Mt +FF +Um +Td +Ct +Ct +HK +KV +mz +IN +KH +FH +El +un +Xi +Km +HK +Ct +Ct +Td +LI +pd +xI +sz +vx +LI +Td +"} +(28,1,1) = {" +Td +PU +EY +EY +Ki +EY +EY +Td +Td +Ct +HK +Jh +Av +Av +Jz +UC +EL +IQ +ET +TS +HK +Ct +Td +Td +LI +QE +mp +xy +LI +bB +Td +"} +(29,1,1) = {" +Td +Td +EY +pA +tz +hw +EY +Td +Td +Td +HK +Gd +cZ +xb +OD +TL +EA +xb +Jt +Gd +HK +Td +Td +Td +LI +LI +DL +LI +LI +Td +Td +"} +(30,1,1) = {" +Td +Td +EY +wD +Dm +vK +EY +Td +Td +ka +HK +dI +nk +nk +nk +em +nk +nk +nk +Yn +HK +HK +Td +Td +LI +Xu +qW +VT +LI +Td +Td +"} +(31,1,1) = {" +Td +Td +EY +HN +jR +fa +EY +Td +Td +HK +Nn +ni +nk +AG +ze +ND +Nu +kv +nk +nZ +HQ +HK +Td +Td +LI +oC +md +Yu +LI +Td +Td +"} +(32,1,1) = {" +Td +Td +PU +EY +EY +EY +PU +Td +Td +HK +AO +QQ +nk +bS +Am +KY +Kh +fQ +nk +wa +Rj +HK +Td +Td +bB +LI +gZ +LI +bB +Td +Td +"} +(33,1,1) = {" +Td +Td +Td +Td +Td +Td +Td +Td +Td +ka +HK +tk +nk +lW +HT +ej +CV +zr +nk +qQ +HK +ka +Td +Td +Td +Td +Td +Td +Td +Td +Td +"} +(34,1,1) = {" +Td +Td +Td +Td +Td +Td +Td +Td +Td +Td +ka +HK +nk +sM +Ab +DD +eM +Ko +nk +HK +ka +Td +Td +Td +Td +Td +Td +Td +Td +Td +Td +"} +(35,1,1) = {" +Td +Td +Td +Td +Td +Td +Td +Td +Td +Td +Td +Td +jS +nk +zi +OE +fK +nk +jS +Td +Td +Td +Td +Td +Td +Td +Td +Td +Td +Td +Td +"} +(36,1,1) = {" +Td +Td +Td +Td +Td +Td +Td +Td +Td +Td +Td +Td +Td +nk +HE +HE +HE +nk +Td +Td +Td +Td +Td +Td +Td +Td +Td +Td +Td +Td +Td +"} diff --git a/_maps/shuttles/inteq/inteq_vaquero.dmm b/_maps/shuttles/inteq/inteq_vaquero.dmm index e2232f1a4661..e65b103e6ebe 100644 --- a/_maps/shuttles/inteq/inteq_vaquero.dmm +++ b/_maps/shuttles/inteq/inteq_vaquero.dmm @@ -936,6 +936,7 @@ /obj/effect/turf_decal/corner/opaque/yellow{ dir = 1 }, +/obj/item/clothing/head/inteq_peaked, /turf/open/floor/plasteel/dark, /area/ship/bridge) "mE" = ( diff --git a/_maps/shuttles/minutemen/minutemen_asclepius.dmm b/_maps/shuttles/minutemen/minutemen_asclepius.dmm index b2d763063f39..a4dcffa117dc 100644 --- a/_maps/shuttles/minutemen/minutemen_asclepius.dmm +++ b/_maps/shuttles/minutemen/minutemen_asclepius.dmm @@ -3752,7 +3752,7 @@ pixel_x = 1; pixel_y = 1 }, -/obj/item/book/manual/wiki/engineering_guide{ +/obj/item/book/manual/wiki/engineering{ pixel_x = 5; pixel_y = 2 }, @@ -4064,7 +4064,7 @@ /obj/item/clothing/head/helmet/bulletproof/minutemen, /obj/item/clothing/glasses/hud/security/sunglasses/eyepatch, /obj/item/storage/belt/security, -/obj/item/gun/ballistic/automatic/pistol/m1911, +/obj/item/gun/ballistic/automatic/pistol/candor, /obj/item/ammo_box/magazine/m45/rubber, /obj/item/ammo_box/magazine/m45/rubber{ pixel_x = 3 @@ -4436,13 +4436,13 @@ /obj/item/clothing/gloves/color/latex/nitrile, /obj/item/healthanalyzer/advanced, /obj/item/clothing/neck/cloak/cmo, -/obj/item/gun/ballistic/revolver/nagant, -/obj/item/ammo_box/n762_clip, -/obj/item/ammo_box/n762_clip, +/obj/item/gun/ballistic/revolver/shadow, +/obj/item/ammo_box/c45_speedloader, +/obj/item/ammo_box/c45_speedloader, /obj/item/clothing/suit/armor/vest/capcarapace/minutemen, /obj/item/reagent_containers/hypospray/CMO, -/obj/item/ammo_box/n762, -/obj/item/ammo_box/n762, +/obj/item/ammo_box/c45_speedloader, +/obj/item/ammo_box/c45_speedloader, /turf/open/floor/carpet/royalblue, /area/ship/bridge) "NY" = ( diff --git a/_maps/shuttles/minutemen/minutemen_cepheus.dmm b/_maps/shuttles/minutemen/minutemen_cepheus.dmm index 9686aff53035..2faae373ecaf 100644 --- a/_maps/shuttles/minutemen/minutemen_cepheus.dmm +++ b/_maps/shuttles/minutemen/minutemen_cepheus.dmm @@ -189,7 +189,7 @@ pixel_x = -4; pixel_y = 1 }, -/obj/item/book/manual/wiki/engineering_singulo_tesla{ +/obj/item/book/manual/wiki/engineering{ pixel_x = 5; pixel_y = 14 }, @@ -431,8 +431,8 @@ /obj/item/clothing/glasses/hud/security/sunglasses/eyepatch, /obj/item/clothing/shoes/cowboy/white, /obj/item/storage/belt/sabre, -/obj/item/gun/ballistic/revolver/nagant, -/obj/item/ammo_box/n762_clip, +/obj/item/gun/ballistic/revolver/shadow, +/obj/item/ammo_box/c45_speedloader, /obj/item/clothing/suit/armor/vest/capcarapace/minutemen, /turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) @@ -1911,21 +1911,21 @@ dir = 4; layer = 4.1 }, -/obj/item/gun/ballistic/automatic/pistol/m1911{ +/obj/item/gun/ballistic/automatic/pistol/candor{ pixel_y = 3 }, -/obj/item/gun/ballistic/automatic/pistol/m1911{ +/obj/item/gun/ballistic/automatic/pistol/candor{ pixel_y = 3 }, /obj/machinery/light/directional/west, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/item/gun/ballistic/automatic/pistol/m1911{ +/obj/item/gun/ballistic/automatic/pistol/candor{ pixel_y = 3 }, /obj/structure/sign/poster/contraband/twelve_gauge{ pixel_y = 32 }, -/obj/item/gun/ballistic/shotgun/riot, +/obj/item/gun/ballistic/shotgun/hellfire, /turf/open/floor/plasteel/tech, /area/ship/security) "tX" = ( @@ -3036,10 +3036,6 @@ /area/ship/engineering/atmospherics) "FC" = ( /obj/structure/table, -/obj/item/book/manual/wiki/security_space_law{ - pixel_x = 9; - pixel_y = 4 - }, /obj/item/flashlight/lamp{ pixel_x = -7; pixel_y = 1 @@ -4108,15 +4104,9 @@ /obj/item/ammo_box/magazine/m45{ pixel_x = 6 }, -/obj/item/storage/box/rubbershot{ - pixel_x = 3; - pixel_y = -3 - }, +/obj/item/ammo_box/a12g/rubbershot, /obj/item/ammo_box/magazine/cm15_mag, -/obj/item/storage/box/rubbershot{ - pixel_x = 3; - pixel_y = -3 - }, +/obj/item/ammo_box/a12g/rubbershot, /turf/open/floor/plasteel/tech/grid, /area/ship/security) "RN" = ( @@ -4338,7 +4328,7 @@ /obj/effect/turf_decal/steeldecal/steel_decals_central2{ pixel_y = 2 }, -/obj/item/book/manual/wiki/robotics_cyborgs{ +/obj/item/book/manual/wiki/robotics{ pixel_x = -3; pixel_y = 3 }, diff --git a/_maps/shuttles/minutemen/minutemen_corvus.dmm b/_maps/shuttles/minutemen/minutemen_corvus.dmm index 36e4581f8dcd..a82b0630b66a 100644 --- a/_maps/shuttles/minutemen/minutemen_corvus.dmm +++ b/_maps/shuttles/minutemen/minutemen_corvus.dmm @@ -69,11 +69,11 @@ dir = 4 }, /obj/structure/extinguisher_cabinet/directional/north, -/obj/item/gun/ballistic/automatic/pistol/m1911{ +/obj/item/gun/ballistic/automatic/pistol/candor{ pixel_x = 2; pixel_y = 5 }, -/obj/item/gun/ballistic/automatic/pistol/m1911, +/obj/item/gun/ballistic/automatic/pistol/candor, /obj/item/flamethrower/full/tank, /obj/item/gun/ballistic/automatic/smg/cm5, /turf/open/floor/plasteel/dark, diff --git a/_maps/shuttles/minutemen/minutemen_vela.dmm b/_maps/shuttles/minutemen/minutemen_vela.dmm index ab5b6c7e8a1f..2f39a367d761 100644 --- a/_maps/shuttles/minutemen/minutemen_vela.dmm +++ b/_maps/shuttles/minutemen/minutemen_vela.dmm @@ -562,7 +562,7 @@ /obj/item/clothing/suit/toggle/lawyer/minutemen, /obj/item/clothing/shoes/combat, /obj/item/clothing/glasses/sunglasses, -/obj/item/gun/ballistic/automatic/pistol/m1911, +/obj/item/gun/ballistic/automatic/pistol/candor, /obj/item/clothing/head/cowboy/sec/minutemen, /obj/item/radio/headset/minutemen/alt/captain, /obj/item/storage/backpack, @@ -5893,10 +5893,6 @@ }, /obj/structure/table, /obj/machinery/firealarm/directional/south, -/obj/item/book/manual/wiki/security_space_law{ - pixel_x = 9; - pixel_y = 4 - }, /obj/item/flashlight/lamp{ pixel_x = -7; pixel_y = 4 @@ -8315,8 +8311,8 @@ /area/ship/crew/office) "Th" = ( /obj/structure/guncase, -/obj/item/gun/ballistic/automatic/pistol/m1911/no_mag, -/obj/item/gun/ballistic/automatic/pistol/m1911/no_mag, +/obj/item/gun/ballistic/automatic/pistol/candor/no_mag, +/obj/item/gun/ballistic/automatic/pistol/candor/no_mag, /obj/item/gun/ballistic/automatic/smg/cm5{ spawnwithmagazine = 0 }, @@ -9115,7 +9111,7 @@ /area/ship/hallway/fore) "XC" = ( /obj/structure/table, -/obj/item/book/manual/wiki/engineering_guide, +/obj/item/book/manual/wiki/engineering, /turf/open/floor/wood, /area/ship/hallway/central) "XJ" = ( diff --git a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm index 669e1df22ab8..935f0a2595d3 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm @@ -1365,7 +1365,7 @@ pixel_x = 6; pixel_y = -3 }, -/obj/item/book/manual/wiki/engineering_guide{ +/obj/item/book/manual/wiki/engineering{ pixel_x = -3; pixel_y = -8 }, @@ -3506,12 +3506,6 @@ }, /turf/open/floor/plasteel/tech, /area/ship/engineering/electrical) -"mW" = ( -/obj/structure/guncase, -/obj/item/gun/ballistic/automatic/pistol/m1911/no_mag, -/obj/item/gun/ballistic/automatic/pistol/m1911/no_mag, -/turf/open/floor/plasteel/tech, -/area/ship/cargo/office) "mX" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/purple/hidden, @@ -4314,27 +4308,6 @@ }, /turf/open/floor/plasteel/white, /area/ship/medical) -"pS" = ( -/obj/structure/closet/wall/orange{ - name = "Pilot's Locker"; - pixel_y = 28 - }, -/obj/item/clothing/under/rank/security/officer/military/eng, -/obj/item/clothing/suit/jacket/leather/duster, -/obj/item/clothing/suit/jacket/miljacket, -/obj/item/clothing/mask/bandana/skull, -/obj/item/clothing/suit/armor/vest/marine, -/obj/item/instrument/piano_synth/headphones/spacepods{ - pixel_x = -5; - pixel_y = -1 - }, -/obj/item/clothing/neck/shemagh, -/obj/item/reagent_containers/spray/pepper{ - pixel_x = 7; - pixel_y = -6 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hangar) "pT" = ( /obj/machinery/atmospherics/pipe/layer_manifold{ dir = 1 @@ -5851,6 +5824,26 @@ }, /turf/open/floor/plasteel/elevatorshaft, /area/ship/science/robotics) +"vb" = ( +/obj/structure/closet/wall/orange{ + name = "Pilot's Locker"; + pixel_y = 28 + }, +/obj/item/clothing/under/rank/security/officer/military/eng, +/obj/item/clothing/suit/jacket/leather/duster, +/obj/item/clothing/suit/jacket/miljacket, +/obj/item/clothing/suit/armor/vest/marine, +/obj/item/instrument/piano_synth/headphones/spacepods{ + pixel_x = -5; + pixel_y = -1 + }, +/obj/item/clothing/neck/shemagh, +/obj/item/reagent_containers/spray/pepper{ + pixel_x = 7; + pixel_y = -6 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/hangar) "vg" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 8 @@ -6508,7 +6501,7 @@ /obj/item/survey_handheld{ pixel_x = -2 }, -/obj/item/book/manual/wiki/robotics_cyborgs{ +/obj/item/book/manual/wiki/robotics{ pixel_y = -1; pixel_x = 5 }, @@ -9197,6 +9190,27 @@ }, /turf/open/floor/wood, /area/ship/crew/dorm/dormtwo) +"HI" = ( +/obj/structure/closet/wall/orange{ + name = "Pilot's Locker"; + pixel_y = 28 + }, +/obj/item/clothing/under/rank/security/officer/military/eng, +/obj/item/clothing/suit/jacket/leather/duster, +/obj/item/clothing/suit/jacket/miljacket, +/obj/item/clothing/mask/bandana/skull, +/obj/item/clothing/suit/armor/vest/marine, +/obj/item/instrument/piano_synth/headphones/spacepods{ + pixel_x = -5; + pixel_y = -1 + }, +/obj/item/clothing/neck/shemagh, +/obj/item/reagent_containers/spray/pepper{ + pixel_x = 7; + pixel_y = -6 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/hangar) "HO" = ( /obj/effect/turf_decal/techfloor{ dir = 4 @@ -9367,26 +9381,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/tech, /area/ship/engineering/electrical) -"Io" = ( -/obj/structure/closet/wall/orange{ - name = "Pilot's Locker"; - pixel_y = 28 - }, -/obj/item/clothing/under/rank/security/officer/military/eng, -/obj/item/clothing/suit/jacket/leather/duster, -/obj/item/clothing/suit/jacket/miljacket, -/obj/item/clothing/suit/armor/vest/marine, -/obj/item/instrument/piano_synth/headphones/spacepods{ - pixel_x = -5; - pixel_y = -1 - }, -/obj/item/clothing/neck/shemagh, -/obj/item/reagent_containers/spray/pepper{ - pixel_x = 7; - pixel_y = -6 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hangar) "Ip" = ( /obj/structure/table, /obj/item/reagent_containers/food/snacks/mint, @@ -11619,6 +11613,12 @@ /obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/ship/hallway/aft) +"Rs" = ( +/obj/structure/guncase, +/obj/item/gun/ballistic/automatic/pistol/candor/no_mag, +/obj/item/gun/ballistic/automatic/pistol/candor/no_mag, +/turf/open/floor/plasteel/tech, +/area/ship/cargo/office) "Ru" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 4 @@ -11794,10 +11794,6 @@ /area/ship/engineering/electrical) "Se" = ( /obj/structure/table/reinforced, -/obj/item/book/manual/wiki/security_space_law{ - pixel_x = 5; - pixel_y = 2 - }, /obj/item/cigbutt/cigarbutt{ pixel_x = 8; pixel_y = -1 @@ -12200,10 +12196,6 @@ /area/ship/engineering/engine) "TE" = ( /obj/structure/table, -/obj/item/book/manual/wiki/security_space_law{ - pixel_x = -5; - pixel_y = 16 - }, /obj/machinery/light/directional/west{ light_color = "#e8eaff" }, @@ -13955,10 +13947,6 @@ /area/ship/crew/canteen) "ZX" = ( /obj/structure/table/reinforced, -/obj/item/book/manual/wiki/security_space_law{ - pixel_x = 4; - pixel_y = 2 - }, /obj/machinery/door/window/brigdoor/southright, /obj/machinery/door/window/brigdoor/southright{ dir = 1; @@ -15417,7 +15405,7 @@ uQ uQ uQ uQ -pS +HI JE gN MI @@ -15454,9 +15442,9 @@ Ob Zg mk lv -mW +Rs Zg -Io +vb zC EO fv diff --git a/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm index 8f7fb343e1a4..d6cc2ca80968 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm @@ -70,16 +70,6 @@ }, /turf/open/floor/plasteel/tech/grid, /area/ship/maintenance/port) -"aC" = ( -/obj/structure/window/reinforced/spawner{ - dir = 4 - }, -/obj/machinery/conveyor{ - id = "prison_scrap"; - dir = 1 - }, -/turf/open/floor/plating, -/area/ship/engineering/engine) "aE" = ( /obj/structure/table, /obj/machinery/door/window, @@ -1696,7 +1686,7 @@ /area/ship/engineering/electrical) "jC" = ( /obj/structure/rack, -/obj/item/gun/ballistic/shotgun/lethal, +/obj/item/gun/ballistic/shotgun/brimstone, /obj/item/storage/box/lethalshot, /obj/effect/turf_decal/siding/red{ dir = 10 @@ -3721,6 +3711,16 @@ }, /turf/open/floor/plasteel/tech/grid, /area/ship/maintenance/starboard) +"vT" = ( +/obj/structure/window/reinforced/spawner{ + dir = 4 + }, +/obj/machinery/conveyor{ + id = "prison_scrap"; + dir = 1 + }, +/turf/open/floor/plating, +/area/ship/engineering/engine) "wa" = ( /obj/structure/sink/kitchen{ dir = 8; @@ -5775,7 +5775,7 @@ /area/ship/maintenance/port) "Ht" = ( /obj/structure/rack, -/obj/item/gun/ballistic/shotgun/riot, +/obj/item/gun/ballistic/shotgun/hellfire, /obj/item/storage/box/rubbershot, /obj/item/clothing/suit/armor/riot, /obj/item/shield/riot, @@ -9127,7 +9127,7 @@ yz tY jS TO -aC +vT Kk wm Jy diff --git a/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm index c33cb8ff63ac..ed46e7e7ef1e 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm @@ -183,12 +183,15 @@ /obj/item/clothing/suit/armor/vest/security, /obj/item/clothing/mask/gas/sechailer, /obj/item/gps, -/obj/item/gun/ballistic/derringer, +/obj/item/gun/ballistic/automatic/pistol/commander, /obj/structure/railing{ dir = 4 }, -/obj/item/ammo_box/c38_box, -/obj/item/ammo_box/c38_box, +/obj/item/ammo_box/c9mm, +/obj/item/ammo_box/c9mm, +/obj/item/ammo_box/magazine/co9mm, +/obj/item/ammo_box/magazine/co9mm, +/obj/item/storage/belt/security/webbing, /turf/open/floor/wood, /area/ship/security) "bD" = ( @@ -961,12 +964,10 @@ /turf/open/floor/plasteel/white, /area/ship/hallway/starboard) "iX" = ( -/obj/machinery/mineral/ore_redemption{ - dir = 8 - }, /obj/effect/turf_decal/siding/yellow{ dir = 10 }, +/obj/structure/ore_box, /turf/open/floor/plasteel/dark, /area/ship/hallway/port) "iZ" = ( @@ -3132,6 +3133,12 @@ pixel_x = 7; pixel_y = -20 }, +/obj/item/gun/ballistic/automatic/pistol/commander, +/obj/item/ammo_box/c9mm, +/obj/item/ammo_box/c9mm, +/obj/item/ammo_box/c9mm/rubbershot, +/obj/item/ammo_box/magazine/co9mm, +/obj/item/ammo_box/magazine/co9mm, /turf/open/floor/wood, /area/ship/crew/dorm) "Hd" = ( @@ -3650,6 +3657,10 @@ }, /turf/open/floor/plasteel/tech, /area/ship/engineering) +"MD" = ( +/obj/item/disk/design_disk/ammo_c9mm, +/turf/open/floor/plating, +/area/ship/engineering) "MI" = ( /obj/machinery/airalarm/directional/north, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -3985,6 +3996,9 @@ /obj/item/robot_suit, /obj/structure/closet/crate/engineering, /obj/effect/turf_decal/industrial/hatch/orange, +/obj/item/stock_parts/cell/high, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, /turf/open/floor/plating, /area/ship/engineering) "Qu" = ( @@ -4181,8 +4195,15 @@ pixel_x = 5 }, /obj/item/pen/fountain{ + pixel_x = -4; + pixel_y = 7 + }, +/obj/machinery/recharger{ pixel_x = -4 }, +/obj/item/stamp/captain{ + pixel_x = 7 + }, /turf/open/floor/plasteel/dark, /area/ship/bridge) "Ur" = ( @@ -4401,10 +4422,9 @@ /turf/open/floor/plasteel/dark, /area/ship/hallway/central) "WF" = ( -/obj/structure/ore_box, -/obj/machinery/light/dim/directional/west, -/turf/open/floor/engine/hull, -/area/ship/external) +/obj/item/radio/intercom/wideband, +/turf/closed/wall/r_wall, +/area/ship/bridge) "WG" = ( /obj/machinery/telecomms/server/presets/nanotrasen{ autolinkers = list("nanotrasen","hub"); @@ -5158,7 +5178,7 @@ jA zW Tz LQ -aP +MD aP xq Wp @@ -5517,7 +5537,7 @@ gg zW zW zW -WF +QV jA KQ wp @@ -5941,7 +5961,7 @@ Lk mn cv lW -Lk +WF VQ zW zW diff --git a/_maps/shuttles/pirate/pirate_ember.dmm b/_maps/shuttles/pirate/pirate_ember.dmm index f114c64f153f..cff10d5446b4 100644 --- a/_maps/shuttles/pirate/pirate_ember.dmm +++ b/_maps/shuttles/pirate/pirate_ember.dmm @@ -2894,7 +2894,7 @@ pixel_y = -4; pixel_x = 3 }, -/obj/item/gun/ballistic/rifle/boltaction/polymer{ +/obj/item/gun/ballistic/rifle/polymer{ pixel_y = -8 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -5596,11 +5596,11 @@ /area/ship/engineering/incinerator) "Bx" = ( /obj/structure/table/reinforced, -/obj/item/gun/ballistic/revolver/nagant{ +/obj/item/gun/ballistic/revolver/shadow{ pixel_y = 6 }, -/obj/item/gun/ballistic/revolver/nagant, -/obj/item/gun/ballistic/revolver/nagant{ +/obj/item/gun/ballistic/revolver/shadow, +/obj/item/gun/ballistic/revolver/shadow{ pixel_y = -5 }, /obj/effect/turf_decal/techfloor{ @@ -5614,7 +5614,7 @@ /area/ship/security/armory) "By" = ( /obj/structure/guncase, -/obj/item/gun/ballistic/automatic/smg/thompson{ +/obj/item/gun/ballistic/automatic/smg/mini_uzi{ pixel_y = -3 }, /obj/effect/turf_decal/techfloor{ @@ -5623,7 +5623,7 @@ /obj/structure/railing{ dir = 1 }, -/obj/item/gun/ballistic/rifle/boltaction{ +/obj/item/gun/ballistic/rifle/illestren{ pixel_y = 5 }, /turf/open/floor/plasteel/dark, @@ -8676,7 +8676,7 @@ /obj/structure/closet/crate/trashcart, /obj/item/trash/candy, /obj/effect/decal/cleanable/vomit/old, -/obj/item/book/manual/wiki/chemistry{ +/obj/item/book/manual/wiki/ghetto_chemistry{ pixel_x = 6; pixel_y = -5 }, @@ -8985,10 +8985,10 @@ /obj/effect/turf_decal/techfloor/hole{ dir = 8 }, -/obj/item/ammo_box/n762{ +/obj/item/ammo_box/c45_speedloader{ pixel_y = -3 }, -/obj/item/ammo_box/n762{ +/obj/item/ammo_box/c45_speedloader{ pixel_y = -1; pixel_x = 1 }, @@ -8999,20 +8999,20 @@ pixel_y = 2; pixel_x = -4 }, -/obj/item/ammo_box/magazine/smgm45/drum{ +/obj/item/ammo_box/magazine/uzim9mm{ pixel_y = -4 }, -/obj/item/ammo_box/magazine/smgm45, -/obj/item/ammo_box/n762{ +/obj/item/ammo_box/magazine/uzim9mm, +/obj/item/ammo_box/c45_speedloader{ pixel_y = -3 }, -/obj/item/ammo_box/n762{ +/obj/item/ammo_box/c45_speedloader{ pixel_y = -5; pixel_x = -1 }, -/obj/item/ammo_box/a762, -/obj/item/ammo_box/a762, -/obj/item/storage/toolbox/ammo/a762{ +/obj/item/ammo_box/magazine/illestren_a850r, +/obj/item/ammo_box/magazine/illestren_a850r, +/obj/item/storage/toolbox/ammo/a850r{ pixel_y = -6; pixel_x = 5 }, @@ -9360,7 +9360,7 @@ /obj/structure/table/reinforced{ color = "#c1b6a5" }, -/obj/item/book/manual/wiki/engineering_hacking{ +/obj/item/book/manual/wiki/hacking{ pixel_x = 5; pixel_y = 4 }, diff --git a/_maps/shuttles/roumain/srm_glaive.dmm b/_maps/shuttles/roumain/srm_glaive.dmm index 5c7f90c25492..4b5929d9b2ac 100644 --- a/_maps/shuttles/roumain/srm_glaive.dmm +++ b/_maps/shuttles/roumain/srm_glaive.dmm @@ -359,8 +359,8 @@ pixel_y = 2 }, /obj/item/kitchen/knife/combat, -/obj/item/gun/ballistic/revolver/nagant, -/obj/item/ammo_box/n762, +/obj/item/gun/ballistic/revolver/montagne, +/obj/item/ammo_box/c38, /obj/structure/closet/secure_closet/montagnes, /obj/item/disk/holodisk/roumain, /obj/item/clothing/shoes/cowboy/black, @@ -903,7 +903,7 @@ /obj/item/storage/backpack/cultpack, /obj/item/flashlight/lantern, /obj/item/kitchen/knife/combat/survival, -/obj/item/gun/ballistic/shotgun/winchester, +/obj/item/gun/ballistic/shotgun/flamingarrow, /obj/structure/closet/secure_closet/hunter, /obj/item/lighter, /obj/item/ammo_box/c38_box, @@ -979,7 +979,7 @@ /obj/item/borg/upgrade/modkit/indoors, /obj/item/gun/energy/kinetic_accelerator, /obj/item/storage/bag/ore, -/obj/item/gun/ballistic/shotgun/winchester/mk1, +/obj/item/gun/ballistic/shotgun/flamingarrow/bolt, /obj/item/shovel, /obj/item/gps/mining, /obj/structure/closet/secure_closet/miningcloset, @@ -2835,7 +2835,7 @@ }, /obj/item/circuitboard/machine/rdserver, /obj/item/circuitboard/machine/autolathe, -/obj/item/disk/design_disk/ammo_n762, +/obj/item/ammo_box/c38_box, /obj/item/disk/design_disk/ammo_1911, /obj/item/circuitboard/machine/protolathe/department/ballistics, /obj/item/circuitboard/computer/rdconsole, @@ -3298,7 +3298,7 @@ /obj/item/storage/backpack/cultpack, /obj/item/flashlight/lantern, /obj/item/kitchen/knife/combat/survival, -/obj/item/gun/ballistic/shotgun/winchester, +/obj/item/gun/ballistic/shotgun/flamingarrow, /obj/structure/closet/secure_closet/hunter, /obj/item/lighter, /obj/item/ammo_box/c38_box, diff --git a/_maps/shuttles/solgov/solgov_paracelsus.dmm b/_maps/shuttles/solgov/solgov_paracelsus.dmm index 656a6e1645bf..70bfabe5d26b 100644 --- a/_maps/shuttles/solgov/solgov_paracelsus.dmm +++ b/_maps/shuttles/solgov/solgov_paracelsus.dmm @@ -38,11 +38,18 @@ /turf/open/floor/plasteel/tech/techmaint, /area/ship/maintenance/starboard) "aF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/cable{ icon_state = "1-4" }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/open/floor/wood/ebony, /area/ship/crew/dorm) "aG" = ( @@ -62,6 +69,7 @@ /obj/effect/turf_decal/borderfloorblack{ dir = 4 }, +/obj/machinery/computer/helm/viewscreen/directional/east, /turf/open/floor/plasteel/patterned, /area/ship/cargo/office) "be" = ( @@ -157,6 +165,7 @@ /obj/structure/chair/wood{ dir = 1 }, +/obj/machinery/computer/helm/viewscreen/directional/south, /turf/open/floor/wood/ebony, /area/ship/crew/crewtwo) "bD" = ( @@ -194,6 +203,8 @@ /obj/structure/chair/sofa/right{ dir = 1 }, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, /turf/open/floor/carpet/royalblue, /area/ship/crew/canteen) "co" = ( @@ -295,8 +306,18 @@ "cN" = ( /obj/effect/turf_decal/siding/wood, /obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/open/floor/wood, /area/ship/crew/canteen) "cO" = ( @@ -743,7 +764,6 @@ /turf/open/floor/plasteel/tech/techmaint, /area/ship/maintenance/port) "hM" = ( -/obj/structure/closet/cabinet, /obj/effect/decal/cleanable/dirt/dust, /obj/item/clothing/neck/stripedsolgovscarf, /obj/item/clothing/neck/stripedsolgovscarf, @@ -764,6 +784,8 @@ /obj/item/clothing/suit/solgov/suit, /obj/item/clothing/suit/hooded/wintercoat/solgov, /obj/item/clothing/suit/hooded/wintercoat/solgov, +/obj/item/toy/plush/blahaj, +/obj/structure/closet/cabinet, /turf/open/floor/wood/ebony, /area/ship/crew/dorm) "if" = ( @@ -1278,16 +1300,10 @@ /turf/open/floor/plating, /area/ship/medical/surgery) "ns" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 9 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/turf/open/floor/wood, +/turf/open/floor/wood/ebony, /area/ship/crew/canteen) "nt" = ( /obj/effect/turf_decal/borderfloorblack{ @@ -1766,9 +1782,12 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/door/airlock/medical{ name = "Chemistry"; - req_one_access = list(5,45); + req_one_access = list(5,10,45); id_tag = "sg_par_chem_bolt" }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, /turf/open/floor/plasteel/dark, /area/ship/medical) "rz" = ( @@ -1823,19 +1842,21 @@ /obj/structure/cable{ icon_state = "2-8" }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 + }, /turf/open/floor/wood, /area/ship/crew/dorm) "rT" = ( /obj/structure/chair/sofa{ dir = 1 }, +/obj/machinery/computer/helm/viewscreen/directional/south, /turf/open/floor/carpet/royalblue, /area/ship/crew/canteen) "rY" = ( @@ -1871,7 +1892,9 @@ dir = 8 }, /obj/structure/closet/secure_closet/wall{ - pixel_y = 28 + pixel_y = 28; + name = "navigational supplies"; + req_access_txt = "19" }, /obj/item/gps, /obj/item/binoculars, @@ -2393,7 +2416,6 @@ /area/ship/crew/canteen) "xp" = ( /obj/effect/decal/cleanable/dirt/dust, -/obj/structure/railing/wood, /turf/open/floor/wood/ebony, /area/ship/crew/canteen) "xw" = ( @@ -2560,19 +2582,12 @@ /turf/open/floor/plasteel/tech/techmaint, /area/ship/maintenance/starboard) "yY" = ( -/obj/machinery/door/airlock/solgov/glass{ - dir = 4; - name = "Cafeteria" - }, /obj/effect/turf_decal/industrial/warning{ dir = 4 }, /obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/machinery/door/firedoor/border_only{ dir = 8 }, @@ -2585,6 +2600,13 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, +/obj/machinery/door/airlock/solgov/glass{ + dir = 4; + name = "Cafeteria" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel/dark, /area/ship/crew/dorm) "zc" = ( @@ -2740,6 +2762,10 @@ "AX" = ( /turf/open/floor/wood/ebony, /area/ship/crew/crewtwo) +"AZ" = ( +/obj/structure/bookcase/random, +/turf/open/floor/wood/ebony, +/area/ship/crew/dorm) "Ba" = ( /obj/effect/turf_decal/techfloor/corner{ dir = 8 @@ -2834,16 +2860,19 @@ /obj/structure/railing/wood{ dir = 8 }, -/obj/structure/closet/wall/red{ - dir = 1; - pixel_y = -28 - }, /obj/item/gun/ballistic/automatic/pistol/solgov, /obj/item/gun/ballistic/automatic/pistol/solgov, /obj/item/ammo_box/magazine/pistol556mm, /obj/item/ammo_box/magazine/pistol556mm, /obj/item/ammo_box/magazine/pistol556mm, /obj/item/ammo_box/magazine/pistol556mm, +/obj/structure/closet/secure_closet/wall{ + dir = 1; + icon_state = "sec_wall"; + name = "firearms locker"; + pixel_y = -28; + req_access_txt = "19" + }, /turf/open/floor/carpet/royalblue, /area/ship/bridge) "BU" = ( @@ -3022,10 +3051,10 @@ /turf/open/floor/wood/ebony, /area/ship/crew/crewtwo) "DD" = ( -/obj/structure/table/wood, -/obj/item/cutting_board, -/obj/item/kitchen/knife, /obj/machinery/light/directional/north, +/obj/structure/sink/kitchen{ + pixel_y = 16 + }, /turf/open/floor/wood/ebony, /area/ship/crew/canteen) "DL" = ( @@ -3049,22 +3078,24 @@ /turf/open/floor/wood/yew, /area/ship/crew) "Ea" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 + dir = 6 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/structure/railing/wood, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -19; + pixel_y = -5 }, -/turf/open/floor/wood, +/obj/machinery/button/door{ + dir = 4; + id = "sg_par_cafeteria"; + name = "shutter control"; + pixel_x = -20; + pixel_y = 7 + }, +/obj/structure/table/wood, +/turf/open/floor/wood/ebony, /area/ship/crew/canteen) "Eh" = ( /obj/item/bedsheet/double/solgov{ @@ -3206,6 +3237,9 @@ pixel_x = -6; pixel_y = 2 }, +/obj/item/toy/cards/deck{ + pixel_x = 3 + }, /turf/open/floor/carpet/royalblue, /area/ship/crew/canteen) "EV" = ( @@ -3269,13 +3303,8 @@ "FG" = ( /obj/structure/table/wood, /obj/machinery/airalarm/directional/north, -/obj/machinery/reagentgrinder, -/obj/item/reagent_containers/food/condiment/saltshaker{ - pixel_x = -17 - }, -/obj/item/reagent_containers/food/condiment/peppermill{ - pixel_x = -10; - pixel_y = 6 +/obj/machinery/microwave{ + pixel_y = 5 }, /turf/open/floor/wood/ebony, /area/ship/crew/canteen) @@ -3353,15 +3382,15 @@ /turf/open/floor/plasteel/mono/white, /area/ship/medical/surgery) "Hl" = ( -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable{ - icon_state = "0-8" - }, /obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 20; - pixel_y = -12 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" }, /turf/open/floor/wood/ebony, /area/ship/crew/dorm) @@ -3515,11 +3544,17 @@ /area/ship/maintenance/starboard) "IO" = ( /obj/structure/table/wood, -/obj/machinery/microwave{ - pixel_y = 5 +/obj/machinery/reagentgrinder{ + pixel_y = 8; + pixel_x = -7 }, -/obj/structure/sign/poster/solgov/random{ - pixel_y = 30 +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = 4; + pixel_y = 10 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + pixel_x = 10; + pixel_y = 10 }, /turf/open/floor/wood/ebony, /area/ship/crew/canteen) @@ -3796,6 +3831,15 @@ /area/ship/hallway/port) "Lw" = ( /obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/open/floor/wood, /area/ship/crew/canteen) "Lx" = ( @@ -3850,7 +3894,6 @@ /turf/open/floor/plasteel/patterned, /area/ship/cargo/office) "LK" = ( -/obj/structure/closet/crate/bin, /obj/effect/turf_decal/trimline/opaque/solgovblue/filled/line, /obj/machinery/button/door{ dir = 4; @@ -3868,6 +3911,7 @@ specialfunctions = 4; normaldoorcontrol = 1 }, +/obj/machinery/autolathe, /turf/open/floor/plasteel/white, /area/ship/medical) "LS" = ( @@ -3898,13 +3942,20 @@ /turf/open/floor/wood/ebony, /area/ship/hallway/starboard) "Mk" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, -/turf/open/floor/wood, +/obj/structure/railing/wood, +/obj/structure/closet/secure_closet/freezer{ + anchored = 1; + name = "refrigerator" + }, +/obj/item/storage/box/ingredients/vegetarian, +/obj/item/storage/box/ingredients/wildcard, +/obj/item/reagent_containers/food/snacks/meat/slab, +/obj/item/reagent_containers/food/snacks/meat/slab, +/obj/item/reagent_containers/food/snacks/meat/slab, +/obj/item/reagent_containers/food/snacks/meat/slab, +/obj/item/storage/fancy/egg_box, +/obj/item/storage/fancy/egg_box, +/turf/open/floor/wood/ebony, /area/ship/crew/canteen) "Mo" = ( /obj/structure/chair/office{ @@ -3966,8 +4017,7 @@ /turf/open/floor/carpet/royalblue, /area/ship/crew/office) "ML" = ( -/obj/structure/closet/secure_closet/freezer/fridge, -/obj/structure/railing/wood, +/obj/item/reagent_containers/food/condiment/flour, /obj/item/reagent_containers/food/condiment/flour, /obj/item/reagent_containers/food/condiment/flour, /obj/item/reagent_containers/food/condiment/flour, @@ -3977,8 +4027,14 @@ /obj/item/reagent_containers/food/condiment/milk, /obj/item/reagent_containers/food/condiment/soymilk, /obj/item/reagent_containers/food/condiment/soymilk, -/obj/item/storage/fancy/egg_box, /obj/item/reagent_containers/food/condiment/enzyme, +/obj/structure/closet/secure_closet/freezer{ + anchored = 1; + name = "refrigerator" + }, +/obj/structure/sign/poster/solgov/random{ + pixel_y = 30 + }, /turf/open/floor/wood/ebony, /area/ship/crew/canteen) "MO" = ( @@ -4082,7 +4138,15 @@ /area/ship/medical/surgery) "NY" = ( /obj/effect/decal/cleanable/dirt/dust, -/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/light_switch{ + dir = 4; + pixel_y = 12; + pixel_x = -20 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, /turf/open/floor/wood/ebony, /area/ship/crew/dorm) "Ol" = ( @@ -4122,16 +4186,10 @@ /turf/open/floor/wood, /area/ship/bridge) "OO" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/wood, +/turf/open/floor/wood/ebony, /area/ship/crew/canteen) "OS" = ( /obj/structure/sink/kitchen{ @@ -4233,6 +4291,9 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/open/floor/wood, /area/ship/crew/canteen) "Pk" = ( @@ -4379,15 +4440,6 @@ dir = 1 }, /obj/effect/turf_decal/siding/wood, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, /obj/item/radio/intercom/directional/north, /turf/open/floor/wood, /area/ship/crew/dorm) @@ -4434,6 +4486,7 @@ /obj/item/clothing/suit/solgov/suit, /obj/item/clothing/suit/hooded/wintercoat/solgov, /obj/item/clothing/suit/hooded/wintercoat/solgov, +/obj/item/toy/plush/blahaj, /turf/open/floor/wood/ebony, /area/ship/crew/dorm) "QQ" = ( @@ -4643,11 +4696,20 @@ /obj/effect/turf_decal/siding/wood, /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/siding/wood{ dir = 1 }, /turf/open/floor/wood, /area/ship/crew/canteen) "SG" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/carpet/royalblue, /area/ship/crew/canteen) "SK" = ( @@ -4670,19 +4732,10 @@ /area/ship/hallway/starboard) "SP" = ( /obj/effect/decal/cleanable/dirt/dust, -/obj/structure/railing/wood, -/obj/machinery/light_switch{ - dir = 4; - pixel_x = -19; - pixel_y = -5 - }, -/obj/machinery/button/door{ - dir = 4; - id = "sg_par_cafeteria"; - name = "shutter control"; - pixel_x = -20; - pixel_y = 7 - }, +/obj/structure/table/wood, +/obj/item/cutting_board, +/obj/item/kitchen/knife, +/obj/item/kitchen/rollingpin, /turf/open/floor/wood/ebony, /area/ship/crew/canteen) "Tc" = ( @@ -5013,6 +5066,9 @@ /obj/item/desk_flag/solgov{ pixel_y = 3 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/carpet/royalblue, /area/ship/crew/canteen) "Wt" = ( @@ -5117,7 +5173,21 @@ /obj/effect/turf_decal/techfloor{ dir = 10 }, -/obj/machinery/autolathe, +/obj/structure/table, +/obj/item/cigbutt{ + pixel_y = 5 + }, +/obj/item/cigbutt{ + pixel_y = 15 + }, +/obj/item/cigbutt{ + pixel_y = 9; + pixel_x = -11 + }, +/obj/item/clothing/mask/cigarette/robust{ + pixel_y = 10; + pixel_x = 8 + }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/maintenance/port) "Xe" = ( @@ -6281,7 +6351,7 @@ pK NY dh Wt -eH +AZ bf wI "} @@ -6313,7 +6383,7 @@ rO aF Bg Pk -eH +AZ bf wI "} @@ -6373,8 +6443,8 @@ qL qL qL Ev -yY vL +yY Ky Ky Ky diff --git a/_maps/shuttles/subshuttles/Subshuttle Catalog.txt b/_maps/shuttles/subshuttles/Subshuttle Catalog.txt index 3424b7605354..aa2ede4dca64 100644 --- a/_maps/shuttles/subshuttles/Subshuttle Catalog.txt +++ b/_maps/shuttles/subshuttles/Subshuttle Catalog.txt @@ -13,6 +13,11 @@ Size = "12x7" Purpose = "A multi-role dropship used by almost every group faring space. Its ease of manufacture and high mobility makes it ideal for transport." File Path = "_maps\shuttles\subshuttles\indepenent_kunai.dmm" +Name = "Haste-class Patient Recovery Ship" +Size = "6x4" +Purpose = "A small, nimble ship utilized as an ambulance by Inteq forces." +File Path = "_maps\shuttles\subshuttles\independant_haste.dmm" + Name = "Sugarcube" Size = "12x6" Purpose = "A prisoner transport vessel turned " diff --git a/_maps/shuttles/subshuttles/inteq_haste.dmm b/_maps/shuttles/subshuttles/inteq_haste.dmm new file mode 100644 index 000000000000..74144c3fe930 --- /dev/null +++ b/_maps/shuttles/subshuttles/inteq_haste.dmm @@ -0,0 +1,262 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/wall/mineral/plastitanium, +/area/ship/bridge) +"f" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, +/area/ship/bridge) +"s" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "haste_door" + }, +/obj/machinery/power/shieldwallgen/atmos{ + id = "haste_holo"; + anchored = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/turf/open/floor/engine/hull/interior, +/area/ship/bridge) +"B" = ( +/obj/machinery/power/smes/engineering{ + charge = 1e+006 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "0-5" + }, +/obj/effect/turf_decal/techfloor, +/turf/open/floor/plasteel/tech, +/area/ship/bridge) +"D" = ( +/obj/structure/cable{ + icon_state = "4-10" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/light_switch{ + pixel_y = 22; + pixel_x = 10 + }, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/ship/bridge) +"F" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/power/smes/shuttle/precharged{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, +/area/ship/bridge) +"I" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black, +/obj/structure/rack, +/obj/item/storage/firstaid/regular{ + pixel_x = 4; + pixel_y = 2 + }, +/obj/item/storage/firstaid/medical{ + pixel_x = -4; + pixel_y = 6 + }, +/obj/item/defibrillator/loaded{ + pixel_x = -4 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-5" + }, +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/techfloor, +/turf/open/floor/plasteel/tech, +/area/ship/bridge) +"J" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/power/smes/shuttle/precharged, +/turf/open/floor/plasteel/tech, +/area/ship/bridge) +"K" = ( +/obj/structure/grille, +/obj/structure/window/plasma/reinforced/plastitanium, +/turf/open/floor/plating, +/area/ship/bridge) +"M" = ( +/obj/structure/bed/roller, +/obj/effect/turf_decal/spline/fancy/opaque/black/corner{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable/yellow, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/techfloor, +/turf/open/floor/plasteel/tech, +/area/ship/bridge) +"O" = ( +/obj/machinery/power/shieldwallgen/atmos{ + dir = 1; + id = "haste_holo"; + anchored = 1 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "haste_door" + }, +/obj/docking_port/mobile{ + dir = 8; + name = "ambulance dock"; + preferred_direction = 8; + port_direction = 2 + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/turf/open/floor/engine/hull/interior, +/area/ship/bridge) +"R" = ( +/obj/machinery/power/terminal, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/techfloor, +/turf/open/floor/plasteel/tech, +/area/ship/bridge) +"T" = ( +/obj/machinery/power/shuttle/engine/electric{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/engine/hull/interior, +/area/ship/bridge) +"X" = ( +/obj/machinery/computer/helm{ + dir = 4; + layer = 3 + }, +/obj/structure/railing{ + dir = 10 + }, +/obj/machinery/button/shieldwallgen{ + pixel_y = 21; + pixel_x = 9; + id = "haste_holo" + }, +/obj/machinery/button/door{ + pixel_x = -2; + pixel_y = 23; + id = "haste_door" + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/bridge) +"Z" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/obj/structure/railing, +/obj/item/radio/intercom/wideband/directional/north{ + pixel_x = -9 + }, +/obj/structure/cable/yellow{ + icon_state = "4-10" + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/bridge) + +(1,1,1) = {" +a +K +K +a +"} +(2,1,1) = {" +a +X +B +a +"} +(3,1,1) = {" +a +Z +I +a +"} +(4,1,1) = {" +a +D +M +a +"} +(5,1,1) = {" +J +f +R +F +"} +(6,1,1) = {" +T +s +O +T +"} diff --git a/_maps/shuttles/syndicate/syndicate_aegis.dmm b/_maps/shuttles/syndicate/syndicate_aegis.dmm index 12dbcaea4daa..3c2766b5725f 100644 --- a/_maps/shuttles/syndicate/syndicate_aegis.dmm +++ b/_maps/shuttles/syndicate/syndicate_aegis.dmm @@ -2367,7 +2367,7 @@ name = "Cooks Clothing"; pixel_x = -30 }, -/obj/item/book/manual/wiki/cooking_to_serve_man, +/obj/item/book/manual/wiki/cooking, /obj/item/clothing/under/rank/civilian/chef, /obj/item/clothing/under/rank/civilian/chef/skirt, /obj/item/clothing/suit/toggle/chef, diff --git a/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm b/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm index dae3f0a86b96..6a8cee6cc78a 100644 --- a/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm +++ b/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm @@ -300,7 +300,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/airalarm/directional/north, /obj/effect/turf_decal/industrial/outline, -/obj/item/storage/box/lethalshot, +/obj/item/ammo_box/a12g, /obj/item/ammo_box/c10mm, /turf/open/floor/mineral/plastitanium, /area/ship/security/armory) @@ -491,7 +491,7 @@ pixel_x = 32 }, /obj/effect/turf_decal/industrial/outline, -/obj/item/gun/ballistic/shotgun/lethal, +/obj/item/gun/ballistic/shotgun/brimstone, /obj/machinery/button/door{ dir = 1; id = "wreckerarmory"; @@ -1669,7 +1669,6 @@ /obj/item/gun/ballistic/automatic/pistol, /obj/item/clothing/accessory/holster, /obj/item/grenade/chem_grenade/metalfoam, -/obj/item/card/mining_access_card, /obj/machinery/airalarm/directional/west, /obj/item/tank/jetpack/suit, /turf/open/floor/carpet/red, diff --git a/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm index 3da232da75dc..23eb56cb400c 100644 --- a/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm +++ b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm @@ -2734,43 +2734,6 @@ }, /turf/open/floor/plasteel, /area/ship/engineering) -"AS" = ( -/obj/effect/turf_decal/borderfloor{ - dir = 8 - }, -/obj/item/gun/ballistic/automatic/pistol/m1911{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/item/ammo_box/magazine/m45, -/obj/item/ammo_box/magazine/m45{ - pixel_x = 3 - }, -/obj/item/clothing/under/syndicate/aclfgrunt, -/obj/item/clothing/gloves/tackler/combat/insulated, -/obj/item/clothing/suit/armor/vest/leather{ - desc = "Lightly armored leather overcoat meant as casual wear for high-ranking officers. Bears the crest of the Gorlex Marauders." - }, -/obj/item/clothing/mask/gas/sechailer/swat, -/obj/item/clothing/head/HoS/beret/syndicate, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/closet/secure_closet/wall{ - dir = 1; - icon_state = "sec_wall"; - name = "Sergeant's locker"; - pixel_y = -29; - req_access_txt = "58" - }, -/obj/item/melee/classic_baton/telescopic, -/obj/item/clothing/suit/armor/vest/blueshirt, -/obj/item/clothing/under/syndicate/combat, -/obj/item/clothing/accessory/holster, -/obj/item/clothing/shoes/combat, -/obj/item/radio/headset/syndicate, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) "AY" = ( /obj/structure/sign/syndicate, /turf/closed/wall/mineral/plastitanium/nodiagonal, @@ -3137,33 +3100,6 @@ }, /turf/open/floor/mineral/plastitanium/red, /area/ship/crew/canteen) -"Ek" = ( -/obj/structure/closet/secure_closet{ - anchored = 1; - icon_state = "hos"; - name = "captain's locker"; - req_access_txt = "20" - }, -/obj/item/clothing/under/syndicate/combat, -/obj/item/clothing/under/syndicate/officer, -/obj/item/clothing/suit/armor/vest/capcarapace/syndicate, -/obj/item/clothing/gloves/krav_maga/combatglovesplus, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/glasses/thermal/eyepatch, -/obj/item/clothing/head/HoS/beret/syndicate, -/obj/item/clothing/head/HoS/syndicate, -/obj/item/clothing/head/gorlexcap{ - pixel_x = 5; - pixel_y = -4 - }, -/obj/item/gun/ballistic/derringer/traitor, -/obj/item/clothing/under/syndicate/sniper, -/obj/item/clothing/suit/gorlex, -/obj/item/ammo_box/a357, -/obj/item/ammo_box/a357, -/obj/item/radio/headset/syndicate/alt/leader, -/turf/open/floor/carpet/black, -/area/ship/bridge) "El" = ( /obj/structure/filingcabinet, /obj/item/folder/syndicate/mining, @@ -3886,6 +3822,33 @@ }, /turf/open/floor/plasteel/dark, /area/ship/bridge) +"KG" = ( +/obj/structure/closet/secure_closet{ + anchored = 1; + icon_state = "hos"; + name = "captain's locker"; + req_access_txt = "20" + }, +/obj/item/clothing/under/syndicate/combat, +/obj/item/clothing/under/syndicate/officer, +/obj/item/clothing/suit/armor/vest/capcarapace/syndicate, +/obj/item/clothing/gloves/krav_maga/combatglovesplus, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/glasses/thermal/eyepatch, +/obj/item/clothing/head/HoS/beret/syndicate, +/obj/item/clothing/head/HoS/syndicate, +/obj/item/clothing/head/gorlexcap{ + pixel_x = 5; + pixel_y = -4 + }, +/obj/item/gun/ballistic/derringer/traitor, +/obj/item/clothing/under/syndicate/sniper, +/obj/item/clothing/suit/gorlex, +/obj/item/ammo_box/a357, +/obj/item/ammo_box/a357, +/obj/item/radio/headset/syndicate/alt/leader, +/turf/open/floor/carpet/black, +/area/ship/bridge) "KL" = ( /obj/machinery/vending/custom, /obj/structure/railing{ @@ -4823,6 +4786,43 @@ /obj/structure/catwalk/over, /turf/open/floor/plating, /area/ship/engineering) +"UJ" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/item/gun/ballistic/automatic/pistol/candor{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/ammo_box/magazine/m45, +/obj/item/ammo_box/magazine/m45{ + pixel_x = 3 + }, +/obj/item/clothing/under/syndicate/aclfgrunt, +/obj/item/clothing/gloves/tackler/combat/insulated, +/obj/item/clothing/suit/armor/vest/leather{ + desc = "Lightly armored leather overcoat meant as casual wear for high-ranking officers. Bears the crest of the Gorlex Marauders." + }, +/obj/item/clothing/mask/gas/sechailer/swat, +/obj/item/clothing/head/HoS/beret/syndicate, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/closet/secure_closet/wall{ + dir = 1; + icon_state = "sec_wall"; + name = "Sergeant's locker"; + pixel_y = -29; + req_access_txt = "58" + }, +/obj/item/melee/classic_baton/telescopic, +/obj/item/clothing/suit/armor/vest/blueshirt, +/obj/item/clothing/under/syndicate/combat, +/obj/item/clothing/accessory/holster, +/obj/item/clothing/shoes/combat, +/obj/item/radio/headset/syndicate, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) "UK" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/hatch{ @@ -5880,11 +5880,11 @@ ME WP WA TH -AS +UJ tC FL up -Ek +KG tC tC tC diff --git a/_maps/shuttles/syndicate/syndicate_luxembourg.dmm b/_maps/shuttles/syndicate/syndicate_luxembourg.dmm deleted file mode 100644 index 6dde77123cba..000000000000 --- a/_maps/shuttles/syndicate/syndicate_luxembourg.dmm +++ /dev/null @@ -1,3314 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aB" = ( -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"aD" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/carpet/red_gold, -/area/ship/crew/dorm) -"aK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/radio/intercom/directional/south, -/obj/machinery/navbeacon/wayfinding{ - codes_txt = "patrol;next_patrol=lux_engine"; - location = "lux_crew" - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew/dorm) -"bi" = ( -/obj/machinery/button/door{ - id = "syndiefuck"; - name = "Loading Shutters Control"; - pixel_x = -25; - pixel_y = -7; - dir = 4 - }, -/obj/machinery/button/door{ - id = "warehouse"; - name = "Warehouse Control"; - pixel_x = -25; - pixel_y = 5; - dir = 4 - }, -/obj/machinery/button/door{ - id = "cargodoors"; - name = "Cargo Bay Shutter Control"; - pixel_x = -35; - pixel_y = 5; - dir = 4 - }, -/obj/machinery/button/door{ - id = "externalshutters"; - name = "External Shutters Control"; - pixel_x = -35; - pixel_y = -7; - dir = 4 - }, -/obj/machinery/computer/cargo/express{ - dir = 4 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hallway/central) -"bp" = ( -/obj/effect/turf_decal/siding/blue/corner{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/blue/half{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"bt" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/binary/volume_pump{ - dir = 8 - }, -/obj/structure/catwalk/over/plated_catwalk/white, -/turf/open/floor/plating, -/area/ship/engineering) -"bB" = ( -/obj/structure/rack, -/obj/machinery/light/directional/north, -/obj/effect/turf_decal/corner/opaque/brown/border{ - dir = 9 - }, -/obj/item/gps/mining, -/obj/item/paicard, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"bN" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/turf/open/floor/plasteel/dark, -/area/ship/crew/dorm) -"bV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 4 - }, -/obj/structure/displaycase, -/obj/effect/turf_decal/corner/opaque/neutral/mono, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hallway/central) -"cb" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/turf/open/floor/carpet/red_gold, -/area/ship/crew/dorm) -"cq" = ( -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/computer/mech_bay_power_console{ - dir = 8 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/storage) -"cs" = ( -/obj/effect/turf_decal/siding/blue{ - dir = 8 - }, -/obj/effect/turf_decal/siding/blue/corner, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"cB" = ( -/obj/item/toy/figure/cargotech, -/obj/item/clothing/suit/hooded/wintercoat/cargo, -/obj/item/stack/sheet/cardboard/fifty, -/obj/item/hand_labeler, -/obj/item/hand_labeler_refill, -/obj/item/clothing/under/syndicate/donk, -/obj/item/clothing/suit/hazardvest/donk, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/item/stack/wrapping_paper, -/obj/item/stack/packageWrap, -/obj/structure/closet/wall{ - dir = 8; - icon_door = "orange_wall"; - name = "employee closet"; - pixel_x = 28 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/engineering) -"cI" = ( -/obj/structure/rack, -/obj/item/rack_parts, -/obj/item/rack_parts, -/obj/item/rack_parts, -/obj/item/rack_parts, -/obj/item/rack_parts, -/obj/item/rack_parts, -/obj/item/rack_parts, -/obj/item/rack_parts, -/obj/item/rack_parts, -/obj/item/rack_parts, -/obj/item/rack_parts, -/obj/item/rack_parts, -/obj/item/rack_parts, -/obj/item/rack_parts, -/obj/item/rack_parts, -/obj/item/rack_parts, -/obj/effect/turf_decal/corner/opaque/neutral/mono, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hallway/central) -"dp" = ( -/obj/structure/displaycase, -/obj/effect/turf_decal/corner/opaque/neutral/mono, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hallway/central) -"dA" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 1 - }, -/turf/open/floor/carpet/red_gold, -/area/ship/hallway/central) -"dC" = ( -/obj/machinery/atmospherics/pipe/layer_manifold{ - dir = 4 - }, -/obj/machinery/space_heater, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"dH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 4 - }, -/obj/structure/displaycase, -/obj/effect/turf_decal/corner/opaque/neutral/mono, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hallway/central) -"dL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/airlock/engineering{ - name = "Engineering" - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"dM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"eD" = ( -/obj/item/storage/belt/utility, -/obj/item/storage/belt/utility, -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 10 - }, -/obj/item/storage/toolbox/syndicate, -/obj/item/storage/toolbox/syndicate, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"eF" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 12 - }, -/obj/structure/mirror{ - pixel_x = 24 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/item/storage/firstaid/regular, -/obj/item/storage/firstaid/medical{ - pixel_x = -5; - pixel_y = -4 - }, -/obj/structure/closet/wall/white/med{ - dir = 1; - name = "medicine locker"; - pixel_y = -28 - }, -/turf/open/floor/plasteel/patterned, -/area/ship/crew/dorm) -"eL" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/structure/catwalk/over/plated_catwalk/white, -/obj/machinery/door/airlock/engineering{ - name = "Engineering" - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"eX" = ( -/obj/effect/turf_decal/siding/blue{ - dir = 8 - }, -/obj/effect/turf_decal/siding/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"fn" = ( -/obj/machinery/light/directional/east, -/obj/structure/table, -/obj/machinery/microwave, -/turf/open/floor/plasteel/mono/dark, -/area/ship/crew/canteen) -"fo" = ( -/obj/item/card/emag, -/obj/item/tank/internals/emergency_oxygen/double, -/obj/item/storage/backpack/duffelbag/syndie{ - name = "manager's duffel bag" - }, -/obj/item/clothing/under/syndicate/donk/qm, -/obj/item/clothing/suit/hazardvest/donk/qm, -/obj/item/melee/classic_baton/telescopic, -/obj/item/radio/headset/syndicate/alt/leader, -/obj/item/spacecash/bundle/c1000, -/obj/item/spacecash/bundle/c1000, -/obj/item/spacecash/bundle/c1000, -/obj/item/spacecash/bundle/c1000, -/obj/item/spacecash/bundle/c1000, -/obj/item/spacecash/bundle/c1000, -/obj/structure/closet/secure_closet/wall{ - dir = 4; - icon_state = "solgov_wall"; - name = "manager's locker"; - pixel_x = -28; - req_access_txt = "41" - }, -/obj/machinery/light_switch{ - pixel_y = 22 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/engineering) -"fv" = ( -/obj/machinery/selling_pad, -/obj/effect/turf_decal/box, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hallway/central) -"fy" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/opaque/brown/filled/warning, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"fB" = ( -/obj/effect/decal/cleanable/oil, -/obj/effect/turf_decal/corner/opaque/brown/border{ - dir = 8 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"ga" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "cargodoors" - }, -/obj/item/radio/intercom/directional/north{ - pixel_y = 22 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo) -"gf" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"gj" = ( -/obj/machinery/light/directional/north, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 6 - }, -/obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"gC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/blue{ - dir = 8 - }, -/obj/effect/turf_decal/siding/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"hd" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ship/engineering) -"hi" = ( -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"hm" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/storage) -"hs" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/cargo) -"hu" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/firealarm/directional/east, -/obj/effect/turf_decal/corner/opaque/brown/border{ - dir = 4 - }, -/obj/machinery/suit_storage_unit/inherit/industrial, -/obj/item/clothing/suit/space/syndicate, -/obj/item/clothing/head/helmet/space/syndicate, -/obj/item/clothing/mask/breath, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"hX" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/brown/border{ - dir = 8 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"if" = ( -/obj/machinery/cryopod{ - dir = 4 - }, -/obj/machinery/computer/cryopod/directional/south, -/obj/machinery/light/small/directional/west, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/crew/dorm) -"it" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/power/shieldwallgen/atmos{ - anchored = 1; - dir = 1; - id = "luxembourg_cargo"; - locked = 1 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "syndiefuck" - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"iF" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, -/obj/item/vending_refill/engineering, -/obj/item/vending_refill/engineering, -/obj/item/vending_refill/engivend, -/obj/item/vending_refill/engivend, -/obj/item/vending_refill/hydronutrients, -/obj/item/vending_refill/hydronutrients, -/obj/item/vending_refill/boozeomat, -/obj/item/vending_refill/boozeomat, -/obj/item/vending_refill/medical, -/obj/item/vending_refill/medical, -/obj/item/vending_refill/cigarette, -/obj/item/vending_refill/cigarette, -/obj/item/vending_refill/snack, -/obj/item/vending_refill/snack, -/obj/item/vending_refill/sovietsoda, -/obj/item/vending_refill/cola, -/obj/item/vending_refill/cola, -/turf/open/floor/plasteel/mono/dark, -/area/ship/storage) -"iO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 10 - }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/storage) -"iR" = ( -/obj/machinery/power/shuttle/engine/fueled/plasma{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/layer_manifold, -/turf/open/floor/plating, -/area/ship/engineering) -"iZ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 9 - }, -/obj/structure/catwalk/over/plated_catwalk/white, -/obj/machinery/atmospherics/components/unary/portables_connector{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/engineering) -"jr" = ( -/turf/open/floor/carpet/red_gold, -/area/ship/hallway/central) -"jv" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/obj/structure/rack, -/obj/effect/turf_decal/corner/opaque/neutral/mono, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hallway/central) -"jH" = ( -/obj/structure/table, -/obj/item/radio/intercom/wideband/table{ - dir = 4 - }, -/obj/machinery/light_switch{ - pixel_y = 22 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hallway/central) -"jK" = ( -/obj/machinery/air_sensor/atmos/air_tank, -/turf/open/floor/engine/air, -/area/ship/engineering) -"ke" = ( -/obj/machinery/mech_bay_recharge_port{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/mono/dark, -/area/ship/storage) -"ks" = ( -/obj/structure/closet/crate, -/obj/item/gun_voucher, -/obj/item/gun_voucher, -/obj/item/gun_voucher, -/obj/item/gun_voucher, -/obj/item/gun_voucher, -/obj/item/gun_voucher, -/obj/item/gun_voucher, -/obj/item/gun_voucher, -/obj/item/gun_voucher, -/obj/item/gun_voucher, -/turf/open/floor/plasteel/mono/dark, -/area/ship/storage) -"kE" = ( -/obj/machinery/chem_master/condimaster, -/turf/open/floor/plasteel/mono/dark, -/area/ship/crew/canteen) -"kI" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 5 - }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/storage) -"kZ" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "externalshutters" - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"lb" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"lg" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/storage) -"lt" = ( -/obj/machinery/atmospherics/components/binary/volume_pump, -/obj/structure/catwalk/over/plated_catwalk/white, -/turf/open/floor/plating, -/area/ship/engineering) -"lK" = ( -/obj/effect/turf_decal/siding/blue/corner{ - dir = 8 - }, -/obj/effect/turf_decal/siding/blue/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"lQ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/poddoor/shutters{ - id = "warehouse" - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/storage) -"lW" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/orange/visible{ - dir = 1 - }, -/obj/structure/catwalk/over/plated_catwalk/white, -/turf/open/floor/plating, -/area/ship/engineering) -"mi" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "externalshutters" - }, -/turf/open/floor/plating, -/area/ship/crew/dorm) -"mm" = ( -/obj/item/toy/figure/cargotech, -/obj/item/clothing/suit/hooded/wintercoat/cargo, -/obj/item/stack/sheet/cardboard/fifty, -/obj/item/hand_labeler, -/obj/item/hand_labeler_refill, -/obj/item/clothing/under/syndicate/donk, -/obj/item/clothing/suit/hazardvest/donk, -/obj/item/stack/wrapping_paper, -/obj/item/stack/packageWrap, -/obj/structure/railing, -/obj/structure/closet/wall{ - dir = 4; - icon_door = "orange_wall"; - name = "employee closet"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/engineering) -"mE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/effect/turf_decal/kfp_small/left{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/engineering) -"mK" = ( -/obj/machinery/light/directional/south, -/obj/machinery/computer/atmos_control/tank/air_tank{ - dir = 4 - }, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"na" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/engineering) -"nz" = ( -/obj/structure/sign/donk{ - pixel_x = -32 - }, -/obj/structure/rack, -/obj/item/radio/headset, -/obj/item/radio/headset, -/obj/item/radio/headset, -/obj/item/radio/headset, -/obj/item/radio/headset, -/obj/item/radio/headset, -/turf/open/floor/plasteel/dark, -/area/ship/crew/dorm) -"ow" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/poddoor/shutters{ - id = "externalshutters" - }, -/turf/open/floor/plating, -/area/ship/crew/canteen) -"pd" = ( -/obj/machinery/light/directional/east, -/obj/structure/closet/crate/large{ - name = "Donk! Co. Powerloader In a Box" - }, -/obj/effect/decal/cleanable/oil, -/obj/effect/turf_decal/rechargefloor, -/obj/mecha/working/ripley/cargo{ - name = "\improper Donk! Co. Cargo Loading Device" - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/storage) -"pt" = ( -/turf/closed/wall/mineral/plastitanium, -/area/ship/engineering) -"pJ" = ( -/obj/machinery/firealarm/directional/south, -/obj/machinery/autolathe, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"pL" = ( -/obj/effect/turf_decal/siding/blue{ - dir = 1 - }, -/obj/effect/turf_decal/siding/blue/corner{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"pR" = ( -/obj/machinery/power/smes/engineering, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ship/engineering) -"qe" = ( -/obj/effect/turf_decal/atmos/air, -/turf/open/floor/engine/air, -/area/ship/engineering) -"qf" = ( -/obj/structure/table, -/obj/machinery/door/firedoor, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel/mono/dark, -/area/ship/crew/canteen) -"qh" = ( -/obj/machinery/airalarm/directional/west, -/obj/item/stack/sheet/cardboard/fifty, -/obj/item/hand_labeler, -/obj/effect/turf_decal/corner/opaque/brown/border{ - dir = 8 - }, -/obj/machinery/navbeacon/wayfinding{ - codes_txt = "patrol;next_patrol=lux_shopfloor"; - location = "lux_lobby" - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"ql" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/obj/structure/catwalk/over/plated_catwalk, -/turf/open/floor/plating, -/area/ship/engineering) -"qO" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 4 - }, -/obj/structure/chair/plastic{ - dir = 4 - }, -/obj/effect/turf_decal/siding/red{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/neutral/border{ - dir = 4 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hallway/central) -"qP" = ( -/obj/machinery/door/airlock/external, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 5 - }, -/turf/open/floor/plating, -/area/ship/engineering) -"qR" = ( -/turf/open/floor/engine/air, -/area/ship/engineering) -"qV" = ( -/obj/item/toy/sword, -/obj/structure/closet/crate/wooden/toy, -/obj/item/ammo_box/magazine/toy/smgm45/riot, -/obj/item/ammo_box/magazine/toy/smgm45/riot, -/obj/item/gun/ballistic/automatic/smg/c20r/toy/unrestricted/riot, -/obj/item/soap/syndie, -/obj/item/soap/syndie, -/obj/item/soap/syndie, -/obj/item/soap/syndie, -/obj/item/soap/syndie, -/obj/item/soap/syndie, -/obj/item/soap/syndie, -/obj/item/soap/syndie, -/turf/open/floor/plasteel/mono/dark, -/area/ship/storage) -"rh" = ( -/obj/effect/turf_decal/siding/blue/corner{ - dir = 8 - }, -/obj/effect/turf_decal/siding/blue/corner, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/effect/turf_decal/trimline/opaque/blue/filled/warning{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"rm" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/carpet/red_gold, -/area/ship/crew/dorm) -"rq" = ( -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/window{ - dir = 8; - name = "Canteen" - }, -/obj/effect/turf_decal/siding/red, -/turf/open/floor/plasteel/mono/dark, -/area/ship/crew/canteen) -"rG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/effect/turf_decal/corner/opaque/neutral/mono, -/turf/open/floor/plasteel/mono/dark, -/area/ship/crew/canteen) -"rU" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/opaque/orange/filled/warning, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/storage) -"rV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/atmos/air_output{ - dir = 4 - }, -/obj/structure/window/plasma/reinforced/spawner/east, -/turf/open/floor/engine/air, -/area/ship/engineering) -"sh" = ( -/obj/machinery/power/shuttle/engine/fueled/plasma{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ship/engineering) -"sk" = ( -/obj/effect/turf_decal/atmos/plasma, -/turf/open/floor/engine/plasma, -/area/ship/engineering) -"sF" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/neutral/mono, -/turf/open/floor/plasteel/mono/dark, -/area/ship/crew/canteen) -"sI" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ - dir = 6 - }, -/obj/effect/turf_decal/industrial/traffic{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew/dorm) -"sV" = ( -/mob/living/simple_animal/bot/mulebot{ - bot_name = "\proper Christine"; - desc = "A Multiple Utility Load Effector bot. This one seems oddly menacing..."; - id = "Christine"; - name = "\proper Christine" - }, -/obj/effect/turf_decal/corner/opaque/brown/bordercee, -/obj/machinery/navbeacon/wayfinding{ - codes_txt = null; - location = "mulestation" - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"tx" = ( -/obj/machinery/power/port_gen/pacman, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/obj/item/stack/sheet/mineral/plasma/five, -/turf/open/floor/plasteel/mono/dark, -/area/ship/engineering) -"tF" = ( -/obj/structure/bed/pod, -/obj/item/bedsheet/blue, -/obj/structure/curtain/bounty, -/turf/open/floor/plasteel/dark, -/area/ship/crew/dorm) -"tH" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/siding/red{ - dir = 10 - }, -/obj/effect/turf_decal/corner/opaque/neutral/bordercorner{ - dir = 4 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hallway/central) -"tO" = ( -/obj/effect/turf_decal/siding/blue/corner, -/obj/effect/turf_decal/siding/blue/corner{ - dir = 8 - }, -/obj/effect/turf_decal/siding/blue/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"tU" = ( -/obj/machinery/camera{ - dir = 10 - }, -/turf/open/floor/plating, -/area/template_noop) -"tV" = ( -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/button/door{ - id = "cargodoors"; - pixel_x = 8; - pixel_y = -24 - }, -/obj/machinery/door/window{ - dir = 8; - name = "Cargo Bay" - }, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "cargodoors" - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo) -"ug" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/eastright, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "cargodoors" - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo) -"ul" = ( -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/machinery/power/port_gen/pacman, -/obj/item/stack/sheet/mineral/plasma/five, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/mono/dark, -/area/ship/engineering) -"uo" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/structure/catwalk/over/plated_catwalk, -/turf/open/floor/plating, -/area/ship/engineering) -"uB" = ( -/obj/structure/table, -/obj/machinery/reagentgrinder, -/obj/item/reagent_containers/food/drinks/shaker{ - pixel_x = 10 - }, -/obj/item/kitchen/knife{ - pixel_x = -8 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/crew/canteen) -"uK" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxin_input{ - dir = 8 - }, -/obj/structure/window/plasma/reinforced/spawner/west, -/turf/open/floor/engine/plasma, -/area/ship/engineering) -"uX" = ( -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/turf_decal/corner/opaque/brown/border{ - dir = 4 - }, -/obj/machinery/suit_storage_unit/inherit/industrial, -/obj/item/clothing/suit/space/syndicate/green, -/obj/item/clothing/head/helmet/space/syndicate/green, -/obj/item/clothing/mask/breath, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"vb" = ( -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/poddoor/shutters{ - id = "warehouse" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/storage) -"vf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4, -/obj/effect/turf_decal/siding/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"vp" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/engineering) -"vw" = ( -/obj/machinery/camera{ - dir = 1 - }, -/turf/open/floor/plating, -/area/template_noop) -"vz" = ( -/obj/machinery/atmospherics/components/unary/shuttle/heater{ - dir = 1 - }, -/obj/structure/window/reinforced/spawner, -/obj/machinery/door/poddoor/shutters{ - id = "externalshutters" - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"vT" = ( -/obj/structure/closet/crate, -/obj/item/grenade/c4, -/obj/item/grenade/c4, -/obj/item/grenade/c4, -/obj/item/grenade/c4, -/obj/item/grenade/c4, -/obj/item/grenade/c4, -/obj/item/grenade/c4, -/obj/item/grenade/c4, -/obj/item/grenade/c4, -/obj/item/grenade/c4, -/turf/open/floor/plasteel/mono/dark, -/area/ship/storage) -"wd" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/effect/turf_decal/siding/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"wN" = ( -/obj/structure/table, -/obj/machinery/chem_dispenser/drinks, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/mono/dark, -/area/ship/crew/canteen) -"wP" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"wT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxin_output{ - dir = 8 - }, -/obj/structure/window/plasma/reinforced/spawner/west, -/turf/open/floor/engine/plasma, -/area/ship/engineering) -"xa" = ( -/obj/effect/turf_decal/siding/blue, -/obj/effect/turf_decal/corner/opaque/blue/half{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"xc" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/chair/plastic{ - dir = 4 - }, -/obj/effect/turf_decal/siding/red{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/neutral/border{ - dir = 4 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hallway/central) -"xt" = ( -/obj/machinery/light/directional/east, -/obj/item/clothing/head/HoS/beret/syndicate, -/obj/item/radio/headset/syndicate/alt, -/obj/item/gun/ballistic/shotgun/doublebarrel, -/obj/item/clothing/under/rank/civilian/bartender, -/obj/structure/closet/secure_closet/bar{ - req_access = null; - req_one_access_txt = list(25,41) - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/engineering) -"xw" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/vending/clothing{ - default_price = 0; - extra_price = 0 - }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plasteel/dark, -/area/ship/crew/dorm) -"yd" = ( -/obj/structure/table, -/obj/machinery/chem_dispenser/drinks/beer, -/turf/open/floor/plasteel/mono/dark, -/area/ship/crew/canteen) -"yf" = ( -/obj/effect/turf_decal/siding/blue/corner{ - dir = 4 - }, -/obj/effect/turf_decal/siding/blue{ - dir = 10 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"yh" = ( -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24; - pixel_y = 5 - }, -/obj/effect/turf_decal/corner/opaque/brown/border{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/brown/bordercorner{ - dir = 1 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"ym" = ( -/obj/effect/turf_decal/siding/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"yQ" = ( -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/obj/structure/cable/yellow{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering) -"yX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/blue/corner{ - dir = 8 - }, -/obj/effect/turf_decal/siding/blue/corner, -/obj/effect/turf_decal/siding/blue/corner{ - dir = 1 - }, -/obj/effect/turf_decal/siding/blue/corner{ - dir = 4 - }, -/obj/machinery/navbeacon/wayfinding{ - codes_txt = "patrol;next_patrol=lux_kitchen"; - location = "lux_shopfloor" - }, -/obj/machinery/holopad/emergency/cargo, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"zc" = ( -/obj/structure/rack, -/obj/effect/turf_decal/corner/opaque/neutral/mono, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hallway/central) -"zW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 6 - }, -/turf/open/floor/carpet/red_gold, -/area/ship/crew/dorm) -"Ai" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/machinery/door/airlock{ - name = "Dormitory" - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/crew/dorm) -"AE" = ( -/obj/machinery/door/airlock/external, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/atmospherics/pipe/layer_manifold, -/turf/open/floor/plating, -/area/ship/engineering) -"AL" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"Bt" = ( -/turf/closed/wall/mineral/plastitanium, -/area/ship/crew/canteen) -"Bw" = ( -/turf/closed/wall/mineral/plastitanium, -/area/ship/cargo) -"BM" = ( -/obj/structure/bed/pod, -/obj/item/bedsheet/blue, -/obj/structure/window/reinforced/tinted/frosted, -/obj/structure/curtain/bounty, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/light_switch{ - dir = 4; - pixel_x = -19; - pixel_y = 12 - }, -/turf/open/floor/carpet/red_gold, -/area/ship/crew/dorm) -"BX" = ( -/obj/machinery/airalarm/directional/west, -/obj/machinery/cryopod{ - dir = 4 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/crew/dorm) -"BZ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/brown/border{ - dir = 4 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"CC" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"CI" = ( -/obj/effect/turf_decal/siding/blue/corner{ - dir = 1 - }, -/obj/effect/turf_decal/siding/blue{ - dir = 6 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"CM" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer2, -/obj/structure/catwalk/over/plated_catwalk, -/turf/open/floor/plating, -/area/ship/engineering) -"CT" = ( -/obj/machinery/computer/atmos_control/tank/toxin_tank{ - dir = 8 - }, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"CV" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/red, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/crew/canteen) -"CW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 8 - }, -/obj/structure/closet/secure_closet/engineering_electrical, -/obj/item/stack/circuit_stack/full, -/obj/item/stack/circuit_stack/full, -/obj/item/stack/circuit_stack/full, -/obj/item/stack/circuit_stack/full, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"Da" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/airlock{ - name = "Canteen" - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/crew/canteen) -"Dq" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/effect/turf_decal/corner/opaque/neutral/mono, -/obj/machinery/navbeacon/wayfinding{ - codes_txt = "patrol;next_patrol=lux_crew"; - location = "lux_kitchen" - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/crew/canteen) -"Dw" = ( -/obj/structure/table, -/obj/structure/window/plasma/reinforced, -/obj/item/reagent_containers/food/drinks/shaker, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/mono/dark, -/area/ship/crew/canteen) -"DA" = ( -/obj/effect/turf_decal/siding/red, -/obj/machinery/firealarm/directional/south, -/obj/machinery/light_switch{ - dir = 1; - pixel_x = 6; - pixel_y = -24 - }, -/obj/machinery/airalarm/directional/east, -/obj/machinery/vending/dinnerware, -/turf/open/floor/plasteel/mono/dark, -/area/ship/crew/canteen) -"DE" = ( -/obj/structure/rack, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/neutral/mono, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hallway/central) -"DG" = ( -/obj/machinery/light/directional/south, -/obj/structure/rack, -/obj/effect/turf_decal/corner/opaque/neutral/mono, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hallway/central) -"DJ" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ - dir = 4 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/effect/turf_decal/number/five{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/engineering) -"DW" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24 - }, -/obj/structure/chair/plastic, -/turf/open/floor/carpet/red_gold, -/area/ship/crew/dorm) -"Ee" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/brown/border{ - dir = 4 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"Ej" = ( -/obj/machinery/modular_computer/console/preset/command{ - dir = 4 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hallway/central) -"Er" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 9 - }, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/engineering) -"EG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/opaque/brown/filled/warning{ - dir = 4 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"EO" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/crew/dorm) -"EW" = ( -/turf/open/floor/engine/plasma, -/area/ship/engineering) -"EZ" = ( -/obj/item/radio/headset/syndicate/alt, -/obj/item/toy/figure/cargotech, -/obj/item/clothing/suit/hooded/wintercoat/cargo, -/obj/item/stack/sheet/cardboard/fifty, -/obj/item/hand_labeler, -/obj/item/hand_labeler_refill, -/obj/item/clothing/under/syndicate/donk, -/obj/item/clothing/suit/hazardvest/donk, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/obj/item/stack/wrapping_paper, -/obj/item/stack/packageWrap, -/obj/structure/closet/wall{ - dir = 4; - icon_door = "orange_wall"; - name = "employee closet"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/engineering) -"Fj" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/item/paper{ - desc = "A piece of paper depicting a extremely pissed up upper manager"; - default_raw_text = "YOU DAMNNED FOOLS! YOU ARENT SUPPOSED TO USE YOUR STOCK, YOU'RE SUPPOSED TO SELL THEM!! WE AREN'T WASTING MY MONEY ARE WE!?! NOW GET BACK TO WORK!!!"; - name = "angry letter from upper management" - }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/storage) -"Fq" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 4 - }, -/obj/machinery/holopad/emergency/bar, -/obj/effect/turf_decal/corner/opaque/neutral/mono, -/turf/open/floor/plasteel/mono/dark, -/area/ship/crew/canteen) -"FV" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/patterned, -/area/ship/crew/dorm) -"Ga" = ( -/obj/machinery/computer/helm, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hallway/central) -"Gr" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/structure/catwalk/over/plated_catwalk, -/turf/open/floor/plating, -/area/ship/engineering) -"GD" = ( -/obj/docking_port/stationary{ - width = 30; - height = 15; - dir = 8; - dwidth = 15 - }, -/turf/template_noop, -/area/template_noop) -"GG" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/catwalk/over/plated_catwalk, -/turf/open/floor/plating, -/area/ship/engineering) -"Hx" = ( -/turf/closed/wall/mineral/plastitanium, -/area/ship/crew/dorm) -"HG" = ( -/obj/machinery/power/shieldwallgen/atmos{ - anchored = 1; - id = "luxembourg_cargo"; - locked = 1 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "syndiefuck" - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"HK" = ( -/obj/structure/rack, -/obj/effect/turf_decal/corner/opaque/neutral/mono, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hallway/central) -"HZ" = ( -/obj/structure/table, -/obj/item/reagent_containers/glass/rag, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/mono/dark, -/area/ship/crew/canteen) -"Id" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/carpet/red_gold, -/area/ship/crew/dorm) -"Ij" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/obj/docking_port/mobile{ - can_move_docking_ports = 1; - dir = 2; - launch_status = 0 - }, -/obj/machinery/door/poddoor/shutters{ - id = "externalshutters" - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"Ip" = ( -/obj/item/toy/figure/cargotech, -/obj/item/clothing/suit/hooded/wintercoat/cargo, -/obj/item/stack/sheet/cardboard/fifty, -/obj/item/hand_labeler, -/obj/item/hand_labeler_refill, -/obj/item/clothing/under/syndicate/donk, -/obj/item/clothing/suit/hazardvest/donk, -/obj/item/stack/wrapping_paper, -/obj/item/stack/packageWrap, -/obj/structure/railing, -/obj/structure/closet/wall{ - dir = 8; - icon_door = "orange_wall"; - name = "employee closet"; - pixel_x = 28 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/engineering) -"Iv" = ( -/obj/effect/turf_decal/siding/blue{ - dir = 4 - }, -/obj/effect/turf_decal/siding/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"IT" = ( -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable, -/obj/effect/turf_decal/siding/blue, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 20; - pixel_y = 11 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"Je" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"Ji" = ( -/obj/structure/bed/pod, -/obj/item/bedsheet/blue, -/obj/structure/curtain/bounty, -/turf/open/floor/carpet/red_gold, -/area/ship/crew/dorm) -"Jq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/blue/corner{ - dir = 1 - }, -/obj/effect/turf_decal/siding/blue/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"Jr" = ( -/obj/effect/turf_decal/siding/blue{ - dir = 1 - }, -/obj/effect/turf_decal/siding/blue/corner, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"JO" = ( -/obj/structure/closet/crate/science, -/obj/item/circuitboard/machine/chem_dispenser/drinks, -/obj/item/circuitboard/machine/chem_dispenser/drinks, -/obj/item/circuitboard/machine/chem_dispenser/drinks, -/obj/item/circuitboard/machine/chem_dispenser/drinks/beer, -/obj/item/circuitboard/machine/chem_dispenser/drinks/beer, -/obj/item/circuitboard/machine/chem_dispenser/drinks/beer, -/obj/item/circuitboard/machine/deep_fryer, -/obj/item/circuitboard/machine/deep_fryer, -/obj/item/circuitboard/machine/deep_fryer, -/obj/item/circuitboard/machine/mechfab, -/obj/item/circuitboard/machine/mechfab, -/obj/item/circuitboard/machine/mechfab, -/obj/item/circuitboard/machine/mechfab, -/obj/item/circuitboard/machine/mechfab, -/obj/item/circuitboard/machine/ore_redemption, -/obj/item/circuitboard/machine/ore_redemption, -/obj/item/circuitboard/machine/ore_redemption, -/obj/item/circuitboard/machine/microwave, -/obj/item/circuitboard/machine/microwave, -/obj/item/circuitboard/machine/microwave, -/obj/machinery/firealarm/directional/east, -/obj/machinery/light_switch{ - pixel_x = 6; - pixel_y = 24 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/storage) -"JT" = ( -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "syndiefuck" - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"JU" = ( -/obj/effect/turf_decal/corner/opaque/brown/border{ - dir = 6 - }, -/obj/machinery/suit_storage_unit/inherit/industrial, -/obj/item/clothing/suit/space/syndicate/blue, -/obj/item/clothing/head/helmet/space/syndicate/blue, -/obj/item/clothing/mask/breath, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"JV" = ( -/obj/effect/turf_decal/corner/opaque/brown/bordercorner{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"Ka" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/storage) -"Kg" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/shower{ - dir = 4 - }, -/obj/structure/window/reinforced/tinted/frosted, -/obj/structure/curtain, -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 8 - }, -/obj/machinery/light_switch{ - pixel_y = 23; - pixel_x = 11 - }, -/turf/open/floor/plasteel/patterned, -/area/ship/crew/dorm) -"Kk" = ( -/obj/machinery/air_sensor/atmos/toxin_tank, -/turf/open/floor/engine/plasma, -/area/ship/engineering) -"Ko" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/navbeacon/wayfinding{ - codes_txt = "patrol;next_patrol=lux_lobby"; - location = "lux_warehouse" - }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/storage) -"KH" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/vending/autodrobe/all_access{ - default_price = 0; - extra_price = 0 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/plasteel/dark, -/area/ship/crew/dorm) -"KX" = ( -/obj/structure/closet/crate, -/obj/item/construction/rcd/combat, -/obj/item/construction/rcd/combat, -/obj/item/construction/rcd/combat, -/obj/item/construction/rcd/combat, -/obj/item/construction/rcd/combat, -/obj/item/construction/rcd/combat, -/obj/item/construction/rcd/combat, -/obj/item/construction/rcd/combat, -/obj/item/construction/rcd/combat, -/obj/item/construction/rcd/combat, -/turf/open/floor/plasteel/mono/dark, -/area/ship/storage) -"KZ" = ( -/obj/effect/turf_decal/siding/red, -/obj/structure/closet/secure_closet/freezer/wall{ - dir = 1; - name = "refrigerator"; - pixel_y = -32 - }, -/obj/item/storage/box/donkpockets/donkpocketteriyaki, -/obj/item/storage/box/donkpockets/donkpocketteriyaki, -/obj/item/storage/box/donkpockets/donkpocketteriyaki, -/obj/item/storage/box/donkpockets/donkpocketteriyaki, -/obj/item/storage/box/donkpockets/donkpocketspicy, -/obj/item/storage/box/donkpockets/donkpocketspicy, -/obj/item/storage/box/donkpockets/donkpocketspicy, -/obj/item/storage/box/donkpockets/donkpocketspicy, -/obj/item/storage/box/donkpockets/donkpockethonk, -/obj/item/storage/box/donkpockets/donkpockethonk, -/obj/item/storage/box/donkpockets/donkpockethonk, -/obj/item/storage/box/donkpockets/donkpockethonk, -/obj/item/storage/box/donkpockets, -/obj/item/storage/box/donkpockets, -/obj/item/storage/box/donkpockets, -/obj/item/storage/box/donkpockets, -/turf/open/floor/plasteel/mono/dark, -/area/ship/crew/canteen) -"La" = ( -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "cargodoors"; - pixel_y = 25 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"Lr" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 4 - }, -/obj/structure/table, -/obj/item/reagent_containers/food/drinks/drinkingglass{ - pixel_x = -4; - pixel_y = -4 - }, -/obj/item/paper{ - desc = "A piece of paper depicting a extremely pissed up upper manager"; - default_raw_text = "YOU ARENT SUPPOSED TO BE MINING, HEAR ME!?!! YOU'RE SUPPOSED TO BE SELLING SHIT TO THE CONSUMERS YOU HEAR!! AS PUNISHMENT FOR THE LAST SHIFT, I HAVE REMOVED ALLL OF YOUR MINING TOOLS!! NOW GET BACK TO WORK!!"; - name = "angry letter from upper management" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/mono/dark, -/area/ship/crew/canteen) -"Lu" = ( -/obj/structure/chair/plastic{ - dir = 1 - }, -/turf/open/floor/carpet/red_gold, -/area/ship/crew/dorm) -"LU" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/air_input{ - dir = 4 - }, -/obj/structure/window/plasma/reinforced/spawner/east, -/turf/open/floor/engine/air, -/area/ship/engineering) -"LV" = ( -/obj/machinery/vending/boozeomat/all_access{ - default_price = 0; - extra_price = 0 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/crew/canteen) -"LY" = ( -/obj/machinery/firealarm/directional/west, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/structure/closet/crate, -/obj/item/card/emag/limited, -/obj/item/card/emag/limited, -/obj/item/card/emag/limited, -/obj/item/card/emag/limited, -/obj/item/card/emag/limited, -/obj/item/card/emag/limited, -/obj/item/card/emag/limited, -/obj/item/card/emag/limited, -/obj/item/card/emag/limited, -/obj/item/card/emag/limited, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/plasteel/mono/dark, -/area/ship/storage) -"Mg" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/neutral/mono, -/turf/open/floor/plasteel/mono/dark, -/area/ship/crew/canteen) -"Mi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/table/reinforced, -/obj/structure/window/plasma/reinforced, -/obj/machinery/door/window/eastright, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "cargodoors" - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo) -"Mj" = ( -/obj/machinery/atmospherics/components/binary/dp_vent_pump, -/obj/machinery/advanced_airlock_controller{ - pixel_x = -25 - }, -/turf/open/floor/plating, -/area/ship/engineering) -"Mx" = ( -/obj/effect/turf_decal/siding/blue{ - dir = 8 - }, -/obj/machinery/light_switch{ - dir = 1; - pixel_x = 10; - pixel_y = -21 - }, -/obj/machinery/firealarm/directional/south, -/obj/effect/turf_decal/trimline/opaque/blue/filled/warning, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"Mz" = ( -/obj/structure/tank_dispenser/oxygen, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/brown/border{ - dir = 9 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"MT" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "externalshutters" - }, -/turf/open/floor/plating, -/area/ship/cargo) -"MU" = ( -/obj/machinery/door/window/brigdoor{ - name = "Bridge"; - req_access_txt = "41" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 10 - }, -/turf/open/floor/carpet/red_gold, -/area/ship/hallway/central) -"Nr" = ( -/turf/template_noop, -/area/template_noop) -"NH" = ( -/obj/effect/turf_decal/siding/blue/corner, -/obj/effect/turf_decal/corner/opaque/blue/half{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"NJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"NQ" = ( -/obj/machinery/light/directional/west, -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/obj/item/storage/fancy/cigarettes/cigpack_syndicate{ - pixel_x = 6 - }, -/obj/item/lighter/greyscale{ - pixel_x = -3; - pixel_y = 4 - }, -/turf/open/floor/carpet/red_gold, -/area/ship/crew/dorm) -"On" = ( -/obj/item/storage/toolbox/syndicate, -/obj/item/storage/toolbox/syndicate, -/obj/item/storage/toolbox/syndicate, -/obj/item/storage/toolbox/syndicate, -/obj/item/storage/toolbox/syndicate, -/obj/item/storage/toolbox/syndicate, -/obj/item/storage/toolbox/syndicate, -/obj/item/storage/toolbox/syndicate, -/obj/item/storage/toolbox/syndicate, -/obj/item/storage/toolbox/syndicate, -/obj/item/storage/toolbox/syndicate, -/obj/structure/closet/crate, -/turf/open/floor/plasteel/mono/dark, -/area/ship/storage) -"Op" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "externalshutters" - }, -/turf/open/floor/plating, -/area/ship/crew/canteen) -"Oq" = ( -/obj/structure/table, -/obj/item/toy/cards/deck/syndicate, -/turf/open/floor/carpet/red_gold, -/area/ship/crew/dorm) -"Oz" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/effect/turf_decal/siding/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"OR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 6 - }, -/obj/effect/decal/cleanable/oil, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"OY" = ( -/obj/structure/closet/crate/trashcart, -/obj/effect/spawner/lootdrop/maintenance/eight, -/obj/effect/turf_decal/corner/opaque/brown/border{ - dir = 9 - }, -/obj/machinery/button/shieldwallgen{ - id = "luxembourg_cargo"; - pixel_x = -10; - pixel_y = 25 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/button/door{ - id = "syndiefuck"; - pixel_x = -20; - pixel_y = 26 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"Pb" = ( -/obj/effect/decal/cleanable/dirt, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/crew/dorm) -"Ph" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/effect/turf_decal/number/zero{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/engineering) -"Ps" = ( -/obj/machinery/light/directional/south, -/obj/item/banner/cargo, -/obj/effect/turf_decal/corner/opaque/brown/border{ - dir = 10 - }, -/obj/machinery/button/shieldwallgen{ - dir = 1; - id = "luxembourg_cargo"; - pixel_x = -10; - pixel_y = -25 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/button/door{ - dir = 1; - id = "syndiefuck"; - pixel_x = -20; - pixel_y = -26 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"PO" = ( -/obj/structure/sign/poster/contraband/syndicate_recruitment{ - pixel_x = 4; - pixel_y = -30 - }, -/obj/effect/turf_decal/siding/blue{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/blue/filled/warning, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"PW" = ( -/obj/structure/sign/donk{ - pixel_x = -32 - }, -/obj/structure/rack, -/obj/effect/turf_decal/corner/opaque/neutral/mono, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hallway/central) -"QG" = ( -/obj/machinery/light/directional/west, -/obj/machinery/vending/toyliberationstation, -/obj/structure/window/plasma/reinforced, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hallway/central) -"QQ" = ( -/obj/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/carpet/red_gold, -/area/ship/hallway/central) -"QT" = ( -/obj/machinery/light/directional/east, -/obj/structure/window/plasma/reinforced, -/obj/machinery/computer/selling_pad_control{ - dir = 8 - }, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hallway/central) -"QU" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/machinery/button/door{ - id = "warehouse"; - pixel_x = 24; - pixel_y = 21 - }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/storage) -"Rk" = ( -/obj/structure/rack, -/obj/effect/turf_decal/corner/opaque/neutral/mono, -/obj/machinery/light/directional/west, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hallway/central) -"Ro" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/structure/catwalk/over/plated_catwalk/white, -/obj/machinery/door/airlock/engineering{ - name = "Engineering" - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"Rp" = ( -/turf/open/floor/carpet/red_gold, -/area/ship/crew/dorm) -"RH" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/poddoor/shutters{ - id = "externalshutters" - }, -/turf/open/floor/plating, -/area/ship/cargo) -"RM" = ( -/obj/effect/turf_decal/trimline/opaque/brown/filled/warning, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"Sn" = ( -/obj/effect/turf_decal/siding/blue, -/obj/effect/turf_decal/siding/blue{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"SS" = ( -/obj/item/radio/headset/syndicate/alt, -/obj/item/toy/figure/cargotech, -/obj/item/clothing/suit/hooded/wintercoat/cargo, -/obj/item/stack/sheet/cardboard/fifty, -/obj/item/hand_labeler, -/obj/item/hand_labeler_refill, -/obj/item/clothing/under/syndicate/donk, -/obj/item/clothing/suit/hazardvest/donk, -/obj/item/stack/wrapping_paper, -/obj/item/stack/packageWrap, -/obj/structure/closet/wall{ - dir = 4; - icon_door = "orange_wall"; - name = "employee closet"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/engineering) -"Tj" = ( -/obj/effect/turf_decal/siding/red, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/light_switch{ - dir = 1; - pixel_x = 11; - pixel_y = -16 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/crew/canteen) -"Ty" = ( -/obj/machinery/light/directional/east, -/obj/structure/closet/crate/large, -/obj/item/mecha_parts/mecha_equipment/mining_scanner, -/mob/living/simple_animal/bot/secbot/grievous/toy, -/obj/effect/decal/cleanable/blood/old, -/obj/item/hand_labeler_refill, -/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp, -/obj/item/mecha_parts/mecha_equipment/rcd, -/obj/item/mecha_parts/mecha_equipment/cable_layer, -/turf/open/floor/plasteel/mono/dark, -/area/ship/storage) -"TB" = ( -/obj/effect/turf_decal/siding/blue{ - dir = 8 - }, -/obj/effect/turf_decal/siding/blue{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"TJ" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "externalshutters" - }, -/turf/open/floor/plating, -/area/ship/storage) -"TP" = ( -/obj/structure/rack, -/obj/effect/turf_decal/corner/opaque/neutral/mono, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hallway/central) -"TY" = ( -/obj/effect/turf_decal/corner/opaque/brown/bordercorner{ - dir = 1 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"Ud" = ( -/obj/effect/turf_decal/siding/blue, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"Uk" = ( -/turf/closed/wall/mineral/plastitanium, -/area/ship/storage) -"Uo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/components/binary/volume_pump, -/obj/structure/catwalk/over/plated_catwalk, -/turf/open/floor/plating, -/area/ship/engineering) -"Uu" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/storage) -"Uw" = ( -/obj/structure/toilet{ - dir = 4 - }, -/obj/structure/curtain, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/plasteel/patterned, -/area/ship/crew/dorm) -"UE" = ( -/turf/open/floor/plating, -/area/ship/engineering) -"UI" = ( -/obj/effect/turf_decal/corner/opaque/neutral/mono, -/turf/open/floor/plasteel/mono/dark, -/area/ship/crew/canteen) -"UO" = ( -/obj/machinery/atmospherics/pipe/layer_manifold, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/engineering) -"Va" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ - dir = 4 - }, -/obj/structure/catwalk/over/plated_catwalk, -/turf/open/floor/plating, -/area/ship/engineering) -"Vb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/opaque/blue/filled/warning, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"Vi" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/effect/turf_decal/industrial/traffic{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew/dorm) -"Vn" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/brown/border{ - dir = 4 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"Vs" = ( -/obj/machinery/atmospherics/components/binary/volume_pump, -/obj/structure/catwalk/over/plated_catwalk, -/turf/open/floor/plating, -/area/ship/engineering) -"VG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/effect/turf_decal/number/two{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/engineering) -"VR" = ( -/turf/closed/wall/r_wall/syndicate/nodiagonal, -/area/ship/engineering) -"VS" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/item/stack/sheet/plastitaniumglass{ - amount = 20 - }, -/obj/item/stack/sheet/mineral/plastitanium{ - amount = 20 - }, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/effect/decal/cleanable/dirt, -/obj/item/hand_labeler_refill, -/obj/item/stack/sheet/mineral/wood/fifty, -/turf/open/floor/plasteel/mono/dark, -/area/ship/storage) -"Wh" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/effect/turf_decal/trimline/opaque/orange/filled/warning, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/patterned, -/area/ship/crew/dorm) -"Wt" = ( -/obj/machinery/smartfridge/bloodbank/preloaded, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/storage) -"WB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"WE" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/hallway/central) -"WQ" = ( -/obj/machinery/firealarm/directional/east, -/obj/machinery/suit_storage_unit/inherit{ - req_access_txt = "41" - }, -/obj/item/clothing/suit/space/syndicate, -/obj/item/clothing/head/helmet/space/syndicate, -/obj/item/clothing/mask/breath, -/turf/open/floor/plasteel/mono/dark, -/area/ship/engineering) -"WU" = ( -/obj/effect/turf_decal/siding/blue{ - dir = 8 - }, -/obj/effect/turf_decal/siding/blue{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"Xf" = ( -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/machinery/power/terminal{ - dir = 4 - }, -/obj/structure/cable/yellow, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/navbeacon/wayfinding{ - codes_txt = "patrol;next_patrol=lux_warehouse"; - location = "lux_engine" - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"Xw" = ( -/obj/machinery/washing_machine, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plasteel/patterned, -/area/ship/crew/dorm) -"XM" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/portable_atmospherics/pump, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"XS" = ( -/obj/machinery/atmospherics/components/unary/shuttle/heater{ - dir = 1 - }, -/obj/structure/window/reinforced/spawner, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/machinery/door/poddoor/shutters{ - id = "externalshutters" - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"Yd" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/orange/visible{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/catwalk/over/plated_catwalk/white, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/ship/engineering) -"Yq" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/siding/blue{ - dir = 8 - }, -/obj/effect/turf_decal/siding/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"YE" = ( -/obj/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/item/radio/intercom/directional/east{ - pixel_y = 37 - }, -/turf/open/floor/carpet/red_gold, -/area/ship/hallway/central) -"YI" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/crew/canteen) -"YK" = ( -/obj/machinery/airalarm/directional/west, -/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/xenom, -/obj/item/clothing/head/collectable/petehat, -/obj/structure/closet/crate, -/turf/open/floor/plasteel/mono/dark, -/area/ship/storage) -"YL" = ( -/obj/structure/chair/plastic{ - dir = 4 - }, -/obj/effect/turf_decal/siding/red{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/neutral/border{ - dir = 4 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hallway/central) -"YO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 5 - }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/storage) -"YZ" = ( -/obj/structure/closet/secure{ - icon_state = "eng_secure"; - name = "GEC Engineer's locker" - }, -/obj/item/clothing/gloves/color/yellow, -/obj/item/pipe_dispenser, -/obj/item/clothing/glasses/meson/engine, -/obj/item/clothing/suit/toggle/hazard, -/obj/item/clothing/head/beret/eng/hazard, -/obj/item/clothing/head/beret/eng, -/obj/item/holosign_creator/engineering, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 8 - }, -/obj/item/clothing/under/syndicate/gec, -/obj/item/clothing/under/syndicate/gec, -/obj/item/stack/tape/industrial/pro, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/light_switch{ - pixel_y = 23; - pixel_x = 11 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"Zm" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/orange/visible{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 9 - }, -/obj/structure/catwalk/over/plated_catwalk, -/turf/open/floor/plating, -/area/ship/engineering) -"ZV" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 5 - }, -/obj/structure/catwalk/over/plated_catwalk, -/obj/machinery/atmospherics/components/unary/portables_connector{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ship/engineering) - -(1,1,1) = {" -Nr -Nr -Nr -Nr -Nr -Nr -Nr -Nr -Nr -GD -Nr -Nr -Nr -Nr -Nr -Nr -Nr -Nr -Nr -Nr -Nr -Nr -Nr -Nr -Nr -Nr -Nr -"} -(2,1,1) = {" -Nr -Nr -Nr -Nr -Nr -Nr -hs -HG -JT -JT -JT -it -Ka -Nr -Nr -Nr -Nr -Nr -Nr -Nr -Nr -Nr -Nr -Nr -Nr -Nr -Nr -"} -(3,1,1) = {" -Nr -Nr -Nr -Nr -Bw -MT -hs -OY -hX -hX -fB -Ps -Ka -TJ -TJ -Uk -Nr -Nr -Nr -Nr -pt -VR -pt -Nr -Nr -Nr -Nr -"} -(4,1,1) = {" -Nr -Nr -Nr -Bw -hs -Mz -qh -JV -AL -hi -CC -RM -vb -VS -qV -Wt -TJ -Uk -Nr -Uk -VR -qe -VR -pt -Nr -Nr -Nr -"} -(5,1,1) = {" -Nr -Nr -hs -hs -bB -TY -CC -OR -gf -Je -wP -fy -lQ -QU -kI -iF -vT -Ka -TJ -Ka -VR -qR -jK -VR -Nr -Nr -Nr -"} -(6,1,1) = {" -Nr -Nr -RH -sV -yh -BZ -Vn -Ee -EG -hu -uX -JU -Ka -JO -iO -Fj -YO -YK -ks -On -vp -rV -LU -VR -pt -Nr -Nr -"} -(7,1,1) = {" -Nr -Nr -hs -hs -hs -ga -ug -Mi -tV -hs -hs -hs -Ka -Ka -Ty -Ko -Uu -lg -hm -rU -Ro -uo -ZV -mK -vp -pt -Nr -"} -(8,1,1) = {" -Nr -Nr -Nr -WE -WE -La -aB -NJ -Ud -TP -Rk -PW -cI -Ka -Ka -KX -LY -cq -pd -ke -vp -dC -GG -Uo -XS -iR -hd -"} -(9,1,1) = {" -tU -WE -kZ -WE -QG -NH -wd -WB -tO -Iv -Iv -Iv -yf -DG -Ka -Ka -Ka -Ka -Ka -Ka -vp -gj -Zm -Vs -vz -sh -Nr -"} -(10,1,1) = {" -WE -WE -Ej -bi -QQ -xa -dp -bV -Sn -TP -TP -jv -pL -Mx -vp -fo -SS -EZ -mm -tx -pR -XM -ql -pJ -vp -vp -vp -"} -(11,1,1) = {" -Ij -Ga -dA -jr -MU -rh -TB -WU -yX -gC -gC -Yq -Jq -Vb -dL -VG -Ph -DJ -mE -yQ -Xf -CM -Va -dM -AE -Mj -qP -"} -(12,1,1) = {" -WE -WE -jH -fv -YE -xa -dp -dH -Sn -TP -TP -DE -Jr -PO -vp -WQ -xt -cB -Ip -ul -pR -lb -Gr -eD -na -UO -Er -"} -(13,1,1) = {" -vw -WE -kZ -WE -QT -bp -Oz -vf -lK -ym -cs -eX -CI -DG -EO -EO -EO -EO -EO -EO -vp -CW -lW -lt -vz -sh -Nr -"} -(14,1,1) = {" -Nr -Nr -Nr -WE -WE -YL -YL -qO -xc -tH -IT -HK -zc -EO -EO -BX -if -EO -Kg -Uw -vp -YZ -Yd -lt -vz -sh -UE -"} -(15,1,1) = {" -Nr -Nr -YI -YI -YI -qf -HZ -Lr -Dw -rq -YI -EO -EO -EO -nz -Vi -sI -Ai -FV -Wh -eL -iZ -bt -CT -vp -pt -Nr -"} -(16,1,1) = {" -Nr -Nr -ow -YI -yd -UI -UI -Fq -UI -Tj -YI -Ji -NQ -BM -zW -bN -aK -Pb -Xw -eF -vp -uK -wT -VR -pt -Nr -Nr -"} -(17,1,1) = {" -Nr -Nr -Bt -YI -wN -UI -rG -Mg -Dq -CV -Da -cb -aD -Id -rm -xw -KH -EO -mi -EO -VR -EW -Kk -VR -Nr -Nr -Nr -"} -(18,1,1) = {" -Nr -Nr -Nr -Bt -YI -uB -kE -sF -UI -KZ -YI -Rp -DW -Oq -Lu -EO -mi -Hx -Nr -Hx -VR -sk -VR -pt -Nr -Nr -Nr -"} -(19,1,1) = {" -Nr -Nr -Nr -Nr -Bt -Op -YI -fn -LV -DA -YI -tF -EO -mi -mi -Hx -Nr -Nr -Nr -Nr -pt -VR -pt -Nr -Nr -Nr -Nr -"} -(20,1,1) = {" -Nr -Nr -Nr -Nr -Nr -Nr -YI -YI -Op -YI -YI -EO -EO -Nr -Nr -Nr -Nr -Nr -Nr -Nr -Nr -Nr -Nr -Nr -Nr -Nr -Nr -"} diff --git a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm index 6c14c9503772..a1392f974714 100644 --- a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm +++ b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm @@ -2791,7 +2791,7 @@ pixel_y = 4; pixel_x = -5 }, -/obj/item/book/manual/wiki/tcomms{ +/obj/item/book/manual/wiki/engineering{ pixel_x = 9; pixel_y = 3 }, @@ -3719,9 +3719,9 @@ /obj/item/ammo_casing/caseless/rocket, /obj/item/ammo_casing/caseless/rocket/hedp, /obj/item/ammo_casing/caseless/rocket/hedp, -/obj/item/storage/box/lethalshot, -/obj/item/storage/box/lethalshot, -/obj/item/storage/box/lethalshot, +/obj/item/ammo_box/a12g, +/obj/item/ammo_box/a12g, +/obj/item/ammo_box/a12g, /obj/item/gun/ballistic/rocketlauncher, /obj/item/gun/ballistic/automatic/ebr, /obj/item/gun/ballistic/automatic/ebr{ diff --git a/_maps/templates/shelter_3.dmm b/_maps/templates/shelter_3.dmm index 164018096972..402c5f04923c 100644 --- a/_maps/templates/shelter_3.dmm +++ b/_maps/templates/shelter_3.dmm @@ -39,7 +39,7 @@ /turf/open/floor/pod/dark, /area/survivalpod) "i" = ( -/obj/item/book/manual/wiki/barman_recipes, +/obj/item/book/manual/wiki/drinks, /obj/item/reagent_containers/food/drinks/shaker, /obj/item/reagent_containers/glass/rag, /obj/structure/table/wood/fancy/black, diff --git a/check_regex.yaml b/check_regex.yaml index c8fd8f4e11cd..5420d8fa692c 100644 --- a/check_regex.yaml +++ b/check_regex.yaml @@ -38,7 +38,7 @@ standards: - exactly: [ - 293, + 271, "non-bitwise << uses", '(?LOGS)" +/// Displays "(SHOW)" in the chat, when clicked it tries to show atom(paper). First you need to set the request_state variable to TRUE for the paper. +#define ADMIN_SHOW_PAPER(atom) "(SHOW)" #define ADMIN_PUNISHMENT_BREAK_BONES "Break all bones" #define ADMIN_PUNISHMENT_LIGHTNING "Lightning bolt" diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index 004b2f23fedf..d19d1f7e9633 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -387,6 +387,8 @@ #define COMPONENT_BLOCK_SWAP (1<<0) ///from base of /mob/verb/pointed: (atom/A) #define COMSIG_MOB_POINTED "mob_pointed" +/// from mob/get_status_tab_items(): (list/items) +#define COMSIG_MOB_GET_STATUS_TAB_ITEMS "mob_get_status_tab_items" ///from base of mob/living/resist() (/mob/living) #define COMSIG_LIVING_RESIST "living_resist" ///from base of mob/living/look_up() (/mob/living) diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm index 6adb8fdbc364..c65f26a89fd3 100644 --- a/code/__DEFINES/preferences.dm +++ b/code/__DEFINES/preferences.dm @@ -23,6 +23,7 @@ #define SOUND_ENDOFROUND (1<<20) #define ADMIN_IGNORE_CULT_GHOST (1<<21) #define SPLIT_ADMIN_TABS (1<<22) +#define FAST_MC_REFRESH (1<<23) #define TOGGLES_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|SOUND_ENDOFROUND|MEMBER_PUBLIC|INTENT_STYLE|MIDROUND_ANTAG|SOUND_INSTRUMENTS|SOUND_SHIP_AMBIENCE|SOUND_PRAYERS|SOUND_ANNOUNCEMENTS) diff --git a/code/__DEFINES/statpanel.dm b/code/__DEFINES/statpanel.dm index c5378235fc63..7f954b6ad378 100644 --- a/code/__DEFINES/statpanel.dm +++ b/code/__DEFINES/statpanel.dm @@ -1,11 +1,5 @@ /// Bare minimum required verbs for client functionality GLOBAL_LIST_INIT(client_verbs_required, list( - // Stat panel internal verbs - /client/verb/set_tab, - /client/verb/send_tabs, - /client/verb/remove_tabs, - /client/verb/reset_tabs, - /client/verb/panel_ready, // Skin buttons that should always work /client/verb/rules, /client/verb/lore, diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index edade85c5671..629755487849 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -177,6 +177,7 @@ #define FIRE_PRIORITY_TGUI 110 #define FIRE_PRIORITY_TICKER 200 #define FIRE_PRIORITY_ATMOS_ADJACENCY 300 +#define FIRE_PRIORITY_STATPANEL 390 #define FIRE_PRIORITY_CHAT 400 #define FIRE_PRIORITY_RUNECHAT 410 #define FIRE_PRIORITY_MOUSE_ENTERED 450 diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index 1048aaa5c861..e44755574eea 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -35,6 +35,7 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/squid_face, GLOB.squid_face_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/ipc_screens, GLOB.ipc_screens_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/ipc_antennas, GLOB.ipc_antennas_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/ipc_tail, GLOB.ipc_tail_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/ipc_chassis, GLOB.ipc_chassis_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/moth_markings, GLOB.moth_markings_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/spider_legs, GLOB.spider_legs_list) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 8838ba324530..fdeadc13b61a 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -72,6 +72,8 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/ipc_screens, GLOB.ipc_screens_list) if(!GLOB.ipc_antennas_list.len) init_sprite_accessory_subtypes(/datum/sprite_accessory/ipc_antennas, GLOB.ipc_antennas_list) + if(!GLOB.ipc_tail_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/ipc_antennas, GLOB.ipc_tail_list) if(!GLOB.ipc_chassis_list.len) init_sprite_accessory_subtypes(/datum/sprite_accessory/ipc_chassis, GLOB.ipc_chassis_list) if(!GLOB.spider_legs_list.len) diff --git a/code/__HELPERS/verbs.dm b/code/__HELPERS/verbs.dm index 7f9fb0e4049a..83bdcb63b7fb 100644 --- a/code/__HELPERS/verbs.dm +++ b/code/__HELPERS/verbs.dm @@ -43,9 +43,8 @@ for(var/thing in verbs_list) var/procpath/verb_to_add = thing output_list[++output_list.len] = list(verb_to_add.category, verb_to_add.name) - output_list = url_encode(json_encode(output_list)) - target << output("[output_list];", "statbrowser:add_verb_list") + target.stat_panel.send_message("add_verb_list", output_list) /** * handles removing verb and sending it to browser to update, use this for removing verbs @@ -96,6 +95,5 @@ for(var/thing in verbs_list) var/procpath/verb_to_remove = thing output_list[++output_list.len] = list(verb_to_remove.category, verb_to_remove.name) - output_list = url_encode(json_encode(output_list)) - target << output("[output_list];", "statbrowser:remove_verb_list") + target.stat_panel.send_message("remove_verb_list", output_list) diff --git a/code/_globalvars/lists/faxes.dm b/code/_globalvars/lists/faxes.dm deleted file mode 100644 index 5c78629de283..000000000000 --- a/code/_globalvars/lists/faxes.dm +++ /dev/null @@ -1,26 +0,0 @@ -/** - * This defines the list of faxes managed by the server administrators. They are not physically present in - * the game, but are shown in the fax list as existing. - * Lists: - * * additional_faxes_list - A list of "legal" faxes available with authorization. - * * frontier_faxes_list - List of faxes available after hacking. - * - * The list consists of the following elements: - * * fax_name - The name displayed in the fax list. - * * button_color - The color of this fax button in the list of all faxes. - */ -GLOBAL_LIST_INIT(additional_faxes_list, list( - list("fax_name" = "Nanotrasen Central Command", "button_color" = "#46B946"), - list("fax_name" = "Inteq Management Field Command", "button_color" = "#FACE65"), - list("fax_name" = "Colonial Minutemen Headquarters", "button_color" = "#538ACF"), - list("fax_name" = "Saint-Roumain Council of Huntsmen", "button_color" = "#6B443D"), - list("fax_name" = "SolGov Department of Administrative Affairs", "button_color" = "#536380"), - list("fax_name" = "Syndicate Coordination Center", "button_color" = "#B22C20"), - list("fax_name" = "Outpost Administration", "button_color" = "#dddfc9"), -)) - -GLOBAL_LIST_INIT(frontier_faxes_list, list( - list("fax_name" = "Frontiersmen Communications Outpost", "button_color" = "#70654C") -)) - -GLOBAL_LIST_EMPTY(fax_machines) //list of all fax machines diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index aca090086487..479e43e34543 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -39,6 +39,7 @@ GLOBAL_LIST_EMPTY(moth_markings_list) GLOBAL_LIST_EMPTY(squid_face_list) GLOBAL_LIST_EMPTY(ipc_screens_list) GLOBAL_LIST_EMPTY(ipc_antennas_list) +GLOBAL_LIST_EMPTY(ipc_tail_list) GLOBAL_LIST_EMPTY(ipc_chassis_list) GLOBAL_LIST_INIT(ipc_brain_list, list("Posibrain", "Man-Machine Interface")) GLOBAL_LIST_EMPTY(spider_legs_list) diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm index 82258dfdcd43..ac54c7a39b33 100644 --- a/code/_globalvars/lists/objects.dm +++ b/code/_globalvars/lists/objects.dm @@ -11,6 +11,7 @@ GLOBAL_LIST_EMPTY(wayfindingbeacons) //list of all navigation beacons used GLOBAL_LIST_EMPTY(nuke_list) GLOBAL_LIST_EMPTY(alarmdisplay) //list of all machines or programs that can display station alerts GLOBAL_LIST_EMPTY(singularities) //list of all singularities on the station (actually technically all engines) +GLOBAL_LIST_EMPTY(fax_machines) //list of all fax machines GLOBAL_LIST(chemical_reactions_list) //list of all /datum/chemical_reaction datums. Used during chemical reactions GLOBAL_LIST(chemical_reagents_list) //list of all /datum/reagent datums indexed by reagent id. Used by chemistry stuff diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index f8c60ecd97fa..81ce3ceec1eb 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -343,15 +343,13 @@ SEND_SIGNAL(src, COMSIG_CLICK_ALT, user) var/turf/T = get_turf(src) if(T && (isturf(loc) || isturf(src)) && user.TurfAdjacent(T)) - user.listed_turf = T - user.client << output("[url_encode(json_encode(T.name))];", "statbrowser:create_listedturf") + user.set_listed_turf(T) /// Use this instead of [/mob/proc/AltClickOn] where you only want turf content listing without additional atom alt-click interaction /atom/proc/AltClickNoInteract(mob/user, atom/A) var/turf/T = get_turf(A) if(T && user.TurfAdjacent(T)) - user.listed_turf = T - user.client << output("[url_encode(json_encode(T.name))];", "statbrowser:create_listedturf") + user.set_listed_turf(T) /mob/proc/TurfAdjacent(turf/T) return T.Adjacent(src) diff --git a/code/_onclick/drag_drop.dm b/code/_onclick/drag_drop.dm index ac401489f40a..632bc77ec958 100644 --- a/code/_onclick/drag_drop.dm +++ b/code/_onclick/drag_drop.dm @@ -15,12 +15,12 @@ if(!Adjacent(usr) || !over.Adjacent(usr)) return // should stop you from dragging through windows - over.MouseDrop_T(src,usr) + over.MouseDrop_T(src,usr,params) return // receive a mousedrop -/atom/proc/MouseDrop_T(atom/dropping, mob/user) - SEND_SIGNAL(src, COMSIG_MOUSEDROPPED_ONTO, dropping, user) +/atom/proc/MouseDrop_T(atom/dropping, mob/user, params) + SEND_SIGNAL(src, COMSIG_MOUSEDROPPED_ONTO, dropping, user, params) return diff --git a/code/controllers/subsystem/processing/fluids.dm b/code/controllers/subsystem/processing/fluids.dm index c4fa13d69399..70903e0088c7 100644 --- a/code/controllers/subsystem/processing/fluids.dm +++ b/code/controllers/subsystem/processing/fluids.dm @@ -1,5 +1,5 @@ PROCESSING_SUBSYSTEM_DEF(fluids) name = "Fluids" - wait = 20 + wait = 10 stat_tag = "FD" //its actually Fluid Ducts - flags = SS_NO_INIT | SS_TICKER + flags = SS_NO_INIT diff --git a/code/controllers/subsystem/processing/obj_tab_items.dm b/code/controllers/subsystem/processing/obj_tab_items.dm new file mode 100644 index 000000000000..53786daf0117 --- /dev/null +++ b/code/controllers/subsystem/processing/obj_tab_items.dm @@ -0,0 +1,24 @@ +PROCESSING_SUBSYSTEM_DEF(obj_tab_items) + name = "Obj Tab Items" + flags = SS_NO_INIT + runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT + wait = 0.1 SECONDS + +// I know this is mostly copypasta, but I want to change the processing logic +// Sorry bestie :( +/datum/controller/subsystem/processing/obj_tab_items/fire(resumed = FALSE) + if (!resumed) + currentrun = processing.Copy() + //cache for sanic speed (lists are references anyways) + var/list/current_run = currentrun + + while(current_run.len) + var/datum/thing = current_run[current_run.len] + if(QDELETED(thing)) + processing -= thing + else if(thing.process(wait * 0.1) == PROCESS_KILL) + // fully stop so that a future START_PROCESSING will work + STOP_PROCESSING(src, thing) + if (MC_TICK_CHECK) + return + current_run.len-- diff --git a/code/controllers/subsystem/statpanel.dm b/code/controllers/subsystem/statpanel.dm index 95e40bff159f..6d6e9549d95f 100644 --- a/code/controllers/subsystem/statpanel.dm +++ b/code/controllers/subsystem/statpanel.dm @@ -3,15 +3,26 @@ SUBSYSTEM_DEF(statpanels) wait = 4 init_order = INIT_ORDER_STATPANELS init_stage = INITSTAGE_EARLY + priority = FIRE_PRIORITY_STATPANEL runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY + flags = SS_NO_INIT var/list/currentrun = list() - var/encoded_global_data - var/mc_data_encoded - var/list/cached_images = list() + var/list/global_data + var/list/mc_data + + ///how many subsystem fires between most tab updates + var/default_wait = 10 + ///how many subsystem fires between updates of the status tab + var/status_wait = 2 + ///how many subsystem fires between updates of the MC tab + var/mc_wait = 5 + ///how many full runs this subsystem has completed. used for variable rate refreshes. + var/num_fires = 0 /datum/controller/subsystem/statpanels/fire(resumed = FALSE) if (!resumed) - var/list/global_data = list( + num_fires++ + global_data = list( "Round ID: [GLOB.round_id ? GLOB.round_id : "NULL"]", "Time Dilation: [round(SStime_track.time_dilation_current,1)]% AVG:([round(SStime_track.time_dilation_avg_fast,1)]%, [round(SStime_track.time_dilation_avg,1)]%, [round(SStime_track.time_dilation_avg_slow,1)]%)", "Server Time: [time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss")]", @@ -26,129 +37,191 @@ SUBSYSTEM_DEF(statpanels) if(SSshuttle.jump_mode != BS_JUMP_IDLE) global_data += "Jump: [round(timeleft(SSshuttle.jump_timer)/10)]s" - encoded_global_data = url_encode(json_encode(global_data)) src.currentrun = GLOB.clients.Copy() - mc_data_encoded = null + mc_data = null + var/list/currentrun = src.currentrun while(length(currentrun)) var/client/target = currentrun[length(currentrun)] currentrun.len-- - if(!target?.statbrowser_ready) + + if(!target?.stat_panel.is_ready()) continue - if(target.stat_tab == "Status") - var/ping_str = url_encode("Ping: [round(target.lastping, 1)]ms (Average: [round(target.avgping, 1)]ms)") - var/other_str = url_encode(json_encode(target.mob.get_status_tab_items())) - target << output("[encoded_global_data];[ping_str];[other_str]", "statbrowser:update") + + if(target.stat_tab == "Status" && num_fires % status_wait == 0) + set_status_tab(target) + if(!target.holder) - target << output("", "statbrowser:remove_admin_tabs") + target.stat_panel.send_message("remove_admin_tabs") else - target << output("[!!(target.prefs.toggles & SPLIT_ADMIN_TABS)]", "statbrowser:update_split_admin_tabs") + target.stat_panel.send_message("update_split_admin_tabs", !!(target.prefs.toggles & SPLIT_ADMIN_TABS)) + if(!("MC" in target.panel_tabs) || !("Tickets" in target.panel_tabs)) - target << output("[url_encode(target.holder.href_token)]", "statbrowser:add_admin_tabs") - if(target.stat_tab == "MC") - var/turf/eye_turf = get_turf(target.eye) - var/coord_entry = url_encode(COORD(eye_turf)) - if(!mc_data_encoded) - generate_mc_data() - target << output("[mc_data_encoded];[coord_entry]", "statbrowser:update_mc") - if(target.stat_tab == "Tickets") - var/list/ahelp_tickets = GLOB.ahelp_tickets.stat_entry() - target << output("[url_encode(json_encode(ahelp_tickets))];", "statbrowser:update_tickets") - var/datum/interview_manager/m = GLOB.interviews - - // get open interview count - var/dc = 0 - for (var/ckey in m.open_interviews) - var/datum/interview/I = m.open_interviews[ckey] - if (I && !I.owner) - dc++ - var/stat_string = "([m.open_interviews.len - dc] online / [dc] disconnected)" - - // Prepare each queued interview - var/list/queued = list() - for (var/datum/interview/I in m.interview_queue) - queued += list(list( - "ref" = REF(I), - "status" = "\[[I.pos_in_queue]\]: [I.owner_ckey][!I.owner ? " (DC)": ""] \[INT-[I.id]\]" - )) - - var/list/data = list( - "status" = list( - "Active:" = "[m.open_interviews.len] [stat_string]", - "Queued:" = "[m.interview_queue.len]", - "Closed:" = "[m.closed_interviews.len]"), - "interviews" = queued - ) - - // Push update - target << output("[url_encode(json_encode(data))];", "statbrowser:update_interviews") + target.stat_panel.send_message("add_admin_tabs", target.holder.href_token) + + if(target.stat_tab == "MC" && ((num_fires % mc_wait == 0) || (target?.prefs.toggles & FAST_MC_REFRESH))) + set_MC_tab(target) + + if(target.stat_tab == "Tickets" && num_fires % default_wait == 0) + set_tickets_tab(target) + if(!length(GLOB.sdql2_queries) && ("SDQL2" in target.panel_tabs)) - target << output("", "statbrowser:remove_sdql2") - else if(length(GLOB.sdql2_queries) && (target.stat_tab == "SDQL2" || !("SDQL2" in target.panel_tabs))) - var/list/sdql2A = list() - sdql2A[++sdql2A.len] = list("", "Access Global SDQL2 List", REF(GLOB.sdql2_vv_statobj)) - var/list/sdql2B = list() - for(var/i in GLOB.sdql2_queries) - var/datum/SDQL2_query/Q = i - sdql2B = Q.generate_stat() - sdql2A += sdql2B - target << output(url_encode(json_encode(sdql2A)), "statbrowser:update_sdql2") + target.stat_panel.send_message("remove_sdql2") + + else if(length(GLOB.sdql2_queries) && (target.stat_tab == "SDQL2" || !("SDQL2" in target.panel_tabs)) && num_fires % default_wait == 0) + set_SDQL2_tab(target) + if(target.mob) - var/mob/M = target.mob - if((target.stat_tab in target.spell_tabs) || !length(target.spell_tabs) && (length(M.mob_spell_list) || length(M.mind?.spell_list))) - var/list/proc_holders = M.get_proc_holders() - target.spell_tabs.Cut() - for(var/phl in proc_holders) - var/list/proc_holder_list = phl - target.spell_tabs |= proc_holder_list[1] - var/proc_holders_encoded = "" - if(length(proc_holders)) - proc_holders_encoded = url_encode(json_encode(proc_holders)) - target << output("[url_encode(json_encode(target.spell_tabs))];[proc_holders_encoded]", "statbrowser:update_spells") - if(M?.listed_turf) - var/mob/target_mob = M - if(!target_mob.TurfAdjacent(target_mob.listed_turf)) - target << output("", "statbrowser:remove_listedturf") - target_mob.listed_turf = null - else if(target.stat_tab == M?.listed_turf.name || !(M?.listed_turf.name in target.panel_tabs)) - var/list/overrides = list() - var/list/turfitems = list() - for(var/img in target.images) - var/image/target_image = img - if(!target_image.loc || target_image.loc.loc != target_mob.listed_turf || !target_image.override) - continue - overrides += target_image.loc - turfitems[++turfitems.len] = list("[target_mob.listed_turf]", REF(target_mob.listed_turf), icon2html(target_mob.listed_turf, target, sourceonly=TRUE)) - for(var/tc in target_mob.listed_turf) - var/atom/movable/turf_content = tc - if(turf_content.mouse_opacity == MOUSE_OPACITY_TRANSPARENT) - continue - if(turf_content.invisibility > target_mob.see_invisible) - continue - if(turf_content in overrides) - continue - if(turf_content.IsObscured()) - continue - if(length(turfitems) < 30) // only create images for the first 30 items on the turf, for performance reasons - if(!(REF(turf_content) in cached_images)) - cached_images += REF(turf_content) - turf_content.RegisterSignal(turf_content, COMSIG_PARENT_QDELETING, TYPE_PROC_REF(/atom, remove_from_cache)) // we reset cache if anything in it gets deleted - if(ismob(turf_content) || length(turf_content.overlays) > 2) - turfitems[++turfitems.len] = list("[turf_content.name]", REF(turf_content), costly_icon2html(turf_content, target, sourceonly=TRUE)) - else - turfitems[++turfitems.len] = list("[turf_content.name]", REF(turf_content), icon2html(turf_content, target, sourceonly=TRUE)) - else - turfitems[++turfitems.len] = list("[turf_content.name]", REF(turf_content)) - else - turfitems[++turfitems.len] = list("[turf_content.name]", REF(turf_content)) - turfitems = url_encode(json_encode(turfitems)) - target << output("[turfitems];", "statbrowser:update_listedturf") + var/mob/target_mob = target.mob + if((target.stat_tab in target.spell_tabs) || !length(target.spell_tabs) && (length(target_mob.mob_spell_list) || length(target_mob.mind?.spell_list))) + if(num_fires % default_wait == 0) + set_spells_tab(target, target_mob) + + // Handle the examined turf of the stat panel, if it's been long enough, or if we've generated new images for it + var/turf/listed_turf = target_mob?.listed_turf + if(listed_turf && num_fires % default_wait == 0) + if(target.stat_tab == listed_turf.name || !(listed_turf.name in target.panel_tabs)) + set_turf_examine_tab(target, target_mob) + if(MC_TICK_CHECK) return +/datum/controller/subsystem/statpanels/proc/set_status_tab(client/target) + if(!global_data)//statbrowser hasnt fired yet and we were called from immediate_send_stat_data() + return + + target.stat_panel.send_message("update_stat", list( + "global_data" = global_data, + "ping_str" = "Ping: [round(target.lastping, 1)]ms (Average: [round(target.avgping, 1)]ms)", + "other_str" = target.mob?.get_status_tab_items(), + )) + +/datum/controller/subsystem/statpanels/proc/set_MC_tab(client/target) + var/turf/eye_turf = get_turf(target.eye) + var/coord_entry = COORD(eye_turf) + if(!mc_data) + generate_mc_data() + target.stat_panel.send_message("update_mc", list("mc_data" = mc_data, "coord_entry" = coord_entry)) + +/datum/controller/subsystem/statpanels/proc/set_tickets_tab(client/target) + var/list/ahelp_tickets = GLOB.ahelp_tickets.stat_entry() + target.stat_panel.send_message("update_tickets", ahelp_tickets) + var/datum/interview_manager/m = GLOB.interviews + + // get open interview count + var/dc = 0 + for (var/ckey in m.open_interviews) + var/datum/interview/current_interview = m.open_interviews[ckey] + if (current_interview && !current_interview.owner) + dc++ + var/stat_string = "([m.open_interviews.len - dc] online / [dc] disconnected)" + + // Prepare each queued interview + var/list/queued = list() + for (var/datum/interview/queued_interview in m.interview_queue) + queued += list(list( + "ref" = REF(queued_interview), + "status" = "\[[queued_interview.pos_in_queue]\]: [queued_interview.owner_ckey][!queued_interview.owner ? " (DC)": ""] \[INT-[queued_interview.id]\]" + )) + + var/list/data = list( + "status" = list( + "Active:" = "[m.open_interviews.len] [stat_string]", + "Queued:" = "[m.interview_queue.len]", + "Closed:" = "[m.closed_interviews.len]"), + "interviews" = queued + ) + + // Push update + target.stat_panel.send_message("update_interviews", data) + +/datum/controller/subsystem/statpanels/proc/set_SDQL2_tab(client/target) + var/list/sdql2A = list() + sdql2A[++sdql2A.len] = list("", "Access Global SDQL2 List", REF(GLOB.sdql2_vv_statobj)) + var/list/sdql2B = list() + for(var/datum/SDQL2_query/query as anything in GLOB.sdql2_queries) + sdql2B = query.generate_stat() + + sdql2A += sdql2B + target.stat_panel.send_message("update_sdql2", sdql2A) + +/datum/controller/subsystem/statpanels/proc/set_spells_tab(client/target, mob/target_mob) + var/list/proc_holders = target_mob.get_proc_holders() + target.spell_tabs.Cut() + + for(var/proc_holder_list as anything in proc_holders) + target.spell_tabs |= proc_holder_list[1] + + target.stat_panel.send_message("update_spells", list(spell_tabs = target.spell_tabs, proc_holders_encoded = proc_holders)) + +/datum/controller/subsystem/statpanels/proc/set_turf_examine_tab(client/target, mob/target_mob) + var/list/overrides = list() + for(var/image/target_image as anything in target.images) + if(!target_image.loc || target_image.loc.loc != target_mob.listed_turf || !target_image.override) + continue + overrides += target_image.loc + + var/list/atoms_to_display = list(target_mob.listed_turf) + for(var/atom/movable/turf_content as anything in target_mob.listed_turf) + if(turf_content.mouse_opacity == MOUSE_OPACITY_TRANSPARENT) + continue + if(turf_content.invisibility > target_mob.see_invisible) + continue + if(turf_content in overrides) + continue + if(turf_content.IsObscured()) + continue + atoms_to_display += turf_content + + /// Set the atoms we're meant to display + var/datum/object_window_info/obj_window = target.obj_window + obj_window.atoms_to_show = atoms_to_display + START_PROCESSING(SSobj_tab_items, obj_window) + refresh_client_obj_view(target) + +/datum/controller/subsystem/statpanels/proc/refresh_client_obj_view(client/refresh) + var/list/turf_items = return_object_images(refresh) + if(!length(turf_items) || !refresh.mob?.listed_turf) + return + refresh.stat_panel.send_message("update_listedturf", turf_items) + +#define OBJ_IMAGE_LOADING "statpanels obj loading temporary" +/// Returns all our ready object tab images +/// Returns a list in the form list(list(object_name, object_ref, loaded_image), ...) +/datum/controller/subsystem/statpanels/proc/return_object_images(client/load_from) + // You might be inclined to think that this is a waste of cpu time, since we + // A: Double iterate over atoms in the build case, or + // B: Generate these lists over and over in the refresh case + // It's really not very hot. The hot portion of this code is genuinely mostly in the image generation + // So it's ok to pay a performance cost for cleanliness here + + // No turf? go away + if(!load_from.mob?.listed_turf) + return list() + var/datum/object_window_info/obj_window = load_from.obj_window + var/list/already_seen = obj_window.atoms_to_images + var/list/to_make = obj_window.atoms_to_imagify + var/list/turf_items = list() + for(var/atom/turf_item as anything in obj_window.atoms_to_show) + // First, we fill up the list of refs to display + // If we already have one, just use that + var/existing_image = already_seen[turf_item] + if(existing_image == OBJ_IMAGE_LOADING) + continue + // We already have it. Success! + if(existing_image) + turf_items[++turf_items.len] = list("[turf_item.name]", REF(turf_item), existing_image) + continue + // Now, we're gonna queue image generation out of those refs + to_make += turf_item + already_seen[turf_item] = OBJ_IMAGE_LOADING + obj_window.RegisterSignal(turf_item, COMSIG_PARENT_QDELETING, /datum/object_window_info/proc/viewing_atom_deleted) // we reset cache if anything in it gets deleted + return turf_items + +#undef OBJ_IMAGE_LOADING /datum/controller/subsystem/statpanels/proc/generate_mc_data() - var/list/mc_data = list( + mc_data = list( list("CPU:", world.cpu), list("Instances:", "[num2text(world.contents.len, 10)]"), list("World Time:", "[world.time]"), @@ -162,45 +235,147 @@ SUBSYSTEM_DEF(statpanels) for(var/datum/controller/subsystem/sub_system as anything in Master.subsystems) mc_data[++mc_data.len] = list("\[[sub_system.state_letter()]][sub_system.name]", sub_system.stat_entry(), text_ref(sub_system)) mc_data[++mc_data.len] = list("Camera Net", "Cameras: [GLOB.cameranet.cameras.len] | Chunks: [GLOB.cameranet.chunks.len]", text_ref(GLOB.cameranet)) - mc_data_encoded = url_encode(json_encode(mc_data)) -/atom/proc/remove_from_cache() - SSstatpanels.cached_images -= REF(src) +///immediately update the active statpanel tab of the target client +/datum/controller/subsystem/statpanels/proc/immediate_send_stat_data(client/target) + if(!target.stat_panel.is_ready()) + return FALSE + + if(target.stat_tab == "Status") + set_status_tab(target) + return TRUE + + var/mob/target_mob = target.mob + if((target.stat_tab in target.spell_tabs) || !length(target.spell_tabs) && (length(target_mob.mob_spell_list) || length(target_mob.mind?.spell_list))) + set_spells_tab(target, target_mob) + return TRUE + + if(target_mob?.listed_turf) + if(!target_mob.TurfAdjacent(target_mob.listed_turf)) + target_mob.set_listed_turf(null) + + else if(target.stat_tab == target_mob?.listed_turf.name || !(target_mob?.listed_turf.name in target.panel_tabs)) + set_turf_examine_tab(target, target_mob) + return TRUE + + if(!target.holder) + return FALSE + + if(target.stat_tab == "MC") + set_MC_tab(target) + return TRUE -/// verbs that send information from the browser UI -/client/verb/set_tab(tab as text|null) - set name = "Set Tab" - set hidden = TRUE + if(target.stat_tab == "Tickets") + set_tickets_tab(target) + return TRUE - stat_tab = tab + if(!length(GLOB.sdql2_queries) && ("SDQL2" in target.panel_tabs)) + target.stat_panel.send_message("remove_sdql2") -/client/verb/send_tabs(tabs as text|null) - set name = "Send Tabs" - set hidden = TRUE + else if(length(GLOB.sdql2_queries) && target.stat_tab == "SDQL2") + set_SDQL2_tab(target) - panel_tabs |= tabs +/// Stat panel window declaration +/client/var/datum/tgui_window/stat_panel -/client/verb/remove_tabs(tabs as text|null) - set name = "Remove Tabs" - set hidden = TRUE +/// Datum that holds and tracks info about a client's object window +/// Really only exists because I want to be able to do logic with signals +/// And need a safe place to do the registration +/datum/object_window_info + /// list of atoms to show to our client via the object tab, at least currently + var/list/atoms_to_show = list() + /// list of atom -> image string for objects we have had in the right click tab + /// this is our caching + var/list/atoms_to_images = list() + /// list of atoms to turn into images for the object tab + var/list/atoms_to_imagify = list() + /// Our owner client + var/client/parent + /// Are we currently tracking a turf? + var/actively_tracking = FALSE - panel_tabs -= tabs +/datum/object_window_info/New(client/parent) + . = ..() + src.parent = parent -/client/verb/reset_tabs() - set name = "Reset Tabs" - set hidden = TRUE +/datum/object_window_info/Destroy(force, ...) + atoms_to_show = null + atoms_to_images = null + atoms_to_imagify = null + parent.obj_window = null + parent = null + STOP_PROCESSING(SSobj_tab_items, src) + return ..() + +/// Takes a client, attempts to generate object images for it +/// We will update the client with any improvements we make when we're done +/datum/object_window_info/process(delta_time) + // Cache the datum access for sonic speed + var/list/to_make = atoms_to_imagify + var/list/newly_seen = atoms_to_images + var/index = 0 + for(index in 1 to length(to_make)) + var/atom/thing = to_make[index] + + var/generated_string + if(ismob(thing) || length(thing.overlays) > 2) + generated_string = costly_icon2html(thing, parent, sourceonly=TRUE) + else + generated_string = icon2html(thing, parent, sourceonly=TRUE) + + newly_seen[thing] = generated_string + if(TICK_CHECK) + to_make.Cut(1, index + 1) + index = 0 + break + // If we've not cut yet, do it now + if(index) + to_make.Cut(1, index + 1) + SSstatpanels.refresh_client_obj_view(parent) + if(!length(to_make)) + return PROCESS_KILL + +/datum/object_window_info/proc/start_turf_tracking() + if(actively_tracking) + stop_turf_tracking() + var/static/list/connections = list( + COMSIG_MOVABLE_MOVED = PROC_REF(on_mob_move), + COMSIG_MOB_LOGOUT = PROC_REF(on_mob_logout), + ) + AddComponent(/datum/component/connect_mob_behalf, parent, connections) + actively_tracking = TRUE - panel_tabs = list() +/datum/object_window_info/proc/stop_turf_tracking() + qdel(GetComponent(/datum/component/connect_mob_behalf)) + actively_tracking = FALSE -/client/verb/panel_ready() - set name = "Panel Ready" - set hidden = TRUE +/datum/object_window_info/proc/on_mob_move(mob/source) + SIGNAL_HANDLER + var/turf/listed = source.listed_turf + if(!listed || !source.TurfAdjacent(listed)) + source.set_listed_turf(null) - statbrowser_ready = TRUE - init_verbs() +/datum/object_window_info/proc/on_mob_logout(mob/source) + SIGNAL_HANDLER + on_mob_move(parent.mob) -/client/verb/update_verbs() - set name = "Update Verbs" - set hidden = TRUE +/// Clears any cached object window stuff +/// We use hard refs cause we'd need a signal for this anyway. Cleaner this way +/datum/object_window_info/proc/viewing_atom_deleted(atom/deleted) + SIGNAL_HANDLER + atoms_to_show -= deleted + atoms_to_imagify -= deleted + atoms_to_images -= deleted - init_verbs() +/mob/proc/set_listed_turf(turf/new_turf) + listed_turf = new_turf + if(!client) + return + if(!client.obj_window) + client.obj_window = new(client) + if(listed_turf) + client.stat_panel.send_message("create_listedturf", listed_turf.name) + client.obj_window.start_turf_tracking() + else + client.stat_panel.send_message("remove_listedturf") + client.obj_window.stop_turf_tracking() diff --git a/code/datums/components/connect_mob_behalf.dm b/code/datums/components/connect_mob_behalf.dm new file mode 100644 index 000000000000..1c1a8a652342 --- /dev/null +++ b/code/datums/components/connect_mob_behalf.dm @@ -0,0 +1,59 @@ +/// This component behaves similar to connect_loc_behalf, but working off clients and mobs instead of loc +/// To be clear, we hook into a signal on a tracked client's mob +/// We retain the ability to react to that signal on a seperate listener, which makes this quite powerful +/datum/component/connect_mob_behalf + dupe_mode = COMPONENT_DUPE_UNIQUE + + /// An assoc list of signal -> procpath to register to the mob our client "owns" + var/list/connections + /// The master client we're working with + var/client/tracked + /// The mob we're currently tracking + var/mob/tracked_mob + +/datum/component/connect_mob_behalf/Initialize(client/tracked, list/connections) + . = ..() + if (!istype(tracked)) + return COMPONENT_INCOMPATIBLE + src.connections = connections + src.tracked = tracked + +/datum/component/connect_mob_behalf/RegisterWithParent() + RegisterSignal(tracked, COMSIG_PARENT_QDELETING, PROC_REF(handle_tracked_qdel)) + update_signals() + +/datum/component/connect_mob_behalf/UnregisterFromParent() + unregister_signals() + UnregisterSignal(tracked, COMSIG_PARENT_QDELETING) + + tracked = null + tracked_mob = null + +/datum/component/connect_mob_behalf/proc/handle_tracked_qdel() + SIGNAL_HANDLER + qdel(src) + +/datum/component/connect_mob_behalf/proc/update_signals() + unregister_signals() + // Yes this is a runtime silencer + // We could be in a position where logout is sent to two things, one thing intercepts it, then deletes the client's new mob + // It's rare, and the same check in connect_loc_behalf is more fruitful, but it's still worth doing + if(QDELETED(tracked?.mob)) + return + tracked_mob = tracked.mob + RegisterSignal(tracked_mob, COMSIG_MOB_LOGOUT, PROC_REF(on_logout)) + for (var/signal in connections) + parent.RegisterSignal(tracked_mob, signal, connections[signal]) + +/datum/component/connect_mob_behalf/proc/unregister_signals() + if(isnull(tracked_mob)) + return + + parent.UnregisterSignal(tracked_mob, connections) + UnregisterSignal(tracked_mob, COMSIG_MOB_LOGOUT) + + tracked_mob = null + +/datum/component/connect_mob_behalf/proc/on_logout(mob/source) + SIGNAL_HANDLER + update_signals() diff --git a/code/datums/components/storage/concrete/pockets.dm b/code/datums/components/storage/concrete/pockets.dm index 19d092156405..bd0a59f85f42 100644 --- a/code/datums/components/storage/concrete/pockets.dm +++ b/code/datums/components/storage/concrete/pockets.dm @@ -36,7 +36,7 @@ . = ..() var/static/list/exception_cache = typecacheof(list( /obj/item/katana, /obj/item/toy/katana, /obj/item/nullrod/claymore/katana, - /obj/item/energy_katana, /obj/item/gun/ballistic/automatic/smg/thompson/drum + /obj/item/energy_katana, /obj/item/gun/ballistic/automatic/smg/firestorm/pan )) exception_hold = exception_cache @@ -86,7 +86,7 @@ /obj/item/reagent_containers/food/drinks/bottle/vodka, /obj/item/reagent_containers/food/drinks/bottle/molotov, /obj/item/reagent_containers/food/drinks/drinkingglass, - /obj/item/ammo_box/a762 + /obj/item/ammo_box/magazine/illestren_a850r )) /datum/component/storage/concrete/pockets/holster diff --git a/code/datums/ert.dm b/code/datums/ert.dm index 2c84f254cd6f..844548748824 100644 --- a/code/datums/ert.dm +++ b/code/datums/ert.dm @@ -210,6 +210,17 @@ rename_team = "Cybersun Medical Intervention Team" polldesc = "a Cybersun paramedic team" +/datum/ert/syndicate/inspector + teamsize = 1 + leader_role = /datum/antagonist/ert/official/syndicate + roles = list(/datum/antagonist/ert/official/syndicate) + rename_team = "Syndicate Inspector" + polldesc = "a syndicate inspector" + spawn_at_outpost = FALSE + +/datum/ert/syndicate/inspector/New() + mission = "Conduct a routine review on [station_name()]'s vessels." + // Frontiersmen /datum/ert/frontier teamsize = 4 diff --git a/code/datums/mapgen/planetary/BeachGenerator.dm b/code/datums/mapgen/planetary/BeachGenerator.dm index ca1d70b929fa..7999d76f3a11 100644 --- a/code/datums/mapgen/planetary/BeachGenerator.dm +++ b/code/datums/mapgen/planetary/BeachGenerator.dm @@ -119,7 +119,7 @@ /mob/living/simple_animal/butterfly = 4, /mob/living/simple_animal/hostile/retaliate/poison/snake = 5, - /mob/living/simple_animal/hostile/poison/bees/toxin = 3, + /mob/living/simple_animal/hostile/poison/bees = 3, ) mob_spawn_chance = 2 feature_spawn_chance = 0.1 diff --git a/code/datums/mapgen/planetary/JungleGenerator.dm b/code/datums/mapgen/planetary/JungleGenerator.dm index dd5635d4841f..45ae4a7120cc 100644 --- a/code/datums/mapgen/planetary/JungleGenerator.dm +++ b/code/datums/mapgen/planetary/JungleGenerator.dm @@ -228,7 +228,7 @@ ) mob_spawn_chance = 1 mob_spawn_list = list( - /mob/living/simple_animal/hostile/poison/bees/toxin = 1, + /mob/living/simple_animal/hostile/poison/bees = 1, /mob/living/simple_animal/hostile/mushroom = 1, /mob/living/simple_animal/pet/dog/corgi/capybara = 1 ) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index af7d411245e2..fc91d2c71de1 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -728,7 +728,7 @@ if(istype(S, spell)) spell_list -= S qdel(S) - current?.client << output(null, "statbrowser:check_spells") + current?.client.stat_panel.send_message("check_spells") /datum/mind/proc/RemoveAllSpells() for(var/obj/effect/proc_holder/S in spell_list) diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm index 35e8ff81a580..66919ca67f3b 100644 --- a/code/datums/shuttles.dm +++ b/code/datums/shuttles.dm @@ -365,3 +365,11 @@ file_name = "nanotrasen_falcon" name = "Falcon Dropship" prefix = "NTSV" + + +/datum/map_template/shuttle/subshuttles/haste + file_name = "inteq_haste" + name = "Haste-class Ambulance" + prefix = "IRMV" + + diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index dccd4e87877d..8cb9f50008f4 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -123,20 +123,20 @@ //Security/Command if("Captain") heirloom_type = /obj/item/reagent_containers/food/drinks/flask/gold - if("Head of Security") - heirloom_type = /obj/item/book/manual/wiki/security_space_law +// if("Head of Security") +// heirloom_type = /obj/item/book/manual/wiki/security_space_law if("Head of Personnel") heirloom_type = /obj/item/reagent_containers/food/drinks/trophy/silver_cup - if("Warden") - heirloom_type = /obj/item/book/manual/wiki/security_space_law +// if("Warden") +// heirloom_type = /obj/item/book/manual/wiki/security_space_law if("Security Officer") - heirloom_type = pick(/obj/item/book/manual/wiki/security_space_law, /obj/item/clothing/head/beret/sec) + heirloom_type = pick(/obj/item/clothing/head/beret/sec) if("Detective") heirloom_type = /obj/item/reagent_containers/food/drinks/bottle/whiskey if("Lawyer") - heirloom_type = pick(/obj/item/gavelhammer, /obj/item/book/manual/wiki/security_space_law) + heirloom_type = pick(/obj/item/gavelhammer) if("Brig Physician") //WS edit - Brig Physicians - heirloom_type = pick(/obj/item/clothing/neck/stethoscope, /obj/item/roller, /obj/item/book/manual/wiki/security_space_law) //WS edit - Brig Physicians + heirloom_type = pick(/obj/item/clothing/neck/stethoscope, /obj/item/roller) //WS edit - Brig Physicians if("Prisoner") heirloom_type = /obj/item/pen/blue //RnD diff --git a/code/game/area/areas/ruins/sandplanet.dm b/code/game/area/areas/ruins/sandplanet.dm index e2fb00acdc10..e3a93b58e065 100644 --- a/code/game/area/areas/ruins/sandplanet.dm +++ b/code/game/area/areas/ruins/sandplanet.dm @@ -7,5 +7,13 @@ icon_state = "green" /area/ruin/whitesands/pubbycrash - name = "Pubby Crash" - icon_state = "blue" + name = "Pubby-Class Wreckage" + icon_state = "bluenew" + +/area/ruin/whitesands/pubbycrash/engine_room + name = "Pubby-Class Engine Room" + icon_state = "green" + +/area/ruin/whitesands/pubbycrash/split + name = "Pubby-Class Chunk" + icon_state = "red" diff --git a/code/game/gamemodes/clown_ops/clown_ops.dm b/code/game/gamemodes/clown_ops/clown_ops.dm index 5017b1d38c06..9025f6ec2dcb 100644 --- a/code/game/gamemodes/clown_ops/clown_ops.dm +++ b/code/game/gamemodes/clown_ops/clown_ops.dm @@ -47,6 +47,7 @@ uplink_type = /obj/item/uplink/clownop /datum/outfit/syndicate/clownop/no_crystals + name = "Clown Operative - No Crystals" tc = 0 /datum/outfit/syndicate/clownop/leader diff --git a/code/game/machinery/telecomms/machines/relay.dm b/code/game/machinery/telecomms/machines/relay.dm index 15f96e69022b..773faec875f4 100644 --- a/code/game/machinery/telecomms/machines/relay.dm +++ b/code/game/machinery/telecomms/machines/relay.dm @@ -73,6 +73,36 @@ toggled = FALSE autolinkers = list("r_relay") +/obj/machinery/telecomms/relay/preset/nanotrasen + freq_listening = list(FREQ_COMMAND, FREQ_NANOTRASEN, FREQ_COMMON) + id = "Nanotrasen Relay" + network = "nt_commnet" + +/obj/machinery/telecomms/relay/preset/inteq + freq_listening = list(FREQ_COMMAND, FREQ_INTEQ, FREQ_COMMON) + id = "IRMG Relay" + network = "irmg_commnet" + +/obj/machinery/telecomms/relay/preset/minutemen + freq_listening = list(FREQ_COMMAND, FREQ_MINUTEMEN, FREQ_COMMON) + id = "CMM Relay" + network = "cmm_commnet" + +/obj/machinery/telecomms/relay/preset/solgov + freq_listening = list(FREQ_COMMAND, FREQ_SOLGOV, FREQ_COMMON) + id = "SolGov Relay" + network = "solgov_commnet" + +/obj/machinery/telecomms/relay/preset/syndicate + freq_listening = list(FREQ_COMMAND, FREQ_SYNDICATE, FREQ_COMMON) + id = "Syndicate Relay" + network = "synd_commnet" + +/obj/machinery/telecomms/relay/preset/frontiersmen + freq_listening = list(FREQ_COMMAND, FREQ_PIRATE, FREQ_COMMON) + id = "Frontiersmen Relay" + network = "frontier_commnet" + //Generic preset relay /obj/machinery/telecomms/relay/preset/auto hide = TRUE diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm index faa366f893b0..306634a639fc 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -687,7 +687,6 @@ name = "Fax Machine" build_path = /obj/machinery/fax req_components = list( - /obj/item/stock_parts/subspace/crystal = 1, /obj/item/stock_parts/scanning_module = 1, /obj/item/stock_parts/micro_laser = 1, /obj/item/stock_parts/manipulator = 1,) @@ -1496,6 +1495,15 @@ /obj/item/stock_parts/capacitor = 2 ) +/obj/item/circuitboard/machine/printer + name = "Poster Printer (Machine Board)" + build_path = /obj/machinery/printer + req_components = list( + /obj/item/stock_parts/scanning_module = 2, + /obj/item/stock_parts/micro_laser = 1, + /obj/item/stock_parts/manipulator = 2, + ) + /obj/item/circuitboard/machine/coffeemaker name = "Modello 3 Coffeemaker" build_path = /obj/machinery/coffeemaker diff --git a/code/game/objects/items/gift.dm b/code/game/objects/items/gift.dm index b32169951c46..8ec4353d1ca2 100644 --- a/code/game/objects/items/gift.dm +++ b/code/game/objects/items/gift.dm @@ -62,7 +62,7 @@ GLOBAL_LIST_EMPTY(possible_gifts) /obj/item/grown/corncob, /obj/item/poster/random_contraband, /obj/item/poster/random_official, - /obj/item/book/manual/wiki/barman_recipes, + /obj/item/book/manual/wiki/drinks, /obj/item/book/manual/chef_recipes, /obj/item/bikehorn, /obj/item/toy/beach_ball, diff --git a/code/game/objects/items/manuals.dm b/code/game/objects/items/manuals.dm index da1906143abc..693858bf1b2e 100644 --- a/code/game/objects/items/manuals.dm +++ b/code/game/objects/items/manuals.dm @@ -360,156 +360,177 @@ /obj/item/book/manual/wiki/chemistry name = "Chemistry Textbook" - icon_state ="chemistrybook" - author = "Nanotrasen" + icon_state = "chemistrybook" + author = "GREMLIN" title = "Chemistry Textbook" page_link = "Guide_to_Chemistry" -/obj/item/book/manual/wiki/engineering_construction - name = "Station Repairs and Construction" - icon_state ="bookEngineering" - author = "Engineering Encyclopedia" - title = "Station Repairs and Construction" - page_link = "Guide_to_Construction" - -/obj/item/book/manual/wiki/engineering_guide - name = "Engineering Textbook" - icon_state ="bookEngineering2" - author = "Engineering Encyclopedia" - title = "Engineering Textbook" +/obj/item/book/manual/wiki/command + name = "Command and Delegate" + icon_state = "book" + author = "Frontier Assistance Program" + title = "Command and Delegate: The Entreprising Captain's Guide" + page_link = "Guide_to_Command" + +/obj/item/book/manual/wiki/piloting + name = "You and Helm Consoles" + icon_state = "book" + author = "Frontier Assistance Program" + title = "You and Helm Consoles: The Bold Helmsman's Manual" + page_link = "Guide_to_the_Overmap" + +/obj/item/book/manual/wiki/ghetto_chemistry + name = "Ghetto Chemistry Textbook" + icon_state = "chemistrybook" + author = "GREMLIN" + title = "Less Legal Chemistry Textbook" + page_link = "Guide_to_Ghetto_Chemistry" + +/obj/item/book/manual/wiki/cooking + name = "Cookbook" + desc = "It's a cookbook!" + icon_state = "cooked_book" + author = "Frontier Assistance Program" + title = "To Serve Man" + page_link = "Guide_to_Food_and_Drinks" + +/obj/item/book/manual/wiki/construction + name = "Ship Repairs and Construction" + icon_state = "bookEngineering" + author = "Frontier Assistance Program" + title = "Ship Repairs and Construction" + page_link = "Construction" + +/obj/item/book/manual/wiki/engineering + name = "Engineering Guide" + icon_state = "bookEngineering2" + author = "Frontier Assistance Program" + title = "The Ship Engineer's Guide to Mechanical and Electrical Engineering" page_link = "Guide_to_Engineering" -/obj/item/book/manual/wiki/engineering_singulo_tesla - name = "Singularity and Tesla for Dummies" - icon_state ="bookEngineeringSingularitySafety" - author = "Engineering Encyclopedia" - title = "Singularity and Tesla for Dummies" - page_link = "Singularity_and_Tesla_engines" - -/obj/item/book/manual/wiki/security_space_law - name = "Space Law" - desc = "A set of Nanotrasen guidelines for keeping law and order on their space stations." - icon_state = "bookSpaceLaw" - author = "Nanotrasen" - title = "Space Law" - page_link = "Space_Law" - -/obj/item/book/manual/wiki/infections - name = "Infections - Making your own pandemic!" - icon_state = "bookInfections" - author = "Infections Encyclopedia" - title = "Infections - Making your own pandemic!" - page_link = "Infections" - -/obj/item/book/manual/wiki/telescience - name = "Teleportation Science - Bluespace for dummies!" - icon_state = "book7" - author = "University of Bluespace" - title = "Teleportation Science - Bluespace for dummies!" - page_link = "Guide_to_telescience" - -/obj/item/book/manual/wiki/engineering_hacking +/obj/item/book/manual/wiki/hacking name = "Hacking" - icon_state ="bookHacking" - author = "Engineering Encyclopedia" + icon_state = "bookHacking" + author = "Frontier Assistance Program" title = "Hacking" page_link = "Hacking" -/obj/item/book/manual/wiki/detective - name = "The Film Noir: Proper Procedures for Investigations" - icon_state ="bookDetective" - author = "Nanotrasen" - title = "The Film Noir: Proper Procedures for Investigations" - page_link = "Detective" - -/obj/item/book/manual/wiki/barman_recipes +/obj/item/book/manual/wiki/drinks name = "Barman Recipes: Mixing Drinks and Changing Lives" icon_state = "barbook" author = "Sir John Rose" title = "Barman Recipes: Mixing Drinks and Changing Lives" - page_link = "Guide_to_food_and_drinks" - -/obj/item/book/manual/wiki/robotics_cyborgs - name = "Robotics for Dummies" - icon_state = "borgbook" - author = "XISC" - title = "Robotics for Dummies" - page_link = "Guide_to_robotics" - -/obj/item/book/manual/wiki/research_and_development - name = "Research and Development 101" - icon_state = "rdbook" - author = "Dr. L. Ight" - title = "Research and Development 101" - page_link = "Guide_to_Research_and_Development" - -/obj/item/book/manual/wiki/experimentor - name = "Mentoring your Experiments" - icon_state = "rdbook" - author = "Dr. H.P. Kritz" - title = "Mentoring your Experiments" - page_link = "E.X.P.E.R.I-MENTOR" - -/obj/item/book/manual/wiki/cooking_to_serve_man - name = "To Serve Man" - desc = "It's a cookbook!" - icon_state ="cooked_book" - author = "the Kanamitan Empire" - title = "To Serve Man" - page_link = "Guide_to_food_and_drinks" - -/obj/item/book/manual/wiki/tcomms - name = "Subspace Telecommunications And You" - icon_state = "book3" - author = "Engineering Encyclopedia" - title = "Subspace Telecommunications And You" - page_link = "Guide_to_Telecommunications" - -/obj/item/book/manual/wiki/atmospherics - name = "Lexica Atmosia" - icon_state = "book5" - author = "the City-state of Atmosia" - title = "Lexica Atmosia" - page_link = "Guide_to_Atmospherics" + page_link = "Guide_to_Food_and_Drinks" /obj/item/book/manual/wiki/medicine - name = "Medical Space Compendium, Volume 638" + name = "Guide to Medical Aid" icon_state = "book8" - author = "Medical Journal" - title = "Medical Space Compendium, Volume 638" - page_link = "Guide_to_medicine" + author = "Frontier Assistance Program" + title = "The Crewman's Guide to Medical Aid" + page_link = "Guide_to_Medical" /obj/item/book/manual/wiki/surgery - name = "Brain Surgery for Dummies" + name = "Guide to Surgery" icon_state = "book4" - author = "Dr. F. Fran" - title = "Brain Surgery for Dummies" - page_link = "Surgery" + author = "Frontier Assistance Program" + title = "Guide to Surgery: Scalpel, Hemostat, Wristwatch" + page_link = "Guide_to_Surgery" -/obj/item/book/manual/wiki/grenades - name = "DIY Chemical Grenades" - icon_state = "book2" - author = "W. Powell" - title = "DIY Chemical Grenades" - page_link = "Grenade" - -/obj/item/book/manual/wiki/toxins - name = "Toxins or: How I Learned to Stop Worrying and Love the Maxcap" - icon_state = "book6" - author = "Cuban Pete" - title = "Toxins or: How I Learned to Stop Worrying and Love the Maxcap" - page_link = "Guide_to_toxins" - -/obj/item/book/manual/wiki/plumbing - name = "Chemical Factories Without Narcotics" - icon_state ="plumbingbook" - author = "Nanotrasen" - title = "Chemical Factories Without Narcotics" - page_link = "Guide_to_plumbing" - -/obj/item/book/manual/wiki/medical_cloning - name = "Cloning techniques of the 26th century" - icon_state ="bookCloning" - author = "Medical Journal, volume 3" - title = "Cloning techniques of the 26th century" - page_link = "Guide_to_genetics#Cloning" +/obj/item/book/manual/wiki/robotics + name = "Robotics for Dummies" + icon_state = "borgbook" + author = "XISC" + title = "Robotics for Dummies" + page_link = "Guide_to_Robotics" + +// /obj/item/book/manual/wiki/engineering_singulo_tesla +// name = "Singularity and Tesla for Dummies" +// icon_state ="bookEngineeringSingularitySafety" +// author = "Engineering Encyclopedia" +// title = "Singularity and Tesla for Dummies" +// page_link = "Singularity_and_Tesla_engines" + +// /obj/item/book/manual/wiki/security_space_law +// name = "Space Law" +// desc = "A set of Nanotrasen guidelines for keeping law and order on their space stations." +// icon_state = "bookSpaceLaw" +// author = "Nanotrasen" +// title = "Space Law" +// page_link = "Space_Law" + +// /obj/item/book/manual/wiki/infections +// name = "Infections - Making your own pandemic!" +// icon_state = "bookInfections" +// author = "Infections Encyclopedia" +// title = "Infections - Making your own pandemic!" +// page_link = "Infections" + +// /obj/item/book/manual/wiki/telescience +// name = "Teleportation Science - Bluespace for dummies!" +// icon_state = "book7" +// author = "University of Bluespace" +// title = "Teleportation Science - Bluespace for dummies!" +// page_link = "Guide_to_telescience" + +// /obj/item/book/manual/wiki/detective +// name = "The Film Noir: Proper Procedures for Investigations" +// icon_state ="bookDetective" +// author = "Nanotrasen" +// title = "The Film Noir: Proper Procedures for Investigations" +// page_link = "Detective" + +// /obj/item/book/manual/wiki/research_and_development +// name = "Research and Development 101" +// icon_state = "rdbook" +// author = "Dr. L. Ight" +// title = "Research and Development 101" +// page_link = "Guide_to_Research_and_Development" + +// /obj/item/book/manual/wiki/experimentor +// name = "Mentoring your Experiments" +// icon_state = "rdbook" +// author = "Dr. H.P. Kritz" +// title = "Mentoring your Experiments" +// page_link = "E.X.P.E.R.I-MENTOR" + +// /obj/item/book/manual/wiki/tcomms +// name = "Subspace Telecommunications And You" +// icon_state = "book3" +// author = "Engineering Encyclopedia" +// title = "Subspace Telecommunications And You" +// page_link = "Guide_to_Telecommunications" + +// /obj/item/book/manual/wiki/atmospherics +// name = "Lexica Atmosia" +// icon_state = "book5" +// author = "the City-state of Atmosia" +// title = "Lexica Atmosia" +// page_link = "Guide_to_Atmospherics" + +// /obj/item/book/manual/wiki/grenades +// name = "DIY Chemical Grenades" +// icon_state = "book2" +// author = "W. Powell" +// title = "DIY Chemical Grenades" +// page_link = "Grenade" + +// /obj/item/book/manual/wiki/toxins +// name = "Toxins or: How I Learned to Stop Worrying and Love the Maxcap" +// icon_state = "book6" +// author = "Cuban Pete" +// title = "Toxins or: How I Learned to Stop Worrying and Love the Maxcap" +// page_link = "Guide_to_toxins" + +// /obj/item/book/manual/wiki/plumbing +// name = "Chemical Factories Without Narcotics" +// icon_state ="plumbingbook" +// author = "Nanotrasen" +// title = "Chemical Factories Without Narcotics" +// page_link = "Guide_to_plumbing" + +// /obj/item/book/manual/wiki/medical_cloning +// name = "Cloning techniques of the 26th century" +// icon_state ="bookCloning" +// author = "Medical Journal, volume 3" +// title = "Cloning techniques of the 26th century" +// page_link = "Guide_to_genetics#Cloning" diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm index 2dbec7311bd1..f4fbd42be38b 100644 --- a/code/game/objects/items/melee/misc.dm +++ b/code/game/objects/items/melee/misc.dm @@ -85,6 +85,85 @@ icon_state = "sabresolgov" item_state = "sabresolgov" +/obj/item/melee/sabre/suns + name = "SUNS sabre" + desc = "A blade of Solarian origin given to SUNS followers." + icon_state = "suns-sabre" + item_state = "suns-sabre" + +/obj/item/melee/sabre/suns/captain + name = "SUNS captain sabre" + desc = "An elegant blade awarded to SUNS captains. Despite its higher craftmanship, it appears to be just as effective as a normal sabre." + icon_state = "suns-capsabre" + item_state = "suns-capsabre" + +/obj/item/melee/sabre/suns/cmo + name = "SUNS stick sabre" + desc = "A thin blade used by SUNS medical instructors." + icon_state = "suns-swordstick" + item_state = "suns-swordstick" + +/obj/item/melee/sabre/suns/telescopic + name = "telescopic sabre" + desc = "A telescopic and retractable blade given to SUNS peacekeepers for easy concealment and carry. It's design makes it slightly less effective than normal sabres sadly, however it is still excelent at piercing armor." + icon_state = "suns-tsword" + item_state = "suns-tsword" + force = 0 + throwforce = 0 + block_chance = 0 + + slot_flags = ITEM_SLOT_BELT + w_class = WEIGHT_CLASS_SMALL + attack_verb = list("smacked", "prodded") + + + var/extended = FALSE + var/extend_sound = 'sound/weapons/batonextend.ogg' + + + + var/on_icon_state = "suns-tsword_ext" + var/on_item_state = "suns-tsword_ext" + var/off_icon_state = "suns-tsword" + var/off_item_state = "suns-tsword" + + var/force_on = 10 + var/on_throwforce = 10 + var/on_blockchance = 40 + + var/force_off = 0 + var/off_throwforce = 0 + var/off_blockchance = 0 + + var/weight_class_on = WEIGHT_CLASS_BULKY + +/obj/item/melee/sabre/suns/telescopic/attack_self(mob/user) + extended = !extended + + if(extended) + to_chat(user, "You extend the [src].") + icon_state = on_icon_state + item_state = on_item_state + slot_flags = 0 + w_class = weight_class_on + force = force_on + throwforce = on_throwforce + block_chance = on_blockchance + attack_verb = list("slashed", "cut") + else + to_chat(user, "You collapse the [src].") + icon_state = off_icon_state + item_state = off_item_state + slot_flags = ITEM_SLOT_BELT + w_class = WEIGHT_CLASS_SMALL + force = force_off + throwforce = off_throwforce + block_chance = off_blockchance + attack_verb = list("smacked", "prodded") + + playsound(get_turf(src), extend_sound, 50, TRUE) + add_fingerprint(user) + /obj/item/melee/beesword name = "The Stinger" desc = "Taken from a giant bee and folded over one thousand times in pure honey. Can sting through anything." diff --git a/code/game/objects/items/stacks/tape.dm b/code/game/objects/items/stacks/tape.dm index 92fe31d32a98..d22b1be85344 100644 --- a/code/game/objects/items/stacks/tape.dm +++ b/code/game/objects/items/stacks/tape.dm @@ -47,7 +47,7 @@ /obj/item/stack/sticky_tape/super name = "super sticky tape" singular_name = "super sticky tape" - desc = "Quite possibly the most mischevious substance in the galaxy. Use with extreme lack of caution." + desc = "Quite possibly the most mischievous substance in the galaxy. Use with extreme lack of caution." icon_state = "tape_y" prefix = "super sticky" conferred_embed = EMBED_HARMLESS_SUPERIOR diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index fba5fd1b4fc7..4cf963958022 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -689,17 +689,17 @@ /obj/item/storage/belt/bandolier name = "bandolier" - desc = "A bandolier for holding shotgun ammunition." + desc = "A bandolier for holding ammunition. Does not hold magazines" icon_state = "bandolier" item_state = "bandolier" /obj/item/storage/belt/bandolier/ComponentInitialize() . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.max_items = 18 + STR.max_items = 40 STR.display_numerical_stacking = TRUE STR.set_holdable(list( - /obj/item/ammo_casing/shotgun + /obj/item/ammo_casing )) /obj/item/storage/belt/fannypack @@ -785,7 +785,7 @@ AddElement(/datum/element/update_icon_updates_onmob) var/datum/component/storage/STR = GetComponent(/datum/component/storage) STR.max_items = 1 - STR.use_sound = null + STR.use_sound = null //if youre wondering why this is null, its so you can look in your sheath to prepare to draw, without letting anyone know youre preparing to draw it STR.max_w_class = WEIGHT_CLASS_BULKY STR.set_holdable(list( /obj/item/melee/sabre @@ -842,6 +842,90 @@ new /obj/item/melee/sabre/solgov(src) update_appearance() +/obj/item/storage/belt/sabre/suns + name = "SUNS sabre sheath" + desc = "A leather sheath designed to hold a blade." + + icon = 'icons/obj/clothing/faction/suns/belt.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/belt.dmi' + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + + base_icon_state = "suns-sheath" + icon_state = "suns-sheath" + item_state = "suns-sheath" + w_class = WEIGHT_CLASS_BULKY + +/obj/item/storage/belt/sabre/suns/ComponentInitialize() + AddComponent(component_type) + AddElement(/datum/element/update_icon_updates_onmob) + var/datum/component/storage/STR = GetComponent(/datum/component/storage) + STR.max_items = 1 + STR.use_sound = null + STR.max_w_class = WEIGHT_CLASS_BULKY + STR.set_holdable(list( + /obj/item/melee/sabre/suns + )) + +/obj/item/storage/belt/sabre/suns/PopulateContents() + new /obj/item/melee/sabre/suns(src) + update_appearance() + + +/obj/item/storage/belt/sabre/suns/captain + name = "SUNS captain's sabre sheath" + desc = "An elegant and impressively made leather sheath designed to hold a captain's blade." + + base_icon_state = "suns-capsheath" + icon_state = "suns-capsheath" + item_state = "suns-capsheath" + w_class = WEIGHT_CLASS_BULKY + +/obj/item/storage/belt/sabre/suns/captain/ComponentInitialize() + AddComponent(component_type) + AddElement(/datum/element/update_icon_updates_onmob) + var/datum/component/storage/STR = GetComponent(/datum/component/storage) + STR.max_items = 1 + STR.use_sound = null + STR.max_w_class = WEIGHT_CLASS_BULKY + STR.set_holdable(list( + /obj/item/melee/sabre/suns/captain + )) + +/obj/item/storage/belt/sabre/suns/captain/PopulateContents() + new /obj/item/melee/sabre/suns/captain(src) + update_appearance() + +/obj/item/storage/belt/sabre/suns/cmo + name = "SUNS cane sheath" + desc = "A walking cane modified to hold a thin stick sabre. It does not fit on belts, contrary to popular belief." + slot_flags = null + + icon = 'icons/obj/clothing/faction/suns/belt.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/belt.dmi' + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + + base_icon_state = "suns-cane" + icon_state = "suns-cane" + item_state = "suns-cane" + w_class = WEIGHT_CLASS_BULKY + +/obj/item/storage/belt/sabre/suns/ComponentInitialize() + AddComponent(component_type) + AddElement(/datum/element/update_icon_updates_onmob) + var/datum/component/storage/STR = GetComponent(/datum/component/storage) + STR.max_items = 1 + STR.use_sound = null + STR.max_w_class = WEIGHT_CLASS_BULKY + STR.set_holdable(list( + /obj/item/melee/sabre/suns/cmo + )) + +/obj/item/storage/belt/sabre/suns/PopulateContents() + new /obj/item/melee/sabre/suns/cmo(src) + update_appearance() + /obj/item/storage/belt/security/webbing/inteq name = "inteq webbing" desc = "A set of tactical webbing for operators of the IRMG, can hold security gear." diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index 1daf6cf922a1..312ce3e14d0f 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -233,39 +233,47 @@ drop_sound = 'sound/items/handling/ammobox_drop.ogg' pickup_sound = 'sound/items/handling/ammobox_pickup.ogg' material_flags = NONE + has_latches = FALSE -/obj/item/storage/toolbox/ammo/a762/PopulateContents() - name = "ammo can (7.62x54mmR)" +/obj/item/storage/toolbox/ammo/a850r/PopulateContents() + name = "ammo can (8x50mmR)" + icon_state = "ammobox_850" for(var/i in 1 to 7) - new /obj/item/ammo_box/a762(src) + new /obj/item/ammo_box/magazine/illestren_a850r(src) /obj/item/storage/toolbox/ammo/a762_39/PopulateContents() name = "ammo can (7.62x39mm)" + icon_state = "ammobox_762" for (var/i in 1 to 4) new /obj/item/ammo_box/a762_39(src) /obj/item/storage/toolbox/ammo/a308/PopulateContents() name = "ammo can (.308)" + icon_state = "ammobox_308" for (var/i in 1 to 4) new /obj/item/ammo_box/a308(src) /obj/item/storage/toolbox/ammo/c45/PopulateContents() name = "ammo can (.45)" + icon_state = "ammobox_45" for (var/i in 1 to 4) new /obj/item/ammo_box/c45(src) /obj/item/storage/toolbox/ammo/c9mm/PopulateContents() name = "ammo can (9mm)" + icon_state = "ammobox_9mm" for (var/i in 1 to 4) new /obj/item/ammo_box/c9mm(src) /obj/item/storage/toolbox/ammo/c10mm/PopulateContents() name = "ammo can (10mm)" + icon_state = "ammobox_10mm" for (var/i in 1 to 4) new /obj/item/ammo_box/c10mm(src) /obj/item/storage/toolbox/ammo/shotgun/PopulateContents() name = "ammo can (12ga)" + icon_state = "ammobox_12ga" for (var/i in 1 to 4) new /obj/item/ammo_box/a12g(src) diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index 6b3658b523df..221cdf42d3f3 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -194,7 +194,7 @@ if("made_man") new /obj/effect/spawner/lootdrop/mafia_outfit(src) // 0 TC, just an outfit for the new 'don of this family - new /obj/item/gun/ballistic/automatic/smg/thompson/drum(src) // 20 TC, a gun with 50 .45 bullets on a three round burst is kinda outstanding + new /obj/item/gun/ballistic/automatic/smg/firestorm/pan(src) // 20 TC, a gun with 50 .45 bullets on a three round burst is kinda outstanding new /obj/item/switchblade(src) // 3 TC? It's nice, but it's really a stealth/oh fuck I'm out of ammo weapon new /obj/item/reagent_containers/food/drinks/bottle/vodka (src) // 5 TC, free molotov assemblies new /obj/item/reagent_containers/food/drinks/bottle/vodka (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 66b803e7d041..f94a5d5de585 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -300,7 +300,7 @@ for(var/i in 1 to 3) new /obj/item/storage/box/rubbershot(src) for(var/i in 1 to 3) - new /obj/item/gun/ballistic/shotgun/riot(src) + new /obj/item/gun/ballistic/shotgun/hellfire(src) /obj/structure/closet/secure_closet/armory3 name = "armory energy gun locker" diff --git a/code/game/objects/structures/icemoon/cave_entrance.dm b/code/game/objects/structures/icemoon/cave_entrance.dm index dfd999e3aa3a..5cbc09727246 100644 --- a/code/game/objects/structures/icemoon/cave_entrance.dm +++ b/code/game/objects/structures/icemoon/cave_entrance.dm @@ -19,7 +19,6 @@ GLOBAL_LIST_INIT(ore_probability, list( /obj/item/tank/jetpack/suit = 10, /obj/item/survivalcapsule = 15, /obj/item/reagent_containers/hypospray/medipen/survival = 15, - /obj/item/card/mining_point_card = 15, /obj/item/gps/mining = 10, /obj/item/extraction_pack = 10, /obj/item/reagent_containers/food/drinks/beer = 15, @@ -210,7 +209,7 @@ GLOBAL_LIST_INIT(ore_probability, list( */ /obj/effect/collapsing_demonic_portal/proc/drop_loot() visible_message("Something slips out of [src]!") - var/loot = rand(1, 24) + var/loot = rand(1, 23) switch(loot) if(1)//Clown hell. God help you if you roll this. visible_message("You can hear screaming and joyful honking.")//now THIS is what we call a critical failure @@ -965,62 +964,19 @@ GLOBAL_LIST_INIT(ore_probability, list( new /obj/effect/mob_spawn/human/scientist(loc) new /turf/open/floor/mineral/titanium/purple(loc) new /mob/living/simple_animal/slime/random(loc) - if(19)//lost abductor - visible_message("You glimpse a frigid wreckage. A large block of something slips through the portal.") - playsound(loc,'sound/effects/break_stone.ogg', 100, FALSE, 50, TRUE, TRUE) - if(prob(45)) - new /obj/item/stack/sheet/mineral/abductor(loc) - new /mob/living/simple_animal/hostile/asteroid/polarbear(loc) - if(prob(30)) - new /obj/item/clothing/under/abductor(loc) - new /mob/living/simple_animal/hostile/asteroid/polarbear(loc) - if(prob(35)) - new /obj/item/weldingtool/abductor(loc) - if(prob(30)) - new /obj/item/scalpel/alien(loc) - if(prob(35)) - new /obj/item/circuitboard/machine/plantgenes/vault(loc) - new /mob/living/simple_animal/hostile/asteroid/polarbear(loc) - if(prob(35)) - new /obj/item/organ/heart/gland/heal(loc) - new /mob/living/simple_animal/hostile/asteroid/polarbear(loc) - if(prob(35)) - new /obj/item/organ/heart/gland/ventcrawling(loc) - new /mob/living/simple_animal/hostile/asteroid/polarbear(loc) - if(prob(35)) - new /obj/item/organ/heart/gland/slime(loc) - new /mob/living/simple_animal/hostile/asteroid/polarbear(loc) - if(prob(10)) - new /obj/item/organ/heart/gland/spiderman(loc) - new /mob/living/simple_animal/hostile/asteroid/polarbear(loc) - if(prob(35)) - new /obj/item/wrench/abductor(loc) - new /obj/item/screwdriver/abductor(loc) - if(prob(35)) - new /obj/item/crowbar/abductor(loc) - new /obj/item/multitool/abductor(loc) - if(prob(15)) - new /obj/item/abductor_machine_beacon/chem_dispenser(loc) - new /mob/living/simple_animal/hostile/asteroid/polarbear(loc) - if(prob(35)) - new /obj/item/clothing/suit/armor/abductor/vest(loc) - new /mob/living/simple_animal/hostile/asteroid/polarbear(loc) - new /obj/structure/fluff/iced_abductor(loc) - new /mob/living/simple_animal/hostile/asteroid/polarbear(loc) - new /turf/open/floor/mineral/abductor(loc) - if(20)//hey, free elite tumor! + if(19)//hey, free elite tumor! visible_message("A large, pulsating structure falls through the portal and crashes to the floor.") playsound(loc,'sound/effects/break_stone.ogg', 100, FALSE, 50, TRUE, TRUE) new /obj/structure/elite_tumor(loc) new /turf/open/floor/plating/asteroid/basalt(loc) - if(21)//*you flush the toilet.* + if(20)//*you flush the toilet.* visible_message("You hear the faint noise of a long flush.") new /obj/structure/toilet(loc) new /obj/effect/decal/remains(loc) new /obj/item/newspaper(loc) new /turf/open/floor/plastic(loc) new /obj/item/clothing/head/papersack/smiley(loc) //welcome to the bathroom - if(22)//Research & Zombies + if(21)//Research & Zombies visible_message("Flashing lights and quarantine alarms echo through the portal. You smell rotting flesh and plasma.") playsound(loc,'sound/misc/bloblarm.ogg', 120, FALSE, 50, TRUE, TRUE) if(prob(35)) @@ -1065,7 +1021,7 @@ GLOBAL_LIST_INIT(ore_probability, list( new /obj/item/research_notes/loot/small(loc) new/turf/open/floor/mineral/titanium/purple(loc) new /mob/living/simple_animal/hostile/zombie(loc) - if(23)//Silverback's locker room + if(22)//Silverback's locker room visible_message("You catch a glimpse of verdant green. Smells like a locker room.") playsound(loc,'sound/creatures/gorilla.ogg', 75, FALSE, 50, TRUE, TRUE) new /mob/living/simple_animal/hostile/gorilla(loc) diff --git a/code/game/objects/structures/printer.dm b/code/game/objects/structures/printer.dm new file mode 100644 index 000000000000..c4c1abea9cf7 --- /dev/null +++ b/code/game/objects/structures/printer.dm @@ -0,0 +1,185 @@ +/obj/machinery/printer + name = "poster printer" + desc = "Used to print out various posters using toner cartridges." + icon = 'icons/obj/printer.dmi' + icon_state = "printer" + density = TRUE + power_channel = AREA_USAGE_EQUIP + max_integrity = 100 + pass_flags = PASSTABLE + circuit = /obj/item/circuitboard/machine/printer + var/busy = FALSE + var/datum/weakref/loaded_item_ref + var/datum/weakref/printed_poster + var/obj/item/toner/toner_cartridge + var/poster_type + +/obj/machinery/printer/Initialize() + . = ..() + toner_cartridge = new(src) + +/obj/machinery/printer/update_overlays() + . = ..() + if(panel_open) + . += mutable_appearance(icon, "printer_panel") + var/obj/item/loaded = loaded_item_ref?.resolve() + var/obj/item/poster = printed_poster?.resolve() + if(loaded) + . += mutable_appearance(icon, "contain_paper") + if(poster) + . += mutable_appearance(icon, "contain_poster") + +/obj/machinery/printer/screwdriver_act(mob/living/user, obj/item/screwdriver) + . = ..() + default_deconstruction_screwdriver(user, icon_state, icon_state, screwdriver) + update_icon() + return TRUE + +/obj/machinery/printer/Destroy() + QDEL_NULL(toner_cartridge) + QDEL_NULL(loaded_item_ref) + QDEL_NULL(printed_poster) + return ..() + +/obj/machinery/printer/attackby(obj/item/item, mob/user, params) + if(panel_open) + if(is_wire_tool(item)) + wires.interact(user) + return + if(can_load_item(item)) + if(!loaded_item_ref?.resolve()) + loaded_item_ref = WEAKREF(item) + item.forceMove(src) + update_icon() + return + else if(istype(item, /obj/item/toner)) + if(toner_cartridge) + to_chat(user, "[src] already has a toner cartridge inserted. Remove that one first.") + return + item.forceMove(src) + toner_cartridge = item + to_chat(user, "You insert [item] into [src].") + else return ..() + +/obj/machinery/printer/proc/can_load_item(obj/item/item) + if(busy) + return FALSE //no loading the printer if there's already a print job happening! + if(!istype(item, /obj/item/paper)) + return FALSE + if(!istype(item, /obj/item/stack)) + return TRUE + var/obj/item/stack/stack_item = item + return stack_item.amount == 1 + +/obj/machinery/printer/ui_data(mob/user) + var/list/data = list() + data["has_paper"] = !!loaded_item_ref?.resolve() + data["has_poster"] = !!printed_poster?.resolve() + + if(toner_cartridge) + data["has_toner"] = TRUE + data["current_toner"] = toner_cartridge.charges + data["max_toner"] = toner_cartridge.max_charges + data["has_enough_toner"] = has_enough_toner() + else + data["has_toner"] = FALSE + data["has_enough_toner"] = FALSE + + return data + +/obj/machinery/printer/proc/has_enough_toner() + return toner_cartridge.charges >= 1 + +/obj/machinery/printer/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "PosterPrinter") + ui.open() + +/obj/machinery/printer/ui_act(action, list/params) + . = ..() + if(.) + return + var/obj/item/poster = printed_poster?.resolve() + var/obj/item/loaded = loaded_item_ref?.resolve() + switch(action) + if("remove") + if(!loaded) + return + loaded.forceMove(drop_location()) + loaded_item_ref = null + update_icon() + return TRUE + if("remove_poster") + if(!poster) + to_chat(usr, span_warning("No poster! waddaheeeeell")) + return + if(busy) + to_chat(usr, span_warning("[src] is still printing your poster! Please wait until it is finished.")) + return FALSE + poster.forceMove(drop_location()) + printed_poster = null + update_icon() + return TRUE + if("choose_type") + poster_type = params["poster_type"] + return TRUE + if("print") + if(busy) + to_chat(usr, span_warning("[src] is currently busy printing a poster. Please wait until it is finished.")) + return FALSE + if(toner_cartridge.charges - 1 < 0) + to_chat(usr, span_warning("There is not enough toner in [src] to print the poster, please replace the cartridge.")) + return FALSE + if(!loaded) + to_chat(usr, span_warning("[src] has no paper in it! Please insert a sheet of paper.")) + return FALSE + if(!poster_type) + to_chat(usr, span_warning("[src] has no poster type selected! Please select a type first!")) + return FALSE + if(poster) + to_chat(usr, span_warning("[src] ejects its current poster before printing a new one.")) + poster.forceMove(drop_location()) + printed_poster = null + update_icon() + print_poster() + return TRUE + if("remove_toner") + if(issilicon(usr) || (ishuman(usr) && !usr.put_in_hands(toner_cartridge))) + toner_cartridge.forceMove(drop_location()) + toner_cartridge = null + return TRUE + +/obj/machinery/printer/proc/print_poster() + busy = TRUE + loaded_item_ref = null + playsound(src, 'sound/items/poster_being_created.ogg', 20, FALSE) + toner_cartridge.charges -= 1 + icon_state = "print" + var/mutable_appearance/overlay = mutable_appearance(icon, "print_poster") + overlays += overlay + update_icon() + addtimer(CALLBACK(src, PROC_REF(print_complete), overlay), 2.6 SECONDS) + +/obj/machinery/printer/proc/print_complete(mutable_appearance/remove_overlay) + icon_state = "printer" + overlays -= remove_overlay + switch(poster_type) + if("Syndicate") + var/obj/item/poster/random_contraband/poster = new() + printed_poster = WEAKREF(poster) + if("SolGov") + var/obj/item/poster/random_solgov/poster = new() + printed_poster = WEAKREF(poster) + if("Nanotrasen") + var/obj/item/poster/random_official/poster = new() + printed_poster = WEAKREF(poster) + if("RILENA") + var/obj/item/poster/random_rilena/poster = new() + printed_poster = WEAKREF(poster) + if("Nanotrasen (Retro)") + var/obj/item/poster/random_retro/poster = new() + printed_poster = WEAKREF(poster) + update_icon() + busy = FALSE + poster_type = null diff --git a/code/game/objects/structures/salvaging.dm b/code/game/objects/structures/salvaging.dm index 3d90a25a1013..4f3bee0cff60 100644 --- a/code/game/objects/structures/salvaging.dm +++ b/code/game/objects/structures/salvaging.dm @@ -704,19 +704,4 @@ /obj/item/crowbar/syndie = 30, /obj/item/wirecutters/syndie = 30, /obj/item/multitool/syndie = 30, - - /obj/item/scalpel/alien = 1, - /obj/item/hemostat/alien = 1, - /obj/item/cautery/alien = 1, - /obj/item/retractor/alien = 1, - /obj/item/circular_saw/alien = 1, - /obj/item/surgicaldrill/alien = 1, - - /obj/item/wrench/abductor = 1, - /obj/item/screwdriver/abductor = 1, - /obj/item/weldingtool/abductor = 1, - /obj/item/crowbar/abductor = 1, - /obj/item/wirecutters/abductor = 1, - /obj/item/multitool/abductor = 1, - ) diff --git a/code/game/objects/structures/spawner.dm b/code/game/objects/structures/spawner.dm index 572e150815c6..620f1cb6126d 100644 --- a/code/game/objects/structures/spawner.dm +++ b/code/game/objects/structures/spawner.dm @@ -19,7 +19,6 @@ GLOBAL_LIST_INIT(astroloot, list( /obj/item/tank/jetpack/suit = 10, /obj/item/survivalcapsule = 15, /obj/item/reagent_containers/hypospray/medipen/survival = 15, - /obj/item/card/mining_point_card = 15, /obj/item/gps/mining = 10, /obj/item/extraction_pack = 10, /obj/item/reagent_containers/food/drinks/beer = 15, diff --git a/code/game/turfs/closed/_closed.dm b/code/game/turfs/closed/_closed.dm index d179a2930d2f..c7a1d9dd6f29 100644 --- a/code/game/turfs/closed/_closed.dm +++ b/code/game/turfs/closed/_closed.dm @@ -230,7 +230,7 @@ /turf/closed/indestructible/fakedoor name = "CentCom Access" icon = 'icons/obj/doors/airlocks/centcom/centcom.dmi' - icon_state = "fake_door" + icon_state = "fakedoor" /turf/closed/indestructible/rock name = "dense rock" diff --git a/code/modules/admin/admin_fax_panel.dm b/code/modules/admin/admin_fax_panel.dm new file mode 100644 index 000000000000..32f523584a39 --- /dev/null +++ b/code/modules/admin/admin_fax_panel.dm @@ -0,0 +1,145 @@ +/** + * If client have R_ADMIN flag, opens an admin fax panel. + */ +/client/proc/fax_panel() + set name = "Send Fax Message" + set category = "Admin" + + if(!check_rights(R_ADMIN)) + return + + var/datum/fax_panel_interface/ui = new(usr) + ui.ui_interact(usr) + +/// Admin Fax Panel. Tool for sending fax messages faster. +/datum/fax_panel_interface + /// All faxes in from machinery list() + var/available_faxes = list() + /// List with available stamps + var/stamp_list = list() + + /// Paper which admin edit and send. + var/obj/item/paper/fax_paper = new /obj/item/paper(null) + + /// Default name of fax. Used when field with fax name not edited. + var/sending_fax_name = "Secret" + /// Default name of paper. paper - bluh-bluh. Used when field with paper name not edited. + var/default_paper_name = "Standard Report" + +/datum/fax_panel_interface/New() + //Get all faxes, and save them to our list. + for(var/obj/machinery/fax/fax as anything in GLOB.fax_machines) + available_faxes += WEAKREF(fax) + + //Get all stamps + for(var/stamp in subtypesof(/obj/item/stamp)) + var/obj/item/stamp/real_stamp = new stamp() + if(!istype(real_stamp, /obj/item/stamp/chameleon)) + var/stamp_detail = real_stamp.get_writing_implement_details() + stamp_list += list(list(real_stamp.name, real_stamp.icon_state, stamp_detail["stamp_class"])) + + //Give our paper special status, to read everywhere. + fax_paper.request_state = TRUE + +/** + * Return fax if name exists + * Arguments: + * * name - Name of fax what we try to find. + */ +/datum/fax_panel_interface/proc/get_fax_by_name(name) + if(!length(available_faxes)) + return null + + for(var/datum/weakref/weakrefed_fax as anything in available_faxes) + var/obj/machinery/fax/potential_fax = weakrefed_fax.resolve() + if(potential_fax && istype(potential_fax)) + if(potential_fax.fax_name == name) + return potential_fax + return null + +/datum/fax_panel_interface/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "AdminFax") + ui.open() + +/datum/fax_panel_interface/ui_state(mob/user) + return GLOB.admin_state + +/datum/fax_panel_interface/ui_static_data(mob/user) + var/list/data = list() + + data["faxes"] = list() + data["stamps"] = list() + + for(var/stamp in stamp_list) + data["stamps"] += list(stamp[1]) // send only names. + + for(var/datum/weakref/weakrefed_fax as anything in available_faxes) + var/obj/machinery/fax/another_fax = weakrefed_fax.resolve() + if(another_fax && istype(another_fax)) + data["faxes"] += list(another_fax.fax_name) + + return data + +/datum/fax_panel_interface/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + if(..()) + return + + if(!check_rights(R_ADMIN)) + return + + var/obj/machinery/fax/action_fax + + if(params["faxName"]) + action_fax = get_fax_by_name(params["faxName"]) + + switch(action) + + if("follow") + if(!isobserver(usr)) + usr.client?.admin_ghost() + + usr.client?.holder?.admin_follow(action_fax) + + if("preview") // see saved variant + if(!fax_paper) + return + fax_paper.ui_interact(usr) + + if("save") // save paper + if(params["paperName"]) + default_paper_name = params["paperName"] + if(params["fromWho"]) + sending_fax_name = params["fromWho"] + + fax_paper.clear_paper() + var/stamp + var/stamp_class + + for(var/needed_stamp in stamp_list) + if(needed_stamp[1] == params["stamp"]) + stamp = needed_stamp[2] + stamp_class = needed_stamp[3] + break + + fax_paper.name = "paper — [default_paper_name]" + fax_paper.add_raw_text(params["rawText"], advanced_html = TRUE) + + if(stamp) + fax_paper.add_stamp(stamp_class, params["stampX"], params["stampY"], params["stampAngle"], stamp) + + fax_paper.update_static_data(usr) // OK, it's work, and update UI. + + if("send") + //copy + var/obj/item/paper/our_fax = fax_paper.copy(/obj/item/paper) + our_fax.name = fax_paper.name + //send + action_fax.receive(our_fax, sending_fax_name, important = TRUE) + message_admins("[key_name_admin(usr)] has sent a custom fax message to [action_fax.name][ADMIN_FLW(action_fax)][ADMIN_SHOW_PAPER(fax_paper)].") + log_admin("[key_name(usr)] has sent a custom fax message to [action_fax.name]") + + if("createPaper") + var/obj/item/paper/our_paper = fax_paper.copy(/obj/item/paper, usr.loc) + our_paper.name = fax_paper.name diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 929cf33f3315..986399d63299 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -26,7 +26,9 @@ GLOBAL_PROTECT(admin_verbs_default) /client/proc/resetasaycolor, /client/proc/fix_air, /*resets air in designated radius to its default atmos composition*/ /client/proc/addbunkerbypass, - /client/proc/revokebunkerbypass + /client/proc/revokebunkerbypass, + /client/proc/requests, + /client/proc/fax_panel, /*send a paper to fax*/ ) GLOBAL_LIST_INIT(admin_verbs_admin, world.AVerbsAdmin()) GLOBAL_PROTECT(admin_verbs_admin) @@ -119,7 +121,6 @@ GLOBAL_LIST_INIT(admin_verbs_fun, list( /client/proc/polymorph_all, /client/proc/show_tip, /client/proc/smite, - /client/proc/fax_manager, /client/proc/spawn_ruin, )) GLOBAL_PROTECT(admin_verbs_fun) @@ -283,7 +284,6 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, list( /client/proc/cmd_display_del_log, /client/proc/toggle_combo_hud, /client/proc/debug_huds, - /client/proc/fax_manager )) GLOBAL_PROTECT(admin_verbs_hideable) @@ -766,7 +766,7 @@ GLOBAL_PROTECT(admin_verbs_hideable) set name = "Debug Stat Panel" set category = "Debug" - src << output("", "statbrowser:create_debug") + src.stat_panel.send_message("create_debug") #ifdef SENDMAPS_PROFILE /client/proc/display_sendmaps() diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index bb46d7250b0b..b917501d0bb8 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -2218,10 +2218,14 @@ return GLOB.interviews.ui_interact(usr) - else if(href_list["open_fax_manager"]) + else if(href_list["show_paper"]) if(!check_rights(R_ADMIN)) return - usr.client.fax_manager() + + var/obj/item/paper/paper_to_show = locate(href_list["show_paper"]) + if(!istype(paper_to_show)) + return + paper_to_show.ui_interact(usr) /datum/admins/proc/HandleCMode() if(!check_rights(R_ADMIN)) diff --git a/code/modules/admin/verbs/fax_manager.dm b/code/modules/admin/verbs/fax_manager.dm deleted file mode 100644 index 6c6de9d5d100..000000000000 --- a/code/modules/admin/verbs/fax_manager.dm +++ /dev/null @@ -1,9 +0,0 @@ -/client/proc/fax_manager() - set category = "Fun" - set name = "Fax Manager" - set desc = "Open the manager panel to view all requests during the round in progress." - if(!check_rights(R_ADMIN)) - return - - SSblackbox.record_feedback("tally", "admin_verb", 1, "Fax Manager") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - GLOB.fax_manager.ui_interact(usr) diff --git a/code/modules/admin/verbs/pray.dm b/code/modules/admin/verbs/pray.dm index 05dccfc0ca75..c2be9649d7c3 100644 --- a/code/modules/admin/verbs/pray.dm +++ b/code/modules/admin/verbs/pray.dm @@ -44,23 +44,21 @@ deity = "Ashen Hunter" var/msg_tmp = msg + GLOB.requests.pray(usr.client, msg, usr.job == "Chaplain") msg = "[icon2html(cross, GLOB.admins)][prayer_type][deity ? " (to [deity])" : ""]: [ADMIN_FULLMONTY(src)] [ADMIN_SC(src)]: [msg]" for(var/client/C in GLOB.admins) if(C.prefs.chat_toggles & CHAT_PRAYER) to_chat(C, msg, confidential = TRUE) - if(C.prefs.toggles & SOUND_PRAYERS) - if(usr.job == "Chaplain") - SEND_SOUND(C, sound('sound/effects/pray.ogg')) to_chat(usr, "You pray to the gods: \"[msg_tmp]\"", confidential = TRUE) SSredbot.send_discord_message("admin", "Prayer from [src.key]/([src.name]): [msg]") SSblackbox.record_feedback("tally", "admin_verb", 1, "Prayer") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - //log_admin("HELP: [key_name(src)]: [msg]") /// Used by communications consoles to message CentCom /proc/message_centcom(text, mob/sender) var/msg = copytext_char(sanitize(text), 1, MAX_MESSAGE_LEN) + GLOB.requests.message_centcom(sender.client, msg) msg = "CENTCOM:[ADMIN_FULLMONTY(sender)] [ADMIN_CENTCOM_REPLY(sender)]: [msg]" to_chat(GLOB.admins, msg, confidential = TRUE) for(var/obj/machinery/computer/communications/console in GLOB.machines) @@ -69,6 +67,7 @@ /// Used by communications consoles to message the Syndicate /proc/message_syndicate(text, mob/sender) var/msg = copytext_char(sanitize(text), 1, MAX_MESSAGE_LEN) + GLOB.requests.message_syndicate(sender.client, msg) msg = "SYNDICATE:[ADMIN_FULLMONTY(sender)] [ADMIN_SYNDICATE_REPLY(sender)]: [msg]" to_chat(GLOB.admins, msg, confidential = TRUE) for(var/obj/machinery/computer/communications/console in GLOB.machines) @@ -77,6 +76,7 @@ /// Used by communications consoles to request the nuclear launch codes /proc/nuke_request(text, mob/sender) var/msg = copytext_char(sanitize(text), 1, MAX_MESSAGE_LEN) + GLOB.requests.nuke_request(sender.client, msg) msg = "NUKE CODE REQUEST:[ADMIN_FULLMONTY(sender)] [ADMIN_CENTCOM_REPLY(sender)] [ADMIN_SET_SD_CODE]: [msg]" to_chat(GLOB.admins, msg, confidential = TRUE) for(var/obj/machinery/computer/communications/console in GLOB.machines) diff --git a/code/modules/admin/verbs/requests.dm b/code/modules/admin/verbs/requests.dm new file mode 100644 index 000000000000..94aa976dbd1a --- /dev/null +++ b/code/modules/admin/verbs/requests.dm @@ -0,0 +1,7 @@ +/// Verb for opening the requests manager panel +/client/proc/requests() + set name = "Requests Manager" + set desc = "Open the request manager panel to view all requests during this round" + set category = "Admin" + SSblackbox.record_feedback("tally", "admin_verb", 1, "Request Manager") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + GLOB.requests.ui_interact(usr) diff --git a/code/modules/antagonists/borer/borer.dm b/code/modules/antagonists/borer/borer.dm index 41e8b644fa53..d4af47670412 100644 --- a/code/modules/antagonists/borer/borer.dm +++ b/code/modules/antagonists/borer/borer.dm @@ -52,7 +52,7 @@ B.victim.adjustOrganLoss(ORGAN_SLOT_BRAIN, rand(5, 10)) to_chat(src, "With an immense exertion of will, you regain control of your body!") to_chat(B, "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() + B.detach() GLOBAL_LIST_EMPTY(borers) GLOBAL_VAR_INIT(total_borer_hosts_needed, 3) @@ -568,7 +568,7 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 3) return if(controlling) - detatch() + detach() if(src.mind.language_holder) var/datum/language_holder/language_holder = src.mind.language_holder @@ -721,6 +721,8 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 3) victim.med_hud_set_status() + RegisterSignal(victim, COMSIG_MOB_GET_STATUS_TAB_ITEMS, PROC_REF(get_borer_stat_panel)) + /mob/living/simple_animal/borer/verb/punish() set category = "Borer" set name = "Punish" @@ -756,7 +758,6 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 3) /mob/living/carbon/proc/release_control() - set category = "Borer" set name = "Release Control" set desc = "Release control of your host's body." @@ -764,8 +765,12 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 3) var/mob/living/simple_animal/borer/B = has_brain_worms() if(B && B.host_brain) to_chat(B, "You withdraw your probosci, releasing control of [B.host_brain]") + B.detach() - B.detatch() +/mob/living/simple_animal/borer/proc/get_borer_stat_panel(mob/living/source, list/items) + SIGNAL_HANDLER + items += "Borer Body Health: [health]" + items += "Chemicals: [chemicals]" //Check for brain worms in head. /mob/proc/has_brain_worms() @@ -801,7 +806,7 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 3) to_chat(src, "You need 200 chemicals stored to reproduce.") return -/mob/living/simple_animal/borer/proc/detatch() +/mob/living/simple_animal/borer/proc/detach() if(!victim || !controlling) return @@ -829,6 +834,8 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 3) log_game("[src]/([src.ckey]) released control of [victim]/([victim.ckey]") + UnregisterSignal(victim, COMSIG_MOB_GET_STATUS_TAB_ITEMS) + qdel(host_brain) /mob/living/simple_animal/borer/proc/toggle_leap() diff --git a/code/modules/antagonists/changeling/powers/panacea.dm b/code/modules/antagonists/changeling/powers/panacea.dm index 5c1010aaf69a..573ebd127fde 100644 --- a/code/modules/antagonists/changeling/powers/panacea.dm +++ b/code/modules/antagonists/changeling/powers/panacea.dm @@ -29,7 +29,7 @@ var/mob/living/simple_animal/borer/B = user.has_brain_worms() //WS Begin - Borers if(B) if(B.controlling) - B.detatch() + B.detach() B.leave_victim() if(iscarbon(user)) var/mob/living/carbon/C = user diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm index 26f0bb1d81ea..003abfd42991 100644 --- a/code/modules/antagonists/cult/blood_magic.dm +++ b/code/modules/antagonists/cult/blood_magic.dm @@ -839,7 +839,7 @@ if(uses < BLOOD_BARRAGE_COST) to_chat(user, "You need [BLOOD_BARRAGE_COST] charges to perform this rite.") else - var/obj/rite = new /obj/item/gun/ballistic/rifle/boltaction/enchanted/arcane_barrage/blood() + var/obj/rite = new /obj/item/gun/ballistic/rifle/illestren/enchanted/arcane_barrage/blood() uses -= BLOOD_BARRAGE_COST qdel(src) if(user.put_in_hands(rite)) diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index b09b7d989758..7d0e9f7a4346 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -704,7 +704,7 @@ spear.throw_at(owner, 10, 2, owner) -/obj/item/gun/ballistic/rifle/boltaction/enchanted/arcane_barrage/blood +/obj/item/gun/ballistic/rifle/illestren/enchanted/arcane_barrage/blood name = "blood bolt barrage" desc = "Blood for blood." color = "#ff0000" diff --git a/code/modules/antagonists/ert/ert.dm b/code/modules/antagonists/ert/ert.dm index f529c19901a3..d731343d33f0 100644 --- a/code/modules/antagonists/ert/ert.dm +++ b/code/modules/antagonists/ert/ert.dm @@ -207,23 +207,23 @@ /datum/antagonist/ert/lp name = "Loss Prevention Security Specialist" - outfit = /datum/outfit/job/nanotrasen/ert/lp + outfit = /datum/outfit/job/nanotrasen/security/ert/lp role = "Security Specialist" /datum/antagonist/ert/lp/medic name = "Loss Prevention Medical Specialist" - outfit = /datum/outfit/job/nanotrasen/ert/lp/medic + outfit = /datum/outfit/job/nanotrasen/security/ert/lp/medic role = "Medical Specialist" /datum/antagonist/ert/lp/engineer name = "Loss Prevention Engineering Specialist" - outfit = /datum/outfit/job/nanotrasen/ert/lp/engineer + outfit = /datum/outfit/job/nanotrasen/security/ert/lp/engineer role = "Engineering Specialist" /datum/antagonist/ert/lp/lieutenant name = "Loss Prevention Lieutenant" leader = TRUE - outfit = /datum/outfit/job/nanotrasen/ert/lp/lieutenant + outfit = /datum/outfit/job/nanotrasen/security/ert/lp/lieutenant role = "Lieutenant" // ******************************************************************** @@ -461,6 +461,18 @@ outfit = /datum/outfit/job/syndicate/ert/cybersun/medic/leader role = "Lead Medical Technician" +/datum/antagonist/ert/official/syndicate + name = "Syndicate Inspector" + outfit = /datum/outfit/job/syndicate/ert/inspector + role = "Syndicate Inspector" + +/datum/antagonist/ert/official/solgov/greet() + to_chat(owner, "You are a Syndicate Inspector.") + if (ert_team) + to_chat(owner, "The Syndicate Coalition is sending you to [station_name()] with the task: [ert_team.mission.explanation_text]") + else + to_chat(owner, "The Syndicate Coalition is sending you to [station_name()] with the task: [mission.explanation_text]") + // ******************************************************************** // ** Frontiersmen ** // ******************************************************************** diff --git a/code/modules/antagonists/fugitive/fugitive_outfits.dm b/code/modules/antagonists/fugitive/fugitive_outfits.dm index be343bb8bc6e..df784813df40 100644 --- a/code/modules/antagonists/fugitive/fugitive_outfits.dm +++ b/code/modules/antagonists/fugitive/fugitive_outfits.dm @@ -65,7 +65,7 @@ name = "Spacepol Officer" uniform = /obj/item/clothing/under/rank/security/officer/beatcop suit = /obj/item/clothing/suit/armor/vest/blueshirt - belt = /obj/item/gun/ballistic/automatic/pistol/m1911 + belt = /obj/item/gun/ballistic/automatic/pistol/candor head = /obj/item/clothing/head/helmet/police gloves = /obj/item/clothing/gloves/tackler/combat shoes = /obj/item/clothing/shoes/jackboots @@ -87,7 +87,7 @@ /datum/outfit/frontier/hunter name = "Frontiersman Corpse (Hunter)" ears = /obj/item/radio/headset - r_hand = /obj/item/gun/ballistic/rifle/boltaction + r_hand = /obj/item/gun/ballistic/rifle/illestren /datum/outfit/frontier/hunter/pre_equip(mob/living/carbon/human/H) if(prob(50)) @@ -133,7 +133,7 @@ /obj/item/ammo_casing/shotgun/incapacitate = 6 ) -/datum/outfit/bountygrapple/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) +/datum/outfit/bountyhook/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) if(visualsOnly) return var/obj/item/card/id/W = H.wear_id diff --git a/code/modules/antagonists/gang/outfits.dm b/code/modules/antagonists/gang/outfits.dm index afe4c65b7e28..ae16ec956470 100644 --- a/code/modules/antagonists/gang/outfits.dm +++ b/code/modules/antagonists/gang/outfits.dm @@ -1,3 +1,6 @@ +/datum/outfit/families_police + name = "Families: Police Officer" + /datum/outfit/families_police/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) if(visualsOnly) return @@ -21,7 +24,7 @@ ears = /obj/item/radio/headset/headset_sec mask = null head = /obj/item/clothing/head/spacepolice - belt = /obj/item/gun/ballistic/automatic/pistol/m1911 + belt = /obj/item/gun/ballistic/automatic/pistol/candor r_pocket = /obj/item/lighter l_pocket = /obj/item/restraints/handcuffs id = /obj/item/card/id diff --git a/code/modules/assembly/health.dm b/code/modules/assembly/health.dm index 2a07737e2c63..7bc5adc33de2 100644 --- a/code/modules/assembly/health.dm +++ b/code/modules/assembly/health.dm @@ -14,6 +14,13 @@ . += "Use it in hand to turn it off/on and Alt-click to swap between \"detect death\" mode and \"detect critical state\" mode." . += "[src.scanning ? "The sensor is on and you can see [health_scan] displayed on the screen" : "The sensor is off"]." +/obj/item/assembly/health/Moved(atom/old_loc, movement_dir, forced, list/old_locs, momentum_change) + . = ..() + if(iscarbon(old_loc)) + UnregisterSignal(old_loc, COMSIG_MOB_GET_STATUS_TAB_ITEMS) + if(iscarbon(loc)) + RegisterSignal(loc, COMSIG_MOB_GET_STATUS_TAB_ITEMS, PROC_REF(get_status_tab_item)) + /obj/item/assembly/health/activate() if(!..()) return FALSE//Cooldown check @@ -73,3 +80,7 @@ . = ..() to_chat(user, "You toggle [src] [src.scanning ? "off" : "on"].") toggle_scan() + +/obj/item/assembly/health/proc/get_status_tab_item(mob/living/carbon/source, list/items) + SIGNAL_HANDLER + items += "Health: [round((source.health / source.maxHealth) * 100)]%" diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index feb2fd160992..f6a9d07aa68f 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -112,7 +112,16 @@ "stamp-mime" = 'icons/stamp_icons/large_stamp-mime.png', "stamp-centcom" = 'icons/stamp_icons/large_stamp-centcom.png', "stamp-syndicate" = 'icons/stamp_icons/large_stamp-syndicate.png', - "stamp-solgov" = 'icons/stamp_icons/large_stamp-solgov.png' + "stamp-solgov" = 'icons/stamp_icons/large_stamp-solgov.png', + "stamp-inteq" = 'icons/stamp_icons/large_stamp-inteq.png', + "stamp-vanguard" = 'icons/stamp_icons/large_stamp-vanguard.png', + "stamp-maa" = 'icons/stamp_icons/large_stamp-maa.png', + "stamp-artificer" = 'icons/stamp_icons/large_stamp-artificer.png', + "stamp-cmm" = 'icons/stamp_icons/large_stamp-cmm.png', + "stamp-bard" = 'icons/stamp_icons/large_stamp-bard.png', + "stamp-gold" = 'icons/stamp_icons/large_stamp-gold.png', + "stamp-cybersun" = 'icons/stamp_icons/large_stamp-cybersun.png', + "stamp-donk" = 'icons/stamp_icons/large_stamp-donk.png' ) /datum/asset/simple/fuckywucky diff --git a/code/modules/autowiki/pages/ships.dm b/code/modules/autowiki/pages/ships.dm index ecbdf8c65e2d..75b4afc1155b 100644 --- a/code/modules/autowiki/pages/ships.dm +++ b/code/modules/autowiki/pages/ships.dm @@ -73,9 +73,9 @@ return output -/datum/autowiki/ship/proc/get_dummy_image(datum/job/to_equip, filename) +/datum/autowiki/ship/proc/get_dummy_image(datum/job/to_equip) //Controlled randomisation - wiki_dummy.seeded_randomization(filename) + wiki_dummy.seeded_randomization(to_equip.type, list(/datum/species/ethereal, /datum/species/human, /datum/species/ipc, /datum/species/lizard, /datum/species/moth, /datum/species/spider)) //Delete all the old stuff they had wiki_dummy.wipe_state() diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm index 77c655c38247..daf7299ca970 100644 --- a/code/modules/awaymissions/capture_the_flag.dm +++ b/code/modules/awaymissions/capture_the_flag.dm @@ -537,10 +537,14 @@ ADD_TRAIT(I, TRAIT_NODROP, CAPTURE_THE_FLAG_TRAIT) /datum/outfit/ctf/instagib + name = "CTF (Instagib)" + r_hand = /obj/item/gun/energy/laser/instakill shoes = /obj/item/clothing/shoes/jackboots/fast /datum/outfit/ctf/red + name = "CTF (Red)" + suit = /obj/item/clothing/suit/space/hardsuit/shielded/ctf/red r_hand = /obj/item/gun/ballistic/automatic/laser/ctf/red l_pocket = /obj/item/ammo_box/magazine/recharge/ctf/red @@ -548,10 +552,14 @@ id = /obj/item/card/id/syndicate_command //it's red /datum/outfit/ctf/red/instagib + name = "CTF (Red, Instagib)" + r_hand = /obj/item/gun/energy/laser/instakill/red shoes = /obj/item/clothing/shoes/jackboots/fast /datum/outfit/ctf/blue + name = "CTF (Blue)" + suit = /obj/item/clothing/suit/space/hardsuit/shielded/ctf/blue r_hand = /obj/item/gun/ballistic/automatic/laser/ctf/blue l_pocket = /obj/item/ammo_box/magazine/recharge/ctf/blue @@ -559,6 +567,8 @@ id = /obj/item/card/id/centcom //it's blue /datum/outfit/ctf/blue/instagib + name = "CTF (Blue, Instagib)" + r_hand = /obj/item/gun/energy/laser/instakill/blue shoes = /obj/item/clothing/shoes/jackboots/fast diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index 3cc75b08ae1b..8e8739a5acb0 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -514,22 +514,10 @@ /obj/effect/mob_spawn/human/nanotrasensoldier - name = "\improper Nanotrasen Private Security Officer" + name = "\improper Nanotrasen LP Security Specialist" id_job = "Private Security Force" id_access_list = list(ACCESS_CENT_CAPTAIN, ACCESS_CENT_GENERAL, ACCESS_CENT_SPECOPS, ACCESS_CENT_MEDICAL, ACCESS_CENT_STORAGE, ACCESS_SECURITY, ACCESS_MECH_SECURITY) - outfit = /datum/outfit/nanotrasensoldiercorpse - -/datum/outfit/nanotrasensoldiercorpse - name = "NT Private Security Officer Corpse" - uniform = /obj/item/clothing/under/rank/security/officer - suit = /obj/item/clothing/suit/armor/vest - shoes = /obj/item/clothing/shoes/combat - gloves = /obj/item/clothing/gloves/tackler/combat - mask = /obj/item/clothing/mask/gas/sechailer/swat - head = /obj/item/clothing/head/helmet/swat/nanotrasen - back = /obj/item/storage/backpack/security - id = /obj/item/card/id - + outfit = /datum/outfit/job/nanotrasen/security/lp /obj/effect/mob_spawn/human/commander/alive death = FALSE diff --git a/code/modules/cargo/bounties/security.dm b/code/modules/cargo/bounties/security.dm index bcf7b89f3af1..26711f560922 100644 --- a/code/modules/cargo/bounties/security.dm +++ b/code/modules/cargo/bounties/security.dm @@ -3,7 +3,7 @@ description = "Hooligans have boarded CentCom! Ship riot shotguns quick, or things are going to get dirty." reward = 5000 required_count = 2 - wanted_types = list(/obj/item/gun/ballistic/shotgun/riot) + wanted_types = list(/obj/item/gun/ballistic/shotgun/hellfire) /datum/bounty/item/security/recharger name = "Rechargers" diff --git a/code/modules/cargo/packs/ammo.dm b/code/modules/cargo/packs/ammo.dm index 33a5ee37be02..4095c31841b3 100644 --- a/code/modules/cargo/packs/ammo.dm +++ b/code/modules/cargo/packs/ammo.dm @@ -15,8 +15,8 @@ cost = 1500 /datum/supply_pack/ammo/m45_mag - name = ".45 ACP M1911 Magazine Crate" - desc = "Contains three .45 ACP magazines for the M1911 pistol, each containing eight rounds." + name = ".45 ACP Candor Magazine Crate" + desc = "Contains three .45 ACP magazines for the Candor pistol, each containing eight rounds." contains = list(/obj/item/ammo_box/magazine/m45, /obj/item/ammo_box/magazine/m45, /obj/item/ammo_box/magazine/m45) @@ -75,26 +75,24 @@ /datum/supply_pack/ammo/buckshot name = "Buckshot Crate" - desc = "Contains two boxes of buckshot for use in lethal persuasion." - cost = 2000 - contains = list(/obj/item/storage/box/lethalshot, - /obj/item/storage/box/lethalshot) + desc = "Contains a box of twenty-five buckshot shells for use in lethal persuasion." + cost = 500 + contains = list(/obj/item/ammo_box/a12g) /datum/supply_pack/ammo/slugs name = "Shotgun Slug Crate" - desc = "Contains two boxes of slug shells for use in lethal persuasion." - cost = 2000 - contains = list(/obj/item/storage/box/slugshot, - /obj/item/storage/box/slugshot) + desc = "Contains a box of twenty-five slug shells for use in lethal persuasion." + cost = 500 + contains = list(/obj/item/ammo_box/a12g/slug) /* .38 ammo */ /datum/supply_pack/ammo/winchester_ammo - name = "Winchester and Detective Special .38 Ammo Boxes" + name = "Flaming Arrow and Detective Special .38 Ammo Boxes" desc = "Contains two 30 round ammo boxes for refilling .38 weapons." - cost = 1000 + cost = 500 contains = list(/obj/item/ammo_box/c38_box, /obj/item/ammo_box/c38_box) crate_name = "ammo crate" @@ -167,8 +165,8 @@ cost = 2000 /datum/supply_pack/ammo/ak47_ammo - name = "AKM 7.62x39mm FMJ Magazine Crate" - desc = "Contains two 7.62x39mm FMJ magazines for the AKM rifle, each containing twenty rounds." + name = "SVG 7.62x39mm FMJ Magazine Crate" + desc = "Contains two 7.62x39mm FMJ magazines for the SVG rifle, each containing twenty rounds." contains = list(/obj/item/ammo_box/magazine/ak47, /obj/item/ammo_box/magazine/ak47) cost = 2000 @@ -181,10 +179,105 @@ cost = 2000 /datum/supply_pack/ammo/a762_ammo - name = "7.62x54mm Stripper Clip Crate" - desc = "Contains four 7.62x54mm stripper clips for rifles like the illestren rifle, each containing five rounds." - contains = list(/obj/item/ammo_box/a762, - /obj/item/ammo_box/a762, - /obj/item/ammo_box/a762, - /obj/item/ammo_box/a762) + name = "8x50mmR Stripper Clip Crate" + desc = "Contains four 8x50mmR stripper clips for rifles like the illestren rifle, each containing five rounds." + contains = list(/obj/item/ammo_box/magazine/illestren_a850r, + /obj/item/ammo_box/magazine/illestren_a850r, + /obj/item/ammo_box/magazine/illestren_a850r, + /obj/item/ammo_box/magazine/illestren_a850r) + cost = 1000 + +/datum/supply_pack/ammo/a762_ammo_box + name = "7.62x39mm Ammo Box Crate" + desc = "Contains a sixty-round 7.62x39mm box for rifles like the SVG-67." + contains = list(/obj/item/ammo_box/a762_39) + cost = 500 + +/datum/supply_pack/ammo/c556mmHITP_ammo_box + name = "5.56 Caseless Ammo Box Crate" + desc = "Contains two fifty-round 5.56mm caseless boxes for SolGov sidearms like the Pistole C, for a total of 100 rounds." + contains = list(/obj/item/ammo_box/c556mmHITP, + /obj/item/ammo_box/c556mmHITP) + cost = 500 + +/datum/supply_pack/ammo/c45_ammo_box + name = ".45 Ammo Box Crate" + desc = "Contains two fifty-round .45 boxes for pistols and SMGs like the M1911 or the C-20r, for a total of 100 rounds." + contains = list(/obj/item/ammo_box/c45, + /obj/item/ammo_box/c45) + cost = 500 + +/datum/supply_pack/ammo/c10mm_ammo_box + name = "10mm Ammo Box Crate" + desc = "Contains two fifty-round 10mm boxes for pistols and SMGs like the Stechkin or the SkM-44(k), for a total of 100 rounds." + contains = list(/obj/item/ammo_box/c10mm, + /obj/item/ammo_box/c10mm) + cost = 500 + +/datum/supply_pack/ammo/c9mm_ammo_box + name = "9mm Ammo Box Crate" + desc = "Contains two fifty-round 9mm boxes for pistols and SMGs such as the Commander or Saber, for a total of 100 rounds." + contains = list(/obj/item/ammo_box/c9mm, + /obj/item/ammo_box/c9mm) + cost = 500 + +/datum/supply_pack/ammo/a308_ammo_box + name = "308 Ammo Box Crate" + desc = "Contains one thirty-round .308 box for DMRs such as the SsG-04 and CM-GAL-S." + contains = list(/obj/item/ammo_box/a308) + cost = 500 + +/datum/supply_pack/ammo/c9mmap_ammo_box + name = "9mm AP Ammo Box Crate" + desc = "Contains two fifty-round 9mm boxes loaded with armor piercing ammo, for a total of 100 rounds." + contains = list(/obj/item/ammo_box/c9mm/ap, + /obj/item/ammo_box/c9mm/ap) + cost = 1000 + +/datum/supply_pack/ammo/c556mmHITPap_ammo_box + name = "5.56 caseless AP Ammo Box Crate" + desc = "Contains two fifty-round 5.56mm caseless boxes loaded with armor piercing ammo, for a total of 100 rounds." + contains = list(/obj/item/ammo_box/c556mmHITP/ap, + /obj/item/ammo_box/c556mmHITP/ap) + cost = 1000 + +/datum/supply_pack/ammo/c45ap_ammo_box + name = ".45 AP Ammo Box Crate" + desc = "Contains two fifty-round .45 boxes loaded with armor piercing ammo, for a total of 100 rounds." + contains = list(/obj/item/ammo_box/c45/ap, + /obj/item/ammo_box/c45/ap) + cost = 1000 + +/datum/supply_pack/ammo/c10mmap_ammo_box + name = "10mm AP Ammo Box Crate" + desc = "Contains two fifty-round 10mm boxes loaded with armor piercing ammo, for a total of 100 rounds." + contains = list(/obj/item/ammo_box/c10mm/ap, + /obj/item/ammo_box/c10mm/ap) + cost = 1000 + +/datum/supply_pack/ammo/c9mmhp_ammo_box + name = "9mm HP Ammo Box Crate" + desc = "Contains two fifty-round 9mm boxes loaded with hollow point ammo, great against unarmored targets, for a total of 100 rounds." + contains = list(/obj/item/ammo_box/c9mm/hp, + /obj/item/ammo_box/c9mm/hp) + cost = 1000 + +/datum/supply_pack/ammo/c10mmhp_ammo_box + name = "10mm HP Ammo Box Crate" + desc = "Contains two fifty-round 10mm boxes loaded with hollow point ammo, great against unarmored targets, for a total of 100 rounds." + contains = list(/obj/item/ammo_box/c10mm/hp, + /obj/item/ammo_box/c10mm/hp) + cost = 1000 +/datum/supply_pack/ammo/c45hp_ammo_box + name = ".45 HP Ammo Box Crate" + desc = "Contains two fifty-round 10mm boxes loaded with hollow point ammo, great against unarmored targets, for a total of 100 rounds." + contains = list(/obj/item/ammo_box/c45/hp, + /obj/item/ammo_box/c45/hp) + cost = 1000 + +/datum/supply_pack/ammo/c556mmhitphp_ammo_box + name = "5.56 caseless Ammo Box Crate" + desc = "Contains two fifty-round 5.56mm caseless boxes loaded with hollow point ammo, great against unarmored targets, for a total of 100 rounds." + contains = list(/obj/item/ammo_box/c556mmHITP/hp, + /obj/item/ammo_box/c556mmHITP/hp) cost = 1000 diff --git a/code/modules/cargo/packs/gun.dm b/code/modules/cargo/packs/gun.dm index 6ca715889855..8cb9bad2e80e 100644 --- a/code/modules/cargo/packs/gun.dm +++ b/code/modules/cargo/packs/gun.dm @@ -19,7 +19,7 @@ /datum/supply_pack/gun/commanders name = "Commander pistol crate" - desc = "Contains two modified M1911 'Commander' pistols, produced by Nanotrasen and chambered in 9mm." + desc = "Contains two modified Candor 'Commander' pistols, produced by Nanotrasen and chambered in 9mm." cost = 1500 contains = list(/obj/item/gun/ballistic/automatic/pistol/commander, /obj/item/gun/ballistic/automatic/pistol/commander) @@ -45,12 +45,12 @@ contains = list(/obj/item/gun/ballistic/revolver/detective, /obj/item/gun/ballistic/revolver/detective) -/datum/supply_pack/gun/cattlemanrevolver - name = "Cattleman Revolver crate" - desc = "Contains two concealable Cattleman revolvers, chambered in .45 ACP." +/datum/supply_pack/gun/shadowrevolver + name = "Shadow Revolver crate" + desc = "Contains two concealable Shadow revolvers, chambered in .45 ACP." cost = 2500 - contains = list(/obj/item/gun/ballistic/revolver/cattleman, - /obj/item/gun/ballistic/revolver/cattleman) + contains = list(/obj/item/gun/ballistic/revolver/shadow, + /obj/item/gun/ballistic/revolver/shadow) /* @@ -86,42 +86,42 @@ Shotguns */ -/datum/supply_pack/gun/riot_shotgun - name = "Riot Shotguns Crate" - desc = "For when the greytide gets out of hand. Contains 2 pump shotguns, each with a 4-round magazine." - cost = 2500 - contains = list(/obj/item/gun/ballistic/shotgun/lethal, - /obj/item/gun/ballistic/shotgun/lethal) +/datum/supply_pack/gun/hellfire_shotgun + name = "Hellfire Shotguns Crate" + desc = "For when you need to deal with 7 hooligans. Contains 2 pump shotguns, each with a 8-round capacity." + cost = 4500 + contains = list(/obj/item/gun/ballistic/shotgun/hellfire, + /obj/item/gun/ballistic/shotgun/hellfire) crate_name = "shotguns crate" -/datum/supply_pack/gun/ballistic - name = "Combat Shotguns Crate" - desc = "For when the enemy absolutely needs to be replaced with lead. Contains two Aussec-designed combat shotguns." +/datum/supply_pack/gun/brimstone_shotgun + name = "Brimstone Shotguns Crate" + desc = "For when you need to deal with 5 hooligans, and QUICKLY. Contains 2 slamfire shotguns, each with a 5-round capacity. Warranty voided if sawed off." cost = 4500 - contains = list(/obj/item/gun/ballistic/shotgun/automatic/combat, - /obj/item/gun/ballistic/shotgun/automatic/combat) - crate_name = "combat shotguns crate" + contains = list(/obj/item/gun/ballistic/shotgun/brimstone, + /obj/item/gun/ballistic/shotgun/brimstone) + crate_name = "shotguns crate" /* Rifles */ /datum/supply_pack/gun/winchester - name = "Winchester Lever Action Rifle Crate" + name = "Flaming Arrow Lever Action Rifle Crate" desc = "Contains three antiquated lever action rifles intended for hunting wildlife. Chambered in .38 rounds." cost = 1500 - contains = list(/obj/item/gun/ballistic/shotgun/winchester, - /obj/item/gun/ballistic/shotgun/winchester, - /obj/item/gun/ballistic/shotgun/winchester) + contains = list(/obj/item/gun/ballistic/shotgun/flamingarrow, + /obj/item/gun/ballistic/shotgun/flamingarrow, + /obj/item/gun/ballistic/shotgun/flamingarrow) crate_name = "rifle crate" /datum/supply_pack/gun/illestren name = "Illestren Rifle Crate" - desc = "Contains three expertly made bolt action rifles intended for hunting wildlife. Chambered in 7.62x54 rounds." + desc = "Contains three expertly made bolt action rifles intended for hunting wildlife. Chambered in 8x50mmR rounds." cost = 4000 - contains = list(/obj/item/gun/ballistic/rifle/boltaction, - /obj/item/gun/ballistic/rifle/boltaction, - /obj/item/gun/ballistic/rifle/boltaction) + contains = list(/obj/item/gun/ballistic/rifle/illestren, + /obj/item/gun/ballistic/rifle/illestren, + /obj/item/gun/ballistic/rifle/illestren) crate_name = "rifle crate" /datum/supply_pack/gun/wt550 diff --git a/code/modules/cargo/packs/spacesuit_armor.dm b/code/modules/cargo/packs/spacesuit_armor.dm index b677cb88bc3b..c873a7e2dac4 100644 --- a/code/modules/cargo/packs/spacesuit_armor.dm +++ b/code/modules/cargo/packs/spacesuit_armor.dm @@ -136,7 +136,7 @@ /datum/supply_pack/spacesuit_armor/bullet_armor name = "Bulletproof Armor Crate" - desc = "Contains three full sets of bulletproof armor, guaranteed to reduce a bullet's stopping power by half but with limited protection against melee weaponry." + desc = "Contains two full sets of bulletproof armor, guaranteed to reduce a bullet's stopping power by half but with limited protection against melee weaponry." cost = 3500 contains = list(/obj/item/clothing/suit/armor/vest/bulletproof, /obj/item/clothing/suit/armor/vest/bulletproof, diff --git a/code/modules/client/client_defines.dm b/code/modules/client/client_defines.dm index de655ece5f1a..64e2476b400f 100644 --- a/code/modules/client/client_defines.dm +++ b/code/modules/client/client_defines.dm @@ -150,15 +150,14 @@ /// our current tab var/stat_tab - /// whether our browser is ready or not yet - var/statbrowser_ready = FALSE - /// list of all tabs var/list/panel_tabs = list() /// list of tabs containing spells and abilities var/list/spell_tabs = list() ///A lazy list of atoms we've examined in the last EXAMINE_MORE_TIME (default 1.5) seconds, so that we will call [atom/proc/examine_more()] instead of [atom/proc/examine()] on them when examining var/list/recent_examines + ///Our object window datum. It stores info about and handles behavior for the object tab + var/datum/object_window_info/obj_window var/list/parallax_layers var/list/parallax_layers_cached diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 06d96d7229cc..711af230fd9d 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -80,7 +80,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( if(tgui_Topic(href_list)) return if(href_list["reload_statbrowser"]) - src << browse(file('html/statbrowser.html'), "window=statbrowser") + stat_panel.reinitialize() // Log all hrefs log_href("[src] (usr:[usr]\[[COORD(usr)]\]) : [hsrc ? "[hsrc] " : ""][href]") @@ -226,11 +226,16 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( GLOB.clients += src GLOB.directory[ckey] = src + // Instantiate stat panel + stat_panel = new(src, "statbrowser") + stat_panel.subscribe(src, PROC_REF(on_stat_panel_message)) + // Instantiate tgui panel - tgui_panel = new(src) + tgui_panel = new(src, "browseroutput") GLOB.ahelp_tickets.client_login(src) GLOB.interviews.client_login(src) + GLOB.requests.client_login(src) var/connecting_admin = FALSE //because de-admined admins connecting should be treated like admins. //Admin Authorisation holder = GLOB.admin_datums[ckey] @@ -345,9 +350,15 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( if(SSinput.initialized) set_macros() - // Initialize tgui panel - src << browse(file('html/statbrowser.html'), "window=statbrowser") + // Initialize stat panel + stat_panel.initialize( + inline_html = file2text('html/statbrowser.html'), + inline_js = file2text('html/statbrowser.js'), + inline_css = file2text('html/statbrowser.css'), + ) addtimer(CALLBACK(src, PROC_REF(check_panel_loaded)), 30 SECONDS) + + // Initialize tgui panel tgui_panel.initialize() if(alert_mob_dupe_login) @@ -501,9 +512,12 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( log_access("Logout: [key_name(src)]") GLOB.ahelp_tickets.client_logout(src) GLOB.interviews.client_logout(src) + GLOB.requests.client_logout(src) SSserver_maint.UpdateHubStatus() if(credits) QDEL_LIST(credits) + if(obj_window) + QDEL_NULL(obj_window) if(holder) adminGreet(1) holder.owner = null @@ -1080,12 +1094,10 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( var/list/verbstoprocess = verbs.Copy() if(mob?.client?.prefs.broadcast_login_logout) verbstoprocess += mob.verbs - for(var/AM in mob.contents) - var/atom/movable/thing = AM + for(var/atom/movable/thing as anything in mob.contents) verbstoprocess += thing.verbs panel_tabs.Cut() // panel_tabs get reset in init_verbs on JS side anyway - for(var/thing in verbstoprocess) - var/procpath/verb_to_init = thing + for(var/procpath/verb_to_init as anything in verbstoprocess) if(!verb_to_init) continue if(verb_to_init.hidden) @@ -1094,10 +1106,10 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( continue panel_tabs |= verb_to_init.category verblist[++verblist.len] = list(verb_to_init.category, verb_to_init.name) - src << output("[url_encode(json_encode(panel_tabs))];[url_encode(json_encode(verblist))]", "statbrowser:init_verbs") + src.stat_panel.send_message("init_verbs", list(panel_tabs = panel_tabs, verblist = verblist)) /client/proc/check_panel_loaded() - if(statbrowser_ready) + if(stat_panel.is_ready()) return to_chat(src, "Statpanel failed to load, click here to reload the panel ") @@ -1138,3 +1150,20 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( SSambience.ambience_listening_clients[src] = world.time + 10 SECONDS //Just wait 10 seconds before the next one aight mate? cheers. else SSambience.ambience_listening_clients -= src + +/** + * Handles incoming messages from the stat-panel TGUI. + */ +/client/proc/on_stat_panel_message(type, payload) + switch(type) + if("Update-Verbs") + init_verbs() + if("Remove-Tabs") + panel_tabs -= payload["tab"] + if("Send-Tabs") + panel_tabs |= payload["tab"] + if("Reset-Tabs") + panel_tabs = list() + if("Set-Tab") + stat_tab = payload["tab"] + SSstatpanels.immediate_send_stat_data(src) diff --git a/code/modules/client/loadout/loadout_eyewear.dm b/code/modules/client/loadout/loadout_eyewear.dm index 8da667f8819e..99e868ad0854 100644 --- a/code/modules/client/loadout/loadout_eyewear.dm +++ b/code/modules/client/loadout/loadout_eyewear.dm @@ -8,6 +8,10 @@ display_name = "glasses, prescription" path = /obj/item/clothing/glasses/regular +/datum/gear/eyewear/glasses/thin + display_name ="glasses, thin prescription" + path = /obj/item/clothing/glasses/regular/thin + /datum/gear/eyewear/glasses/large display_name = "glasses, large prescription" path = /obj/item/clothing/glasses/regular/circle @@ -16,6 +20,10 @@ display_name = "glasses, jamjar prescription" path = /obj/item/clothing/glasses/regular/jamjar +/datum/gear/eyewear/hipster_glasses + display_name = "glasses, hipster prescription" + path = /obj/item/clothing/glasses/regular/hipster + //Misc /datum/gear/eyewear/eyepatch display_name = "eyepatch" @@ -38,9 +46,7 @@ description = "A blindfold you can still see through." path = /obj/item/clothing/glasses/trickblindfold -/datum/gear/eyewear/hipster_glasses - display_name = "Hipster Glasses" - path = /obj/item/clothing/glasses/regular/hipster + /datum/gear/eyewear/glasses/cold display_name = "cold goggles" diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index e73a186087f3..b52052cd15ec 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -48,7 +48,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/tgui_fancy = TRUE var/tgui_lock = FALSE var/windowflashing = TRUE - var/crew_objectives = TRUE var/toggles = TOGGLES_DEFAULT var/db_flags var/chat_toggles = TOGGLES_DEFAULT_CHAT @@ -112,6 +111,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) "squid_face" = "Squidward", "ipc_screen" = "Blue", "ipc_antenna" = "None", + "ipc_tail" = "None", "ipc_chassis" = "Morpheus Cyberkinetics (Custom)", "ipc_brain" = "Posibrain", "kepori_feathers" = "Plain", @@ -675,6 +675,19 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "" mutant_category = 0 + if("ipc_tail" in pref_species.default_features) + if(!mutant_category) + dat += APPEARANCE_CATEGORY_COLUMN + + dat += "

Tail Style

" + + dat += "[features["ipc_tail"]]
" + + mutant_category++ + if(mutant_category >= MAX_MUTANT_ROWS) + dat += "" + mutant_category = 0 + if("ipc_chassis" in pref_species.default_features) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -1098,6 +1111,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Hide Radio Messages: [(chat_toggles & CHAT_RADIO)?"Shown":"Hidden"]
" dat += "Hide Prayers: [(chat_toggles & CHAT_PRAYER)?"Shown":"Hidden"]
" dat += "Split Admin Tabs: [(toggles & SPLIT_ADMIN_TABS)?"Enabled":"Disabled"]
" + dat += "Fast MC Refresh: [(toggles & FAST_MC_REFRESH)?"Enabled":"Disabled"]
" dat += "Ignore Being Summoned as Cult Ghost: [(toggles & ADMIN_IGNORE_CULT_GHOST)?"Don't Allow Being Summoned":"Allow Being Summoned"]
" dat += "Briefing Officer Outfit: [brief_outfit]
" if(CONFIG_GET(flag/allow_admin_asaycolor)) @@ -1913,6 +1927,14 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(new_ipc_antenna) features["ipc_antenna"] = new_ipc_antenna + if("ipc_tail") + var/new_ipc_tail + + new_ipc_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in GLOB.ipc_tail_list + + if(new_ipc_tail) + features["ipc_tail"] = new_ipc_tail + if("ipc_chassis") var/new_ipc_chassis @@ -2193,6 +2215,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) user.client.toggle_hear_radio() if("toggle_split_admin_tabs") toggles ^= SPLIT_ADMIN_TABS + if("toggle_fast_mc_refresh") + toggles ^= FAST_MC_REFRESH if("toggle_prayers") user.client.toggleprayers() if("toggle_deadmin_always") diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 7800a7b57f33..0b95e291b794 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -431,6 +431,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car READ_FILE(S["feature_squid_face"], features["squid_face"]) READ_FILE(S["feature_ipc_screen"], features["ipc_screen"]) READ_FILE(S["feature_ipc_antenna"], features["ipc_antenna"]) + READ_FILE(S["feature_ipc_tail"], features["ipc_tail"]) READ_FILE(S["feature_ipc_chassis"], features["ipc_chassis"]) READ_FILE(S["feature_ipc_brain"], features["ipc_brain"]) READ_FILE(S["feature_kepori_feathers"], features["kepori_feathers"]) @@ -541,6 +542,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car features["squid_face"] = sanitize_inlist(features["squid_face"], GLOB.squid_face_list, "Squidward") features["ipc_screen"] = sanitize_inlist(features["ipc_screen"], GLOB.ipc_screens_list) features["ipc_antenna"] = sanitize_inlist(features["ipc_antenna"], GLOB.ipc_antennas_list) + features["ipc_tail"] = sanitize_inlist(features["ipc_tail"], GLOB.ipc_tail_list) features["ipc_chassis"] = sanitize_inlist(features["ipc_chassis"], GLOB.ipc_chassis_list) features["ipc_brain"] = sanitize_inlist(features["ipc_brain"], GLOB.ipc_brain_list) features["kepori_feathers"] = sanitize_inlist(features["kepori_feathers"], GLOB.kepori_feathers_list, "Plain") @@ -618,6 +620,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["feature_squid_face"] , features["squid_face"]) WRITE_FILE(S["feature_ipc_screen"] , features["ipc_screen"]) WRITE_FILE(S["feature_ipc_antenna"] , features["ipc_antenna"]) + WRITE_FILE(S["feature_ipc_tail"] , features["ipc_tail"]) WRITE_FILE(S["feature_ipc_chassis"] , features["ipc_chassis"]) WRITE_FILE(S["feature_ipc_brain"] , features["ipc_brain"]) WRITE_FILE(S["feature_kepori_feathers"] , features["kepori_feathers"]) diff --git a/code/modules/clothing/factions/gezena.dm b/code/modules/clothing/factions/gezena.dm index 6d2e11ea0010..bd335d9b4cbb 100644 --- a/code/modules/clothing/factions/gezena.dm +++ b/code/modules/clothing/factions/gezena.dm @@ -270,7 +270,7 @@ item_state = "blackcloth" /obj/item/clothing/neck/cloak/gezena/captain - name = "captain's Azuilhauz" + name = "officer's Azuilhauz" desc = "The “Aziulhauz”, or “rank-cape”, is the method with which PGF military members display their rank to others. Wearing one while on duty is required by uniform code. This variant displays the wearer's rank as a high ranking officer." icon_state = "captaincape" item_state = "blackcloth" diff --git a/code/modules/clothing/factions/suns.dm b/code/modules/clothing/factions/suns.dm new file mode 100644 index 000000000000..df6d831e479b --- /dev/null +++ b/code/modules/clothing/factions/suns.dm @@ -0,0 +1,622 @@ + + +////////////// +//Jumpsuits// +///////////// + + +/obj/item/clothing/under/syndicate/suns + name = "\improper SUNS formal suit" + desc = "A fancy-looking tailored suit with purple slacks. Worn typically by students in the first half of their academic journey." + icon_state = "suns_uniform1" + item_state = "suns_uniwhite" + armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) + can_adjust = TRUE + icon = 'icons/obj/clothing/faction/suns/uniforms.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/uniforms.dmi' + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + +/obj/item/clothing/under/syndicate/suns/alt + name = "\improper SUNS formal suit" + desc = "A fancy-looking tailored shirt with a purple skirt. Worn typically by students in the first half of their academic journey." + icon_state = "suns_uniskirt1" + item_state = "suns_uniwhite" + +/obj/item/clothing/under/syndicate/suns/uniform2 + desc = "A uniform typically worn by students in the final years of their academic journey." + icon_state = "suns_uniform2" + item_state = "suns_uniwhite" + can_adjust = TRUE + +/obj/item/clothing/under/syndicate/suns/uniform2/alt + desc = "A long skirt and blouse typically worn by students in the final years of their academic journey." + icon_state = "suns_uniskirt2" + item_state = "suns_uniwhite" + +/obj/item/clothing/under/syndicate/suns/uniform3 + desc = "A suit typically worn by SUNS graduates and SUNS academic staff. You've come a long way, friend." + icon_state = "suns_uniform3" + item_state = "suns_unipurple" + can_adjust = TRUE + +/obj/item/clothing/under/syndicate/suns/uniform3/alt + desc = "A skirt and blouse typically worn by SUNS graduates and SUNS academic staff. You've come a long way, friend." + icon_state = "suns_uniskirt3" + item_state = "suns_unipurple" + +/obj/item/clothing/under/syndicate/suns/pkuniform + name = "\improper SUNS peacekeeper uniform" + desc = "A uniform designed for ease of movement for both the classroom and the frontier." + icon_state = "suns_pkuniform" + item_state = "suns_uniblack" + +/obj/item/clothing/under/syndicate/suns/workerjumpsuit + name = "\improper SUNS work jumpsuit" + desc = "A casual uniform worn by students and staff to protect from blue collar work." + icon_state = "suns_workerjumpsuit" + item_state = "suns_unipurple" + can_adjust = TRUE + +/obj/item/clothing/under/syndicate/suns/captain + name = "\improper SUNS captain suit" + desc = "An elaborate uniform to set high ranking staff from academia apart from the rest." + icon_state = "suns_captain" + item_state = "suns_uniblack" + can_adjust = TRUE + +/obj/item/clothing/under/syndicate/suns/xo + name = "\improper SUNS academic suit" + desc = "A style of suit typically worn by academic staff." + icon_state = "suns_xo" + item_state = "suns_uniblack" + can_adjust = TRUE + +/obj/item/clothing/under/syndicate/suns/sciencejumpsuit + name = "\improper SUNS lab jumpsuit" + desc = "A comfortable suit meant to protect the individual from exposure to harmful objects." + icon_state = "suns_sciencejumpsuit" + item_state = "suns_uniwhite" + can_adjust = FALSE + +/obj/item/clothing/under/syndicate/suns/doctorscrubs + name = "\improper SUNS medical scrubs" + desc = "Work safe medical scrubs for both the professionals and the trainees." + icon_state = "suns_doctorscrubs" + item_state = "suns_unipurple" + can_adjust = FALSE + + +//////////////////// +//Unarmored suits// +/////////////////// + + +/obj/item/clothing/suit/toggle/suns + name = "\improper SUNS jacket" + desc = "A plain purple SUNS jacket, used fairly often on the frontier." + icon_state = "suns_jacket" + item_state = "suns_overpurple" + icon = 'icons/obj/clothing/faction/suns/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/suits.dmi' + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + +/obj/item/clothing/suit/toggle/suns/alt + name = "black school jacket" + desc = "A plain black jacket with gold detailing. Found in universities all over the galaxy." + icon_state = "suns_schooljacket" + item_state = "suns_overblack" + +/obj/item/clothing/suit/toggle/suns/workervest + name = "SUNS work vest" + desc = "A protective vest worn by some of the more practically minded students and staff during field work." + icon_state = "suns_workervest" + item_state = "suns_overblack" + +/obj/item/clothing/suit/toggle/labcoat/suns/cmo + name = "medical instructor coat" + desc = "A labcoat often worn by the more eccentric medical instructors." + icon_state = "suns_cmocoat" + item_state = "suns_overblack" + icon = 'icons/obj/clothing/faction/suns/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/suits.dmi' + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + +/obj/item/clothing/suit/toggle/labcoat/suns/doctorlabcoat + name = "SUNS work vest" + desc = "A stylized white labcoat frequently worn by SUNS medical staff." + icon_state = "suns_doctorlabcoat" + item_state = "suns_overwhite" + icon = 'icons/obj/clothing/faction/suns/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/suits.dmi' + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + +/obj/item/clothing/suit/hooded/suns + name = "\improper SUNS labcoat" + desc = "An academic labcoat designed to protect the wearer from chemical and non chemical spills." + icon_state = "suns_labcoat" + item_state = "suns_overwhite" + hoodtype = /obj/item/clothing/head/hooded/hood/suns + 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) + armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 50, "rad" = 0, "fire" = 50, "acid" = 50) + icon = 'icons/obj/clothing/faction/suns/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/suits.dmi' + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + +/obj/item/clothing/head/hooded/hood/suns + name = "\improper SUNS labcoat hood" + desc = "A hood to protect you from chemical spills." + icon_state = "suns_labcoathood" + item_state = "suns_labcoathood" + armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 50, "rad" = 0, "fire" = 50, "acid" = 50) + icon = 'icons/obj/clothing/faction/suns/head.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/head.dmi' + + +////////////////// +//Armored suits// +///////////////// + + +/obj/item/clothing/suit/armor/vest/bulletproof/suns + name = "peacekeeper plating" + desc = "A standard issue set of plate assigned to peacekeepers, both durable and stylish." + icon_state = "suns_pkarmor" + item_state = "suns_pkarmor" + icon = 'icons/obj/clothing/faction/suns/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/suits.dmi' + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + body_parts_covered = CHEST|GROIN|ARMS|LEGS + cold_protection = CHEST|GROIN|LEGS|ARMS + heat_protection = CHEST|GROIN|LEGS|ARMS + +/obj/item/clothing/suit/armor/vest/bulletproof/suns/hos + name = "gilded peacekeeper plating" + desc = "A set of plate assigned to peacekeepers, both durable and stylish. This one has a gold lining to indicate rank." + icon_state = "suns_lpkarmor" + item_state = "suns_pkarmor" + +/obj/item/clothing/suit/armor/vest/bulletproof/suns/ehos //remind me to make this something to buy + name = "peacekeeper greatcoat" + desc = "A funky armored coat worn by eccentric peacekeepers. Closing the coat is socially improper." + icon_state = "suns_greatcoat" + item_state = "suns_greatcoat" + +/obj/item/clothing/suit/toggle/suns/pkcoat + name = "peacekeeper coat" + desc = "An armored coat used during special occasions. This one is used in academic security." + icon_state = "suns_pkjacket" + item_state = "suns_overblack" + armor = list("melee" = 15, "bullet" = 30, "laser" = 10, "energy" = 10, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 25) + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + body_parts_covered = CHEST|GROIN|ARMS|LEGS + cold_protection = CHEST|GROIN|LEGS|ARMS + heat_protection = CHEST|GROIN|LEGS|ARMS + +/obj/item/clothing/suit/armor/vest/bulletproof/suns/captain + name = "decorated academic coat" + desc = "An armored coat intended for SUNS captains on the frontier. Go forth, and spread the message of the academy." + icon_state = "suns_captaincoat" + item_state = "suns_overblack" + +/obj/item/clothing/suit/armor/vest/bulletproof/suns/xo + name = "academic staff coat" + desc = "A white coat used by SUNS academic staff. It designates the second in command on the ship." + icon_state = "suns_xojacket" + item_state = "suns_overwhite" + + +/////////////// +//Spacesuits// +////////////// + + +/obj/item/clothing/head/helmet/space/syndicate/suns + name = "SUNS space helmet" + icon_state = "suns_vachelm" + item_state = "suns_vachelm" + desc = "An academic standard spacesuit helmet. Normally reserved for low budget tasks in space." + icon = 'icons/obj/clothing/faction/suns/head.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/head.dmi' + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + +/obj/item/clothing/suit/space/syndicate/suns + name = "SUNS spacesuit" + icon_state = "suns_vacsuit" + item_state = "suns_vacsuit" + desc = "An academic standard spacesuit. Normally reserved for low budget tasks in space." + icon = 'icons/obj/clothing/faction/suns/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/suits.dmi' + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + +/obj/item/clothing/head/helmet/space/hardsuit/security/suns + name = "\improper SUNS peacekeeper hardsuit helmet" + icon_state = "hardsuit0-suns_pk" + item_state = "hardsuit0-suns_pk" + icon = 'icons/obj/clothing/faction/suns/head.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/head.dmi' + hardsuit_type = "suns_pk" + +/obj/item/clothing/suit/space/hardsuit/security/suns + name = "\improper SUNS peacekeeper hardsuit" + icon_state = "suns_pkhardsuit" + item_state = "suns_pkhardsuit" + icon = 'icons/obj/clothing/faction/suns/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/suits.dmi' + hardsuit_type = "suns_pk" + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security/suns + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + +/obj/item/clothing/head/helmet/space/hardsuit/mining/suns + name = "\improper SUNS industrial hardsuit helmet" + icon_state = "hardsuit0-suns_mining" + item_state = "hardsuit0-suns_mining" + icon = 'icons/obj/clothing/faction/suns/head.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/head.dmi' + hardsuit_type = "suns_mining" + +/obj/item/clothing/suit/space/hardsuit/mining/suns + name = "\improper SUNS industrial hardsuit" + icon_state = "suns_miningsuit" + item_state = "suns_miningsuit" + icon = 'icons/obj/clothing/faction/suns/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/suits.dmi' + hardsuit_type = "suns_mining" + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/mining/suns + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + +/obj/item/clothing/head/helmet/space/hardsuit/solgov/suns + name = "\improper SUNS captain's hardsuit helmet" + icon_state = "hardsuit0-suns_solgov" + item_state = "hardsuit0-suns_solgov" + icon = 'icons/obj/clothing/faction/suns/head.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/head.dmi' + hardsuit_type = "suns_solgov" + desc = "An armored spaceproof helmet, the white glass on the side signifies a captain level rank." + +/obj/item/clothing/suit/space/hardsuit/solgov/suns + name = "\improper SUNS captain's hardsuit" + desc = "A well decorated spaceworthy suit. The design was co-created by SolGov and SUNS academics." + icon_state = "suns_commandsuit" + item_state = "suns_commandsuit" + icon = 'icons/obj/clothing/faction/suns/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/suits.dmi' + hardsuit_type = "suns_solgov" + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/solgov/suns + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + + +///////// +//Hats// +//////// + + +/obj/item/clothing/head/suns + name = "academic staff beret" + desc = "A soft beret sporting a discontinued inkwell quill feather. If only it could hold ink once more." + icon_state = "suns_xoberet" + item_state = "suns_captainberet" + icon = 'icons/obj/clothing/faction/suns/head.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/head.dmi' + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + +/obj/item/clothing/head/safety_helmet/suns + desc = "A piece of headgear used in dangerous working conditions to protect the head." + icon_state = "suns_workerhelmet" + item_state = "suns_workerhelmet" + icon = 'icons/obj/clothing/faction/suns/head.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/head.dmi' + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + +/obj/item/clothing/head/HoS/syndicate/suns //remind me to make this something to buy + name = "peacekeeper cap" + desc = "A black cap worn by the more eccentric peacekeepers." + icon_state = "suns_pkcap" + item_state = "suns_pkcap" + icon = 'icons/obj/clothing/faction/suns/head.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/head.dmi' + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + +/obj/item/clothing/head/suns/surgery + name = "\improper SUNS surgery cap" + desc = "A surgery cap used by academic students and profesionals alike." + icon_state = "suns_doctorcap" + item_state = "suns_doctorcap" + +/obj/item/clothing/head/welding/suns + name = "peacekeeper visor" + desc = "A head-mounted helmet designed to protect those on the field from bright lights, while also allowing a life support connection. The warnings on this helmet suggest it is not spaceworthy." + icon_state = "sunsvisor" + item_state = "suns_pkhelmet" + tint = 0 + armor = list("melee" = 15, "bullet" = 60, "laser" = 10, "energy" = 10, "bomb" = 40, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) // identical stats to bulletproof helmet, as chest matches bulletproof vest + clothing_flags = BLOCK_GAS_SMOKE_EFFECT | ALLOWINTERNALS //Why? Because I'm not giving PK's sec masks nor hud sunglasses. + icon = 'icons/obj/clothing/faction/suns/head.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/head.dmi' + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + +/obj/item/clothing/head/welding/suns/hos + name = "gilded peacekeeper visor" + desc = "A head-mounted helmet designed to protect those on the field, this one has a gold lining to indicate rank. The warnings on this helmet suggest it is not spaceworthy." + icon_state = "sunslpkvisor" + item_state = "suns_pkhelmet" + +/obj/item/clothing/head/suns/captain + name = "\improper SUNS bicorne hat" + desc = "A unique bicorne hat given to SUNS Captains to display academic seniority." + icon_state = "suns_captainbicorne" + item_state = "suns_captainbicorne" + worn_y_offset = 2 + dog_fashion = null + +/obj/item/clothing/head/suns/cmo //I was told I get one plague doctor outfit and I'm using it + name = "medical instructor hat" + desc = "A hat worn by the more eccentric medical staff." + icon_state = "suns_doctorhat" + item_state = "suns_doctorhat" + permeability_coefficient = 0.01 + + +//////////// +//Glasses// +/////////// + + +/obj/item/clothing/glasses/science/suns //This needs a sprite/lense in the eye of the mask to show its science goggles + name = "eye mask science goggles" + desc = "A fancy looking mask to help against chemical spills. This one is fitted with an analyzer for scanning items and reagents." + icon_state = "suns_sciencemask" + item_state = "suns_sciencemask" + glass_colour_type = /datum/client_colour/glass_colour/purple + icon = 'icons/obj/clothing/faction/suns/eyes.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/eyes.dmi' + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + +/obj/item/clothing/glasses/hud/health/suns //I need to figure out a way to make the masks toggleable for #style points. + name = "eye mask health scanner HUD" + desc = "A peculiar looking mask commonly seen at academic functions. This one has a health HUD lense in it." + icon_state = "suns_doctormask" + item_state = "suns_doctormask" + glass_colour_type = /datum/client_colour/glass_colour/lightblue + icon = 'icons/obj/clothing/faction/suns/eyes.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/eyes.dmi' + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + +/obj/item/clothing/glasses/hud/security/suns + name = "eye mask security HUD" + desc = "A peculiar looking mask commonly seen at academic functions. This one gives a heads-up display that scans the humanoids in view and provides accurate data about their ID status and security records." + icon_state = "suns_pkmask" + item_state = "suns_pkmask" + glass_colour_type = /datum/client_colour/glass_colour/red + icon = 'icons/obj/clothing/faction/suns/eyes.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/eyes.dmi' + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + + +////////// +//Masks// +///////// + + +/obj/item/clothing/mask/gas/suns //someone mentioned they were interested in using this sprite as the regular gasmask re-sprite, I forgor who so we'll deal with that when I PR this + name = "black gas mask" + desc = "A black face covering that allows the user to connect to a personal gas supply. Suprisingly not great at preventing gas inhalation." + icon_state = "suns_gasmask" + item_state = "suns_gasmask2" + icon = 'icons/obj/clothing/faction/suns/mask.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/mask.dmi' + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + +/obj/item/clothing/mask/surgical/suns + name = "purple sterile mask" + desc = "A sterile mask designed to help prevent the spread of diseases. Now in purple! Pretty!" + icon_state = "suns_sterile" + item_state = "suns_doctorcap" + icon = 'icons/obj/clothing/faction/suns/mask.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/mask.dmi' + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + +/obj/item/clothing/mask/breath/suns + name = "\improper SUNS half face mask" + desc = "A close-fitting mask that covers JUST enough to connect an air supply." + icon_state = "suns_captainmask" + item_state = "suns_captainmask" + icon = 'icons/obj/clothing/faction/suns/mask.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/mask.dmi' + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + + +/////////// +//Gloves// +////////// + +// The following employ a slapjob fix to remove the /color subtype, as per maintainer request. +// These should be addressed in any future glove refactor, as that is out of the scope of this PR. +/obj/item/clothing/gloves/suns + name = "stitched fingerless gloves" + desc = "These gloves offer style, purely and plainly." + icon_state = "suns_glovesfingerless" + item_state = "suns_blackgloves" + icon = 'icons/obj/clothing/faction/suns/hands.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/hands.dmi' + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + +/obj/item/clothing/gloves/suns/captain + name = "\improper SUNS captain's gloves" + desc = "Fancy black gloves for trusted SUNS members. Sports a complex lining that prevents the wearer from being shocked." + icon_state = "suns_captaingloves" + item_state = "suns_blackgloves" + siemens_coefficient = 0 + permeability_coefficient = 0.05 + cold_protection = HANDS + min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + heat_protection = HANDS + max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 50) + +/obj/item/clothing/gloves/suns/xo + name = "academic staff gloves" + desc = "White gloves that offer a good grip with writing utensils." + icon_state = "suns_xogloves" + item_state = "suns_whitegloves" + +/obj/item/clothing/gloves/suns/yellow + name = "insulated gloves" + desc = "Padded academic gloves that hopefully keep students out of the nurses office." + icon_state = "suns_insulated" + item_state = "suns_blackgloves" + siemens_coefficient = 0 + permeability_coefficient = 0.05 + +/obj/item/clothing/gloves/color/latex/nitrile/suns + name = "white nitrile gloves" + desc = "Thick sterile white gloves that reach up to the elbows. The nanochips that transfer basic paramedic knowledge are disabled during finals week." + icon_state = "suns_latexgloves" + item_state = "suns_whitegloves" + icon = 'icons/obj/clothing/faction/suns/hands.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/hands.dmi' + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + +/obj/item/clothing/gloves/tackler/dolphin/suns + name = "peacekeeper tackle gloves" + desc = "Sleek tackle gloves that allows the user to sail through the air. The main cause of accidents during finals week." + icon_state = "suns_longglovesblack" + item_state = "suns_blackgloves" + icon = 'icons/obj/clothing/faction/suns/hands.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/hands.dmi' + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + + +////////// +//Shoes// +///////// + + +/obj/item/clothing/shoes/sneakers/suns + name = "white clogs" + desc = "Comfortable clogs for general use." + icon_state = "suns_doctorclogs" + item_state = "suns_doctorclogs" //I know what the state says, I'm not fixing it. + icon = 'icons/obj/clothing/faction/suns/feet.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/feet.dmi' + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + +/obj/item/clothing/shoes/combat/suns + name = "fancy combat boots" + desc = "Decent traction combat boots worn by high ranking academic staff." + icon_state = "suns_captainboots" + item_state = "suns_blackboots" + icon = 'icons/obj/clothing/faction/suns/feet.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/feet.dmi' + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + +/obj/item/clothing/shoes/jackboots/suns + name = "work safe jackboots" + desc = "Academic issued steel toed boots. For those with physically demanding majors." + icon_state = "suns_jackboots" + item_state = "suns_blackboots" + icon = 'icons/obj/clothing/faction/suns/feet.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/feet.dmi' + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + +/obj/item/clothing/shoes/jackboots/suns/long + name = "peacekeeper longboots" + desc = "Longboots worn by academic security staff and trainees." + icon_state = "suns_longboots" + item_state = "suns_blackboots" + +/obj/item/clothing/shoes/laceup/suns + name = "academy laceup shoes" + desc = "Standard issue laceups from the syndicates resident academy." + icon_state = "suns_laceups" + item_state = "suns_blackboots" + icon = 'icons/obj/clothing/faction/suns/feet.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/feet.dmi' + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + + +////////// +//Cloaks// +////////// + + +/obj/item/clothing/neck/cloak/suns + name = "\improper SUNS short cloak" + desc = "Worn by both the young and old alike. You can almost feel the academic pride." + icon_state = "suns_shouldercape" + item_state = "suns_overpurple" + icon = 'icons/obj/clothing/faction/suns/neck.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/suns/neck.dmi' + lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' + +/obj/item/clothing/neck/cloak/suns/xo + name = "\improper SUNS academic staff cloak" + desc = "Worn by SUNS staff, you can almost smell all of the failing grades this cloak has given." + icon_state = "suns_xocape" + item_state = "suns_xocape" + +/obj/item/clothing/neck/cloak/suns/cap + name = "\improper SUNS captain's cloak" + desc = "Worn by SUNS captains. This cloak has a very imposing aura to it." + icon_state = "suns_captaincloak" + item_state = "suns_captaincloak" + + +/////////////// +//Accessories// +/////////////// + +//These are stored in clothing/accessories.dmi instead of a factional variant due to accessory code being dogwater +//Please transfer them over to a factional file if accessory code is ever fixed + +/obj/item/clothing/accessory/waistcoat/suns + name = "\improper SUNS waistcoat" + desc = "An academic issued run of the mill waistcoat." + icon_state = "suns_waistcoat" + icon = 'icons/obj/clothing/accessories.dmi' + mob_overlay_icon = 'icons/mob/clothing/accessories.dmi' + minimize_when_attached = TRUE + +/obj/item/clothing/accessory/waistcoat/suns/ribbon + name = "\improper SUNS ribbon" + desc = "An academic issued bow, for when you want to feel pretty." + icon_state = "suns_ribbon" + +/obj/item/clothing/accessory/waistcoat/suns/gembow + name = "\improper SUNS gem bow" + desc = "An academic issued bow, for when you want to feel REALLY pretty." + icon_state = "suns_gembow" + +/obj/item/clothing/accessory/waistcoat/suns/poof + name = "\improper SUNS chest poof" + desc = "An academic issued bow, for when you want to feel sophisticated." + icon_state = "suns_poof" diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm index 8245a3333e4c..6b289f944b8b 100644 --- a/code/modules/clothing/glasses/_glasses.dm +++ b/code/modules/clothing/glasses/_glasses.dm @@ -85,6 +85,7 @@ attack_verb = list("sliced") hitsound = 'sound/weapons/bladeslice.ogg' sharpness = IS_SHARP + custom_price = 500 /obj/item/clothing/glasses/science name = "science goggles" @@ -213,6 +214,11 @@ icon_state = "circle_glasses" item_state = "circle_glasses" +/obj/item/clothing/glasses/regular/thin + name = "thin glasses" + desc = "More expensive, more fragile and much less practical, but oh so fashionable." + icon_state = "thin_glasses" + //Here lies green glasses, so ugly they died. RIP /obj/item/clothing/glasses/sunglasses diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 9df87d4a5f51..94de3eda735d 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -520,3 +520,4 @@ name = "SolGov surgery cap" desc = "It's a surgery cap utilized by solarian doctors." icon_state = "solgov_surgery" + diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index f0ef95aca729..eeea7622b4d9 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -375,3 +375,4 @@ . = ..() if(!warped) warp_up() + diff --git a/code/modules/clothing/masks/breath.dm b/code/modules/clothing/masks/breath.dm index c5c53a20b699..8ff4e6bcb0d9 100644 --- a/code/modules/clothing/masks/breath.dm +++ b/code/modules/clothing/masks/breath.dm @@ -35,3 +35,4 @@ item_state = "m_mask" permeability_coefficient = 0.01 equip_delay_other = 10 + diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 467377f722dd..9d1bdc939fd3 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -273,3 +273,4 @@ item_state = "hunter" resistance_flags = FIRE_PROOF | ACID_PROOF flags_inv = HIDEFACIALHAIR|HIDEFACE|HIDEEYES|HIDEEARS|HIDEHAIR + diff --git a/code/modules/clothing/outfits/ert/frontiersmen_ert.dm b/code/modules/clothing/outfits/ert/frontiersmen_ert.dm index 27d89d1b7226..431170b5f3dc 100644 --- a/code/modules/clothing/outfits/ert/frontiersmen_ert.dm +++ b/code/modules/clothing/outfits/ert/frontiersmen_ert.dm @@ -4,7 +4,7 @@ head = /obj/item/clothing/head/beret/sec/frontier mask = /obj/item/clothing/mask/gas/sechailer/minutemen suit = /obj/item/clothing/suit/armor/vest/bulletproof/frontier - suit_store = /obj/item/gun/ballistic/rifle/boltaction + suit_store = /obj/item/gun/ballistic/rifle/illestren uniform = /obj/item/clothing/under/rank/security/officer/frontier shoes = /obj/item/clothing/shoes/combat gloves = /obj/item/clothing/gloves/color/black @@ -15,7 +15,7 @@ id = null // lol - backpack_contents = list(/obj/item/ammo_box/a762=5, /obj/item/grenade/frag=1) + backpack_contents = list(/obj/item/ammo_box/magazine/illestren_a850r=5, /obj/item/grenade/frag=1) /datum/outfit/job/frontiersmen/ert/random name = "ERT - Frontiersman Randomized" @@ -88,22 +88,22 @@ var/weapon = pick(list("Bolt-Action", "Pistol", "Melee")) switch(weapon) if("Bolt-Action") - r_hand = /obj/item/gun/ballistic/rifle/boltaction + r_hand = /obj/item/gun/ballistic/rifle/illestren if(prob(70) && istype(back, /obj/item/storage/backpack)) - backpack_contents += list(/obj/item/ammo_box/a762 = rand(1,4)) + backpack_contents += list(/obj/item/ammo_box/magazine/illestren_a850r = rand(1,4)) if(prob(55)) - l_pocket = /obj/item/ammo_box/a762 + l_pocket = /obj/item/ammo_box/magazine/illestren_a850r if("Pistol") r_hand = pick(list( /obj/item/gun/ballistic/automatic/pistol/disposable, /obj/item/gun/ballistic/automatic/pistol, - /obj/item/gun/ballistic/revolver/pepperbox, + /obj/item/gun/ballistic/revolver/firebrand, /obj/item/gun/energy/e_gun/mini)) if(prob(30)) l_hand = pick(list( /obj/item/gun/ballistic/automatic/pistol/disposable, /obj/item/gun/ballistic/automatic/pistol, - /obj/item/gun/ballistic/revolver/pepperbox, + /obj/item/gun/ballistic/revolver/firebrand, /obj/item/gun/energy/e_gun/mini)) if("Melee") r_hand = pickweight(list( @@ -124,10 +124,10 @@ ears = /obj/item/radio/headset/pirate/alt/captain back = /obj/item/storage/backpack/satchel/leather suit = /obj/item/clothing/suit/armor/frontier - suit_store = /obj/item/gun/ballistic/revolver/nagant + suit_store = /obj/item/gun/ballistic/revolver belt = /obj/item/storage/belt/military/assault - backpack_contents = list(/obj/item/ammo_box/n762_clip=3, /obj/item/binoculars=1, /obj/item/kitchen/knife/combat/survival) + backpack_contents = list(/obj/item/ammo_box/a357=3, /obj/item/binoculars=1, /obj/item/kitchen/knife/combat/survival) /datum/outfit/job/frontiersmen/ert/medic name = "ERT - Frontiersman Medic" diff --git a/code/modules/clothing/outfits/ert/indie_ert.dm b/code/modules/clothing/outfits/ert/indie_ert.dm index f64e7f86a99a..6a8b228aec94 100644 --- a/code/modules/clothing/outfits/ert/indie_ert.dm +++ b/code/modules/clothing/outfits/ert/indie_ert.dm @@ -1,5 +1,7 @@ /datum/outfit/job/independent/ert name = "ERT - Independent Security Officer" + jobtype = /datum/job/officer + job_icon = "securityofficer" head = /obj/item/clothing/head/helmet/sec ears = /obj/item/radio/headset/alt @@ -14,6 +16,8 @@ /datum/outfit/job/independent/ert/emt name = "ERT - Independent Paramedic" + jobtype = /datum/job/paramedic + job_icon = "paramedic" head = /obj/item/clothing/head/soft/paramedic mask = null @@ -27,6 +31,8 @@ /datum/outfit/job/independent/ert/firefighter name = "ERT - Independent Firefighter (Standard)" + jobtype = /datum/job/atmos + job_icon = "atmospherictechnician" head = /obj/item/clothing/head/hardhat/red uniform = /obj/item/clothing/under/utility @@ -43,6 +49,8 @@ /datum/outfit/job/independent/ert/firefighter/medic name = "ERT - Independent Firefighter (Medic)" + jobtype = /datum/job/paramedic + job_icon = "paramedic" mask = /obj/item/clothing/mask/breath/medical back = /obj/item/storage/backpack/fireproof @@ -56,6 +64,8 @@ /datum/outfit/job/independent/ert/firefighter/leader name = "ERT - Independent Firefighter (Group Captain)" + jobtype = /datum/job/chief_engineer + job_icon = "chiefengineer" back = /obj/item/fireaxe suit = /obj/item/clothing/suit/space/hardsuit/engine @@ -66,6 +76,8 @@ /datum/outfit/job/independent/ert/technician name = "ERT - Independent Technician" + jobtype = /datum/job/engineer + job_icon = "stationengineer" head = /obj/item/clothing/head/hardhat uniform = /obj/item/clothing/under/rank/engineering/engineer diff --git a/code/modules/clothing/outfits/ert/inteq_ert.dm b/code/modules/clothing/outfits/ert/inteq_ert.dm index f9a0aec2dc57..5a39d3ea3da4 100644 --- a/code/modules/clothing/outfits/ert/inteq_ert.dm +++ b/code/modules/clothing/outfits/ert/inteq_ert.dm @@ -1,5 +1,7 @@ /datum/outfit/job/inteq/ert name = "ERT - Inteq Rifleman" + jobtype = /datum/job/officer + job_icon = "securityofficer" mask = /obj/item/clothing/mask/gas/sechailer/inteq glasses = /obj/item/clothing/glasses/hud/security/sunglasses/inteq @@ -28,6 +30,8 @@ /datum/outfit/job/inteq/ert/medic name = "ERT - Inteq Corpsman" + jobtype = /datum/job/paramedic + job_icon = "paramedic" uniform = /obj/item/clothing/under/syndicate/inteq/corpsman belt = /obj/item/storage/belt/medical/webbing/paramedic @@ -39,6 +43,8 @@ /datum/outfit/job/inteq/ert/leader name = "ERT - Inteq Vanguard" + jobtype = /datum/job/hos + job_icon = "headofsecurity" ears = /obj/item/radio/headset/inteq/alt/captain back = /obj/item/storage/backpack/messenger/inteq diff --git a/code/modules/clothing/outfits/ert/minutemen_ert.dm b/code/modules/clothing/outfits/ert/minutemen_ert.dm index 6fc4821784b5..8acb733e48f0 100644 --- a/code/modules/clothing/outfits/ert/minutemen_ert.dm +++ b/code/modules/clothing/outfits/ert/minutemen_ert.dm @@ -1,5 +1,7 @@ /datum/outfit/job/minutemen/ert name = "ERT - Minuteman" + jobtype = /datum/job/officer + job_icon = "securityofficerOld" head = /obj/item/clothing/head/helmet/bulletproof/minutemen uniform = /obj/item/clothing/under/rank/security/officer/minutemen @@ -17,6 +19,7 @@ /datum/outfit/job/minutemen/ert/leader name = "ERT - Minuteman Sergeant" + job_icon = "lieutenant" ears = /obj/item/radio/headset/minutemen/alt/captain back = /obj/item/storage/backpack/satchel/sec/cmm @@ -24,6 +27,7 @@ /datum/outfit/job/minutemen/ert/bard name = "ERT - Minuteman (BARD)" + job_icon = "securityofficerOld" suit = /obj/item/clothing/suit/armor/vest/marine/medium suit_store = /obj/item/gun/ballistic/automatic/smg/cm5 @@ -43,6 +47,7 @@ /datum/outfit/job/minutemen/ert/bard/leader name = "ERT - Minuteman Sergeant (BARD)" + job_icon = "lieutenant" belt = /obj/item/storage/belt/military/assault/minutemen uniform = /obj/item/clothing/under/rank/command/minutemen @@ -60,6 +65,7 @@ /datum/outfit/job/minutemen/ert/riot name = "ERT - Minuteman (Riot Officer)" + job_icon = "securityofficerOld" suit = /obj/item/clothing/suit/armor/riot/minutemen head = /obj/item/clothing/head/helmet/riot/minutemen @@ -74,12 +80,15 @@ /datum/outfit/job/minutemen/ert/riot/leader name = "ERT - Minutemen Sergeant (Riot Officer)" + job_icon = "lieutenant" ears = /obj/item/radio/headset/minutemen/alt/captain back = /obj/item/shield/riot/flash /datum/outfit/job/minutemen/ert/inspector name = "ERT - Inspector (Minutemen GOLD)" + jobtype = /datum/job/head_of_personnel + job_icon = "minutemen" head = /obj/item/clothing/head/cowboy/sec/minutemen mask = null @@ -97,12 +106,14 @@ /datum/outfit/job/minutemen/ert/pirate_hunter name = "ERT - Minuteman (Pirate Hunter)" + job_icon = "securityofficerOld" head = null suit = /obj/item/clothing/suit/space/hardsuit/security/independent/minutemen /datum/outfit/job/minutemen/ert/pirate_hunter/leader name = "ERT - Minutemen Sergeant (Pirate Hunter)" + job_icon = "lieutenant" uniform = /obj/item/clothing/under/rank/command/minutemen ears = /obj/item/radio/headset/minutemen/alt/captain diff --git a/code/modules/clothing/outfits/ert/nanotrasen_ert.dm b/code/modules/clothing/outfits/ert/nanotrasen_ert.dm index 2d397b8de828..7e39f0b2f32a 100644 --- a/code/modules/clothing/outfits/ert/nanotrasen_ert.dm +++ b/code/modules/clothing/outfits/ert/nanotrasen_ert.dm @@ -235,10 +235,10 @@ ears = /obj/item/radio/headset/headset_cent glasses = /obj/item/clothing/glasses/sunglasses belt = /obj/item/melee/classic_baton - r_hand = /obj/item/gun/ballistic/rifle/boltaction + r_hand = /obj/item/gun/ballistic/rifle/illestren back = /obj/item/storage/backpack/satchel - l_pocket = /obj/item/ammo_box/a762 - r_pocket = /obj/item/ammo_box/a762 + l_pocket = /obj/item/ammo_box/magazine/illestren_a850r + r_pocket = /obj/item/ammo_box/magazine/illestren_a850r id = /obj/item/card/id/centcom backpack_contents = list(/obj/item/storage/box/survival = 1) /datum/outfit/centcom/centcom_intern/unarmed @@ -263,7 +263,7 @@ name = "CentCom Head Intern" belt = /obj/item/melee/baton/loaded suit = /obj/item/clothing/suit/armor/vest - suit_store = /obj/item/gun/ballistic/rifle/boltaction + suit_store = /obj/item/gun/ballistic/rifle/illestren r_hand = /obj/item/megaphone head = /obj/item/clothing/head/intern @@ -379,9 +379,10 @@ headset.recalculateChannels() // Loss Prevention -/datum/outfit/job/nanotrasen/ert/lp +/datum/outfit/job/nanotrasen/security/ert/lp name = "ERT - Loss Prevention Security Specialist" jobtype = /datum/job/officer + job_icon = "securityresponseofficer" head = null implants = list(/obj/item/implant/mindshield) @@ -403,9 +404,10 @@ backpack_contents = list(/obj/item/radio=1, /obj/item/stock_parts/cell/gun/upgraded=2, /obj/item/screwdriver=1) -/datum/outfit/job/nanotrasen/ert/lp/medic +/datum/outfit/job/nanotrasen/security/ert/lp/medic name = "ERT - Loss Prevention Medical Specialist" jobtype = /datum/job/doctor + job_icon = "medicalresponseofficer" head = null uniform = /obj/item/clothing/under/rank/medical/paramedic/lp @@ -422,9 +424,10 @@ backpack_contents = list(/obj/item/storage/firstaid/medical=1, /obj/item/radio=1) -/datum/outfit/job/nanotrasen/ert/lp/engineer +/datum/outfit/job/nanotrasen/security/ert/lp/engineer name = "ERT - Loss Prevention Engineering Specialist" jobtype = /datum/job/engineer + job_icon = "engineeringresponseofficer" head = null uniform = /obj/item/clothing/under/rank/engineering/engineer/nt/lp @@ -441,9 +444,10 @@ backpack_contents = list(/obj/item/stack/sheet/metal/fifty=1, /obj/item/stack/sheet/glass/fifty=1, /obj/item/radio=1) -/datum/outfit/job/nanotrasen/ert/lp/lieutenant +/datum/outfit/job/nanotrasen/security/ert/lp/lieutenant name = "ERT - Loss Prevention Lieutenant" jobtype = /datum/job/captain + job_icon = "emergencyresponseteamcommander" head = null ears = /obj/item/radio/headset/nanotrasen/alt/captain diff --git a/code/modules/clothing/outfits/ert/solgov_ert.dm b/code/modules/clothing/outfits/ert/solgov_ert.dm index 9962f1d9c74c..bc09a74c1786 100644 --- a/code/modules/clothing/outfits/ert/solgov_ert.dm +++ b/code/modules/clothing/outfits/ert/solgov_ert.dm @@ -18,8 +18,9 @@ /datum/outfit/job/solgov/ert/inspector - name = "ERT - SolGov Inspector" + name = "ERT - Inspector (SolGov)" jobtype = /datum/job/head_of_personnel + job_icon = "solgovrepresentative" uniform = /obj/item/clothing/under/solgov/formal belt = /obj/item/clipboard diff --git a/code/modules/clothing/outfits/ert/syndicate_ert.dm b/code/modules/clothing/outfits/ert/syndicate_ert.dm index 3ef6cea0e53b..ab256d094a38 100644 --- a/code/modules/clothing/outfits/ert/syndicate_ert.dm +++ b/code/modules/clothing/outfits/ert/syndicate_ert.dm @@ -1,5 +1,7 @@ /datum/outfit/job/syndicate/ert name = "ERT - Syndicate Basic" + jobtype = /datum/job/officer + job_icon = "securityofficer" suit = /obj/item/clothing/suit/armor/vest/syndie suit_store = /obj/item/gun/ballistic/automatic/smg/c20r @@ -18,10 +20,9 @@ implants = list(/obj/item/implant/weapons_auth) backpack_contents = list(/obj/item/radio=1) - jobtype = /datum/job/officer // most of these are Shooty Shooty People anyway - /datum/outfit/job/syndicate/ert/leader name = "ERT - Syndicate Basic Leader" + job_icon = "lieutenant" head = /obj/item/clothing/head/HoS/beret/syndicate ears = /obj/item/radio/headset/syndicate/captain @@ -48,6 +49,8 @@ /datum/outfit/job/syndicate/ert/gorlex/medic name = "ERT - Syndicate Gorlex Loyalist Medic" + jobtype = /datum/job/paramedic + job_icon = "paramedic" head = /obj/item/clothing/head/soft/black mask = null @@ -79,6 +82,7 @@ /datum/outfit/job/syndicate/ert/gorlex/leader name = "ERT - Syndicate Gorlex Loyalist Sergeant" + job_icon = "lieutenant" uniform = /obj/item/clothing/under/syndicate/gorlex head = /obj/item/clothing/head/HoS/beret/syndicate @@ -93,6 +97,7 @@ /datum/outfit/job/syndicate/ert/cybersun name = "ERT - Syndicate Cybersun Commando" + job_icon = "syndicate" head = null uniform = /obj/item/clothing/under/syndicate/combat @@ -117,6 +122,7 @@ /datum/outfit/job/syndicate/ert/cybersun/medic name = "ERT - Syndicate Cybersun Paramedic" + job_icon = "paramedic" uniform = /obj/item/clothing/under/syndicate/medic suit = /obj/item/clothing/suit/space/hardsuit/syndi/cybersun/paramed @@ -138,6 +144,7 @@ /datum/outfit/job/syndicate/ert/cybersun/medic/leader name = "ERT - Syndicate Cybersun Lead Paramedic" + job_icon = "chiefmedicalofficer" head = /obj/item/clothing/head/beret/cmo glasses = /obj/item/clothing/glasses/hud/security/night @@ -150,6 +157,8 @@ /datum/outfit/job/syndicate/ert/inspector name = "ERT - Inspector (Syndicate)" + jobtype = /datum/job/head_of_personnel + job_icon = "syndicate" uniform = /obj/item/clothing/under/syndicate/officer head = /obj/item/clothing/head/HoS/beret/syndicate @@ -160,10 +169,11 @@ shoes = /obj/item/clothing/shoes/laceup gloves = /obj/item/clothing/gloves/color/white suit = /obj/item/clothing/suit/armor/hos + l_pocket = null + r_pocket = null suit_store = null - job_icon = "syndicate" - jobtype = /datum/job/head_of_personnel + backpack_contents = list(/obj/item/stamp/syndicate) /datum/outfit/job/syndicate/ert/inspector/post_equip(mob/living/carbon/human/H, visualsOnly) . = ..() diff --git a/code/modules/clothing/outfits/factions/gezena.dm b/code/modules/clothing/outfits/factions/gezena.dm index b5b077fa63f7..f34353c0e2df 100644 --- a/code/modules/clothing/outfits/factions/gezena.dm +++ b/code/modules/clothing/outfits/factions/gezena.dm @@ -8,13 +8,151 @@ return H.faction |= list(FACTION_PLAYER_GEZENA) +//Playable Roles (put in ships): /datum/outfit/job/gezena/assistant - name = "PGF - Deckhand" + name = "PGF - Crewman" jobtype = /datum/job/assistant job_icon = "assistant" + uniform = /obj/item/clothing/under/gezena + shoes = /obj/item/clothing/shoes/combat/gezena + neck = /obj/item/clothing/neck/cloak/gezena + +/datum/outfit/job/gezena/engineer + name = "PGF - Navy Engineer" + jobtype = /datum/job/engineer + job_icon = "stationengineer" + + uniform = /obj/item/clothing/under/gezena + shoes = /obj/item/clothing/shoes/combat/gezena + neck = /obj/item/clothing/neck/cloak/gezena/engi + +/datum/outfit/job/gezena/doctor + name = "PGF - Navy Doctor" + jobtype = /datum/job/doctor + job_icon = "medicaldoctor" + + uniform = /obj/item/clothing/under/gezena + shoes = /obj/item/clothing/shoes/combat/gezena + neck = /obj/item/clothing/neck/cloak/gezena/med + +/datum/outfit/job/gezena/security + name = "PGF - Marine" + jobtype = /datum/job/officer + job_icon = "securityofficer" + + uniform = /obj/item/clothing/under/gezena/marine + shoes = /obj/item/clothing/shoes/combat/gezena + neck = /obj/item/clothing/neck/cloak/gezena + +/datum/outfit/job/gezena/hos + name = "PGF - Marine Sergeant" + jobtype = /datum/job/hos + job_icon = "headofsecurity" + + uniform = /obj/item/clothing/under/gezena/marine + shoes = /obj/item/clothing/shoes/combat/gezena + neck = /obj/item/clothing/neck/cloak/gezena/captain + +/datum/outfit/job/gezena/captain + name = "PGF - Captain" + jobtype = /datum/job/captain + job_icon = "captain" + + uniform = /obj/item/clothing/under/gezena/captain + shoes = /obj/item/clothing/shoes/combat/gezena + neck = /obj/item/clothing/neck/cloak/gezena/captain + +//Adminspawn Roles (for events): + +/datum/outfit/job/gezena/assistant/geared + name = "PGF - Crewman - Equipped" + jobtype = /datum/job/assistant + job_icon = "assistant" + + uniform = /obj/item/clothing/under/gezena + suit = /obj/item/clothing/suit/armor/gezena + head = /obj/item/clothing/head/gezena + gloves = /obj/item/clothing/gloves/gezena + shoes = /obj/item/clothing/shoes/combat/gezena + neck = /obj/item/clothing/neck/cloak/gezena + +/datum/outfit/job/gezena/engineer/geared + name = "PGF - Navy Engineer - Equipped" + jobtype = /datum/job/engineer + job_icon = "stationengineer" + + uniform = /obj/item/clothing/under/gezena + suit = /obj/item/clothing/suit/armor/gezena/engi head = /obj/item/clothing/head/gezena + belt = /obj/item/storage/belt/utility/full/engi + gloves = /obj/item/clothing/gloves/gezena/engi + shoes = /obj/item/clothing/shoes/combat/gezena + neck = /obj/item/clothing/neck/cloak/gezena/engi + +/datum/outfit/job/gezena/doctor/geared + name = "PGF - Navy Doctor - Equipped" + jobtype = /datum/job/doctor + job_icon = "medicaldoctor" + uniform = /obj/item/clothing/under/gezena - suit = /obj/item/clothing/suit/toggle/gezena + suit = /obj/item/clothing/suit/armor/gezena + head = /obj/item/clothing/head/gezena/medic gloves = /obj/item/clothing/gloves/gezena shoes = /obj/item/clothing/shoes/combat/gezena + neck = /obj/item/clothing/neck/cloak/gezena/med + +/datum/outfit/job/gezena/security/geared + name = "PGF - Marine - Equipped" + jobtype = /datum/job/officer + job_icon = "securityofficer" + + uniform = /obj/item/clothing/under/gezena/marine + suit = /obj/item/clothing/suit/armor/gezena/marine + head = /obj/item/clothing/head/helmet/gezena + belt = /obj/item/storage/belt/military/gezena + gloves = /obj/item/clothing/gloves/gezena/marine + shoes = /obj/item/clothing/shoes/combat/gezena + neck = /obj/item/clothing/neck/cloak/gezena + r_hand = /obj/item/gun/energy/kalix/pgf/heavy + +/datum/outfit/job/gezena/hos/geared + name = "PGF - Marine Sergeant - Equipped" + jobtype = /datum/job/hos + job_icon = "headofsecurity" + + uniform = /obj/item/clothing/under/gezena/marine + suit = /obj/item/clothing/suit/armor/gezena/marine + head = /obj/item/clothing/head/helmet/gezena + belt = /obj/item/storage/belt/military/gezena + gloves = /obj/item/clothing/gloves/gezena/marine + shoes = /obj/item/clothing/shoes/combat/gezena + neck = /obj/item/clothing/neck/cloak/gezena/captain + r_hand = /obj/item/gun/energy/kalix/pgf + +/datum/outfit/job/gezena/paramedic + name = "PGF - Marine Medic - Equipped" + jobtype = /datum/job/paramedic + job_icon = "paramedic" + + uniform = /obj/item/clothing/under/gezena/marine + suit = /obj/item/clothing/suit/armor/gezena/marine + head = /obj/item/clothing/head/helmet/gezena + belt = /obj/item/storage/belt/medical/gezena + gloves = /obj/item/clothing/gloves/gezena/marine + shoes = /obj/item/clothing/shoes/combat/gezena + neck = /obj/item/clothing/neck/cloak/gezena/med + r_hand = /obj/item/gun/energy/kalix/pgf + + +/datum/outfit/job/gezena/captain/geared + name = "PGF - Captain - Equipped" + jobtype = /datum/job/captain + job_icon = "captain" + + uniform = /obj/item/clothing/under/gezena/captain + suit = /obj/item/clothing/suit/armor/gezena/captain + head = /obj/item/clothing/head/gezena/captain + gloves = /obj/item/clothing/gloves/gezena/captain + shoes = /obj/item/clothing/shoes/combat/gezena + neck = /obj/item/clothing/neck/cloak/gezena/captain diff --git a/code/modules/clothing/outfits/factions/independent.dm b/code/modules/clothing/outfits/factions/independent.dm index 97b806ec4b5b..a3795b7ee057 100644 --- a/code/modules/clothing/outfits/factions/independent.dm +++ b/code/modules/clothing/outfits/factions/independent.dm @@ -1,6 +1,6 @@ /datum/outfit/job/independent name = "Independent - Base Outfit" - faction_icon = "bg_independent" + faction_icon = "bg_indie" uniform = /obj/item/clothing/under/utility box = /obj/item/storage/box/survival @@ -259,6 +259,7 @@ /datum/outfit/job/independent/security/pirate name = "Independent - Security Officer (Pirate)" + ears = /obj/item/radio/headset/pirate uniform = /obj/item/clothing/under/syndicate/camo shoes = /obj/item/clothing/shoes/jackboots head = /obj/item/clothing/head/bandana @@ -311,6 +312,7 @@ /datum/outfit/job/independent/engineer/pirate name = "Independent - Engineer (Pirate)" + ears = /obj/item/radio/headset/pirate uniform = /obj/item/clothing/under/costume/sailor head = /obj/item/clothing/head/bandana shoes = /obj/item/clothing/shoes/jackboots @@ -402,6 +404,10 @@ chameleon_extras = /obj/item/gun/syringe /datum/outfit/job/independent/doctor/pirate + name = "Independent - Medical Doctor (Pirate)" + + ears = /obj/item/radio/headset/pirate + uniform = /obj/item/clothing/under/costume/sailor // Cargo Tech @@ -662,7 +668,17 @@ H.grant_all_languages(TRUE, TRUE, TRUE, LANGUAGE_CURATOR) /datum/outfit/job/independent/curator/dungeonmaster - + name = "Independent - Curator (Dungeon Master)" + uniform = /obj/item/clothing/under/misc/pj/red + suit = /obj/item/clothing/suit/nerdshirt + backpack_contents = list( + /obj/item/choice_beacon/hero = 1, + /obj/item/tape = 1, + /obj/item/storage/pill_bottle/dice = 1, + /obj/item/toy/cards/deck/cas = 1, + /obj/item/toy/cards/deck/cas/black = 1, + /obj/item/hourglass = 1 + ) // Chaplain @@ -707,6 +723,15 @@ chameleon_extras = /obj/item/gun/syringe /datum/outfit/job/independent/chemist/pharma + name = "Independent - Chemist (Pharmacology Student)" + + uniform = /obj/item/clothing/under/rank/medical + shoes = /obj/item/clothing/shoes/sneakers/white + accessory = /obj/item/clothing/neck/scarf/orange + l_pocket = /obj/item/pda/medical + r_pocket = /obj/item/reagent_containers/pill/floorpill + belt = /obj/item/reagent_scanner + backpack_contents = list(/obj/item/book/manual/wiki/chemistry = 1) // Janitor @@ -769,6 +794,21 @@ chameleon_extras = list(/obj/item/gun/syringe, /obj/item/stamp/cmo) /datum/outfit/job/independent/cmo/pharma + name = "Independent - Chief Pharmacist" + + glasses = /obj/item/clothing/glasses/science/prescription/fake //chief pharma is this kind of person + neck = /obj/item/clothing/neck/tie/orange //the Horrible Tie was genuinely too hard to look at + l_pocket = /obj/item/reagent_containers/glass/filter + uniform = /obj/item/clothing/under/suit/tan + alt_uniform = /obj/item/clothing/under/rank/medical/doctor/green + shoes = /obj/item/clothing/shoes/sneakers/brown + suit = /obj/item/clothing/suit/toggle/suspenders/gray + + l_hand = /obj/item/reagent_containers/glass/maunamug + backpack = /obj/item/storage/backpack/chemistry + satchel = /obj/item/storage/backpack/satchel/chem + courierbag = /obj/item/storage/backpack/messenger/chem + backpack_contents = list(/obj/item/melee/classic_baton/telescopic=1, /obj/item/storage/bag/chemistry=1) // Detective diff --git a/code/modules/clothing/outfits/factions/inteq.dm b/code/modules/clothing/outfits/factions/inteq.dm index 79acfa569804..48702c064447 100644 --- a/code/modules/clothing/outfits/factions/inteq.dm +++ b/code/modules/clothing/outfits/factions/inteq.dm @@ -114,6 +114,14 @@ suit_store = /obj/item/flashlight/pen backpack_contents = list(/obj/item/roller=1) +/datum/outfit/job/inteq/paramedic/empty + name = "IRMG Corpsman (Inteq) (Naked)" + + head = null + suit = null + suit_store = null + belt = null + ///Security Officers /datum/outfit/job/inteq/security @@ -193,3 +201,31 @@ courierbag = /obj/item/storage/backpack/messenger/inteq backpack_contents = list(/obj/item/melee/classic_baton=1) + +// cmo + +/datum/outfit/job/inteq/cmo + name = "IRMG Honorable Corpsman (Inteq)" + jobtype = /datum/job/cmo + job_icon = "chiefmedicalofficer" + + belt = /obj/item/storage/belt/medical/webbing/paramedic + ears = /obj/item/radio/headset/inteq/captain + uniform = /obj/item/clothing/under/syndicate/inteq/corpsman + alt_uniform = /obj/item/clothing/under/syndicate/inteq/skirt/corpsman + shoes = /obj/item/clothing/shoes/combat + suit = /obj/item/clothing/suit/hooded/wintercoat/security/inteq/alt + alt_suit = /obj/item/clothing/suit/armor/inteq/corpsman + dcoat = /obj/item/clothing/suit/armor/hos/inteq + r_pocket = /obj/item/pda/medical + + chameleon_extras = null + +/datum/outfit/job/inteq/cmo/empty + name = "IRMG Honorable Corpsman (Inteq) (Naked)" + belt = null + suit = null + alt_suit = null + suit_store = null + dcoat = null + r_pocket = null diff --git a/code/modules/clothing/outfits/factions/nanotrasen.dm b/code/modules/clothing/outfits/factions/nanotrasen.dm index 409a8dd55d47..28ff486e4dc6 100644 --- a/code/modules/clothing/outfits/factions/nanotrasen.dm +++ b/code/modules/clothing/outfits/factions/nanotrasen.dm @@ -380,6 +380,7 @@ job_icon = "medicaldoctor" jobtype = /datum/job/doctor + belt = /obj/item/pda/medical ears = /obj/item/radio/headset/headset_med uniform = /obj/item/clothing/under/rank/medical/doctor shoes = /obj/item/clothing/shoes/sneakers/white diff --git a/code/modules/clothing/outfits/factions/syndicate.dm b/code/modules/clothing/outfits/factions/syndicate.dm index 75158dd577ff..268474f4c4f2 100644 --- a/code/modules/clothing/outfits/factions/syndicate.dm +++ b/code/modules/clothing/outfits/factions/syndicate.dm @@ -100,6 +100,35 @@ assign_codename(H) +/datum/outfit/job/syndicate/assistant/suns + name = "Syndicate - Freshman (SUNS)" + + uniform = /obj/item/clothing/under/syndicate/suns + alt_uniform = /obj/item/clothing/under/syndicate/suns/alt + suit = /obj/item/clothing/suit/toggle/suns/alt + alt_suit = /obj/item/clothing/suit/toggle/suns + shoes = /obj/item/clothing/shoes/laceup/suns + gloves = null + ears = null + box = /obj/item/storage/box/survival + + backpack = /obj/item/storage/backpack + satchel = /obj/item/storage/backpack/satchel + duffelbag = /obj/item/storage/backpack/duffelbag + courierbag = /obj/item/storage/backpack/messenger + +/datum/outfit/job/syndicate/assistant/suns/halfway + name = "Syndicate - Junior (SUNS)" + + uniform = /obj/item/clothing/under/syndicate/suns/uniform2 + alt_uniform = /obj/item/clothing/under/syndicate/suns/uniform2/alt + +/datum/outfit/job/syndicate/assistant/suns/complete + name = "Syndicate - Graduate (SUNS)" + + uniform = /obj/item/clothing/under/syndicate/suns/uniform3 + alt_uniform = /obj/item/clothing/under/syndicate/suns/uniform3 + //atmos techs /datum/outfit/job/syndicate/atmos @@ -199,11 +228,18 @@ /datum/outfit/job/syndicate/botanist/suns name = "Syndicate - Botanist-Chemist (SUNS)" + uniform = /obj/item/clothing/under/syndicate/suns/sciencejumpsuit id = /obj/item/card/id/syndicate_command/crew_id - shoes = /obj/item/clothing/shoes/jackboots - glasses = /obj/item/clothing/glasses/science - suit = /obj/item/clothing/suit/toggle/labcoat/chemist + shoes = /obj/item/clothing/shoes/sneakers/suns + glasses = /obj/item/clothing/glasses/science/suns + suit = /obj/item/clothing/suit/hooded/suns suit_store = null + neck = /obj/item/clothing/neck/cloak/suns + + backpack = /obj/item/storage/backpack + satchel = /obj/item/storage/backpack/satchel + duffelbag = /obj/item/storage/backpack/duffelbag + courierbag = /obj/item/storage/backpack/messenger //Capitan @@ -268,6 +304,22 @@ head = /obj/item/clothing/head/HoS/cybersun gloves = /obj/item/clothing/gloves/combat +/datum/outfit/job/syndicate/captain/suns + name = "Syndicate - Captain (SUNS)" + + uniform = /obj/item/clothing/under/syndicate/suns/captain + shoes = /obj/item/clothing/shoes/combat/suns + head = /obj/item/clothing/head/suns/captain + gloves = /obj/item/clothing/gloves/suns/captain + suit = /obj/item/clothing/suit/armor/vest/bulletproof/suns/captain + belt = /obj/item/storage/belt/sabre/suns/captain + mask = /obj/item/clothing/mask/breath/suns + neck = /obj/item/clothing/neck/cloak/suns/cap + + backpack = /obj/item/storage/backpack + satchel = /obj/item/storage/backpack/satchel + duffelbag = /obj/item/storage/backpack/duffelbag + courierbag = /obj/item/storage/backpack/messenger //cargo tech @@ -381,18 +433,26 @@ backpack_contents = list(/obj/item/melee/classic_baton/telescopic=1) /datum/outfit/job/syndicate/cmo/suns - name = "Syndicate - Medical Director (SUNS)" + name = "Syndicate - Medical Instructor (SUNS)" - uniform = /obj/item/clothing/under/syndicate + uniform = /obj/item/clothing/under/syndicate/suns/doctorscrubs ears = /obj/item/radio/headset/syndicate/alt/captain id = /obj/item/card/id/syndicate_command/captain_id - shoes = /obj/item/clothing/shoes/jackboots + shoes = /obj/item/clothing/shoes/combat/suns l_pocket = /obj/item/pinpointer/crew - shoes = /obj/item/clothing/shoes/sneakers/brown - suit = /obj/item/clothing/suit/toggle/labcoat/cmo + suit = /obj/item/clothing/suit/toggle/labcoat/suns/cmo l_hand = /obj/item/storage/firstaid/medical + r_hand = /obj/item/storage/belt/sabre/suns/cmo suit_store = /obj/item/flashlight/pen backpack_contents = list(/obj/item/melee/classic_baton/telescopic=1) + gloves = /obj/item/clothing/gloves/color/latex/nitrile/suns + glasses = /obj/item/clothing/glasses/hud/health/suns + head = /obj/item/clothing/head/suns/cmo + + backpack = /obj/item/storage/backpack + satchel = /obj/item/storage/backpack/satchel + duffelbag = /obj/item/storage/backpack/duffelbag + courierbag = /obj/item/storage/backpack/messenger //"Head Of Personnel" @@ -425,6 +485,24 @@ r_pocket = /obj/item/kitchen/knife/combat/survival glasses = /obj/item/clothing/glasses/sunglasses +/datum/outfit/job/syndicate/head_of_personnel/suns + name = "Syndicate - Academic Staff (SUNS)" + + uniform = /obj/item/clothing/under/syndicate/suns/xo + suit = /obj/item/clothing/suit/armor/vest/bulletproof/suns/xo + belt = /obj/item/storage/belt/sabre/suns + shoes = /obj/item/clothing/shoes/combat/suns + head = /obj/item/clothing/head/suns + gloves = /obj/item/clothing/gloves/suns/xo + neck = /obj/item/clothing/neck/cloak/suns/xo + r_pocket = null + glasses = /obj/item/clothing/glasses/science/suns + + backpack = /obj/item/storage/backpack + satchel = /obj/item/storage/backpack/satchel + duffelbag = /obj/item/storage/backpack/duffelbag + courierbag = /obj/item/storage/backpack/messenger + //head of security /datum/outfit/job/syndicate/hos @@ -476,6 +554,27 @@ . = ..() assign_codename(H) +/datum/outfit/job/syndicate/hos/suns/ + name = "Syndicate - Senior Peacekeeper (SUNS)" + uniform = /obj/item/clothing/under/syndicate/suns/pkuniform + suit = /obj/item/clothing/suit/armor/vest/bulletproof/suns/hos + belt = /obj/item/melee/sabre/suns/telescopic + gloves = /obj/item/clothing/gloves/tackler/dolphin/suns + shoes = /obj/item/clothing/shoes/combat/suns + head = /obj/item/clothing/head/welding/suns/hos + glasses = /obj/item/clothing/glasses/hud/security/suns + suit_store = /obj/item/gun/ballistic/automatic/powered/gauss/modelh/suns + + backpack = /obj/item/storage/backpack + satchel = /obj/item/storage/backpack/satchel + duffelbag = /obj/item/storage/backpack/duffelbag + courierbag = /obj/item/storage/backpack/messenger + +/datum/outfit/job/syndicate/hos/suns/alt + name = "Syndicate - Senior Peacekeeper Alt (SUNS)" + suit = /obj/item/clothing/suit/armor/vest/bulletproof/suns/ehos + head = /obj/item/clothing/head/HoS/syndicate/suns + //medical doctors (assorted) /datum/outfit/job/syndicate/doctor @@ -493,6 +592,19 @@ /datum/outfit/job/syndicate/doctor/suns name = "Syndicate - Medical Doctor (SUNS)" + uniform = /obj/item/clothing/under/syndicate/suns/doctorscrubs + shoes = /obj/item/clothing/shoes/sneakers/suns + suit = /obj/item/clothing/suit/toggle/labcoat/suns/doctorlabcoat + gloves = /obj/item/clothing/gloves/color/latex/nitrile/suns + head = /obj/item/clothing/head/suns/surgery + glasses = /obj/item/clothing/glasses/hud/health/suns + mask = /obj/item/clothing/mask/surgical/suns + + backpack = /obj/item/storage/backpack + satchel = /obj/item/storage/backpack/satchel + duffelbag = /obj/item/storage/backpack/duffelbag + courierbag = /obj/item/storage/backpack/messenger + /datum/outfit/job/syndicate/doctor/cybersun name = "Syndicate - Medical Doctor (Cybersun)" @@ -588,7 +700,19 @@ pda_slot = ITEM_SLOT_BELT /datum/outfit/job/syndicate/psychologist/suns - name = "Ship Psychologist (SUNS)" + name = "Syndicate - Psychologist (SUNS)" + + uniform = /obj/item/clothing/under/syndicate/suns/uniform3 + alt_uniform = /obj/item/clothing/under/syndicate/suns/uniform3/alt + suit = /obj/item/clothing/suit/toggle/suns + alt_suit = /obj/item/clothing/suit/toggle/suns/alt + shoes = /obj/item/clothing/shoes/laceup/suns + accessory = /obj/item/clothing/accessory/waistcoat/suns/poof + + backpack = /obj/item/storage/backpack + satchel = /obj/item/storage/backpack/satchel + duffelbag = /obj/item/storage/backpack/duffelbag + courierbag = /obj/item/storage/backpack/messenger //patient (prisoner) @@ -630,6 +754,30 @@ ears = /obj/item/radio/headset/syndicate/alt shoes = /obj/item/clothing/shoes/laceup +//scientists + +/datum/outfit/job/syndicate/science + name = "Syndicate - Scientist" + jobtype = /datum/job/scientist + job_icon = "scientist" + + suit = /obj/item/clothing/suit/toggle/labcoat/science + dcoat = /obj/item/clothing/suit/hooded/wintercoat/science + +/datum/outfit/job/syndicate/science/suns + name = "Syndicate - Scientist (SUNS)" +//more futureproofing than anything, the Aegis currently uses /datum/outfit/job/syndicate/botanist/suns for a similar role + uniform = /obj/item/clothing/under/syndicate/suns/sciencejumpsuit + suit = /obj/item/clothing/suit/hooded/suns + shoes = /obj/item/clothing/shoes/sneakers/suns + glasses = /obj/item/clothing/glasses/science/suns + neck = /obj/item/clothing/neck/cloak/suns + + backpack = /obj/item/storage/backpack + satchel = /obj/item/storage/backpack/satchel + duffelbag = /obj/item/storage/backpack/duffelbag + courierbag = /obj/item/storage/backpack/messenger + //security officers /datum/outfit/job/syndicate/security @@ -685,6 +833,22 @@ . = ..() assign_codename(H) +/datum/outfit/job/syndicate/security/suns + name = "Syndicate - Peacekeeper (SUNS)" + uniform = /obj/item/clothing/under/syndicate/suns/pkuniform + suit = /obj/item/clothing/suit/armor/vest/bulletproof/suns + alt_suit = /obj/item/clothing/suit/toggle/suns/pkcoat + belt = /obj/item/melee/sabre/suns/telescopic + gloves = /obj/item/clothing/gloves/tackler/dolphin/suns + shoes = /obj/item/clothing/shoes/jackboots/suns/long + head = /obj/item/clothing/head/welding/suns + glasses = /obj/item/clothing/glasses/hud/security/suns + + backpack = /obj/item/storage/backpack + satchel = /obj/item/storage/backpack/satchel + duffelbag = /obj/item/storage/backpack/duffelbag + courierbag = /obj/item/storage/backpack/messenger + //Miners /datum/outfit/job/syndicate/miner @@ -830,3 +994,19 @@ r_pocket = /obj/item/radio head = /obj/item/clothing/head/soft/cybersun accessory = /obj/item/clothing/accessory/armband/engine + +/datum/outfit/job/syndicate/engineer/suns + name = "Syndicate - Ship Engineer (SUNS)" + + uniform = /obj/item/clothing/under/syndicate/suns/workerjumpsuit + suit = /obj/item/clothing/suit/toggle/suns/workervest + gloves = /obj/item/clothing/gloves/suns/yellow + shoes = /obj/item/clothing/shoes/jackboots/suns + head = /obj/item/clothing/head/safety_helmet/suns + accessory = null + glasses = null + + backpack = /obj/item/storage/backpack + satchel = /obj/item/storage/backpack/satchel + duffelbag = /obj/item/storage/backpack/duffelbag + courierbag = /obj/item/storage/backpack/messenger diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm index 72127bbaf7df..7a848b9ca330 100644 --- a/code/modules/clothing/outfits/standard.dm +++ b/code/modules/clothing/outfits/standard.dm @@ -1,3 +1,6 @@ +/datum/outfit/centcom + name = "CentCom Base" + /datum/outfit/centcom/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) if(visualsOnly) return @@ -37,6 +40,8 @@ glasses = /obj/item/clothing/glasses/eyepatch /datum/outfit/pirate/space + name = "Space Pirate (EVA)" + suit = /obj/item/clothing/suit/space/pirate head = /obj/item/clothing/head/helmet/space/pirate/bandana mask = /obj/item/clothing/mask/breath @@ -45,6 +50,8 @@ id = /obj/item/card/id /datum/outfit/pirate/space/captain + name = "Space Pirate Captain" + head = /obj/item/clothing/head/helmet/space/pirate /datum/outfit/pirate/post_equip(mob/living/carbon/human/H) diff --git a/code/modules/clothing/outfits/vv_outfit.dm b/code/modules/clothing/outfits/vv_outfit.dm index 0c5d99cc7488..374cdb427fdc 100644 --- a/code/modules/clothing/outfits/vv_outfit.dm +++ b/code/modules/clothing/outfits/vv_outfit.dm @@ -1,6 +1,8 @@ // This outfit preserves varedits made on the items // Created from admin helpers. /datum/outfit/varedit + name = "Varedit Outfit" + var/list/vv_values var/list/stored_access var/update_id_name = FALSE //If the name of the human is same as the name on the id they're wearing we'll update provided id when equipping diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index aa153b233c46..517a51982e7f 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -423,8 +423,8 @@ //Ramzi Syndie suit /obj/item/clothing/head/helmet/space/hardsuit/syndi/ramzi name = "rusted-red hardsuit helmet" - desc = "A beat-up standardized dual-mode helmet derived from more advanced special operations helmets, its red rusted into a dirty brown. It is in EVA mode. Manufactured by Gorlex Marauders." - alt_desc = "A beat-up standardized dual-mode helmet derived from more advanced special operations helmets, its red rusted into a dirty brown. It is in combat mode. Manufactured by Gorlex Marauders." + desc = "A beat-up standardized dual-mode helmet derived from more advanced special operations helmets, its red rusted into a dirty brown. It is in EVA mode. Manufactured by Ramzi Clique." + alt_desc = "A beat-up standardized dual-mode helmet derived from more advanced special operations helmets, its red rusted into a dirty brown. It is in combat mode. Manufactured by Ramzi Clique." icon_state = "hardsuit1-ramzi" item_state = "hardsuit1-ramzi" hardsuit_type = "ramzi" @@ -432,8 +432,8 @@ /obj/item/clothing/suit/space/hardsuit/syndi/ramzi name = "rusted-red hardsuit" - desc = "A beat-up standardized dual-mode hardsuit derived from more advanced special operations hardsuits, its red rusted into a dirty brown. It is in EVA mode. Manufactured by Gorlex Marauders." - alt_desc = "A beat-up standardized dual-mode hardsuit derived from more advanced special operations hardsuits, its red rusted into a dirty brown. It is in combat mode. Manufactured by Gorlex Marauders." + desc = "A beat-up standardized dual-mode hardsuit derived from more advanced special operations hardsuits, its red rusted into a dirty brown. It is in EVA mode. Manufactured by Ramzi Clique." + alt_desc = "A beat-up standardized dual-mode hardsuit derived from more advanced special operations hardsuits, its red rusted into a dirty brown. It is in combat mode. Manufactured by Ramzi Clique." icon_state = "hardsuit1-ramzi" item_state = "hardsuit1-ramzi" hardsuit_type = "ramzi" @@ -452,7 +452,6 @@ icon_state = "hardsuit1-sbg" item_state = "hardsuit1-sbg" hardsuit_type = "sbg" - armor = list("melee" = 40, "bullet" = 50, "laser" = 30, "energy" = 40, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 90) /obj/item/clothing/suit/space/hardsuit/syndi/sbg name = "beige-red hardsuit" @@ -464,10 +463,6 @@ helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/sbg lightweight = 1 jetpack = null - armor = list("melee" = 40, "bullet" = 50, "laser" = 30, "energy" = 40, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 90) - combat_slowdown = 0 - jetpack = null - //Hardliner Syndie suit /obj/item/clothing/head/helmet/space/hardsuit/syndi/hl @@ -477,7 +472,6 @@ icon_state = "hardsuit1-hl" item_state = "hardsuit1-hl" hardsuit_type = "hl" - armor = list("melee" = 40, "bullet" = 50, "laser" = 30, "energy" = 40, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 90) /obj/item/clothing/suit/space/hardsuit/syndi/hl name = "white-red hardsuit" @@ -489,9 +483,6 @@ helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/hl lightweight = 1 jetpack = null - armor = list("melee" = 40, "bullet" = 50, "laser" = 30, "energy" = 40, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 90) - combat_slowdown = 0 - jetpack = null //Elite Syndie suit @@ -530,28 +521,6 @@ /obj/item/clothing/suit/space/hardsuit/syndi/elite/debug helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/elite/debug -//The Owl Hardsuit -/obj/item/clothing/head/helmet/space/hardsuit/syndi/owl - name = "owl hardsuit helmet" - desc = "A dual-mode advanced helmet designed for any crime-fighting situation. It is in travel mode." - alt_desc = "A dual-mode advanced helmet designed for any crime-fighting situation. It is in combat mode." - icon_state = "hardsuit0-owl" - item_state = "s_helmet" - hardsuit_type = "owl" - visor_flags_inv = 0 - visor_flags = 0 - on = FALSE - full_retraction = TRUE - -/obj/item/clothing/suit/space/hardsuit/syndi/owl - name = "owl hardsuit" - desc = "A dual-mode advanced hardsuit designed for any crime-fighting situation. It is in travel mode." - alt_desc = "A dual-mode advanced hardsuit designed for any crime-fighting situation. It is in combat mode." - icon_state = "hardsuit1-owl" - item_state = "s_suit" - hardsuit_type = "owl" - helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/owl - //Cybersun Hardsuit /obj/item/clothing/suit/space/hardsuit/syndi/cybersun name = "neutron-star combat hardsuit" diff --git a/code/modules/clothing/spacesuits/syndi.dm b/code/modules/clothing/spacesuits/syndi.dm index 4bdafe4f7f41..e5a98c7215e5 100644 --- a/code/modules/clothing/spacesuits/syndi.dm +++ b/code/modules/clothing/spacesuits/syndi.dm @@ -111,7 +111,6 @@ item_state = "syndicate-black" allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/tank/internals, /obj/item/storage/firstaid, /obj/item/healthanalyzer, /obj/item/stack/medical) - //Black-orange syndicate space suit /obj/item/clothing/head/helmet/space/syndicate/black/orange name = "black space helmet" diff --git a/code/modules/clothing/suits/hoodies.dm b/code/modules/clothing/suits/hoodies.dm index f07d46420c5b..1feea7adfd0f 100644 --- a/code/modules/clothing/suits/hoodies.dm +++ b/code/modules/clothing/suits/hoodies.dm @@ -114,3 +114,4 @@ desc = "A hood for your RILENA themed hoodie." icon_state = "hoodie_rilena" item_state = "hoodie_rilena" + diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index 17bb0329cfef..12a44cbbd252 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -312,3 +312,4 @@ item_state = "enginseerhood" body_parts_covered = HEAD flags_inv = HIDEHAIR|HIDEEARS|HIDEFACE|HIDEFACIALHAIR + diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index 7bb36a9086b4..2f0660bffebf 100644 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -512,7 +512,7 @@ /obj/item/clothing/accessory/holster/marine/Initialize() . = ..() - new /obj/item/gun/ballistic/automatic/pistol/m1911(src) + new /obj/item/gun/ballistic/automatic/pistol/candor(src) new /obj/item/ammo_box/magazine/m45(src) new /obj/item/ammo_box/magazine/m45(src) diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 9ca494d431e9..2f262b562148 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -764,7 +764,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( "stun baton","flash","syringe gun","circular saw","tank transfer valve",\ "ritual dagger","spellbook",\ "pulse rifle","hypospray","ship blueprints",\ - "ship keys","M1911","Commander","credits","handcuffs","you",\ + "ship keys","Candor","Commander","credits","handcuffs","you",\ )] into [equipped_backpack].") message_pool.Add("[other] [pick("sneezes","coughs")].") diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index 08a87b6f9193..64bb4fdae667 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -254,13 +254,26 @@ list_reagents = list(/datum/reagent/consumable/tea = 30) /obj/item/reagent_containers/food/drinks/mug/coco - name = "Dutch hot coco" - desc = "Made in Space South America." + name = "Pearl Hot Chocolate" + desc = "A rich delicacy from the humid regions of Terra." list_reagents = list(/datum/reagent/consumable/hot_coco = 15, /datum/reagent/consumable/sugar = 5) foodtype = SUGAR resistance_flags = FREEZE_PROOF custom_price = 120 +/obj/item/reagent_containers/food/drinks/cafelatte + name = "cafe latte" + desc = "A nice, strong and refreshing beverage while you're reading." + icon_state = "cafe_latte" + list_reagents = list(/datum/reagent/consumable/cafe_latte = 30) + custom_price = 200 + +/obj/item/reagent_containers/food/drinks/soylatte + name = "soy latte" + desc = "A nice and refreshing beverage while you're reading." + icon_state = "soy_latte" + list_reagents = list(/datum/reagent/consumable/soy_latte = 30) + custom_price = 200 /obj/item/reagent_containers/food/drinks/dry_ramen name = "cup ramen" diff --git a/code/modules/food_and_drinks/food/snacks_frozen.dm b/code/modules/food_and_drinks/food/snacks_frozen.dm index dfbed9ba9112..930fabc31775 100644 --- a/code/modules/food_and_drinks/food/snacks_frozen.dm +++ b/code/modules/food_and_drinks/food/snacks_frozen.dm @@ -268,7 +268,7 @@ list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/sodiumchloride = 1, /datum/reagent/consumable/cream = 2, /datum/reagent/consumable/vanilla = 1, /datum/reagent/consumable/sugar = 4) bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/sodiumchloride = 1, /datum/reagent/consumable/cream = 2, /datum/reagent/consumable/vanilla = 1, /datum/reagent/consumable/sugar = 4) tastes = list("salty liquorice") - overlay_state = "nogga_black" + overlay_state = "licorice" /obj/item/reagent_containers/food/snacks/cornuto name = "cornuto" diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm index dd664843ed41..55d33ee80d20 100644 --- a/code/modules/library/lib_items.dm +++ b/code/modules/library/lib_items.dm @@ -181,22 +181,28 @@ /obj/structure/bookcase/manuals/engineering/Initialize() . = ..() - new /obj/item/book/manual/wiki/engineering_construction(src) - new /obj/item/book/manual/wiki/engineering_hacking(src) - new /obj/item/book/manual/wiki/engineering_guide(src) - new /obj/item/book/manual/wiki/engineering_singulo_tesla(src) - new /obj/item/book/manual/wiki/robotics_cyborgs(src) + new /obj/item/book/manual/wiki/construction(src) + new /obj/item/book/manual/wiki/hacking(src) + new /obj/item/book/manual/wiki/engineering(src) + new /obj/item/book/manual/wiki/robotics(src) update_appearance() -/obj/structure/bookcase/manuals/research_and_development - name = "\improper R&D manuals bookcase" +// /obj/structure/bookcase/manuals/research_and_development +// name = "\improper R&D manuals bookcase" -/obj/structure/bookcase/manuals/research_and_development/Initialize() - . = ..() - new /obj/item/book/manual/wiki/research_and_development(src) - update_appearance() +// /obj/structure/bookcase/manuals/research_and_development/Initialize() +// . = ..() +// new /obj/item/book/manual/wiki/research_and_development(src) +// update_appearance() +/obj/structure/bookcase/manuals/chemistry + name = "chemistry manuals bookcase" + +/obj/structure/bookcase/manuals/chemistry/Initialize() + . = ..() + new /obj/item/book/manual/wiki/chemistry(src) + new /obj/item/book/manual/wiki/ghetto_chemistry(src) /* * Book @@ -378,7 +384,8 @@ /obj/structure/bookcase/manuals/medical/Initialize() . = ..() - new /obj/item/book/manual/wiki/medical_cloning(src) + new /obj/item/book/manual/wiki/medicine(src) + new /obj/item/book/manual/wiki/surgery(src) update_appearance() #undef BOOKCASE_UNANCHORED diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index c8265205cac5..71de02b3ca1c 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -341,7 +341,6 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums dat += "

NTGanda(tm) Universal Printing Module

" dat += "What would you like to print?
" dat += "\[Bible\]
" - dat += "\[Poster\]
" dat += "(Return to main menu)
" if(8) dat += "

Accessing Forbidden Lore Vault v 1.3

" @@ -524,12 +523,6 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums cooldown = world.time + PRINTER_COOLDOWN else say("Printer currently unavailable, please wait a moment.") - if(href_list["printposter"]) - if(cooldown < world.time) - new /obj/item/poster/random_official(src.loc) - cooldown = world.time + PRINTER_COOLDOWN - else - say("Printer currently unavailable, please wait a moment.") add_fingerprint(usr) updateUsrDialog() diff --git a/code/modules/mining/equipment/mineral_scanner.dm b/code/modules/mining/equipment/mineral_scanner.dm index 87ed99c0d45b..add30b7d467f 100644 --- a/code/modules/mining/equipment/mineral_scanner.dm +++ b/code/modules/mining/equipment/mineral_scanner.dm @@ -10,6 +10,7 @@ w_class = WEIGHT_CLASS_SMALL flags_1 = CONDUCT_1 slot_flags = ITEM_SLOT_BELT + custom_price = 200 var/cooldown = 35 var/current_cooldown = 0 var/speaker = TRUE // Speaker that plays a sound when pulsed. diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index ba2a1c6984a4..2af7db0f4b6c 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -19,58 +19,25 @@ all_items_free = FALSE // Mining products are handled differently, because I am too lazy to convert this list stolen from the old vendor. products = list( //if you add something to this, please, for the love of god, sort it by price/type. use tabs and not spaces. - /obj/item/stack/marker_beacon/thirty = 6, - /obj/item/reagent_containers/food/drinks/bottle/whiskey = 3, - /obj/item/storage/box/gum/bubblegum = 5, - /obj/item/clothing/mask/cigarette/cigar/havana = 3, - /obj/item/soap/nanotrasen = 1, - /obj/item/hivelordstabilizer = 6, - /obj/item/fulton_core = 1, - /obj/item/survivalcapsule = 3, - /obj/item/storage/belt/mining = 3, - /obj/item/card/mining_point_card = 5, - /obj/item/reagent_containers/hypospray/medipen/survival = 6, - /obj/item/storage/firstaid/brute = 3, - /obj/item/storage/box/minertracker = 5, - /obj/item/wormhole_jaunter = 3, - /obj/item/kinetic_crusher = 1, - /obj/item/gun/energy/kinetic_accelerator = 3, - /obj/item/mining_scanner = 5, + /obj/item/stack/marker_beacon/thirty = 3, + /obj/item/mining_scanner = 2, /obj/item/t_scanner/adv_mining_scanner = 2, - /obj/item/resonator = 3, - /obj/item/extraction_pack = 3, - /obj/item/lazarus_injector = 1, - /obj/item/pickaxe/silver = 3, - /obj/item/storage/backpack/duffelbag/mining_conscript = 3, - /obj/item/tank/jetpack/suit = 3, - /obj/item/spacecash/bundle/c1000 = 5, - /obj/item/clothing/suit/space/hardsuit/mining/independent = 3, - /obj/item/resonator/upgraded = 1, - /obj/item/clothing/shoes/bhop = 3, - /obj/item/survivalcapsule/luxury = 3, - /mob/living/simple_animal/hostile/mining_drone = 3, - /obj/item/mine_bot_upgrade = 3, - /obj/item/mine_bot_upgrade/health = 3, - /obj/item/borg/upgrade/modkit/cooldown/minebot = 3, - /obj/item/slimepotion/slime/sentience/mining = 1, - /obj/item/borg/upgrade/modkit/minebot_passthrough = 3, - /obj/item/borg/upgrade/modkit/tracer = 3, - /obj/item/borg/upgrade/modkit/tracer/adjustable = 3, - /obj/item/borg/upgrade/modkit/chassis_mod = 3, - /obj/item/borg/upgrade/modkit/range = 3, - /obj/item/borg/upgrade/modkit/damage = 3, - /obj/item/borg/upgrade/modkit/cooldown = 3, - /obj/item/borg/upgrade/modkit/aoe/mobs = 2 - ) - premium = list( - /obj/item/reagent_containers/food/drinks/bottle/absinthe/premium = 3, - /obj/item/laser_pointer = 1, - /obj/item/pickaxe/diamond = 1, - /mob/living/simple_animal/hostile/facehugger/toy = 1, + /obj/item/hivelordstabilizer = 3, /obj/item/clothing/glasses/meson/gar = 2, - /obj/item/survivalcapsule/luxuryelite = 1, + /obj/item/kinetic_crusher = 1, + /obj/item/gun/energy/kinetic_accelerator = 2, + /obj/item/pickaxe/silver = 1, + /obj/item/borg/upgrade/modkit/range = 2, + /obj/item/borg/upgrade/modkit/damage = 2, + /obj/item/borg/upgrade/modkit/cooldown = 2, + /obj/item/borg/upgrade/modkit/aoe/mobs = 1, + /obj/item/lazarus_injector = 1, + /obj/item/survivalcapsule = 2, + /obj/item/survivalcapsule/luxury = 1, + /obj/item/survivalcapsule/luxuryelite = 1 ) + var/voucher_items = list( "Survival Capsule and Explorer's Webbing" = /obj/item/storage/belt/mining/vendor, "Resonator Kit" = /obj/item/resonator, @@ -140,47 +107,8 @@ icon_state = "mining_voucher" w_class = WEIGHT_CLASS_TINY -/**********************Mining Point Card**********************/ - -/obj/item/card/mining_point_card - name = "mining points card" - desc = "A small card preloaded with mining points. Swipe your ID card over it to transfer the points, then discard." - icon_state = "data_1" - custom_price = 500 - var/points = 500 - -/obj/item/card/mining_point_card/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/card/id)) - if(points) - var/obj/item/card/id/C = I - C.mining_points += points - to_chat(user, "You transfer [points] points to [C].") - points = 0 - else - to_chat(user, "There's no points left on [src].") - ..() - -/obj/item/card/mining_point_card/examine(mob/user) - . = ..() - . += "There's [points] point\s on the card." ///Conscript kit -/obj/item/card/mining_access_card - name = "mining access card" - desc = "A small card, that when used on any ID, will add mining access." - icon_state = "data_1" - -/obj/item/card/mining_access_card/afterattack(atom/movable/AM, mob/user, proximity) - . = ..() - if(istype(AM, /obj/item/card/id) && proximity) - var/obj/item/card/id/I = AM - I.access |= ACCESS_MINING - I.access |= ACCESS_MINING_STATION - I.access |= ACCESS_MECH_MINING - I.access |= ACCESS_MINERAL_STOREROOM - I.access |= ACCESS_CARGO - to_chat(user, "You upgrade [I] with mining access.") - qdel(src) /obj/item/storage/backpack/duffelbag/mining_conscript name = "EXOCOM rapid deployment kit" @@ -193,7 +121,6 @@ new /obj/item/storage/bag/ore(src) new /obj/item/clothing/suit/hooded/explorer(src) new /obj/item/clothing/mask/gas/explorer(src) - new /obj/item/card/mining_access_card(src) new /obj/item/gun/energy/kinetic_accelerator(src) new /obj/item/kitchen/knife/combat/survival(src) new /obj/item/flashlight/seclite(src) diff --git a/code/modules/mob/dead/dead.dm b/code/modules/mob/dead/dead.dm index ee74d0475a34..c09a3c8bd4c8 100644 --- a/code/modules/mob/dead/dead.dm +++ b/code/modules/mob/dead/dead.dm @@ -37,12 +37,8 @@ INITIALIZE_IMMEDIATE(/mob/dead) /mob/dead/get_status_tab_items() . = ..() - . += "" - . += "Game Mode: [SSticker.hide_mode ? "Secret" : "[GLOB.master_mode]"]" - if(SSticker.HasRoundStarted()) return - var/time_remaining = SSticker.GetTimeLeft() if(time_remaining > 0) . += "Time To Start: [round(time_remaining/10)]s" diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index d7865c9d2276..9baa46f526b5 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -493,8 +493,13 @@ /mob/dead/new_player/proc/register_for_interview() // First we detain them by removing all the verbs they have on client for (var/procpath/client_verb as anything in client.verbs) - if(!(client_verb in GLOB.client_verbs_required)) - remove_verb(client, client_verb) + if(client_verb in GLOB.client_verbs_required) + continue + remove_verb(client, client_verb) + + // Then remove those on their mob as well + for (var/procpath/verb_path as anything in verbs) + remove_verb(src, verb_path) // Then we create the interview form and show it to the client var/datum/interview/I = GLOB.interviews.interview_for_client(client) diff --git a/code/modules/mob/dead/new_player/sprite_accessories/ipc.dm b/code/modules/mob/dead/new_player/sprite_accessories/ipc.dm index 20f2fe732d31..b13b8f96a51e 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/ipc.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/ipc.dm @@ -236,12 +236,71 @@ name = "Right Angle" icon_state = "rangle" +/datum/sprite_accessory/ipc_antennas/sprinter + name = "Sprinter Tail" + icon_state = "sprinter" + +/datum/sprite_accessory/ipc_antennas/simple + name = "Synth Simple" + icon_state = "simple_synth" + +/datum/sprite_accessory/ipc_antennas/short + name = "Synth Short" + icon_state = "short_synth" + +/datum/sprite_accessory/ipc_antennas/curled + name = "Synth Curled" + icon_state = "curled_synth" + +/datum/sprite_accessory/ipc_antennas/ram //remade + name = "Synth Ram" + icon_state = "ram_synth" + +// Start tails + +/datum/sprite_accessory/ipc_tail + icon = 'icons/mob/ipc_accessories.dmi' + color_src = MUTCOLORS + +/datum/sprite_accessory/ipc_tail/none + name = "None" + icon_state = "none" + +/datum/sprite_accessory/ipc_tail/lizard + name = "Synthetic Sarathi" + icon_state = "synth" + +/datum/sprite_accessory/ipc_tail/lizard_big + name = "Synthetic Sarathi Large" + icon_state = "large" + +/datum/sprite_accessory/ipc_tail/plug + name = "Power Plug" + icon_state = "plug" + secondary_color = TRUE + +/datum/sprite_accessory/ipc_tail/cat + name = "Pawsitrons Cat" + icon_state = "cat" + +/datum/sprite_accessory/ipc_tail/fox + name = "Pawsitrons Fox" + icon_state = "fox" + +/datum/sprite_accessory/ipc_tail/fox_alt + name = "Pawsitrons Fox 2" + icon_state = "fox2" + // Start chassis - the worst thing ever please rework this /datum/sprite_accessory/ipc_chassis // Used for changing limb icons, doesn't need to hold the actual icon. That's handled in ipc.dm icon = null icon_state = "who cares fuck you" // In order to pull the chassis correctly, we need AN icon_state(see line 36-39). It doesn't have to be useful, because it isn't used. color_src = 0 + var/use_eyes = FALSE //do we use normal robotic eyes? used when we dont want a screen but still want visible eyes + var/has_screen = TRUE //do we have a screen to toggle + var/has_overlay = FALSE //does this chasis have a overlay icon? + var/is_digi = FALSE //does this chasis use digitigrade /datum/sprite_accessory/ipc_chassis/mcgreyscale name = "Morpheus Cyberkinetics (Custom)" @@ -287,3 +346,25 @@ /datum/sprite_accessory/ipc_chassis/zenghupharmaceuticals name = "Zeng-Hu Pharmaceuticals" limbs_id = "zhpipc" + +/datum/sprite_accessory/ipc_chassis/pgfmechanicsplantigrade + name = "PGF MECHANICS TYPE-P" + limbs_id = "pgfipc-p" + has_screen = FALSE + color_src = MUTCOLORS + has_overlay = TRUE + use_eyes = TRUE + +/datum/sprite_accessory/ipc_chassis/pgfmechanicsdigigrade + name = "PGF MECHANICS TYPE-D" + limbs_id = "pgfipc-p" //the digigrade var makes it so we use digi leg variant instead + has_screen = FALSE + color_src = MUTCOLORS + has_overlay = TRUE + use_eyes = TRUE + is_digi = TRUE + +/datum/sprite_accessory/ipc_chassis/inteqsprinter + name = "Inteq Mothership 'Sprinter'" + limbs_id = "inteqsprinter" + has_screen = FALSE diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index 9dfd2484402e..23e937acf102 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -86,10 +86,6 @@ /mob/living/carbon/alien/IsAdvancedToolUser() return has_fine_manipulation -/mob/living/carbon/alien/get_status_tab_items() - . = ..() - . += "Intent: [a_intent]" - /mob/living/carbon/alien/getTrail() if(getBruteLoss() < 200) return pick (list("xltrails_1", "xltrails2")) diff --git a/code/modules/mob/living/carbon/alien/organs.dm b/code/modules/mob/living/carbon/alien/organs.dm index 8faa15b83929..cb7c7adafc4b 100644 --- a/code/modules/mob/living/carbon/alien/organs.dm +++ b/code/modules/mob/living/carbon/alien/organs.dm @@ -83,17 +83,23 @@ else owner.adjustPlasma(plasma_rate * 0.1) -/obj/item/organ/alien/plasmavessel/Insert(mob/living/carbon/M, special = 0) +/obj/item/organ/alien/plasmavessel/Insert(mob/living/carbon/organ_owner, special = 0) ..() - if(isalien(M)) - var/mob/living/carbon/alien/A = M - A.updatePlasmaDisplay() + if(isalien(organ_owner)) + var/mob/living/carbon/alien/target_alien = organ_owner + target_alien.updatePlasmaDisplay() + RegisterSignal(organ_owner, COMSIG_MOB_GET_STATUS_TAB_ITEMS, PROC_REF(get_status_tab_item)) -/obj/item/organ/alien/plasmavessel/Remove(mob/living/carbon/M, special = 0) +/obj/item/organ/alien/plasmavessel/Remove(mob/living/carbon/organ_owner, special = 0) ..() - if(isalien(M)) - var/mob/living/carbon/alien/A = M - A.updatePlasmaDisplay() + if(isalien(organ_owner)) + var/mob/living/carbon/alien/organ_owner_alien = organ_owner + organ_owner_alien.updatePlasmaDisplay() + UnregisterSignal(organ_owner, COMSIG_MOB_GET_STATUS_TAB_ITEMS) + +/obj/item/organ/alien/plasmavessel/proc/get_status_tab_item(mob/living/carbon/source, list/items) + SIGNAL_HANDLER + items += "Plasma Stored: [storedPlasma]/[max_plasma]" #define QUEEN_DEATH_DEBUFF_DURATION 2400 diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 82c27e95174b..5b316dad9cb6 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -28,6 +28,9 @@ if(!held_index) held_index = (active_hand_index % held_items.len)+1 + if(!isnum(held_index)) + CRASH("You passed [held_index] into swap_hand instead of a number. WTF man") + var/oindex = active_hand_index active_hand_index = held_index if(hud_used) @@ -415,14 +418,6 @@ var/turf/target = get_turf(loc) I.safe_throw_at(target,I.throw_range,I.throw_speed,src, force = move_force) -/mob/living/carbon/get_status_tab_items() - . = ..() - var/obj/item/organ/alien/plasmavessel/vessel = getorgan(/obj/item/organ/alien/plasmavessel) - if(vessel) - . += "Plasma Stored: [vessel.storedPlasma]/[vessel.max_plasma]" - if(locate(/obj/item/assembly/health) in src) - . += "Health: [health]" - /mob/living/carbon/get_proc_holders() . = ..() . += add_abilities_to_panel() diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index df9b5c22704d..9b50d1827724 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -391,6 +391,14 @@ if(M == src && check_self_for_injuries()) return + if(M.zone_selected == BODY_ZONE_PRECISE_MOUTH) + var/obj/item/clothing/mask/cigarette/theircig = wear_mask + var/obj/item/clothing/mask/cigarette/ourcig = M.wear_mask + if(istype(ourcig) && istype(theircig)) + if(ourcig.lit && !theircig.lit) + theircig.light(span_notice("[M] leans towards [src], lighting [p_their()] [theircig.name] with [M.p_their()] own.")) + return + if(body_position == LYING_DOWN) if(buckled) to_chat(M, "You need to unbuckle [src] first to do that!") diff --git a/code/modules/mob/living/carbon/human/consistent_human.dm b/code/modules/mob/living/carbon/human/consistent_human.dm index cecfe74b7cc8..e63adffeee48 100644 --- a/code/modules/mob/living/carbon/human/consistent_human.dm +++ b/code/modules/mob/living/carbon/human/consistent_human.dm @@ -2,7 +2,7 @@ create_dna() return //No randomisation -/mob/living/carbon/human/dummy/consistent/proc/seeded_randomization(seed = 0) +/mob/living/carbon/human/dummy/consistent/proc/seeded_randomization(seed = 0, species_list = null) seed = md5(seed) gender = list(MALE, FEMALE)[hex2num(copytext(seed, 1, 2)) % 2 + 1] @@ -38,5 +38,8 @@ dna.features["ipc_chassis"] = GLOB.ipc_chassis_list[hex2num(copytext(seed, 18, 19)) % length(GLOB.ipc_chassis_list) + 1] dna.features["ipc_screen"] = GLOB.ipc_screens_list[hex2num(copytext(seed, 19, 20)) % length(GLOB.ipc_screens_list) + 1] - var/species_id = GLOB.roundstart_races[hex2num(copytext(seed, 3, 4)) % length(GLOB.roundstart_races) + 1] - set_species(GLOB.species_list[species_id]) + if(!species_list) + species_list = GLOB.species_list + + var/species = species_list[hex2num(copytext(seed, 3, 4)) % length(species_list) + 1] + set_species(species) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 4bfe35b47060..cd80b13bcda6 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -61,7 +61,8 @@ . = ..() . += "Intent: [a_intent]" . += "Move Mode: [m_intent]" - if (internal) + + if (internal) //TODO: Refactor this to use the signal on tanks if (!internal.air_contents) qdel(internal) else @@ -69,32 +70,6 @@ . += "Internal Atmosphere Info: [internal.name]" . += "Tank Pressure: [internal.air_contents.return_pressure()]" . += "Distribution Pressure: [internal.distribute_pressure]" - /*WS begin - no cells in suits - if(istype(wear_suit, /obj/item/clothing/suit/space)) - var/obj/item/clothing/suit/space/S = wear_suit - . += "Thermal Regulator: [S.thermal_on ? "on" : "off"]" - . += "Cell Charge: [S.cell ? "[round(S.cell.percent(), 0.1)]%" : "!invalid!"]" - */ - var/mob/living/simple_animal/borer/B = has_brain_worms() //WS Begin - Borers - if(B && B.controlling) - . += "Borer Body Health: [B.health]" - . += "Chemicals: [B.chemicals]" //WS End - - if(mind) - var/datum/antagonist/changeling/changeling = mind.has_antag_datum(/datum/antagonist/changeling) - if(changeling) - . += "" - . += "Chemical Storage: [changeling.chem_charges]/[changeling.chem_storage]" - . += "Absorbed DNA: [changeling.absorbedcount]" - - //WS Begin - Display Ethereal Charge - if(istype(src)) - var/datum/species/ethereal/eth_species = src.dna?.species - if(istype(eth_species)) - var/obj/item/organ/stomach/ethereal/stomach = src.getorganslot(ORGAN_SLOT_STOMACH) - if(istype(stomach)) - . += "Crystal Charge: [round((stomach.crystal_charge / ETHEREAL_CHARGE_SCALING_MULTIPLIER), 0.1)]%" - //WS End //NINJACODE if(istype(wear_suit, /obj/item/clothing/suit/space/space_ninja)) //Only display if actually a ninja. diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index bbe40388435a..8a8677523fc1 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -268,6 +268,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) qdel(S) if(!GLOB.roundstart_races.len) GLOB.roundstart_races += "human" + sortList(GLOB.roundstart_races) /** * Checks if a species is eligible to be picked at roundstart. @@ -970,6 +971,8 @@ GLOBAL_LIST_EMPTY(roundstart_races) S = GLOB.ipc_screens_list[H.dna.features["ipc_screen"]] if("ipc_antenna") S = GLOB.ipc_antennas_list[H.dna.features["ipc_antenna"]] + if("ipc_tail") + S = GLOB.ipc_tail_list[H.dna.features["ipc_tail"]] if("ipc_chassis") S = GLOB.ipc_chassis_list[H.dna.features["ipc_chassis"]] if("ipc_brain") diff --git a/code/modules/mob/living/carbon/human/species_types/IPC.dm b/code/modules/mob/living/carbon/human/species_types/IPC.dm index dfa12f329054..381708757fd1 100644 --- a/code/modules/mob/living/carbon/human/species_types/IPC.dm +++ b/code/modules/mob/living/carbon/human/species_types/IPC.dm @@ -17,8 +17,8 @@ mutantlungs = null //no more collecting change for you mutantappendix = null mutant_organs = list(/obj/item/organ/cyberimp/arm/power_cord) - mutant_bodyparts = list("ipc_screen", "ipc_antenna", "ipc_chassis", "ipc_brain") - default_features = list("mcolor" = "#7D7D7D", "ipc_screen" = "Static", "ipc_antenna" = "None", "ipc_chassis" = "Morpheus Cyberkinetics (Custom)", "ipc_brain" = "Posibrain", "body_size" = "Normal") + mutant_bodyparts = list("ipc_screen", "ipc_antenna", "ipc_chassis", "ipc_tail", "ipc_brain") + default_features = list("mcolor" = "#7D7D7D", "ipc_screen" = "Static", "ipc_antenna" = "None", "ipc_chassis" = "Morpheus Cyberkinetics (Custom)", "ipc_tail" = "None", "ipc_brain" = "Posibrain", "body_size" = "Normal") meat = /obj/item/stack/sheet/plasteel{amount = 5} skinned_type = /obj/item/stack/sheet/metal{amount = 10} exotic_bloodtype = "Coolant" @@ -49,13 +49,14 @@ /// The last screen used when the IPC died. var/saved_screen var/datum/action/innate/change_screen/change_screen + var/has_screen = TRUE //do we have a screen. Used to determine if we mess with the screen or not /datum/species/ipc/random_name(unique) var/ipc_name = "[pick(GLOB.posibrain_names)]-[rand(100, 999)]" return ipc_name /datum/species/ipc/New() - . = ..() + // This is in new because "[HEAD_LAYER]" etc. is NOT a constant compile-time value. For some reason. // Why not just use HEAD_LAYER? Well, because HEAD_LAYER is a number, and if you try to use numbers as indexes, // BYOND will try to make it an ordered list. So, we have to use a string. This is annoying, but it's the only way to do it smoothly. @@ -64,17 +65,19 @@ ) /datum/species/ipc/on_species_gain(mob/living/carbon/C, datum/species/old_species, pref_load) // Let's make that IPC actually robotic. + . = ..() if(ishuman(C)) var/mob/living/carbon/human/H = C if(!change_screen) - change_screen = new - change_screen.Grant(H) + var/datum/species/ipc/species_datum = H.dna.species + if(species_datum?.has_screen) + change_screen = new + change_screen.Grant(H) if(H.dna.features["ipc_brain"] == "Man-Machine Interface") mutantbrain = /obj/item/organ/brain/mmi_holder else mutantbrain = /obj/item/organ/brain/mmi_holder/posibrain C.RegisterSignal(C, COMSIG_PROCESS_BORGCHARGER_OCCUPANT, TYPE_PROC_REF(/mob/living/carbon, charge)) - return ..() /datum/species/ipc/on_species_loss(mob/living/carbon/C) . = ..() @@ -83,6 +86,8 @@ C.UnregisterSignal(C, COMSIG_PROCESS_BORGCHARGER_OCCUPANT) /datum/species/ipc/spec_death(gibbed, mob/living/carbon/C) + if(!has_screen) + return saved_screen = C.dna.features["ipc_screen"] C.dna.features["ipc_screen"] = "BSOD" C.update_body() @@ -91,6 +96,8 @@ /datum/species/ipc/proc/post_death(mob/living/carbon/C) if(C.stat < DEAD) return + if(!has_screen) + return C.dna.features["ipc_screen"] = null // Turns off their monitor on death. C.update_body() @@ -110,6 +117,11 @@ if(!ishuman(owner)) return var/mob/living/carbon/human/H = owner + var/datum/species/ipc/species_datum = H.dna.species + if(!species_datum) + return + if(!species_datum.has_screen) + return H.dna.features["ipc_screen"] = screen_choice H.eye_color = sanitize_hexcolor(color_choice) H.update_body() @@ -215,14 +227,17 @@ /datum/species/ipc/spec_revival(mob/living/carbon/human/H) - H.dna.features["ipc_screen"] = "BSOD" - H.update_body() + if(has_screen) + H.dna.features["ipc_screen"] = "BSOD" + H.update_body() H.say("Reactivating [pick("core systems", "central subroutines", "key functions")]...") addtimer(CALLBACK(src, PROC_REF(post_revival), H), 6 SECONDS) /datum/species/ipc/proc/post_revival(mob/living/carbon/human/H) if(H.stat == DEAD) return + if(!has_screen) + return H.dna.features["ipc_screen"] = saved_screen H.update_body() @@ -231,12 +246,39 @@ var/datum/sprite_accessory/ipc_chassis/chassis_of_choice = GLOB.ipc_chassis_list[C.dna.features["ipc_chassis"]] + if(chassis_of_choice.use_eyes) + LAZYREMOVE(species_traits, NOEYESPRITES) + LAZYADD(species_traits, EYECOLOR) + C.update_body() + + if(!chassis_of_choice.has_screen) + has_screen = FALSE + C.dna.features["ipc_screen"] = null + C.update_body() + + if(chassis_of_choice.is_digi) + digitigrade_customization = DIGITIGRADE_FORCED + bodytype = BODYTYPE_DIGITIGRADE + for(var/obj/item/bodypart/BP as anything in C.bodyparts) //Override bodypart data as necessary if(BP.limb_id=="synth") BP.uses_mutcolor = chassis_of_choice.color_src ? TRUE : FALSE + + if(chassis_of_choice.icon) + BP.static_icon = chassis_of_choice.icon + BP.icon = chassis_of_choice.icon + + if(chassis_of_choice.has_overlay) + BP.overlay_icon_state = TRUE + + if(chassis_of_choice.is_digi) + if(istype(BP,/obj/item/bodypart/leg)) + BP.bodytype = BODYTYPE_HUMANOID | BODYTYPE_ROBOTIC | BODYTYPE_DIGITIGRADE //i hate this so much + if(BP.uses_mutcolor) BP.should_draw_greyscale = TRUE BP.species_color = C.dna?.features["mcolor"] + BP.species_secondary_color = C.dna?.features["mcolor2"] BP.limb_id = chassis_of_choice.limbs_id BP.name = "\improper[chassis_of_choice.name] [parse_zone(BP.body_zone)]" diff --git a/code/modules/mob/living/carbon/human/species_types/spider.dm b/code/modules/mob/living/carbon/human/species_types/spider.dm index f7ae4f6bef10..847d6ad74f3f 100644 --- a/code/modules/mob/living/carbon/human/species_types/spider.dm +++ b/code/modules/mob/living/carbon/human/species_types/spider.dm @@ -185,7 +185,6 @@ GLOBAL_LIST_INIT(spider_last, world.file2list("strings/names/spider_last.txt")) if (H.nutrition >= nutrition_threshold) to_chat(H, "You pull out a strand from your spinneret, ready to wrap a target.
\ (Press ALT+CLICK or MMB on the target to start wrapping.)
") - H.adjust_nutrition(E.spinner_rate * -0.5) addtimer(VARSET_CALLBACK(E, web_ready, TRUE), E.web_cooldown) RegisterSignal(H, list(COMSIG_MOB_MIDDLECLICKON, COMSIG_MOB_ALTCLICKON), PROC_REF(cocoonAtom)) return @@ -217,7 +216,7 @@ GLOBAL_LIST_INIT(spider_last, world.file2list("strings/names/spider_last.txt")) if(!do_after(H, 10 SECONDS, 1, A)) to_chat(H, "Your web spinning was interrupted!") return - H.adjust_nutrition(E.spinner_rate * -3) + H.adjust_nutrition(E.spinner_rate * -3.5) var/obj/structure/spider_player/cocoon/C = new(A.loc) if(isliving(A)) C.icon_state = pick("cocoon_large1","cocoon_large2","cocoon_large3") @@ -228,18 +227,3 @@ GLOBAL_LIST_INIT(spider_last, world.file2list("strings/names/spider_last.txt")) A.forceMove(C) H.visible_message("[H] wraps [A] into a cocoon!") return - -/datum/reagent/mutationtoxin/arachnid - name = "Arachnid Mutation Toxin" - description = "A glowing toxin." - color = "#5EFF3B" //RGB: 94, 255, 59 - race = /datum/species/spider - process_flags = ORGANIC | SYNTHETIC //WS Edit - IPCs - taste_description = "silk" - -/datum/chemical_reaction/mutationtoxin/arachnid - results = list(/datum/reagent/mutationtoxin/arachnid = 1) - required_reagents = list( - /datum/reagent/mutationtoxin/unstable = 1, - /datum/reagent/toxin/heparin = 10 - ) 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 ebc923c01075..070894a92bee 100644 --- a/code/modules/mob/living/carbon/human/species_types/vampire.dm +++ b/code/modules/mob/living/carbon/human/species_types/vampire.dm @@ -132,3 +132,15 @@ charge_max = 50 cooldown_min = 50 shapeshift_type = /mob/living/simple_animal/hostile/retaliate/bat + +/obj/item/organ/internal/heart/vampire/Insert(mob/living/carbon/receiver, special, drop_if_replaced) + . = ..() + RegisterSignal(receiver, COMSIG_MOB_GET_STATUS_TAB_ITEMS, PROC_REF(get_status_tab_item)) + +/obj/item/organ/internal/heart/vampire/Remove(mob/living/carbon/heartless, special) + . = ..() + UnregisterSignal(heartless, COMSIG_MOB_GET_STATUS_TAB_ITEMS) + +/obj/item/organ/internal/heart/vampire/proc/get_status_tab_item(mob/living/carbon/source, list/items) + SIGNAL_HANDLER + items += "Blood Level: [source.blood_volume]/[BLOOD_VOLUME_MAXIMUM]" diff --git a/code/modules/mob/living/carbon/human/species_types/vox.dm b/code/modules/mob/living/carbon/human/species_types/vox.dm index e1a0107bc0ad..1f3a00e8641b 100644 --- a/code/modules/mob/living/carbon/human/species_types/vox.dm +++ b/code/modules/mob/living/carbon/human/species_types/vox.dm @@ -118,6 +118,7 @@ /datum/action/innate/tail_hold name = "Tail Hold" desc = "Store an item in your tail's grip." + button_icon_state = "tail_hold" var/obj/item/held_item var/mutable_appearance/held_item_overlay diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index be79cf7184ab..405cda36580c 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -67,7 +67,7 @@ var/can_receive = TRUE var/obj/item/card/id/access_card = null var/chassis = "repairbot" - var/list/possible_chassis = list("cat" = TRUE, "mouse" = TRUE, "monkey" = TRUE, "corgi" = FALSE, "fox" = FALSE, "repairbot" = TRUE, "rabbit" = TRUE, "bat" = FALSE, "butterfly" = FALSE, "hawk" = FALSE, "lizard" = FALSE, "duffel" = TRUE, "snake" = FALSE) //assoc value is whether it can be picked up. + var/list/possible_chassis = list("bat" = TRUE, "butterfly" = TRUE, "carp" = TRUE, "cat" = TRUE, "corgi" = TRUE, "corgi_puppy" = TRUE, "crow" = TRUE, "duffel" = TRUE, "fox" = TRUE, "frog" = TRUE, "hawk" = TRUE, "lizard" = TRUE, "monkey" = TRUE, "mothroach" = TRUE, "mouse" = TRUE, "rabbit" = TRUE, "repairbot" = TRUE, "snake" = TRUE, "spider" = TRUE) //assoc value is whether it can be picked up. var/emitterhealth = 20 var/emittermaxhealth = 20 diff --git a/code/modules/mob/living/silicon/pai/pai_shell.dm b/code/modules/mob/living/silicon/pai/pai_shell.dm index ca65a416691c..31a807b319b2 100644 --- a/code/modules/mob/living/silicon/pai/pai_shell.dm +++ b/code/modules/mob/living/silicon/pai/pai_shell.dm @@ -72,11 +72,18 @@ holoform = FALSE set_resting(resting) + +//Sets a new holochassis skin based on a pAI's choice + /mob/living/silicon/pai/proc/choose_chassis() - if(!isturf(loc) && loc != card) - to_chat(src, "You can not change your holochassis composite while not on the ground or in your card!") - return FALSE - var/choice = input(src, "What would you like to use for your holochassis composite?") as null|anything in sortList(possible_chassis) + var/list/skins = list() + for(var/holochassis_option in possible_chassis) + var/image/item_image = image(icon = src.icon, icon_state = holochassis_option) + skins += list("[holochassis_option]" = item_image) + sortList(skins) + + var/atom/anchor = get_atom_on_turf(src) + var/choice = show_radial_menu(src, anchor, skins, custom_check = CALLBACK(src, PROC_REF(check_menu), anchor), radius = 40, require_near = TRUE) if(!choice) return FALSE chassis = choice @@ -85,6 +92,18 @@ update_resting() to_chat(src, "You switch your holochassis projection composite to [chassis].") +//Checks if we are allowed to interact with a radial menu + +/mob/living/silicon/pai/proc/check_menu(atom/anchor) + if(incapacitated()) + return FALSE + if(get_turf(src) != get_turf(anchor)) + return FALSE + if(!isturf(loc) && loc != card) + to_chat(src, "You can not change your holochassis composite while not on the ground or in your card!") + return FALSE + return TRUE + /mob/living/silicon/pai/update_resting() . = ..() if(resting) diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm index a099c05488fa..08e41f3bee44 100644 --- a/code/modules/mob/living/silicon/pai/software.dm +++ b/code/modules/mob/living/silicon/pai/software.dm @@ -29,7 +29,7 @@ GLOBAL_LIST_INIT(pai_faces, list( "laugh", "lenny", "loss", - "michevious", + "mischievous", "missingno", "mistake", "moth", @@ -53,6 +53,60 @@ GLOBAL_LIST_INIT(pai_faces, list( "woozy", )) +// I AM A FAKE AND A FRAUD +// in order to get radials to work, the below list utilizes an entirely new .dmi that combines the base pAI card sprite along with the two overlays. +// if you want to add a pAI screen in future, you will need to use one of the two bases I included in aicardsradial.dmi in addition to adding the +// screen sprite in aicards.dmi +// I pray to god someone more talented than me can fix this hack in future + +GLOBAL_LIST_INIT(pai_faces_icons, list( + ":>" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-:>"), + "=_=" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-=_="), + "angry" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-angry"), + "ashamed" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-ashamed"), + "bookworm" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-bookworm"), + "boykisser" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-boykisser"), + "cat" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-cat"), + "clueless" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-clueless"), + "concerned" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-concerned"), + "dread" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-dread"), + "estatic" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-estatic"), + "exclaim" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-exclaim"), + "eye" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-eye"), + "eyewall" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-eyewall"), + "face" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-face"), + "fangs" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-fangs"), + "flushed" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-flushed"), + "foureyes" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-foureyes"), + "greenjary" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-greenjary"), + "happy" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-happy"), + "heart" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-heart"), + "laugh" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-laugh"), + "lenny" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-lenny"), + "loss" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-loss"), + "mischievous" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-mischievous"), + "missingno" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-missingno"), + "mistake" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-mistake"), + "moth" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-moth"), + "moyai" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-moyai"), + "neko" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-neko"), + "null" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-null"), + "o.o" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-o.o"), + "off" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-off"), + "pleading" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-pleading"), + "question" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-question"), + "sadcat" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-sadcat"), + "smug" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-smug"), + "snek" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-snek"), + "spiral" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-spiral"), + "sunglasses" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-sunglasses"), + "syndisnake" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-syndisnake"), //what if cybersun was right all along actually + "twoeyes" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-twoeyes"), + "T_T" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-T_T"), + "what" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-what"), + "wink" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-wink"), + "woozy" = image(icon = 'icons/obj/aicardsradial.dmi', icon_state = "pai-woozy"), + )) /mob/living/silicon/pai/var/list/available_software = list( //WS -- idk what to do about removing code so i'm just putting this note here to say, removes messanger and manifest, thet get it for free now //Nightvision @@ -204,7 +258,8 @@ GLOBAL_LIST_INIT(pai_faces, list( radio.attack_self(src) if("image") // Set pAI card display face - var/new_emotion = input("Select your new display image.", "Display Image", "null") in sortList(GLOB.pai_faces) + var/atom/anchor = get_atom_on_turf(src) + var/new_emotion = show_radial_menu(usr, anchor, GLOB.pai_faces_icons, radius = 40, require_near = TRUE) card.set_emotion(new_emotion) if("news") diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 44bfe5626754..4164844c0d8e 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -323,7 +323,6 @@ /mob/living/silicon/robot/get_status_tab_items() . = ..() - . += "" if(cell) . += "Charge Left: [cell.charge]/[cell.maxcharge]" else diff --git a/code/modules/mob/living/simple_animal/corpse.dm b/code/modules/mob/living/simple_animal/corpse.dm index daac95f38ba4..aa49c6e52b59 100644 --- a/code/modules/mob/living/simple_animal/corpse.dm +++ b/code/modules/mob/living/simple_animal/corpse.dm @@ -167,9 +167,10 @@ back = /obj/item/minigunpack /obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper/heavy/gunless - outfit = /datum/outfit/russiancorpse/trooper/heavy/gunless + outfit = /datum/outfit/frontier/trooper/heavy/gunless -/datum/outfit/russiancorpse/trooper/heavy/gunless +/datum/outfit/frontier/trooper/heavy/gunless + name = "Frontiersman Heavy Corpse (Gunless)" back = null /obj/effect/mob_spawn/human/corpse/wizard @@ -248,18 +249,5 @@ /obj/effect/mob_spawn/human/corpse/solgov/sonnensoldner name = "SolGov Sonnensoldner" id_job = "SolGov Sonnensoldner" - outfit = /datum/outfit/solgov/sonnensoldner + outfit = /datum/outfit/job/solgov/sonnensoldner id_access_list = list(ACCESS_SOLGOV) - -/datum/outfit/solgov/sonnensoldner - name = "SolGov Sonnensoldner" - uniform = /obj/item/clothing/under/solgov - suit = /obj/item/clothing/suit/armor/vest/bulletproof/solgov - shoes = /obj/item/clothing/shoes/jackboots - gloves = /obj/item/clothing/gloves/color/black - ears = /obj/item/radio/headset - suit_store = null - head = /obj/item/clothing/head/solgov/sonnensoldner - back = /obj/item/storage/backpack - id = /obj/item/card/id/solgov - backpack_contents = null diff --git a/code/modules/mob/living/simple_animal/hostile/frontiersman.dm b/code/modules/mob/living/simple_animal/hostile/frontiersman.dm index 1a71ed52da78..3d33bae0aca1 100644 --- a/code/modules/mob/living/simple_animal/hostile/frontiersman.dm +++ b/code/modules/mob/living/simple_animal/hostile/frontiersman.dm @@ -34,12 +34,12 @@ icon_state = "frontiersmanranged" icon_living = "frontiersmanranged" loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged, - /obj/item/gun/ballistic/revolver/nagant) + /obj/item/gun/ballistic/revolver) ranged = 1 retreat_distance = 5 minimum_distance = 5 projectilesound = 'sound/weapons/gun/revolver/shot.ogg' - casingtype = /obj/item/ammo_casing/n762_38 + casingtype = /obj/item/ammo_casing/a357 /mob/living/simple_animal/hostile/frontier/ranged/neutered loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged) @@ -48,8 +48,8 @@ icon_state = "frontiersmanrangedrifle" icon_living = "frontiersmanrangedrifle" loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged, - /obj/item/gun/ballistic/rifle/boltaction) - casingtype = /obj/item/ammo_casing/a762_54 + /obj/item/gun/ballistic/rifle/illestren) + casingtype = /obj/item/ammo_casing/a8_50r projectilesound = 'sound/weapons/gun/rifle/mosin.ogg' /mob/living/simple_animal/hostile/frontier/ranged/mosin/neutered @@ -63,7 +63,7 @@ projectilesound = 'sound/weapons/gun/shotgun/shot.ogg' casingtype = /obj/item/ammo_casing/shotgun/buckshot loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper, - /obj/item/gun/ballistic/shotgun/lethal) + /obj/item/gun/ballistic/shotgun/brimstone) /mob/living/simple_animal/hostile/frontier/ranged/trooper/neutered loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper) @@ -86,8 +86,8 @@ icon_living = "frontiersmanrangedmosin" loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper, - /obj/item/gun/ballistic/rifle/boltaction) - casingtype = /obj/item/ammo_casing/a762_54 + /obj/item/gun/ballistic/rifle/illestren) + casingtype = /obj/item/ammo_casing/a8_50r projectilesound = 'sound/weapons/gun/rifle/mosin.ogg' /mob/living/simple_animal/hostile/frontier/ranged/trooper/rifle/neutered 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 474c9c5d9ca6..892fba0d61f8 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 @@ -885,7 +885,6 @@ ) if("Shadow") mob_species = /datum/species/shadow - r_pocket = /obj/item/reagent_containers/pill/shadowtoxin neck = /obj/item/clothing/accessory/medal/plasma/nobel_science uniform = /obj/item/clothing/under/color/black shoes = /obj/item/clothing/shoes/sneakers/black @@ -903,7 +902,7 @@ suit = /obj/item/clothing/suit/armor/roumain head = /obj/item/clothing/head/cowboy/sec/roumain if(prob(25)) - suit_store = /obj/item/gun/ballistic/shotgun/winchester + suit_store = /obj/item/gun/ballistic/shotgun/flamingarrow r_pocket = /obj/item/book/manual/trickwines_4_brewers belt = pick(list(/obj/item/kitchen/knife/hunting = 1, /obj/item/gun/ballistic/derringer = 1)) back = /obj/item/storage/backpack/cultpack diff --git a/code/modules/mob/living/simple_animal/hostile/survivors.dm b/code/modules/mob/living/simple_animal/hostile/survivors.dm index c0601050c54c..a1b52f981cec 100644 --- a/code/modules/mob/living/simple_animal/hostile/survivors.dm +++ b/code/modules/mob/living/simple_animal/hostile/survivors.dm @@ -324,7 +324,7 @@ suit_store = null if (survivor_type == "hunter") if(prob(20)) - new /obj/item/gun/ballistic/rifle/boltaction/polymer(loc) + new /obj/item/gun/ballistic/rifle/polymer(loc) else visible_message("The hunter's weapon shatters as they impact the ground!") suit_store = null diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index d63c300e8ba6..bc22f78ae7a3 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -155,9 +155,7 @@ /mob/living/simple_animal/parrot/get_status_tab_items() . = ..() - . += "" . += "Held Item: [held_item]" - . += "Mode: [a_intent]" /mob/living/simple_animal/parrot/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans, list/message_mods = list()) . = ..() diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index c21a2a6f365d..e4ead25880f9 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -374,8 +374,8 @@ /mob/living/simple_animal/get_status_tab_items() . = ..() - . += "" . += "Health: [round((health / maxHealth) * 100)]%" + . += "Intent: [a_intent]" /mob/living/simple_animal/proc/drop_loot() if(loot.len) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 9af72b034998..5a2e3731a703 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -843,7 +843,8 @@ /// Adds this list to the output to the stat browser /mob/proc/get_status_tab_items() - . = list() + . = list("") //we want to offset unique stuff from standard stuff + SEND_SIGNAL(src, COMSIG_MOB_GET_STATUS_TAB_ITEMS, .) /// Gets all relevant proc holders for the browser statpenl /mob/proc/get_proc_holders() @@ -990,7 +991,7 @@ mob_spell_list -= S qdel(S) if(client) - client << output(null, "statbrowser:check_spells") + client.stat_panel.send_message("check_spells") ///Return any anti magic atom on this mob that matches the magic type /mob/proc/anti_magic_check(magic = TRUE, holy = FALSE, tinfoil = FALSE, chargecost = 1, self = FALSE) diff --git a/code/modules/paperwork/fax.dm b/code/modules/paperwork/fax.dm index b1696a27fca0..a4881fdfee38 100644 --- a/code/modules/paperwork/fax.dm +++ b/code/modules/paperwork/fax.dm @@ -18,10 +18,6 @@ var/seconds_electrified = MACHINE_NOT_ELECTRIFIED /// If true, the fax machine is jammed and needs cleaning var/jammed = FALSE - /// Determines the possibility of sending papers to the additional faxes. - var/access_additional_faxes = FALSE - /// Defines a list of accesses whose owners can open a connection with the additional faxes. - var/static/access_additional_faxes_required = list(ACCESS_HEADS, ACCESS_LAWYER, ACCESS_SECURITY) /// Necessary to hide syndicate faxes from the general list. Doesn't mean he's EMAGGED! var/frontier_network = FALSE /// True if the fax machine should be visible to other fax machines in general. @@ -53,23 +49,47 @@ /obj/item/holochip, /obj/item/card, ) + /// Internal radio for announcing over comms + var/obj/item/radio/radio + /// Radio channel to speak into + var/radio_channel + /// Cooldown for aformentioned radio, prevents radio spam + COOLDOWN_DECLARE(radio_cooldown) + + /// List with a fake-networks(not a fax actually), for request manager. + var/list/special_networks = list( + list(fax_name = "Nanotrasen Central Command", fax_id = "nanotrasen", color = "green", emag_needed = FALSE), + list(fax_name = "IRMG Mothership", fax_id = "inteq", color = "yellow", emag_needed = FALSE), + list(fax_name = "Solarian Confederation Frontier Affairs", fax_id = "solgov", color = "teal", emag_needed = FALSE), + list(fax_name = "Roumain Council of Huntsmen", fax_id = "roumain", color = "brown", emag_needed = FALSE), + list(fax_name = "Colonial League Leadership", fax_id = "minutemen", color = "blue", emag_needed = FALSE), + list(fax_name = "Syndicate Coalition Coordination Center", fax_id = "syndicate", color = "red", emag_needed = FALSE), + list(fax_name = "Frontiersmen Communications Quartermaster", fax_id = "frontiersmen", color = "black", emag_needed = TRUE) + ) + // should we make our message be important and be recieved in admin faxes + var/admin_fax_id /obj/machinery/fax/Initialize(mapload) . = ..() GLOB.fax_machines += src if(!fax_id) fax_id = SSnetworks.make_address() - if(fax_name == initial(fax_name)) + if(fax_name == initial(fax_name) && !admin_fax_id) fax_name = "[get_area_name(src)] Fax Machine" wires = new /datum/wires/fax(src) -/obj/machinery/fax/hacked - set_obj_flags = "EMAGGED" - allow_exotic_faxes = TRUE - access_additional_faxes = TRUE + radio = new(src) + radio.subspace_transmission = TRUE + radio.canhear_range = 0 + // Override in subtypes // no + radio.on = TRUE -/obj/machinery/fax/frontiersmen - frontier_network = TRUE +/obj/machinery/fax/ruin + visible_to_network = FALSE + +/obj/machinery/fax/ruin/Initialize(mapload) + . = ..() + fax_name = "Unregistered Fax Machine " + fax_id /obj/machinery/fax/Destroy() GLOB.fax_machines -= src @@ -113,6 +133,20 @@ obj_flags |= EMAGGED to_chat(user, "The screen of the [src] flickers!") +/** + * EMP Interaction + */ +/obj/machinery/fax/emp_act(severity) + . = ..() + if(. & EMP_PROTECT_SELF) + return + allow_exotic_faxes = !allow_exotic_faxes + visible_message("[src] [allow_exotic_faxes ? "starts beeping" : "stops beeping"] ominously[allow_exotic_faxes ? "..." : "."]") + +/** + * Unanchor/anchor + */ + /obj/machinery/fax/wrench_act(mob/living/user, obj/item/tool) . = ..() default_unfasten_wrench(user, tool) @@ -161,27 +195,6 @@ return return ..() -// Checks if the card has access to switch "legal" faxes of administrators. -/obj/machinery/fax/proc/access_additional_faxes_check(mob/living/user) - if(isAdminObserver(user)) - return TRUE - - var/obj/item/card/id/used_card = user.get_idcard(TRUE) - if(used_card) - // We check if it makes sense to check access at all. - if(!access_additional_faxes_required || !used_card.access) - return FALSE - - for(var/requested_access in access_additional_faxes_required) - if(requested_access in used_card.access) - return TRUE - return FALSE - -// Switches access to the "legal" administrator's fax list. Access to the "illegal" is switched by hacking. -/obj/machinery/fax/proc/access_additional_faxes_toggle() - access_additional_faxes = !access_additional_faxes - say("Bluespace channel communication [access_additional_faxes ? "opened" : "closed"].") - /** * Attempts to clean out a jammed machine using a passed item. * Returns true if successful. @@ -237,12 +250,6 @@ ui.open() ui.set_autoupdate(TRUE) -/obj/machinery/fax/ui_static_data(mob/user) - var/list/data = list() - data["additional_faxes_list"] = GLOB.additional_faxes_list - data["frontier_faxes_list"] = GLOB.frontier_faxes_list - return data - /obj/machinery/fax/ui_data(mob/user) var/list/data = list() //Record a list of all existing faxes. @@ -264,12 +271,11 @@ data["fax_id"] = fax_id data["fax_name"] = fax_name data["visible"] = visible_to_network - data["access_additional_faxes"] = access_additional_faxes - data["сan_switch_access"] = access_additional_faxes_check(user) // In this case, we don't care if the fax is hacked or in the syndicate's network. The main thing is to check the visibility of other faxes. data["frontier_network"] = (frontier_network || (obj_flags & EMAGGED)) data["has_paper"] = !!loaded_item_ref?.resolve() data["fax_history"] = fax_history + data["special_faxes"] = special_networks return data /obj/machinery/fax/ui_act(action, list/params) @@ -287,8 +293,6 @@ loaded_item_ref = null update_icon() return TRUE - if("access_additional_faxes_toggle") - access_additional_faxes_toggle() if("send") var/obj/item/loaded = loaded_item_ref?.resolve() if(!loaded) @@ -299,17 +303,31 @@ loaded_item_ref = null update_icon() return TRUE - if("send_to_additional_fax") - var/obj/item/loaded = loaded_item_ref?.resolve() - if(!loaded) + if("send_special") + var/obj/item/paper/fax_paper = loaded_item_ref?.resolve() + if(!fax_paper) + return + if(!istype(fax_paper)) + to_chat(usr, icon2html(src.icon, usr) + "ERROR: Failed to send fax.") return - if(istype(loaded, /obj/item/paper)) - if(send_to_additional_faxes(loaded, usr, params["name"], params["color"])) - loaded_item_ref = null - update_icon() - return TRUE - else - say("The destination fax blocks the reception of this item.") + + fax_paper.request_state = TRUE + fax_paper.loc = null + + INVOKE_ASYNC(src, PROC_REF(animate_object_travel), fax_paper, "fax_receive", find_overlay_state(fax_paper, "send")) + history_add("Send", params["name"]) + + GLOB.requests.fax_request(usr.client, "sent a fax message from [fax_name]/[fax_id] to [params["name"]]", fax_paper) + to_chat(GLOB.admins, "[icon2html(src.icon, GLOB.admins)]FAX REQUEST: [ADMIN_FULLMONTY(usr)]: sent a fax message from [fax_name]/[fax_id][ADMIN_FLW(src)] to [html_encode(params["name"])] [ADMIN_SHOW_PAPER(fax_paper)]") + log_fax(fax_paper, params["id"], params["name"]) + loaded_item_ref = null + + for(var/obj/machinery/fax/fax as anything in GLOB.fax_machines) + if(fax.admin_fax_id == params["id"]) + fax.receive(fax_paper, fax_name) + break + update_appearance() + if("history_clear") history_clear() return TRUE @@ -349,40 +367,12 @@ balloon_alert(usr, "destination port jammed") playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, -9) return FALSE - fax.receive(loaded, fax_name) - playback_sending(loaded, fax.fax_name) + fax.receive(loaded, fax_name, important = admin_fax_id) + history_add("Send", fax.fax_name) + INVOKE_ASYNC(src, PROC_REF(animate_object_travel), loaded, "fax_receive", find_overlay_state(loaded, "send")) return TRUE return FALSE -/** - * The procedure for sending a item to virtual admins fax machine. - * - * This procedure is similar to the send procedure except that it sends the item to - * a "virtual" fax to a special administrator list. - * Arguments: - * * loaded - The item to be sent. - * * sender - Reference to the sender's substance. - * * receiver_name - The recipient's fax name, which will be displayed in the administrator's list. - * * receiver_color - The color the receiver_name will be colored in. - */ -/obj/machinery/fax/proc/send_to_additional_faxes(obj/item/loaded, mob/sender, receiver_name, receiver_color) - GLOB.fax_manager.receive_request(sender, src, receiver_name, loaded, receiver_color) - playback_sending(loaded, receiver_name) - log_fax(loaded, "ADDITIONAL", receiver_name) - return TRUE - -/** - * The procedure for playing the animation. - * - * Procedure called to add to the history of sending messages, playing the sending animation. - * Arguments: - * * loaded - Sending item to determine the animation.. - * * receiver_name - Recipient's name to be added to the message history. - */ -/obj/machinery/fax/proc/playback_sending(obj/item/loaded, receiver_name) - history_add("Send", receiver_name) - INVOKE_ASYNC(src, PROC_REF(animate_object_travel), loaded, "fax_receive", find_overlay_state(loaded, "send")) - /** * Procedure for accepting papers from another fax machine. * @@ -391,7 +381,7 @@ * * loaded - The object to be printed. * * sender_name - The sender's name, which will be displayed in the message and recorded in the history of operations. */ -/obj/machinery/fax/proc/receive(obj/item/loaded, sender_name) +/obj/machinery/fax/proc/receive(obj/item/loaded, sender_name, important = FALSE) playsound(src, 'sound/items/poster_being_created.ogg', 20, FALSE) INVOKE_ASYNC(src, PROC_REF(animate_object_travel), loaded, "fax_receive", find_overlay_state(loaded, "receive")) say("Received correspondence from [sender_name].") @@ -504,3 +494,45 @@ do_sparks(5, TRUE, src) var/check_range = TRUE return electrocute_mob(user, get_area(src), src, 0.7, check_range) + +/obj/machinery/fax/frontiersmen + frontier_network = TRUE + visible_to_network = FALSE + +/obj/machinery/fax/admin + name = "Central Command Fax Machine" + fax_name = "Nanotrasen Central Command" + radio_channel = RADIO_CHANNEL_CENTCOM + visible_to_network = FALSE + admin_fax_id = "nanotrasen" + +/obj/machinery/fax/admin/solgov + name = "SolGov Frontier Affairs Fax Machine" + fax_name = "Solarian Confederation Frontier Affairs" + admin_fax_id = "solgov" + +/obj/machinery/fax/admin/syndicate + name = "Syndicate Coordination Fax Machine" + fax_name = "Syndicate Coordination Center" + admin_fax_id = "syndicate" + +/obj/machinery/fax/admin/inteq + name = "IRMG Fax Machine" + fax_name = "IRMG Mothership" + admin_fax_id = "inteq" + +/obj/machinery/fax/admin/minutemen + name = "CLIP HiComm Fax Machine" + fax_name = "Colonial League Leadership" + admin_fax_id = "minutemen" + +/obj/machinery/fax/admin/roumain + name = "Huntsman Council Fax Machine" + fax_name = "Saint-Roumain Council of Huntsmen" + admin_fax_id = "roumain" + +/obj/machinery/fax/admin/frontiersmen + name = "old fax machine" + fax_name = "Frontiersmen Communications Quartermaster" + admin_fax_id = "frontiersmen" + frontier_network = TRUE diff --git a/code/modules/paperwork/fax_manager.dm b/code/modules/paperwork/fax_manager.dm deleted file mode 100644 index 0107e440bec2..000000000000 --- a/code/modules/paperwork/fax_manager.dm +++ /dev/null @@ -1,154 +0,0 @@ -GLOBAL_DATUM_INIT(fax_manager, /datum/fax_manager, new) - -/** - * Fax Request Manager - * - * In its functionality it is similar to the usual Request Manager, but respectively for faxes. - * This manager allows you to send faxes on behalf of certain virtual faxes to all existing faxes, - * as well as receive faxes in their name from the players. - */ -/datum/fax_manager - /// A list that contains faxes from players and other related information. You can view the filling of its fields in the procedure receive_request. - var/list/requests = list() - -/datum/fax_manager/Destroy(force, ...) - QDEL_LIST(requests) - return ..() - -/datum/fax_manager/ui_interact(mob/user, datum/tgui/ui = null) - ui = SStgui.try_update_ui(user, src, ui) - if(!ui) - ui = new(user, src, "FaxManager") - ui.open() - ui.set_autoupdate(TRUE) - -/datum/fax_manager/ui_state(mob/user) - return GLOB.admin_state - -/datum/fax_manager/ui_static_data(mob/user) - var/list/data = list() - //Record additional faxes on a separate list - data["additional_faxes"] = GLOB.additional_faxes_list + GLOB.frontier_faxes_list - return data - -/datum/fax_manager/ui_data(mob/user) - var/list/data = list() - //Record a list of all existing faxes. - for(var/obj/machinery/fax/fax as anything in GLOB.fax_machines) - var/list/fax_data = list() - fax_data["fax_name"] = fax.fax_name - fax_data["fax_id"] = fax.fax_id - fax_data["frontier_network"] = fax.frontier_network - data["faxes"] += list(fax_data) - for(var/list/requested in requests) - var/list/request = list() - request["id_message"] = requested["id_message"] - request["time"] = requested["time"] - var/mob/sender = requested["sender"] - request["sender_name"] = sender.name - request["sender_fax_id"] = requested["sender_fax_id"] - request["sender_fax_name"] = requested["sender_fax_name"] - request["receiver_fax_name"] = requested["receiver_fax_name"] - data["requests"] += list(request) - return data - -/datum/fax_manager/ui_act(action, list/params) - . = ..() - if(.) - return - var/datum/admins/admin_datum = GLOB.admin_datums[usr.ckey] - - switch(action) - if("send") - for(var/obj/machinery/fax/fax as anything in GLOB.fax_machines) - if(fax.fax_id == params["fax_id"]) - var/obj/item/paper/paper = new() - paper.add_raw_text(params["message"]) - paper.update_appearance() - fax.receive(paper, params["fax_name"]) - return TRUE - if("flw_fax") - for(var/obj/machinery/fax/fax as anything in GLOB.fax_machines) - if(fax.fax_id == params["fax_id"]) - admin_datum.admin_follow(fax) - return TRUE - if("read_message") - var/list/request = get_request(params["id_message"]) - var/obj/item/paper/request/paper = request["paper"] - paper.ui_interact(usr) - return TRUE - if("flw") - var/list/request = get_request(params["id_message"]) - admin_datum.admin_follow(request["sender"]) - return TRUE - if("pp") - var/list/request = get_request(params["id_message"]) - usr.client.holder.show_player_panel(request["sender"]) - return TRUE - if("vv") - var/list/request = get_request(params["id_message"]) - usr.client.debug_variables(request["sender"]) - return TRUE - if("sm") - var/list/request = get_request(params["id_message"]) - usr.client.cmd_admin_subtle_message(request["sender"]) - return TRUE - if("logs") - var/list/request = get_request(params["id_message"]) - if(!ismob(request["sender"])) - to_chat(usr, "This can only be used on instances of type /mob.") - return TRUE - show_individual_logging_panel(request["sender"], null, null) - return TRUE - if("smite") - var/list/request = get_request(params["id_message"]) - if(!check_rights(R_FUN)) - to_chat(usr, "Insufficient permissions to smite, you require +FUN") - return TRUE - var/mob/living/carbon/human/H = request["sender"] - if (!H || !istype(H)) - to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human") - return TRUE - usr.client.smite(H) - return TRUE - -/datum/fax_manager/proc/get_request(id_message) - for(var/list/request in requests) - if(request["id_message"] == id_message) - return request - -/datum/fax_manager/proc/receive_request(mob/sender, obj/machinery/fax/sender_fax, receiver_fax_name, obj/item/paper/paper, receiver_color) - var/list/request = list() - var/obj/item/paper/request/message = new() - request["id_message"] = requests.len - request["time"] = game_timestamp() - request["sender"] = sender - request["sender_fax_id"] = sender_fax.fax_id - request["sender_fax_name"] = sender_fax.fax_name - request["receiver_fax_name"] = receiver_fax_name - message.copy_properties(paper) - request["paper"] = message - requests += list(request) - var/msg = "\"[sanitize(receiver_fax_name)]\" fax received a message from \"[sanitize(sender_fax.fax_name)]\" fax SENT BY [ADMIN_FULLMONTY(sender)] (Open Fax Manager)" - for(var/client/C in GLOB.admins) - if(C.prefs.chat_toggles & CHAT_PRAYER) - to_chat(C, msg) - for(var/client/admin in GLOB.admins) - if((admin.prefs.chat_toggles & CHAT_PRAYER) && (admin.prefs.toggles & SOUND_PRAYERS)) - SEND_SOUND(admin, sound('sound/items/poster_being_created.ogg')) - -// A special piece of paper for the administrator that will open the interface no matter what. -/obj/item/paper/request/ui_status() - return UI_INTERACTIVE - -// I'm sure there's a better way to transfer it, I just couldn't find it -/obj/item/paper/request/proc/copy_properties(obj/item/paper/paper) - raw_text_inputs = paper.raw_text_inputs - raw_stamp_data = paper.raw_stamp_data - raw_field_input_data = paper.raw_field_input_data - show_written_words = paper.show_written_words - stamp_cache = paper.stamp_cache - contact_poison = paper.contact_poison - contact_poison_volume = paper.contact_poison_volume - default_raw_text = paper.default_raw_text - input_field_count = paper.input_field_count diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 4080f68c5d74..e30a2bdd9737 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -60,6 +60,9 @@ /// state checking on if it should be shown to a viewer. var/datum/weakref/camera_holder + ///If TRUE, staff can read paper everywhere, but usually from requests panel. + var/request_state = FALSE + /// The (text for the) stamps on the paper. var/list/stamps /// Positioning for the stamp in tgui var/list/stamped /// Overlay info @@ -161,12 +164,13 @@ * * bold - Whether this text should be rendered completely bold. */ -/obj/item/paper/proc/add_raw_text(text, font, color, bold) +/obj/item/paper/proc/add_raw_text(text, font, color, bold, advanced_html) var/new_input_datum = new /datum/paper_input( text, font, color, bold, + advanced_html, ) input_field_count += get_input_field_count(text) @@ -320,7 +324,7 @@ // Are we on fire? Hard to read if so if(resistance_flags & ON_FIRE) return UI_CLOSE - if(camera_holder && can_show_to_mob_through_camera(user)) + if(camera_holder && can_show_to_mob_through_camera(user) || request_state) return UI_UPDATE if(!in_range(user, src) && !isobserver(user)) return UI_CLOSE @@ -373,7 +377,7 @@ return // Handle writing items. - var/writing_stats = attacking_item.get_writing_implement_details() + var/writing_stats = istype(attacking_item) ? attacking_item.get_writing_implement_details() : null if(!writing_stats) ui_interact(user) @@ -576,7 +580,7 @@ // Safe to assume there are writing implement details as user.can_write(...) fails with an invalid writing implement. var/writing_implement_data = holding.get_writing_implement_details() - add_raw_text(paper_input, writing_implement_data["font"], writing_implement_data["color"], writing_implement_data["use_bold"]) + add_raw_text(paper_input, writing_implement_data["font"], writing_implement_data["color"], writing_implement_data["use_bold"], check_rights_for(user?.client, R_FUN)) log_paper("[key_name(user)] wrote to [name]: \"[paper_input]\"") to_chat(user, "You have added to your paper masterpiece!"); @@ -663,15 +667,18 @@ var/colour = "" /// Whether to render the font bold or not. var/bold = FALSE + /// Whether the creator of this input field has the R_FUN permission, thus allowing less sanitization + var/advanced_html = FALSE -/datum/paper_input/New(_raw_text, _font, _colour, _bold) +/datum/paper_input/New(_raw_text, _font, _colour, _bold, _advanced_html) raw_text = _raw_text font = _font colour = _colour bold = _bold + advanced_html = _advanced_html /datum/paper_input/proc/make_copy() - return new /datum/paper_input(raw_text, font, colour, bold); + return new /datum/paper_input(raw_text, font, colour, bold, advanced_html); /datum/paper_input/proc/to_list() return list( @@ -679,6 +686,7 @@ font = font, color = colour, bold = bold, + advanced_html = advanced_html, ) /// A single instance of a saved stamp on paper. diff --git a/code/modules/paperwork/stamps.dm b/code/modules/paperwork/stamps.dm index b90fe447a557..4de28c0c213e 100644 --- a/code/modules/paperwork/stamps.dm +++ b/code/modules/paperwork/stamps.dm @@ -91,9 +91,54 @@ icon_state = "stamp-syndicate" dye_color = DYE_SYNDICATE +/obj/item/stamp/donk + name = "Donk! Co. rubber stamp" + icon_state = "stamp-donk" + dye_color = DYE_SYNDICATE + +/obj/item/stamp/cybersun + name = "Cybersun rubber stamp" + icon_state = "stamp-cybersun" + dye_color = DYE_SYNDICATE + /obj/item/stamp/solgov name = "SolGov rubber stamp" icon_state = "stamp-solgov" +/obj/item/stamp/inteq + name = "Inteq rubber stamp" + icon_state = "stamp-inteq" + dye_color = DYE_QM + +/obj/item/stamp/vanguard + name = "Vanguard's rubber stamp" + icon_state = "stamp-vanguard" + dye_color = DYE_QM + +/obj/item/stamp/maa + name = "Master at Arms' rubber stamp" + icon_state = "stamp-maa" + dye_color = DYE_QM + +/obj/item/stamp/artificer + name = "Class II Artificer's rubber stamp" + icon_state = "stamp-artificer" + dye_color = DYE_QM + +/obj/item/stamp/cmm + name = "Colonial Minutemen rubber stamp" + icon_state = "stamp-cmm" + dye_color = DYE_FO + +/obj/item/stamp/gold + name = "GOLD rubber stamp" + icon_state = "stamp-gold" + dye_color = DYE_FO + +/obj/item/stamp/bard + name = "BARD rubber stamp" + icon_state = "stamp-bard" + dye_color = DYE_FO + /obj/item/stamp/attack_paw(mob/user) return attack_hand(user) diff --git a/code/modules/projectiles/ammunition/_firing.dm b/code/modules/projectiles/ammunition/_firing.dm index f8e1aa1dff1e..ee155db4e719 100644 --- a/code/modules/projectiles/ammunition/_firing.dm +++ b/code/modules/projectiles/ammunition/_firing.dm @@ -34,7 +34,8 @@ if (zone_override) BB.def_zone = zone_override else - BB.def_zone = user.zone_selected + if(user) + BB.def_zone = user.zone_selected BB.suppressed = quiet if(isgun(fired_from)) @@ -66,6 +67,23 @@ BB = null return TRUE +#define BULLET_POP_CHANCE 30 + +/obj/item/ammo_casing/fire_act(exposed_temperature, exposed_volume) + . = ..() + if(!prob(BULLET_POP_CHANCE) || !BB) + return + ready_proj() + BB.trajectory_ignore_forcemove = TRUE + BB.forceMove(get_turf(src)) + BB.trajectory_ignore_forcemove = FALSE + BB.starting = get_turf(src) + BB.fire(rand(0,360)) + BB = null + playsound(src, 'sound/weapons/gun/pistol/shot.ogg', 100, TRUE) + update_appearance() + return TRUE + /obj/item/ammo_casing/proc/spread(turf/target, turf/current, distro) var/dx = abs(target.x - current.x) var/dy = abs(target.y - current.y) diff --git a/code/modules/projectiles/ammunition/ballistic/pistol.dm b/code/modules/projectiles/ammunition/ballistic/pistol.dm index b9237ea91b4d..a105ae6602ee 100644 --- a/code/modules/projectiles/ammunition/ballistic/pistol.dm +++ b/code/modules/projectiles/ammunition/ballistic/pistol.dm @@ -76,7 +76,7 @@ bullet_skin = "rubber" projectile_type = /obj/projectile/bullet/c9mm/rubber -// .45 (M1911 + C20r) +// .45 (Candor + C20r) /obj/item/ammo_casing/c45 name = ".45 bullet casing" diff --git a/code/modules/projectiles/ammunition/ballistic/revolver.dm b/code/modules/projectiles/ammunition/ballistic/revolver.dm index 47ad1b7aba84..a15eac049667 100644 --- a/code/modules/projectiles/ammunition/ballistic/revolver.dm +++ b/code/modules/projectiles/ammunition/ballistic/revolver.dm @@ -4,6 +4,7 @@ name = ".357 bullet casing" desc = "A .357 bullet casing." caliber = ".357" + icon_state = "magnum-brass" projectile_type = /obj/projectile/bullet/a357 /obj/item/ammo_casing/a357/match @@ -15,14 +16,17 @@ /obj/item/ammo_casing/a357/hp name = ".357 hollow point bullet casing" desc = "A .357 hollow point bullet casing." + icon_state = "magnum-brass" + bullet_skin = "hollow" projectile_type = /obj/projectile/bullet/a357/hp -// .45-70 (Hunting Revolver, Contender) +// .45-70 (Hunting Revolver, Beacon) /obj/item/ammo_casing/a4570 name = ".45-70 bullet casing" desc = "A .45-70 bullet casing." caliber = ".45-70" + icon_state = "magnum-brass" projectile_type = /obj/projectile/bullet/a4570 /obj/item/ammo_casing/a4570/match @@ -42,15 +46,6 @@ desc = "A .45-70 explosive bullet casing." projectile_type = /obj/projectile/bullet/a4570/explosive -// 7.62x38mmR (Nagant Revolver) - -/obj/item/ammo_casing/n762_38 - name = "7.62x38mmR bullet casing" - desc = "A 7.62x38mmR bullet casing." - caliber = "7.62x38mmR" - projectile_type = /obj/projectile/bullet/n762 - - // .38 Special (Colt Detective Special & Winchester) /obj/item/ammo_casing/c38 diff --git a/code/modules/projectiles/ammunition/ballistic/rifle.dm b/code/modules/projectiles/ammunition/ballistic/rifle.dm index 63c8340e99bd..a615fc97d2fa 100644 --- a/code/modules/projectiles/ammunition/ballistic/rifle.dm +++ b/code/modules/projectiles/ammunition/ballistic/rifle.dm @@ -1,11 +1,11 @@ -// 7.62x54mmR (Illestren Hunting Rifle) +// 8x50mmR (Illestren Hunting Rifle) -/obj/item/ammo_casing/a762_54 - name = "7.62x54mmR bullet casing" - desc = "A 7.62x54mmR bullet casing." +/obj/item/ammo_casing/a8_50r + name = "8x50mmR bullet casing" + desc = "A 8x50mmR bullet casing." icon_state = "rifle-brass" - caliber = "7.62x54mmR" - projectile_type = /obj/projectile/bullet/a762_54 + caliber = "8x50mmR" + projectile_type = /obj/projectile/bullet/a8_50r // 8x58mm Caseless (SSG-669C) @@ -21,7 +21,7 @@ /obj/item/ammo_casing/a300 name = ".300 Magnum bullet casing" desc = "A .300 Magnum bullet casing." - icon_state = "rifle-brass" + icon_state = "rifle-steel" caliber = "a300" projectile_type = /obj/projectile/bullet/a300 @@ -78,14 +78,14 @@ caliber = ".300 BLK" projectile_type = /obj/projectile/bullet/aac_300blk -//.308 Winchester (M514 EBR & CM-GAL-S) +//.308 (M514 EBR & CM-GAL-S) -/obj/item/ammo_casing/win308 - name = ".308 Winchester bullet casing" - desc = "A .308 Winchester bullet casing." - icon_state = "rifle-steel" - caliber = ".308 Winchester" - projectile_type = /obj/projectile/bullet/win308 +/obj/item/ammo_casing/a308 + name = ".308 bullet casing" + desc = "A .308 bullet casing." + icon_state = "rifle-brass" + caliber = ".308" + projectile_type = /obj/projectile/bullet/a308 /obj/item/ammo_casing/caseless/c299 name = ".229 Eoehoma caseless bullet casing" diff --git a/code/modules/projectiles/ammunition/energy/laser.dm b/code/modules/projectiles/ammunition/energy/laser.dm index dd68cd2e5619..401fab165957 100644 --- a/code/modules/projectiles/ammunition/energy/laser.dm +++ b/code/modules/projectiles/ammunition/energy/laser.dm @@ -31,7 +31,7 @@ projectile_type = /obj/projectile/beam/laser/weak/negative_ap e_cost = 799 //12 shots with a normal power cell, 25 with an upgraded select_name = "kill" - delay = 0.2 SECONDS + delay = 0.1 SECONDS /obj/item/ammo_casing/energy/lasergun/old projectile_type = /obj/projectile/beam/laser diff --git a/code/modules/projectiles/ammunition/energy/stun.dm b/code/modules/projectiles/ammunition/energy/stun.dm index c47a88b38830..917e1c8c8189 100644 --- a/code/modules/projectiles/ammunition/energy/stun.dm +++ b/code/modules/projectiles/ammunition/energy/stun.dm @@ -46,4 +46,4 @@ /obj/item/ammo_casing/energy/disabler/smg projectile_type = /obj/projectile/beam/disabler/weak/negative_ap e_cost = 330 - delay = 0.2 SECONDS + delay = 0.1 SECONDS diff --git a/code/modules/projectiles/boxes_magazines/_box_magazine.dm b/code/modules/projectiles/boxes_magazines/_box_magazine.dm index c3989e7a4952..6b04646697e2 100644 --- a/code/modules/projectiles/boxes_magazines/_box_magazine.dm +++ b/code/modules/projectiles/boxes_magazines/_box_magazine.dm @@ -94,14 +94,14 @@ if(istype(A, /obj/item/ammo_box)) var/obj/item/ammo_box/AM = A for(var/obj/item/ammo_casing/AC in AM.stored_ammo) - if(!((instant_load && AM.instant_load) || do_after_mob(user, list(AM), 1 SECONDS,))) + if(!((instant_load && AM.instant_load) || (stored_ammo.len >= max_ammo) || do_after_mob(user, list(AM), 1 SECONDS,))) break var/did_load = give_round(AC, replace_spent) if(!did_load) break AM.stored_ammo -= AC if(!silent) - playsound(AM, 'sound/weapons/gun/general/mag_bullet_insert.ogg', 60, TRUE) //src is nullspaced, which means internal magazines won't properly play sound, thus we use AM + playsound(get_turf(AM), 'sound/weapons/gun/general/mag_bullet_insert.ogg', 60, TRUE) //src is nullspaced, which means internal magazines won't properly play sound, thus we use AM num_loaded++ A.update_appearance() update_appearance() @@ -173,6 +173,11 @@ if(!(caliber || istype(src, /obj/item/ammo_box/magazine) || instant_load)) . += "Alt-click on [src] while it in a pocket or your off-hand to take out a round while it is there." +/obj/item/ammo_box/fire_act(exposed_temperature, exposed_volume) + . = ..() + for(var/obj/item/ammo_casing/bullet2pop in stored_ammo) + bullet2pop.fire_act() + /obj/item/ammo_box/magazine w_class = WEIGHT_CLASS_SMALL //Default magazine weight, only differs for tiny mags and drums @@ -201,3 +206,4 @@ /obj/item/ammo_box/magazine/handle_atom_del(atom/A) stored_ammo -= A update_ammo_count() + diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm index e8c47f60f85b..ab8e65c069bf 100644 --- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm @@ -24,44 +24,30 @@ // .45-70 Ammo Holders (Hunting Revolver) /obj/item/ammo_box/a4570 - name = "ammo holder (.45-70)" - desc = "A 6-round ammo holder for .45-70 revolvers. These rounds do significant damage with average performance against armor." + name = "ammo box (.45-70)" + desc = "A box of top grade .45-70 ammo. These rounds do significant damage with average performance against armor." icon_state = "4570" ammo_type = /obj/item/ammo_casing/a4570 - max_ammo = 6 - multiple_sprites = AMMO_BOX_PER_BULLET - item_flags = NO_MAT_REDEMPTION - w_class = WEIGHT_CLASS_TINY - instant_load = TRUE + max_ammo = 12 /obj/item/ammo_box/a4570/match name = "ammo holder (.45-70 match)" desc = "A 6-round ammo holder for .45-70 revolvers. These match rounds travel faster, perform better against armor, and can ricochet off targets." + icon_state = "4570-match" ammo_type = /obj/item/ammo_casing/a4570/match /obj/item/ammo_box/a4570/hp name = "ammo holder (.45-70 hollow point)" desc = "A 6-round ammo holder for .45-70 revolvers. These hollow point rounds do legendary damage against soft targets, but are nearly ineffective against armored ones." + icon_state = "4570-hp" ammo_type = /obj/item/ammo_casing/a357/hp /obj/item/ammo_box/a4570/explosive name = "ammo holder (.45-70 explosive)" desc = "A 6-round ammo holder for .45-70 revolvers. These explosive rounds contain a small explosive charge that detonates on impact, creating large wounds and potentially removing limbs." + icon_state = "4570-explosive" ammo_type = /obj/item/ammo_casing/a4570/explosive -// 7.62x38mmR Ammo Holders (Nagant Revolver) - -/obj/item/ammo_box/n762_clip - name = "ammo holder (7.62x38mmR)" - desc = "A 7-round ammo holder for the Nagant revolver. These rounds do good damage, but struggle against armor." - icon_state = "n762" - ammo_type = /obj/item/ammo_casing/n762_38 - max_ammo = 7 - multiple_sprites = AMMO_BOX_PER_BULLET - item_flags = NO_MAT_REDEMPTION - w_class = WEIGHT_CLASS_TINY - instant_load = TRUE - // .38 special Speed Loaders (Colt Detective Special) /obj/item/ammo_box/c38 @@ -105,34 +91,48 @@ desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These iceblox bullets contain a cryogenic payload that chills targets." ammo_type = /obj/item/ammo_casing/c38/iceblox -// 7.62x54mmR Stripper Clip (Illestren Hunting Rifle) +// 8x58mm Stripper Clip (SSG-669C) + +/obj/item/ammo_box/a858 + name = "stripper clip (8x58mm)" + desc = "A 5-round stripper clip for the SSG-669C rifle. These rounds do good damage with significant armor penetration." + icon_state = "858" + ammo_type = /obj/item/ammo_casing/caseless/a858 + max_ammo = 5 + multiple_sprites = AMMO_BOX_PER_BULLET + instant_load = TRUE + +// .308 Stripper Clip (Vickland) -/obj/item/ammo_box/a762 - name = "stripper clip (7.62x54mmR)" - desc = "A 5-round stripper clip for the Illestren Hunting Rifle. These rounds do good damage with significant armor penetration." - icon_state = "762" - ammo_type = /obj/item/ammo_casing/a762_54 +/obj/item/ammo_box/vickland_a308 + name = "stripper clip (.308)" + desc = "A 5-round stripper clip for the Vickland Battle Rifle. The Vickland itself has a 10 round capacity, so keep in mind two of these are needed to fully reload it. These rounds do good damage with significant armor penetration." + icon_state = "308" + ammo_type = /obj/item/ammo_casing/a308 max_ammo = 5 multiple_sprites = AMMO_BOX_PER_BULLET w_class = WEIGHT_CLASS_TINY instant_load = TRUE -// 8x58mm Stripper Clip (SSG-669C) -/obj/item/ammo_box/a858 - name = "stripper clip (8x58mm)" - desc = "A 5-round stripper clip for the SSG-669C rifle. These rounds do good damage with significant armor penetration." - icon_state = "762" - ammo_type = /obj/item/ammo_casing/caseless/a858 +// .300 Magnum Stripper Clip (Scout) + +/obj/item/ammo_box/a300 + name = "stripper clip (.300 Magnum)" + desc = "A 5-round stripper clip for the Scout Rifle. These rounds do great damage with significant armor penetration." + icon_state = "300m" + ammo_type = /obj/item/ammo_casing/a300 max_ammo = 5 multiple_sprites = AMMO_BOX_PER_BULLET + w_class = WEIGHT_CLASS_TINY + instant_load = TRUE // .300 Blackout Stripper Clip (Polymer Survivor Rifle) /obj/item/ammo_box/aac_300blk_stripper name = "stripper clip (.300 BLK)" desc = "A 5-round stripper clip for makeshift bolt-action rifles. These rounds do good damage with good armor penetration." - icon_state = "762" + icon_state = "300m" ammo_type = /obj/item/ammo_casing/aac_300blk caliber = ".300 BLK" max_ammo = 5 @@ -336,13 +336,6 @@ multiple_sprites = AMMO_BOX_PER_BULLET w_class = WEIGHT_CLASS_NORMAL -/obj/item/ammo_box/n762 - name = "ammo box (7.62x38mmR)" - icon_state = "n762box" - desc = "A box of unusual revolver ammunition with the bullet seated below the mouth of the cartridge." - ammo_type = /obj/item/ammo_casing/n762_38 - max_ammo = 28 - /obj/item/ammo_box/a762_39 name = "ammo box (7.62x39mm)" icon_state = "a762_39box" @@ -352,9 +345,12 @@ /obj/item/ammo_box/a308 name = "ammo box (.308)" icon_state = "a308box" - ammo_type = /obj/item/ammo_casing/win308 + ammo_type = /obj/item/ammo_casing/a308 max_ammo = 30 +/obj/item/ammo_box/a308/hunterspride //just an alternative graphic for srm ships + icon_state = "a308box-HP" + /obj/item/ammo_box/foambox name = "ammo box (Foam Darts)" icon = 'icons/obj/guns/toy.dmi' diff --git a/code/modules/projectiles/boxes_magazines/external/lmg.dm b/code/modules/projectiles/boxes_magazines/external/lmg.dm index 402db1502853..fdf1b7985b29 100644 --- a/code/modules/projectiles/boxes_magazines/external/lmg.dm +++ b/code/modules/projectiles/boxes_magazines/external/lmg.dm @@ -1,7 +1,7 @@ /obj/item/ammo_box/magazine/mm712x82 name = "box magazine (7.12x82mm)" desc = "A 50-round box magazine for the L6 SAW machine gun. These rounds do moderate damage with significant armor penetration." - icon_state = "a762-50" + icon_state = "a762-100" base_icon_state = "a762" ammo_type = /obj/item/ammo_casing/mm712x82 caliber = "7.12x82mm" diff --git a/code/modules/projectiles/boxes_magazines/external/pistol.dm b/code/modules/projectiles/boxes_magazines/external/pistol.dm index 0c25c8a2282e..e96d8d434ddb 100644 --- a/code/modules/projectiles/boxes_magazines/external/pistol.dm +++ b/code/modules/projectiles/boxes_magazines/external/pistol.dm @@ -33,7 +33,7 @@ /obj/item/ammo_box/magazine/m45 name = "pistol magazine (.45)" - desc = "An 8-round single-stack magazine for the M1911 pistol. These rounds do moderate damage, but struggle against armor." + desc = "An 8-round single-stack magazine for the Candor pistol. These rounds do moderate damage, but struggle against armor." icon_state = "45-8" base_icon_state = "45" ammo_type = /obj/item/ammo_casing/c45 @@ -42,22 +42,22 @@ /obj/item/ammo_box/magazine/m45/inc name = "pistol magazine (.45 incendiary)" - desc = "An 8-round single-stack magazine for the M1911 pistol. These incendiary rounds deal mediocre damage, but leave flaming trails which set targets ablaze." + desc = "An 8-round single-stack magazine for the Candor pistol. These incendiary rounds deal mediocre damage, but leave flaming trails which set targets ablaze." ammo_type = /obj/item/ammo_casing/c45/inc /obj/item/ammo_box/magazine/m45/hp name = "pistol magazine (.45 HP)" - desc= "An 8-round single-stack magazine for the M1911 pistol. These hollow point rounds do incredible damage against soft targets, but are nearly ineffective against armored ones." + desc= "An 8-round single-stack magazine for the Candor pistol. These hollow point rounds do incredible damage against soft targets, but are nearly ineffective against armored ones." ammo_type = /obj/item/ammo_casing/c45/hp /obj/item/ammo_box/magazine/m45/ap name = "pistol magazine (.45 AP)" - desc= "An 8-round single-stack magazine for the M1911 pistol. These armor-piercing rounds are okay at piercing protective equipment, but lose some stopping power." + desc= "An 8-round single-stack magazine for the Candor pistol. These armor-piercing rounds are okay at piercing protective equipment, but lose some stopping power." ammo_type = /obj/item/ammo_casing/c45/ap /obj/item/ammo_box/magazine/m45/rubber name = "pistol magazine (.45 rubber)" - desc = "An 8-round single-stack magazine for the M1911 pistol. These rubber rounds trade lethality for a heavy impact which can incapacitate targets. Performs even worse against armor." + desc = "An 8-round single-stack magazine for the Candor pistol. These rubber rounds trade lethality for a heavy impact which can incapacitate targets. Performs even worse against armor." ammo_type = /obj/item/ammo_casing/c45/rubber /obj/item/ammo_box/magazine/m45/update_icon_state() @@ -123,9 +123,9 @@ name = "part of a disposable gun" desc = "You ripped out part of the gun, somehow, rendering it unusuable. I hope you're happy." icon_state = "45-8" - ammo_type = /obj/item/ammo_casing/c38 - caliber = ".38" - max_ammo = 3 + ammo_type = /obj/item/ammo_casing/c22lr + caliber = ".22lr" + max_ammo = 10 w_class = WEIGHT_CLASS_TINY /obj/item/ammo_box/magazine/zip_ammo_9mm diff --git a/code/modules/projectiles/boxes_magazines/external/rifle.dm b/code/modules/projectiles/boxes_magazines/external/rifle.dm index 786bf8e9dfb6..980272313c1a 100644 --- a/code/modules/projectiles/boxes_magazines/external/rifle.dm +++ b/code/modules/projectiles/boxes_magazines/external/rifle.dm @@ -64,18 +64,18 @@ icon_state = "ak47_mag" ammo_type = /obj/item/ammo_casing/a762_39 caliber = "7.62x39mm" - max_ammo = 30 + max_ammo = 20 /obj/item/ammo_box/magazine/ak47/update_icon_state() . = ..() icon_state = "ak47_mag-[!!ammo_count()]" /obj/item/ammo_box/magazine/ebr - name = "battle rifle magazine (.308 Winchester)" + name = "battle rifle magazine (.308)" desc = "A small, 10-round steel magazine for the M514 EBR. These rounds do good damage with significant armor penetration." icon_state = "ebr_mag" - ammo_type = /obj/item/ammo_casing/win308 - caliber = ".308 Winchester" + ammo_type = /obj/item/ammo_casing/a308 + caliber = ".308" max_ammo = 10 /obj/item/ammo_box/magazine/ebr/update_icon_state() @@ -83,11 +83,11 @@ icon_state = "ebr_mag-[!!ammo_count()]" /obj/item/ammo_box/magazine/gal - name = "\improper GAL Magazine (.308 Winchester)" + name = "\improper GAL Magazine (.308)" desc = "A standard 10-round magazine for GAL platform DMRs. These rounds do good damage with significant armor penetration." icon_state = "ebr_mag" - ammo_type = /obj/item/ammo_casing/win308 - caliber = ".308 Winchester" + ammo_type = /obj/item/ammo_casing/a308 + caliber = ".308" max_ammo = 10 /obj/item/ammo_box/magazine/gal/update_icon_state() @@ -128,3 +128,14 @@ /obj/item/ammo_box/magazine/e40/update_icon_state() . = ..() icon_state = "e40_mag-[!!ammo_count()]" + +// 8x50mmR En Bloc Clip (Illestren Hunting Rifle) + +/obj/item/ammo_box/magazine/illestren_a850r //this is a magazine codewise do nothing breaks + name = "en bloc clip (8x50mmR)" + desc = "A 5-round en bloc clip for the Illestren Hunting Rifle. These rounds do good damage with significant armor penetration." + icon_state = "enbloc_858" + ammo_type = /obj/item/ammo_casing/a8_50r + max_ammo = 5 + multiple_sprites = AMMO_BOX_PER_BULLET + w_class = WEIGHT_CLASS_TINY diff --git a/code/modules/projectiles/boxes_magazines/external/smg.dm b/code/modules/projectiles/boxes_magazines/external/smg.dm index 587718e5caad..7e5f418ec7b2 100644 --- a/code/modules/projectiles/boxes_magazines/external/smg.dm +++ b/code/modules/projectiles/boxes_magazines/external/smg.dm @@ -97,16 +97,29 @@ . = ..() icon_state = "c20r45-[round(ammo_count(),2)]" -/obj/item/ammo_box/magazine/smgm45/drum - name = "drum magazine (.45)" - desc = "A bulky, 50-round drum magazine for .45 submachine guns. These rounds do moderate damage, but struggle against armor." - icon_state = "drum45" +/obj/item/ammo_box/magazine/c45_firestorm_mag + name = "stick magazine (.45)" + desc = "A 28-round stick magazine for the toploading Firestorm submachine gun. These rounds do moderate damage, but struggle against armor." + icon_state = "firestorm_mag" + base_icon_state = "firestorm_mag" + ammo_type = /obj/item/ammo_casing/c45 + caliber = ".45" + max_ammo = 28 + +/obj/item/ammo_box/magazine/c45_firestorm_mag/update_icon_state() + . = ..() + icon_state = "firestorm_mag-[!!ammo_count()]" + +/obj/item/ammo_box/magazine/c45_firestorm_mag/pan + name = "pan magazine (.45)" + desc = "A bulky, 50-round pan magazine for the toploading Firestorm submachine gun. These rounds struggle against armor, but with this many you could cut anyone down regardless." + icon_state = "firestorm_pan" max_ammo = 50 w_class = WEIGHT_CLASS_NORMAL -/obj/item/ammo_box/magazine/smgm45/drum/update_icon_state() //Causes the mag to NOT inherit the parent's update_icon oooh the misery +/obj/item/ammo_box/magazine/c45_firestorm_mag/pan/update_icon_state() //Causes the mag to NOT inherit the parent's update_icon oooh the misery . = ..() - icon_state = "drum45" + icon_state = "firestorm_pan" /obj/item/ammo_box/magazine/pistol556mm name = "handgun magazine (5.56mm HITP caseless)" diff --git a/code/modules/projectiles/boxes_magazines/external/toy.dm b/code/modules/projectiles/boxes_magazines/external/toy.dm index 7ed352a1941a..ab9656cdf111 100644 --- a/code/modules/projectiles/boxes_magazines/external/toy.dm +++ b/code/modules/projectiles/boxes_magazines/external/toy.dm @@ -49,8 +49,8 @@ /obj/item/ammo_box/magazine/toy/m762 name = "donksoft box magazine" desc = "A huge toy LMG magazine designed to fit vast quantities of harmless foam darts." - icon_state = "a762-toy" - base_icon_state = "a762" + icon_state = "a850r-toy" + base_icon_state = "a850r" caliber = "foam_force" ammo_type = /obj/item/ammo_casing/caseless/foam_dart max_ammo = 50 @@ -62,5 +62,5 @@ /obj/item/ammo_box/magazine/toy/m762/riot desc = "A huge toy LMG magazine designed to fit vast quantities of legally-harmless riot control darts." - icon_state = "a762-riot" + icon_state = "a850r-riot" ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot diff --git a/code/modules/projectiles/boxes_magazines/internal/revolver.dm b/code/modules/projectiles/boxes_magazines/internal/revolver.dm index 7715d31b1323..0c3bdac1be36 100644 --- a/code/modules/projectiles/boxes_magazines/internal/revolver.dm +++ b/code/modules/projectiles/boxes_magazines/internal/revolver.dm @@ -5,12 +5,9 @@ max_ammo = 6 instant_load = TRUE -/obj/item/ammo_box/magazine/internal/cylinder/rev762 - name = "\improper Nagant revolver cylinder" - ammo_type = /obj/item/ammo_casing/n762_38 - caliber = "7.62x38mmR" +/obj/item/ammo_box/magazine/internal/cylinder/rev38/big + name = "\improper Montagne cylinder" max_ammo = 7 - instant_load = FALSE /obj/item/ammo_box/magazine/internal/cylinder/rev4570 name = "hunting revolver cylinder" diff --git a/code/modules/projectiles/boxes_magazines/internal/rifle.dm b/code/modules/projectiles/boxes_magazines/internal/rifle.dm index b85b223c254b..921ff98293a1 100644 --- a/code/modules/projectiles/boxes_magazines/internal/rifle.dm +++ b/code/modules/projectiles/boxes_magazines/internal/rifle.dm @@ -1,14 +1,14 @@ /obj/item/ammo_box/magazine/internal/boltaction name = "bolt action rifle internal magazine" desc = "Oh god, this shouldn't be here" - ammo_type = /obj/item/ammo_casing/a762_54 - caliber = "7.62x54mmR" + ammo_type = /obj/item/ammo_casing/a8_50r + caliber = "8x50mmR" max_ammo = 5 instant_load = TRUE /obj/item/ammo_box/magazine/internal/boltaction/enchanted max_ammo = 1 - ammo_type = /obj/item/ammo_casing/a762_54 + ammo_type = /obj/item/ammo_casing/a8_50r /obj/item/ammo_box/magazine/internal/boltaction/enchanted/arcane_barrage ammo_type = /obj/item/ammo_casing/magic/arcane_barrage @@ -32,3 +32,10 @@ ammo_type = /obj/item/ammo_casing/aac_300blk caliber = ".300 BLK" max_ammo = 5 + +/obj/item/ammo_box/magazine/internal/vickland + name = "Vickland battle rifle internal magazine" + ammo_type = /obj/item/ammo_casing/a308 + caliber = ".308" + max_ammo = 10 + instant_load = TRUE diff --git a/code/modules/projectiles/boxes_magazines/internal/shotgun.dm b/code/modules/projectiles/boxes_magazines/internal/shotgun.dm index 2b3adeea371d..38c99aec9372 100644 --- a/code/modules/projectiles/boxes_magazines/internal/shotgun.dm +++ b/code/modules/projectiles/boxes_magazines/internal/shotgun.dm @@ -35,8 +35,8 @@ /obj/item/ammo_box/magazine/internal/shot/riot name = "riot shotgun internal magazine" - ammo_type = /obj/item/ammo_casing/shotgun/rubbershot - max_ammo = 6 + ammo_type = /obj/item/ammo_casing/shotgun/buckshot + max_ammo = 7 /obj/item/ammo_box/magazine/internal/shot/bounty name = "triple-barrel shotgun internal magazine" @@ -47,13 +47,10 @@ name = "winchester internal magazine" ammo_type = /obj/item/ammo_casing/c38 caliber = ".38" - max_ammo = 7 - -/obj/item/ammo_box/magazine/internal/shot/winchester/lethal - ammo_type = /obj/item/ammo_casing/c38 + max_ammo = 12 -/obj/item/ammo_box/magazine/internal/shot/contender - name = "contender internal magazine" +/obj/item/ammo_box/magazine/internal/shot/beacon + name = "beacon internal magazine" ammo_type = /obj/item/ammo_casing/a4570 caliber = ".45-70" max_ammo = 1 diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm index 642fcdf0c0b0..b640390ebfe4 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -60,6 +60,8 @@ var/empty_indicator = FALSE ///Whether the gun alarms when empty or not. var/empty_alarm = FALSE + ///Do we eject the magazine upon runing out of ammo? + var/empty_autoeject = FALSE ///Whether the gun supports multiple special mag types var/special_mags = FALSE ///The bolt type of the gun, affects quite a bit of functionality, see combat.dm defines for bolt types: BOLT_TYPE_STANDARD; BOLT_TYPE_LOCKING; BOLT_TYPE_OPEN; BOLT_TYPE_NO_BOLT @@ -240,8 +242,8 @@ else to_chat(user, "Your reload was interupted!") return - - user.put_in_hands(old_mag) + if(user) + user.put_in_hands(old_mag) update_appearance() /obj/item/gun/ballistic/can_shoot() @@ -338,6 +340,9 @@ if (empty_alarm && last_shot_succeeded) playsound(src, empty_alarm_sound, empty_alarm_volume, empty_alarm_vary) update_appearance() + if (empty_autoeject && last_shot_succeeded && !internal_magazine) + eject_magazine(display_message = FALSE) + update_appearance() if (last_shot_succeeded && bolt_type == BOLT_TYPE_LOCKING) bolt_locked = TRUE update_appearance() @@ -403,6 +408,7 @@ . += "The [bolt_wording] is locked back and needs to be released before firing." if (suppressed) . += "It has a suppressor attached that can be removed with alt+click." + . += "You can [bolt_wording] [src] by pressing the unqiue action key. By default, this is space" ///Gets the number of bullets in the gun /obj/item/gun/ballistic/proc/get_ammo(countchambered = TRUE) diff --git a/code/modules/projectiles/guns/ballistic/assault.dm b/code/modules/projectiles/guns/ballistic/assault.dm index ab54f3dd247c..576a914cce01 100644 --- a/code/modules/projectiles/guns/ballistic/assault.dm +++ b/code/modules/projectiles/guns/ballistic/assault.dm @@ -128,22 +128,6 @@ icon_state = "cm16" item_state = "cm16" -/obj/item/gun/ballistic/automatic/assault/ar - name = "\improper NT-ARG 'Boarder'" - desc = "A burst-fire 5.56mm carbine occasionally found in the hands of Nanotrasen marines." - fire_sound = 'sound/weapons/gun/rifle/shot_alt2.ogg' - icon_state = "arg" - item_state = "arg" - slot_flags = 0 - mag_type = /obj/item/ammo_box/magazine/p16 - can_suppress = FALSE - burst_size = 3 - fire_delay = 1 - -/obj/item/gun/ballistic/automatic/assault/ar/ComponentInitialize() - . = ..() - AddComponent(/datum/component/automatic_fire, 0.2 SECONDS) - /obj/item/gun/ballistic/automatic/assault/swiss_cheese name = "\improper Swiss Cheese" desc = "An ancient longarm famous for its boxy, modular design. The DMA on this unit is, sadly, broken. Uses 5.56mm ammunition for Matter mode." @@ -319,3 +303,28 @@ w_class = WEIGHT_CLASS_NORMAL ammo_type = list(/obj/item/ammo_casing/energy/laser/assault) fire_delay = 2 + +//techinically a battle rifle, i'm putting it here for organisation sake + +/obj/item/gun/ballistic/automatic/vickland //weapon designed by Apogee-dev + name = "\improper Vickland" + desc = "The pride of the Saint-Roumain Militia, the Vickland is a rare semi-automatic battle rifle produced by Hunter's Pride exclusively for SRM use. It is unusual in its class for its internal rotary magazine, which must be reloaded using stripper clips. Chambered in .308." + icon = 'icons/obj/guns/48x32guns.dmi' + fire_sound = 'sound/weapons/gun/rifle/vickland.ogg' + icon_state = "vickland" + item_state = "vickland" + weapon_weight = WEAPON_MEDIUM + w_class = WEIGHT_CLASS_BULKY + internal_magazine = TRUE + mag_type = /obj/item/ammo_box/magazine/internal/vickland + fire_sound = 'sound/weapons/gun/rifle/vickland.ogg' + burst_size = 0 + actions_types = list() + manufacturer = MANUFACTURER_HUNTERSPRIDE + + rack_sound = 'sound/weapons/gun/rifle/ar_cock.ogg' + + spread_unwielded = 25 + recoil = 0 + recoil_unwielded = 4 + wield_slowdown = 0.75 diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm index 841e36927cb5..7cbd8574ba86 100644 --- a/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -128,7 +128,7 @@ /obj/item/gun/ballistic/automatic/ebr name = "\improper M514 EBR" - desc = "A reliable, high-powered battle rifle often found in the hands of Syndicate personnel and remnants, chambered in .308 Winchester. Effective against personnel and armor alike." + desc = "A reliable, high-powered battle rifle often found in the hands of Syndicate personnel and remnants, chambered in .308. Effective against personnel and armor alike." icon = 'icons/obj/guns/48x32guns.dmi' lefthand_file = 'icons/mob/inhands/weapons/64x_guns_left.dmi' righthand_file = 'icons/mob/inhands/weapons/64x_guns_right.dmi' diff --git a/code/modules/projectiles/guns/ballistic/gauss.dm b/code/modules/projectiles/guns/ballistic/gauss.dm index b8b8e36e04b7..8fce353d8b22 100644 --- a/code/modules/projectiles/guns/ballistic/gauss.dm +++ b/code/modules/projectiles/guns/ballistic/gauss.dm @@ -28,7 +28,7 @@ /obj/item/gun/ballistic/automatic/powered/gauss/modelh name = "Model H" - desc = "Standard-issue pistol of the Solarian Confederation. Fires slow ferromagnetic slugs at a high energy cost, though they rend flesh with ease." + desc = "A standard-issue pistol exported from the Solarian Confederation. It fires slow flesh-rending ferromagnetic slugs at a high energy cost, however they are ineffective on any armor." mag_type = /obj/item/ammo_box/magazine/modelh icon_state = "model-h" item_state = "model-h" @@ -42,10 +42,15 @@ empty_indicator = FALSE manufacturer = MANUFACTURER_SOLARARMORIES recoil = 1 - recoil_unwielded = 2 + recoil_unwielded = 4 spread = 3 - spread_unwielded = 6 + spread_unwielded = 12 +/obj/item/gun/ballistic/automatic/powered/gauss/modelh/suns + desc = "A standard-issue pistol exported from the Solarian Confederation. It fires slow flesh-rending ferromagnetic slugs at a high energy cost, however they are ineffective on any armor. It is painted in the colors of SUNS." + mag_type = /obj/item/ammo_box/magazine/modelh + icon_state = "model-h_suns" + item_state = "model-h_suns" /obj/item/gun/ballistic/automatic/powered/gauss/claris name = "Claris" @@ -65,9 +70,14 @@ empty_indicator = FALSE manufacturer = MANUFACTURER_SOLARARMORIES +/obj/item/gun/ballistic/automatic/powered/gauss/claris/suns + desc = "An antiquated Solarian rifle. Chambered in ferromagnetic pellets, just as the founding Solarians intended. Evidently, SUNS' founders echo the sentiment, as it appears to be painted in their colors." + icon_state = "claris_suns" + item_state = "claris_suns" + /obj/item/gun/ballistic/automatic/powered/gauss/gar - name = "Solar 'GAR' Assault Rifle" - desc = "A Solarian assault rifle, unusually modern for its producers. Launches ferromagnetic lances at alarming speeds." + name = "Solar 'GAR' Carbine" + desc = "A Solarian carbine, unusually modern for its producers. Launches ferromagnetic lances at alarming speeds." mag_type = /obj/item/ammo_box/magazine/gar icon = 'icons/obj/guns/48x32guns.dmi' icon_state = "gar" @@ -76,14 +86,18 @@ load_sound = 'sound/weapons/gun/gauss/rifle_reload.ogg' cell_type = /obj/item/stock_parts/cell/gun/solgov burst_size = 2 - fire_delay = 2 + fire_delay = 1 actions_types = list() empty_indicator = FALSE manufacturer = MANUFACTURER_SOLARARMORIES wield_delay = 0.7 SECONDS - fire_delay = 1 /obj/item/gun/ballistic/automatic/powered/gauss/gar/ComponentInitialize() . = ..() - AddComponent(/datum/component/automatic_fire, 0.2 SECONDS) //setiting this to 0.1 breaks auotfire, not sure why, so we use the standard fire rate but in 2 shot bursts to shoot 'faster' + AddComponent(/datum/component/automatic_fire, 0.2 SECONDS) + +/obj/item/gun/ballistic/automatic/powered/gauss/gar/suns + desc = "A Solarian carbine, unusually modern for its producers. It's just modern enough for SUNS, however, who have painted the weapon in their colors. Launches ferromagnetic lances at alarming speeds." + icon_state = "gar_suns" + item_state = "gar_suns" diff --git a/code/modules/projectiles/guns/ballistic/pistol.dm b/code/modules/projectiles/guns/ballistic/pistol.dm index 97974ff341fb..1cb86fec256d 100644 --- a/code/modules/projectiles/guns/ballistic/pistol.dm +++ b/code/modules/projectiles/guns/ballistic/pistol.dm @@ -28,8 +28,8 @@ manufacturer = MANUFACTURER_SCARBOROUGH wield_delay = 0.2 SECONDS - spread = -2 - spread_unwielded = 4 + spread = 2 + spread_unwielded = 5 wield_slowdown = 0.15 muzzleflash_iconstate = "muzzle_flash_light" @@ -42,25 +42,41 @@ var/obj/item/suppressor/S = new(src) install_suppressor(S) -/obj/item/gun/ballistic/automatic/pistol/m1911 - name = "\improper M1911A8" - desc = "A classic .45 handgun. An engraving on the slide marks it as a product of Hunter's Pride." - icon_state = "m1911" +/obj/item/gun/ballistic/automatic/pistol/suns + desc = "A small, easily concealable 10mm handgun that bears Scarborough Arms stamps. It is painted in the colors of SUNS." + icon_state = "pistol_suns" + +/obj/item/gun/ballistic/automatic/pistol/candor + name = "\improper Candor" + desc = "A classic semi-automatic handgun, widely popular throughout the Frontier. An engraving on the slide marks it as a product of Hunter's Pride. Chambered in .45." + icon_state = "candor" + item_state = "hp_generic" w_class = WEIGHT_CLASS_NORMAL mag_type = /obj/item/ammo_box/magazine/m45 can_suppress = FALSE - fire_sound = 'sound/weapons/gun/pistol/m1911.ogg' - rack_sound = 'sound/weapons/gun/pistol/m1911_cocked.ogg' + fire_sound = 'sound/weapons/gun/pistol/candor.ogg' + rack_sound = 'sound/weapons/gun/pistol/candor_cocked.ogg' lock_back_sound = 'sound/weapons/gun/pistol/slide_lock.ogg' bolt_drop_sound = 'sound/weapons/gun/pistol/slide_drop.ogg' manufacturer = MANUFACTURER_HUNTERSPRIDE - load_sound = 'sound/weapons/gun/pistol/m1911_reload.ogg' - load_empty_sound = 'sound/weapons/gun/pistol/m1911_reload.ogg' - eject_sound = 'sound/weapons/gun/pistol/m1911_unload.ogg' - eject_empty_sound = 'sound/weapons/gun/pistol/m1911_unload.ogg' + load_sound = 'sound/weapons/gun/pistol/candor_reload.ogg' + load_empty_sound = 'sound/weapons/gun/pistol/candor_reload.ogg' + eject_sound = 'sound/weapons/gun/pistol/candor_unload.ogg' + eject_empty_sound = 'sound/weapons/gun/pistol/candor_unload.ogg' recoil = -2 -/obj/item/gun/ballistic/automatic/pistol/m1911/no_mag +/obj/item/gun/ballistic/automatic/pistol/candor/no_mag + spawnwithmagazine = FALSE + +/obj/item/gun/ballistic/automatic/pistol/candor/factory //also give this to the srm, their candors should probably look factory fresh from how well taken care of they are + desc = "A classic semi-automatic handgun, widely popular throughout the Frontier. An engraving on the slide marks it as a product of Hunter's Pride. This example has been kept in especially good shape, and may as well be fresh out of the workshop. Chambered in .45." + item_state = "hp_generic_fresh" + +/obj/item/gun/ballistic/automatic/pistol/candor/factory/update_overlays() + . = ..() + . += "[initial(icon_state)]_factory" + +/obj/item/gun/ballistic/automatic/pistol/candor/factory/no_mag spawnwithmagazine = FALSE /obj/item/gun/ballistic/automatic/pistol/deagle @@ -238,26 +254,17 @@ /obj/item/gun/ballistic/automatic/pistol/disposable name = "disposable gun" desc = "An exceedingly flimsy plastic gun that is extremely cheap to produce. You get what you pay for." - icon_state = "disposable" + fire_sound = 'sound/weapons/gun/pistol/himehabu.ogg' + icon_state = "disposable" //credit to discord user any% for the sprite w_class = WEIGHT_CLASS_NORMAL mag_type = /obj/item/ammo_box/magazine/disposable custom_materials = list(/datum/material/plastic=2000) can_suppress = FALSE - var/random_icon = TRUE manufacturer = MANUFACTURER_NONE - has_safety = FALSE //thing barely costs anything, why would it have a safety? safety = FALSE -/obj/item/gun/ballistic/automatic/pistol/disposable/Initialize() - . = ..() - var/picked = pick("none","red","purple","yellow","green","dark") - if(random_icon) - if(picked == "none") - return - icon_state = "disposable_[picked]" - -/obj/item/gun/ballistic/automatic/pistol/disposable/eject_magazine(mob/user) +/obj/item/gun/ballistic/automatic/pistol/disposable/eject_magazine(mob/user, display_message = TRUE) to_chat(user, "Theres no magazine to eject!") return @@ -269,7 +276,6 @@ name = "pizza disposable gun" desc = "How horrible. Whoever you point at with this won't be very cheesed to meet you." //this is a warcrime against italians // IF YOU'RE GOING TO DO US DIRTY SPELL IT RIGHT icon_state = "disposable_pizza" - random_icon = FALSE custom_materials = list(/datum/material/pizza=2000) //not technically a pistol but whatever diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm index 454a790728d2..4047f54590bb 100644 --- a/code/modules/projectiles/guns/ballistic/revolver.dm +++ b/code/modules/projectiles/guns/ballistic/revolver.dm @@ -117,16 +117,13 @@ . += "It can be spun with alt+click" /obj/item/gun/ballistic/revolver/detective - name = "\improper Hunter's Pride Detective Special" - desc = "A compact and ridiculously old-fashioned law enforcement firearm. Uses .38 special rounds." + name = "\improper HP Detective Special" + desc = "A small law enforcement firearm. Originally commissioned by Nanotrasen for their Private Investigation division, it has become extremely popular among independent civilians as a cheap, compact sidearm. Uses .38 Special rounds." fire_sound = 'sound/weapons/gun/revolver/shot_light.ogg' icon_state = "detective" mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev38 obj_flags = UNIQUE_RENAME unique_reskin = list("Default" = "detective", - "Fitz Special" = "detective_fitz", - "Police Positive Special" = "detective_police", - "Blued Steel" = "detective_blued", "Stainless Steel" = "detective_stainless", "Gold Trim" = "detective_gold", "Leopard Spots" = "detective_leopard", @@ -200,25 +197,26 @@ pin = /obj/item/firing_pin manufacturer = MANUFACTURER_NONE -/obj/item/gun/ballistic/revolver/nagant - name = "\improper Nagant revolver" - desc = "An ancient model of revolver with notoriously poor ergonomics, chambered in 7.62x38mmR. Uniquely able to be suppressed." - icon_state = "nagant" - can_suppress = TRUE - manufacturer = MANUFACTURER_NONE +/obj/item/gun/ballistic/revolver/montagne + name = "\improper HP Montagne" + desc = "An ornate break-open revolver issued to high-ranking members of the Saint-Roumain Militia. Chambered in .38 Special." + icon = 'icons/obj/guns/48x32guns.dmi' + icon_state = "montagne" + manufacturer = MANUFACTURER_HUNTERSPRIDE spread_unwielded = 12 recoil = 0 - recoil_unwielded = 0 - mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev762 + mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev38/big -/obj/item/gun/ballistic/revolver/hunting - name = "hunting revolver" - desc = "A massive, long-barreled revolver designed for the most dangerous game. Can only be reloaded one cartridge at a time due to its reinforced frame. Uses .45-70 ammo." - icon_state = "hunting" +/obj/item/gun/ballistic/revolver/ashhand + name = "HP Ashhand" + desc = "A massive, long-barreled revolver often used by the Saint-Roumain Militia as protection against big game. Can only be reloaded one cartridge at a time due to its reinforced frame. Uses .45-70 ammo." + icon = 'icons/obj/guns/48x32guns.dmi' + icon_state = "ashhand" mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev4570 fire_sound = 'sound/weapons/gun/revolver/shot_hunting.ogg' + manufacturer = MANUFACTURER_HUNTERSPRIDE wield_slowdown = 0.5 spread_unwielded = 5 spread = 2 @@ -329,15 +327,11 @@ user.drop_all_held_items() user.Paralyze(80) -/obj/item/gun/ballistic/revolver/srm - name = "SRM Standard Issue .357 Revolver" //should have used the pepperbox... - desc = "A sturdy, powerful, and reliable revolver utilized by the Saint-Roumain Militia." - manufacturer = MANUFACTURER_HUNTERSPRIDE - -/obj/item/gun/ballistic/revolver/pepperbox - name = "\improper pepperbox pistol" +/obj/item/gun/ballistic/revolver/firebrand + name = "\improper HP Firebrand" desc = "An archaic precursor to revolver-type firearms, this gun was rendered completely obsolete millennia ago. While fast to fire, it is extremely inaccurate. Uses .357 ammo." icon_state = "pepperbox" + item_state = "hp_generic_fresh" mag_type = /obj/item/ammo_box/magazine/internal/cylinder/pepperbox spread = 20 manufacturer = MANUFACTURER_HUNTERSPRIDE @@ -345,17 +339,18 @@ fire_delay = 0 semi_auto = TRUE -/obj/item/gun/ballistic/revolver/cattleman - name = "\improper Cattleman" - desc = "A strangely ancient revolver. Despite the age, it is a favorite of fast drawing spacers and officers in various militaries, but sometimes very rarely used in small colonial police units. Uses .45 ACP." +/obj/item/gun/ballistic/revolver/shadow + name = "\improper HP Shadow" + desc = "A mid-size revolver. Despite the antiquated design, it is cheap, reliable, and stylish, making it a favorite among fast-drawing spacers and the officers of various militaries, as well as small-time police units. Chambered in .45." fire_sound = 'sound/weapons/gun/revolver/cattleman.ogg' icon = 'icons/obj/guns/48x32guns.dmi' - icon_state = "cattleman" + icon_state = "shadow" mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev45 + manufacturer = MANUFACTURER_HUNTERSPRIDE obj_flags = UNIQUE_RENAME - unique_reskin = list("Default" = "cattleman", - "Army" = "cattleman_army", - "General" = "cattleman_general" + unique_reskin = list("Default" = "shadow", + "Army" = "shadow_army", + "General" = "shadow_general" ) recoil = 0 //weaker than normal revovler, no recoil diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm index 6506edc4bb1d..60aa20ab3a50 100644 --- a/code/modules/projectiles/guns/ballistic/rifle.dm +++ b/code/modules/projectiles/guns/ballistic/rifle.dm @@ -1,10 +1,15 @@ /obj/item/gun/ballistic/rifle name = "Bolt Rifle" desc = "Some kind of bolt-action rifle. You get the feeling you shouldn't have this." + icon = 'icons/obj/guns/48x32guns.dmi' + mob_overlay_icon = 'icons/mob/clothing/back.dmi' icon_state = "hunting" item_state = "hunting" mag_type = /obj/item/ammo_box/magazine/internal/boltaction bolt_wording = "bolt" + w_class = WEIGHT_CLASS_BULKY + weapon_weight = WEAPON_HEAVY + slot_flags = ITEM_SLOT_BACK bolt_type = BOLT_TYPE_STANDARD semi_auto = FALSE internal_magazine = TRUE @@ -35,9 +40,18 @@ process_chamber(FALSE, FALSE, FALSE) bolt_locked = TRUE update_appearance() + if (magazine && !magazine?.ammo_count() && empty_autoeject && !internal_magazine) + eject_magazine(display_message = FALSE) + update_appearance() return drop_bolt(user) +/obj/item/gun/ballistic/rifle/eject_magazine(mob/user, display_message = TRUE, obj/item/ammo_box/magazine/tac_load = null) + if (!bolt_locked && empty_autoeject) + to_chat(user, "The bolt is closed!") + return + return ..() + /obj/item/gun/ballistic/rifle/can_shoot() if (bolt_locked) return FALSE @@ -57,38 +71,49 @@ // BOLT ACTION RIFLE // /////////////////////// -/obj/item/gun/ballistic/rifle/boltaction - name = "\improper Illestren Hunting Rifle" - desc = "One of Hunter's Pride most successful firearms. The bolt-action is popular among colonists, pirates, snipers, and countless more. Chambered in 7.62x54." - sawn_desc = "An extremely sawn-off Illestren, generally known as an \"obrez\". There was probably a reason it wasn't made this short to begin with." - w_class = WEIGHT_CLASS_BULKY - weapon_weight = WEAPON_HEAVY - icon = 'icons/obj/guns/48x32guns.dmi' - mob_overlay_icon = 'icons/mob/clothing/back.dmi' - icon_state = "hunting" - item_state = "hunting" - slot_flags = ITEM_SLOT_BACK - mag_type = /obj/item/ammo_box/magazine/internal/boltaction - can_bayonet = TRUE - knife_x_offset = 27 - knife_y_offset = 13 +/obj/item/gun/ballistic/rifle/illestren + name = "\improper HP Illestren" + desc = "A sturdy and conventional bolt-action rifle. One of Hunter's Pride's most successful firearms, the Illestren is popular among colonists, pirates, snipers, and countless others. Chambered in 8x50mmR." + sawn_desc = "An Illestren rifle sawn down to a ridiculously small size. There was probably a reason it wasn't made this short to begin with, but it still packs a punch." + eject_sound = 'sound/weapons/gun/rifle/vickland_unload.ogg' + eject_empty_sound = 'sound/weapons/gun/rifle/vickland_unload.ogg' + icon_state = "illestren" + item_state = "illestren" + internal_magazine = FALSE + mag_type = /obj/item/ammo_box/magazine/illestren_a850r + empty_autoeject = TRUE + eject_sound_vary = FALSE can_be_sawn_off = TRUE manufacturer = MANUFACTURER_HUNTERSPRIDE -/obj/item/gun/ballistic/rifle/boltaction/sawoff(mob/user) +/obj/item/gun/ballistic/rifle/illestren/sawoff(mob/user) . = ..() if(.) spread = 36 + spread_unwielded = 108 can_bayonet = FALSE - item_state = "hunting_sawn" + item_state = "illestren_sawn" + mob_overlay_state = item_state + weapon_weight = WEAPON_MEDIUM //you can fire it onehanded, makes it worse than worse than useless onehanded, but you can -/obj/item/gun/ballistic/rifle/boltaction/blow_up(mob/user) +/obj/item/gun/ballistic/rifle/illestren/blow_up(mob/user) . = 0 if(chambered && chambered.BB) process_fire(user, user, FALSE) . = 1 -/obj/item/gun/ballistic/rifle/boltaction/solgov +/obj/item/gun/ballistic/rifle/illestren/factory + desc = "A sturdy and conventional bolt-action rifle. One of Hunter's Pride's most successful firearms, this example has been kept in excellent shape and may as well be fresh out of the workshop. Chambered in 8x50mmR." + icon_state = "illestren_factory" + item_state = "illestren_factory" + +/obj/item/gun/ballistic/rifle/illestren/sawoff(mob/user) + . = ..() + if(.) + item_state = "illestren_factory_sawn" + mob_overlay_state = item_state + +/obj/item/gun/ballistic/rifle/solgov name = "SSG-669C" desc = "A bolt-action sniper rifle used by Solarian troops. Beloved for its rotary design and accuracy. Chambered in 8x58mm Caseless." mag_type = /obj/item/ammo_box/magazine/internal/boltaction/solgov @@ -109,17 +134,25 @@ wield_slowdown = 1 wield_delay = 1.3 SECONDS -/obj/item/gun/ballistic/rifle/boltaction/roumain - name = "standard-issue 'Smile' rifle" - desc = "A bolt-action rifle usually given to mercenary hunters of the Saint-Roumain Militia. Chambered in .300 Magnum." +/obj/item/gun/ballistic/rifle/scout + name = "HP Scout" + desc = "A powerful bolt-action rifle usually given to mercenary hunters of the Saint-Roumain Militia, equally suited for taking down big game or two-legged game. Chambered in .300 Magnum." mag_type = /obj/item/ammo_box/magazine/internal/boltaction/smile - icon_state = "roma" - item_state = "roma" + fire_sound = 'sound/weapons/gun/rifle/scout.ogg' + + rack_sound = 'sound/weapons/gun/rifle/scout_bolt_out.ogg' + bolt_drop_sound = 'sound/weapons/gun/rifle/scout_bolt_in.ogg' + icon_state = "scout" + item_state = "scout" can_be_sawn_off = FALSE + zoomable = TRUE + zoom_amt = 10 //Long range, enough to see in front of you, but no tiles behind you. + zoom_out_amt = 5 + manufacturer = MANUFACTURER_HUNTERSPRIDE -/obj/item/gun/ballistic/rifle/boltaction/enchanted +/obj/item/gun/ballistic/rifle/illestren/enchanted name = "enchanted bolt-action rifle" desc = "Careful not to lose your head." var/guns_left = 30 @@ -127,7 +160,7 @@ can_be_sawn_off = FALSE manufacturer = MANUFACTURER_NONE -/obj/item/gun/ballistic/rifle/boltaction/enchanted/arcane_barrage +/obj/item/gun/ballistic/rifle/illestren/enchanted/arcane_barrage name = "arcane barrage" desc = "Pew Pew Pew." fire_sound = 'sound/weapons/emitter.ogg' @@ -145,25 +178,25 @@ mag_type = /obj/item/ammo_box/magazine/internal/boltaction/enchanted/arcane_barrage -/obj/item/gun/ballistic/rifle/boltaction/enchanted/dropped() +/obj/item/gun/ballistic/rifle/illestren/enchanted/dropped() . = ..() guns_left = 0 -/obj/item/gun/ballistic/rifle/boltaction/enchanted/proc/discard_gun(mob/living/user) +/obj/item/gun/ballistic/rifle/illestren/enchanted/proc/discard_gun(mob/living/user) user.throw_item(pick(oview(7,get_turf(user)))) -/obj/item/gun/ballistic/rifle/boltaction/enchanted/arcane_barrage/discard_gun(mob/living/user) +/obj/item/gun/ballistic/rifle/illestren/enchanted/arcane_barrage/discard_gun(mob/living/user) qdel(src) -/obj/item/gun/ballistic/rifle/boltaction/enchanted/attack_self() +/obj/item/gun/ballistic/rifle/illestren/enchanted/attack_self() return -/obj/item/gun/ballistic/rifle/boltaction/enchanted/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) +/obj/item/gun/ballistic/rifle/illestren/enchanted/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) . = ..() if(!.) return if(guns_left) - var/obj/item/gun/ballistic/rifle/boltaction/enchanted/gun = new type + var/obj/item/gun/ballistic/rifle/illestren/enchanted/gun = new type gun.guns_left = guns_left - 1 discard_gun(user) user.swap_hand() @@ -171,7 +204,7 @@ else user.dropItemToGround(src, TRUE) -/obj/item/gun/ballistic/rifle/boltaction/polymer +/obj/item/gun/ballistic/rifle/polymer name = "polymer survivor rifle" desc = "A bolt-action rifle made of scrap, desperation, and luck. Likely to shatter at any moment. Chambered in .300 Blackout." icon = 'icons/obj/guns/projectile.dmi' diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index 8d4390398075..d27b5b6edc3e 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -1,12 +1,6 @@ /obj/item/gun/ballistic/shotgun name = "shotgun" - desc = "A traditional shotgun with wood furniture and a four-shell capacity underneath." - icon_state = "shotgun" - lefthand_file = 'icons/mob/inhands/weapons/64x_guns_left.dmi' - righthand_file = 'icons/mob/inhands/weapons/64x_guns_right.dmi' item_state = "shotgun" - inhand_x_dimension = 64 - inhand_y_dimension = 64 fire_sound = 'sound/weapons/gun/shotgun/shot.ogg' vary_fire_sound = FALSE fire_sound_volume = 90 @@ -29,39 +23,80 @@ manufacturer = MANUFACTURER_HUNTERSPRIDE wield_slowdown = 0.45 - wield_delay = 0.6 SECONDS //Shotguns are really easy to put up to fire, since they are designed for CQC (at least compared to a rifle) + wield_delay = 0.8 SECONDS spread = 4 spread_unwielded = 10 - recoil = 2 + recoil = 1 recoil_unwielded = 4 /obj/item/gun/ballistic/shotgun/blow_up(mob/user) - . = 0 if(chambered && chambered.BB) process_fire(user, user, FALSE) - . = 1 + return TRUE + for(var/obj/item/ammo_casing/ammo in magazine.stored_ammo) + if(ammo.BB) + process_chamber(FALSE, FALSE) + process_fire(user, user, FALSE) + return TRUE + return FALSE + +// BRIMSTONE SHOTGUN // + +/obj/item/gun/ballistic/shotgun/brimstone + name = "HP Brimstone" + desc = "A simple and sturdy pump-action shotgun sporting a 5-round capacity, manufactured by Hunter's Pride. Found widely throughout the Frontier in the hands of hunters, pirates, police, and countless others. Chambered in 12g." + sawn_desc = "A stockless and shortened pump-action shotgun. The worsened recoil and accuracy make it a poor sidearm anywhere beyond punching distance." + fire_sound = 'sound/weapons/gun/shotgun/brimstone.ogg' + icon = 'icons/obj/guns/48x32guns.dmi' + icon_state = "brimstone" + item_state = "brimstone" -/obj/item/gun/ballistic/shotgun/lethal mag_type = /obj/item/ammo_box/magazine/internal/shot/lethal + manufacturer = MANUFACTURER_HUNTERSPRIDE + fire_delay = 1 + + can_be_sawn_off = TRUE + + +/obj/item/gun/ballistic/shotgun/brimstone/ComponentInitialize() + . = ..() + AddComponent(/datum/component/automatic_fire, 0.1 SECONDS) + +/obj/item/gun/ballistic/shotgun/brimstone/sawoff(mob/user) + . = ..() + if(.) + weapon_weight = WEAPON_MEDIUM + wield_slowdown = 0.25 + wield_delay = 0.3 SECONDS //OP? maybe + + spread = 18 + spread_unwielded = 25 + recoil = 5 //your punishment for sawing off an short shotgun + recoil_unwielded = 8 + item_state = "illestren_factory_sawn" // i couldnt care about making another sprite, looks close enough + mob_overlay_state = item_state -// RIOT SHOTGUN // +// HELLFIRE SHOTGUN // -/obj/item/gun/ballistic/shotgun/riot //for spawn in the armory - name = "riot shotgun" - desc = "A sturdy shotgun with a six-shell tube and a fixed wooden stock designed for non-lethal riot control." +/obj/item/gun/ballistic/shotgun/hellfire + name = "HP Hellfire" + desc = "A hefty pump-action riot shotgun with a seven-round tube, manufactured by Hunter's Pride. Especially popular among the Frontier's police forces. Chambered in 12g." icon = 'icons/obj/guns/48x32guns.dmi' - icon_state = "riotshotgun" - item_state = "shotgun" + icon_state = "hellfire" + item_state = "hellfire" mag_type = /obj/item/ammo_box/magazine/internal/shot/riot sawn_desc = "Come with me if you want to live." can_be_sawn_off = TRUE rack_sound = 'sound/weapons/gun/shotgun/rack_alt.ogg' fire_delay = 1 -/obj/item/gun/ballistic/shotgun/riot/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/hellfire/sawoff(mob/user) . = ..() if(.) + var/obj/item/ammo_box/magazine/internal/tube = magazine + tube.max_ammo = 5 //this makes the gun so much worse + weapon_weight = WEAPON_MEDIUM wield_slowdown = 0.25 wield_delay = 0.3 SECONDS //OP? maybe @@ -70,6 +105,8 @@ spread_unwielded = 15 recoil = 3 //or not recoil_unwielded = 5 + item_state = "dshotgun_sawn" // ditto + mob_overlay_state = item_state // Automatic Shotguns// /obj/item/gun/ballistic/shotgun/automatic @@ -86,6 +123,8 @@ ..() rack() +//im not sure what to do with the combat shotgun, as it's functionally the same as the semi auto shotguns except it automattically racks instead of being semi-auto + /obj/item/gun/ballistic/shotgun/automatic/combat name = "combat shotgun" desc = "A semi-automatic shotgun with tactical furniture and six-shell capacity underneath." @@ -161,14 +200,12 @@ righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi' inhand_x_dimension = 32 inhand_y_dimension = 32 - w_class = WEIGHT_CLASS_NORMAL weapon_weight = WEAPON_MEDIUM mag_type = /obj/item/ammo_box/magazine/m12g can_suppress = FALSE burst_size = 1 fire_delay = 0 - pin = /obj/item/firing_pin/implant/pindicate - fire_sound = 'sound/weapons/gun/shotgun/shot.ogg' + fire_sound = 'sound/weapons/gun/shotgun/bulldog.ogg' actions_types = list() mag_display = TRUE empty_indicator = TRUE @@ -200,7 +237,13 @@ pin = /obj/item/firing_pin manufacturer = MANUFACTURER_INTEQ -/obj/item/gun/ballistic/shotgun/bulldog/minutemen +/obj/item/gun/ballistic/shotgun/bulldog/suns + name = "\improper Bulldog-C Shotgun" + desc = "A variation of the Bulldog manufactured by Scarborough Arms for SUNS. Its shorter barrel is intended to provide additional maneuverability in personal defense scenarios." + icon_state = "bulldog_suns" + item_state = "bulldog_suns" + +/obj/item/gun/ballistic/shotgun/bulldog/minutemen //TODO: REPATH name = "\improper CM-15" desc = "A standard-issue shotgun of the Colonial Minutemen, most often used by boarding crews. Only compatible with specialized 8-round magazines." icon = 'icons/obj/guns/48x32guns.dmi' @@ -219,34 +262,87 @@ /obj/item/gun/ballistic/shotgun/doublebarrel name = "double-barreled shotgun" - desc = "A true classic. Both barrels can be fired in quick succession." + desc = "A classic break action shotgun, hand-made in a Hunter's Pride workshop. Both barrels can be fired in quick succession or even simultaneously. Guns like this have been popular with hunters, sporters, and criminals for millennia. Chambered in 12g." + sawn_desc = "A break action shotgun cut down to the size of a sidearm. While the recoil is even harsher, it offers a lot of power in a very small package. Chambered in 12g." + + + icon = 'icons/obj/guns/48x32guns.dmi' + base_icon_state = "dshotgun" + icon_state = "dshotgun" - item_state = "shotgun_db" + item_state = "dshotgun" + + rack_sound = 'sound/weapons/gun/shotgun/dbshotgun_break.ogg' + bolt_drop_sound = 'sound/weapons/gun/shotgun/dbshotgun_close.ogg' + w_class = WEIGHT_CLASS_BULKY weapon_weight = WEAPON_MEDIUM force = 10 flags_1 = CONDUCT_1 slot_flags = ITEM_SLOT_BACK mag_type = /obj/item/ammo_box/magazine/internal/shot/dual - sawn_desc = "Omar's coming!" + obj_flags = UNIQUE_RENAME - rack_sound_volume = 0 unique_reskin = list("Default" = "dshotgun", - "Dark Red Finish" = "dshotgun_d", - "Ash" = "dshotgun_f", - "Faded Grey" = "dshotgun_g", - "Maple" = "dshotgun_l", - "Rosewood" = "dshotgun_p" + "Stainless Steel" = "dshotgun_white", + "Stained Green" = "dshotgun_green" ) semi_auto = TRUE - bolt_type = BOLT_TYPE_NO_BOLT can_be_sawn_off = TRUE + bolt_type = BOLT_TYPE_NO_BOLT pb_knockback = 3 // it's a super shotgun! manufacturer = MANUFACTURER_HUNTERSPRIDE + bolt_wording = "barrel" + +/obj/item/gun/ballistic/shotgun/doublebarrel/unique_action(mob/living/user) + if (bolt_locked == FALSE) + to_chat(user, "You snap open the [bolt_wording] of \the [src].") + playsound(src, rack_sound, rack_sound_volume, rack_sound_vary) + chambered = null + var/num_unloaded = 0 + for(var/obj/item/ammo_casing/casing_bullet in get_ammo_list(FALSE, TRUE)) + casing_bullet.forceMove(drop_location()) + casing_bullet.bounce_away(FALSE, NONE) + num_unloaded++ + SSblackbox.record_feedback("tally", "station_mess_created", 1, casing_bullet.name) + if (num_unloaded) + playsound(user, eject_sound, eject_sound_volume, eject_sound_vary) + update_appearance() + bolt_locked = TRUE + update_appearance() + return + drop_bolt(user) + +/obj/item/gun/ballistic/shotgun/doublebarrel/drop_bolt(mob/user = null) + playsound(src, bolt_drop_sound, bolt_drop_sound_volume, FALSE) + if (user) + to_chat(user, "You snap the [bolt_wording] of \the [src] closed.") + chamber_round() + bolt_locked = FALSE + update_appearance() + +/obj/item/gun/ballistic/shotgun/doublebarrel/can_shoot() + if (bolt_locked) + return FALSE + return ..() + +/obj/item/gun/ballistic/shotgun/doublebarrel/attackby(obj/item/A, mob/user, params) + if (!bolt_locked) + to_chat(user, "The [bolt_wording] is shut closed!") + return + return ..() + +/obj/item/gun/ballistic/shotgun/doublebarrel/update_icon_state() + . = ..() + if(current_skin) + icon_state = "[unique_reskin[current_skin]][sawn_off ? "_sawn" : ""][bolt_locked ? "_open" : ""]" + else + icon_state = "[base_icon_state || initial(icon_state)][sawn_off ? "_sawn" : ""][bolt_locked ? "_open" : ""]" + /obj/item/gun/ballistic/shotgun/doublebarrel/AltClick(mob/user) . = ..() - if(unique_reskin && !current_skin && user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY)) + if(unique_reskin && !current_skin && user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY) && (!bolt_locked)) reskin_obj(user) /obj/item/gun/ballistic/shotgun/doublebarrel/sawoff(mob/user) @@ -260,12 +356,29 @@ spread_unwielded = 15 recoil = 3 //or not recoil_unwielded = 5 + item_state = "dshotgun_sawn" + mob_overlay_state = item_state + +/obj/item/gun/ballistic/shotgun/doublebarrel/roumain + name = "HP antique double-barreled shotgun" + desc = "A special-edition shotgun hand-made by Hunter's Pride with a high-quality walnut stock inlaid with brass scrollwork. Shotguns like this are very rare outside of the Saint-Roumain Militia's ranks. Otherwise functionally identical to a common double-barreled shotgun. Chambered in 12g." + sawn_desc = "A special-edition Hunter's Pride shotgun, cut down to the size of a sidearm by some barbarian. The brass inlay on the stock and engravings on the barrel have been obliterated in the process, destroying any value beyond its use as a crude sidearm." + base_icon_state = "dshotgun_srm" + icon_state = "dshotgun_srm" + item_state = "dshotgun_srm" + unique_reskin = null + +/obj/item/gun/ballistic/shotgun/doublebarrel/roumain/sawoff(mob/user) + . = ..() + if(.) + item_state = "dshotgun_srm_sawn" // IMPROVISED SHOTGUN // /obj/item/gun/ballistic/shotgun/doublebarrel/improvised name = "improvised shotgun" desc = "A length of pipe and miscellaneous bits of scrap fashioned into a rudimentary single-shot shotgun." + base_icon_state = "ishotgun" icon_state = "ishotgun" item_state = "ishotgun" w_class = WEIGHT_CLASS_BULKY @@ -414,6 +527,7 @@ /obj/item/gun/ballistic/shotgun/doublebarrel/brazil name = "six-barreled \"TRABUCO\" shotgun" desc = "Dear fucking god, what the fuck even is this!? The recoil caused by the sheer act of firing this thing would probably kill you, if the gun itself doesn't explode in your face first! Theres a green flag with a blue circle and a yellow diamond around it. Some text in the circle says: \"ORDEM E PROGRESSO.\"" + base_icon_state = "shotgun_brazil" icon_state = "shotgun_brazil" icon = 'icons/obj/guns/48x32guns.dmi' lefthand_file = 'icons/mob/inhands/weapons/64x_guns_left.dmi' @@ -424,10 +538,11 @@ attack_verb = list("bludgeoned", "smashed") mag_type = /obj/item/ammo_box/magazine/internal/shot/sex burst_size = 6 - fire_delay = 0.1 + fire_delay = 0.8 pb_knockback = 12 unique_reskin = null recoil = 10 + recoil_unwielded = 30 weapon_weight = WEAPON_LIGHT fire_sound = 'sound/weapons/gun/shotgun/quadfire.ogg' rack_sound = 'sound/weapons/gun/shotgun/quadrack.ogg' @@ -453,19 +568,24 @@ /obj/item/gun/ballistic/shotgun/doublebarrel/brazil/death name = "Force of Nature" desc = "So you have chosen death." + base_icon_state = "shotgun_e" icon_state = "shotgun_e" burst_size = 100 + fire_delay = 0.1 pb_knockback = 40 recoil = 100 + recoil_unwielded = 200 fire_sound_volume = 100 mag_type = /obj/item/ammo_box/magazine/internal/shot/hundred //Lever-Action Rifles -/obj/item/gun/ballistic/shotgun/winchester - name = "Winchester MK.2" - desc = "A sturdy lever-action rifle with hand-stamped Hunter's Pride marks on the receiver. Modern and sleek." - icon_state = "winchester" - item_state = "winchester" +/obj/item/gun/ballistic/shotgun/flamingarrow + name = "HP Flaming Arrow" + desc = "A sturdy and lightweight lever-action rifle with hand-stamped Hunter's Pride marks on the receiver. A popular choice among Frontier homesteaders for hunting small game and rudimentary self-defense. Chambered in .38." + sawn_desc = "A lever-action rifle that has been sawed down and modified for extra portability. While surprisingly effective as a sidearm, the more important benefit is how much cooler it looks." + base_icon_state = "flamingarrow" + icon_state = "flamingarrow" + item_state = "flamingarrow" icon = 'icons/obj/guns/48x32guns.dmi' mob_overlay_icon = 'icons/mob/clothing/back.dmi' lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi' @@ -473,39 +593,75 @@ inhand_x_dimension = 32 inhand_y_dimension = 32 mag_type = /obj/item/ammo_box/magazine/internal/shot/winchester - fire_sound = 'sound/weapons/gun/rifle/shot.ogg' + fire_sound = 'sound/weapons/gun/rifle/flamingarrow.ogg' rack_sound = 'sound/weapons/gun/rifle/ak47_cocked.ogg' bolt_wording = "lever" cartridge_wording = "bullet" + can_be_sawn_off = TRUE + + wield_slowdown = 0.5 + wield_delay = 0.65 SECONDS spread = -5 spread_unwielded = 7 + recoil = 0 recoil_unwielded = 2 - wield_slowdown = 0.5 -/obj/item/gun/ballistic/shotgun/winchester/rack(mob/user = null) +//sawn off + weapon_weight = WEAPON_MEDIUM + + wield_slowdown = 0.25 + wield_delay = 0.2 SECONDS //THE COWBOY RIFLE + + spread = 4 + spread_unwielded = 12 + + recoil = 1 + recoil_unwielded = 2 + +/obj/item/gun/ballistic/shotgun/flamingarrow/update_icon_state() + . = ..() + if(current_skin) + icon_state = "[unique_reskin[current_skin]][sawn_off ? "_sawn" : ""]" + else + icon_state = "[base_icon_state || initial(icon_state)][sawn_off ? "_sawn" : ""]" + + +/obj/item/gun/ballistic/shotgun/flamingarrow/factory + desc = "A sturdy and lightweight lever-action rifle with hand-stamped Hunter's Pride marks on the receiver. This example has been kept in excellent shape and may as well be fresh out of the workshop. Chambered in .38." + icon_state = "flamingarrow_factory" + base_icon_state = "flamingarrow_factory" + item_state = "flamingarrow_factory" + +/obj/item/gun/ballistic/shotgun/flamingarrow/factory/sawoff(mob/user) . = ..() - if(!wielded) - SpinAnimation(7,1) + if(.) + item_state = "flamingarrow_factory_sawn" + +/obj/item/gun/ballistic/shotgun/flamingarrow/bolt + name = "HP Flaming Bolt" + desc = "A sturdy, excellently-made lever-action rifle. This one appears to be a genuine antique, kept in incredibly good condition despite its advanced age. Chambered in .38." + icon_state = "flamingbolt" + item_state = "flamingbolt" -/obj/item/gun/ballistic/shotgun/winchester/mk1 - name = "Winchester MK.1" - desc = "A sturdy lever-action rifle. This antique pattern appears to be in excellent condition despite its age." - icon_state = "winchestermk1" - item_state = "winchestermk1" +/obj/item/gun/ballistic/shotgun/flamingarrow/bolt/sawoff(mob/user) + . = ..() + if(.) + item_state = "flamingbolt_sawn" //Elephant Gun /obj/item/gun/ballistic/shotgun/doublebarrel/twobore - name = "two-bore rifle" - desc = "Take this, elephant! If you want an intact trophy, don't aim for the head. Chambered in two-bore." + name = "HP Huntsman" + desc = "A comically huge double-barreled rifle replete with brass inlays depicting flames and naturalistic scenes, clearly meant for the nastiest monsters the Frontier has to offer. If you want an intact trophy, don't aim for the head. Chambered in two-bore." icon = 'icons/obj/guns/48x32guns.dmi' lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi' inhand_x_dimension = 32 inhand_y_dimension = 32 - icon_state = "twobore" - item_state = "twobore" + base_icon_state = "huntsman" + icon_state = "huntsman" + item_state = "huntsman" unique_reskin = null attack_verb = list("bludgeoned", "smashed") mag_type = /obj/item/ammo_box/magazine/internal/shot/twobore @@ -523,30 +679,27 @@ manufacturer = MANUFACTURER_HUNTERSPRIDE //Break-Action Rifle -/obj/item/gun/ballistic/shotgun/contender - name = "Contender" - desc = "A single-shot break-action rifle made by Hunter's Pride. Boasts excellent accuracy and stopping power. Uses .45-70 ammo." - icon_state = "contender" - item_state = "contender" +/obj/item/gun/ballistic/shotgun/doublebarrel/beacon + name = "HP Beacon" + desc = "A single-shot break-action rifle made by Hunter's Pride and sold to civilian hunters. Boasts excellent accuracy and stopping power. Uses .45-70 ammo." + sawn_desc= "A single-shot break-action pistol chambered in .45-70. A bit difficult to aim." + base_icon_state = "beacon" + icon_state = "beacon" + item_state = "beacon" icon = 'icons/obj/guns/48x32guns.dmi' mob_overlay_icon = 'icons/mob/clothing/back.dmi' - lefthand_file = 'icons/mob/inhands/weapons/64x_guns_left.dmi' - righthand_file = 'icons/mob/inhands/weapons/64x_guns_right.dmi' inhand_x_dimension = 32 inhand_y_dimension = 32 - mag_type = /obj/item/ammo_box/magazine/internal/shot/contender + mag_type = /obj/item/ammo_box/magazine/internal/shot/beacon fire_sound = 'sound/weapons/gun/revolver/shot_hunting.ogg' can_be_sawn_off=TRUE - sawn_desc= "A single-shot pistol. It's hard to aim without a front sight." w_class = WEIGHT_CLASS_BULKY weapon_weight = WEAPON_MEDIUM force = 10 flags_1 = CONDUCT_1 slot_flags = ITEM_SLOT_BACK obj_flags = UNIQUE_RENAME - rack_sound_volume = 0 semi_auto = TRUE - bolt_type = BOLT_TYPE_NO_BOLT can_be_sawn_off = TRUE pb_knockback = 3 wield_slowdown = 0.7 @@ -555,12 +708,11 @@ recoil = 0 recoil_unwielded = 5 - - -/obj/item/gun/ballistic/shotgun/contender/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/doublebarrel/beacon/sawoff(mob/user) . = ..() if(.) - item_state = "contender_sawn" + item_state = "beacon_sawn" + mob_overlay_state = item_state wield_slowdown = 0.5 wield_delay = 0.5 SECONDS @@ -568,3 +720,16 @@ spread = 2 recoil = 2 recoil_unwielded = 3 + +/obj/item/gun/ballistic/shotgun/doublebarrel/beacon/factory + desc = "A single-shot break-action rifle made by Hunter's Pride and sold to civilian hunters. This example has been kept in excellent shape and may as well be fresh out of the workshop. Uses .45-70 ammo." + sawn_desc= "A single-shot break-action pistol chambered in .45-70. A bit difficult to aim." + base_icon_state = "beacon_factory" + icon_state = "beacon_factory" + item_state = "beacon_factory" + +/obj/item/gun/ballistic/shotgun/doublebarrel/beacon/factory/sawoff(mob/user) + . = ..() + if(.) + item_state = "beacon_factory_sawn" + mob_overlay_state = item_state diff --git a/code/modules/projectiles/guns/ballistic/smg.dm b/code/modules/projectiles/guns/ballistic/smg.dm index 7efd0a579925..23d853753f9b 100644 --- a/code/modules/projectiles/guns/ballistic/smg.dm +++ b/code/modules/projectiles/guns/ballistic/smg.dm @@ -5,7 +5,7 @@ spread = 4 spread_unwielded = 10 wield_slowdown = 0.35 - recoil_unwielded = 0.5 + recoil_unwielded = 4 load_sound = 'sound/weapons/gun/smg/smg_reload.ogg' load_empty_sound = 'sound/weapons/gun/smg/smg_reload.ogg' @@ -25,14 +25,14 @@ /obj/item/gun/ballistic/automatic/smg/proto/ComponentInitialize() . = ..() - AddComponent(/datum/component/automatic_fire, 0.15 SECONDS) + AddComponent(/datum/component/automatic_fire, 0.13 SECONDS) /obj/item/gun/ballistic/automatic/smg/proto/unrestricted pin = /obj/item/firing_pin /obj/item/gun/ballistic/automatic/smg/c20r name = "\improper C-20r SMG" - desc = "A bullpup .45 SMG, designated 'C-20r'. Has a 'Scarborough Arms - Per falcis, per pravitas' buttstamp." + desc = "A bullpup .45 SMG designated 'C-20r.' Its buttstamp reads 'Scarborough Arms - Per falcis, per pravitas.'" icon_state = "c20r" item_state = "c20r" mag_type = /obj/item/ammo_box/magazine/smgm45 @@ -47,7 +47,7 @@ /obj/item/gun/ballistic/automatic/smg/c20r/ComponentInitialize() . = ..() - AddComponent(/datum/component/automatic_fire, 0.15 SECONDS) + AddComponent(/datum/component/automatic_fire, 0.13 SECONDS) /obj/item/gun/ballistic/automatic/smg/c20r/unrestricted pin = /obj/item/firing_pin @@ -63,6 +63,11 @@ icon_state = "cobra20" item_state = "cobra20" +/obj/item/gun/ballistic/automatic/smg/c20r/suns + desc = "A bullpup .45 SMG designated 'C-20r.' Its buttstamp reads 'Scarborough Arms - Per falcis, per pravitas.' This one is painted in SUNS' colors." + icon_state = "c20r_suns" + item_state = "c20r_suns" + /obj/item/gun/ballistic/automatic/smg/inteq name = "\improper SkM-44(k)" desc = "An extreme modification of an obsolete assault rifle, converted into a compact submachine gun by IRMG. Chambered in 10mm." @@ -80,7 +85,7 @@ /obj/item/gun/ballistic/automatic/smg/inteq/ComponentInitialize() . = ..() - AddComponent(/datum/component/automatic_fire, 0.15 SECONDS) + AddComponent(/datum/component/automatic_fire, 0.13 SECONDS) /obj/item/gun/ballistic/automatic/smg/wt550 name = "\improper WT-550 Automatic Rifle" @@ -88,7 +93,6 @@ icon_state = "wt550" item_state = "arg" mag_type = /obj/item/ammo_box/magazine/wt550m9 - fire_delay = 2 can_suppress = FALSE burst_size = 1 actions_types = list() @@ -103,7 +107,7 @@ /obj/item/gun/ballistic/automatic/smg/wt550/ComponentInitialize() . = ..() - AddComponent(/datum/component/automatic_fire, 0.15 SECONDS) + AddComponent(/datum/component/automatic_fire, 0.13 SECONDS) /obj/item/gun/ballistic/automatic/smg/mini_uzi name = "\improper Type U3 Uzi" @@ -143,7 +147,7 @@ /obj/item/gun/ballistic/automatic/smg/vector/ComponentInitialize() . = ..() - AddComponent(/datum/component/automatic_fire, 0.15 SECONDS) + AddComponent(/datum/component/automatic_fire, 0.13 SECONDS) /obj/item/gun/ballistic/automatic/smg/m90 name = "\improper M-90gl Carbine" @@ -223,29 +227,34 @@ update_appearance() return -/obj/item/gun/ballistic/automatic/smg/thompson - name = "\improper Thompson" - desc = "A old submachinegun design. Chambered in .45." - icon_state = "tommygun" - item_state = "tommygun" +/obj/item/gun/ballistic/automatic/smg/firestorm //weapon designed by Apogee-dev + name = "HP Firestorm" + desc = "An unconventional submachinegun, rarely issued to Saint-Roumain Militia mercenary hunters for outstanding situations where normal hunting weapons fall short. Chambered in .45." icon = 'icons/obj/guns/48x32guns.dmi' - slot_flags = 0 - mag_type = /obj/item/ammo_box/magazine/smgm45 + icon_state = "firestorm" + item_state = "firestorm" + mag_type = /obj/item/ammo_box/magazine/c45_firestorm_mag can_suppress = FALSE burst_size = 1 actions_types = list() fire_delay = 1 - bolt_type = BOLT_TYPE_OPEN + rack_sound = 'sound/weapons/gun/smg/uzi_cocked.ogg' + fire_sound = 'sound/weapons/gun/smg/firestorm.ogg' + + manufacturer = MANUFACTURER_HUNTERSPRIDE wield_slowdown = 0.4 -/obj/item/gun/ballistic/automatic/smg/thompson/Initialize() +/obj/item/gun/ballistic/automatic/smg/firestorm/Initialize() . = ..() - AddComponent(/datum/component/automatic_fire, 0.15 SECONDS) + AddComponent(/datum/component/automatic_fire, 0.13 SECONDS) + +/obj/item/gun/ballistic/automatic/smg/firestorm/pan //spawns with pan magazine, can take sticks instead of just drums, not sure where this would be used, maybe erts? + spawnwithmagazine = FALSE -/obj/item/gun/ballistic/automatic/smg/thompson/drum - name = "\improper Chicago Typewriter" - desc = "A gun for good fellas. Chambered in .45." - mag_type = /obj/item/ammo_box/magazine/smgm45/drum +/obj/item/gun/ballistic/automatic/smg/firestorm/pan/Initialize() + . = ..() + magazine = new /obj/item/ammo_box/magazine/c45_firestorm_mag/pan(src) + chamber_round() /obj/item/gun/ballistic/automatic/smg/cm5 name = "\improper CM-5" @@ -259,7 +268,7 @@ /obj/item/gun/ballistic/automatic/smg/cm5/ComponentInitialize() . = ..() - AddComponent(/datum/component/automatic_fire, 0.15 SECONDS) + AddComponent(/datum/component/automatic_fire, 0.13 SECONDS) /obj/item/gun/ballistic/automatic/smg/cm5/no_mag spawnwithmagazine = FALSE @@ -278,4 +287,4 @@ /obj/item/gun/ballistic/automatic/smg/aks74u/ComponentInitialize() . = ..() - AddComponent(/datum/component/automatic_fire, 0.15 SECONDS) //last autofire system made the fire rate REALLY fucking fast, but because of how poor it was, it was normal speed. + AddComponent(/datum/component/automatic_fire, 0.13 SECONDS) //last autofire system made the fire rate REALLY fucking fast, but because of how poor it was, it was normal speed. diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index 229d49c4a8c6..a6be53e82ea2 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -299,3 +299,9 @@ playsound(user, BB.hitsound_non_living, 50, TRUE) cell.use(E.e_cost) . = "[user] casually lights their [A.name] with [src]. Damn." + + +/obj/item/gun/energy/examine(mob/user) + . = ..() + if(ammo_type.len > 1) + . += "You can switch firemodes by pressing the unqiue action key. By default, this is space" diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm index 223cdc09e157..5c7153727646 100644 --- a/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/code/modules/projectiles/guns/energy/energy_gun.dm @@ -217,7 +217,7 @@ /obj/item/gun/energy/e_gun/smg/Initialize() . = ..() - AddComponent(/datum/component/automatic_fire, 0.2 SECONDS) + AddComponent(/datum/component/automatic_fire, 0.13 SECONDS) /obj/item/gun/energy/e_gun/iot name = "\improper E-SG 500 Second Edition" diff --git a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm index f5efacbf96c3..9ed110dfa041 100644 --- a/code/modules/projectiles/guns/energy/pulse.dm +++ b/code/modules/projectiles/guns/energy/pulse.dm @@ -89,7 +89,7 @@ to_chat(user, "[src.name] has three settings, and they are all DESTROY.") /obj/item/gun/energy/pulse/pistol/m1911 - name = "\improper M1911-P" + name = "\improper Candor-P" desc = "A compact pulse core in a classic handgun frame for Nanotrasen officers. It's not the size of the gun, it's the size of the hole it puts through people." icon_state = "m1911" item_state = "gun" diff --git a/code/modules/projectiles/projectile/bullets/pistol.dm b/code/modules/projectiles/projectile/bullets/pistol.dm index 6a1323e481dc..a04fc2995c26 100644 --- a/code/modules/projectiles/projectile/bullets/pistol.dm +++ b/code/modules/projectiles/projectile/bullets/pistol.dm @@ -64,7 +64,7 @@ stamina = 38 armour_penetration = -40 -// .45 (M1911, C20r, Thompson) +// .45 (Candor, C20r, Thompson) /obj/projectile/bullet/c45 name = ".45 bullet" diff --git a/code/modules/projectiles/projectile/bullets/revolver.dm b/code/modules/projectiles/projectile/bullets/revolver.dm index ecd8b5abbbb9..ec210c410dc4 100644 --- a/code/modules/projectiles/projectile/bullets/revolver.dm +++ b/code/modules/projectiles/projectile/bullets/revolver.dm @@ -1,10 +1,3 @@ -// 7.62x38mmR (Nagant Revolver) - -/obj/projectile/bullet/n762 - name = "7.62x38mmR bullet" - damage = 30 - armour_penetration = -20 - // .50 AE (Desert Eagle) /obj/projectile/bullet/a50AE @@ -155,4 +148,4 @@ damage = 20 armour_penetration = -45 ricochet_incidence_leeway = 20 - ricochet_chance = 45 + ricochet_chance = 65 diff --git a/code/modules/projectiles/projectile/bullets/rifle.dm b/code/modules/projectiles/projectile/bullets/rifle.dm index f72ecfdfbcd4..d819fabc61b4 100644 --- a/code/modules/projectiles/projectile/bullets/rifle.dm +++ b/code/modules/projectiles/projectile/bullets/rifle.dm @@ -5,10 +5,10 @@ damage = 25 armour_penetration = 20 -// 7.62x54mmR (Illestren Rifle) +// 8x50mmR (Illestren Rifle) -/obj/projectile/bullet/a762_54 - name = "7.62x54mmR bullet" +/obj/projectile/bullet/a8_50r + name = "8x50mmR bullet" speed = 0.3 damage = 30 armour_penetration = 40 @@ -25,7 +25,7 @@ // Bloat evil wizard stupid shit /obj/projectile/bullet/a762_enchanted - name = "enchanted 7.62x54mmR bullet" + name = "enchanted 8x50mmR bullet" damage = 20 stamina = 80 @@ -52,8 +52,8 @@ //.308 WIN (M514 & GAL DMRs) -/obj/projectile/bullet/win308 - name = ".308 Winchester" +/obj/projectile/bullet/a308 + name = ".308" speed = 0.3 damage = 30 armour_penetration = 40 diff --git a/code/modules/projectiles/projectile/bullets/shotgun.dm b/code/modules/projectiles/projectile/bullets/shotgun.dm index 0979a268ee16..e102c4c3b48f 100644 --- a/code/modules/projectiles/projectile/bullets/shotgun.dm +++ b/code/modules/projectiles/projectile/bullets/shotgun.dm @@ -8,7 +8,7 @@ name = "beanbag slug" damage = 10 stamina = 60 - armour_penetration = -20 + armour_penetration = -45 /obj/projectile/bullet/incendiary/shotgun name = "incendiary slug" @@ -73,8 +73,7 @@ /obj/projectile/bullet/pellet/buckshot name = "buckshot pellet" - damage = 20 - armour_penetration = -10 + damage = 13 /obj/projectile/bullet/pellet/rubbershot name = "rubbershot pellet" @@ -101,6 +100,7 @@ /obj/projectile/bullet/pellet/improvised damage = 6 + armour_penetration = -35 tile_dropoff = 0.6 // Mech Scattershot diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 05d91f17fe47..d727cbfd0fa6 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -505,221 +505,6 @@ ..() return -#define MUT_MSG_IMMEDIATE 1 -#define MUT_MSG_EXTENDED 2 -#define MUT_MSG_ABOUT2TURN 3 - -/datum/reagent/mutationtoxin - name = "Stable Mutation Toxin" - description = "A humanizing toxin." - color = "#5EFF3B" //RGB: 94, 255, 59 - metabolization_rate = 0.2 //metabolizes to prevent micro-dosage - taste_description = "slime" - var/race = /datum/species/human - var/list/mutationtexts = list( "You don't feel very well." = MUT_MSG_IMMEDIATE, - "Your skin feels a bit abnormal." = MUT_MSG_IMMEDIATE, - "Your limbs begin to take on a different shape." = MUT_MSG_EXTENDED, - "Your appendages begin morphing." = MUT_MSG_EXTENDED, - "You feel as though you're about to change at any moment!" = MUT_MSG_ABOUT2TURN) - var/cycles_to_turn = 20 //the current_cycle threshold / iterations needed before one can transform - process_flags = ORGANIC | SYNTHETIC //WS Edit - IPCs - -/datum/reagent/mutationtoxin/on_mob_life(mob/living/carbon/human/H) - . = TRUE - if(!istype(H)) - return - if(!(H.dna?.species) || !(H.mob_biotypes & MOB_ORGANIC)) - return - var/datum/species/mutation = pick(race) //I honestly feel extremely uncomfortable. I do not like the fact that this works. - var/current_species = H.dna.species.type - if(mutation && mutation != current_species) - H.set_species(mutation) - else - to_chat(H, "The pain vanishes suddenly. You feel no different.") - H.reagents.del_reagent(type) - - if(prob(10)) - var/list/pick_ur_fav = list() - var/filter = NONE - if(current_cycle <= (cycles_to_turn*0.3)) - filter = MUT_MSG_IMMEDIATE - else if(current_cycle <= (cycles_to_turn*0.8)) - filter = MUT_MSG_EXTENDED - else - filter = MUT_MSG_ABOUT2TURN - - for(var/i in mutationtexts) - if(mutationtexts[i] == filter) - pick_ur_fav += i - to_chat(H, "[pick(pick_ur_fav)]") - - if(current_cycle >= cycles_to_turn) - var/datum/species/species_type = race - H.set_species(species_type) - H.reagents.del_reagent(type) - to_chat(H, "You've become \a [lowertext(initial(species_type.name))]!") - ..() - -/datum/reagent/mutationtoxin/classic //The one from plasma on green slimes - name = "Mutation Toxin" - description = "A corruptive toxin." - color = "#13BC5E" // rgb: 19, 188, 94 - race = /datum/species/jelly/slime - process_flags = ORGANIC | SYNTHETIC //WS Edit - IPCs - -/datum/reagent/mutationtoxin/unstable - name = "Unstable Mutation Toxin" - description = "A mostly safe mutation toxin." - color = "#13BC5E" // rgb: 19, 188, 94 - race = list(/datum/species/jelly/slime, - /datum/species/human, - /datum/species/lizard, - /datum/species/fly, - /datum/species/moth, - /datum/species/pod, - /datum/species/jelly, - /datum/species/abductor - ) - process_flags = ORGANIC | SYNTHETIC - -/datum/reagent/mutationtoxin/lizard - name = "Sarathi Mutation Toxin" - description = "A lizarding toxin." - color = "#5EFF3B" //RGB: 94, 255, 59 - race = /datum/species/lizard - process_flags = ORGANIC | SYNTHETIC //WS Edit - IPCs - taste_description = "dragon's breath but not as cool" - -/datum/reagent/mutationtoxin/fly - name = "Fly Mutation Toxin" - description = "An insectifying toxin." - color = "#5EFF3B" //RGB: 94, 255, 59 - race = /datum/species/fly - process_flags = ORGANIC | SYNTHETIC //WS Edit - IPCs - taste_description = "trash" - -/datum/reagent/mutationtoxin/moth - name = "Moth Mutation Toxin" - description = "A glowing toxin." - color = "#5EFF3B" //RGB: 94, 255, 59 - race = /datum/species/moth - process_flags = ORGANIC | SYNTHETIC //WS Edit - IPCs - taste_description = "clothing" - -/datum/reagent/mutationtoxin/pod - name = "Podperson Mutation Toxin" - description = "A vegetalizing toxin." - color = "#5EFF3B" //RGB: 94, 255, 59 - race = /datum/species/pod - process_flags = ORGANIC | SYNTHETIC //WS Edit - IPCs - taste_description = "flowers" - -/datum/reagent/mutationtoxin/jelly - name = "Imperfect Mutation Toxin" - description = "A jellyfying toxin." - color = "#5EFF3B" //RGB: 94, 255, 59 - race = /datum/species/jelly - process_flags = ORGANIC | SYNTHETIC //WS Edit - IPCs - taste_description = "grandma's gelatin" - -/datum/reagent/mutationtoxin/jelly/on_mob_life(mob/living/carbon/human/H) - if(isjellyperson(H)) - to_chat(H, "Your jelly shifts and morphs, turning you into another subspecies!") - var/species_type = pick(subtypesof(/datum/species/jelly)) - H.set_species(species_type) - H.reagents.del_reagent(type) - return TRUE - if(current_cycle >= cycles_to_turn) //overwrite since we want subtypes of jelly - var/datum/species/species_type = pick(subtypesof(race)) - H.set_species(species_type) - H.reagents.del_reagent(type) - to_chat(H, "You've become \a [initial(species_type.name)]!") - return TRUE - return ..() - -/datum/reagent/mutationtoxin/abductor - name = "Abductor Mutation Toxin" - description = "An alien toxin." - color = "#5EFF3B" //RGB: 94, 255, 59 - race = /datum/species/abductor - process_flags = ORGANIC | SYNTHETIC //WS Edit - IPCs - taste_description = "something out of this world... no, universe!" - -/datum/reagent/mutationtoxin/android - name = "Android Mutation Toxin" - description = "A robotic toxin." - color = "#5EFF3B" //RGB: 94, 255, 59 - race = /datum/species/android - process_flags = ORGANIC | SYNTHETIC //WS Edit - IPCs - taste_description = "circuitry and steel" - -/datum/reagent/mutationtoxin/ipc - name = "IPC Mutation Toxin" - description = "An integrated positronic toxin." - color = "#5EFF3B" //RGB: 94, 255, 59 - race = /datum/species/ipc - process_flags = ORGANIC | SYNTHETIC - -/datum/reagent/mutationtoxin/kepi //crying - name = "Kepori Mutation Toxin" - description = "A feathery toxin." - race = /datum/species/kepori - process_flags = ORGANIC | SYNTHETIC - taste_description = "a familiar white meat" - -//BLACKLISTED RACES -/datum/reagent/mutationtoxin/skeleton - name = "Skeleton Mutation Toxin" - description = "A scary toxin." - color = "#5EFF3B" //RGB: 94, 255, 59 - race = /datum/species/skeleton - process_flags = ORGANIC | SYNTHETIC //WS Edit - IPCs - taste_description = "milk... and lots of it" - -/datum/reagent/mutationtoxin/zombie - name = "Zombie Mutation Toxin" - description = "An undead toxin." - color = "#5EFF3B" //RGB: 94, 255, 59 - race = /datum/species/zombie //Not the infectious kind. The days of xenobio zombie outbreaks are long past. - process_flags = ORGANIC | SYNTHETIC //WS Edit - IPCs - taste_description = "brai...nothing in particular" - -/datum/reagent/mutationtoxin/goofzombie - name = "Krokodil Zombie Mutation Toxin" - description = "An undead toxin... kinda..." - color = "#5EFF3B" //RGB: 94, 255, 59 - race = /datum/species/human/krokodil_addict //Not the infectious kind. The days of xenobio zombie outbreaks are long past. - process_flags = ORGANIC | SYNTHETIC - -/datum/reagent/mutationtoxin/ash - name = "Ash Mutation Toxin" - description = "An ashen toxin." - color = "#5EFF3B" //RGB: 94, 255, 59 - race = /datum/species/lizard/ashwalker - process_flags = ORGANIC | SYNTHETIC //WS Edit - IPCs - taste_description = "savagery" - -//DANGEROUS RACES -/datum/reagent/mutationtoxin/shadow - name = "Shadow Mutation Toxin" - description = "A dark toxin." - color = "#5EFF3B" //RGB: 94, 255, 59 - race = /datum/species/shadow - process_flags = ORGANIC | SYNTHETIC //WS Edit - IPCs - taste_description = "the night" - -/datum/reagent/mutationtoxin/plasma - name = "Plasma Mutation Toxin" - description = "A plasma-based toxin." - color = "#5EFF3B" //RGB: 94, 255, 59 - race = /datum/species/plasmaman - process_flags = ORGANIC | SYNTHETIC //WS Edit - IPCs - taste_description = "plasma" - -#undef MUT_MSG_IMMEDIATE -#undef MUT_MSG_EXTENDED -#undef MUT_MSG_ABOUT2TURN - /datum/reagent/mulligan name = "Mulligan Toxin" description = "This toxin will rapidly change the DNA of human beings. Commonly used by Syndicate spies and assassins in need of an emergency ID change." @@ -2765,14 +2550,6 @@ if(prob(min(current_cycle/4, 10))) M.adjustOrganLoss(ORGAN_SLOT_STOMACH,3*REM) -/datum/reagent/mutationtoxin/kobold - name = "Kobold Mutation Toxin" - description = "An ashen toxin. Something about this seems lesser." - color = "#5EFF3B" //RGB: 94, 255, 59 - race = /datum/species/lizard/ashwalker/kobold - process_flags = ORGANIC | SYNTHETIC //WS Edit - IPCs - taste_description = "short savagery" - /datum/reagent/polar_bear_fur //used for icewine crafting name = "Polar Bear Fur" description = "Fur obtained from griding up a polar bears hide" diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm index d50605dcd7f6..10cd8ffc72eb 100644 --- a/code/modules/reagents/chemistry/recipes/others.dm +++ b/code/modules/reagents/chemistry/recipes/others.dm @@ -149,12 +149,6 @@ required_reagents = list(/datum/reagent/ammonia = 2, /datum/reagent/nitrogen = 1, /datum/reagent/oxygen = 2) required_temp = 525 -//Technically a mutation toxin -/datum/chemical_reaction/mulligan - results = list(/datum/reagent/mulligan = 1) - required_reagents = list(/datum/reagent/mutationtoxin/jelly = 1, /datum/reagent/toxin/mutagen = 1) - - ////////////////////////////////// VIROLOGY ////////////////////////////////////////// /datum/chemical_reaction/virus_food diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm index 07753cea4a15..97290d54213f 100644 --- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm +++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm @@ -44,13 +44,13 @@ //Green /datum/chemical_reaction/slime/slimemutate - results = list(/datum/reagent/mutationtoxin/jelly = 1) + results = list(/datum/reagent/consumable/berryjuice = 1) // Removal of mutation toxins. This used to be jellyperson toxin, but is now just jelly. required_reagents = list(/datum/reagent/toxin/plasma = 1) required_other = TRUE required_container = /obj/item/slime_extract/green /datum/chemical_reaction/slime/unstabletoxin - results = list(/datum/reagent/mutationtoxin/unstable = 1) + results = list(/datum/reagent/toxin/mutagen = 1) // Removal of mutation toxins. This used to be unstable toxin, but is now unstable mutagen. required_reagents = list(/datum/reagent/uranium/radium = 1) required_other = TRUE required_container = /obj/item/slime_extract/green diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 187935fa0b25..58476c423275 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -182,14 +182,6 @@ icon_state = "pill22" rename_with_volume = TRUE -///////////////////////////////////////// this pill is used only in a legion mob drop -/obj/item/reagent_containers/pill/shadowtoxin - name = "black pill" - desc = "I wouldn't eat this if I were you." - icon_state = "pill9" - color = "#454545" - list_reagents = list(/datum/reagent/mutationtoxin/shadow = 5) - ///////////////////////////////////////// Psychologist inventory pills /obj/item/reagent_containers/pill/happinesspsych name = "mood stabilizer pill" diff --git a/code/modules/requests/request.dm b/code/modules/requests/request.dm new file mode 100644 index 000000000000..0ac37f63187e --- /dev/null +++ b/code/modules/requests/request.dm @@ -0,0 +1,37 @@ +/** + * # Request + * + * A representation of an in-game request, such as a prayer. + */ +/datum/request + /// Unique ID of the request + var/id + /// Atomic ID for increment unique request IDs + var/static/atomic_id = 0 + /// The type of request + var/req_type + /// The owner of the request, the player who created it + var/client/owner + /// The ckey of the owner, used for re-binding variables on login + var/owner_ckey + /// The name of the owner, in format /, assigned at time of request creation + var/owner_name + /// The message associated with the request + var/message + /// Just any information, which you can to send with request. For example paper datum. + var/additional_information + /// When the request was created + var/timestamp + +/datum/request/New(client/requestee, type, request, additional_info) + if (!requestee) + qdel(src) + return + id = ++atomic_id + owner = requestee + owner_ckey = owner.ckey + req_type = type + message = request + timestamp = world.time + additional_information = additional_info + owner_name = key_name(requestee, FALSE) diff --git a/code/modules/requests/requests_manager.dm b/code/modules/requests/requests_manager.dm new file mode 100644 index 000000000000..e33da846d4de --- /dev/null +++ b/code/modules/requests/requests_manager.dm @@ -0,0 +1,249 @@ +/// Requests from prayers +#define REQUEST_PRAYER "request_prayer" +/// Requests for Centcom +#define REQUEST_CENTCOM "request_centcom" +/// Requests for the Syndicate +#define REQUEST_SYNDICATE "request_syndicate" +/// Requests for the nuke code +#define REQUEST_NUKE "request_nuke" +/// Requests somebody from fax +#define REQUEST_FAX "request_fax" + +GLOBAL_DATUM_INIT(requests, /datum/request_manager, new) + +/** + * # Request Manager + * + * Handles all player requests (prayers, centcom requests, syndicate requests) + * that occur in the duration of a round. + */ +/datum/request_manager + /// Associative list of ckey -> list of requests + var/list/requests = list() + /// List where requests can be accessed by ID + var/list/requests_by_id = list() + +/datum/request_manager/Destroy(force, ...) + QDEL_LIST(requests) + return ..() + +/** + * Used in the new client pipeline to catch when clients are reconnecting and need to have their + * reference re-assigned to the 'owner' variable of any requests + * + * Arguments: + * * C - The client who is logging in + */ +/datum/request_manager/proc/client_login(client/C) + if (!requests[C.ckey]) + return + for (var/datum/request/request as anything in requests[C.ckey]) + request.owner = C + +/** + * Used in the destroy client pipeline to catch when clients are disconnecting and need to have their + * reference nulled on the 'owner' variable of any requests + * + * Arguments: + * * C - The client who is logging out + */ +/datum/request_manager/proc/client_logout(client/C) + if (!requests[C.ckey]) + return + for (var/datum/request/request as anything in requests[C.ckey]) + request.owner = null + +/** + * Creates a request for a prayer, and notifies admins who have the sound notifications enabled when appropriate + * + * Arguments: + * * C - The client who is praying + * * message - The prayer + * * is_chaplain - Boolean operator describing if the prayer is from a chaplain + */ +/datum/request_manager/proc/pray(client/C, message, is_chaplain) + request_for_client(C, REQUEST_PRAYER, message) + for(var/client/admin in GLOB.admins) + if(is_chaplain && admin.prefs.chat_toggles & CHAT_PRAYER && admin.prefs.toggles & SOUND_PRAYERS) + SEND_SOUND(admin, sound('sound/effects/pray.ogg')) + +/** + * Creates a request for a Centcom message + * + * Arguments: + * * C - The client who is sending the request + * * message - The message + */ +/datum/request_manager/proc/message_centcom(client/C, message) + request_for_client(C, REQUEST_CENTCOM, message) + +/** + * Creates a request for a Syndicate message + * + * Arguments: + * * C - The client who is sending the request + * * message - The message + */ +/datum/request_manager/proc/message_syndicate(client/C, message) + request_for_client(C, REQUEST_SYNDICATE, message) + +/** + * Creates a request for the nuclear self destruct codes + * + * Arguments: + * * C - The client who is sending the request + * * message - The message + */ +/datum/request_manager/proc/nuke_request(client/C, message) + request_for_client(C, REQUEST_NUKE, message) + +/** + * Creates a request for fax answer + * + * Arguments: + * * requester - The client who is sending the request + * * message - Paper with text.. some stamps.. and another things. + */ +/datum/request_manager/proc/fax_request(client/requester, message, additional_info) + request_for_client(requester, REQUEST_FAX, message, additional_info) + +/** + * Creates a request and registers the request with all necessary internal tracking lists + * + * Arguments: + * * C - The client who is sending the request + * * type - The type of request, see defines + * * message - The message + */ +/datum/request_manager/proc/request_for_client(client/C, type, message, additional_info) + var/datum/request/request = new(C, type, message, additional_info) + if (!requests[C.ckey]) + requests[C.ckey] = list() + requests[C.ckey] += request + requests_by_id.len++ + requests_by_id[request.id] = request + +/datum/request_manager/ui_interact(mob/user, datum/tgui/ui = null) + ui = SStgui.try_update_ui(user, src, ui) + if (!ui) + ui = new(user, src, "RequestManager") + ui.open() + +/datum/request_manager/ui_state(mob/user) + return GLOB.admin_state + +/datum/request_manager/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + if (..()) + return + + // Only admins should be sending actions + if (!check_rights(R_ADMIN)) + to_chat(usr, "You do not have permission to do this, you require +ADMIN") + return + + // Get the request this relates to + var/id = params["id"] != null ? text2num(params["id"]) : null + if (!id) + to_chat(usr, "Failed to find a request ID in your action, please report this") + CRASH("Received an action without a request ID, this shouldn't happen!") + var/datum/request/request = !id ? null : requests_by_id[id] + var/datum/admins/admin_datum = GLOB.admin_datums[usr.ckey] + + switch(action) + if ("pp") + var/mob/M = request.owner?.mob + usr.client.holder.show_player_panel(M) + return TRUE + if ("vv") + var/mob/M = request.owner?.mob + usr.client.debug_variables(M) + return TRUE + if ("sm") + var/mob/M = request.owner?.mob + usr.client.cmd_admin_subtle_message(M) + return TRUE + if ("flw") + var/mob/M = request.owner?.mob + admin_datum.admin_follow(M) + return TRUE + if ("tp") + if(!SSticker.HasRoundStarted()) + to_chat(usr,"The game hasn't started yet!") + return TRUE + var/mob/M = request.owner?.mob + if(!ismob(M)) + var/datum/mind/D = M + if(!istype(D)) + to_chat(usr, "This can only be used on instances of type /mob and /mind") + return TRUE + else + D.traitor_panel() + return TRUE + else + usr.client.holder.show_traitor_panel(M) + return TRUE + if ("logs") + var/mob/M = request.owner?.mob + if(!ismob(M)) + to_chat(usr, "This can only be used on instances of type /mob.") + return TRUE + show_individual_logging_panel(M, null, null) + return TRUE + if ("smite") + if(!check_rights(R_FUN)) + to_chat(usr, "Insufficient permissions to smite, you require +FUN") + return TRUE + var/mob/living/carbon/human/H = request.owner?.mob + if (!H || !istype(H)) + to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human") + return TRUE + usr.client.smite(H) + return TRUE + if ("rply") + if (request.req_type == REQUEST_PRAYER) + to_chat(usr, "Cannot reply to a prayer") + return TRUE + var/mob/M = request.owner?.mob + usr.client.admin_headset_message(M, request.req_type == REQUEST_SYNDICATE ? RADIO_CHANNEL_SYNDICATE : RADIO_CHANNEL_CENTCOM) + return TRUE + if ("setcode") + if (request.req_type != REQUEST_NUKE) + to_chat(usr, "You cannot set the nuke code for a non-nuke-code-request request!") + return TRUE + var/code = random_nukecode() + for(var/obj/machinery/nuclearbomb/selfdestruct/SD in GLOB.nuke_list) + SD.r_code = code + message_admins("[key_name_admin(usr)] has set the self-destruct code to \"[code]\".") + return TRUE + if ("show") + if(request.req_type != REQUEST_FAX) + to_chat(usr, "Request doesn't have a paper to read.") + return TRUE + var/obj/item/paper/request_message = request.additional_information + request_message.ui_interact(usr) + return TRUE + +/datum/request_manager/ui_data(mob/user) + . = list( + "requests" = list() + ) + for (var/ckey in requests) + for (var/datum/request/request as anything in requests[ckey]) + var/list/data = list( + "id" = request.id, + "req_type" = request.req_type, + "owner" = request.owner ? "[REF(request.owner)]" : null, + "owner_ckey" = request.owner_ckey, + "owner_name" = request.owner_name, + "message" = request.message, + "additional_info" = request.additional_information, + "timestamp" = request.timestamp, + "timestamp_str" = station_time_timestamp(wtime = request.timestamp) + ) + .["requests"] += list(data) + +#undef REQUEST_PRAYER +#undef REQUEST_CENTCOM +#undef REQUEST_SYNDICATE +#undef REQUEST_NUKE +#undef REQUEST_FAX diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index ec4038ec8f2b..59e1ab844544 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -137,13 +137,6 @@ other types of metals and chemistry for reagents). . = ..() blueprints[1] = new /datum/design/c10mm() -/obj/item/disk/design_disk/ammo_n762 - name = "Design Disk - 7.62x38mmR Ammo" - desc = "A design disk containing the pattern for an ammo holder of 7.62x38mmR ammo, used in Nagant revolvers. It's a wonder anybody still makes these." - -/obj/item/disk/design_disk/ammo_n762/Initialize() - . = ..() - blueprints[1] = new /datum/design/n762() /obj/item/disk/design_disk/adv/disposable_gun name = "design disk - disposable gun" @@ -166,3 +159,11 @@ other types of metals and chemistry for reagents). . = ..() blueprints[1] = new /datum/design/cmm_ripley_upgrade() blueprints[2] = new /datum/design/cmm_durand_upgrade() + +/obj/item/disk/design_disk/ammo_c9mm + name = "Design Disk - 9mm Ammo" + desc = "A design disk containing the pattern for a refill box of standard 9mm ammo, used in Commander pistols." + +/obj/item/disk/design_disk/ammo_c9mm/Initialize() + . = ..() + blueprints[1] = new /datum/design/c9mmautolathe() diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index 4d28452521af..c0b4757e2548 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -280,7 +280,7 @@ /datum/design/commanderammo name = "Commander magazine (9mm)" - desc = "A single stack M1911 reproduction magazine, modified to chamber 9mm and fit into Commander sidearms." + desc = "A single stack magazine chambered in 9mm for Commander sidearms." id = "commanderammo" build_type = PROTOLATHE materials = list(/datum/material/iron = 15000) @@ -298,10 +298,10 @@ category = list("Ammo") departmental_flags = DEPARTMENTAL_FLAG_SECURITY -/datum/design/m1911ammo - name = "M1911 magazine (.45)" - desc = "A single stack M1911 magazine, faithfully designed to chamber .45 and fit into the popular M1911 sidearms." - id = "m1911ammo" +/datum/design/candorammo + name = "Candor magazine (.45)" + desc = "A single stack Candor magazine, faithfully designed to chamber .45 and fit into the popular Candor sidearms." + id = "candorammo" build_type = PROTOLATHE materials = list(/datum/material/iron = 15000) build_path = /obj/item/ammo_box/magazine/m45 @@ -663,14 +663,6 @@ build_path = /obj/item/ammo_box/magazine/m45 category = list("Imported") -/datum/design/n762 - name = "Ammo Holder (7.62x38mmR)" - id = "n762" - build_type = AUTOLATHE - materials = list(/datum/material/iron = 20000) - build_path = /obj/item/ammo_box/n762 - category = list("Imported") - /datum/design/disposable_gun name = "Disposable Gun" id = "disposable" @@ -698,13 +690,13 @@ category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_BALLISTICS -/datum/design/m1911 - name = "M1911 Pistol" +/datum/design/Candor + name = "Candor Pistol" desc = "A classic pistol." - id = "m1911" + id = "candor" build_type = PROTOLATHE materials = list(/datum/material/iron = 8000, /datum/material/silver = 3000, /datum/material/titanium = 2000) - build_path = /obj/item/gun/ballistic/automatic/pistol/m1911/no_mag + build_path = /obj/item/gun/ballistic/automatic/pistol/candor/factory/no_mag category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_BALLISTICS @@ -719,22 +711,12 @@ departmental_flags = DEPARTMENTAL_FLAG_BALLISTICS /datum/design/winchestermk2 - name = "Winchester Mk2 Rifle" - desc = "A newer model of Winchester Rifle, sturdy and lever action." + name = "Flaming Arrow Lever-action Rifle" + desc = "A Flaming Arrow, sturdy and lever action." id = "winchmk2" build_type = PROTOLATHE materials = list(/datum/material/iron = 10000, /datum/material/glass = 3000, /datum/material/silver = 4000, /datum/material/gold = 500) - build_path = /obj/item/gun/ballistic/shotgun/winchester - category = list("Weapons") - departmental_flags = DEPARTMENTAL_FLAG_BALLISTICS - -/datum/design/srmrevolver - name = "SRM Standard Issue .357 Revolver" - desc = "A trusty revolver common amongst hunters and Montagnes." - id = "srmrevolver" - build_type = PROTOLATHE - materials = list(/datum/material/iron = 9000, /datum/material/glass = 1000, /datum/material/silver = 1000, /datum/material/uranium = 1000) - build_path = /obj/item/gun/ballistic/revolver/srm + build_path = /obj/item/gun/ballistic/shotgun/flamingarrow category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_BALLISTICS @@ -744,27 +726,27 @@ id = "pepperbox" build_type = PROTOLATHE materials = list(/datum/material/iron = 7000, /datum/material/glass = 1000) - build_path = /obj/item/gun/ballistic/revolver/pepperbox + build_path = /obj/item/gun/ballistic/revolver/firebrand category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_BALLISTICS -/datum/design/nagantrevolver - name = "Nagant Revolver" - desc = "An old model of revolver. Uses 7.62." - id = "nagantrevolver" +/datum/design/montagne + name = "Montagne Revolver" + desc = "The revolver of choice of Hunger Montagnes all over. Uses .38." + id = "montagne" build_type = PROTOLATHE materials = list(/datum/material/iron = 90000, /datum/material/glass = 1500, /datum/material/silver = 1500) - build_path = /obj/item/gun/ballistic/revolver/nagant + build_path = /obj/item/gun/ballistic/revolver/montagne category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_BALLISTICS /datum/design/stripper762 - name = "7.62x54mm Stripperclip" - desc = "A stripperclip of 7.62x54mm." + name = "8x50mmR Stripperclip" + desc = "A stripperclip of 8x50mmR." id = "stripper762" build_type = PROTOLATHE materials = list(/datum/material/iron = 10000) - build_path = /obj/item/ammo_box/a762 + build_path = /obj/item/ammo_box/magazine/illestren_a850r category = list("Ammo") departmental_flags = DEPARTMENTAL_FLAG_BALLISTICS @@ -778,12 +760,20 @@ category = list("Ammo") departmental_flags = DEPARTMENTAL_FLAG_BALLISTICS -/datum/design/nagantrifle - name = "Nagant Rifle" - desc = "An old model of rifle. Uses 7.62." - id = "nagantrifle" +/datum/design/illestren + name = "Illestren Rifle" + desc = "The pride of Hunter's Pride. Uses 8x50mmR." + id = "illestren" build_type = PROTOLATHE materials = list(/datum/material/iron = 85000, /datum/material/glass = 1500, /datum/material/silver = 1500) - build_path = /obj/item/gun/ballistic/rifle/boltaction + build_path = /obj/item/gun/ballistic/rifle/illestren/factory category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_BALLISTICS + +/datum/design/c9mmautolathe + name = "Ammo Box (9mm)" + id = "c9mmautolathe" + build_type = AUTOLATHE + materials = list(/datum/material/iron = 15000) + build_path = /obj/item/ammo_box/c9mm + category = list("Imported") diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index f714f65f154d..9016d60515e7 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -322,7 +322,7 @@ ejectItem(TRUE) else if(prob(EFFECT_PROB_VERYLOW-badThingCoeff)) visible_message("[src]'s chemical chamber has sprung a leak!") - chosenchem = pick(/datum/reagent/mutationtoxin/classic,/datum/reagent/nanomachines,/datum/reagent/toxin/acid) + chosenchem = pick(/datum/reagent/nanomachines,/datum/reagent/toxin/acid) var/datum/reagents/R = new/datum/reagents(50) R.my_atom = src R.add_reagent(chosenchem , 50) diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 79009ed1fdf6..12ce53dc175d 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -19,7 +19,7 @@ // Security Stuff "sec_rshot", "sec_beanbag_slug", "sec_slug", "sec_Islug", "sec_dart", "sec_38", "buckshot_shell", "beanbag_slug", "rubber_shot", //Handgun Ammo (Security) - "commanderammo", "stechkinammo", "m1911ammo", "m9cammo", "c9mm", "c10mm", "c45", "c556mmHITP", "rubbershot9mm", "rubbershot10mm", "rubbershot45", "rubbershot556mmHITP", + "commanderammo", "stechkinammo", "candorammo", "m9cammo", "c9mm", "c10mm", "c45", "c556mmHITP", "rubbershot9mm", "rubbershot10mm", "rubbershot45", "rubbershot556mmHITP", // Construction Materials "rglass", "plasteel", "plastitanium", "plasmaglass", "plasmareinforcedglass", "titaniumglass", "plastitaniumglass", // You People Are Animals @@ -766,7 +766,7 @@ display_name = "Saint-Roumain Pistols" description = "Pistols normally manufactured by the Saint-Roumain Militia." prereq_ids = list("adv_ballistics") - design_ids = list("pepperbox", "nagantrevolver", "derringer", "speedload357") + design_ids = list("pepperbox", "montagne", "derringer", "speedload357") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) export_price = 5000 @@ -775,7 +775,7 @@ display_name = "Saint-Roumain Specialty Ballistics" description = "Specialty ballistics normally manufactured by the Saint-Roumain Militia." prereq_ids = list("srm_ballistics", "srm_pistols") - design_ids = list("srmrevolver", "m1911", "stripper762", "nagantrifle") + design_ids = list("candor", "stripper762", "illestren") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 12000) export_price = 5000 diff --git a/code/modules/research/xenobiology/crossbreeding/regenerative.dm b/code/modules/research/xenobiology/crossbreeding/regenerative.dm index 8e71efc3177d..7cb7f8677408 100644 --- a/code/modules/research/xenobiology/crossbreeding/regenerative.dm +++ b/code/modules/research/xenobiology/crossbreeding/regenerative.dm @@ -265,8 +265,6 @@ Regenerative extracts: target.visible_message("The [target] suddenly changes color!") var/mob/living/simple_animal/slime/S = target S.random_colour() - if(isjellyperson(target)) - target.reagents.add_reagent(/datum/reagent/mutationtoxin/jelly,5) organ_loss += 17 diff --git a/code/modules/spells/spell_types/infinite_guns.dm b/code/modules/spells/spell_types/infinite_guns.dm index d3361284814a..3f400a8fb4bc 100644 --- a/code/modules/spells/spell_types/infinite_guns.dm +++ b/code/modules/spells/spell_types/infinite_guns.dm @@ -10,7 +10,7 @@ clothes_req = TRUE cooldown_min = 10 //Gun wizard action_icon_state = "bolt_action" - var/summon_path = /obj/item/gun/ballistic/rifle/boltaction/enchanted + var/summon_path = /obj/item/gun/ballistic/rifle/illestren/enchanted /obj/effect/proc_holder/spell/targeted/infinite_guns/cast(list/targets, mob/user = usr) for(var/mob/living/carbon/C in targets) @@ -24,4 +24,4 @@ name = "Arcane Barrage" desc = "Fire a torrent of arcane energy at your foes with this (powerful) spell. Deals much more damage than Lesser Summon Guns, but won't knock targets down. Requires both hands free to use. Learning this spell makes you unable to learn Lesser Summon Gun." action_icon_state = "arcane_barrage" - summon_path = /obj/item/gun/ballistic/rifle/boltaction/enchanted/arcane_barrage + summon_path = /obj/item/gun/ballistic/rifle/illestren/enchanted/arcane_barrage diff --git a/code/modules/spells/spell_types/rightandwrong.dm b/code/modules/spells/spell_types/rightandwrong.dm index ee40b2782574..aae206d6fb0a 100644 --- a/code/modules/spells/spell_types/rightandwrong.dm +++ b/code/modules/spells/spell_types/rightandwrong.dm @@ -3,6 +3,7 @@ // 1 in 50 chance of getting something really special. #define SPECIALIST_MAGIC_PROB 2 +// todo: this probably neds to be reorganized sometime GLOBAL_LIST_INIT(summoned_guns, list( /obj/item/gun/energy/disabler, /obj/item/gun/energy/e_gun, @@ -17,9 +18,9 @@ GLOBAL_LIST_INIT(summoned_guns, list( /obj/item/gun/ballistic/shotgun/doublebarrel, /obj/item/gun/ballistic/shotgun, /obj/item/gun/ballistic/shotgun/automatic/combat, - /obj/item/gun/ballistic/automatic/assault/ar, + /obj/item/gun/ballistic/automatic/assault/p16, /obj/item/gun/ballistic/revolver/mateba, - /obj/item/gun/ballistic/rifle/boltaction, + /obj/item/gun/ballistic/rifle/illestren, /obj/item/pneumatic_cannon/speargun, /obj/item/gun/ballistic/automatic/smg/mini_uzi, /obj/item/gun/energy/lasercannon, diff --git a/code/modules/surgery/organs/augments_chest.dm b/code/modules/surgery/organs/augments_chest.dm index dc95ab97cece..2cbdf9823eb6 100644 --- a/code/modules/surgery/organs/augments_chest.dm +++ b/code/modules/surgery/organs/augments_chest.dm @@ -214,9 +214,8 @@ return TRUE // Priority 3: use internals tank. - var/obj/item/tank/I = owner.internal - if(I && I.air_contents && I.air_contents.total_moles() >= num) - T.assume_air_moles(I.air_contents, num) + if(owner.internal?.air_contents?.total_moles() >= num) + T.assume_air_moles(owner.internal.air_contents, num) toggle(silent = TRUE) return FALSE diff --git a/code/modules/surgery/organs/eyes.dm b/code/modules/surgery/organs/eyes.dm index de0ebac6eddb..0c200df9f6b1 100644 --- a/code/modules/surgery/organs/eyes.dm +++ b/code/modules/surgery/organs/eyes.dm @@ -141,6 +141,7 @@ /obj/item/organ/eyes/robotic name = "robotic eyes" icon_state = "robotic_eyes" + eye_icon_state = "eyes_synth" // i feel like this should be here desc = "A very basic set of optical sensors with no extra vision modes or functions." status = ORGAN_ROBOTIC organ_flags = ORGAN_SYNTHETIC diff --git a/code/modules/surgery/organs/stomach.dm b/code/modules/surgery/organs/stomach.dm index 2e2403db14c6..bf9346b5dcd9 100644 --- a/code/modules/surgery/organs/stomach.dm +++ b/code/modules/surgery/organs/stomach.dm @@ -107,16 +107,22 @@ ..() adjust_charge(-ETHEREAL_CHARGE_FACTOR) -/obj/item/organ/stomach/ethereal/Insert(mob/living/carbon/M, special = 0) +/obj/item/organ/stomach/ethereal/Insert(mob/living/carbon/organ_owner, special = 0) ..() - RegisterSignal(owner, COMSIG_PROCESS_BORGCHARGER_OCCUPANT, PROC_REF(charge)) - RegisterSignal(owner, COMSIG_LIVING_ELECTROCUTE_ACT, PROC_REF(on_electrocute)) - -/obj/item/organ/stomach/ethereal/Remove(mob/living/carbon/M, special = 0) - UnregisterSignal(owner, COMSIG_PROCESS_BORGCHARGER_OCCUPANT) - UnregisterSignal(owner, COMSIG_LIVING_ELECTROCUTE_ACT) + RegisterSignal(organ_owner, COMSIG_PROCESS_BORGCHARGER_OCCUPANT, PROC_REF(charge)) + RegisterSignal(organ_owner, COMSIG_LIVING_ELECTROCUTE_ACT, PROC_REF(on_electrocute)) + RegisterSignal(organ_owner, COMSIG_MOB_GET_STATUS_TAB_ITEMS, PROC_REF(get_status_tab_item)) + +/obj/item/organ/stomach/ethereal/Remove(mob/living/carbon/organ_owner, special = 0) + UnregisterSignal(organ_owner, COMSIG_PROCESS_BORGCHARGER_OCCUPANT) + UnregisterSignal(organ_owner, COMSIG_LIVING_ELECTROCUTE_ACT) + UnregisterSignal(organ_owner, COMSIG_MOB_GET_STATUS_TAB_ITEMS) ..() +/obj/item/organ/stomach/ethereal/proc/get_status_tab_item(mob/living/carbon/source, list/items) + SIGNAL_HANDLER + items += "Crystal Charge: [round((crystal_charge / ETHEREAL_CHARGE_SCALING_MULTIPLIER), 0.1)]%" + /obj/item/organ/stomach/ethereal/proc/charge(datum/source, amount, repairs) adjust_charge((amount * ETHEREAL_CHARGE_SCALING_MULTIPLIER) / 70) //WS Edit -- Ethereal Charge Scaling diff --git a/code/modules/tgui/tgui.dm b/code/modules/tgui/tgui.dm index a79966f69ba1..95875473133b 100644 --- a/code/modules/tgui/tgui.dm +++ b/code/modules/tgui/tgui.dm @@ -92,8 +92,9 @@ window.acquire_lock(src) if(!window.is_ready()) window.initialize( + strict_mode = TRUE, fancy = user.client.prefs.tgui_fancy, - inline_assets = list( + assets = list( get_asset_datum(/datum/asset/simple/tgui_common), get_asset_datum(/datum/asset/simple/tgui), )) diff --git a/code/modules/tgui/tgui_window.dm b/code/modules/tgui/tgui_window.dm index 62574cb1aacd..844ba6239a0f 100644 --- a/code/modules/tgui/tgui_window.dm +++ b/code/modules/tgui/tgui_window.dm @@ -18,8 +18,12 @@ var/message_queue var/sent_assets = list() // Vars passed to initialize proc (and saved for later) - var/inline_assets - var/fancy + var/initial_strict_mode + var/initial_fancy + var/initial_assets + var/initial_inline_html + var/initial_inline_js + var/initial_inline_css var/mouse_event_macro_set = FALSE /** @@ -45,21 +49,30 @@ * state. You can begin sending messages right after initializing. Messages * will be put into the queue until the window finishes loading. * - * optional inline_assets list List of assets to inline into the html. - * optional inline_html string Custom HTML to inject. - * optional fancy bool If TRUE, will hide the window titlebar. + * optional strict_mode bool - Enables strict error handling and BSOD. + * optional fancy bool - If TRUE and if this is NOT a panel, will hide the window titlebar. + * optional assets list - List of assets to load during initialization. + * optional inline_html string - Custom HTML to inject. + * optional inline_js string - Custom JS to inject. + * optional inline_css string - Custom CSS to inject. */ /datum/tgui_window/proc/initialize( - inline_assets = list(), + strict_mode = FALSE, + fancy = FALSE, + assets = list(), inline_html = "", - fancy = FALSE) + inline_js = "", + inline_css = "") log_tgui(client, context = "[id]/initialize", window = src) if(!client) return - src.inline_assets = inline_assets - src.fancy = fancy + src.initial_fancy = fancy + src.initial_assets = assets + src.initial_inline_html = inline_html + src.initial_inline_js = inline_js + src.initial_inline_css = inline_css status = TGUI_WINDOW_LOADING fatally_errored = FALSE // Build window options @@ -72,9 +85,10 @@ // Generate page html var/html = SStgui.basehtml html = replacetextEx(html, "\[tgui:windowId]", id) - // Inject inline assets + html = replacetextEx(html, "\[tgui:strictMode]", strict_mode) + // Inject assets var/inline_assets_str = "" - for(var/datum/asset/asset in inline_assets) + for(var/datum/asset/asset in assets) var/mappings = asset.get_url_mappings() for(var/name in mappings) var/url = mappings[name] @@ -87,8 +101,17 @@ if(length(inline_assets_str)) inline_assets_str = "\n" html = replacetextEx(html, "\n", inline_assets_str) - // Inject custom HTML - html = replacetextEx(html, "\n", inline_html) + // Inject inline HTML + if (inline_html) + html = replacetextEx(html, "", inline_html) + // Inject inline JS + if (inline_js) + inline_js = "" + html = replacetextEx(html, "", inline_js) + // Inject inline CSS + if (inline_css) + inline_css = "" + html = replacetextEx(html, "", inline_css) // Open the window client << browse(html, "window=[id];[options]") // Detect whether the control is a browser @@ -97,6 +120,20 @@ if(!is_browser) winset(client, id, "on-close=\"uiclose [id]\"") +/** + * public + * + * Reinitializes the panel with previous data used for initialization. + */ +/datum/tgui_window/proc/reinitialize() + initialize( + strict_mode = initial_strict_mode, + fancy = initial_fancy, + assets = initial_assets, + inline_html = initial_inline_html, + inline_js = initial_inline_js, + inline_css = initial_inline_css) + /** * public * @@ -320,7 +357,7 @@ client << link(href_list["url"]) if("cacheReloaded") // Reinitialize - initialize(inline_assets = inline_assets, fancy = fancy) + reinitialize() // Resend the assets for(var/asset in sent_assets) send_asset(asset) diff --git a/code/modules/tgui_panel/tgui_panel.dm b/code/modules/tgui_panel/tgui_panel.dm index fdd74389c837..44fbffd917ce 100644 --- a/code/modules/tgui_panel/tgui_panel.dm +++ b/code/modules/tgui_panel/tgui_panel.dm @@ -13,9 +13,9 @@ var/broken = FALSE var/initialized_at -/datum/tgui_panel/New(client/client) +/datum/tgui_panel/New(client/client, id) src.client = client - window = new(client, "browseroutput") + window = new(client, id) window.subscribe(src, PROC_REF(on_message)) /datum/tgui_panel/Del() @@ -42,10 +42,12 @@ sleep(1) initialized_at = world.time // Perform a clean initialization - window.initialize(inline_assets = list( - get_asset_datum(/datum/asset/simple/tgui_common), - get_asset_datum(/datum/asset/simple/tgui_panel), - )) + window.initialize( + strict_mode = TRUE, + assets = list( + get_asset_datum(/datum/asset/simple/tgui_common), + get_asset_datum(/datum/asset/simple/tgui_panel), + )) window.send_asset(get_asset_datum(/datum/asset/simple/namespaced/fontawesome)) window.send_asset(get_asset_datum(/datum/asset/spritesheet/chat)) request_telemetry() diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm index d4bfa21201be..afb4beecae14 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -76,6 +76,7 @@ #include "keybinding_init.dm" #include "machine_disassembly.dm" #include "open_air.dm" +#include "outfit_names.dm" #include "outfit_sanity.dm" #include "overmap.dm" #include "pills.dm" diff --git a/code/modules/unit_tests/outfit_names.dm b/code/modules/unit_tests/outfit_names.dm new file mode 100644 index 000000000000..b381bfeb7bf5 --- /dev/null +++ b/code/modules/unit_tests/outfit_names.dm @@ -0,0 +1,12 @@ +/datum/unit_test/outfit_names/Run() + var/list/outfit_names = list() + + for(var/datum/outfit/outfit_type as anything in subtypesof(/datum/outfit)) + var/name = initial(outfit_type.name) + + if(name in outfit_names) + TEST_FAIL("Outfit name [name] is not unique: [outfit_type], [outfit_names[name]]") + + outfit_names[name] = outfit_type + + diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 53b49ab30f0b..48c79382444e 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -517,7 +517,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/dangerous/bolt_action name = "Surplus Rifle" desc = "A horribly outdated bolt action weapon. You've got to be desperate to use this." - item = /obj/item/gun/ballistic/rifle/boltaction + item = /obj/item/gun/ballistic/rifle/illestren cost = 1 include_modes = list(/datum/game_mode/nuclear) @@ -948,7 +948,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/ammo/bolt_action name = "Surplus Rifle Clip" desc = "A stripper clip used to quickly load bolt action rifles. Contains 5 rounds." - item = /obj/item/ammo_box/a762 + item = /obj/item/ammo_box/magazine/illestren_a850r cost = 1 include_modes = list(/datum/game_mode/nuclear) diff --git a/code/modules/vehicles/motorized_wheelchair.dm b/code/modules/vehicles/motorized_wheelchair.dm index add121e6a061..c9e990372374 100644 --- a/code/modules/vehicles/motorized_wheelchair.dm +++ b/code/modules/vehicles/motorized_wheelchair.dm @@ -1,6 +1,7 @@ /obj/vehicle/ridden/wheelchair/motorized name = "motorized wheelchair" desc = "A chair with big wheels. It seems to have a motor in it." + foldabletype = null max_integrity = 150 var/speed = 2 var/power_efficiency = 1 diff --git a/code/modules/vehicles/wheelchair.dm b/code/modules/vehicles/wheelchair.dm index 1f6c96bc0c01..a22b68c5a1c8 100644 --- a/code/modules/vehicles/wheelchair.dm +++ b/code/modules/vehicles/wheelchair.dm @@ -11,6 +11,8 @@ density = FALSE //Thought I couldn't fix this one easily, phew // Run speed delay is multiplied with this for vehicle move delay. var/delay_multiplier = 6.7 + ///Determines the typepath of what the object folds into + var/foldabletype = /obj/item/wheelchair /obj/vehicle/ridden/wheelchair/Initialize() . = ..() @@ -108,8 +110,38 @@ return TRUE return FALSE -/obj/vehicle/ridden/wheelchair/the_whip/driver_move(mob/living/user, direction) - if(istype(user)) - var/datum/component/riding/D = GetComponent(/datum/component/riding) - D.vehicle_move_delay = round(CONFIG_GET(number/movedelay/run_delay) * 6.7) / max(user.usable_hands, 1) - return ..() +/obj/item/wheelchair + name = "wheelchair" + desc = "A collapsed wheelchair that can be carried around." + icon = 'icons/obj/vehicles.dmi' + icon_state = "wheelchair_folded" + base_icon_state = "wheelchair_folded" + lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items_righthand.dmi' + w_class = WEIGHT_CLASS_BULKY + force = 8 //Force is same as a chair + var/unfolded_type = /obj/vehicle/ridden/wheelchair + +/obj/vehicle/ridden/wheelchair/MouseDrop(over_object, src_location, over_location) //Lets you collapse wheelchair + . = ..() + if(over_object != usr || !Adjacent(usr) || !foldabletype || !ishuman(usr) || has_buckled_mobs()) + return FALSE + usr.visible_message("[usr] begins to collapse [src].", "You begin to collapse [src].") + if(!do_after(usr, 3 SECONDS, target = src)) + return FALSE + usr.visible_message("[usr] collapses [src].", "You collapse [src].") + var/obj/vehicle/ridden/wheelchair/wheelchair_folded = new foldabletype(get_turf(src)) + usr.put_in_hands(wheelchair_folded) + qdel(src) + +/obj/item/wheelchair/attack_self(mob/user) //Deploys wheelchair on in-hand use + deploy_wheelchair(user, user.loc) + +/obj/item/wheelchair/proc/deploy_wheelchair(mob/user, atom/location) + usr.visible_message("[usr] begins to unfold [src].", "You begin to unfold [src].") + if(!do_after(usr, 3 SECONDS, target = src)) + return FALSE + usr.visible_message("[usr] deploys [src].", "You deploy [src].") + var/obj/vehicle/ridden/wheelchair/wheelchair_unfolded = new unfolded_type(location) + wheelchair_unfolded.add_fingerprint(user) + qdel(src) diff --git a/code/modules/vending/boozeomat.dm b/code/modules/vending/boozeomat.dm index 6a9b3627dfb7..9c7b8622d536 100644 --- a/code/modules/vending/boozeomat.dm +++ b/code/modules/vending/boozeomat.dm @@ -67,28 +67,6 @@ desc = "A technological marvel, supposedly able to mix just the mixture you'd like to drink the moment you ask for one. This model appears to have no access restrictions." req_access = null -/obj/machinery/vending/boozeomat/pubby_maint //abandoned bar on Pubbystation - products = list(/obj/item/reagent_containers/food/drinks/bottle/whiskey = 1, - /obj/item/reagent_containers/food/drinks/bottle/absinthe = 1, - /obj/item/reagent_containers/food/drinks/bottle/limejuice = 1, - /obj/item/reagent_containers/food/drinks/bottle/cream = 1, - /obj/item/reagent_containers/food/drinks/soda_cans/tonic = 1, - /obj/item/reagent_containers/food/drinks/drinkingglass = 10, - /obj/item/reagent_containers/food/drinks/ice = 3, - /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass = 6, - /obj/item/reagent_containers/food/drinks/flask = 1) - req_access = null - age_restrictions = FALSE - -/obj/machinery/vending/boozeomat/pubby_captain //Captain's quarters on Pubbystation - products = list(/obj/item/reagent_containers/food/drinks/bottle/rum = 1, - /obj/item/reagent_containers/food/drinks/bottle/wine = 1, - /obj/item/reagent_containers/food/drinks/ale = 1, - /obj/item/reagent_containers/food/drinks/drinkingglass = 6, - /obj/item/reagent_containers/food/drinks/ice = 1, - /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass = 4); - req_access = list(ACCESS_CAPTAIN) - /obj/machinery/vending/boozeomat/syndicate_access req_access = list(ACCESS_SYNDICATE) age_restrictions = FALSE diff --git a/code/modules/vending/coffee.dm b/code/modules/vending/coffee.dm index d67a41d54aee..67b9878744be 100644 --- a/code/modules/vending/coffee.dm +++ b/code/modules/vending/coffee.dm @@ -8,6 +8,9 @@ /obj/item/reagent_containers/food/drinks/coffee = 6, /obj/item/reagent_containers/food/drinks/mug/tea = 6, /obj/item/reagent_containers/food/drinks/mug/coco = 3) + premium = list( + /obj/item/reagent_containers/food/drinks/cafelatte = 3, + /obj/item/reagent_containers/food/drinks/soylatte = 3) contraband = list(/obj/item/reagent_containers/food/drinks/ice = 12) refill_canister = /obj/item/vending_refill/coffee default_price = 45 diff --git a/code/modules/vending/liberation.dm b/code/modules/vending/liberation.dm index d2fb11bfef4b..015bbdc2c340 100644 --- a/code/modules/vending/liberation.dm +++ b/code/modules/vending/liberation.dm @@ -12,12 +12,11 @@ /obj/item/reagent_containers/food/drinks/beer/light = 10, //O'er the ramparts we watched, were so gallantly streaming? /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/pistol/candor = 2, /obj/item/gun/ballistic/automatic/smg/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/assault/ar = 2) + /obj/item/gun/ballistic/shotgun = 2) premium = list( /obj/item/ammo_box/magazine/smgm9mm = 2, /obj/item/ammo_box/magazine/m50 = 4, diff --git a/code/modules/vending/magivend.dm b/code/modules/vending/magivend.dm deleted file mode 100644 index 49fec066b703..000000000000 --- a/code/modules/vending/magivend.dm +++ /dev/null @@ -1,23 +0,0 @@ -/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;Burn it all!;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 - default_price = 250 - extra_price = 500 - payment_department = ACCOUNT_SRV - light_mask = "magivend-light-mask" diff --git a/code/modules/vending/medical.dm b/code/modules/vending/medical.dm index 21d2fa18badb..e4489b0a23d8 100644 --- a/code/modules/vending/medical.dm +++ b/code/modules/vending/medical.dm @@ -6,46 +6,36 @@ 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 = list(ACCESS_MEDICAL) products = list( - /obj/item/stack/medical/gauze = 8, - /obj/item/reagent_containers/syringe = 12, - /obj/item/reagent_containers/dropper = 3, - /obj/item/healthanalyzer = 4, + /obj/item/stack/medical/gauze = 5, + /obj/item/stack/medical/splint = 5, + /obj/item/reagent_containers/syringe = 5, + /obj/item/reagent_containers/dropper = 2, + /obj/item/healthanalyzer = 2, /obj/item/reagent_containers/pill/patch/styptic = 5, /obj/item/reagent_containers/pill/patch/silver_sulf = 5, + /obj/item/reagent_containers/hypospray/medipen = 3, /obj/item/reagent_containers/syringe/perfluorodecalin = 2, - /obj/item/reagent_containers/pill/insulin = 5, - /obj/item/reagent_containers/glass/bottle/charcoal = 4, + /obj/item/reagent_containers/syringe/antiviral = 1, + /obj/item/reagent_containers/glass/bottle/charcoal = 3, /obj/item/reagent_containers/glass/bottle/epinephrine = 3, - /obj/item/reagent_containers/glass/bottle/morphine = 4, + /obj/item/reagent_containers/glass/bottle/morphine = 1, /obj/item/reagent_containers/glass/bottle/potass_iodide = 1, /obj/item/reagent_containers/glass/bottle/salglu_solution = 3, - /obj/item/reagent_containers/glass/bottle/toxin = 3, - /obj/item/reagent_containers/syringe/antiviral = 6, - /obj/item/reagent_containers/medigel/styptic = 2, - /obj/item/reagent_containers/medigel/silver_sulf = 2, + /obj/item/reagent_containers/medigel/styptic = 1, + /obj/item/reagent_containers/medigel/silver_sulf = 1, + /obj/item/reagent_containers/medigel/synthflesh = 1, /obj/item/reagent_containers/medigel/sterilizine = 1, - /obj/item/reagent_containers/pill/morphine = 4, - /obj/item/storage/box/gum/happiness = 3, - /obj/item/sensor_device = 2, - /obj/item/pinpointer/crew = 2, - /obj/item/reagent_containers/glass/bottle/vial/small = 5, - /obj/item/stack/medical/splint = 10) + /obj/item/sensor_device = 1, + /obj/item/pinpointer/crew = 1) contraband = list( - /obj/item/reagent_containers/pill/tox = 3, - /obj/item/reagent_containers/pill/morphine = 4, - /obj/item/reagent_containers/pill/charcoal = 6, + /obj/item/reagent_containers/pill/tox = 2, + /obj/item/reagent_containers/pill/morphine = 2, + /obj/item/reagent_containers/pill/charcoal = 4, /obj/item/storage/box/hug/medical = 1) premium = list( - /obj/item/reagent_containers/medigel/synthflesh = 2, - /obj/item/storage/pill_bottle/psicodine = 2, - /obj/item/reagent_containers/hypospray/medipen = 3, - /obj/item/clothing/glasses/hud/health = 2, + /obj/item/clothing/glasses/hud/health = 1, /obj/item/clothing/glasses/hud/health/prescription = 1, - /obj/item/hypospray/mkii = 1, - /obj/item/storage/belt/medical = 3, - /obj/item/storage/firstaid/advanced = 2, - /obj/item/shears = 1, - /obj/item/plunger/reinforced = 2) + /obj/item/shears = 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 diff --git a/code/modules/vending/medical_wall.dm b/code/modules/vending/medical_wall.dm index 3378a1d0deca..7ba19c75d617 100644 --- a/code/modules/vending/medical_wall.dm +++ b/code/modules/vending/medical_wall.dm @@ -5,17 +5,17 @@ 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/pill/charcoal = 2, - /obj/item/reagent_containers/medigel/styptic = 2, - /obj/item/reagent_containers/medigel/silver_sulf = 2, + /obj/item/reagent_containers/syringe = 1, + /obj/item/reagent_containers/pill/patch/styptic = 3, + /obj/item/reagent_containers/pill/patch/silver_sulf = 3, + /obj/item/reagent_containers/pill/charcoal = 1, + /obj/item/reagent_containers/medigel/styptic = 1, + /obj/item/reagent_containers/medigel/silver_sulf = 1, /obj/item/reagent_containers/medigel/sterilizine = 1 ) contraband = list( - /obj/item/reagent_containers/pill/tox = 2, - /obj/item/reagent_containers/pill/morphine = 2, + /obj/item/reagent_containers/pill/tox = 1, + /obj/item/reagent_containers/pill/morphine = 1, /obj/item/storage/box/gum/happiness = 1 ) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) @@ -30,11 +30,3 @@ /obj/item/vending_refill/wallmed machine_name = "NanoMed" icon_state = "refill_medical" - -/obj/machinery/vending/wallmed/pubby - products = list( - /obj/item/reagent_containers/syringe = 3, - /obj/item/reagent_containers/pill/patch/styptic = 1, - /obj/item/reagent_containers/pill/patch/silver_sulf = 1, - /obj/item/reagent_containers/medigel/sterilizine = 1 - ) diff --git a/code/modules/vending/security.dm b/code/modules/vending/security.dm index d71dcae5ab41..e4e9d303ae0e 100644 --- a/code/modules/vending/security.dm +++ b/code/modules/vending/security.dm @@ -93,7 +93,7 @@ light_mask = "marine-mask" req_access = list(ACCESS_SYNDICATE) products = list( - /obj/item/screwdriver/nuke = 5, + /obj/item/screwdriver = 5, /obj/item/restraints/handcuffs = 10, /obj/item/assembly/flash/handheld = 10, /obj/item/flashlight/seclite = 10, @@ -104,7 +104,6 @@ /obj/item/grenade/c4 = 5, /obj/item/grenade/frag = 5, - /obj/item/melee/transforming/energy/sword/saber/green = 1, ) contraband = list() premium = list() @@ -131,7 +130,6 @@ /obj/item/ammo_box/magazine/ebr = 5, /obj/item/grenade/c4 = 1, /obj/item/grenade/frag = 1, - /obj/item/melee/transforming/energy/sword/saber/red = 1, ) voucher_items = list( "M-90gl Carbine" = /obj/item/gun/ballistic/automatic/smg/m90/unrestricted, @@ -150,19 +148,21 @@ /obj/item/assembly/flash/handheld = 10, /obj/item/flashlight/seclite = 10, - /obj/item/ammo_box/magazine/aknt = 10, - /obj/item/storage/box/lethalshot = 5, + /obj/item/screwdriver = 5, + /obj/item/stock_parts/cell/gun = 10, + /obj/item/stock_parts/cell/gun/upgraded = 5, /obj/item/grenade/c4 = 5, /obj/item/grenade/frag = 5, /obj/item/grenade/flashbang = 5, /obj/item/grenade/barrier = 10, - /obj/item/melee/transforming/energy/sword/saber/blue = 1 ) voucher_items = list( - "NT-AK" = /obj/item/gun/ballistic/automatic/assault/ak47/nt) //if im being honest, theres no point in addiing other options when this is clearly the best - + "SL AL-655 Energy Rifle" = /obj/item/gun/energy/e_gun/hades, + "NT-E-Rifle" = /obj/item/gun/energy/e_gun, + "E-TAR SMG" = /obj/item/gun/energy/e_gun/smg, + "E-SG 500" = /obj/item/gun/energy/e_gun/iot) /obj/item/gun_voucher name = "security weapon voucher" desc = "A token used to redeem guns from the SecTech vendor." diff --git a/code/modules/vending/youtool.dm b/code/modules/vending/youtool.dm index 25097cab76a8..aadb3c6a5b37 100644 --- a/code/modules/vending/youtool.dm +++ b/code/modules/vending/youtool.dm @@ -4,23 +4,23 @@ icon_state = "tool" icon_deny = "tool-deny" light_mask = "tool-light-mask" - products = list(/obj/item/stack/cable_coil/random = 10, //WS Edit - Random added from Smartwire Revert - /obj/item/crowbar = 5, + products = list(/obj/item/stack/cable_coil/random = 5, //WS Edit - Random added from Smartwire Revert + /obj/item/crowbar = 3, /obj/item/weldingtool = 3, - /obj/item/wirecutters = 5, - /obj/item/wrench = 5, - /obj/item/analyzer = 5, - /obj/item/t_scanner = 5, - /obj/item/screwdriver = 5, + /obj/item/wirecutters = 3, + /obj/item/wrench = 3, + /obj/item/analyzer = 3, + /obj/item/t_scanner = 3, + /obj/item/screwdriver = 3, /obj/item/flashlight/glowstick = 3, /obj/item/flashlight/glowstick/red = 3, - /obj/item/flashlight = 5, + /obj/item/flashlight = 3, /obj/item/clothing/ears/earmuffs = 1) contraband = list(/obj/item/clothing/gloves/color/fyellow = 2) premium = list(/obj/item/storage/belt/utility = 2, /obj/item/multitool = 2, - /obj/item/weldingtool/hugetank = 2, - /obj/item/clothing/head/welding = 2, + /obj/item/weldingtool/hugetank = 1, + /obj/item/clothing/head/welding = 1, /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 diff --git a/html/changelogs/AutoChangeLog-pr-2513.yml b/html/changelogs/AutoChangeLog-pr-2513.yml new file mode 100644 index 000000000000..fcafafb4b9b3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2513.yml @@ -0,0 +1,7 @@ +author: Halcyon, retlaw34, thgvr +changes: + - {rscadd: Added the Sprinter IPC Chassis} + - {rscadd: Added the PGF MECHANICS IPC Chassis} + - {rscadd: Adds IPC tails} + - {tweak: Robotic eyes now use the synth eye sprite.} +delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-2581.yml b/html/changelogs/AutoChangeLog-pr-2581.yml new file mode 100644 index 000000000000..d87ff73fadf7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2581.yml @@ -0,0 +1,6 @@ +author: Couls, Kylerace, Magatsuchi, LemonInTheDark, Fikou, Mothblocks, Stylemistake, + Mark Suckerberg +changes: + - {admin: 'Reduces MC tab update time, this can be adjusted with a preference in + OOC settings'} +delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-2617.yml b/html/changelogs/AutoChangeLog-pr-2617.yml new file mode 100644 index 000000000000..e16a517e871f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2617.yml @@ -0,0 +1,13 @@ +author: Zevotech +changes: + - {rscdel: Some vendors now have far less stock and a smaller variety of items to + compensate for being free and not on a station} + - {rscdel: Removed Magivend vendor} + - {rscdel: Removed Mining points cards and mining access cards} + - {rscdel: Removed Unused Pubbystation vendors} + - {rscdel: Removed eswords from marine vendors} + - {rscadd: NT marine vendor now gives energy guns for coupons and stocks energy + gun cells} + - {rscadd: Cafe and Soy Lattes are now available in the coffee vendor} + - {bugfix: Dutch Hot Coco is now Pearl Hot Chocolate to be lore compliant} +delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-2638.yml b/html/changelogs/AutoChangeLog-pr-2638.yml new file mode 100644 index 000000000000..39a45133e134 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2638.yml @@ -0,0 +1,4 @@ +author: BarteG44 +changes: + - {tweak: resprited the medical and utility belts} +delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-2640.yml b/html/changelogs/AutoChangeLog-pr-2640.yml new file mode 100644 index 000000000000..52305a803907 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2640.yml @@ -0,0 +1,10 @@ +author: Zevotech +changes: + - {rscadd: Reworked the paracelsus kitchen layout to be more user friendly and have + more ingredients to cook with.} + - {rscadd: Adds two bookcases and two extra shark plushies to the dorms.} + - {rscadd: Adds ship viewscreens to the paracelsus} + - {rscadd: Moves the autolathe on the paracelsus to the ghettochem room} + - {bugfix: The firearms locker on the paracelsus no longer lacks a lock to prevent + patients from accessing the firearms} +delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-2660.yml b/html/changelogs/AutoChangeLog-pr-2660.yml new file mode 100644 index 000000000000..7fd4ca01f8dc --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2660.yml @@ -0,0 +1,4 @@ +author: GenericDM +changes: + - {code_imp: params var is now passed to mousedrop_t() from mousedrop()} +delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-2663.yml b/html/changelogs/AutoChangeLog-pr-2663.yml new file mode 100644 index 000000000000..2a9ce1b8b773 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2663.yml @@ -0,0 +1,5 @@ +author: Luftkommando +changes: + - {bugfix: Fixed the accidental wall-window combination on the Talos-class burn + chamber view window.} +delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-2670.yml b/html/changelogs/AutoChangeLog-pr-2670.yml new file mode 100644 index 000000000000..9c75983b9591 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2670.yml @@ -0,0 +1,5 @@ +author: meemofcourse +changes: + - {tweak: Changed the content and details of a few Wikibooks} + - {bugfix: Certain wikibooks not working} +delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-2708.yml b/html/changelogs/AutoChangeLog-pr-2708.yml new file mode 100644 index 000000000000..94a24a38b5b2 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2708.yml @@ -0,0 +1,7 @@ +author: retlaw34 +changes: + - {rscadd: "SUNS's swords! Now you can duel over petty matters and potentially die, + just like your forefathers!"} + - {rscadd: "SUNS's guns! Now you can fight over serious matters and potentially + die, just like your syndicate comrades!"} +delete-after: true diff --git a/html/changelogs/archive/2024-01.yml b/html/changelogs/archive/2024-01.yml index 71fd490bb992..f2a29eb77d49 100644 --- a/html/changelogs/archive/2024-01.yml +++ b/html/changelogs/archive/2024-01.yml @@ -62,3 +62,20 @@ 2024-01-23: SomeguyManperson: - bugfix: ore smelter no longer obliterates materials when smelting alloys +2024-01-26: + Apogee-dev: + - tweak: Changed prefixes on Syndicate ships to reflect subfaction + SomeguyManperson: + - bugfix: you can no longer lock yourself out of the icemoon dragon lair by killing + the dragon with a crusher +2024-01-28: + Fest1v3: + - imageadd: Added vox sprites & a tailhold icon. + Skies-Of-Blue: + - balance: planetary chem bees have been replaced with the garden variety +2024-01-30: + FalloutFalcon: + - balance: reverts some blood red hard suits back to ramzi + goober3: + - tweak: Added more light switches to the Mudskipper. + - bugfix: The Mudskipper bridge now has proper access applied. diff --git a/html/changelogs/archive/2024-02.yml b/html/changelogs/archive/2024-02.yml new file mode 100644 index 000000000000..b25236e79eab --- /dev/null +++ b/html/changelogs/archive/2024-02.yml @@ -0,0 +1,105 @@ +2024-02-02: + Martinpachu: + - bugfix: updated ship shotgun ammo boxes +2024-02-03: + Apogee-dev: + - rscdel: Removed abductor tools from the wrecked analyzer loot pool + - rscdel: Removed lost abductor from iceplanet portal loot pool + Bokkiewokkie: + - imageadd: Added more Kepori socks + - imageadd: Added more Kepori shirts + - imageadd: Added digitigrade pride thigh-highs + - bugfix: Fixed Kepori arms having both left and right sprites per single arm + GenericDM: + - rscdel: mutation toxin + PigeonLord: + - rscadd: Adds more Light Switches around the shepherd + - rscadd: Added some farming plots in the apiary so bees can actually make honey + - bugfix: Fixed bees being able to open the Shepherd Apiary + SomeguyManperson: + - rscadd: If you are smoking a cigarette, you can light someone else's cigarette + via help intent while targeting the mouth + bobbahbrown, itsmeow, meemofcourse: + - rscadd: CentCom now has some small offices, which recieve physical faxes. + - rscadd: Fax machines now announce that they have received a fax over radio. + - rscadd: Fax machines announce important faxes VERY LOUDLY. + - balance: Faxes no longer require a subspace ansible crystal. + - code_imp: Faxes now use typepath instead of varedit. + - tweak: Changed how special/faction faxes work. Login is no longer required to + use special faxes. + - admin: Add Requests Manager to view all fax messages/prayers/centcom and syndicate + requests/and nuke code requests within a round. + - admin: Removed old fax manager in favor of Requests Manager, added "Send Fax Message" + verb to send admin faxes via a menu. + - bugfix: Fixed runtime when ghosts tried to view paper. + meemofcourse: + - rscadd: ACLF Syndicate Inspector ERT + - bugfix: Independent background icons + - bugfix: ERT Outfits not having access and proper names +2024-02-04: + Martinpachu: + - rscadd: Added two flashes, a recharger, a stamp, two commanders, ammo for them + and a wideband to the Ranger bridge. + - rscdel: The Ranger's ORM. +2024-02-05: + Cadunkus: + - spellcheck: Fixed a single typo in the description of the Corvus-class Response + Vessel. + Luftkommando: + - rscadd: Added new ShipTest faction specific stamps + Skies-Of-Blue: + - tweak: non-motorized wheelchairs can now be folded + - imageadd: a few sprites to support the above + meemofcourse: + - rscadd: Valor-Class Field Care Crusier + - rscadd: Haste-Class Ambulance +2024-02-06: + Draggeru, Cre: + - rscadd: adds all of the clothing intended for SUNS, including uniforms for the + captain, xo, cmo, scientists, miners, engineers, and doctors + - rscadd: several job outfits to support future SUNS content + FalloutFalcon: + - bugfix: fixed licor popsicle overlay + MarkSuckerberg: + - bugfix: Fixes a lot of duplicated outfits and such + SomeguyManperson: + - tweak: rachnid cocoon spinning no longer spends nutrition when activated, only + on successful cocooning + retlaw34, FleetingExpertise, Apogee-dev, Valorium,: + - rscadd: Resprites almost every single hunter's pride weapon + - rscadd: Added the Vickland, SRM equivlent to the ARs except it's an battle rifle + - rscadd: The Illestren is now an en-bloc rifle and uses 8x50mmR. Functionally it's + the exact same to aquire the ammo, just with a different name + - rscadd: You are able to saw off many more guns than before, just be sure to actually + empty it before doing so! + - rscadd: Many Hunter's pride weapons have been renamed to something befitting the + lore + - rscadd: Break action weapons + - bugfix: Traubuco should work correctly again + - bugfix: Some broken gun onmobs should now show up + - tweak: guns tell you how to rack them or switching firing modes + - balance: smgs fire 0.02 seconds faster and now have standard pistol recoil onehanded + - balance: disposable guns are now less shit, they now have 10 rounds! The downside + is they are now chambered in 22lr, the worst caliber in the game + - balance: Shotguns have been nerfed to not do an insane amount of damage point + blank and in general +2024-02-10: + Apogee-dev: + - rscdel: Removed the Luxembourg. + Martinpachu: + - rscadd: Ammo boxes to the outpost market. + - spellcheck: Changed AK mentions to SVG. + - tweak: Changed shotgun ammo boxes bought from the outpost to the ammo_box version. + - bugfix: Changed SVG mag size to 20. + - rscadd: IRMG Vanguard peaked caps to IRMVs. + Skies-Of-Blue: + - rscadd: new pair of prescription glasses, now available in loadouts! + - imageadd: new transparent sprites for all prescription glasses + - imageadd: new transparent sprites for all prescription HUDs + - imageadd: new transparent sprite for the orange sunglasses + Skrem7: + - balance: Peacekeeper visors have real armor now (especially against bullet) + - balance: SUNS armored coats now cover all body parts instead of just chest + SomeguyManperson: + - bugfix: bulletproof armor crates are no longer stated to carry one more armor + set than they actually do diff --git a/html/statbrowser.css b/html/statbrowser.css new file mode 100644 index 000000000000..dc693f42f756 --- /dev/null +++ b/html/statbrowser.css @@ -0,0 +1,227 @@ +body { + font-family: Verdana, Geneva, Tahoma, sans-serif; + font-size: 12px !important; + margin: 0 !important; + padding: 0 !important; + overflow-x: hidden; + overflow-y: scroll; +} + +body.dark { + background-color: #131313; + color: #b2c4dd; + scrollbar-base-color: #1c1c1c; + scrollbar-face-color: #3b3b3b; + scrollbar-3dlight-color: #252525; + scrollbar-highlight-color: #252525; + scrollbar-track-color: #1c1c1c; + scrollbar-arrow-color: #929292; + scrollbar-shadow-color: #3b3b3b; +} + +#menu { + background-color: #F0F0F0; + position: fixed; + width: 100%; + z-index: 100; +} + +.dark #menu { + background-color: #202020; +} + +#statcontent { + padding: 7px 7px 7px 7px; +} + +a { + color: black; + text-decoration: none +} + +.dark a { + color: #b2c4dd; +} + +a:hover, +.dark a:hover { + text-decoration: underline; +} + +ul { + list-style-type: none; + margin: 0; + padding: 0; + background-color: #333; +} + +li { + float: left; +} + +li a { + display: block; + color: white; + text-align: center; + padding: 14px 16px; + text-decoration: none; +} + +li a:hover:not(.active) { + background-color: #111; +} + +.button-container { + display: inline-flex; + flex-wrap: wrap-reverse; + flex-direction: row; + align-items: flex-start; + overflow-x: hidden; + white-space: pre-wrap; + padding: 0 4px; +} + +.button { + background-color: #dfdfdf; + border: 1px solid #cecece; + border-bottom-width: 2px; + color: rgba(0, 0, 0, 0.7); + padding: 6px 4px 4px; + text-align: center; + text-decoration: none; + font-size: 12px; + margin: 0; + cursor: pointer; + transition-duration: 100ms; + order: 3; + min-width: 40px; +} + +.dark button { + background-color: #222222; + border-color: #343434; + color: rgba(255, 255, 255, 0.5); +} + +.button:hover { + background-color: #ececec; + transition-duration: 0; +} + +.dark button:hover { + background-color: #2e2e2e; +} + +.button:active, +.button.active { + background-color: #ffffff; + color: black; + border-top-color: #cecece; + border-left-color: #cecece; + border-right-color: #cecece; + border-bottom-color: #ffffff; +} + +.dark .button:active, +.dark .button.active { + background-color: #444444; + color: white; + border-top-color: #343434; + border-left-color: #343434; + border-right-color: #343434; + border-bottom-color: #ffffff; +} + +.grid-container { + margin: -2px; + margin-right: -15px; +} + +.grid-item { + position: relative; + display: inline-block; + width: 100%; + box-sizing: border-box; + overflow: visible; + padding: 3px 2px; + text-decoration: none; +} + +@media only screen and (min-width: 300px) { + .grid-item { + width: 50%; + } +} + +@media only screen and (min-width: 430px) { + .grid-item { + width: 33%; + } +} + +@media only screen and (min-width: 560px) { + .grid-item { + width: 25%; + } +} + +@media only screen and (min-width: 770px) { + .grid-item { + width: 20%; + } +} + +.grid-item:hover { + z-index: 1; +} + +.grid-item:hover .grid-item-text { + width: auto; + text-decoration: underline; +} + +.grid-item-text { + display: inline-block; + width: 100%; + background-color: #ffffff; + margin: 0 -6px; + padding: 0 6px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + pointer-events: none; +} + +.dark .grid-item-text { + background-color: #131313; +} + +.link { + display: inline; + background: none; + border: none; + padding: 7px 14px; + color: black; + text-decoration: none; + cursor: pointer; + font-size: 13px; + margin: 2px 2px; +} + +.dark .link { + color: #abc6ec; +} + +.link:hover { + text-decoration: underline; +} + +img { + -ms-interpolation-mode: nearest-neighbor; + image-rendering: pixelated; +} + +.interview_panel_controls, +.interview_panel_stats { + margin-bottom: 10px; +} diff --git a/html/statbrowser.html b/html/statbrowser.html index 2bb7f8259afb..1aea8811d58a 100644 --- a/html/statbrowser.html +++ b/html/statbrowser.html @@ -1,1280 +1,3 @@ - - - - Stat Browser - - - - - - - - -
-
- - - + +
+
diff --git a/html/statbrowser.js b/html/statbrowser.js new file mode 100644 index 000000000000..d024d50b8c3d --- /dev/null +++ b/html/statbrowser.js @@ -0,0 +1,1003 @@ +// Polyfills and compatibility ------------------------------------------------ +var decoder = decodeURIComponent || unescape; +if (!Array.prototype.includes) { + Array.prototype.includes = function (thing) { + for (var i = 0; i < this.length; i++) { + if (this[i] == thing) return true; + } + return false; + } +} +if (!String.prototype.trim) { + String.prototype.trim = function () { + return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); + }; +} + +// Status panel implementation ------------------------------------------------ +var status_tab_parts = ["Loading..."]; +var current_tab = null; +var mc_tab_parts = [["Loading...", ""]]; +var href_token = null; +var spells = []; +var spell_tabs = []; +var verb_tabs = []; +var verbs = [["", ""]]; // list with a list inside +var tickets = []; +var interviewManager = { status: "", interviews: [] }; +var sdql2 = []; +var permanent_tabs = []; // tabs that won't be cleared by wipes +var turfcontents = []; +var turfname = ""; +var imageRetryDelay = 500; +var imageRetryLimit = 50; +var menu = document.getElementById('menu'); +var under_menu = document.getElementById('under_menu'); +var statcontentdiv = document.getElementById('statcontent'); +var storedimages = []; +var split_admin_tabs = false; + +// Any BYOND commands that could result in the client's focus changing go through this +// to ensure that when we relinquish our focus, we don't do it after the result of +// a command has already taken focus for itself. +function run_after_focus(callback) { + setTimeout(callback, 0); +} + +function createStatusTab(name) { + if (name.indexOf(".") != -1) { + var splitName = name.split("."); + if (split_admin_tabs && splitName[0] === "Admin") + name = splitName[1]; + else + name = splitName[0]; + } + if (document.getElementById(name) || name.trim() == "") { + return; + } + if (!verb_tabs.includes(name) && !permanent_tabs.includes(name)) { + return; + } + var B = document.createElement("BUTTON"); + B.onclick = function () { + tab_change(name); + this.blur(); + }; + B.id = name; + B.textContent = name; + B.className = "button"; + //ORDERING ALPHABETICALLY + B.style.order = name.charCodeAt(0); + if (name == "Status" || name == "MC") { + B.style.order = name == "Status" ? 1 : 2; + } + //END ORDERING + menu.appendChild(B); + SendTabToByond(name); + under_menu.style.height = menu.clientHeight + 'px'; +} + +function removeStatusTab(name) { + if (!document.getElementById(name) || permanent_tabs.includes(name)) { + return; + } + for (var i = verb_tabs.length - 1; i >= 0; --i) { + if (verb_tabs[i] == name) { + verb_tabs.splice(i, 1); + } + } + menu.removeChild(document.getElementById(name)); + TakeTabFromByond(name); + under_menu.style.height = menu.clientHeight + 'px'; +} + +function sortVerbs() { + verbs.sort(function (a, b) { + var selector = a[0] == b[0] ? 1 : 0; + if (a[selector].toUpperCase() < b[selector].toUpperCase()) { + return 1; + } + else if (a[selector].toUpperCase() > b[selector].toUpperCase()) { + return -1; + } + return 0; + }) +} + +window.onresize = function () { + under_menu.style.height = menu.clientHeight + 'px'; +} + +function addPermanentTab(name) { + if (!permanent_tabs.includes(name)) { + permanent_tabs.push(name); + } + createStatusTab(name); +} + +function removePermanentTab(name) { + for (var i = permanent_tabs.length - 1; i >= 0; --i) { + if (permanent_tabs[i] == name) { + permanent_tabs.splice(i, 1); + } + } + removeStatusTab(name); +} + +function checkStatusTab() { + for (var i = 0; i < menu.children.length; i++) { + if (!verb_tabs.includes(menu.children[i].id) && !permanent_tabs.includes(menu.children[i].id)) { + menu.removeChild(menu.children[i]); + } + } +} + +function remove_verb(v) { + var verb_to_remove = v; // to_remove = [verb:category, verb:name] + for (var i = verbs.length - 1; i >= 0; i--) { + var part_to_remove = verbs[i]; + if (part_to_remove[1] == verb_to_remove[1]) { + verbs.splice(i, 1) + } + } +} + +function check_verbs() { + for (var v = verb_tabs.length - 1; v >= 0; v--) { + verbs_cat_check(verb_tabs[v]); + } +} + +function verbs_cat_check(cat) { + var tabCat = cat; + if (cat.indexOf(".") != -1) { + var splitName = cat.split("."); + if (split_admin_tabs && splitName[0] === "Admin") + tabCat = splitName[1]; + else + tabCat = splitName[0]; + } + var verbs_in_cat = 0; + var verbcat = ""; + if (!verb_tabs.includes(tabCat)) { + removeStatusTab(tabCat); + return; + } + for (var v = 0; v < verbs.length; v++) { + var part = verbs[v]; + verbcat = part[0]; + if (verbcat.indexOf(".") != -1) { + var splitName = verbcat.split("."); + if (split_admin_tabs && splitName[0] === "Admin") + verbcat = splitName[1]; + else + verbcat = splitName[0]; + } + if (verbcat != tabCat || verbcat.trim() == "") { + continue; + } + else { + verbs_in_cat = 1; + break; // we only need one + } + } + if (verbs_in_cat != 1) { + removeStatusTab(tabCat); + if (current_tab == tabCat) + tab_change("Status"); + } +} + +function findVerbindex(name, verblist) { + for (var i = 0; i < verblist.length; i++) { + var part = verblist[i]; + if (part[1] == name) + return i; + } +} +function wipe_verbs() { + verbs = [["", ""]]; + verb_tabs = []; + checkStatusTab(); // remove all empty verb tabs +} + +function update_verbs() { + wipe_verbs(); + Byond.sendMessage("Update-Verbs"); +} + +function SendTabsToByond() { + var tabstosend = []; + tabstosend = tabstosend.concat(permanent_tabs, verb_tabs); + for (var i = 0; i < tabstosend.length; i++) { + SendTabToByond(tabstosend[i]); + } +} + +function SendTabToByond(tab) { + Byond.sendMessage("Send-Tabs", {tab: tab}); +} + +//Byond can't have this tab anymore since we're removing it +function TakeTabFromByond(tab) { + Byond.sendMessage("Remove-Tabs", {tab: tab}); +} + +function spell_cat_check(cat) { + var spells_in_cat = 0; + var spellcat = ""; + for (var s = 0; s < spells.length; s++) { + var spell = spells[s]; + spellcat = spell[0]; + if (spellcat == cat) { + spells_in_cat++; + } + } + if (spells_in_cat < 1) { + removeStatusTab(cat); + } +} + +function tab_change(tab) { + if (tab == current_tab) return; + if (document.getElementById(current_tab)) + document.getElementById(current_tab).className = "button"; // disable active on last button + current_tab = tab; + set_byond_tab(tab); + if (document.getElementById(tab)) + document.getElementById(tab).className = "button active"; // make current button active + var spell_tabs_thingy = (spell_tabs.includes(tab)); + var verb_tabs_thingy = (verb_tabs.includes(tab)); + if (tab == "Status") { + draw_status(); + } else if (tab == "MC") { + draw_mc(); + } else if (spell_tabs_thingy) { + draw_spells(tab); + } else if (verb_tabs_thingy) { + draw_verbs(tab); + } else if (tab == "Debug Stat Panel") { + draw_debug(); + } else if (tab == "Tickets") { + draw_tickets(); + draw_interviews(); + } else if (tab == "SDQL2") { + draw_sdql2(); + } else if (tab == turfname) { + draw_listedturf(); + } else { + statcontentdiv.textContext = "Loading..."; + } + Byond.winset(Byond.windowId, { + 'is-visible': true, + }); +} + +function set_byond_tab(tab) { + Byond.sendMessage("Set-Tab", {tab: tab}); +} + +function draw_debug() { + statcontentdiv.textContent = ""; + var wipeverbstabs = document.createElement("div"); + var link = document.createElement("a"); + link.onclick = function () { wipe_verbs() }; + link.textContent = "Wipe All Verbs"; + wipeverbstabs.appendChild(link); + document.getElementById("statcontent").appendChild(wipeverbstabs); + var wipeUpdateVerbsTabs = document.createElement("div"); + var updateLink = document.createElement("a"); + updateLink.onclick = function () { update_verbs() }; + updateLink.textContent = "Wipe and Update All Verbs"; + wipeUpdateVerbsTabs.appendChild(updateLink); + document.getElementById("statcontent").appendChild(wipeUpdateVerbsTabs); + var text = document.createElement("div"); + text.textContent = "Verb Tabs:"; + document.getElementById("statcontent").appendChild(text); + var table1 = document.createElement("table"); + for (var i = 0; i < verb_tabs.length; i++) { + var part = verb_tabs[i]; + // Hide subgroups except admin subgroups if they are split + if (verb_tabs[i].lastIndexOf(".") != -1) { + var splitName = verb_tabs[i].split("."); + if (split_admin_tabs && splitName[0] === "Admin") + part = splitName[1]; + else + continue; + } + var tr = document.createElement("tr"); + var td1 = document.createElement("td"); + td1.textContent = part; + var a = document.createElement("a"); + a.onclick = function (part) { + return function () { removeStatusTab(part) }; + }(part); + a.textContent = " Delete Tab " + part; + td1.appendChild(a); + tr.appendChild(td1); + table1.appendChild(tr); + } + document.getElementById("statcontent").appendChild(table1); + var header2 = document.createElement("div"); + header2.textContent = "Verbs:"; + document.getElementById("statcontent").appendChild(header2); + var table2 = document.createElement("table"); + for (var v = 0; v < verbs.length; v++) { + var part2 = verbs[v]; + var trr = document.createElement("tr"); + var tdd1 = document.createElement("td"); + tdd1.textContent = part2[0]; + var tdd2 = document.createElement("td"); + tdd2.textContent = part2[1]; + trr.appendChild(tdd1); + trr.appendChild(tdd2); + table2.appendChild(trr); + } + document.getElementById("statcontent").appendChild(table2); + var text3 = document.createElement("div"); + text3.textContent = "Permanent Tabs:"; + document.getElementById("statcontent").appendChild(text3); + var table3 = document.createElement("table"); + for (var i = 0; i < permanent_tabs.length; i++) { + var part3 = permanent_tabs[i]; + var trrr = document.createElement("tr"); + var tddd1 = document.createElement("td"); + tddd1.textContent = part3; + trrr.appendChild(tddd1); + table3.appendChild(trrr); + } + document.getElementById("statcontent").appendChild(table3); + +} +function draw_status() { + if (!document.getElementById("Status")) { + createStatusTab("Status"); + current_tab = "Status"; + } + statcontentdiv.textContent = ''; + for (var i = 0; i < status_tab_parts.length; i++) { + if (status_tab_parts[i].trim() == "") { + document.getElementById("statcontent").appendChild(document.createElement("br")); + } else { + var div = document.createElement("div"); + div.textContent = status_tab_parts[i]; + document.getElementById("statcontent").appendChild(div); + } + } + if (verb_tabs.length == 0 || !verbs) { + Byond.command("Fix-Stat-Panel"); + } +} + +function draw_mc() { + statcontentdiv.textContent = ""; + var table = document.createElement("table"); + for (var i = 0; i < mc_tab_parts.length; i++) { + var part = mc_tab_parts[i]; + var tr = document.createElement("tr"); + var td1 = document.createElement("td"); + td1.textContent = part[0]; + var td2 = document.createElement("td"); + if (part[2]) { + var a = document.createElement("a"); + a.href = "?_src_=vars;admin_token=" + href_token + ";Vars=" + part[2]; + a.textContent = part[1]; + td2.appendChild(a); + } else { + td2.textContent = part[1]; + } + tr.appendChild(td1); + tr.appendChild(td2); + table.appendChild(tr); + } + document.getElementById("statcontent").appendChild(table); +} + +function remove_tickets() { + if (tickets) { + tickets = []; + removePermanentTab("Tickets"); + if (current_tab == "Tickets") + tab_change("Status"); + } + checkStatusTab(); +} + +function remove_sdql2() { + if (sdql2) { + sdql2 = []; + removePermanentTab("SDQL2"); + if (current_tab == "SDQL2") + tab_change("Status"); + } + checkStatusTab(); +} + +function remove_interviews() { + if (tickets) { + tickets = []; + } + checkStatusTab(); +} + +function iconError(e) { + if(current_tab != turfname) { + return; + } + setTimeout(function () { + var node = e.target; + var current_attempts = Number(node.getAttribute("data-attempts")) || 0 + if (current_attempts > imageRetryLimit) { + return; + } + var src = node.src; + node.src = null; + node.src = src + '#' + current_attempts; + node.setAttribute("data-attempts", current_attempts + 1) + draw_listedturf(); + }, imageRetryDelay); +} + +function draw_listedturf() { + statcontentdiv.textContent = ""; + var table = document.createElement("table"); + for (var i = 0; i < turfcontents.length; i++) { + var part = turfcontents[i]; + if (storedimages[part[1]] == null && part[2]) { + var img = document.createElement("img"); + img.src = part[2]; + img.id = part[1]; + storedimages[part[1]] = part[2]; + img.onerror = iconError; + table.appendChild(img); + } else { + var img = document.createElement("img"); + img.onerror = iconError; + img.src = storedimages[part[1]]; + img.id = part[1]; + table.appendChild(img); + } + var b = document.createElement("div"); + var clickcatcher = ""; + b.className = "link"; + b.onmousedown = function (part) { + // The outer function is used to close over a fresh "part" variable, + // rather than every onmousedown getting the "part" of the last entry. + return function (e) { + e.preventDefault(); + clickcatcher = "?src=" + part[1]; + switch (e.button) { + case 1: + clickcatcher += ";statpanel_item_click=middle" + break; + case 2: + clickcatcher += ";statpanel_item_click=right" + break; + default: + clickcatcher += ";statpanel_item_click=left" + } + if (e.shiftKey) { + clickcatcher += ";statpanel_item_shiftclick=1"; + } + if (e.ctrlKey) { + clickcatcher += ";statpanel_item_ctrlclick=1"; + } + if (e.altKey) { + clickcatcher += ";statpanel_item_altclick=1"; + } + window.location.href = clickcatcher; + } + }(part); + b.textContent = part[0]; + table.appendChild(b); + table.appendChild(document.createElement("br")); + } + document.getElementById("statcontent").appendChild(table); +} + +function remove_listedturf() { + removePermanentTab(turfname); + checkStatusTab(); + if (current_tab == turfname) { + tab_change("Status"); + } +} + +function remove_mc() { + removeStatusTab("MC"); + if (current_tab == "MC") { + tab_change("Status"); + } +}; + +function draw_sdql2() { + statcontentdiv.textContent = ""; + var table = document.createElement("table"); + for (var i = 0; i < sdql2.length; i++) { + var part = sdql2[i]; + var tr = document.createElement("tr"); + var td1 = document.createElement("td"); + td1.textContent = part[0]; + var td2 = document.createElement("td"); + if (part[2]) { + var a = document.createElement("a"); + a.href = "?src=" + part[2] + ";statpanel_item_click=left"; + a.textContent = part[1]; + td2.appendChild(a); + } else { + td2.textContent = part[1]; + } + tr.appendChild(td1); + tr.appendChild(td2); + table.appendChild(tr); + } + document.getElementById("statcontent").appendChild(table); +} + +function draw_tickets() { + statcontentdiv.textContent = ""; + var table = document.createElement("table"); + if (!tickets) { + return; + } + for (var i = 0; i < tickets.length; i++) { + var part = tickets[i]; + var tr = document.createElement("tr"); + var td1 = document.createElement("td"); + td1.textContent = part[0]; + var td2 = document.createElement("td"); + if (part[2]) { + var a = document.createElement("a"); + a.href = "?_src_=holder;admin_token=" + href_token + ";ahelp=" + part[2] + ";ahelp_action=ticket;statpanel_item_click=left;action=ticket"; + a.textContent = part[1]; + td2.appendChild(a); + } else if (part[3]) { + var a = document.createElement("a"); + a.href = "?src=" + part[3] + ";statpanel_item_click=left"; + a.textContent = part[1]; + td2.appendChild(a); + } else { + td2.textContent = part[1]; + } + tr.appendChild(td1); + tr.appendChild(td2); + table.appendChild(tr); + } + document.getElementById("statcontent").appendChild(table); +} + +function draw_interviews() { + var body = document.createElement("div"); + var header = document.createElement("h3"); + header.textContent = "Interviews"; + body.appendChild(header); + var manDiv = document.createElement("div"); + manDiv.className = "interview_panel_controls" + var manLink = document.createElement("a"); + manLink.textContent = "Open Interview Manager Panel"; + manLink.href = "?_src_=holder;admin_token=" + href_token + ";interview_man=1;statpanel_item_click=left"; + manDiv.appendChild(manLink); + body.appendChild(manDiv); + + // List interview stats + var statsDiv = document.createElement("table"); + statsDiv.className = "interview_panel_stats"; + for (var key in interviewManager.status) { + var d = document.createElement("div"); + var tr = document.createElement("tr"); + var stat_name = document.createElement("td"); + var stat_text = document.createElement("td"); + stat_name.textContent = key; + stat_text.textContent = interviewManager.status[key]; + tr.appendChild(stat_name); + tr.appendChild(stat_text); + statsDiv.appendChild(tr); + } + body.appendChild(statsDiv); + document.getElementById("statcontent").appendChild(body); + + // List interviews if any are open + var table = document.createElement("table"); + table.className = "interview_panel_table"; + if (!interviewManager) { + return; + } + for (var i = 0; i < interviewManager.interviews.length; i++) { + var part = interviewManager.interviews[i]; + var tr = document.createElement("tr"); + var td = document.createElement("td"); + var a = document.createElement("a"); + a.textContent = part["status"]; + a.href = "?_src_=holder;admin_token=" + href_token + ";interview=" + part["ref"] + ";statpanel_item_click=left"; + td.appendChild(a); + tr.appendChild(td); + table.appendChild(tr); + } + document.getElementById("statcontent").appendChild(table); +} + +function draw_spells(cat) { + statcontentdiv.textContent = ""; + var table = document.createElement("table"); + for (var i = 0; i < spells.length; i++) { + var part = spells[i]; + if (part[0] != cat) continue; + var tr = document.createElement("tr"); + var td1 = document.createElement("td"); + td1.textContent = part[1]; + var td2 = document.createElement("td"); + if (part[3]) { + var a = document.createElement("a"); + a.href = "?src=" + part[3] + ";statpanel_item_click=left"; + a.textContent = part[2]; + td2.appendChild(a); + } else { + td2.textContent = part[2]; + } + tr.appendChild(td1); + tr.appendChild(td2); + table.appendChild(tr); + } + document.getElementById("statcontent").appendChild(table); +} + +function make_verb_onclick(command) { + return function () { + run_after_focus(function () { + Byond.command(command); + }); + }; +} + +function draw_verbs(cat) { + statcontentdiv.textContent = ""; + var table = document.createElement("div"); + var additions = {}; // additional sub-categories to be rendered + table.className = "grid-container"; + sortVerbs(); + if (split_admin_tabs && cat.lastIndexOf(".") != -1) { + var splitName = cat.split("."); + if (splitName[0] === "Admin") + cat = splitName[1]; + } + verbs.reverse(); // sort verbs backwards before we draw + for (var i = 0; i < verbs.length; ++i) { + var part = verbs[i]; + var name = part[0]; + if (split_admin_tabs && name.lastIndexOf(".") != -1) { + var splitName = name.split("."); + if (splitName[0] === "Admin") + name = splitName[1]; + } + var command = part[1]; + + if (command && name.lastIndexOf(cat, 0) != -1 && (name.length == cat.length || name.charAt(cat.length) == ".")) { + var subCat = name.lastIndexOf(".") != -1 ? name.split(".")[1] : null; + if (subCat && !additions[subCat]) { + var newTable = document.createElement("div"); + newTable.className = "grid-container"; + additions[subCat] = newTable; + } + + var a = document.createElement("a"); + a.href = "#"; + a.onclick = make_verb_onclick(command.replace(/\s/g, "-")); + a.className = "grid-item"; + var t = document.createElement("span"); + t.textContent = command; + t.className = "grid-item-text"; + a.appendChild(t); + (subCat ? additions[subCat] : table).appendChild(a); + } + } + + // Append base table to view + var content = document.getElementById("statcontent"); + content.appendChild(table); + + // Append additional sub-categories if relevant + for (var cat in additions) { + if (additions.hasOwnProperty(cat)) { + // do addition here + var header = document.createElement("h3"); + header.textContent = cat; + content.appendChild(header); + content.appendChild(additions[cat]); + } + } +} + +function set_theme(which) { + if (which == "light") { + document.body.className = ""; + set_style_sheet("browserOutput_white"); + } else if (which == "dark") { + document.body.className = "dark"; + set_style_sheet("browserOutput"); + } +} + +function set_style_sheet(sheet) { + if (document.getElementById("goonStyle")) { + var currentSheet = document.getElementById("goonStyle"); + currentSheet.parentElement.removeChild(currentSheet); + } + var head = document.getElementsByTagName('head')[0]; + var sheetElement = document.createElement("link"); + sheetElement.id = "goonStyle"; + sheetElement.rel = "stylesheet"; + sheetElement.type = "text/css"; + sheetElement.href = sheet + ".css"; + sheetElement.media = 'all'; + head.appendChild(sheetElement); +} + +function restoreFocus() { + run_after_focus(function () { + Byond.winset('map', { + focus: true, + }); + }); +} + +function getCookie(cname) { + var name = cname + '='; + var ca = document.cookie.split(';'); + for (var i = 0; i < ca.length; i++) { + var c = ca[i]; + while (c.charAt(0) == ' ') c = c.substring(1); + if (c.indexOf(name) === 0) { + return decoder(c.substring(name.length, c.length)); + } + } + return ''; +} + +function add_verb_list(payload) { + var to_add = payload; // list of a list with category and verb inside it + to_add.sort(); // sort what we're adding + for (var i = 0; i < to_add.length; i++) { + var part = to_add[i]; + if (!part[0]) + continue; + var category = part[0]; + if (category.indexOf(".") != -1) { + var splitName = category.split("."); + if (split_admin_tabs && splitName[0] === "Admin") + category = splitName[1]; + else + category = splitName[0]; + } + if (findVerbindex(part[1], verbs)) + continue; + if (verb_tabs.includes(category)) { + verbs.push(part); + if (current_tab == category) { + draw_verbs(category); // redraw if we added a verb to the tab we're currently in + } + } else if (category) { + verb_tabs.push(category); + verbs.push(part); + createStatusTab(category); + } + } +}; + +function init_spells() { + var cat = ""; + for (var i = 0; i < spell_tabs.length; i++) { + cat = spell_tabs[i]; + if (cat.length > 0) { + verb_tabs.push(cat); + createStatusTab(cat); + } + } +} + +document.addEventListener("mouseup", restoreFocus); +document.addEventListener("keyup", restoreFocus); + +if (!current_tab) { + addPermanentTab("Status"); + tab_change("Status"); +} + +window.onload = function () { + Byond.command("Update-Verbs"); +}; + +Byond.subscribeTo('update_spells', function (payload) { + spell_tabs = payload.spell_tabs; + var do_update = false; + if (spell_tabs.includes(current_tab)) { + do_update = true; + } + init_spells(); + if (payload.verblist) { + spells = payload.verblist; + if (do_update) { + draw_spells(current_tab); + } + } else { + remove_spells(); + } +}); + +Byond.subscribeTo('remove_verb_list', function (v) { + var to_remove = v; + for (var i = 0; i < to_remove.length; i++) { + remove_verb(to_remove[i]); + } + check_verbs(); + sortVerbs(); + if (verb_tabs.includes(current_tab)) + draw_verbs(current_tab); +}); + +// passes a 2D list of (verbcategory, verbname) creates tabs and adds verbs to respective list +// example (IC, Say) +Byond.subscribeTo('init_verbs', function (payload) { + wipe_verbs(); // remove all verb categories so we can replace them + checkStatusTab(); // remove all status tabs + verb_tabs = payload.panel_tabs; + verb_tabs.sort(); // sort it + var do_update = false; + var cat = ""; + for (var i = 0; i < verb_tabs.length; i++) { + cat = verb_tabs[i]; + createStatusTab(cat); // create a category if the verb doesn't exist yet + } + if (verb_tabs.includes(current_tab)) { + do_update = true; + } + if (payload.verblist) { + add_verb_list(payload.verblist); + sortVerbs(); // sort them + if (do_update) { + draw_verbs(current_tab); + } + } + SendTabsToByond(); +}); + +Byond.subscribeTo('update_stat', function (payload) { + status_tab_parts = [payload.ping_str]; + var parsed = payload.global_data; + + for (var i = 0; i < parsed.length; i++) if (parsed[i] != null) status_tab_parts.push(parsed[i]); + + parsed = payload.other_str; + + for (var i = 0; i < parsed.length; i++) if (parsed[i] != null) status_tab_parts.push(parsed[i]); + + if (current_tab == "Status") { + draw_status(); + } else if (current_tab == "Debug Stat Panel") { + draw_debug(); + } +}); + +Byond.subscribeTo('update_mc', function (payload) { + mc_tab_parts = payload.mc_data; + mc_tab_parts.splice(0, 0, ["Location:", payload.coord_entry]); + + if (!verb_tabs.includes("MC")) { + verb_tabs.push("MC"); + } + + createStatusTab("MC"); + + if (current_tab == "MC") { + draw_mc(); + } +}); + +Byond.subscribeTo('remove_spells', function () { + for (var s = 0; s < spell_tabs.length; s++) { + removeStatusTab(spell_tabs[s]); + } +}); + +Byond.subscribeTo('init_spells', function () { + var cat = ""; + for (var i = 0; i < spell_tabs.length; i++) { + cat = spell_tabs[i]; + if (cat.length > 0) { + verb_tabs.push(cat); + createStatusTab(cat); + } + } +}); + +Byond.subscribeTo('check_spells', function () { + for (var v = 0; v < spell_tabs.length; v++) { + spell_cat_check(spell_tabs[v]); + } +}); + +Byond.subscribeTo('create_debug', function () { + if (!document.getElementById("Debug Stat Panel")) { + addPermanentTab("Debug Stat Panel"); + } else { + removePermanentTab("Debug Stat Panel"); + } +}); + +Byond.subscribeTo('create_listedturf', function (TN) { + remove_listedturf(); // remove the last one if we had one + turfname = TN; + addPermanentTab(turfname); + tab_change(turfname); +}); + +Byond.subscribeTo('remove_admin_tabs', function () { + href_token = null; + remove_mc(); + remove_tickets(); + remove_sdql2(); + remove_interviews(); +}); + +Byond.subscribeTo('update_listedturf', function (TC) { + turfcontents = TC; + if (current_tab == turfname) { + draw_listedturf(); + } +}); + +Byond.subscribeTo('update_interviews', function (I) { + interviewManager = I; + if (current_tab == "Tickets") { + draw_interviews(); + } +}); + +Byond.subscribeTo('update_split_admin_tabs', function (status) { + status = (status == true); + + if (split_admin_tabs !== status) { + if (split_admin_tabs === true) { + removeStatusTab("Events"); + removeStatusTab("Fun"); + removeStatusTab("Game"); + } + update_verbs(); + } + split_admin_tabs = status; +}); + +Byond.subscribeTo('add_admin_tabs', function (ht) { + href_token = ht; + addPermanentTab("MC"); + addPermanentTab("Tickets"); +}); + +Byond.subscribeTo('update_sdql2', function (S) { + sdql2 = S; + if (sdql2.length > 0 && !verb_tabs.includes("SDQL2")) { + verb_tabs.push("SDQL2"); + addPermanentTab("SDQL2"); + } + if (current_tab == "SDQL2") { + draw_sdql2(); + } +}); + +Byond.subscribeTo('update_tickets', function (T) { + tickets = T; + if (!verb_tabs.includes("Tickets")) { + verb_tabs.push("Tickets"); + addPermanentTab("Tickets"); + } + if (current_tab == "Tickets") { + draw_tickets(); + } +}); + +Byond.subscribeTo('remove_listedturf', remove_listedturf); + +Byond.subscribeTo('remove_sdql2', remove_sdql2); + +Byond.subscribeTo('remove_mc', remove_mc); + +Byond.subscribeTo('add_verb_list', add_verb_list); diff --git a/icons/mob/actions.dmi b/icons/mob/actions.dmi index ea2c5c556db0..bc600528d825 100644 Binary files a/icons/mob/actions.dmi and b/icons/mob/actions.dmi differ diff --git a/icons/mob/clothing/accessories.dmi b/icons/mob/clothing/accessories.dmi index bfde13162237..aef500b67da9 100644 Binary files a/icons/mob/clothing/accessories.dmi and b/icons/mob/clothing/accessories.dmi differ diff --git a/icons/mob/clothing/back.dmi b/icons/mob/clothing/back.dmi index 13baacb46614..151cc5c1b2ea 100644 Binary files a/icons/mob/clothing/back.dmi and b/icons/mob/clothing/back.dmi differ diff --git a/icons/mob/clothing/belt.dmi b/icons/mob/clothing/belt.dmi index 7feb4662b2ec..78b8033a2e35 100644 Binary files a/icons/mob/clothing/belt.dmi and b/icons/mob/clothing/belt.dmi differ diff --git a/icons/mob/clothing/belt_mirror.dmi b/icons/mob/clothing/belt_mirror.dmi index 3440e0b3e663..b7574c4afb0e 100644 Binary files a/icons/mob/clothing/belt_mirror.dmi and b/icons/mob/clothing/belt_mirror.dmi differ diff --git a/icons/mob/clothing/eyes.dmi b/icons/mob/clothing/eyes.dmi index 9af8d7dc8bba..5f7fa454a218 100644 Binary files a/icons/mob/clothing/eyes.dmi and b/icons/mob/clothing/eyes.dmi differ diff --git a/icons/mob/clothing/faction/suns/accessory.dmi b/icons/mob/clothing/faction/suns/accessory.dmi new file mode 100644 index 000000000000..00e868d303fd Binary files /dev/null and b/icons/mob/clothing/faction/suns/accessory.dmi differ diff --git a/icons/mob/clothing/faction/suns/belt.dmi b/icons/mob/clothing/faction/suns/belt.dmi new file mode 100644 index 000000000000..dde9fb4bfa42 Binary files /dev/null and b/icons/mob/clothing/faction/suns/belt.dmi differ diff --git a/icons/mob/clothing/faction/suns/eyes.dmi b/icons/mob/clothing/faction/suns/eyes.dmi new file mode 100644 index 000000000000..0dd74b201876 Binary files /dev/null and b/icons/mob/clothing/faction/suns/eyes.dmi differ diff --git a/icons/mob/clothing/faction/suns/feet.dmi b/icons/mob/clothing/faction/suns/feet.dmi new file mode 100644 index 000000000000..0c665a29cda6 Binary files /dev/null and b/icons/mob/clothing/faction/suns/feet.dmi differ diff --git a/icons/mob/clothing/faction/suns/hands.dmi b/icons/mob/clothing/faction/suns/hands.dmi new file mode 100644 index 000000000000..c84e17e76662 Binary files /dev/null and b/icons/mob/clothing/faction/suns/hands.dmi differ diff --git a/icons/mob/clothing/faction/suns/head.dmi b/icons/mob/clothing/faction/suns/head.dmi new file mode 100644 index 000000000000..22eb273e8041 Binary files /dev/null and b/icons/mob/clothing/faction/suns/head.dmi differ diff --git a/icons/mob/clothing/faction/suns/mask.dmi b/icons/mob/clothing/faction/suns/mask.dmi new file mode 100644 index 000000000000..373ae5b94052 Binary files /dev/null and b/icons/mob/clothing/faction/suns/mask.dmi differ diff --git a/icons/mob/clothing/faction/suns/neck.dmi b/icons/mob/clothing/faction/suns/neck.dmi new file mode 100644 index 000000000000..0c8243bbb09b Binary files /dev/null and b/icons/mob/clothing/faction/suns/neck.dmi differ diff --git a/icons/mob/clothing/faction/suns/suits.dmi b/icons/mob/clothing/faction/suns/suits.dmi new file mode 100644 index 000000000000..11d1b5142b99 Binary files /dev/null and b/icons/mob/clothing/faction/suns/suits.dmi differ diff --git a/icons/mob/clothing/faction/suns/uniforms.dmi b/icons/mob/clothing/faction/suns/uniforms.dmi new file mode 100644 index 000000000000..a354f10437f5 Binary files /dev/null and b/icons/mob/clothing/faction/suns/uniforms.dmi differ diff --git a/icons/mob/clothing/feet.dmi b/icons/mob/clothing/feet.dmi index e9e6444a4795..6b974d5a8199 100644 Binary files a/icons/mob/clothing/feet.dmi and b/icons/mob/clothing/feet.dmi differ diff --git a/icons/mob/clothing/suits/hooded.dmi b/icons/mob/clothing/suits/hooded.dmi index 5988b39e8a6a..a4be6f11f793 100644 Binary files a/icons/mob/clothing/suits/hooded.dmi and b/icons/mob/clothing/suits/hooded.dmi differ diff --git a/icons/mob/clothing/underwear/species/underwear_socks_kepori.dmi b/icons/mob/clothing/underwear/species/underwear_socks_kepori.dmi index d182ee4c238a..7548aeb3a702 100644 Binary files a/icons/mob/clothing/underwear/species/underwear_socks_kepori.dmi and b/icons/mob/clothing/underwear/species/underwear_socks_kepori.dmi differ diff --git a/icons/mob/clothing/underwear/species/underwear_torso_kepori.dmi b/icons/mob/clothing/underwear/species/underwear_torso_kepori.dmi index 5574cfb965b7..19813d4e2946 100644 Binary files a/icons/mob/clothing/underwear/species/underwear_torso_kepori.dmi and b/icons/mob/clothing/underwear/species/underwear_torso_kepori.dmi differ diff --git a/icons/mob/clothing/underwear/underwear_socks.dmi b/icons/mob/clothing/underwear/underwear_socks.dmi index bc7faddc5479..7ce74422818f 100644 Binary files a/icons/mob/clothing/underwear/underwear_socks.dmi and b/icons/mob/clothing/underwear/underwear_socks.dmi differ diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi index e55252e102df..a54640fc17ba 100644 Binary files a/icons/mob/hud.dmi and b/icons/mob/hud.dmi differ diff --git a/icons/mob/inhands/faction/suns/suns_lefthand.dmi b/icons/mob/inhands/faction/suns/suns_lefthand.dmi new file mode 100644 index 000000000000..68eaf2a408f3 Binary files /dev/null and b/icons/mob/inhands/faction/suns/suns_lefthand.dmi differ diff --git a/icons/mob/inhands/faction/suns/suns_righthand.dmi b/icons/mob/inhands/faction/suns/suns_righthand.dmi new file mode 100644 index 000000000000..67743f04a454 Binary files /dev/null and b/icons/mob/inhands/faction/suns/suns_righthand.dmi differ diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi index c2f7d7c53334..f5f95c211298 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 6ede1edc7747..f626c077ced5 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/guns_lefthand.dmi b/icons/mob/inhands/weapons/guns_lefthand.dmi index 7b15fb84a247..811173593681 100644 Binary files a/icons/mob/inhands/weapons/guns_lefthand.dmi and b/icons/mob/inhands/weapons/guns_lefthand.dmi differ diff --git a/icons/mob/inhands/weapons/guns_righthand.dmi b/icons/mob/inhands/weapons/guns_righthand.dmi index 0354d2352120..4976bd2e2e00 100644 Binary files a/icons/mob/inhands/weapons/guns_righthand.dmi and b/icons/mob/inhands/weapons/guns_righthand.dmi differ diff --git a/icons/mob/inhands/weapons/swords_lefthand.dmi b/icons/mob/inhands/weapons/swords_lefthand.dmi index 8037796c590a..41093fde051e 100644 Binary files a/icons/mob/inhands/weapons/swords_lefthand.dmi and b/icons/mob/inhands/weapons/swords_lefthand.dmi differ diff --git a/icons/mob/inhands/weapons/swords_righthand.dmi b/icons/mob/inhands/weapons/swords_righthand.dmi index 6231276ec7c4..a8559339cd26 100644 Binary files a/icons/mob/inhands/weapons/swords_righthand.dmi and b/icons/mob/inhands/weapons/swords_righthand.dmi differ diff --git a/icons/mob/ipc_accessories.dmi b/icons/mob/ipc_accessories.dmi index 86311ca3172e..e9fb262aa319 100644 Binary files a/icons/mob/ipc_accessories.dmi and b/icons/mob/ipc_accessories.dmi differ diff --git a/icons/mob/pai.dmi b/icons/mob/pai.dmi index 1c609686be11..4e46503e87c7 100644 Binary files a/icons/mob/pai.dmi and b/icons/mob/pai.dmi differ diff --git a/icons/mob/pai_item_head.dmi b/icons/mob/pai_item_head.dmi index 337e22254ea8..38db9379be12 100644 Binary files a/icons/mob/pai_item_head.dmi and b/icons/mob/pai_item_head.dmi differ diff --git a/icons/mob/pai_item_lh.dmi b/icons/mob/pai_item_lh.dmi index fb9c77f5abae..49cd390f8d2f 100644 Binary files a/icons/mob/pai_item_lh.dmi and b/icons/mob/pai_item_lh.dmi differ diff --git a/icons/mob/pai_item_rh.dmi b/icons/mob/pai_item_rh.dmi index ced27446a451..de7bc143b9c3 100644 Binary files a/icons/mob/pai_item_rh.dmi and b/icons/mob/pai_item_rh.dmi differ diff --git a/icons/mob/species/ipc/bodyparts.dmi b/icons/mob/species/ipc/bodyparts.dmi index f5c348617b56..1b4b568dcc78 100644 Binary files a/icons/mob/species/ipc/bodyparts.dmi and b/icons/mob/species/ipc/bodyparts.dmi differ diff --git a/icons/mob/species/kepori/bodyparts.dmi b/icons/mob/species/kepori/bodyparts.dmi index 177efcbbf51a..f19aaeacbe08 100644 Binary files a/icons/mob/species/kepori/bodyparts.dmi and b/icons/mob/species/kepori/bodyparts.dmi differ diff --git a/icons/mob/species/vox/onmob_back_vox.dmi b/icons/mob/species/vox/onmob_back_vox.dmi index f7d7499b6cc5..d8b23da46543 100644 Binary files a/icons/mob/species/vox/onmob_back_vox.dmi and b/icons/mob/species/vox/onmob_back_vox.dmi differ diff --git a/icons/mob/species/vox/onmob_belt_vox.dmi b/icons/mob/species/vox/onmob_belt_vox.dmi index 9d183ea045b4..3a054c4952a1 100644 Binary files a/icons/mob/species/vox/onmob_belt_vox.dmi and b/icons/mob/species/vox/onmob_belt_vox.dmi differ diff --git a/icons/obj/aicards.dmi b/icons/obj/aicards.dmi index 5698962eb9fb..a0b0ecba5be7 100644 Binary files a/icons/obj/aicards.dmi and b/icons/obj/aicards.dmi differ diff --git a/icons/obj/aicardsradial.dmi b/icons/obj/aicardsradial.dmi new file mode 100644 index 000000000000..ad5b874b221c Binary files /dev/null and b/icons/obj/aicardsradial.dmi differ diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index 038ad37895ca..aaddd3b8de70 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi index f96b0fd582dc..8a042bc0d081 100644 Binary files a/icons/obj/bureaucracy.dmi and b/icons/obj/bureaucracy.dmi differ diff --git a/icons/obj/clothing/accessories.dmi b/icons/obj/clothing/accessories.dmi index dff8070e67e4..0b48ccfaf785 100644 Binary files a/icons/obj/clothing/accessories.dmi and b/icons/obj/clothing/accessories.dmi differ diff --git a/icons/obj/clothing/belts.dmi b/icons/obj/clothing/belts.dmi index 16b813111187..24cdcaed7839 100644 Binary files a/icons/obj/clothing/belts.dmi and b/icons/obj/clothing/belts.dmi differ diff --git a/icons/obj/clothing/faction/suns/accessory.dmi b/icons/obj/clothing/faction/suns/accessory.dmi new file mode 100644 index 000000000000..fed96f7c2ee2 Binary files /dev/null and b/icons/obj/clothing/faction/suns/accessory.dmi differ diff --git a/icons/obj/clothing/faction/suns/belt.dmi b/icons/obj/clothing/faction/suns/belt.dmi new file mode 100644 index 000000000000..84c5fd0b1b64 Binary files /dev/null and b/icons/obj/clothing/faction/suns/belt.dmi differ diff --git a/icons/obj/clothing/faction/suns/eyes.dmi b/icons/obj/clothing/faction/suns/eyes.dmi new file mode 100644 index 000000000000..5695d1868d4d Binary files /dev/null and b/icons/obj/clothing/faction/suns/eyes.dmi differ diff --git a/icons/obj/clothing/faction/suns/feet.dmi b/icons/obj/clothing/faction/suns/feet.dmi new file mode 100644 index 000000000000..478e4d9110a5 Binary files /dev/null and b/icons/obj/clothing/faction/suns/feet.dmi differ diff --git a/icons/obj/clothing/faction/suns/hands.dmi b/icons/obj/clothing/faction/suns/hands.dmi new file mode 100644 index 000000000000..6c7f9455773a Binary files /dev/null and b/icons/obj/clothing/faction/suns/hands.dmi differ diff --git a/icons/obj/clothing/faction/suns/head.dmi b/icons/obj/clothing/faction/suns/head.dmi new file mode 100644 index 000000000000..71855c39bdc3 Binary files /dev/null and b/icons/obj/clothing/faction/suns/head.dmi differ diff --git a/icons/obj/clothing/faction/suns/mask.dmi b/icons/obj/clothing/faction/suns/mask.dmi new file mode 100644 index 000000000000..4554e2013dd8 Binary files /dev/null and b/icons/obj/clothing/faction/suns/mask.dmi differ diff --git a/icons/obj/clothing/faction/suns/neck.dmi b/icons/obj/clothing/faction/suns/neck.dmi new file mode 100644 index 000000000000..617118e56be5 Binary files /dev/null and b/icons/obj/clothing/faction/suns/neck.dmi differ diff --git a/icons/obj/clothing/faction/suns/suits.dmi b/icons/obj/clothing/faction/suns/suits.dmi new file mode 100644 index 000000000000..03a003703f73 Binary files /dev/null and b/icons/obj/clothing/faction/suns/suits.dmi differ diff --git a/icons/obj/clothing/faction/suns/uniforms.dmi b/icons/obj/clothing/faction/suns/uniforms.dmi new file mode 100644 index 000000000000..69908b5e7988 Binary files /dev/null and b/icons/obj/clothing/faction/suns/uniforms.dmi differ diff --git a/icons/obj/clothing/glasses.dmi b/icons/obj/clothing/glasses.dmi index 45d868f69692..10e7be38f19f 100644 Binary files a/icons/obj/clothing/glasses.dmi and b/icons/obj/clothing/glasses.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 3a77a2e55885..11a1d9f84857 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index e0a755c5ca83..10eab742cfa6 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/icons/obj/clothing/suits/hooded.dmi b/icons/obj/clothing/suits/hooded.dmi index 366b69d85139..06d98acf2358 100644 Binary files a/icons/obj/clothing/suits/hooded.dmi and b/icons/obj/clothing/suits/hooded.dmi differ diff --git a/icons/obj/guns/48x32guns.dmi b/icons/obj/guns/48x32guns.dmi index 89bacfc64afd..fa7eba30f13a 100644 Binary files a/icons/obj/guns/48x32guns.dmi and b/icons/obj/guns/48x32guns.dmi differ diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi index 02e7d3812dcb..b89094f953f3 100644 Binary files a/icons/obj/guns/projectile.dmi and b/icons/obj/guns/projectile.dmi differ diff --git a/icons/obj/items_and_weapons.dmi b/icons/obj/items_and_weapons.dmi index 7a20a687e055..81c1e3ff9b12 100644 Binary files a/icons/obj/items_and_weapons.dmi and b/icons/obj/items_and_weapons.dmi differ diff --git a/icons/obj/printer.dmi b/icons/obj/printer.dmi new file mode 100644 index 000000000000..6b0ea97e29f4 Binary files /dev/null and b/icons/obj/printer.dmi differ diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index 250f7220713d..26b4ebd8a83f 100644 Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ diff --git a/icons/obj/transforming_energy.dmi b/icons/obj/transforming_energy.dmi index 4037a51d2ffa..ff2f99832d1c 100644 Binary files a/icons/obj/transforming_energy.dmi and b/icons/obj/transforming_energy.dmi differ diff --git a/icons/obj/vehicles.dmi b/icons/obj/vehicles.dmi index cb38fecefcfa..87cef669faf0 100644 Binary files a/icons/obj/vehicles.dmi and b/icons/obj/vehicles.dmi differ diff --git a/icons/stamp_icons/large_stamp-artificer.png b/icons/stamp_icons/large_stamp-artificer.png new file mode 100644 index 000000000000..058a4407428c Binary files /dev/null and b/icons/stamp_icons/large_stamp-artificer.png differ diff --git a/icons/stamp_icons/large_stamp-bard.png b/icons/stamp_icons/large_stamp-bard.png new file mode 100644 index 000000000000..8ca5a9367e61 Binary files /dev/null and b/icons/stamp_icons/large_stamp-bard.png differ diff --git a/icons/stamp_icons/large_stamp-cmm.png b/icons/stamp_icons/large_stamp-cmm.png new file mode 100644 index 000000000000..7ae1c93cfddc Binary files /dev/null and b/icons/stamp_icons/large_stamp-cmm.png differ diff --git a/icons/stamp_icons/large_stamp-cybersun.png b/icons/stamp_icons/large_stamp-cybersun.png new file mode 100644 index 000000000000..5a1791bce623 Binary files /dev/null and b/icons/stamp_icons/large_stamp-cybersun.png differ diff --git a/icons/stamp_icons/large_stamp-donk.png b/icons/stamp_icons/large_stamp-donk.png new file mode 100644 index 000000000000..5b9d204bc669 Binary files /dev/null and b/icons/stamp_icons/large_stamp-donk.png differ diff --git a/icons/stamp_icons/large_stamp-gold.png b/icons/stamp_icons/large_stamp-gold.png new file mode 100644 index 000000000000..6ca44db30487 Binary files /dev/null and b/icons/stamp_icons/large_stamp-gold.png differ diff --git a/icons/stamp_icons/large_stamp-inteq.png b/icons/stamp_icons/large_stamp-inteq.png new file mode 100644 index 000000000000..31370e095c53 Binary files /dev/null and b/icons/stamp_icons/large_stamp-inteq.png differ diff --git a/icons/stamp_icons/large_stamp-maa.png b/icons/stamp_icons/large_stamp-maa.png new file mode 100644 index 000000000000..19d4345e2006 Binary files /dev/null and b/icons/stamp_icons/large_stamp-maa.png differ diff --git a/icons/stamp_icons/large_stamp-vanguard.png b/icons/stamp_icons/large_stamp-vanguard.png new file mode 100644 index 000000000000..1897011ec86d Binary files /dev/null and b/icons/stamp_icons/large_stamp-vanguard.png differ diff --git a/shiptest.dme b/shiptest.dme index cea9427ae72e..937e4d9151ca 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -222,7 +222,6 @@ #include "code\_globalvars\lists\achievements.dm" #include "code\_globalvars\lists\admin.dm" #include "code\_globalvars\lists\client.dm" -#include "code\_globalvars\lists\faxes.dm" #include "code\_globalvars\lists\flavor_misc.dm" #include "code\_globalvars\lists\jobs.dm" #include "code\_globalvars\lists\keybindings.dm" @@ -376,6 +375,7 @@ #include "code\controllers\subsystem\processing\nanites.dm" #include "code\controllers\subsystem\processing\networks.dm" #include "code\controllers\subsystem\processing\obj.dm" +#include "code\controllers\subsystem\processing\obj_tab_items.dm" #include "code\controllers\subsystem\processing\processing.dm" #include "code\controllers\subsystem\processing\projectiles.dm" #include "code\controllers\subsystem\processing\quirks.dm" @@ -459,6 +459,7 @@ #include "code\datums\components\chasm.dm" #include "code\datums\components\connect_containers.dm" #include "code\datums\components\connect_loc_behalf.dm" +#include "code\datums\components\connect_mob_behalf.dm" #include "code\datums\components\connect_range.dm" #include "code\datums\components\construction.dm" #include "code\datums\components\creamed.dm" @@ -1355,6 +1356,7 @@ #include "code\game\objects\structures\petrified_statue.dm" #include "code\game\objects\structures\plasticflaps.dm" #include "code\game\objects\structures\poddoor_assembly.dm" +#include "code\game\objects\structures\printer.dm" #include "code\game\objects\structures\radioactive.dm" #include "code\game\objects\structures\railings.dm" #include "code\game\objects\structures\reflector.dm" @@ -1469,6 +1471,7 @@ #include "code\game\turfs\open\space\space.dm" #include "code\game\turfs\open\space\transit.dm" #include "code\modules\admin\admin.dm" +#include "code\modules\admin\admin_fax_panel.dm" #include "code\modules\admin\admin_follow.dm" #include "code\modules\admin\admin_investigate.dm" #include "code\modules\admin\admin_ranks.dm" @@ -1513,7 +1516,6 @@ #include "code\modules\admin\verbs\deadsay.dm" #include "code\modules\admin\verbs\debug.dm" #include "code\modules\admin\verbs\diagnostics.dm" -#include "code\modules\admin\verbs\fax_manager.dm" #include "code\modules\admin\verbs\fix_air.dm" #include "code\modules\admin\verbs\fps.dm" #include "code\modules\admin\verbs\getlogs.dm" @@ -1534,6 +1536,7 @@ #include "code\modules\admin\verbs\randomverbs.dm" #include "code\modules\admin\verbs\reestablish_db_connection.dm" #include "code\modules\admin\verbs\rejuvenate.dm" +#include "code\modules\admin\verbs\requests.dm" #include "code\modules\admin\verbs\secrets.dm" #include "code\modules\admin\verbs\selectequipment.dm" #include "code\modules\admin\verbs\shuttlepanel.dm" @@ -1926,6 +1929,7 @@ #include "code\modules\clothing\towels.dm" #include "code\modules\clothing\ears\_ears.dm" #include "code\modules\clothing\factions\gezena.dm" +#include "code\modules\clothing\factions\suns.dm" #include "code\modules\clothing\glasses\_glasses.dm" #include "code\modules\clothing\glasses\engine_goggles.dm" #include "code\modules\clothing\glasses\hud.dm" @@ -2866,7 +2870,6 @@ #include "code\modules\paperwork\clipboard.dm" #include "code\modules\paperwork\contract.dm" #include "code\modules\paperwork\fax.dm" -#include "code\modules\paperwork\fax_manager.dm" #include "code\modules\paperwork\filingcabinet.dm" #include "code\modules\paperwork\folders.dm" #include "code\modules\paperwork\handlabeler.dm" @@ -3124,6 +3127,8 @@ #include "code\modules\religion\religion_sects.dm" #include "code\modules\religion\religion_structures.dm" #include "code\modules\religion\rites.dm" +#include "code\modules\requests\request.dm" +#include "code\modules\requests\requests_manager.dm" #include "code\modules\research\bepis.dm" #include "code\modules\research\designs.dm" #include "code\modules\research\destructive_analyzer.dm" @@ -3449,7 +3454,6 @@ #include "code\modules\vending\games.dm" #include "code\modules\vending\liberation.dm" #include "code\modules\vending\liberation_toy.dm" -#include "code\modules\vending\magivend.dm" #include "code\modules\vending\medical.dm" #include "code\modules\vending\medical_wall.dm" #include "code\modules\vending\megaseed.dm" diff --git a/sound/weapons/gun/pistol/m1911.ogg b/sound/weapons/gun/pistol/candor.ogg similarity index 100% rename from sound/weapons/gun/pistol/m1911.ogg rename to sound/weapons/gun/pistol/candor.ogg diff --git a/sound/weapons/gun/pistol/m1911_cocked.ogg b/sound/weapons/gun/pistol/candor_cocked.ogg similarity index 100% rename from sound/weapons/gun/pistol/m1911_cocked.ogg rename to sound/weapons/gun/pistol/candor_cocked.ogg diff --git a/sound/weapons/gun/pistol/m1911_reload.ogg b/sound/weapons/gun/pistol/candor_reload.ogg similarity index 100% rename from sound/weapons/gun/pistol/m1911_reload.ogg rename to sound/weapons/gun/pistol/candor_reload.ogg diff --git a/sound/weapons/gun/pistol/m1911_unload.ogg b/sound/weapons/gun/pistol/candor_unload.ogg similarity index 100% rename from sound/weapons/gun/pistol/m1911_unload.ogg rename to sound/weapons/gun/pistol/candor_unload.ogg diff --git a/sound/weapons/gun/rifle/flamingarrow.ogg b/sound/weapons/gun/rifle/flamingarrow.ogg new file mode 100644 index 000000000000..0362cf72013f Binary files /dev/null and b/sound/weapons/gun/rifle/flamingarrow.ogg differ diff --git a/sound/weapons/gun/rifle/m16.ogg b/sound/weapons/gun/rifle/m16.ogg index d7f5b22067bb..b81834891201 100644 Binary files a/sound/weapons/gun/rifle/m16.ogg and b/sound/weapons/gun/rifle/m16.ogg differ diff --git a/sound/weapons/gun/rifle/scout.ogg b/sound/weapons/gun/rifle/scout.ogg new file mode 100644 index 000000000000..8c4227a44871 Binary files /dev/null and b/sound/weapons/gun/rifle/scout.ogg differ diff --git a/sound/weapons/gun/rifle/scout_bolt_in.ogg b/sound/weapons/gun/rifle/scout_bolt_in.ogg new file mode 100644 index 000000000000..13a854b3b1d4 Binary files /dev/null and b/sound/weapons/gun/rifle/scout_bolt_in.ogg differ diff --git a/sound/weapons/gun/rifle/scout_bolt_out.ogg b/sound/weapons/gun/rifle/scout_bolt_out.ogg new file mode 100644 index 000000000000..4e1107079a13 Binary files /dev/null and b/sound/weapons/gun/rifle/scout_bolt_out.ogg differ diff --git a/sound/weapons/gun/rifle/vickland.ogg b/sound/weapons/gun/rifle/vickland.ogg new file mode 100644 index 000000000000..d6f46cbc610b Binary files /dev/null and b/sound/weapons/gun/rifle/vickland.ogg differ diff --git a/sound/weapons/gun/rifle/vickland_unload.ogg b/sound/weapons/gun/rifle/vickland_unload.ogg new file mode 100644 index 000000000000..b251d7b70095 Binary files /dev/null and b/sound/weapons/gun/rifle/vickland_unload.ogg differ diff --git a/sound/weapons/gun/rifle/winchester_cocked.ogg b/sound/weapons/gun/rifle/winchester_cocked.ogg deleted file mode 100644 index 5f2d32e31eaf..000000000000 Binary files a/sound/weapons/gun/rifle/winchester_cocked.ogg and /dev/null differ diff --git a/sound/weapons/gun/shotgun/brimstone.ogg b/sound/weapons/gun/shotgun/brimstone.ogg new file mode 100644 index 000000000000..432a690f9ec3 Binary files /dev/null and b/sound/weapons/gun/shotgun/brimstone.ogg differ diff --git a/sound/weapons/gun/shotgun/bulldog.ogg b/sound/weapons/gun/shotgun/bulldog.ogg new file mode 100644 index 000000000000..090e5a81a88e Binary files /dev/null and b/sound/weapons/gun/shotgun/bulldog.ogg differ diff --git a/sound/weapons/gun/shotgun/dbshotgun_break.ogg b/sound/weapons/gun/shotgun/dbshotgun_break.ogg new file mode 100644 index 000000000000..33196c3ac386 Binary files /dev/null and b/sound/weapons/gun/shotgun/dbshotgun_break.ogg differ diff --git a/sound/weapons/gun/shotgun/dbshotgun_close.ogg b/sound/weapons/gun/shotgun/dbshotgun_close.ogg new file mode 100644 index 000000000000..c6f4a26bc56b Binary files /dev/null and b/sound/weapons/gun/shotgun/dbshotgun_close.ogg differ diff --git a/sound/weapons/gun/smg/firestorm.ogg b/sound/weapons/gun/smg/firestorm.ogg new file mode 100644 index 000000000000..2ff8319777de Binary files /dev/null and b/sound/weapons/gun/smg/firestorm.ogg differ diff --git a/tgui/packages/tgui/interfaces/AdminFax.js b/tgui/packages/tgui/interfaces/AdminFax.js new file mode 100644 index 000000000000..8245bc4a9ad3 --- /dev/null +++ b/tgui/packages/tgui/interfaces/AdminFax.js @@ -0,0 +1,263 @@ +import { useBackend, useLocalState } from '../backend'; +import { + Section, + Box, + Dropdown, + Button, + Input, + TextArea, + Divider, + NumberInput, + Tooltip, + Knob, +} from '../components'; +import { Window } from '../layouts'; + +export const AdminFax = (props, context) => { + return ( + + + + + + ); +}; + +export const FaxMainPanel = (props, context) => { + const { act, data } = useBackend(context); + + const [fax, setFax] = useLocalState(context, 'fax', ''); + const [saved, setSaved] = useLocalState(context, 'saved', false); + const [paperName, setPaperName] = useLocalState(context, 'paperName', ''); + const [fromWho, setFromWho] = useLocalState(context, 'fromWho', ''); + const [rawText, setRawText] = useLocalState(context, 'rawText', ''); + const [stamp, setStamp] = useLocalState(context, 'stampType', ''); + const [stampCoordX, setStampCoordX] = useLocalState( + context, + 'stampCoordX', + 0 + ); + const [stampCoordY, setStampCoordY] = useLocalState( + context, + 'stampCoordY', + 0 + ); + const [stampAngle, setStampAngle] = useLocalState(context, 'stampAngle', 0); + if (stamp && data.stamps[0] !== 'None') { + data.stamps.unshift('None'); + } + return ( + <> +
+ + + } + > + + setFax(value)} + /> + +
+
+ act('preview', { + faxName: fax, + }) + } + > + Preview + + } + > + + setPaperName(v)} + /> + + + + + + + setFromWho(v)} + /> + + + + + + +