diff --git a/_maps/RandomRuins/SpaceRuins/DJstation.dmm b/_maps/RandomRuins/SpaceRuins/DJstation.dmm
index aec68eea3dc..768ec0049bb 100644
--- a/_maps/RandomRuins/SpaceRuins/DJstation.dmm
+++ b/_maps/RandomRuins/SpaceRuins/DJstation.dmm
@@ -71,6 +71,8 @@
pixel_y = -23
},
/obj/structure/cable,
+/obj/structure/closet/crate,
+/obj/effect/spawner/lootdrop/space/syndiecosmetic,
/turf/open/floor/plating,
/area/ruin/space/djstation)
"aq" = (
@@ -83,8 +85,8 @@
/area/ruin/space/djstation)
"as" = (
/obj/structure/rack,
-/obj/item/clothing/suit/space/syndicate/orange,
-/obj/item/clothing/head/helmet/space/syndicate/orange,
+/obj/item/clothing/suit/space/eva,
+/obj/item/clothing/head/helmet/space/eva,
/obj/item/clothing/mask/breath,
/turf/open/floor/plating,
/area/ruin/space/djstation)
diff --git a/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm b/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm
index 13191e1148e..d63ba5aaeef 100644
--- a/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm
+++ b/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm
@@ -1116,7 +1116,7 @@
},
/area/ruin/space/derelict/singularity_engine)
"eY" = (
-/obj/item/clothing/suit/space/syndicate/black/engie,
+/obj/item/clothing/suit/space/eva,
/turf/open/floor/plating/airless,
/area/ruin/space/derelict/singularity_engine)
"eZ" = (
@@ -1186,7 +1186,7 @@
},
/area/ruin/space/derelict/singularity_engine)
"fk" = (
-/obj/item/clothing/head/helmet/space/syndicate/black/engie,
+/obj/item/clothing/head/helmet/space/eva,
/turf/open/floor/plating/airless,
/area/ruin/space/derelict/singularity_engine)
"fl" = (
@@ -3470,7 +3470,7 @@
/obj/machinery/light/small{
dir = 4
},
-/obj/item/clothing/head/helmet/space/syndicate/black/red,
+/obj/item/clothing/head/helmet/space/eva,
/turf/open/floor/plasteel/airless,
/area/ruin/space/derelict/se_solar)
"oc" = (
@@ -3499,7 +3499,7 @@
/turf/open/floor/plasteel/airless,
/area/ruin/space/derelict/se_solar)
"oh" = (
-/obj/item/clothing/suit/space/syndicate/black/red,
+/obj/item/clothing/suit/space/eva,
/turf/open/floor/plasteel/airless,
/area/ruin/space/derelict/se_solar)
"oi" = (
@@ -3631,7 +3631,7 @@
},
/area/template_noop)
"CZ" = (
-/obj/item/clothing/suit/space/syndicate/black/green,
+/obj/item/clothing/suit/space/eva,
/turf/open/floor/plasteel/airless{
icon_state = "damaged2"
},
@@ -3736,7 +3736,7 @@
/turf/closed/wall,
/area/ruin/space/derelict/hallway/primary/port)
"KP" = (
-/obj/item/dronespeak_manual,
+/obj/item/language_manual/dronespeak_manual,
/turf/open/floor/plasteel/airless,
/area/ruin/space/derelict/bridge/ai_upload)
"KS" = (
@@ -3796,7 +3796,7 @@
/turf/open/floor/plasteel/airless,
/area/ruin/space/derelict/bridge/ai_upload)
"Ob" = (
-/obj/item/clothing/head/helmet/space/syndicate/black/green,
+/obj/item/clothing/head/helmet/space/eva,
/turf/open/floor/plasteel/airless,
/area/ruin/space/derelict/bridge/ai_upload)
"Oj" = (
diff --git a/_maps/RandomRuins/SpaceRuins/abandonedteleporter.dmm b/_maps/RandomRuins/SpaceRuins/abandonedteleporter.dmm
index 175b2dab749..37df1cc6038 100644
--- a/_maps/RandomRuins/SpaceRuins/abandonedteleporter.dmm
+++ b/_maps/RandomRuins/SpaceRuins/abandonedteleporter.dmm
@@ -99,6 +99,7 @@
/area/ruin/space/abandoned_tele)
"x" = (
/obj/structure/closet,
+/obj/item/gps/spaceruin,
/turf/open/floor/plating/airless,
/area/ruin/space/abandoned_tele)
"y" = (
diff --git a/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm b/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm
index 8be9406f41c..5b364434823 100644
--- a/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm
+++ b/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm
@@ -189,6 +189,7 @@
"aN" = (
/obj/structure/table/reinforced,
/obj/item/folder,
+/obj/item/gps/spaceruin,
/turf/open/floor/plasteel/dark/side,
/area/ruin/space/has_grav/abandonedzoo)
"aO" = (
@@ -252,8 +253,9 @@
/area/ruin/space/has_grav/abandonedzoo)
"aT" = (
/obj/structure/rack,
-/obj/item/clothing/suit/space/hardsuit/medical,
+/obj/item/clothing/suit/space/eva,
/obj/item/tank/internals/emergency_oxygen/double,
+/obj/item/clothing/head/helmet/space/eva,
/turf/open/floor/plasteel/dark/side,
/area/ruin/space/has_grav/abandonedzoo)
"aU" = (
diff --git a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm
index 9ab10156a9a..10c984534b6 100644
--- a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm
+++ b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm
@@ -768,9 +768,7 @@
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/derelictoutpost)
"bY" = (
-/obj/item/gps{
- gpstag = "Distress Signal"
- },
+/obj/item/gps/spaceruin,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/derelictoutpost/powerstorage)
"ca" = (
@@ -1705,7 +1703,6 @@
/turf/open/floor/plating/asteroid,
/area/ruin/space/has_grav/derelictoutpost)
"dS" = (
-/obj/item/ammo_box/magazine/m45,
/obj/structure/alien/weeds{
color = "#4BAE56";
desc = "A thick gelatinous surface covers the floor. Someone get the golashes.";
@@ -1880,7 +1877,7 @@
/obj/structure/closet/crate{
icon_state = "crateopen"
},
-/obj/item/crowbar,
+/obj/effect/spawner/lootdrop/space/fancytool,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/derelictoutpost/cargostorage)
"er" = (
@@ -1960,9 +1957,9 @@
/obj/structure/closet/crate{
icon_state = "crateopen"
},
-/obj/item/paicard,
/obj/machinery/light,
/obj/effect/turf_decal/delivery,
+/obj/effect/spawner/lootdrop/space/fancytech,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/derelictoutpost/cargostorage)
"eC" = (
diff --git a/_maps/RandomRuins/SpaceRuins/caravanambush.dmm b/_maps/RandomRuins/SpaceRuins/caravanambush.dmm
index bb58578c7d2..3b47bb509d0 100644
--- a/_maps/RandomRuins/SpaceRuins/caravanambush.dmm
+++ b/_maps/RandomRuins/SpaceRuins/caravanambush.dmm
@@ -616,12 +616,10 @@
/area/shuttle/caravan/freighter3)
"hx" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/structure/closet/crate/secure/plasma,
-/obj/item/tank/internals/plasma/full,
-/obj/item/stack/sheet/mineral/plasma{
- amount = 25
- },
/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet/crate/secure/engineering,
+/obj/effect/spawner/lootdrop/space/fancytech,
+/obj/effect/spawner/lootdrop/space/fancytech,
/turf/open/floor/plasteel/airless/dark,
/area/shuttle/caravan/freighter3)
"hy" = (
@@ -687,7 +685,6 @@
/area/shuttle/caravan/freighter2)
"hW" = (
/obj/effect/turf_decal/bot_white,
-/obj/structure/closet/crate/secure/gear,
/obj/machinery/button/door{
id = "caravantrade2_cargo_port";
name = "Cargo Blast Door Control";
@@ -696,11 +693,9 @@
/obj/machinery/light/small{
dir = 1
},
-/obj/item/ammo_box/magazine/m9mm_aps{
- pixel_x = -3;
- pixel_y = 3
- },
-/obj/item/ammo_box/magazine/m9mm_aps,
+/obj/structure/closet/crate/secure,
+/obj/effect/spawner/lootdrop/space/cashmoney,
+/obj/effect/spawner/lootdrop/space/cashmoney,
/turf/open/floor/plasteel/airless/dark,
/area/shuttle/caravan/freighter2)
"hX" = (
@@ -747,12 +742,10 @@
/obj/effect/turf_decal/box/white/corners{
dir = 8
},
-/obj/structure/closet/crate/secure/plasma,
-/obj/item/tank/internals/plasma/full,
-/obj/item/stack/sheet/mineral/plasma{
- amount = 25
- },
/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet/crate/secure/engineering,
+/obj/effect/spawner/lootdrop/space/fancytech,
+/obj/effect/spawner/lootdrop/space/fancytech,
/turf/open/floor/plating/airless,
/area/shuttle/caravan/freighter3)
"ic" = (
@@ -950,7 +943,7 @@
dir = 1
},
/obj/structure/closet/crate/secure/weapon,
-/obj/item/gun/ballistic/shotgun/sc_pump,
+/obj/item/gun/energy/disabler,
/turf/open/floor/plasteel/airless/dark,
/area/shuttle/caravan/freighter2)
"iX" = (
@@ -1038,7 +1031,7 @@
},
/obj/effect/decal/cleanable/dirt,
/obj/structure/closet/crate/secure/weapon,
-/obj/item/gun/ballistic/automatic/pistol/aps,
+/obj/item/gun/energy/laser/retro,
/turf/open/floor/plasteel/airless/dark,
/area/shuttle/caravan/freighter2)
"js" = (
diff --git a/_maps/RandomRuins/SpaceRuins/clericden.dmm b/_maps/RandomRuins/SpaceRuins/clericden.dmm
index 0b6ca24dd3d..4673bb4eb74 100644
--- a/_maps/RandomRuins/SpaceRuins/clericden.dmm
+++ b/_maps/RandomRuins/SpaceRuins/clericden.dmm
@@ -187,6 +187,11 @@
/obj/effect/decal/cleanable/blood,
/turf/open/floor/plating/asteroid/airless,
/area/ruin/unpowered/no_grav)
+"R" = (
+/obj/structure/closet/crate/coffin,
+/obj/item/gps/spaceruin,
+/turf/open/floor/plasteel/airless/dark,
+/area/ruin/unpowered/no_grav)
"S" = (
/obj/effect/decal/cleanable/blood/drip,
/turf/open/floor/plating/asteroid/airless,
@@ -302,7 +307,7 @@ a
b
e
i
-l
+R
e
x
m
diff --git a/_maps/RandomRuins/SpaceRuins/clownplanet.dmm b/_maps/RandomRuins/SpaceRuins/clownplanet.dmm
index 659eb745f04..701afc0873b 100644
--- a/_maps/RandomRuins/SpaceRuins/clownplanet.dmm
+++ b/_maps/RandomRuins/SpaceRuins/clownplanet.dmm
@@ -168,6 +168,7 @@
},
/area/ruin/powered/clownplanet)
"aI" = (
+/obj/item/gps/spaceruin,
/obj/item/pickaxe,
/turf/open/floor/plating/asteroid,
/area/ruin/powered/clownplanet)
diff --git a/_maps/RandomRuins/SpaceRuins/crashedclownship.dmm b/_maps/RandomRuins/SpaceRuins/crashedclownship.dmm
index 3adef24b4e1..144812dd784 100644
--- a/_maps/RandomRuins/SpaceRuins/crashedclownship.dmm
+++ b/_maps/RandomRuins/SpaceRuins/crashedclownship.dmm
@@ -47,6 +47,7 @@
req_access_txt = "46"
},
/obj/item/clothing/shoes/clown_shoes/banana_shoes,
+/obj/item/gps/spaceruin,
/obj/effect/spawner/lootdrop/maintenance{
lootcount = 2;
name = "2maintenance loot spawner"
diff --git a/_maps/RandomRuins/SpaceRuins/crashedship.dmm b/_maps/RandomRuins/SpaceRuins/crashedship.dmm
index 13f2cddb206..a6eb1b1fc65 100644
--- a/_maps/RandomRuins/SpaceRuins/crashedship.dmm
+++ b/_maps/RandomRuins/SpaceRuins/crashedship.dmm
@@ -827,6 +827,7 @@
/obj/effect/turf_decal/tile/green{
dir = 8
},
+/obj/effect/spawner/lootdrop/space/rareseed,
/turf/open/floor/plasteel,
/area/awaymission/bmpship/midship)
"dg" = (
@@ -1066,6 +1067,7 @@
/area/awaymission/bmpship/fore)
"ee" = (
/obj/structure/table,
+/obj/effect/spawner/lootdrop/space/fancytech,
/turf/open/floor/carpet,
/area/awaymission/bmpship/fore)
"ef" = (
@@ -1263,6 +1265,7 @@
/obj/effect/turf_decal/stripes/line{
dir = 8
},
+/obj/effect/spawner/lootdrop/space/fancytech,
/turf/open/floor/plasteel,
/area/awaymission/bmpship/aft)
"eS" = (
@@ -1701,7 +1704,7 @@
/area/awaymission/bmpship/aft)
"gE" = (
/obj/effect/decal/remains/human,
-/obj/item/clothing/head/helmet/space/syndicate/green/dark,
+/obj/item/clothing/head/helmet/space/eva,
/obj/effect/gibspawner/generic,
/turf/open/floor/plating/asteroid/airless,
/area/awaymission/bmpship)
@@ -1760,7 +1763,7 @@
/turf/open/floor/plasteel,
/area/awaymission/bmpship/aft)
"gQ" = (
-/obj/item/clothing/suit/space/syndicate/green/dark,
+/obj/item/clothing/suit/space/eva,
/turf/open/floor/plating/asteroid/airless,
/area/awaymission/bmpship)
"gR" = (
@@ -1837,15 +1840,9 @@
/obj/machinery/portable_atmospherics/canister/air,
/turf/open/floor/plating/airless,
/area/awaymission/bmpship/midship)
-"hj" = (
-/obj/structure/closet/crate,
-/obj/item/stack/spacecash/c10,
-/obj/item/stack/spacecash/c200,
-/turf/open/floor/plasteel,
-/area/awaymission/bmpship/aft)
"hk" = (
/obj/structure/closet/crate,
-/obj/item/stack/spacecash/c10,
+/obj/effect/spawner/lootdrop/space/cashmoney,
/turf/open/floor/plasteel,
/area/awaymission/bmpship/aft)
"hl" = (
@@ -1910,16 +1907,41 @@
},
/turf/open/floor/plating/airless,
/area/awaymission/bmpship/midship)
+"DS" = (
+/obj/machinery/hydroponics,
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/spawner/lootdrop/space/rareseed,
+/turf/open/floor/plasteel,
+/area/awaymission/bmpship/midship)
"EQ" = (
/obj/structure/lattice,
/turf/template_noop,
/area/awaymission/bmpship/midship)
+"GF" = (
+/obj/machinery/hydroponics,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/spawner/lootdrop/space/rareseed,
+/turf/open/floor/plasteel,
+/area/awaymission/bmpship/midship)
"Hy" = (
/obj/machinery/door/poddoor/shutters{
id = "packerMine"
},
/turf/open/floor/plating/airless,
/area/awaymission/bmpship/midship)
+"IA" = (
+/obj/structure/table,
+/obj/item/gps/spaceruin,
+/turf/open/floor/carpet,
+/area/awaymission/bmpship/fore)
"Kj" = (
/obj/machinery/light/small{
dir = 1
@@ -2340,7 +2362,7 @@ aa
aI
hE
bV
-ee
+IA
Xc
Xc
ee
@@ -2898,7 +2920,7 @@ bv
aq
bZ
bZ
-bZ
+GF
dc
dg
dB
@@ -3151,7 +3173,7 @@ aa
aa
aa
aq
-cd
+DS
cd
cd
df
@@ -4088,7 +4110,7 @@ gz
gg
dl
cE
-hj
+hk
ht
ho
aj
diff --git a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm
index 130b034da78..fc20d9f6b75 100644
--- a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm
+++ b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm
@@ -122,6 +122,7 @@
/area/ruin/space/has_grav/deepstorage/kitchen)
"aB" = (
/obj/structure/table,
+/obj/item/gps/spaceruin,
/turf/open/floor/plating,
/area/ruin/space/has_grav/deepstorage/crusher)
"aC" = (
@@ -343,16 +344,9 @@
"aW" = (
/obj/structure/closet/cardboard,
/obj/effect/turf_decal/delivery,
-/obj/item/ammo_box/magazine/m9mm{
- pixel_x = -3;
- pixel_y = 3
- },
-/obj/item/ammo_box/magazine/m9mm,
-/obj/item/ammo_box/magazine/m9mm{
- pixel_x = 3;
- pixel_y = -3
- },
/obj/effect/decal/cleanable/dirt,
+/obj/effect/spawner/lootdrop/space/languagebook,
+/obj/effect/spawner/lootdrop/space/languagebook,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/deepstorage/storage)
"aX" = (
@@ -801,6 +795,8 @@
/area/ruin/space/has_grav/deepstorage)
"cd" = (
/obj/structure/table,
+/obj/effect/spawner/lootdrop/space/rareseed,
+/obj/effect/spawner/lootdrop/space/rareseed,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/deepstorage/hydroponics)
"cf" = (
@@ -1749,10 +1745,7 @@
/obj/structure/reagent_dispensers/peppertank{
pixel_x = 32
},
-/obj/item/gun/ballistic/automatic/wt550,
-/obj/item/ammo_box/magazine/wt550m9{
- pixel_y = 12
- },
+/obj/effect/spawner/lootdrop/space/fancytool,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/deepstorage/armory)
"ey" = (
diff --git a/_maps/RandomRuins/SpaceRuins/forgottenship.dmm b/_maps/RandomRuins/SpaceRuins/forgottenship.dmm
index a08d505a1bc..e32ae3f31b2 100644
--- a/_maps/RandomRuins/SpaceRuins/forgottenship.dmm
+++ b/_maps/RandomRuins/SpaceRuins/forgottenship.dmm
@@ -1135,7 +1135,7 @@
/obj/structure/closet/crate/secure/gear{
req_one_access_txt = "150"
},
-/obj/item/codespeak_manual/unlimited,
+/obj/item/language_manual/codespeak_manual/unlimited,
/turf/open/floor/pod/dark,
/area/ruin/space/has_grav/powered/syndicate_forgotten_vault)
"de" = (
diff --git a/_maps/RandomRuins/SpaceRuins/gasthelizards.dmm b/_maps/RandomRuins/SpaceRuins/gasthelizards.dmm
index 06227b98201..15544987db4 100644
--- a/_maps/RandomRuins/SpaceRuins/gasthelizards.dmm
+++ b/_maps/RandomRuins/SpaceRuins/gasthelizards.dmm
@@ -310,6 +310,7 @@
},
/obj/machinery/light,
/obj/structure/table,
+/obj/item/gps/spaceruin,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/gasthelizard)
"O" = (
@@ -344,7 +345,7 @@
/turf/open/floor/plasteel/airless/dark,
/area/ruin/space/has_grav/gasthelizard)
"S" = (
-/obj/machinery/suit_storage_unit/security,
+/obj/machinery/suit_storage_unit/standard_unit,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/gasthelizard)
"T" = (
diff --git a/_maps/RandomRuins/SpaceRuins/hellfactory.dmm b/_maps/RandomRuins/SpaceRuins/hellfactory.dmm
index 97daf0808be..bff2d4e5a16 100644
--- a/_maps/RandomRuins/SpaceRuins/hellfactory.dmm
+++ b/_maps/RandomRuins/SpaceRuins/hellfactory.dmm
@@ -221,6 +221,7 @@
/area/ruin/space/has_grav/hellfactoryoffice)
"aI" = (
/obj/structure/table/reinforced,
+/obj/item/gps/spaceruin,
/turf/open/floor/plasteel/grimy,
/area/ruin/space/has_grav/hellfactoryoffice)
"aJ" = (
@@ -505,15 +506,13 @@
/area/ruin/space/has_grav/hellfactory)
"bz" = (
/obj/structure/closet/crate,
-/obj/item/reagent_containers/glass/beaker/large,
-/obj/item/reagent_containers/glass/beaker/large,
-/obj/item/reagent_containers/glass/beaker/large,
/obj/effect/decal/cleanable/cobweb,
+/obj/effect/spawner/lootdrop/space/cashmoney,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/hellfactory)
"bA" = (
/obj/structure/closet/crate,
-/obj/item/stack/package_wrap,
+/obj/effect/spawner/lootdrop/space/languagebook,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/hellfactory)
"bB" = (
@@ -611,8 +610,7 @@
/obj/structure/window/reinforced{
dir = 4
},
-/obj/item/stack/sheet/mineral/wood/fifty,
-/obj/item/plunger,
+/obj/effect/spawner/lootdrop/space/languagebook,
/turf/open/floor/plating,
/area/ruin/space/has_grav/hellfactory)
"bP" = (
@@ -731,11 +729,6 @@
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/hellfactory)
-"cg" = (
-/obj/structure/closet/crate,
-/obj/item/stack/ore/glass,
-/turf/open/floor/plasteel,
-/area/ruin/space/has_grav/hellfactory)
"ch" = (
/obj/machinery/light{
dir = 8
@@ -751,7 +744,7 @@
/area/ruin/space/has_grav/hellfactory)
"cj" = (
/obj/structure/closet/crate,
-/obj/item/stack/sheet/cloth/five,
+/obj/effect/spawner/lootdrop/space/material,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/hellfactory)
"ck" = (
@@ -1609,7 +1602,7 @@ aA
aB
ab
GE
-cg
+cj
cj
by
Sz
diff --git a/_maps/RandomRuins/SpaceRuins/mrow_thats_right.dmm b/_maps/RandomRuins/SpaceRuins/mrow_thats_right.dmm
index 1a73c1940ea..30faa5f25b8 100644
--- a/_maps/RandomRuins/SpaceRuins/mrow_thats_right.dmm
+++ b/_maps/RandomRuins/SpaceRuins/mrow_thats_right.dmm
@@ -350,9 +350,7 @@
dir = 4
},
/obj/structure/closet/cabinet,
-/obj/item/gps{
- gpstag = "kitty"
- },
+/obj/item/gps/spaceruin,
/turf/open/floor/carpet,
/area/ruin/space/has_grav/powered/cat_man)
"bc" = (
diff --git a/_maps/RandomRuins/SpaceRuins/oldAIsat.dmm b/_maps/RandomRuins/SpaceRuins/oldAIsat.dmm
index 669f48c82f4..f8dab95aae7 100644
--- a/_maps/RandomRuins/SpaceRuins/oldAIsat.dmm
+++ b/_maps/RandomRuins/SpaceRuins/oldAIsat.dmm
@@ -403,6 +403,7 @@
/area/template_noop)
"bt" = (
/obj/structure/table,
+/obj/item/gps/spaceruin,
/obj/item/radio/off,
/turf/open/floor/plasteel/airless,
/area/tcommsat/oldaisat)
@@ -895,6 +896,16 @@
/obj/machinery/teleport/hub,
/turf/open/floor/plating,
/area/tcommsat/oldaisat)
+"jZ" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/space/fancytech,
+/turf/open/floor/plasteel/airless,
+/area/tcommsat/oldaisat)
+"AX" = (
+/obj/effect/decal/cleanable/blood,
+/obj/effect/spawner/lootdrop/space/fancytool,
+/turf/open/floor/plasteel/airless/dark,
+/area/tcommsat/oldaisat)
(1,1,1) = {"
aa
@@ -2573,7 +2584,7 @@ bB
bH
bw
bw
-bw
+AX
bT
bw
bw
@@ -3458,7 +3469,7 @@ ag
ag
ag
bQ
-aD
+jZ
bY
az
aD
diff --git a/_maps/RandomRuins/SpaceRuins/onehalf.dmm b/_maps/RandomRuins/SpaceRuins/onehalf.dmm
index 904f20c0814..978cd8ff4d4 100644
--- a/_maps/RandomRuins/SpaceRuins/onehalf.dmm
+++ b/_maps/RandomRuins/SpaceRuins/onehalf.dmm
@@ -141,6 +141,10 @@
/obj/machinery/light{
dir = 8
},
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/space/syndiecosmetic,
+/obj/effect/spawner/lootdrop/space/syndiecosmetic,
+/obj/effect/spawner/lootdrop/space/syndiecosmetic,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/onehalf/dorms_med)
"aD" = (
@@ -703,10 +707,7 @@
/area/ruin/space/has_grav/onehalf/bridge)
"cg" = (
/obj/structure/table/reinforced,
-/obj/item/stack/spacecash/c500{
- pixel_y = 8
- },
-/obj/item/stack/spacecash/c1000,
+/obj/effect/spawner/lootdrop/space/cashmoney,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/onehalf/bridge)
"ch" = (
@@ -777,7 +778,7 @@
/area/ruin/space/has_grav/onehalf/bridge)
"cp" = (
/obj/structure/table/reinforced,
-/obj/item/lighter,
+/obj/effect/spawner/lootdrop/space/fancytech,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/onehalf/bridge)
"cq" = (
@@ -875,8 +876,8 @@
"cI" = (
/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/head/helmet/space/eva,
+/obj/item/clothing/suit/space/eva,
/obj/item/reagent_containers/food/drinks/bottle/rum,
/obj/item/reagent_containers/food/drinks/bottle/rum,
/obj/item/folder/syndicate/mining,
@@ -944,6 +945,7 @@
/area/ruin/space/has_grav/onehalf/bridge)
"cY" = (
/obj/structure/table/reinforced,
+/obj/item/gps/spaceruin,
/obj/item/flashlight,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/onehalf/bridge)
@@ -951,6 +953,7 @@
/obj/structure/table/reinforced,
/obj/item/stack/ore/bluespace_crystal,
/obj/item/coin/plasma,
+/obj/item/lighter,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/onehalf/bridge)
"da" = (
diff --git a/_maps/RandomRuins/SpaceRuins/originalcontent.dmm b/_maps/RandomRuins/SpaceRuins/originalcontent.dmm
index e1aed455248..142b2acdbf7 100644
--- a/_maps/RandomRuins/SpaceRuins/originalcontent.dmm
+++ b/_maps/RandomRuins/SpaceRuins/originalcontent.dmm
@@ -595,9 +595,7 @@
/obj/item/paper/crumpled/ruins/originalcontent,
/obj/item/paper/crumpled/ruins/originalcontent,
/obj/item/paper/crumpled/ruins/originalcontent,
-/obj/item/gps{
- gpstag = "Pulpy Signal"
- },
+/obj/item/gps/spaceruin,
/turf/open/indestructible/paper,
/area/ruin/powered)
"bJ" = (
diff --git a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm
index cc04e425490..67694284b5a 100644
--- a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm
+++ b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm
@@ -1931,8 +1931,7 @@
dir = 1;
layer = 2.9
},
-/obj/item/gps{
- gpstag = "Twin-Nexus Hotel Retreat";
+/obj/item/gps/spaceruin{
name = "hotel gps"
},
/turf/open/floor/plasteel/grimy,
diff --git a/_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm b/_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm
index ca97060d4c3..f971a6ed40d 100644
--- a/_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm
+++ b/_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm
@@ -89,6 +89,7 @@
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
+/obj/effect/spawner/lootdrop/space/syndiecosmetic,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/turretedoutpost)
"at" = (
@@ -170,6 +171,7 @@
/obj/structure/reagent_dispensers/peppertank{
pixel_y = 32
},
+/obj/item/gps/spaceruin,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/turretedoutpost)
"aD" = (
@@ -185,16 +187,6 @@
/obj/machinery/vending/clothing,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/turretedoutpost)
-"aF" = (
-/obj/structure/rack,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/ruin/space/has_grav/turretedoutpost)
"aG" = (
/obj/structure/rack,
/obj/effect/turf_decal/tile/neutral{
@@ -238,13 +230,13 @@
/area/ruin/space/has_grav/turretedoutpost)
"aL" = (
/obj/structure/rack,
-/obj/item/clothing/head/helmet/swat,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/effect/spawner/lootdrop/space/syndiecosmetic,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/turretedoutpost)
"aM" = (
@@ -343,21 +335,21 @@
/area/ruin/space/has_grav/turretedoutpost)
"aY" = (
/obj/structure/rack,
-/obj/item/storage/belt/military,
/obj/machinery/light,
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/effect/spawner/lootdrop/space/syndiecosmetic,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/turretedoutpost)
"aZ" = (
/obj/structure/rack,
-/obj/item/clothing/head/helmet/riot,
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/effect/spawner/lootdrop/space/syndiecosmetic,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/turretedoutpost)
"ba" = (
@@ -479,9 +471,9 @@ al
ad
ad
ay
-aF
aL
-aF
+aL
+aL
ad
ad
al
diff --git a/_maps/RandomRuins/SpaceRuins/vaporwave.dmm b/_maps/RandomRuins/SpaceRuins/vaporwave.dmm
index 3e437362f0a..dd5c54ff329 100644
--- a/_maps/RandomRuins/SpaceRuins/vaporwave.dmm
+++ b/_maps/RandomRuins/SpaceRuins/vaporwave.dmm
@@ -105,6 +105,7 @@
"x" = (
/obj/structure/closet/crate/bin,
/obj/item/tape/random,
+/obj/item/gps/spaceruin,
/turf/open/floor/plating/asteroid/airless,
/area/ruin/unpowered/no_grav)
"y" = (
@@ -210,6 +211,11 @@
/obj/machinery/light/small,
/turf/open/floor/plasteel/vaporwave,
/area/ruin/space/has_grav/powered/aesthetic)
+"Q" = (
+/obj/structure/closet/crate/bin,
+/obj/effect/spawner/lootdrop/space/fancytech,
+/turf/open/floor/plating/asteroid/airless,
+/area/ruin/unpowered/no_grav)
"R" = (
/obj/machinery/light/small{
dir = 1
@@ -309,7 +315,7 @@ a
a
a
c
-d
+Q
f
h
q
diff --git a/_maps/RandomRuins/SpaceRuins/whiteshipruin_box.dmm b/_maps/RandomRuins/SpaceRuins/whiteshipruin_box.dmm
index deb91645bae..fb832d055c3 100644
--- a/_maps/RandomRuins/SpaceRuins/whiteshipruin_box.dmm
+++ b/_maps/RandomRuins/SpaceRuins/whiteshipruin_box.dmm
@@ -1,115 +1,62 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/turf/template_noop,
-/area/template_noop)
-"b" = (
-/turf/closed/wall/mineral/titanium,
+"az" = (
+/turf/closed/wall/mineral/titanium/interior,
/area/ruin/space/has_grav/whiteship/box)
-"c" = (
-/turf/open/floor/mineral/titanium/white,
+"bN" = (
+/obj/structure/light_construct/small,
+/turf/open/floor/plating,
/area/ruin/space/has_grav/whiteship/box)
-"d" = (
-/obj/structure/shuttle/engine/propulsion/left{
- dir = 8
+"cw" = (
+/obj/structure/light_construct/small{
+ dir = 1
},
-/turf/open/floor/plating/airless,
+/turf/open/floor/plating,
/area/ruin/space/has_grav/whiteship/box)
-"e" = (
+"eD" = (
/obj/structure/table,
/obj/item/radio/off,
/turf/open/floor/mineral/titanium/white,
/area/ruin/space/has_grav/whiteship/box)
-"f" = (
+"fd" = (
/obj/structure/table,
-/obj/item/screwdriver,
-/obj/structure/light_construct{
- dir = 1
+/obj/item/storage/firstaid/regular{
+ pixel_x = 6;
+ pixel_y = -5
},
/turf/open/floor/mineral/titanium/white,
/area/ruin/space/has_grav/whiteship/box)
-"g" = (
-/obj/machinery/computer/pod{
- dir = 8;
- id = "oldship_ruin_gun"
- },
+"gc" = (
+/obj/structure/table,
/turf/open/floor/mineral/titanium/white,
/area/ruin/space/has_grav/whiteship/box)
-"h" = (
-/obj/structure/shuttle/engine/propulsion{
+"gK" = (
+/obj/structure/table,
+/obj/item/gps/spaceruin,
+/turf/open/floor/mineral/titanium/white,
+/area/ruin/space/has_grav/whiteship/box)
+"gO" = (
+/obj/effect/spawner/structure/window/shuttle,
+/turf/open/floor/plating,
+/area/ruin/space/has_grav/whiteship/box)
+"hT" = (
+/obj/structure/frame/computer{
+ anchored = 1;
dir = 8
},
-/turf/open/floor/plating/airless,
-/area/ruin/space/has_grav/whiteship/box)
-"i" = (
-/obj/structure/shuttle/engine/heater{
- dir = 8
- },
-/obj/structure/window/reinforced{
- dir = 4
- },
-/turf/open/floor/plating/airless,
-/area/ruin/space/has_grav/whiteship/box)
-"j" = (
-/turf/closed/wall/mineral/titanium/interior,
-/area/ruin/space/has_grav/whiteship/box)
-"k" = (
-/obj/structure/rack,
-/obj/item/clothing/suit/space/hardsuit/medical,
-/obj/item/clothing/mask/breath,
/turf/open/floor/mineral/titanium/white,
/area/ruin/space/has_grav/whiteship/box)
-"l" = (
-/turf/open/floor/plating,
+"in" = (
+/obj/machinery/portable_atmospherics/scrubber,
+/turf/open/floor/mineral/titanium/white,
/area/ruin/space/has_grav/whiteship/box)
-"m" = (
-/obj/item/stock_parts/cell{
- charge = 100;
- maxcharge = 15000
+"iK" = (
+/obj/machinery/computer{
+ desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages.";
+ name = "Broken Computer"
},
/turf/open/floor/mineral/titanium/white,
/area/ruin/space/has_grav/whiteship/box)
-"n" = (
-/obj/structure/rack,
-/obj/item/tank/internals/emergency_oxygen,
-/obj/item/tank/internals/emergency_oxygen,
-/obj/item/tank/internals/emergency_oxygen,
-/obj/item/tank/internals/emergency_oxygen,
-/obj/item/storage/toolbox/mechanical,
-/turf/open/floor/mineral/titanium/white,
-/area/ruin/space/has_grav/whiteship/box)
-"o" = (
-/obj/machinery/door/airlock/public/glass,
-/turf/open/floor/plating,
-/area/ruin/space/has_grav/whiteship/box)
-"p" = (
-/obj/machinery/mass_driver{
- dir = 4;
- id = "oldship_ruin_gun"
- },
-/turf/open/floor/plating,
-/area/ruin/space/has_grav/whiteship/box)
-"q" = (
-/obj/machinery/door/poddoor{
- id = "oldship_ruin_gun";
- name = "pod bay door"
- },
-/turf/open/floor/plating,
-/area/ruin/space/has_grav/whiteship/box)
-"r" = (
-/obj/structure/shuttle/engine/propulsion/right{
- dir = 8
- },
-/turf/open/floor/plating/airless,
-/area/ruin/space/has_grav/whiteship/box)
-"s" = (
-/obj/structure/light_construct/small,
-/turf/open/floor/plating,
-/area/ruin/space/has_grav/whiteship/box)
-"t" = (
-/obj/machinery/door/airlock/titanium,
-/turf/open/floor/plating,
-/area/ruin/space/has_grav/whiteship/box)
-"u" = (
+"iS" = (
/obj/structure/frame/computer{
anchored = 1
},
@@ -118,52 +65,188 @@
},
/turf/open/floor/mineral/titanium/white,
/area/ruin/space/has_grav/whiteship/box)
-"v" = (
-/obj/machinery/computer{
- desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages.";
- name = "Broken Computer"
+"jb" = (
+/obj/structure/table,
+/obj/item/tank/internals/oxygen,
+/turf/open/floor/mineral/titanium/white,
+/area/ruin/space/has_grav/whiteship/box)
+"kK" = (
+/turf/closed/wall/mineral/titanium,
+/area/ruin/space/has_grav/whiteship/box)
+"lR" = (
+/obj/structure/light_construct/small{
+ dir = 4
},
/turf/open/floor/mineral/titanium/white,
/area/ruin/space/has_grav/whiteship/box)
-"w" = (
-/obj/machinery/door/airlock/titanium,
+"mE" = (
+/obj/machinery/door/window/northright,
+/obj/effect/decal/remains/human,
+/turf/open/floor/mineral/titanium/purple,
+/area/ruin/space/has_grav/whiteship/box)
+"mR" = (
+/obj/machinery/portable_atmospherics/canister/oxygen,
/turf/open/floor/mineral/titanium/white,
/area/ruin/space/has_grav/whiteship/box)
-"x" = (
-/obj/structure/chair{
+"nd" = (
+/obj/structure/frame/computer{
+ anchored = 1;
dir = 1
},
+/obj/structure/light_construct,
/turf/open/floor/mineral/titanium/white,
/area/ruin/space/has_grav/whiteship/box)
-"y" = (
+"nH" = (
+/turf/template_noop,
+/area/template_noop)
+"nK" = (
/obj/item/shard{
icon_state = "medium"
},
/turf/open/floor/mineral/titanium/white,
/area/ruin/space/has_grav/whiteship/box)
-"z" = (
-/obj/structure/light_construct,
-/turf/open/floor/mineral/titanium/white,
-/area/ruin/space/has_grav/whiteship/box)
-"A" = (
+"nL" = (
+/obj/structure/table,
+/obj/item/screwdriver,
/obj/structure/light_construct{
dir = 1
},
/turf/open/floor/mineral/titanium/white,
/area/ruin/space/has_grav/whiteship/box)
-"B" = (
-/obj/effect/spawner/structure/window/shuttle,
-/turf/open/floor/plating,
-/area/ruin/space/has_grav/whiteship/box)
-"C" = (
-/obj/structure/table,
+"pq" = (
+/obj/machinery/sleeper{
+ dir = 8
+ },
+/obj/effect/decal/remains/human,
+/obj/structure/light_construct,
/turf/open/floor/mineral/titanium/white,
/area/ruin/space/has_grav/whiteship/box)
-"D" = (
-/obj/machinery/door/window,
+"pu" = (
+/obj/item/multitool,
+/turf/open/floor/mineral/titanium/white,
+/area/ruin/space/has_grav/whiteship/box)
+"pv" = (
+/turf/open/floor/mineral/titanium/white,
+/area/ruin/space/has_grav/whiteship/box)
+"qz" = (
+/obj/structure/light_construct/small{
+ dir = 8
+ },
+/turf/open/floor/mineral/titanium/white,
+/area/ruin/space/has_grav/whiteship/box)
+"qI" = (
+/obj/structure/light_construct{
+ dir = 8
+ },
+/turf/open/floor/mineral/titanium/white,
+/area/ruin/space/has_grav/whiteship/box)
+"qZ" = (
+/obj/machinery/door/airlock/titanium,
+/turf/open/floor/mineral/titanium/white,
+/area/ruin/space/has_grav/whiteship/box)
+"rO" = (
+/obj/machinery/mass_driver{
+ dir = 4;
+ id = "oldship_ruin_gun"
+ },
+/turf/open/floor/plating,
+/area/ruin/space/has_grav/whiteship/box)
+"sX" = (
+/obj/structure/rack,
+/obj/item/clothing/suit/space/eva,
+/obj/item/clothing/head/helmet/space/eva,
+/obj/item/clothing/mask/breath,
+/turf/open/floor/mineral/titanium/white,
+/area/ruin/space/has_grav/whiteship/box)
+"uG" = (
+/obj/structure/shuttle/engine/propulsion/right{
+ dir = 8
+ },
+/turf/open/floor/plating/airless,
+/area/ruin/space/has_grav/whiteship/box)
+"zY" = (
+/obj/machinery/door/poddoor{
+ id = "oldship_ruin_gun";
+ name = "pod bay door"
+ },
+/turf/open/floor/plating,
+/area/ruin/space/has_grav/whiteship/box)
+"Al" = (
+/obj/machinery/door/airlock/public/glass,
+/turf/open/floor/plating,
+/area/ruin/space/has_grav/whiteship/box)
+"Ay" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/effect/decal/remains/human,
+/turf/open/floor/mineral/titanium/white,
+/area/ruin/space/has_grav/whiteship/box)
+"BG" = (
+/obj/structure/bed,
+/obj/item/bedsheet,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
/turf/open/floor/mineral/titanium/purple,
/area/ruin/space/has_grav/whiteship/box)
-"E" = (
+"CC" = (
+/obj/structure/shuttle/engine/propulsion{
+ dir = 8
+ },
+/turf/open/floor/plating/airless,
+/area/ruin/space/has_grav/whiteship/box)
+"Db" = (
+/obj/item/stock_parts/cell{
+ charge = 100;
+ maxcharge = 15000
+ },
+/turf/open/floor/mineral/titanium/white,
+/area/ruin/space/has_grav/whiteship/box)
+"Gj" = (
+/obj/structure/table,
+/obj/item/gun/energy/laser/retro,
+/turf/open/floor/mineral/titanium/white,
+/area/ruin/space/has_grav/whiteship/box)
+"HR" = (
+/obj/structure/light_construct{
+ dir = 1
+ },
+/turf/open/floor/mineral/titanium/white,
+/area/ruin/space/has_grav/whiteship/box)
+"HT" = (
+/obj/structure/rack,
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/storage/toolbox/mechanical,
+/turf/open/floor/mineral/titanium/white,
+/area/ruin/space/has_grav/whiteship/box)
+"Jk" = (
+/obj/machinery/door/airlock/titanium,
+/turf/open/floor/plating,
+/area/ruin/space/has_grav/whiteship/box)
+"Jy" = (
+/obj/structure/chair,
+/turf/open/floor/mineral/titanium/white,
+/area/ruin/space/has_grav/whiteship/box)
+"JF" = (
+/obj/machinery/computer{
+ desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages.";
+ dir = 8;
+ name = "Broken Computer"
+ },
+/turf/open/floor/mineral/titanium/white,
+/area/ruin/space/has_grav/whiteship/box)
+"Kg" = (
+/obj/machinery/door/airlock/public/glass,
+/turf/open/floor/mineral/titanium/white,
+/area/ruin/space/has_grav/whiteship/box)
+"Lv" = (
/obj/structure/bed,
/obj/item/bedsheet,
/obj/structure/window/reinforced,
@@ -172,935 +255,858 @@
},
/turf/open/floor/mineral/titanium/purple,
/area/ruin/space/has_grav/whiteship/box)
-"F" = (
-/obj/structure/table,
-/obj/item/gun/energy/laser/retro,
-/turf/open/floor/mineral/titanium/white,
-/area/ruin/space/has_grav/whiteship/box)
-"G" = (
-/obj/machinery/door/airlock/public/glass,
-/turf/open/floor/mineral/titanium/white,
-/area/ruin/space/has_grav/whiteship/box)
-"H" = (
-/obj/structure/light_construct{
- dir = 4
- },
-/turf/open/floor/mineral/titanium/white,
-/area/ruin/space/has_grav/whiteship/box)
-"I" = (
-/obj/structure/light_construct/small{
- dir = 4
- },
-/turf/open/floor/mineral/titanium/white,
-/area/ruin/space/has_grav/whiteship/box)
-"J" = (
-/obj/structure/light_construct{
- dir = 8
- },
-/turf/open/floor/mineral/titanium/white,
-/area/ruin/space/has_grav/whiteship/box)
-"K" = (
-/obj/structure/chair{
- dir = 4
- },
-/obj/effect/decal/remains/human,
-/turf/open/floor/mineral/titanium/white,
-/area/ruin/space/has_grav/whiteship/box)
-"L" = (
-/obj/machinery/computer{
- desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages.";
- dir = 8;
- name = "Broken Computer"
- },
-/turf/open/floor/mineral/titanium/white,
-/area/ruin/space/has_grav/whiteship/box)
-"M" = (
-/obj/machinery/portable_atmospherics/canister/oxygen,
-/turf/open/floor/mineral/titanium/white,
-/area/ruin/space/has_grav/whiteship/box)
-"N" = (
-/obj/structure/light_construct/small{
- dir = 8
- },
-/turf/open/floor/mineral/titanium/white,
-/area/ruin/space/has_grav/whiteship/box)
-"O" = (
-/obj/structure/table,
-/obj/item/tank/internals/oxygen,
-/turf/open/floor/mineral/titanium/white,
-/area/ruin/space/has_grav/whiteship/box)
-"P" = (
-/obj/machinery/portable_atmospherics/scrubber,
-/turf/open/floor/mineral/titanium/white,
-/area/ruin/space/has_grav/whiteship/box)
-"Q" = (
-/obj/structure/bed,
-/obj/item/bedsheet,
-/obj/structure/window/reinforced{
- dir = 1
- },
-/obj/structure/window/reinforced{
- dir = 8
- },
+"Oj" = (
+/obj/machinery/door/window,
/turf/open/floor/mineral/titanium/purple,
/area/ruin/space/has_grav/whiteship/box)
-"R" = (
-/obj/machinery/door/window/northright,
-/obj/effect/decal/remains/human,
-/turf/open/floor/mineral/titanium/purple,
-/area/ruin/space/has_grav/whiteship/box)
-"S" = (
-/obj/item/multitool,
-/turf/open/floor/mineral/titanium/white,
-/area/ruin/space/has_grav/whiteship/box)
-"T" = (
-/obj/structure/light_construct/small{
- dir = 1
- },
-/turf/open/floor/plating,
-/area/ruin/space/has_grav/whiteship/box)
-"U" = (
-/obj/structure/chair,
-/turf/open/floor/mineral/titanium/white,
-/area/ruin/space/has_grav/whiteship/box)
-"V" = (
-/obj/structure/frame/computer{
- anchored = 1;
- dir = 1
- },
-/obj/structure/light_construct,
-/turf/open/floor/mineral/titanium/white,
-/area/ruin/space/has_grav/whiteship/box)
-"W" = (
+"Ov" = (
/obj/item/scalpel,
/turf/open/floor/mineral/titanium/white,
/area/ruin/space/has_grav/whiteship/box)
-"X" = (
-/obj/structure/table,
-/obj/item/storage/firstaid/regular{
- pixel_x = 6;
- pixel_y = -5
+"Px" = (
+/obj/machinery/computer/pod{
+ dir = 8;
+ id = "oldship_ruin_gun"
},
/turf/open/floor/mineral/titanium/white,
/area/ruin/space/has_grav/whiteship/box)
-"Y" = (
-/obj/structure/frame/computer{
- anchored = 1;
- dir = 8
+"Ud" = (
+/obj/structure/light_construct{
+ dir = 4
},
/turf/open/floor/mineral/titanium/white,
/area/ruin/space/has_grav/whiteship/box)
-"Z" = (
-/obj/machinery/sleeper{
+"Vt" = (
+/turf/open/floor/plating,
+/area/ruin/space/has_grav/whiteship/box)
+"VQ" = (
+/obj/structure/shuttle/engine/heater{
dir = 8
},
-/obj/effect/decal/remains/human,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/plating/airless,
+/area/ruin/space/has_grav/whiteship/box)
+"Xp" = (
+/obj/structure/shuttle/engine/propulsion/left{
+ dir = 8
+ },
+/turf/open/floor/plating/airless,
+/area/ruin/space/has_grav/whiteship/box)
+"Xt" = (
/obj/structure/light_construct,
/turf/open/floor/mineral/titanium/white,
/area/ruin/space/has_grav/whiteship/box)
+"Xy" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/mineral/titanium/white,
+/area/ruin/space/has_grav/whiteship/box)
(1,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-b
-b
-t
-b
-b
-a
-a
-a
-a
-a
-a
-a
-a
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+kK
+kK
+Jk
+kK
+kK
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+nH
"}
(2,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-b
-j
-c
-j
-b
-a
-a
-a
-a
-a
-a
-a
-a
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+kK
+az
+pv
+az
+kK
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+nH
"}
(3,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-b
-c
-c
-c
-b
-a
-a
-a
-a
-a
-a
-a
-a
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+kK
+pv
+pv
+pv
+kK
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+nH
"}
(4,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-b
-c
-c
-c
-b
-a
-a
-a
-a
-a
-a
-a
-a
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+kK
+pv
+pv
+pv
+kK
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+nH
"}
(5,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-b
-c
-c
-c
-b
-a
-a
-a
-a
-a
-a
-a
-a
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+kK
+pv
+pv
+pv
+kK
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+nH
"}
(6,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-b
-c
-c
-z
-b
-a
-a
-a
-a
-a
-a
-a
-a
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+kK
+pv
+pv
+Xt
+kK
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+nH
"}
(7,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-b
-c
-c
-c
-b
-a
-a
-a
-a
-a
-a
-a
-a
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+kK
+pv
+pv
+pv
+kK
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+nH
"}
(8,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-b
-c
-c
-c
-b
-a
-a
-a
-a
-a
-a
-a
-a
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+kK
+pv
+pv
+pv
+kK
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+nH
"}
(9,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-b
-c
-c
-M
-b
-a
-a
-a
-a
-a
-a
-a
-a
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+kK
+pv
+pv
+mR
+kK
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+nH
"}
(10,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-b
-j
-c
-j
-b
-a
-a
-a
-a
-a
-a
-a
-a
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+kK
+az
+pv
+az
+kK
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+nH
"}
(11,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-b
-b
-w
-b
-b
-a
-a
-a
-a
-a
-a
-a
-a
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+kK
+kK
+qZ
+kK
+kK
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+nH
"}
(12,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-b
-c
-b
-a
-a
-a
-a
-a
-a
-a
-a
-a
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+kK
+pv
+kK
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+nH
"}
(13,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-b
-b
-w
-b
-b
-a
-a
-a
-a
-a
-a
-a
-a
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+kK
+kK
+qZ
+kK
+kK
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+nH
"}
(14,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-b
-b
-j
-c
-j
-b
-b
-a
-a
-a
-a
-a
-a
-a
+nH
+nH
+nH
+nH
+nH
+nH
+nH
+kK
+kK
+az
+pv
+az
+kK
+kK
+nH
+nH
+nH
+nH
+nH
+nH
+nH
"}
(15,1,1) = {"
-b
-d
-h
-h
-h
-r
-a
-b
-j
-c
-c
-c
-j
-b
-a
-d
-h
-h
-h
-r
-b
+kK
+Xp
+CC
+CC
+CC
+uG
+nH
+kK
+az
+pv
+pv
+pv
+az
+kK
+nH
+Xp
+CC
+CC
+CC
+uG
+kK
"}
(16,1,1) = {"
-b
-b
-i
-i
-i
-b
-b
-b
-A
-c
-c
-c
-z
-b
-b
-b
-i
-i
-i
-b
-b
+kK
+kK
+VQ
+VQ
+VQ
+kK
+kK
+kK
+HR
+pv
+pv
+pv
+Xt
+kK
+kK
+kK
+VQ
+VQ
+VQ
+kK
+kK
"}
(17,1,1) = {"
-a
-b
-j
-l
-l
-j
-b
-j
-c
-c
-c
-c
-c
-j
-b
-j
-l
-l
-j
-b
-a
+nH
+kK
+az
+Vt
+Vt
+az
+kK
+az
+pv
+pv
+pv
+pv
+pv
+az
+kK
+az
+Vt
+Vt
+az
+kK
+nH
"}
(18,1,1) = {"
-a
-a
-b
-j
-l
-s
-b
-c
-c
-c
-c
-c
-c
-P
-b
-T
-l
-j
-b
-a
-a
+nH
+nH
+kK
+az
+Vt
+bN
+kK
+pv
+pv
+pv
+pv
+pv
+pv
+in
+kK
+cw
+Vt
+az
+kK
+nH
+nH
"}
(19,1,1) = {"
-a
-a
-a
-b
-b
-t
-b
-b
-b
-B
-G
-B
-b
-b
-b
-t
-b
-b
-a
-a
-a
+nH
+nH
+nH
+kK
+kK
+Jk
+kK
+kK
+kK
+gO
+Kg
+gO
+kK
+kK
+kK
+Jk
+kK
+kK
+nH
+nH
+nH
"}
(20,1,1) = {"
-a
-a
-a
-b
-b
-c
-c
-c
-c
-c
-c
-c
-c
-c
-c
-c
-b
-b
-a
-a
-a
+nH
+nH
+nH
+kK
+kK
+pv
+pv
+pv
+pv
+pv
+pv
+pv
+pv
+pv
+pv
+pv
+kK
+kK
+nH
+nH
+nH
"}
(21,1,1) = {"
-a
-a
-b
-b
-j
-m
-c
-c
-c
-c
-H
-c
-c
-c
-c
-c
-b
-b
-b
-a
-a
+nH
+nH
+kK
+kK
+az
+Db
+pv
+pv
+pv
+pv
+Ud
+pv
+pv
+pv
+pv
+pv
+kK
+kK
+kK
+nH
+nH
"}
(22,1,1) = {"
-a
-b
-b
-j
-c
-c
-c
-c
-b
-b
-b
-b
-b
-b
-c
-c
-b
-b
-b
-b
-a
+nH
+kK
+kK
+az
+pv
+pv
+pv
+pv
+kK
+kK
+kK
+kK
+kK
+kK
+pv
+pv
+kK
+kK
+kK
+kK
+nH
"}
(23,1,1) = {"
-b
-b
-b
-b
-b
-b
-j
-c
-b
-D
-c
-N
-c
-w
-c
-c
-w
-c
-j
-b
-a
+kK
+kK
+kK
+kK
+kK
+kK
+az
+pv
+kK
+Oj
+pv
+qz
+pv
+qZ
+pv
+pv
+qZ
+pv
+az
+kK
+nH
"}
(24,1,1) = {"
-t
-c
-c
-k
-k
-j
-b
-z
-b
-E
-c
-O
-Q
-b
-A
-c
-b
-c
-X
-b
-b
+Jk
+pv
+pv
+sX
+sX
+az
+kK
+Xt
+kK
+Lv
+pv
+jb
+BG
+kK
+HR
+pv
+kK
+pv
+fd
+kK
+kK
"}
(25,1,1) = {"
-b
-c
-c
-c
-c
-n
-b
-c
-w
-c
-I
-c
-R
-b
-c
-c
-b
-c
-c
-j
-b
+kK
+pv
+pv
+pv
+pv
+HT
+kK
+pv
+qZ
+pv
+lR
+pv
+mE
+kK
+pv
+pv
+kK
+pv
+pv
+az
+kK
"}
(26,1,1) = {"
-b
-e
-c
-c
-c
-c
-b
-c
-b
-b
-b
-b
-b
-b
-c
-m
-B
-W
-c
-c
-b
+kK
+eD
+pv
+pv
+pv
+pv
+kK
+pv
+kK
+kK
+kK
+kK
+kK
+kK
+pv
+Db
+gO
+Ov
+pv
+pv
+kK
"}
(27,1,1) = {"
-b
-f
-c
-c
-c
-c
-w
-c
-c
-c
-J
-c
-c
-c
-c
-c
-B
-c
-c
-Z
-b
+kK
+nL
+pv
+pv
+pv
+pv
+qZ
+pv
+pv
+pv
+qI
+pv
+pv
+pv
+pv
+pv
+gO
+pv
+pv
+pq
+kK
"}
(28,1,1) = {"
-b
-c
-c
-c
-c
-c
-b
-j
-c
-c
-c
-c
-c
-c
-c
-S
-B
-c
-c
-c
-b
+kK
+pv
+pv
+pv
+pv
+pv
+kK
+az
+pv
+pv
+pv
+pv
+pv
+pv
+pv
+pu
+gO
+pv
+pv
+pv
+kK
"}
(29,1,1) = {"
-b
-c
-c
-c
-c
-j
-b
-b
-b
-B
-G
-B
-b
-b
-b
-b
-b
-c
-c
-c
-b
+kK
+pv
+pv
+pv
+pv
+az
+kK
+kK
+kK
+gO
+Kg
+gO
+kK
+kK
+kK
+kK
+kK
+pv
+pv
+pv
+kK
"}
(30,1,1) = {"
-b
-c
-c
-c
-j
-b
-j
-c
-c
-c
-c
-c
-c
-C
-C
-C
-b
-c
-c
-j
-b
+kK
+pv
+pv
+pv
+az
+kK
+az
+pv
+pv
+pv
+pv
+pv
+pv
+gc
+gc
+gc
+kK
+pv
+pv
+az
+kK
"}
(31,1,1) = {"
-t
-c
-g
-c
-b
-j
-c
-c
-c
-c
-c
-c
-c
-c
-c
-c
-j
-j
-Y
-b
-a
+Jk
+pv
+Px
+pv
+kK
+az
+pv
+pv
+pv
+pv
+pv
+pv
+pv
+pv
+pv
+pv
+az
+az
+hT
+kK
+nH
"}
(32,1,1) = {"
-b
-b
-b
-o
-b
-u
-x
-c
-c
-c
-c
-c
-c
-c
-c
-U
-V
-b
-b
-b
-a
+kK
+kK
+kK
+Al
+kK
+iS
+Xy
+pv
+pv
+pv
+pv
+pv
+pv
+pv
+pv
+Jy
+nd
+kK
+kK
+kK
+nH
"}
(33,1,1) = {"
-a
-a
-b
-p
-b
-v
-x
-c
-c
-C
-K
-C
-c
-c
-c
-c
-j
-b
-b
-a
-a
+nH
+nH
+kK
+rO
+kK
+iK
+Xy
+pv
+pv
+gc
+Ay
+gc
+pv
+pv
+pv
+pv
+az
+kK
+kK
+nH
+nH
"}
(34,1,1) = {"
-a
-a
-b
-q
-b
-j
-y
-c
-c
-F
-L
-C
-c
-c
-c
-j
-b
-b
-a
-a
-a
+nH
+nH
+kK
+zY
+kK
+az
+nK
+pv
+pv
+Gj
+JF
+gK
+pv
+pv
+pv
+az
+kK
+kK
+nH
+nH
+nH
"}
(35,1,1) = {"
-a
-a
-a
-a
-b
-b
-b
-B
-B
-B
-B
-B
-B
-B
-b
-b
-b
-a
-a
-a
-a
+nH
+nH
+nH
+nH
+kK
+kK
+kK
+gO
+gO
+gO
+gO
+gO
+gO
+gO
+kK
+kK
+kK
+nH
+nH
+nH
+nH
"}
diff --git a/_maps/shuttles/whiteship_box.dmm b/_maps/shuttles/whiteship_box.dmm
index 4122bdd4a00..d2579d1eec0 100644
--- a/_maps/shuttles/whiteship_box.dmm
+++ b/_maps/shuttles/whiteship_box.dmm
@@ -137,9 +137,9 @@
"aq" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/suit_storage_unit/cmo,
/obj/effect/turf_decal/bot,
/obj/effect/decal/cleanable/dirt,
+/obj/machinery/suit_storage_unit/standard_unit,
/turf/open/floor/plasteel,
/area/shuttle/abandoned/crew)
"ar" = (
@@ -1172,7 +1172,7 @@
/area/shuttle/abandoned/bridge)
"cb" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/computer/shuttle/white_ship{
+/obj/machinery/computer/shuttle/white_ship/bridge{
dir = 8
},
/obj/effect/turf_decal/tile/blue{
@@ -1418,11 +1418,6 @@
pixel_x = 6;
pixel_y = 14
},
-/obj/item/gps{
- gpstag = "NTREC1";
- pixel_x = -9;
- pixel_y = 4
- },
/obj/item/megaphone{
pixel_x = 3;
pixel_y = -3
@@ -1938,8 +1933,8 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/suit_storage_unit/cmo,
/obj/effect/turf_decal/bot,
+/obj/machinery/suit_storage_unit/standard_unit,
/turf/open/floor/plasteel,
/area/shuttle/abandoned/medbay)
"dq" = (
diff --git a/_maps/shuttles/whiteship_cere.dmm b/_maps/shuttles/whiteship_cere.dmm
index 1c8dfffd07a..ae4a848aa04 100644
--- a/_maps/shuttles/whiteship_cere.dmm
+++ b/_maps/shuttles/whiteship_cere.dmm
@@ -327,11 +327,6 @@
/area/shuttle/abandoned)
"aP" = (
/obj/structure/table,
-/obj/item/gps{
- gpstag = "NTCONST1";
- pixel_x = -1;
- pixel_y = 2
- },
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light{
dir = 1
@@ -374,10 +369,10 @@
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/abandoned)
"aW" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/chair/comfy/black,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/abandoned)
"aX" = (
@@ -386,28 +381,32 @@
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/abandoned)
"aZ" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/computer/shuttle/white_ship/bridge{
+ dir = 1
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/shuttle/abandoned)
+"ba" = (
+/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/table,
/obj/item/phone{
pixel_x = -3;
pixel_y = 3
},
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/mineral/titanium/blue,
-/area/shuttle/abandoned)
-"ba" = (
-/obj/machinery/computer/shuttle/white_ship{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/abandoned)
"bb" = (
-/obj/structure/table,
-/obj/item/paper_bin{
- pixel_x = -1;
- pixel_y = 6
- },
/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/computer/camera_advanced/shuttle_docker/whiteship{
+ dir = 1
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/shuttle/abandoned)
+"We" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/chair/comfy/black,
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/abandoned)
@@ -515,7 +514,7 @@ aK
aN
aQ
aR
-aQ
+aW
aZ
ar
"}
@@ -533,7 +532,7 @@ aG
ar
aR
aQ
-aW
+aQ
ba
ar
"}
@@ -551,7 +550,7 @@ aG
aN
aS
aS
-aR
+We
bb
ar
"}
diff --git a/_maps/shuttles/whiteship_delta.dmm b/_maps/shuttles/whiteship_delta.dmm
index 8ed2bef5005..f5499266c45 100644
--- a/_maps/shuttles/whiteship_delta.dmm
+++ b/_maps/shuttles/whiteship_delta.dmm
@@ -1186,7 +1186,7 @@
/turf/open/floor/plasteel/dark,
/area/shuttle/abandoned/bridge)
"ch" = (
-/obj/machinery/computer/shuttle/white_ship{
+/obj/machinery/computer/shuttle/white_ship/bridge{
dir = 8
},
/obj/effect/decal/cleanable/dirt/dust,
@@ -1238,11 +1238,6 @@
pixel_x = 6;
pixel_y = 14
},
-/obj/item/gps{
- gpstag = "NTREC1";
- pixel_x = -9;
- pixel_y = 15
- },
/obj/item/megaphone,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
diff --git a/_maps/shuttles/whiteship_donut.dmm b/_maps/shuttles/whiteship_donut.dmm
index bdfd28b984f..beb302cc5e7 100644
--- a/_maps/shuttles/whiteship_donut.dmm
+++ b/_maps/shuttles/whiteship_donut.dmm
@@ -42,8 +42,8 @@
"ah" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light/broken{
- icon_state = "tube-broken";
- dir = 4
+ dir = 4;
+ icon_state = "tube-broken"
},
/obj/structure/closet/emcloset,
/turf/open/floor/plasteel/airless,
@@ -69,15 +69,15 @@
/area/shuttle/abandoned)
"am" = (
/obj/structure/shuttle/engine/propulsion/right{
- icon_state = "propulsion_r";
- dir = 1
+ dir = 1;
+ icon_state = "propulsion_r"
},
/turf/open/floor/plating/airless,
/area/shuttle/abandoned)
"an" = (
/obj/structure/shuttle/engine/propulsion/left{
- icon_state = "propulsion_l";
- dir = 1
+ dir = 1;
+ icon_state = "propulsion_l"
},
/turf/open/floor/plating/airless,
/area/shuttle/abandoned)
@@ -154,8 +154,8 @@
/obj/structure/frame/machine,
/obj/item/stack/cable_coil,
/obj/machinery/light/broken{
- icon_state = "tube-broken";
- dir = 4
+ dir = 4;
+ icon_state = "tube-broken"
},
/turf/open/floor/plasteel/airless,
/area/shuttle/abandoned)
@@ -332,8 +332,8 @@
"ba" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/fluff/paper/stack{
- icon_state = "paperstack";
- dir = 4
+ dir = 4;
+ icon_state = "paperstack"
},
/obj/item/folder/yellow,
/turf/open/floor/plasteel/airless,
@@ -396,9 +396,6 @@
dir = 4
},
/obj/machinery/cell_charger,
-/obj/item/gps{
- gpstag = "whiteship"
- },
/turf/open/floor/plasteel/airless,
/area/shuttle/abandoned)
"bi" = (
@@ -415,8 +412,8 @@
"bk" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/fluff/paper/stack{
- icon_state = "paperstack";
- dir = 1
+ dir = 1;
+ icon_state = "paperstack"
},
/turf/open/floor/plating/airless,
/area/shuttle/abandoned)
@@ -438,8 +435,8 @@
"bm" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/fluff/paper/stack{
- icon_state = "paperstack";
- dir = 8
+ dir = 8;
+ icon_state = "paperstack"
},
/obj/effect/turf_decal/tile/blue{
dir = 8
@@ -482,8 +479,8 @@
/area/shuttle/abandoned)
"br" = (
/obj/machinery/computer/camera_advanced/shuttle_docker/whiteship{
- icon_state = "computer";
- dir = 1
+ dir = 1;
+ icon_state = "computer"
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/disk/holodisk/donutstation/whiteship,
@@ -494,7 +491,7 @@
/turf/open/floor/plasteel/airless,
/area/shuttle/abandoned)
"bs" = (
-/obj/machinery/computer/shuttle/white_ship{
+/obj/machinery/computer/shuttle/white_ship/bridge{
dir = 1
},
/obj/effect/decal/cleanable/dirt/dust,
diff --git a/_maps/shuttles/whiteship_kilo.dmm b/_maps/shuttles/whiteship_kilo.dmm
index 9ab91165ab3..42460eb49cc 100644
--- a/_maps/shuttles/whiteship_kilo.dmm
+++ b/_maps/shuttles/whiteship_kilo.dmm
@@ -29,19 +29,19 @@
dir = 4
},
/obj/docking_port/mobile{
- name = "Salvage Ship";
- icon_state = "pinonclose";
- dir = 8;
- id = "whiteship";
- width = 33;
- height = 17;
- dwidth = 11;
callTime = 250;
- preferred_direction = 4;
- port_direction = 8;
+ can_move_docking_ports = 1;
+ dir = 8;
+ dwidth = 11;
+ height = 17;
+ icon_state = "pinonclose";
+ id = "whiteship";
launch_status = 0;
movement_force = list("KNOCKDOWN" = 0, "THROW" = 0);
- can_move_docking_ports = 1
+ name = "Salvage Ship";
+ port_direction = 8;
+ preferred_direction = 4;
+ width = 33
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/abandoned/cargo)
@@ -487,8 +487,8 @@
/area/shuttle/abandoned/engine)
"aP" = (
/obj/structure/shuttle/engine/heater{
- icon_state = "heater";
- dir = 4
+ dir = 4;
+ icon_state = "heater"
},
/obj/structure/window/reinforced{
dir = 8
@@ -500,8 +500,8 @@
/area/shuttle/abandoned/engine)
"aQ" = (
/obj/structure/shuttle/engine/propulsion/left{
- icon_state = "propulsion_l";
- dir = 4
+ dir = 4;
+ icon_state = "propulsion_l"
},
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -617,8 +617,8 @@
"bb" = (
/obj/structure/ore_box,
/obj/effect/turf_decal/box/corners{
- icon_state = "box_corners";
- dir = 1
+ dir = 1;
+ icon_state = "box_corners"
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
@@ -944,8 +944,8 @@
/area/shuttle/abandoned/engine)
"bC" = (
/obj/structure/shuttle/engine/large{
- icon_state = "large_engine";
- dir = 4
+ dir = 4;
+ icon_state = "large_engine"
},
/turf/open/floor/plating,
/area/shuttle/abandoned/engine)
@@ -1051,11 +1051,6 @@
pixel_x = 4;
pixel_y = 4
},
-/obj/item/gps{
- gpstag = "NTMS-037";
- pixel_x = -9;
- pixel_y = 4
- },
/turf/open/floor/mineral/plastitanium,
/area/shuttle/abandoned/bridge)
"bR" = (
@@ -1166,8 +1161,8 @@
/area/shuttle/abandoned/crew)
"cc" = (
/obj/structure/shuttle/engine/heater{
- icon_state = "heater";
- dir = 4
+ dir = 4;
+ icon_state = "heater"
},
/obj/structure/window/reinforced{
dir = 8
@@ -1187,7 +1182,7 @@
/turf/open/floor/plating,
/area/shuttle/abandoned/crew)
"cf" = (
-/obj/machinery/computer/shuttle/white_ship{
+/obj/machinery/computer/shuttle/white_ship/bridge{
dir = 4
},
/obj/machinery/light{
@@ -1355,8 +1350,8 @@
/area/shuttle/abandoned/crew)
"ct" = (
/obj/structure/shuttle/engine/large{
- icon_state = "large_engine";
- dir = 4
+ dir = 4;
+ icon_state = "large_engine"
},
/obj/effect/turf_decal/stripes/corner,
/turf/open/floor/plating,
@@ -1558,8 +1553,8 @@
/area/shuttle/abandoned/crew)
"cL" = (
/obj/structure/shuttle/engine/propulsion/left{
- icon_state = "propulsion_l";
- dir = 4
+ dir = 4;
+ icon_state = "propulsion_l"
},
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -1689,8 +1684,8 @@
"cV" = (
/obj/structure/closet/secure_closet/personal,
/obj/effect/turf_decal/trimline/white/filled/line{
- icon_state = "trimline_fill";
- dir = 1
+ dir = 1;
+ icon_state = "trimline_fill"
},
/obj/effect/turf_decal/stripes/corner{
dir = 1
@@ -1707,8 +1702,8 @@
"cW" = (
/obj/structure/closet/secure_closet/personal,
/obj/effect/turf_decal/trimline/white/filled/line{
- icon_state = "trimline_fill";
- dir = 1
+ dir = 1;
+ icon_state = "trimline_fill"
},
/obj/machinery/airalarm/all_access{
dir = 1;
@@ -1723,8 +1718,8 @@
"cX" = (
/obj/machinery/washing_machine,
/obj/effect/turf_decal/trimline/white/filled/line{
- icon_state = "trimline_fill";
- dir = 1
+ dir = 1;
+ icon_state = "trimline_fill"
},
/obj/effect/turf_decal/stripes/corner{
dir = 4
@@ -1736,9 +1731,9 @@
/area/shuttle/abandoned/crew)
"cY" = (
/obj/structure/frame/computer{
- icon_state = "0";
+ anchored = 1;
dir = 1;
- anchored = 1
+ icon_state = "0"
},
/obj/effect/turf_decal/bot,
/obj/effect/decal/cleanable/dirt,
@@ -1747,9 +1742,9 @@
/area/shuttle/abandoned/bridge)
"cZ" = (
/obj/structure/frame/computer{
- icon_state = "0";
+ anchored = 1;
dir = 1;
- anchored = 1
+ icon_state = "0"
},
/obj/machinery/light,
/obj/machinery/computer/security/telescreen{
@@ -1774,8 +1769,8 @@
"db" = (
/obj/structure/table,
/obj/effect/turf_decal/trimline/white/filled/line{
- icon_state = "trimline_fill";
- dir = 1
+ dir = 1;
+ icon_state = "trimline_fill"
},
/obj/effect/turf_decal/stripes/corner{
dir = 1
@@ -1794,8 +1789,8 @@
"dc" = (
/obj/structure/table,
/obj/effect/turf_decal/trimline/white/filled/line{
- icon_state = "trimline_fill";
- dir = 1
+ dir = 1;
+ icon_state = "trimline_fill"
},
/obj/effect/decal/cleanable/dirt,
/obj/item/storage/box/donkpockets{
@@ -1830,8 +1825,8 @@
/obj/item/reagent_containers/food/drinks/beer,
/obj/item/reagent_containers/food/snacks/sandwich,
/obj/effect/turf_decal/trimline/white/filled/line{
- icon_state = "trimline_fill";
- dir = 1
+ dir = 1;
+ icon_state = "trimline_fill"
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/abandoned/bar)
diff --git a/_maps/shuttles/whiteship_meta.dmm b/_maps/shuttles/whiteship_meta.dmm
index b641313e3c9..c0dddc1aacf 100644
--- a/_maps/shuttles/whiteship_meta.dmm
+++ b/_maps/shuttles/whiteship_meta.dmm
@@ -1590,7 +1590,7 @@
/turf/open/floor/plasteel/dark,
/area/shuttle/abandoned/bridge)
"cv" = (
-/obj/machinery/computer/shuttle/white_ship{
+/obj/machinery/computer/shuttle/white_ship/bridge{
dir = 8
},
/obj/effect/decal/cleanable/dirt/dust,
@@ -1688,11 +1688,6 @@
dir = 8
},
/obj/effect/decal/cleanable/dirt/dust,
-/obj/item/gps{
- gpstag = "NTREC1";
- pixel_x = -9;
- pixel_y = 7
- },
/obj/item/radio/off{
pixel_x = 6;
pixel_y = 7
@@ -2199,6 +2194,7 @@
/obj/effect/turf_decal/tile/green{
dir = 8
},
+/obj/effect/spawner/lootdrop/space/rareseed,
/turf/open/floor/plasteel,
/area/shuttle/abandoned/bar)
"do" = (
@@ -2731,6 +2727,7 @@
/obj/effect/turf_decal/tile/green{
dir = 4
},
+/obj/effect/spawner/lootdrop/space/rareseed,
/turf/open/floor/plasteel,
/area/shuttle/abandoned/bar)
"eh" = (
diff --git a/_maps/shuttles/whiteship_pubby.dmm b/_maps/shuttles/whiteship_pubby.dmm
index c2a71ad0de6..740621e92ea 100644
--- a/_maps/shuttles/whiteship_pubby.dmm
+++ b/_maps/shuttles/whiteship_pubby.dmm
@@ -42,7 +42,7 @@
/turf/open/floor/plating/abductor,
/area/shuttle/abandoned)
"i" = (
-/obj/structure/chair/comfy/shuttle,
+/obj/machinery/computer/camera_advanced/shuttle_docker/whiteship,
/turf/open/floor/plating/abductor,
/area/shuttle/abandoned)
"j" = (
@@ -71,7 +71,6 @@
/turf/open/floor/plating/abductor,
/area/shuttle/abandoned)
"m" = (
-/obj/machinery/computer/shuttle/white_ship,
/turf/open/floor/plating/abductor,
/area/shuttle/abandoned)
"n" = (
@@ -104,11 +103,12 @@
/obj/structure/table/glass,
/obj/item/tank/internals/oxygen,
/obj/item/clothing/mask/breath,
-/obj/item/clothing/suit/space/hardsuit/engine/elite,
+/obj/item/clothing/suit/space/eva,
+/obj/item/clothing/head/helmet/space/eva,
/turf/open/floor/plating/abductor,
/area/shuttle/abandoned)
"q" = (
-/obj/structure/chair/comfy/shuttle{
+/obj/machinery/computer/shuttle/white_ship/bridge{
dir = 1
},
/turf/open/floor/plating/abductor,
diff --git a/code/__DEFINES/space.dm b/code/__DEFINES/space.dm
new file mode 100644
index 00000000000..df9214fd6c1
--- /dev/null
+++ b/code/__DEFINES/space.dm
@@ -0,0 +1 @@
+#define SPACE_SIGNAL_GPSTAG "Distant Signal"
diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm
index 434bf00b082..feb5e70eca3 100644
--- a/code/game/objects/effects/spawners/lootdrop.dm
+++ b/code/game/objects/effects/spawners/lootdrop.dm
@@ -558,3 +558,119 @@
while(islist(lootspawn))
lootspawn = pickweight(lootspawn)
return lootspawn
+
+/obj/effect/spawner/lootdrop/space
+ name = "generic space ruin loot spawner"
+ lootcount = 1
+
+/// Space loot spawner. Randomlu picks 5 wads of space cash.
+/obj/effect/spawner/lootdrop/space/cashmoney
+ lootcount = 5
+ fan_out_items = TRUE
+ loot = list(
+ /obj/item/stack/spacecash/c1 = 100,
+ /obj/item/stack/spacecash/c10 = 80,
+ /obj/item/stack/spacecash/c20 = 60,
+ /obj/item/stack/spacecash/c50 = 40,
+ /obj/item/stack/spacecash/c100 = 30,
+ /obj/item/stack/spacecash/c200 = 20,
+ /obj/item/stack/spacecash/c500 = 10,
+ /obj/item/stack/spacecash/c1000 = 5,
+ /obj/item/stack/spacecash/c10000 = 1
+ )
+
+/// Space loot spawner. Couple of random bits of technology-adjacent stuff including anomaly cores and BEPIS techs.
+/obj/effect/spawner/lootdrop/space/fancytech
+ lootcount = 2
+ loot = list(
+ /obj/item/raw_anomaly_core/random = 1,
+ /obj/item/disk/tech_disk/spaceloot = 1,
+ /obj/item/camera_bug = 1
+ )
+
+/// Space loot spawner. Some sort of random and rare tool. Only a single drop.
+/obj/effect/spawner/lootdrop/space/fancytool
+ lootcount = 1
+ loot = list(
+ /obj/item/wrench/abductor = 1,
+ /obj/item/wirecutters/abductor = 1,
+ /obj/item/screwdriver/abductor = 1,
+ /obj/item/crowbar/abductor = 1,
+ /obj/item/weldingtool/abductor = 1,
+ /obj/item/multitool/abductor = 1,
+ /obj/item/scalpel/alien = 1,
+ /obj/item/hemostat/alien = 1,
+ /obj/item/retractor/alien = 1,
+ /obj/item/circular_saw/alien = 1,
+ /obj/item/surgicaldrill/alien = 1,
+ /obj/item/cautery/alien = 1,
+ /obj/item/wrench/caravan = 1,
+ /obj/item/wirecutters/caravan = 1,
+ /obj/item/screwdriver/caravan = 1,
+ /obj/item/crowbar/red/caravan = 1
+ )
+
+/// Space loot spawner. A bunch of rarer seeds. /obj/item/seeds/random is not a random seed, but an exotic seed.
+/obj/effect/spawner/lootdrop/space/rareseed
+ lootcount = 5
+ loot = list(
+ /obj/item/seeds/random = 30,
+ /obj/item/seeds/angel = 1,
+ /obj/item/seeds/glowshroom/glowcap = 1,
+ /obj/item/seeds/glowshroom/shadowshroom = 1,
+ /obj/item/seeds/liberty = 5,
+ /obj/item/seeds/nettle/death = 1,
+ /obj/item/seeds/plump/walkingmushroom = 1,
+ /obj/item/seeds/reishi = 5,
+ /obj/item/seeds/cannabis/rainbow = 1,
+ /obj/item/seeds/cannabis/death = 1,
+ /obj/item/seeds/cannabis/white = 1,
+ /obj/item/seeds/cannabis/ultimate = 1,
+ /obj/item/seeds/replicapod = 5,
+ /obj/item/seeds/kudzu = 1
+ )
+
+/// Space loot spawner. A single roundstart species language book.
+/obj/effect/spawner/lootdrop/space/languagebook
+ lootcount = 1
+ loot = list(
+ /obj/item/language_manual/roundstart_species = 100,
+ /obj/item/language_manual/roundstart_species/five = 3,
+ /obj/item/language_manual/roundstart_species/unlimited = 1
+ )
+
+/// Space loot spawner. Random selecton of a few rarer materials.
+/obj/effect/spawner/lootdrop/space/material
+ lootcount = 3
+ loot = list(
+ /obj/item/stack/sheet/plastic/fifty = 5,
+ /obj/item/stack/sheet/runed_metal/ten = 20,
+ /obj/item/stack/sheet/runed_metal/fifty = 5,
+ /obj/item/stack/sheet/mineral/diamond{amount = 15} = 15,
+ /obj/item/stack/sheet/mineral/uranium{amount = 15} = 15,
+ /obj/item/stack/sheet/mineral/plasma{amount = 15} = 15,
+ /obj/item/stack/sheet/mineral/gold{amount = 15} = 15,
+ )
+
+/// A selection of cosmetic syndicate items. Just a couple. No hardsuits or weapons.
+/obj/effect/spawner/lootdrop/space/syndiecosmetic
+ lootcount = 2
+ loot = list(
+ /obj/item/clothing/under/syndicate = 10,
+ /obj/item/clothing/under/syndicate/skirt = 10,
+ /obj/item/clothing/under/syndicate/bloodred = 10,
+ /obj/item/clothing/under/syndicate/bloodred/sleepytime = 5,
+ /obj/item/clothing/under/syndicate/tacticool = 10,
+ /obj/item/clothing/under/syndicate/tacticool/skirt = 10,
+ /obj/item/clothing/under/syndicate/sniper = 10,
+ /obj/item/clothing/under/syndicate/camo = 10,
+ /obj/item/clothing/under/syndicate/soviet = 10,
+ /obj/item/clothing/under/syndicate/combat = 10,
+ /obj/item/clothing/under/syndicate/rus_army = 10,
+ /obj/item/storage/fancy/cigarettes/cigpack_syndicate = 7,
+ /obj/item/storage/fancy/cigarettes/cigpack_uplift = 3,
+ /obj/item/storage/fancy/cigarettes/cigpack_candy = 2,
+ /obj/item/storage/fancy/cigarettes/cigpack_robust = 2,
+ /obj/item/storage/fancy/cigarettes/cigpack_carp = 3,
+ /obj/item/storage/fancy/cigarettes/cigpack_midori = 1
+ )
diff --git a/code/game/objects/items/devices/gps.dm b/code/game/objects/items/devices/gps.dm
index a3a5ee1c7cb..5635d790b38 100644
--- a/code/game/objects/items/devices/gps.dm
+++ b/code/game/objects/items/devices/gps.dm
@@ -15,6 +15,9 @@
. = ..()
AddComponent(/datum/component/gps/item, gpstag)
+/obj/item/gps/spaceruin
+ gpstag = SPACE_SIGNAL_GPSTAG
+
/obj/item/gps/science
icon_state = "gps-s"
gpstag = "SCI0"
diff --git a/code/modules/language/codespeak.dm b/code/modules/language/codespeak.dm
index 12ac08b5d63..09db7ef511b 100644
--- a/code/modules/language/codespeak.dm
+++ b/code/modules/language/codespeak.dm
@@ -29,55 +29,3 @@
. += input_ending
add_to_cache(input, .)
-
-/obj/item/codespeak_manual
- name = "codespeak manual"
- desc = "The book's cover reads: \"Codespeak(tm) - Secure your communication with metaphors so elaborate, they seem randomly generated!\""
- icon = 'icons/obj/library.dmi'
- icon_state = "book2"
- var/charges = 1
-
-/obj/item/codespeak_manual/attack_self(mob/living/user)
- if(!isliving(user))
- return
-
- if(user.has_language(/datum/language/codespeak))
- to_chat(user, "You start skimming through [src], but you already know Codespeak.")
- return
-
- to_chat(user, "You start skimming through [src], and suddenly your mind is filled with codewords and responses.")
- user.grant_language(/datum/language/codespeak, TRUE, TRUE, LANGUAGE_MIND)
-
- use_charge(user)
-
-/obj/item/codespeak_manual/attack(mob/living/M, mob/living/user)
- if(!istype(M) || !istype(user))
- return
- if(M == user)
- attack_self(user)
- return
-
- playsound(loc, "punch", 25, TRUE, -1)
-
- if(M.stat == DEAD)
- M.visible_message("[user] smacks [M]'s lifeless corpse with [src].", "[user] smacks your lifeless corpse with [src].", "You hear smacking.")
- else if(M.has_language(/datum/language/codespeak))
- M.visible_message("[user] beats [M] over the head with [src]!", "[user] beats you over the head with [src]!", "You hear smacking.")
- else
- M.visible_message("[user] teaches [M] by beating [M.p_them()] over the head with [src]!", "As [user] hits you with [src], codewords and responses flow through your mind.", "You hear smacking.")
- M.grant_language(/datum/language/codespeak, TRUE, TRUE, LANGUAGE_MIND)
- use_charge(user)
-
-/obj/item/codespeak_manual/proc/use_charge(mob/user)
- charges--
- if(!charges)
- var/turf/T = get_turf(src)
- T.visible_message("The cover and contents of [src] start shifting and changing!")
-
- qdel(src)
- var/obj/item/book/manual/random/book = new(T)
- user.put_in_active_hand(book)
-
-/obj/item/codespeak_manual/unlimited
- name = "deluxe codespeak manual"
- charges = INFINITY
diff --git a/code/modules/language/language_manuals.dm b/code/modules/language/language_manuals.dm
new file mode 100644
index 00000000000..c8a11039a41
--- /dev/null
+++ b/code/modules/language/language_manuals.dm
@@ -0,0 +1,96 @@
+/obj/item/language_manual
+ icon = 'icons/obj/library.dmi'
+ icon_state = "book2"
+ /// Number of charges the book has, limits the number of times it can be used.
+ var/charges = 1
+ /// Path to a language datum that the book teaches.
+ var/datum/language/language = /datum/language/common
+ /// Flavour text to display when the language is successfully learned.
+ var/flavour_text = "suddenly your mind is filled with codewords and responses"
+
+/obj/item/language_manual/attack_self(mob/living/user)
+ if(!isliving(user))
+ return
+
+ if(user.has_language(language))
+ to_chat(user, "You start skimming through [src], but you already know [initial(language.name)].")
+ return
+
+ to_chat(user, "You start skimming through [src], and [flavour_text].")
+ user.grant_language(language, TRUE, TRUE, LANGUAGE_MIND)
+
+ use_charge(user)
+
+/obj/item/language_manual/attack(mob/living/M, mob/living/user)
+ if(!istype(M) || !istype(user))
+ return
+ if(M == user)
+ attack_self(user)
+ return
+
+ playsound(loc, "punch", 25, TRUE, -1)
+
+ if(M.stat == DEAD)
+ M.visible_message("[user] smacks [M]'s lifeless corpse with [src].", "[user] smacks your lifeless corpse with [src].", "You hear smacking.")
+ else if(M.has_language(language))
+ M.visible_message("[user] beats [M] over the head with [src]!", "[user] beats you over the head with [src]!", "You hear smacking.")
+ else
+ M.visible_message("[user] teaches [M] by beating [M.p_them()] over the head with [src]!", "As [user] hits you with [src], [flavour_text].", "You hear smacking.")
+ M.grant_language(language, TRUE, TRUE, LANGUAGE_MIND)
+ use_charge(user)
+
+/obj/item/language_manual/proc/use_charge(mob/user)
+ charges--
+ if(!charges)
+ var/turf/T = get_turf(src)
+ T.visible_message("The cover and contents of [src] start shifting and changing!")
+
+ qdel(src)
+ var/obj/item/book/manual/random/book = new(T)
+ user.put_in_active_hand(book)
+
+/obj/item/language_manual/codespeak_manual
+ name = "codespeak manual"
+ desc = "The book's cover reads: \"Codespeak(tm) - Secure your communication with metaphors so elaborate, they seem randomly generated!\""
+ language = /datum/language/codespeak
+ flavour_text = "suddenly your mind is filled with codewords and responses"
+
+/obj/item/language_manual/codespeak_manual/unlimited
+ name = "deluxe codespeak manual"
+ charges = INFINITY
+
+/obj/item/language_manual/roundstart_species
+
+/obj/item/language_manual/roundstart_species/Initialize()
+ . = ..()
+ language = pick( \
+ /datum/language/voltaic, \
+ /datum/language/nekomimetic, \
+ /datum/language/draconic, \
+ /datum/language/moffic, \
+ /datum/language/calcic \
+ )
+ name = "[initial(language.name)] manual"
+ desc = "The book's cover reads: \"[initial(language.name)] for Xenos - Learn common galactic tongues in seconds.\""
+ flavour_text = "you feel empowered with a mastery over [initial(language.name)]"
+
+/obj/item/language_manual/roundstart_species/unlimited
+ charges = INFINITY
+
+/obj/item/language_manual/roundstart_species/unlimited/Initialize()
+ . = ..()
+ name = "deluxe [initial(language.name)] manual"
+
+/obj/item/language_manual/roundstart_species/five
+ charges = 5
+
+/obj/item/language_manual/roundstart_species/five/Initialize()
+ . = ..()
+ name = "extended [initial(language.name)] manual"
+
+// So drones can teach borgs and AI dronespeak. For best effect, combine with mother drone lawset.
+/obj/item/language_manual/dronespeak_manual
+ name = "dronespeak manual"
+ desc = "The book's cover reads: \"Understanding Dronespeak - An exercise in futility.\""
+ language = /datum/language/drone
+ flavour_text = "suddenly the drone chittering makes sense"
diff --git a/code/modules/mob/living/simple_animal/hostile/pirate.dm b/code/modules/mob/living/simple_animal/hostile/pirate.dm
index 50589f0bbb3..26833549505 100644
--- a/code/modules/mob/living/simple_animal/hostile/pirate.dm
+++ b/code/modules/mob/living/simple_animal/hostile/pirate.dm
@@ -81,8 +81,7 @@
retreat_distance = 5
minimum_distance = 5
projectiletype = /obj/projectile/beam/laser
- loot = list(/obj/effect/mob_spawn/human/corpse/pirate/ranged,
- /obj/item/gun/energy/laser)
+ loot = list(/obj/effect/mob_spawn/human/corpse/pirate/ranged)
/mob/living/simple_animal/hostile/pirate/ranged/space
name = "Space Pirate Gunner"
diff --git a/code/modules/research/research_disk.dm b/code/modules/research/research_disk.dm
index 860728e01d0..223e5f184c1 100644
--- a/code/modules/research/research_disk.dm
+++ b/code/modules/research/research_disk.dm
@@ -31,6 +31,16 @@
. = ..()
stored_research = new /datum/techweb/bepis
+/obj/item/disk/tech_disk/spaceloot
+ name = "Old experimental technology disk"
+ desc = "A disk containing some long-forgotten technology from a past age. You hope it still works after all these years. Upload the disk to an R&D Console to redeem the tech."
+ icon_state = "rndmajordisk"
+ custom_materials = list(/datum/material/iron=300, /datum/material/glass=100)
+
+/obj/item/disk/tech_disk/spaceloot/Initialize()
+ . = ..()
+ stored_research = new /datum/techweb/bepis(remove_tech = FALSE)
+
/obj/item/research_notes
name = "research notes"
desc = "Valuable scientific data. Use it in a research console to scan it."
diff --git a/code/modules/research/techweb/_techweb.dm b/code/modules/research/techweb/_techweb.dm
index 13210982656..3e7d6992c47 100644
--- a/code/modules/research/techweb/_techweb.dm
+++ b/code/modules/research/techweb/_techweb.dm
@@ -52,14 +52,15 @@
id = "EXPERIMENTAL"
organization = "Nanotrasen R&D"
-/datum/techweb/bepis/New()
+/datum/techweb/bepis/New(remove_tech = TRUE)
. = ..()
var/bepis_id = pick(SSresearch.techweb_nodes_experimental) //To add a new tech to the BEPIS, add the ID to this pick list.
var/datum/techweb_node/BN = (SSresearch.techweb_node_by_id(bepis_id))
hidden_nodes -= BN.id //Has to be removed from hidden nodes
research_node(BN, TRUE, FALSE, FALSE)
update_node_status(BN)
- SSresearch.techweb_nodes_experimental -= bepis_id
+ if(remove_tech)
+ SSresearch.techweb_nodes_experimental -= bepis_id
/datum/techweb/Destroy()
researched_nodes = null
diff --git a/code/modules/ruins/spaceruin_code/TheDerelict.dm b/code/modules/ruins/spaceruin_code/TheDerelict.dm
index 65a81e289d0..1c8d0d4e41e 100644
--- a/code/modules/ruins/spaceruin_code/TheDerelict.dm
+++ b/code/modules/ruins/spaceruin_code/TheDerelict.dm
@@ -148,44 +148,6 @@
return
..()
-// So drones can teach borgs and AI dronespeak. For best effect, combine with mother drone lawset.
-/obj/item/dronespeak_manual
- name = "dronespeak manual"
- desc = "The book's cover reads: \"Understanding Dronespeak - An exercise in futility.\""
- icon = 'icons/obj/library.dmi'
- icon_state = "book2"
-
-/obj/item/dronespeak_manual/attack_self(mob/living/user)
- ..()
- if(isdrone(user) || issilicon(user))
- if(user.has_language(/datum/language/drone))
- to_chat(user, "You start skimming through [src], but you already know dronespeak.")
- else
- to_chat(user, "You start skimming through [src], and suddenly the drone chittering makes sense.")
- user.grant_language(/datum/language/drone, TRUE, TRUE, LANGUAGE_MIND)
- return
-
- if(user.has_language(/datum/language/drone))
- to_chat(user, "You start skimming through [src], but you already know dronespeak.")
- else
- to_chat(user, "You start skimming through [src], but you can't make any sense of the contents.")
-
-/obj/item/dronespeak_manual/attack(mob/living/M, mob/living/user)
- if(!istype(M) || !istype(user))
- return
- if(M == user)
- attack_self(user)
- return
-
- playsound(loc, "punch", 25, TRUE, -1)
- if(isdrone(M) || issilicon(M))
- if(M.has_language(/datum/language/drone))
- M.visible_message("[user] beats [M] over the head with [src]!", "[user] beats you over the head with [src]!", "You hear smacking.")
- else
- M.visible_message("[user] teaches [M] by beating [M.p_them()] over the head with [src]!", "As [user] hits you with [src], chitters resonate in your mind.", "You hear smacking.")
- M.grant_language(/datum/language/drone, TRUE, TRUE, LANGUAGE_MIND)
- return
-
/obj/structure/fluff/oldturret
name = "broken turret"
desc = "An obsolete model of turret, long non-functional."
diff --git a/code/modules/shuttle/white_ship.dm b/code/modules/shuttle/white_ship.dm
index 4477489aaad..8703d147879 100644
--- a/code/modules/shuttle/white_ship.dm
+++ b/code/modules/shuttle/white_ship.dm
@@ -5,6 +5,13 @@
shuttleId = "whiteship"
possible_destinations = "whiteship_away;whiteship_home;whiteship_z4;whiteship_lavaland;whiteship_custom"
+/// Console used on the whiteship bridge. Comes with GPS pre-baked.
+/obj/machinery/computer/shuttle/white_ship/bridge
+
+/obj/machinery/computer/shuttle/white_ship/bridge/Initialize(mapload, obj/item/circuitboard/C)
+ . = ..()
+ AddComponent(/datum/component/gps, SPACE_SIGNAL_GPSTAG)
+
/obj/machinery/computer/shuttle/white_ship/pod
name = "Salvage Pod Console"
desc = "Used to control the Salvage Pod."
diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm
index 4d15bcf0d32..8177628f50f 100644
--- a/code/modules/uplink/uplink_items.dm
+++ b/code/modules/uplink/uplink_items.dm
@@ -1216,7 +1216,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
name = "Codespeak Manual"
desc = "Syndicate agents can be trained to use a series of codewords to convey complex information, which sounds like random concepts and drinks to anyone listening. \
This manual teaches you this Codespeak. You can also hit someone else with the manual in order to teach them. This is the deluxe edition, which has unlimited uses."
- item = /obj/item/codespeak_manual/unlimited
+ item = /obj/item/language_manual/codespeak_manual/unlimited
cost = 3
/datum/uplink_item/stealthy_tools/combatbananashoes
diff --git a/tgstation.dme b/tgstation.dme
index 4e089263609..70a620c3e49 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -107,6 +107,7 @@
#include "code\__DEFINES\sight.dm"
#include "code\__DEFINES\skills.dm"
#include "code\__DEFINES\sound.dm"
+#include "code\__DEFINES\space.dm"
#include "code\__DEFINES\spaceman_dmm.dm"
#include "code\__DEFINES\stat.dm"
#include "code\__DEFINES\stat_tracking.dm"
@@ -2101,6 +2102,7 @@
#include "code\modules\language\drone.dm"
#include "code\modules\language\language.dm"
#include "code\modules\language\language_holder.dm"
+#include "code\modules\language\language_manuals.dm"
#include "code\modules\language\language_menu.dm"
#include "code\modules\language\machine.dm"
#include "code\modules\language\moffic.dm"