diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 8e73f4427152..d456e8d2ddd2 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -4,22 +4,39 @@
# In the event that multiple org members are to be informed of changes
# to the same file or dir, add them to the end under Multiple Owners
-# MarkSuckerberg
-/code/controllers/subsystem/shuttle.dm @MarkSuckerberg
-/code/modules/shuttle/ @MarkSuckerberg
-/code/modules/overmap/ @MarkSuckerberg
-
-# Teams
+# TEAMS
# Map Maintainers
/_maps/ @shiptest-ss13/maptainers
# Sprite Maintainers
/icons/ @shiptest-ss13/spritetainers
-/whitesands/icons/ @shiptest-ss13/spritetainers
# CI and tool chains
/tools/ @shiptest-ss13/admins
-#SIC SEMPER TYRANNIS
+
+# MAINTAINERS
+
+# FalloutFalcon
+
+/code/game/objects/items/storage/ration.dm @FalloutFalcon
+/code/modules/food_and_drinks/drinks/drinks/breakawayflask.dm @FalloutFalcon
+/code/modules/food_and_drinks/food/ration.dm @FalloutFalcon
+/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @FalloutFalcon
+/code/modules/projectiles @FalloutFalcon
+/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm @FalloutFalcon
+/code/modules/unit_tests/icons @FalloutFalcon
+
+# MarkSuckerberg
+
+/code/controllers/subsystem/shuttle.dm @MarkSuckerberg
+/code/modules/shuttle/ @MarkSuckerberg
+/code/modules/overmap/ @MarkSuckerberg
/_maps/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm @MarkSuckerberg
+
+
+# CONTRIBUTORS
+
+
+# MULTIPLE OWNERS
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index d8e1a4830773..168b9038b246 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -15,7 +15,6 @@
add: Added new things
add: Added more things
del: Removed old things
-tweak: tweaked a few things
balance: rebalanced something
fix: fixed a few things
soundadd: added a new sound thingy
diff --git a/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm b/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm
index 4aaff2b5a160..84fabfbe5ff7 100644
--- a/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm
+++ b/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm
@@ -667,7 +667,7 @@
/area/overmap_encounter/planetoid/beachplanet/explored)
"Bg" = (
/obj/effect/turf_decal/corner/opaque/pink/diagonal,
-/mob/living/simple_animal/hostile/pirate/melee{
+/mob/living/simple_animal/hostile/human/pirate/melee{
faction = list("beach","pirate")
},
/turf/open/floor/plastic,
@@ -827,7 +827,7 @@
/area/ruin/beach)
"Gt" = (
/obj/effect/turf_decal/corner/opaque/lightgrey/diagonal,
-/mob/living/simple_animal/hostile/cat_butcherer{
+/mob/living/simple_animal/hostile/human/cat_butcherer{
atmos_requirements = list("min_oxy"=0,"max_oxy"=0,"min_tox"=0,"max_tox"=0,"min_co2"=0,"max_co2"=0,"min_n2"=0,"max_n2"=0);
desc = "A profession carp butcher, gone mad due to carptoxin exposure. There seems to be something in their pocket...";
faction = list("beach","pirate");
@@ -853,7 +853,7 @@
"GP" = (
/obj/structure/chair/sofa/brown/right/directional/south,
/obj/effect/decal/cleanable/cobweb,
-/mob/living/simple_animal/hostile/pirate/melee{
+/mob/living/simple_animal/hostile/human/pirate/melee{
faction = list("beach","pirate")
},
/turf/open/floor/carpet,
@@ -1045,7 +1045,7 @@
/obj/structure/chair/plastic{
dir = 8
},
-/mob/living/simple_animal/hostile/pirate/ranged{
+/mob/living/simple_animal/hostile/human/pirate/ranged{
faction = list("beach","pirate")
},
/turf/open/floor/wood/ebony,
@@ -1135,7 +1135,7 @@
/area/ruin/beach)
"Rh" = (
/obj/structure/chair/sofa/brown/corner/directional/south,
-/mob/living/simple_animal/hostile/pirate/melee{
+/mob/living/simple_animal/hostile/human/pirate/melee{
faction = list("beach","pirate")
},
/turf/open/floor/carpet,
@@ -1250,7 +1250,7 @@
pixel_x = 4;
layer = 2.9
},
-/mob/living/simple_animal/hostile/pirate/ranged{
+/mob/living/simple_animal/hostile/human/pirate/ranged{
faction = list("beach","pirate")
},
/turf/open/floor/wood/ebony,
@@ -1333,7 +1333,7 @@
/turf/open/water/beach,
/area/overmap_encounter/planetoid/beachplanet/explored)
"ZJ" = (
-/mob/living/simple_animal/hostile/pirate/melee{
+/mob/living/simple_animal/hostile/human/pirate/melee{
faction = list("beach","pirate")
},
/turf/open/floor/wood,
diff --git a/_maps/RandomRuins/BeachRuins/beach_pirate_crash.dmm b/_maps/RandomRuins/BeachRuins/beach_pirate_crash.dmm
index 3cdd90e5e1cb..e47ffa92a5e9 100644
--- a/_maps/RandomRuins/BeachRuins/beach_pirate_crash.dmm
+++ b/_maps/RandomRuins/BeachRuins/beach_pirate_crash.dmm
@@ -385,7 +385,7 @@
},
/area/overmap_encounter/planetoid/beachplanet/explored)
"jE" = (
-/mob/living/simple_animal/hostile/pirate/ranged{
+/mob/living/simple_animal/hostile/human/pirate/ranged{
environment_smash = 0;
faction = list("pirate","mining")
},
@@ -522,7 +522,7 @@
/obj/structure/cable{
icon_state = "1-4"
},
-/mob/living/simple_animal/hostile/pirate/melee{
+/mob/living/simple_animal/hostile/human/pirate/melee{
environment_smash = 0;
faction = list("pirate","mining")
},
@@ -1508,7 +1508,7 @@
/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/cave/explored)
"Vc" = (
-/mob/living/simple_animal/hostile/pirate/melee{
+/mob/living/simple_animal/hostile/human/pirate/melee{
environment_smash = 0;
faction = list("pirate","mining")
},
diff --git a/_maps/RandomRuins/BeachRuins/beach_treasure_cove.dmm b/_maps/RandomRuins/BeachRuins/beach_treasure_cove.dmm
index 7943cf93372e..e97a926aec6b 100644
--- a/_maps/RandomRuins/BeachRuins/beach_treasure_cove.dmm
+++ b/_maps/RandomRuins/BeachRuins/beach_treasure_cove.dmm
@@ -417,7 +417,7 @@
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
-/mob/living/simple_animal/hostile/pirate/ranged/space,
+/mob/living/simple_animal/hostile/human/pirate/ranged/space,
/turf/open/floor/wood,
/area/ruin/beach/treasure_cove)
"oR" = (
@@ -970,12 +970,12 @@
dir = 8
},
/obj/effect/decal/cleanable/dirt/dust,
-/mob/living/simple_animal/hostile/pirate/melee,
+/mob/living/simple_animal/hostile/human/pirate/melee,
/turf/open/floor/plating/dirt/jungle/lit,
/area/ruin/beach/treasure_cove)
"EU" = (
/obj/effect/decal/cleanable/dirt/dust,
-/mob/living/simple_animal/hostile/pirate/melee,
+/mob/living/simple_animal/hostile/human/pirate/melee,
/turf/open/floor/plating/dirt/jungle/lit,
/area/ruin/beach/treasure_cove)
"Gm" = (
@@ -1301,7 +1301,7 @@
/obj/structure/chair/wood{
dir = 8
},
-/mob/living/simple_animal/hostile/pirate/ranged,
+/mob/living/simple_animal/hostile/human/pirate/ranged,
/turf/open/floor/carpet/red,
/area/ruin/beach/treasure_cove)
"SX" = (
diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm
index 28a963ed476a..c48664ffdcf3 100644
--- a/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm
+++ b/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm
@@ -84,8 +84,8 @@
"cN" = (
/obj/structure/safe/floor,
/obj/item/hand_tele,
-/obj/item/stack/sheet/mineral/adamantine,
-/obj/item/stack/sheet/mineral/adamantine,
+/obj/item/stack/sheet/mineral/hidden/hellstone,
+/obj/item/stack/sheet/mineral/hidden/hellstone,
/turf/open/floor/plating/asteroid/snow/icemoon,
/area/ruin/unpowered/corprejectrooms)
"cP" = (
@@ -518,7 +518,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
dir = 9
},
-/mob/living/simple_animal/hostile/nanotrasen/ranged/assault{
+/mob/living/simple_animal/hostile/human/nanotrasen/ranged/assault{
desc = "No longer a member of Nanotrasen's more militaristic forces. Seems grumpy.";
faction = list("DeserterNT");
name = "Benny Bleighch"
@@ -566,7 +566,7 @@
/turf/open/floor/vault,
/area/ruin/unpowered/corprejectrooms)
"or" = (
-/mob/living/simple_animal/hostile/nanotrasen/elite{
+/mob/living/simple_animal/hostile/human/nanotrasen/elite{
desc = "A former major player for Nanotrasen militaristic needs. He doesn't seem like someone who'd want to talk over tea.";
faction = list("DeserterNT");
name = "Sam the Sharp"
@@ -780,7 +780,7 @@
/area/ruin/unpowered/corprejectrooms)
"tb" = (
/obj/effect/turf_decal/corner/opaque/white/diagonal,
-/mob/living/simple_animal/hostile/nanotrasen/ranged/smg{
+/mob/living/simple_animal/hostile/human/nanotrasen/ranged/smg{
desc = "An officer no longer part of Nanotrasen's private security force, he seems rather unpleased to meet you.";
faction = list("DeserterNT");
name = "Rebecca Slouch"
@@ -1064,7 +1064,7 @@
/obj/structure/cable/blue{
icon_state = "4-9"
},
-/mob/living/simple_animal/hostile/nanotrasen/ranged/smg{
+/mob/living/simple_animal/hostile/human/nanotrasen/ranged/smg{
desc = "An officer no longer part of Nanotrasen's private security force, he seems rather unpleased to meet you.";
faction = list("DeserterNT");
name = "Gloria the Glorious"
@@ -1106,7 +1106,7 @@
/obj/structure/chair{
dir = 8
},
-/mob/living/simple_animal/hostile/nanotrasen/screaming{
+/mob/living/simple_animal/hostile/human/nanotrasen/screaming{
desc = "An officer no longer part of Nanotrasen's private security force, he seems rather unpleased to meet you.";
faction = list("DeserterNT");
name = "Jimmy Firecracker"
@@ -1726,11 +1726,11 @@
/obj/item/spacecash/bundle/c1000,
/obj/item/spacecash/bundle/c1000,
/obj/item/stack/sheet/bluespace_crystal/five,
-/obj/item/stack/sheet/mineral/bananium{
+/obj/item/stack/sheet/mineral/hidden/hellstone{
amount = 15
},
/obj/item/stack/sheet/mineral/gold/twenty,
-/obj/item/stack/sheet/mineral/runite/ten,
+/obj/item/stack/sheet/mineral/hidden/hellstone/ten,
/obj/item/toy/figure/captain,
/obj/item/organ/cyberimp/brain/anti_stun,
/obj/item/disk/design_disk/adv/knight_gear,
@@ -1879,7 +1879,7 @@
/obj/structure/cable/blue{
icon_state = "4-9"
},
-/mob/living/simple_animal/hostile/nanotrasen/ranged/smg{
+/mob/living/simple_animal/hostile/human/nanotrasen/ranged/smg{
desc = "An officer no longer part of Nanotrasen's private security force, he seems rather unpleased to meet you.";
faction = list("DeserterNT");
name = "Todd Clorox"
@@ -1902,7 +1902,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
dir = 4
},
-/mob/living/simple_animal/hostile/nanotrasen/elite{
+/mob/living/simple_animal/hostile/human/nanotrasen/elite{
desc = "A former major player for Nanotrasen militaristic needs. He doesn't seem like someone who'd want to talk over tea.";
faction = list("DeserterNT");
name = "Max the Maniac"
@@ -1927,7 +1927,7 @@
/area/ruin/unpowered/corprejectrooms)
"Rp" = (
/obj/effect/turf_decal/corner/opaque/white/diagonal,
-/mob/living/simple_animal/hostile/nanotrasen/ranged/assault{
+/mob/living/simple_animal/hostile/human/nanotrasen/ranged/assault{
desc = "No longer a member of Nanotrasen's more militaristic forces. Seems grumpy.";
faction = list("DeserterNT");
name = "Gordon Lary"
@@ -2003,7 +2003,7 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
dir = 4
},
-/mob/living/simple_animal/hostile/nanotrasen/ranged/assault{
+/mob/living/simple_animal/hostile/human/nanotrasen/ranged/assault{
desc = "No longer a member of Nanotrasen's more militaristic forces. Seems grumpy.";
faction = list("DeserterNT");
name = "Gary Larson"
@@ -2086,7 +2086,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
dir = 4
},
-/mob/living/simple_animal/hostile/nanotrasen/ranged/assault{
+/mob/living/simple_animal/hostile/human/nanotrasen/ranged/assault{
desc = "No longer a member of Nanotrasen's more militaristic forces. Seems grumpy.";
faction = list("DeserterNT");
name = "Nancy Drew"
@@ -2094,7 +2094,7 @@
/turf/open/floor/mineral/plastitanium/red,
/area/ruin/unpowered/corprejectrooms)
"Us" = (
-/mob/living/simple_animal/hostile/nanotrasen/ranged/smg{
+/mob/living/simple_animal/hostile/human/nanotrasen/ranged/smg{
desc = "An officer no longer part of Nanotrasen's private security force, he seems rather unpleased to meet you.";
faction = list("DeserterNT");
name = "Larry Liessahl"
@@ -2231,7 +2231,7 @@
/obj/structure/cable/blue{
icon_state = "0-4"
},
-/mob/living/simple_animal/hostile/nanotrasen/screaming{
+/mob/living/simple_animal/hostile/human/nanotrasen/screaming{
desc = "An officer no longer part of Nanotrasen's private security force, he seems rather unpleased to meet you.";
faction = list("DeserterNT");
name = "Wendy Wallaby"
@@ -2286,7 +2286,7 @@
/obj/structure/cable/blue{
icon_state = "4-5"
},
-/mob/living/simple_animal/hostile/nanotrasen/screaming{
+/mob/living/simple_animal/hostile/human/nanotrasen/screaming{
desc = "An officer no longer part of Nanotrasen's private security force, he seems rather unpleased to meet you.";
faction = list("DeserterNT");
name = "Wetzel the Pretzel"
diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_newcops.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_newcops.dmm
index bf034757b5a2..149f4a579542 100644
--- a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_newcops.dmm
+++ b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_newcops.dmm
@@ -1028,7 +1028,7 @@
/area/ruin/powered)
"Wp" = (
/obj/effect/decal/cleanable/dirt,
-/mob/living/simple_animal/hostile/syndicate/ranged/shotgun/space,
+/mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun/space,
/turf/open/floor/plasteel/freezer,
/area/ruin/powered)
"Ws" = (
diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm
index 0e44f641ab4e..aee0cc51330b 100644
--- a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm
+++ b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm
@@ -483,7 +483,7 @@
/area/ruin/powered)
"PQ" = (
/obj/effect/decal/cleanable/blood/splatter,
-/mob/living/simple_animal/hostile/frontier/ranged/trooper,
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood,
/area/ruin/powered)
diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_brazillianlab.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_brazillianlab.dmm
index 7fde87854827..4954a9a5aaf4 100644
--- a/_maps/RandomRuins/IceRuins/icemoon_underground_brazillianlab.dmm
+++ b/_maps/RandomRuins/IceRuins/icemoon_underground_brazillianlab.dmm
@@ -55,7 +55,7 @@
/turf/open/floor/plating/asteroid/snow/icemoon,
/area/overmap_encounter/planetoid/cave/explored)
"ct" = (
-/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter{
+/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{
faction = list("brazillian")
},
/turf/open/floor/wood{
@@ -88,7 +88,7 @@
/area/ruin/unpowered)
"fB" = (
/obj/structure/chair/stool/bar,
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body.";
faction = list("brazillian")
},
@@ -101,7 +101,7 @@
/turf/open/floor/plating/asteroid/snow/icemoon,
/area/ruin/unpowered)
"gH" = (
-/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/gunslinger{
+/mob/living/simple_animal/hostile/human/hermit/ranged/gunslinger{
faction = list("brazillian")
},
/turf/open/floor/carpet/green{
@@ -117,7 +117,7 @@
"hp" = (
/obj/item/stack/cable_coil,
/obj/effect/decal/cleanable/dirt,
-/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter{
+/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{
faction = list("brazillian")
},
/turf/open/floor/wood{
@@ -128,7 +128,7 @@
/turf/closed/wall/mineral/wood/nonmetal,
/area/overmap_encounter/planetoid/cave/explored)
"ht" = (
-/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter{
+/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{
faction = list("brazillian")
},
/turf/open/floor/plating/asteroid/snow/icemoon,
@@ -177,7 +177,7 @@
/obj/structure/chair/wood{
dir = 1
},
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body.";
faction = list("brazillian")
},
@@ -341,7 +341,7 @@
/turf/open/floor/plating/asteroid/snow/icemoon,
/area/overmap_encounter/planetoid/cave/explored)
"qS" = (
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
desc = "The greatest chef this side of the wastes.";
faction = list("brazillian");
health = 150;
@@ -475,7 +475,7 @@
/obj/structure/bed,
/obj/structure/curtain,
/obj/effect/decal/cleanable/dirt,
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body.";
faction = list("brazillian")
},
@@ -535,7 +535,7 @@
/turf/open/floor/plating/asteroid/snow/icemoon,
/area/overmap_encounter/planetoid/cave/explored)
"zy" = (
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body.";
faction = list("brazillian")
},
@@ -545,7 +545,7 @@
/obj/structure/chair/wood{
dir = 8
},
-/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter{
+/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{
faction = list("brazillian")
},
/turf/open/floor/wood{
@@ -635,7 +635,7 @@
/area/ruin/unpowered)
"CI" = (
/obj/structure/flora/junglebush/c,
-/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter{
+/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{
faction = list("brazillian")
},
/turf/open/floor/plating/grass/jungle{
@@ -775,7 +775,7 @@
"JM" = (
/obj/structure/bed,
/obj/structure/curtain,
-/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter{
+/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{
faction = list("brazillian")
},
/obj/effect/turf_decal/corner/opaque/green/border,
@@ -827,7 +827,7 @@
/obj/structure/chair/stool/bar{
dir = 4
},
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body.";
faction = list("brazillian")
},
@@ -895,7 +895,7 @@
},
/area/ruin/unpowered)
"NR" = (
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body.";
faction = list("brazillian")
},
@@ -1070,7 +1070,7 @@
},
/area/ruin/unpowered)
"Ux" = (
-/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter{
+/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{
faction = list("brazillian")
},
/turf/open/floor/plating/grass/jungle{
@@ -1205,7 +1205,7 @@
},
/area/ruin/unpowered)
"Yy" = (
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body.";
faction = list("brazillian")
},
diff --git a/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm b/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm
index 83f661365941..2b04f2a3edb1 100644
--- a/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm
+++ b/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm
@@ -7195,7 +7195,7 @@
/turf/open/floor/plating/rust,
/area/ruin/jungle/starport)
"WR" = (
-/obj/machinery/computer/communications{
+/obj/structure/frame/computer{
dir = 4
},
/turf/open/floor/mineral/plastitanium/red,
diff --git a/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm b/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm
index 928318c23ffe..2f671753e72c 100644
--- a/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm
+++ b/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm
@@ -368,7 +368,7 @@
/turf/open/floor/plasteel,
/area/ruin/jungle/cavecrew/hallway)
"ei" = (
-/obj/machinery/computer/communications{
+/obj/structure/frame/computer{
dir = 8
},
/obj/effect/turf_decal/techfloor{
@@ -658,7 +658,7 @@
dir = 4;
name = "tactical swivel chair"
},
-/mob/living/simple_animal/hostile/frontier/ranged/officer/neutured,
+/mob/living/simple_animal/hostile/human/frontier/ranged/officer/neutured,
/turf/open/floor/plasteel/dark,
/area/ruin/jungle/cavecrew/bridge)
"iE" = (
@@ -1342,7 +1342,7 @@
/obj/structure/cable{
icon_state = "1-8"
},
-/mob/living/simple_animal/hostile/frontier/ranged/trooper/heavy/neutered,
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/heavy/neutered,
/turf/open/floor/plasteel/patterned/brushed,
/area/ruin/jungle/cavecrew/security)
"pB" = (
@@ -1432,7 +1432,7 @@
/area/ruin/jungle/cavecrew/hallway)
"rN" = (
/obj/effect/decal/cleanable/dirt/dust,
-/mob/living/simple_animal/hostile/frontier/ranged/trooper/neutered,
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/neutered,
/turf/open/floor/plating/dirt/old,
/area/ruin/powered)
"rQ" = (
@@ -1832,7 +1832,7 @@
/obj/structure/railing/corner{
dir = 8
},
-/mob/living/simple_animal/hostile/frontier/ranged/trooper/skm/neutured,
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/skm/neutured,
/turf/open/floor/plasteel/stairs{
dir = 1
},
@@ -2354,7 +2354,7 @@
/obj/effect/turf_decal/spline/fancy/opaque/black{
dir = 8
},
-/mob/living/simple_animal/hostile/frontier/ranged/neutered,
+/mob/living/simple_animal/hostile/human/frontier/ranged/neutered,
/turf/open/floor/plasteel,
/area/ruin/jungle/cavecrew/hallway)
"CN" = (
@@ -2365,7 +2365,7 @@
dir = 9
},
/obj/effect/decal/cleanable/dirt/dust,
-/mob/living/simple_animal/hostile/frontier,
+/mob/living/simple_animal/hostile/human/frontier,
/obj/structure/cable{
icon_state = "4-8"
},
@@ -2570,7 +2570,7 @@
/turf/open/floor/plating/dirt/jungle,
/area/overmap_encounter/planetoid/cave/explored)
"Fw" = (
-/mob/living/simple_animal/hostile/frontier/ranged/mosin/neutered,
+/mob/living/simple_animal/hostile/human/frontier/ranged/mosin/neutered,
/turf/open/floor/plating/dirt/jungle,
/area/ruin/powered)
"Fy" = (
@@ -2797,7 +2797,7 @@
dir = 4;
layer = 3.1
},
-/mob/living/simple_animal/hostile/frontier/ranged/neutered,
+/mob/living/simple_animal/hostile/human/frontier/ranged/neutered,
/turf/open/water/jungle,
/area/ruin/jungle/cavecrew/cargo)
"II" = (
@@ -3208,7 +3208,7 @@
/obj/structure/cable{
icon_state = "2-5"
},
-/mob/living/simple_animal/hostile/frontier/ranged/trooper/rifle/neutered,
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/rifle/neutered,
/turf/open/floor/plasteel,
/area/ruin/jungle/cavecrew/hallway)
"MW" = (
@@ -3391,7 +3391,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/mob/living/simple_animal/hostile/frontier/ranged/neutered,
+/mob/living/simple_animal/hostile/human/frontier/ranged/neutered,
/turf/open/floor/plating,
/area/ruin/powered)
"Pg" = (
@@ -4092,7 +4092,7 @@
/turf/open/floor/plating/dirt/jungle,
/area/ruin/powered)
"Xx" = (
-/mob/living/simple_animal/hostile/frontier/ranged/mosin/neutered,
+/mob/living/simple_animal/hostile/human/frontier/ranged/mosin/neutered,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/tech,
/area/ship/storage)
diff --git a/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm b/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm
index 0f68c7b7ebd9..e8f075b9005d 100644
--- a/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm
+++ b/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm
@@ -22,7 +22,7 @@
/obj/effect/turf_decal/industrial/warning{
dir = 6
},
-/mob/living/simple_animal/hostile/zombie,
+/mob/living/simple_animal/hostile/human/zombie,
/turf/open/floor/plasteel/white,
/area/ship/science)
"aM" = (
@@ -234,7 +234,7 @@
/area/ship/engineering/electrical)
"fe" = (
/obj/effect/decal/cleanable/dirt/dust,
-/mob/living/simple_animal/hostile/zombie{
+/mob/living/simple_animal/hostile/human/zombie{
zombiejob = "Geneticist"
},
/turf/open/floor/plasteel/tech/techmaint,
@@ -511,7 +511,7 @@
dir = 1
},
/obj/effect/gibspawner/human,
-/mob/living/simple_animal/hostile/zombie{
+/mob/living/simple_animal/hostile/human/zombie{
zombiejob = "Janitor"
},
/turf/open/floor/plasteel/dark,
@@ -542,7 +542,7 @@
"jL" = (
/obj/structure/chair/comfy/orange/directional/north,
/obj/effect/decal/cleanable/dirt/dust,
-/mob/living/simple_animal/hostile/zombie{
+/mob/living/simple_animal/hostile/human/zombie{
name = "Zombiefied Facility Director";
zombiejob = "Research Director"
},
@@ -1113,7 +1113,7 @@
/area/ship/medical)
"rf" = (
/obj/effect/turf_decal/corner/opaque/orange/full,
-/mob/living/simple_animal/hostile/zombie,
+/mob/living/simple_animal/hostile/human/zombie,
/turf/open/floor/plasteel/white,
/area/ship/science/storage)
"ro" = (
@@ -1281,14 +1281,14 @@
/turf/open/floor/plating,
/area/ship/science/storage)
"uT" = (
-/mob/living/simple_animal/hostile/zombie,
+/mob/living/simple_animal/hostile/human/zombie,
/turf/open/floor/plating,
/area/ship/medical)
"ve" = (
/obj/effect/turf_decal/industrial/warning{
dir = 10
},
-/mob/living/simple_animal/hostile/zombie,
+/mob/living/simple_animal/hostile/human/zombie,
/turf/open/floor/plasteel/white,
/area/ship/science)
"vf" = (
@@ -1308,7 +1308,7 @@
dir = 10
},
/obj/machinery/light/directional/south,
-/mob/living/simple_animal/hostile/zombie,
+/mob/living/simple_animal/hostile/human/zombie,
/turf/open/floor/plasteel/white,
/area/ship/medical)
"vu" = (
@@ -1679,7 +1679,7 @@
pixel_x = -13;
pixel_y = -6
},
-/mob/living/simple_animal/hostile/zombie,
+/mob/living/simple_animal/hostile/human/zombie,
/turf/open/floor/plasteel/tech,
/area/ship/crew/office)
"Bh" = (
@@ -1743,7 +1743,7 @@
/turf/open/floor/plasteel/white,
/area/ship/science/storage)
"Cg" = (
-/mob/living/simple_animal/hostile/zombie{
+/mob/living/simple_animal/hostile/human/zombie{
zombiejob = "Assistant"
},
/obj/item/rack_parts,
@@ -2208,7 +2208,7 @@
/turf/open/floor/plasteel/tech,
/area/ship/science)
"Jx" = (
-/mob/living/simple_animal/hostile/zombie{
+/mob/living/simple_animal/hostile/human/zombie{
zombiejob = "Chemist"
},
/turf/open/floor/plasteel/white,
@@ -2411,7 +2411,7 @@
pixel_x = 4;
pixel_y = -13
},
-/mob/living/simple_animal/hostile/zombie{
+/mob/living/simple_animal/hostile/human/zombie{
zombiejob = "Assistant"
},
/turf/open/floor/plasteel/dark,
@@ -3069,7 +3069,7 @@
dir = 5
},
/obj/effect/decal/cleanable/dirt/dust,
-/mob/living/simple_animal/hostile/zombie{
+/mob/living/simple_animal/hostile/human/zombie{
zombiejob = "Assistant"
},
/turf/open/floor/plasteel/white,
diff --git a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm b/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm
index bc462784bca8..9457e639c5ce 100644
--- a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm
+++ b/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm
@@ -1711,7 +1711,7 @@
/turf/open/floor/mineral/titanium/white,
/area/overmap_encounter/planetoid/cave/explored)
"kk" = (
-/obj/machinery/computer/communications{
+/obj/structure/frame/computer{
dir = 4
},
/turf/open/floor/mineral/titanium/blue,
diff --git a/_maps/RandomRuins/JungleRuins/jungle_pirate.dmm b/_maps/RandomRuins/JungleRuins/jungle_pirate.dmm
index 83f17d9f7026..739244a8b282 100644
--- a/_maps/RandomRuins/JungleRuins/jungle_pirate.dmm
+++ b/_maps/RandomRuins/JungleRuins/jungle_pirate.dmm
@@ -124,7 +124,7 @@
/obj/structure/railing{
dir = 4
},
-/mob/living/simple_animal/hostile/pirate/ranged,
+/mob/living/simple_animal/hostile/human/pirate/ranged,
/turf/open/floor/wood,
/area/ruin/unpowered)
"qL" = (
@@ -209,11 +209,11 @@
/turf/open/floor/wood,
/area/ruin/unpowered)
"DH" = (
-/mob/living/simple_animal/hostile/pirate/ranged/space,
+/mob/living/simple_animal/hostile/human/pirate/ranged/space,
/turf/open/floor/carpet/red,
/area/ruin/unpowered)
"DS" = (
-/mob/living/simple_animal/hostile/pirate/ranged,
+/mob/living/simple_animal/hostile/human/pirate/ranged,
/turf/open/floor/wood,
/area/overmap_encounter/planetoid/jungle/explored)
"DV" = (
@@ -270,7 +270,7 @@
/turf/open/floor/wood,
/area/ruin/unpowered)
"LT" = (
-/mob/living/simple_animal/hostile/pirate/melee,
+/mob/living/simple_animal/hostile/human/pirate/melee,
/obj/structure/chair/wood,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood,
@@ -355,7 +355,7 @@
/turf/open/floor/plating/dirt/jungle/lit,
/area/overmap_encounter/planetoid/jungle/explored)
"UX" = (
-/mob/living/simple_animal/hostile/pirate/melee,
+/mob/living/simple_animal/hostile/human/pirate/melee,
/turf/open/floor/wood,
/area/ruin/unpowered)
"Vf" = (
@@ -391,7 +391,7 @@
/turf/open/floor/carpet/red,
/area/ruin/unpowered)
"XA" = (
-/mob/living/simple_animal/hostile/pirate/melee,
+/mob/living/simple_animal/hostile/human/pirate/melee,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood,
/area/ruin/unpowered)
diff --git a/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm b/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm
index ebd333289382..4ecf5ee382b1 100644
--- a/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm
+++ b/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm
@@ -123,7 +123,7 @@
/turf/open/floor/plating/rust,
/area/ruin/jungle/syndifort)
"ef" = (
-/mob/living/simple_animal/hostile/syndicate{
+/mob/living/simple_animal/hostile/human/syndicate{
desc = "God dammit Jerry! Why the fuck are you barricading yourself in with all of our weapon supplies?";
name = "Jerry";
unsuitable_atmos_damage = 0
@@ -180,7 +180,7 @@
/turf/open/floor/plating/grass/jungle/lit,
/area/overmap_encounter/planetoid/jungle/explored)
"fS" = (
-/mob/living/simple_animal/hostile/syndicate{
+/mob/living/simple_animal/hostile/human/syndicate{
unsuitable_atmos_damage = 0
},
/obj/effect/decal/cleanable/dirt/dust,
@@ -533,7 +533,7 @@
/turf/open/floor/mineral/plastitanium/red,
/area/ruin/jungle/syndifort)
"rg" = (
-/mob/living/simple_animal/hostile/syndicate/space,
+/mob/living/simple_animal/hostile/human/syndicate/space,
/obj/structure/cable{
icon_state = "1-2"
},
@@ -1102,7 +1102,7 @@
/area/overmap_encounter/planetoid/jungle/explored)
"HR" = (
/obj/structure/chair/plastic,
-/mob/living/simple_animal/hostile/syndicate/ranged{
+/mob/living/simple_animal/hostile/human/syndicate/ranged{
unsuitable_atmos_damage = 0
},
/turf/open/floor/plating/dirt/jungle/lit,
@@ -1365,7 +1365,7 @@
/area/ruin/jungle/syndifort)
"Qs" = (
/obj/structure/cable,
-/mob/living/simple_animal/hostile/syndicate{
+/mob/living/simple_animal/hostile/human/syndicate{
unsuitable_atmos_damage = 0
},
/obj/machinery/light/directional/north,
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_ashwalker_shrine.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_ashwalker_shrine.dmm
index 5001fd7a1831..b3d7e439a805 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_ashwalker_shrine.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_ashwalker_shrine.dmm
@@ -394,7 +394,7 @@
/turf/open/floor/plating/ashplanet/ash,
/area/overmap_encounter/planetoid/lava/explored)
"pJ" = (
-/mob/living/simple_animal/hostile/nanotrasen/ranged/smg,
+/mob/living/simple_animal/hostile/human/nanotrasen/ranged/smg,
/turf/open/floor/wood,
/area/overmap_encounter/planetoid/lava/explored)
"pT" = (
@@ -645,7 +645,7 @@
/area/overmap_encounter/planetoid/lava/explored)
"yJ" = (
/obj/structure/stone_tile/slab,
-/mob/living/simple_animal/hostile/nanotrasen/ranged/assault,
+/mob/living/simple_animal/hostile/human/nanotrasen/ranged/assault,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/overmap_encounter/planetoid/lava/explored)
"zG" = (
@@ -1064,7 +1064,7 @@
/area/overmap_encounter/planetoid/lava/explored)
"Ty" = (
/obj/structure/stone_tile/slab/cracked,
-/mob/living/simple_animal/hostile/nanotrasen/ranged,
+/mob/living/simple_animal/hostile/human/nanotrasen/ranged,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/overmap_encounter/planetoid/lava/explored)
"TX" = (
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_comm_outpost.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_comm_outpost.dmm
index 91b482df849f..44988210b7e4 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_comm_outpost.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_comm_outpost.dmm
@@ -211,7 +211,7 @@
},
/area/ruin/unpowered/syndicate_outpost)
"Ts" = (
-/mob/living/simple_animal/hostile/syndicate/ranged{
+/mob/living/simple_animal/hostile/human/syndicate/ranged{
dir = 8;
health = 125;
name = "Syndicate Radio Operative"
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm b/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm
index 505ae3600d31..b837eff979f7 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm
+++ b/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm
@@ -35,7 +35,7 @@
/turf/open/floor/plastic,
/area/ruin/rockplanet/nanotrasen)
"aQ" = (
-/mob/living/simple_animal/hostile/nanotrasen,
+/mob/living/simple_animal/hostile/human/nanotrasen,
/obj/machinery/door/firedoor,
/obj/effect/turf_decal/siding/white{
dir = 1
@@ -339,7 +339,7 @@
/turf/open/floor/engine,
/area/ruin/rockplanet/nanotrasen)
"ff" = (
-/mob/living/simple_animal/hostile/nanotrasen/ranged/smg,
+/mob/living/simple_animal/hostile/human/nanotrasen/ranged/smg,
/obj/effect/turf_decal/siding/white{
dir = 4
},
@@ -1347,7 +1347,7 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/oil,
/obj/machinery/light/small/broken/directional/north,
-/mob/living/simple_animal/hostile/pirate/ranged/space,
+/mob/living/simple_animal/hostile/human/pirate/ranged/space,
/turf/open/floor/plating,
/area/ruin/rockplanet/nanotrasen)
"vz" = (
@@ -1462,7 +1462,7 @@
/obj/effect/turf_decal/siding/wood{
dir = 4
},
-/mob/living/simple_animal/hostile/nanotrasen,
+/mob/living/simple_animal/hostile/human/nanotrasen,
/turf/open/floor/wood{
icon_state = "wood-broken7"
},
@@ -1728,7 +1728,7 @@
/turf/open/floor/plasteel/white,
/area/ruin/rockplanet/nanotrasen)
"CJ" = (
-/mob/living/simple_animal/hostile/pirate/melee/space,
+/mob/living/simple_animal/hostile/human/pirate/melee/space,
/turf/open/floor/plating{
icon_state = "panelscorched"
},
@@ -1767,7 +1767,7 @@
/turf/open/floor/plasteel,
/area/ruin/rockplanet/nanotrasen)
"Dt" = (
-/mob/living/simple_animal/hostile/pirate/ranged/space,
+/mob/living/simple_animal/hostile/human/pirate/ranged/space,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
/obj/structure/cable{
@@ -2036,7 +2036,7 @@
/obj/effect/turf_decal/corner/opaque/red/border{
dir = 8
},
-/mob/living/simple_animal/hostile/nanotrasen/ranged,
+/mob/living/simple_animal/hostile/human/nanotrasen/ranged,
/turf/open/floor/plasteel/dark,
/area/ruin/rockplanet/nanotrasen)
"Hs" = (
@@ -2069,7 +2069,7 @@
},
/area/ruin/rockplanet/nanotrasen)
"Ie" = (
-/mob/living/simple_animal/hostile/pirate/melee/space,
+/mob/living/simple_animal/hostile/human/pirate/melee/space,
/turf/open/floor/plating{
icon_state = "platingdmg1"
},
@@ -2697,7 +2697,7 @@
/turf/open/floor/plasteel/rockvault,
/area/ruin/rockplanet/nanotrasen)
"Vn" = (
-/mob/living/simple_animal/hostile/nanotrasen/ranged,
+/mob/living/simple_animal/hostile/human/nanotrasen/ranged,
/obj/effect/turf_decal/industrial/warning{
dir = 1
},
@@ -2744,9 +2744,8 @@
/turf/open/floor/plasteel/tech/grid,
/area/ruin/rockplanet/nanotrasen)
"WY" = (
-/obj/machinery/computer/communications{
+/obj/structure/frame/computer{
dir = 1;
- req_access = null
},
/obj/effect/turf_decal/corner/opaque/red/diagonal,
/turf/open/floor/plasteel/tech/techmaint,
@@ -2835,7 +2834,7 @@
/turf/open/floor/plating/dirt/jungle/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"Ze" = (
-/mob/living/simple_animal/hostile/nanotrasen/ranged/smg,
+/mob/living/simple_animal/hostile/human/nanotrasen/ranged/smg,
/obj/effect/turf_decal/corner/transparent/purple/border{
dir = 1
},
@@ -2908,7 +2907,7 @@
/obj/structure/railing{
dir = 8
},
-/mob/living/simple_animal/hostile/nanotrasen/ranged/assault,
+/mob/living/simple_animal/hostile/human/nanotrasen/ranged/assault,
/turf/open/floor/plasteel/dark,
/area/ruin/rockplanet/nanotrasen)
"ZZ" = (
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_dangerpod.dmm b/_maps/RandomRuins/RockRuins/rockplanet_dangerpod.dmm
index dd6bb43fd913..cf91b07b4072 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_dangerpod.dmm
+++ b/_maps/RandomRuins/RockRuins/rockplanet_dangerpod.dmm
@@ -8,7 +8,7 @@
/turf/open/floor/pod/dark,
/area/overmap_encounter/planetoid/rockplanet/explored)
"h" = (
-/mob/living/simple_animal/hostile/skeleton/plasmaminer/jackhammer,
+/mob/living/simple_animal/hostile/human/skeleton/plasmaminer/jackhammer,
/obj/effect/decal/cleanable/blood/old,
/turf/open/floor/pod/dark,
/area/overmap_encounter/planetoid/rockplanet/explored)
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_miningexpedition.dmm b/_maps/RandomRuins/RockRuins/rockplanet_miningexpedition.dmm
index 088015c83b13..83e80f79a4a3 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_miningexpedition.dmm
+++ b/_maps/RandomRuins/RockRuins/rockplanet_miningexpedition.dmm
@@ -114,7 +114,7 @@
/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"sP" = (
-/mob/living/simple_animal/hostile/skeleton/plasmaminer,
+/mob/living/simple_animal/hostile/human/skeleton/plasmaminer,
/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"tN" = (
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_shippingdock.dmm b/_maps/RandomRuins/RockRuins/rockplanet_shippingdock.dmm
new file mode 100644
index 000000000000..f4307cf7a84b
--- /dev/null
+++ b/_maps/RandomRuins/RockRuins/rockplanet_shippingdock.dmm
@@ -0,0 +1,12672 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"ah" = (
+/obj/effect/turf_decal/road,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"aj" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow,
+/obj/effect/decal/cleanable/plasma,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"al" = (
+/obj/structure/railing{
+ dir = 9
+ },
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"aq" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockoffice)
+"au" = (
+/obj/machinery/door/airlock/external,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/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/ruin/rockplanet/shippingdockoffice)
+"aA" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/structure/grille,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"aC" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/restraints/legcuffs/beartrap{
+ armed = 1
+ },
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/rockplanet/shippingdockoffice)
+"aH" = (
+/obj/effect/turf_decal/road/line/opaque/yellow,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"aR" = (
+/obj/effect/turf_decal/road{
+ dir = 1
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "shippingdockwarehouse"
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"aV" = (
+/obj/effect/turf_decal/road/slow{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"aW" = (
+/obj/item/mine/pressure/explosive/live,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"aY" = (
+/obj/effect/turf_decal/road/stripes{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"bb" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 5
+ },
+/obj/item/stack/cable_coil/cut/random,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"bj" = (
+/obj/effect/turf_decal/industrial/outline/red,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/hangar/plasteel/white,
+/area/ruin/rockplanet/shippingdock)
+"bo" = (
+/obj/effect/turf_decal/road{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"bv" = (
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"bA" = (
+/obj/effect/turf_decal/road{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/warning{
+ dir = 1
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"bH" = (
+/obj/structure/toilet{
+ dir = 4
+ },
+/obj/item/newspaper,
+/obj/machinery/light/small/directional/west,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/showroomfloor,
+/area/ruin/rockplanet/shippingdockoffice)
+"bN" = (
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"bT" = (
+/obj/structure/table/wood,
+/obj/item/modular_computer/laptop/preset/civilian,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/shippingdockoffice)
+"bV" = (
+/turf/closed/wall/r_wall,
+/area/ruin/rockplanet/shippingdocksecure)
+"bY" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-9"
+ },
+/obj/effect/decal/cleanable/glass,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"bZ" = (
+/obj/effect/turf_decal/road/line/opaque/yellow{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"ca" = (
+/obj/effect/turf_decal/industrial/outline,
+/turf/open/floor/hangar/plasteel/dark,
+/area/ruin/rockplanet/shippingdock)
+"cb" = (
+/obj/structure/railing{
+ max_integrity = 70
+ },
+/obj/structure/table,
+/obj/item/binoculars,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"cd" = (
+/obj/effect/decal/cleanable/robot_debris/gib,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ce" = (
+/obj/structure/cable/yellow,
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/concrete/reinforced{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"cf" = (
+/obj/effect/turf_decal/road/slow,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ch" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/concrete/slab_2{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ci" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/item/gun/ballistic/automatic/zip_pistol{
+ pixel_x = 15
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"cl" = (
+/obj/machinery/light/broken/directional/west,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"cm" = (
+/obj/effect/decal/cleanable/oil/slippery,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"cn" = (
+/obj/machinery/power/solar,
+/obj/structure/cable/yellow{
+ icon_state = "0-6"
+ },
+/turf/open/floor/concrete/reinforced{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ct" = (
+/obj/structure/table,
+/obj/item/storage/toolbox/mechanical,
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 8
+ },
+/obj/machinery/light/dim/directional/west,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"cv" = (
+/obj/structure/fence/door{
+ dir = 1
+ },
+/obj/structure/barricade/wooden/crude,
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"cw" = (
+/obj/machinery/light/small/directional/east,
+/obj/item/reagent_containers/food/drinks/trophy/gold_cup{
+ pixel_y = 6
+ },
+/obj/structure/table/wood,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/shippingdockoffice)
+"cz" = (
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"cB" = (
+/obj/effect/decal/cleanable/robot_debris/old,
+/obj/effect/decal/cleanable/plasma,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"cI" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/toy/snappop,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"cS" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockoffice)
+"cT" = (
+/obj/effect/turf_decal/road{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/white/filled/line,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"cX" = (
+/obj/effect/turf_decal/road,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"cZ" = (
+/turf/open/floor/hangar/plasteel/dark,
+/area/ruin/rockplanet/shippingdock)
+"db" = (
+/obj/machinery/atmospherics/components/unary/tank/air{
+ piping_layer = 2
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdockoffice)
+"di" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"dv" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/rockplanet/shippingdockoffice)
+"dw" = (
+/obj/structure/girder/reinforced,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"dE" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 1
+ },
+/obj/item/emptysandbag,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"dI" = (
+/obj/structure/table/wood,
+/obj/item/folder,
+/obj/item/pen/fountain,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/shippingdockoffice)
+"dL" = (
+/obj/item/trash/syndi_cakes,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/rockplanet/shippingdockoffice)
+"dR" = (
+/obj/machinery/door/airlock/external,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockoffice)
+"dS" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"ea" = (
+/obj/effect/turf_decal/road{
+ dir = 6
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{
+ dir = 6
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"eb" = (
+/obj/structure/frame/computer/retro{
+ dir = 8
+ },
+/obj/item/stack/ore/salvage/scrapgold,
+/obj/effect/turf_decal/corner/opaque/brown/border{
+ dir = 5
+ },
+/turf/open/floor/mineral/titanium/tiled/white,
+/area/ruin/rockplanet/shippingdock)
+"ee" = (
+/obj/effect/turf_decal/road{
+ dir = 1
+ },
+/obj/item/ammo_casing/spent{
+ pixel_x = 3;
+ pixel_y = -5
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"en" = (
+/turf/closed/wall/r_wall,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"ep" = (
+/obj/effect/turf_decal/box/white/corners{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"es" = (
+/obj/effect/turf_decal/road/line/opaque/yellow{
+ dir = 4
+ },
+/obj/structure/grille,
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"ey" = (
+/obj/effect/turf_decal/industrial/warning/dust,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"eJ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/rockplanet/shippingdockoffice)
+"eL" = (
+/obj/effect/turf_decal/box/white/corners,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"eP" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"eR" = (
+/obj/effect/turf_decal/road,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"eY" = (
+/obj/effect/turf_decal/road,
+/obj/effect/turf_decal/trimline/opaque/white/corner,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"fb" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/mine/pressure/explosive/live,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/shippingdockoffice)
+"fd" = (
+/obj/structure/barricade/wooden,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"fk" = (
+/obj/effect/turf_decal/siding/white,
+/obj/effect/decal/cleanable/wrapping,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"fn" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"fr" = (
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/solgovgold,
+/turf/open/floor/plasteel/mono/white,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"fx" = (
+/obj/effect/turf_decal/road{
+ dir = 6
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"fz" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 4
+ },
+/obj/item/emptysandbag,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"fB" = (
+/obj/machinery/light/dim/directional/north,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdocksecure)
+"fG" = (
+/obj/item/stack/ore/salvage/scraptitanium,
+/obj/effect/turf_decal/industrial/outline,
+/obj/item/wallframe/apc{
+ pixel_y = 19
+ },
+/turf/open/floor/hangar/plasteel/dark,
+/area/ruin/rockplanet/shippingdock)
+"fH" = (
+/mob/living/simple_animal/hostile/netherworld/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"fM" = (
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"fN" = (
+/obj/structure/railing/corner/wood{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/crayon,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"fS" = (
+/obj/structure/railing,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"fT" = (
+/obj/structure/flora/ausbushes/brflowers,
+/turf/open/floor/plating/dirt/rockplanet{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"fV" = (
+/obj/effect/turf_decal/road/line/opaque/yellow{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"gb" = (
+/obj/machinery/suit_storage_unit/industrial,
+/obj/item/clothing/head/helmet/space/eva,
+/obj/item/clothing/under/pants/jeans,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"gc" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"gh" = (
+/obj/machinery/button/door{
+ pixel_y = 24;
+ id = "shippingdockwarehousesouth"
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/ruin/rockplanet/shippingdockwarehouse)
+"gj" = (
+/obj/effect/decal/cleanable/shreds{
+ pixel_y = 10
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating/rockplanet{
+ icon_state = "platingdmg1";
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"gm" = (
+/obj/machinery/power/floodlight{
+ anchored = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"gr" = (
+/obj/effect/turf_decal/trimline/opaque/white/corner{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"gv" = (
+/obj/effect/turf_decal/road{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/sign/warning/firingrange{
+ pixel_x = 32
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"gD" = (
+/obj/structure/frame/machine,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/item/stack/cable_coil/cut/red,
+/obj/item/stack/ore/salvage/scrapgold,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"gF" = (
+/obj/effect/turf_decal/road{
+ dir = 1
+ },
+/obj/structure/barricade/sandbags,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"gG" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"gH" = (
+/obj/structure/closet/crate/grave/loot,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"gN" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/confetti,
+/obj/item/mine/pressure/explosive/rusty/live,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockoffice)
+"gO" = (
+/obj/structure/girder/displaced,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"gR" = (
+/mob/living/simple_animal/hostile/netherworld/migo/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"hb" = (
+/obj/effect/turf_decal/road{
+ dir = 10
+ },
+/obj/effect/turf_decal/road,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"he" = (
+/obj/structure/chair/pew/right{
+ dir = 4
+ },
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"hf" = (
+/obj/effect/decal/cleanable/crayon,
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"hh" = (
+/obj/machinery/door/airlock/external{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockoffice)
+"hi" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/chair/comfy/grey/old/directional/north,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/shippingdockoffice)
+"hm" = (
+/obj/effect/turf_decal/road/stop{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"hp" = (
+/obj/item/candle{
+ pixel_x = -12
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"hr" = (
+/obj/effect/turf_decal/road/line/opaque/yellow{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ht" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"hB" = (
+/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/carpet/nanoweave/beige,
+/area/ruin/rockplanet/shippingdockoffice)
+"hD" = (
+/obj/structure/table,
+/obj/item/radio,
+/obj/machinery/airalarm/directional/east,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockcustoms)
+"hE" = (
+/obj/effect/turf_decal/industrial/outline,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"hG" = (
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"hL" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"hN" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_3{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"hT" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/barricade/sandbags,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"hU" = (
+/obj/effect/decal/cleanable/shreds{
+ pixel_y = 6;
+ pixel_x = -7
+ },
+/turf/open/floor/plating/rockplanet{
+ icon_state = "platingdmg1";
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"hW" = (
+/obj/item/mine/pressure/explosive/live,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"hY" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_3{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ib" = (
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ic" = (
+/obj/item/stack/ore/salvage/scrapmetal,
+/obj/effect/turf_decal/industrial/outline,
+/turf/open/floor/hangar/plasteel/dark,
+/area/ruin/rockplanet/shippingdock)
+"if" = (
+/obj/structure/safe,
+/obj/item/spacecash/bundle/mediumrand,
+/obj/machinery/light/dim/directional/south,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/shippingdocksecure)
+"il" = (
+/obj/structure/table,
+/obj/machinery/computer/secure_data/laptop{
+ dir = 8;
+ pixel_x = 1
+ },
+/obj/machinery/button/door{
+ pixel_y = 24;
+ id = "shippingdockcustoms"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockcustoms)
+"im" = (
+/obj/effect/turf_decal/road{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/white/filled/line{
+ dir = 1
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ir" = (
+/obj/effect/turf_decal/trimline/opaque/white/filled/line{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"iv" = (
+/obj/structure/sign/warning/gasmask{
+ pixel_x = -32
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/item/mine/pressure/explosive/shrapnel/live,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockoffice)
+"iB" = (
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/components/unary/passive_vent,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"iH" = (
+/obj/structure/chair/pew{
+ dir = 8
+ },
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"iK" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 8
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/barricade/sandbags,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"iL" = (
+/obj/effect/turf_decal/road{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/grille,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"iQ" = (
+/obj/machinery/atmospherics/components/unary/tank/air{
+ piping_layer = 2
+ },
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/turf/open/floor/plating/rust{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/ruin/rockplanet/shippingdockoffice)
+"jk" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-6"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-10"
+ },
+/obj/effect/decal/cleanable/glass,
+/obj/item/shard,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ju" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"jv" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/concrete/slab_2{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"jB" = (
+/obj/structure/cable,
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/window/reinforced,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdocksecure)
+"jC" = (
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"jD" = (
+/obj/structure/fence{
+ dir = 4
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"jE" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"jK" = (
+/obj/structure/railing/wood{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/oil/slippery,
+/mob/living/simple_animal/bot/mulebot,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"jQ" = (
+/obj/effect/decal/remains/human,
+/obj/item/ammo_casing/spent{
+ pixel_x = 10;
+ pixel_y = 12
+ },
+/obj/item/ammo_casing/spent{
+ pixel_x = -14;
+ pixel_y = 1
+ },
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/head/beret/cargo{
+ pixel_y = 17
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"jR" = (
+/obj/machinery/power/shuttle/engine/electric/bad{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"jT" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/item/mine/pressure/explosive/fire/live,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockcustoms)
+"jU" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/item/restraints/legcuffs/beartrap{
+ armed = 1
+ },
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"jZ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"kb" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"kf" = (
+/obj/structure/salvageable/machine,
+/obj/structure/sign/departments/cargo{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"ko" = (
+/obj/effect/turf_decal/road{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{
+ dir = 1
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "shippingdockwarehousesouth"
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"kp" = (
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ku" = (
+/obj/structure/door_assembly/door_assembly_public{
+ dir = 8
+ },
+/turf/open/floor/hangar/plasteel/dark,
+/area/ruin/rockplanet/shippingdock)
+"kv" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"kw" = (
+/obj/effect/turf_decal/road/edge{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ky" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 4;
+ id = "shippingdockcustoms"
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"kI" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/green,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/shippingdockoffice)
+"kJ" = (
+/obj/effect/turf_decal/industrial/loading{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/white/corner{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"kV" = (
+/obj/structure/flora/ausbushes/ywflowers,
+/turf/open/floor/plating/dirt/rockplanet{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"kX" = (
+/obj/structure/window/reinforced,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdocksecure)
+"lc" = (
+/obj/effect/turf_decal/road{
+ dir = 4
+ },
+/obj/effect/turf_decal/road{
+ dir = 9
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"le" = (
+/obj/structure/table/wood,
+/obj/item/storage/bag/tray/cafeteria,
+/obj/item/storage/bag/tray/cafeteria{
+ pixel_y = 1
+ },
+/obj/item/storage/bag/tray/cafeteria{
+ pixel_y = 2
+ },
+/obj/item/storage/bag/tray/cafeteria{
+ pixel_y = 3
+ },
+/obj/machinery/light/broken/directional/west,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockoffice)
+"lf" = (
+/obj/structure/cable/yellow{
+ icon_state = "0-6"
+ },
+/obj/machinery/power/tracker,
+/turf/open/floor/concrete/reinforced{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"lg" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"lj" = (
+/obj/effect/turf_decal/industrial/outline/red,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdocksecure)
+"ll" = (
+/obj/structure/fence,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"lo" = (
+/obj/structure/fence/post{
+ dir = 4
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"lp" = (
+/obj/item/stack/ore/salvage/scraptitanium,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"lr" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/concrete/slab_2{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"lu" = (
+/obj/structure/rack,
+/obj/structure/window/reinforced,
+/obj/item/storage/ration/battered_fish_sticks,
+/obj/item/storage/ration/cheese_pizza_slice,
+/turf/open/floor/plasteel/mono/white,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"lw" = (
+/obj/effect/turf_decal/box/white/corners{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/wrapping,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"lB" = (
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"lC" = (
+/obj/effect/turf_decal/corner/opaque/brown/border,
+/obj/item/wallframe/airalarm{
+ pixel_y = -27
+ },
+/turf/open/floor/hangar/plasteel/white,
+/area/ruin/rockplanet/shippingdock)
+"lM" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 4
+ },
+/obj/item/ammo_casing/spent{
+ pixel_x = 10;
+ pixel_y = 12
+ },
+/obj/item/ammo_casing/spent,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"lQ" = (
+/obj/item/stack/ore/salvage/scraptitanium,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"lR" = (
+/obj/effect/turf_decal/industrial/hatch/red,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdocksecure)
+"lT" = (
+/obj/structure/table,
+/obj/item/modular_computer/laptop/preset/civilian,
+/turf/open/floor/carpet/nanoweave/purple,
+/area/ruin/rockplanet/shippingdockoffice)
+"lU" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/mine/pressure/explosive/live,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"lZ" = (
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"mb" = (
+/obj/structure/fence/corner{
+ dir = 8
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"mc" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"md" = (
+/obj/effect/turf_decal/road/line/opaque/yellow{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"mi" = (
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ml" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockcustoms)
+"ms" = (
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{
+ dir = 1
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "shippingdockwarehousesouth"
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"mu" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"mx" = (
+/obj/item/stack/cable_coil/cut/red,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"mC" = (
+/obj/structure/chair/plastic{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"mE" = (
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"mF" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"mI" = (
+/obj/structure/poddoor_assembly,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"mP" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/concrete/slab_2{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"mU" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"mV" = (
+/obj/effect/decal/cleanable/wrapping,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"mY" = (
+/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/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"nh" = (
+/obj/effect/decal/cleanable/vomit/old,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/showroomfloor,
+/area/ruin/rockplanet/shippingdockoffice)
+"nj" = (
+/obj/machinery/door/airlock/grunge{
+ name = "Break Room";
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockoffice)
+"nr" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/door/airlock/public/glass{
+ dir = 4;
+ req_one_access_txt = "52"
+ },
+/turf/open/floor/hangar/plasteel/dark,
+/area/ruin/rockplanet/shippingdock)
+"ns" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 4
+ },
+/obj/item/stack/ore/salvage/scrapsilver,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"ny" = (
+/obj/structure/flora/rock/pile/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"nB" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"nJ" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"nK" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/grille,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"nO" = (
+/obj/structure/table,
+/obj/item/clothing/head/welding,
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"nP" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockcustoms)
+"nR" = (
+/obj/effect/decal/cleanable/crayon,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"nT" = (
+/obj/effect/turf_decal/number/right_zero,
+/obj/effect/turf_decal/number/left_zero,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"nV" = (
+/obj/effect/turf_decal/box/white/corners{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"nW" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/robot_debris/limb,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"nY" = (
+/obj/effect/turf_decal/road{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/light/broken/directional/east,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"nZ" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/chair/sofa/brown/old/directional,
+/turf/open/floor/carpet/nanoweave,
+/area/ruin/rockplanet/shippingdockoffice)
+"ob" = (
+/obj/effect/decal/cleanable/oil/streak,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"of" = (
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"og" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"oi" = (
+/obj/effect/turf_decal/trimline/opaque/white/arrow_cw{
+ dir = 1
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"oj" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"on" = (
+/obj/structure/fence{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-9"
+ },
+/obj/structure/cable{
+ icon_state = "4-10"
+ },
+/turf/open/floor/concrete/slab_2{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"op" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"ou" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/item/ammo_casing/spent{
+ pixel_x = 10;
+ pixel_y = 12
+ },
+/obj/item/ammo_casing/spent{
+ pixel_x = 3;
+ pixel_y = -5
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"oz" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"oC" = (
+/obj/effect/turf_decal/road{
+ dir = 1
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"pe" = (
+/obj/machinery/light/broken/directional/east,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"pi" = (
+/obj/structure/flora/grass/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"pl" = (
+/obj/effect/turf_decal/industrial/stand_clear/white,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"pm" = (
+/obj/effect/turf_decal/industrial/hatch,
+/obj/structure/reagent_dispensers/foamtank,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"po" = (
+/obj/machinery/light/dim/directional/south,
+/obj/structure/safe,
+/obj/item/organ/cyberimp/arm/gun/taser,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/shippingdocksecure)
+"pp" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/mine/proximity/explosive/sting/live,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"pv" = (
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/solar_control{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/ruin/rockplanet/shippingdockoffice)
+"pw" = (
+/obj/structure/flora/ausbushes/fullgrass,
+/turf/open/floor/plating/dirt/rockplanet{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"px" = (
+/obj/item/stack/ore/salvage/scraptitanium,
+/turf/open/floor/hangar/plasteel/dark,
+/area/ruin/rockplanet/shippingdock)
+"py" = (
+/turf/closed/wall/rust,
+/area/ruin/rockplanet/shippingdock)
+"pz" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"pB" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-9"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"pD" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/concrete/slab_3{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"pI" = (
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "shippingdocksecure"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/shippingdocksecure)
+"pS" = (
+/obj/structure/flora/grass/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"pT" = (
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"pV" = (
+/obj/structure/flora/ausbushes/ppflowers,
+/turf/open/floor/plating/dirt/rockplanet{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"pX" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/glass,
+/obj/machinery/light/small/broken/directional/south,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/mine/pressure/gas/live,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockoffice)
+"pY" = (
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/power/apc/auto_name/directional/west,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"qc" = (
+/obj/machinery/mech_bay_recharge_port,
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"qi" = (
+/obj/effect/turf_decal/industrial/stand_clear{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"qn" = (
+/turf/closed/wall/rust,
+/area/ruin/rockplanet/shippingdockoffice)
+"qo" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"qB" = (
+/turf/open/water/rockplanet{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"qG" = (
+/obj/structure/table,
+/obj/machinery/door/window/brigdoor/eastright{
+ dir = 2
+ },
+/obj/machinery/door/window/northright,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockcustoms)
+"qH" = (
+/obj/effect/turf_decal/road/slow{
+ dir = 1
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"qL" = (
+/obj/structure/cable/yellow,
+/obj/item/solar_assembly,
+/turf/open/floor/concrete/reinforced{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"qM" = (
+/obj/structure/flora/rock/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"qN" = (
+/obj/structure/closet/cardboard,
+/obj/item/stack/circuit_stack/full,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"qR" = (
+/obj/effect/turf_decal/road{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/plasma,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"qU" = (
+/obj/structure/railing{
+ max_integrity = 70;
+ dir = 4
+ },
+/obj/structure/barricade/sandbags,
+/turf/open/floor/plating/rust{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/ruin/rockplanet/shippingdock)
+"qW" = (
+/obj/effect/decal/fakelattice,
+/obj/item/stack/ore/salvage/scrapmetal,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ra" = (
+/obj/structure/fence{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"re" = (
+/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/concrete/slab_2{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"rl" = (
+/obj/effect/decal/cleanable/plasma,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"rC" = (
+/obj/item/stack/cable_coil/cut/random,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"rD" = (
+/obj/effect/turf_decal/industrial/hatch/red,
+/obj/structure/closet/crate/secure/gear{
+ req_one_access_txt = "53"
+ },
+/obj/item/ammo_box/magazine/tec9,
+/obj/item/ammo_box/magazine/tec9,
+/obj/item/gun/ballistic/automatic/pistol/tec9,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdocksecure)
+"rK" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/sign/warning/gasmask{
+ pixel_y = 32
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/restraints/legcuffs/beartrap{
+ armed = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockoffice)
+"rN" = (
+/obj/effect/turf_decal/trimline/opaque/white/arrow_ccw,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"rO" = (
+/obj/machinery/door/airlock/grunge{
+ name = "Manager's Office"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/shippingdockoffice)
+"rS" = (
+/obj/machinery/light/broken/directional/west,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"rV" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow,
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/item/restraints/legcuffs/beartrap{
+ armed = 1
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"rY" = (
+/obj/machinery/door/airlock/grunge{
+ name = "Cargo Checkpoint"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockcustoms)
+"sa" = (
+/obj/effect/turf_decal/rechargefloor,
+/obj/effect/turf_decal/industrial/warning/dust,
+/obj/effect/spawner/lootdrop/whiteship_cere_ripley,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"sc" = (
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"se" = (
+/obj/effect/turf_decal/trimline/opaque/white/arrow_cw{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"sf" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/mine/proximity/explosive/sting/live,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"sl" = (
+/obj/structure/railing/wood{
+ dir = 1
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"sp" = (
+/obj/item/stack/rods,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"sq" = (
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"st" = (
+/mob/living/simple_animal/hostile/netherworld/migo/asteroid,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"su" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"sx" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"sz" = (
+/obj/machinery/door/airlock/external{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockoffice)
+"sC" = (
+/obj/effect/turf_decal/road{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/wrapping,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"sL" = (
+/obj/machinery/button/door{
+ dir = 4;
+ pixel_x = -24;
+ id = "shippingdocksecure"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdocksecure)
+"sO" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/snacks/donut/choco,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/nanoweave,
+/area/ruin/rockplanet/shippingdockoffice)
+"sP" = (
+/obj/structure/rack,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/item/key,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"sS" = (
+/obj/effect/turf_decal/number/left_zero,
+/obj/effect/turf_decal/number/right_one,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"sU" = (
+/obj/effect/turf_decal/trimline/opaque/white/warning{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"sX" = (
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/item/shard,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"sY" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"tb" = (
+/obj/effect/turf_decal/road/slow,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"tg" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-9"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ti" = (
+/obj/effect/decal/cleanable/shreds,
+/obj/effect/decal/cleanable/plasma,
+/turf/open/floor/plating/rockplanet{
+ icon_state = "platingdmg2";
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"tn" = (
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/obj/structure/closet/crate/solarpanel_small,
+/obj/item/clothing/gloves/color/fyellow,
+/obj/item/clothing/gloves/color/fyellow,
+/obj/item/clothing/gloves/color/yellow,
+/obj/item/clothing/gloves/color/fyellow/old,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"to" = (
+/obj/effect/turf_decal/road/edge{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/robot_debris/down,
+/obj/effect/decal/cleanable/plasma,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"tp" = (
+/obj/item/pipe{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"tq" = (
+/obj/effect/turf_decal/road{
+ dir = 10
+ },
+/obj/structure/railing{
+ dir = 10
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"tr" = (
+/obj/effect/turf_decal/industrial/warning/dust/corner{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"tv" = (
+/obj/effect/turf_decal/industrial/loading{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/white/corner{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"tx" = (
+/turf/open/floor/plasteel/stairs/right{
+ dir = 1
+ },
+/area/ruin/rockplanet/shippingdock)
+"tz" = (
+/obj/structure/closet/crate/large,
+/obj/item/stack/sheet/mineral/sandstone/thirty,
+/obj/item/storage/box/emptysandbags,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"tC" = (
+/obj/effect/turf_decal/road/line/opaque/yellow{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"tL" = (
+/obj/item/mine/pressure/explosive/rusty/live,
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"tM" = (
+/obj/item/stack/ore/salvage/scraptitanium,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"tN" = (
+/obj/structure/girder/reinforced,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"tQ" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/hangar/plasteel/white,
+/area/ruin/rockplanet/shippingdock)
+"tR" = (
+/obj/structure/barricade/sandbags,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"tX" = (
+/obj/structure/cable{
+ icon_state = "2-5"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_3{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"tY" = (
+/obj/effect/decal/cleanable/glass,
+/obj/item/shard,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ud" = (
+/obj/effect/turf_decal/road{
+ dir = 10
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ue" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/machinery/airalarm/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/shippingdockoffice)
+"ui" = (
+/obj/effect/turf_decal/road{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ul" = (
+/obj/structure/rack,
+/obj/structure/window/reinforced,
+/obj/item/toy/plush/moth/firewatch,
+/obj/item/toy/plush/lizardplushie,
+/obj/item/toy/plush/knight,
+/obj/item/toy/prize/mauler,
+/obj/item/toy/talking/AI,
+/turf/open/floor/plasteel/mono/white,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"um" = (
+/turf/closed/wall,
+/area/ruin/rockplanet/shippingdockoffice)
+"uo" = (
+/obj/structure/closet/crate/trashcart,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/item/trash/can,
+/obj/item/trash/can/food/peaches,
+/obj/item/trash/tray,
+/obj/item/storage/bag/trash,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"uq" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-9"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ut" = (
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"ux" = (
+/obj/machinery/door/airlock/external,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockoffice)
+"uF" = (
+/obj/effect/decal/cleanable/shreds,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/nanoweave,
+/area/ruin/rockplanet/shippingdockoffice)
+"uP" = (
+/obj/item/wirecutters{
+ pixel_y = 17
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"uQ" = (
+/obj/structure/marker_beacon,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"uT" = (
+/obj/structure/sign/warning/nosmoking/circle{
+ pixel_y = 24
+ },
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"uW" = (
+/obj/structure/cable/yellow{
+ icon_state = "0-9"
+ },
+/obj/machinery/power/solar,
+/turf/open/floor/concrete/reinforced{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"uZ" = (
+/obj/structure/cable/yellow{
+ icon_state = "0-6"
+ },
+/obj/item/solar_assembly,
+/turf/open/floor/concrete/reinforced{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"va" = (
+/obj/effect/turf_decal/road{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/garbage,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ve" = (
+/obj/effect/turf_decal/road/line/opaque/yellow{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"vi" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/effect/decal/cleanable/glass,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockoffice)
+"vj" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/rockplanet/shippingdockoffice)
+"vs" = (
+/obj/effect/turf_decal/corner/opaque/brown/border,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/hangar/plasteel/white,
+/area/ruin/rockplanet/shippingdock)
+"vt" = (
+/obj/effect/turf_decal/road{
+ dir = 5
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"vz" = (
+/turf/closed/wall,
+/area/ruin/rockplanet/shippingdockcustoms)
+"vD" = (
+/obj/item/ammo_box/magazine/zip_ammo_9mm{
+ pixel_x = 5;
+ pixel_y = 12
+ },
+/obj/item/ammo_casing/spent{
+ pixel_x = 3;
+ pixel_y = -5
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"vG" = (
+/obj/effect/turf_decal/industrial/stand_clear/white,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"vM" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_2{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"vP" = (
+/obj/machinery/door/airlock/security{
+ name = "Secure Storage";
+ req_one_access_txt = "53"
+ },
+/obj/effect/mapping_helpers/airlock/locked,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdocksecure)
+"vR" = (
+/obj/structure/fence{
+ dir = 1
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"vS" = (
+/obj/structure/chair/pew/left{
+ dir = 4
+ },
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"vV" = (
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"wb" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"wf" = (
+/mob/living/simple_animal/hostile/netherworld/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"wj" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "shippingdockfront"
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdockcustoms)
+"wo" = (
+/obj/structure/girder,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"wp" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/concrete/slab_3{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"wq" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ws" = (
+/obj/effect/decal/cleanable/food/flour,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockoffice)
+"wu" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"wv" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"wy" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"wB" = (
+/obj/effect/turf_decal/road{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"wE" = (
+/obj/effect/turf_decal/trimline/opaque/white/corner{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"wH" = (
+/obj/structure/cable/yellow,
+/obj/machinery/power/tracker,
+/turf/open/floor/concrete/reinforced{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"wM" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"wN" = (
+/obj/effect/turf_decal/road{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/warning,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"wO" = (
+/obj/effect/turf_decal/number/left_one,
+/obj/effect/turf_decal/number/right_zero,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"wP" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockoffice)
+"wX" = (
+/obj/effect/turf_decal/trimline/opaque/white/arrow_ccw,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"wY" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"xc" = (
+/obj/effect/turf_decal/trimline/opaque/white/warning,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"xd" = (
+/obj/effect/turf_decal/corner/opaque/brown/border{
+ dir = 1
+ },
+/turf/open/floor/hangar/plasteel/white,
+/area/ruin/rockplanet/shippingdock)
+"xe" = (
+/obj/item/trash/semki,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/nanoweave/purple,
+/area/ruin/rockplanet/shippingdockoffice)
+"xf" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"xh" = (
+/obj/structure/sign/warning/electricshock{
+ pixel_y = 26
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"xi" = (
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"xl" = (
+/obj/effect/turf_decal/industrial/stand_clear/red,
+/mob/living/simple_animal/bot/secbot/ed209/rockplanet,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdocksecure)
+"xn" = (
+/obj/effect/turf_decal/road,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"xo" = (
+/obj/effect/turf_decal/road{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{
+ dir = 5
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"xv" = (
+/obj/item/toy/crayon/spraycan,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"xx" = (
+/obj/item/stack/ore/salvage/scrapmetal,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/hangar/plasteel/white,
+/area/ruin/rockplanet/shippingdock)
+"xy" = (
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockcustoms)
+"xC" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/nanoweave/purple,
+/area/ruin/rockplanet/shippingdockoffice)
+"xF" = (
+/obj/effect/turf_decal/road/edge{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"xQ" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 1
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"xR" = (
+/obj/effect/turf_decal/industrial/loading{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/white/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"xS" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"xT" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"xY" = (
+/obj/structure/barricade/wooden,
+/obj/effect/decal/cleanable/oil/streak,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"xZ" = (
+/obj/structure/flora/rock/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"yc" = (
+/obj/structure/chair/pew/right{
+ dir = 8
+ },
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"yf" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"yj" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-9"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"yl" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-9"
+ },
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ys" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"yx" = (
+/obj/effect/decal/cleanable/robot_debris/old,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"yH" = (
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/obj/structure/reagent_dispensers/watertank/high,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"yJ" = (
+/obj/effect/turf_decal/industrial/warning/dust/corner,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"yN" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdockoffice)
+"yO" = (
+/obj/structure/frame/machine,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/item/stack/ore/salvage/scrapgold,
+/obj/item/stock_parts/cell/empty,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"yT" = (
+/obj/effect/turf_decal/road/line/opaque/yellow{
+ dir = 1
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"yV" = (
+/obj/effect/turf_decal/road/edge{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"yW" = (
+/obj/structure/railing{
+ dir = 6
+ },
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"yX" = (
+/obj/structure/cable/yellow{
+ icon_state = "0-5"
+ },
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/concrete/reinforced{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"zd" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/nanoweave,
+/area/ruin/rockplanet/shippingdockoffice)
+"zf" = (
+/obj/structure/cable/yellow{
+ icon_state = "0-6"
+ },
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/concrete/reinforced{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"zg" = (
+/obj/machinery/door/airlock/public/glass{
+ dir = 4
+ },
+/turf/open/floor/hangar/plasteel/dark,
+/area/ruin/rockplanet/shippingdock)
+"zm" = (
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/effect/supplypod_rubble,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"zv" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/garbage,
+/turf/open/floor/plating/rust{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/ruin/rockplanet/shippingdockoffice)
+"zy" = (
+/obj/machinery/door/airlock/freezer{
+ dir = 4;
+ name = "Bathroom"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/showroomfloor,
+/area/ruin/rockplanet/shippingdockoffice)
+"zz" = (
+/obj/effect/decal/cleanable/wrapping,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"zD" = (
+/obj/structure/fence,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"zE" = (
+/obj/item/stack/ore/salvage/scrapmetal,
+/obj/effect/turf_decal/industrial/stand_clear{
+ dir = 1
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"zH" = (
+/obj/effect/turf_decal/road{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"zK" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_2{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"zL" = (
+/obj/structure/frame/machine,
+/obj/item/stack/ore/salvage/scrapmetal,
+/obj/item/stack/ore/salvage/scrapplasma,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"zM" = (
+/turf/closed/wall/rust,
+/area/ruin/rockplanet/shippingdockcustoms)
+"zS" = (
+/obj/effect/turf_decal/industrial/outline,
+/obj/structure/closet/cardboard,
+/obj/item/tank/internals/oxygen/yellow,
+/obj/item/tank/internals/oxygen/yellow,
+/obj/item/clothing/mask/gas/atmos,
+/obj/item/clothing/mask/gas/atmos,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"zT" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/brown/border,
+/obj/effect/decal/cleanable/dirt/dust,
+/mob/living/simple_animal/pet/mothroach,
+/turf/open/floor/mineral/titanium/tiled/white,
+/area/ruin/rockplanet/shippingdock)
+"zU" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"zV" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/rockplanet/shippingdockoffice)
+"zX" = (
+/obj/structure/flora/tree/cactus,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Aa" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/robot_debris/limb,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ai" = (
+/obj/item/stack/ore/salvage/scrapmetal,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Aq" = (
+/obj/effect/turf_decal/road{
+ dir = 5
+ },
+/obj/structure/railing{
+ dir = 5
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Av" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 1
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"AE" = (
+/obj/structure/rack,
+/obj/structure/window/reinforced,
+/obj/item/toy/plush/blahaj,
+/obj/item/toy/plush/goatplushie,
+/obj/item/toy/plush/nukeplushie,
+/obj/item/toy/prize/phazon,
+/obj/item/toy/windupToolbox,
+/turf/open/floor/plasteel/mono/white,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"AG" = (
+/obj/effect/turf_decal/road{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/white/filled/line,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"AI" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"AJ" = (
+/obj/effect/decal/cleanable/glass,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"AL" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/rockplanet/shippingdockoffice)
+"AQ" = (
+/obj/effect/turf_decal/road/stripes{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"AW" = (
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"Bi" = (
+/obj/structure/cable/yellow{
+ icon_state = "0-6"
+ },
+/obj/item/solar_assembly,
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/concrete/reinforced{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Bl" = (
+/obj/structure/fence/corner{
+ dir = 1
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Bm" = (
+/obj/structure/sign/warning/nosmoking/circle{
+ pixel_y = 24
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Br" = (
+/obj/effect/turf_decal/road/edge{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Bx" = (
+/obj/structure/window/reinforced,
+/obj/effect/turf_decal/trimline/opaque/ntblue,
+/turf/open/floor/plasteel/mono/white,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"By" = (
+/obj/effect/turf_decal/number/left_zero,
+/obj/effect/turf_decal/number/right_zero,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Bz" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/barricade/sandbags,
+/turf/open/floor/plating/rust{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/ruin/rockplanet/shippingdock)
+"BA" = (
+/obj/effect/turf_decal/road/line/opaque/yellow,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"BG" = (
+/obj/effect/turf_decal/road{
+ dir = 1
+ },
+/obj/item/ammo_casing/spent{
+ pixel_x = -14;
+ pixel_y = 1
+ },
+/obj/item/ammo_casing/spent{
+ pixel_x = 3;
+ pixel_y = -5
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"BH" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"BI" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"BJ" = (
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/chair/sofa/brown/old/left,
+/turf/open/floor/carpet/nanoweave,
+/area/ruin/rockplanet/shippingdockoffice)
+"BN" = (
+/obj/effect/turf_decal/road/stop{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"BO" = (
+/obj/effect/turf_decal/road/slow{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ce" = (
+/obj/structure/chair/office{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/nanoweave/purple,
+/area/ruin/rockplanet/shippingdockoffice)
+"Ch" = (
+/obj/structure/flora/tree/cactus,
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Cm" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/wrapping,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Cu" = (
+/obj/structure/closet/crate/large,
+/obj/item/bot_assembly/secbot,
+/obj/item/bot_assembly/secbot,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Cx" = (
+/obj/structure/railing/corner,
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Cy" = (
+/obj/effect/turf_decal/road{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"CE" = (
+/obj/structure/railing/corner/wood{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/garbage,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"CF" = (
+/obj/item/toy/snappop,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"CH" = (
+/obj/structure/fence/post{
+ dir = 8
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"CM" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/candle{
+ pixel_x = 11
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"CN" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockoffice)
+"CO" = (
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/structure/sign/warning/electricshock{
+ pixel_y = 26
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"CT" = (
+/obj/structure/table,
+/obj/item/flashlight/lamp,
+/turf/open/floor/carpet/nanoweave/purple,
+/area/ruin/rockplanet/shippingdockoffice)
+"CV" = (
+/obj/structure/closet/crate/large,
+/obj/item/bot_assembly/floorbot,
+/obj/item/bot_assembly/floorbot,
+/obj/item/bot_assembly/firebot,
+/obj/item/bot_assembly/firebot,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"CW" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_2{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Dv" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Dz" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"DE" = (
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/item/solar_assembly,
+/turf/open/floor/concrete/reinforced{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"DF" = (
+/obj/machinery/light/small/directional/west,
+/obj/structure/rack,
+/obj/item/camera,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockcustoms)
+"DI" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/stack/ore/salvage/scrapmetal,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"DP" = (
+/obj/machinery/light/small/directional/south,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/confetti,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockoffice)
+"DR" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/mine/pressure/explosive/rusty/live,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"DV" = (
+/obj/effect/turf_decal/road,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/mine/pressure/explosive/rusty/live,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Eg" = (
+/obj/machinery/door/window/brigdoor{
+ req_one_access_txt = "53"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdocksecure)
+"Eh" = (
+/obj/structure/railing,
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ei" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ej" = (
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ev" = (
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ew" = (
+/obj/item/stack/ore/salvage/scrapplasma,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"EC" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ED" = (
+/obj/effect/turf_decal/road{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"EE" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/structure/closet/crate/large,
+/obj/machinery/smoke_machine,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"EG" = (
+/obj/structure/closet/secure_closet/freezer,
+/obj/item/storage/cans/sixbeer,
+/obj/item/storage/ration/beef_strips,
+/obj/item/storage/ration/pork_spaghetti,
+/obj/item/storage/ration/beef_goulash,
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockoffice)
+"EL" = (
+/obj/machinery/door/window/eastleft,
+/obj/effect/decal/cleanable/oil/slippery,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"EP" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ER" = (
+/obj/structure/closet/crate,
+/turf/open/floor/hangar/plasteel/dark,
+/area/ruin/rockplanet/shippingdock)
+"EZ" = (
+/obj/effect/decal/fakelattice,
+/obj/item/stack/ore/salvage/scraptitanium,
+/obj/item/crowbar/large,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Fb" = (
+/obj/structure/sign/warning/nosmoking/circle{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Fc" = (
+/obj/effect/turf_decal/industrial/outline,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Fg" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_2{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Fj" = (
+/obj/structure/railing{
+ dir = 5
+ },
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Fn" = (
+/obj/effect/turf_decal/road{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Fs" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/structure/grille,
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ft" = (
+/obj/structure/cable/yellow,
+/obj/effect/decal/cleanable/glass,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/reinforced{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Fv" = (
+/obj/machinery/airalarm/directional/west,
+/obj/effect/decal/cleanable/garbage,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/nanoweave,
+/area/ruin/rockplanet/shippingdockoffice)
+"Fx" = (
+/obj/item/mine/proximity/explosive/sting/live,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"FB" = (
+/obj/effect/turf_decal/industrial/hatch/red,
+/obj/item/reagent_containers/glass/bottle/coniine{
+ name = "bottle";
+ desc = "A small bottle. Contains an unknown liquid."
+ },
+/obj/item/reagent_containers/glass/bottle/chloralhydrate{
+ desc = "A small bottle. Contains an unknown liquid.";
+ name = "bottle"
+ },
+/obj/item/reagent_containers/glass/bottle/atropine{
+ desc = "A small bottle. Contains an unknown liquid.";
+ name = "bottle"
+ },
+/obj/structure/closet/crate/secure/science{
+ req_one_access_txt = "53"
+ },
+/obj/item/reagent_containers/glass/bottle/amanitin{
+ desc = "A small bottle. Contains an unknown liquid.";
+ name = "bottle"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdocksecure)
+"FD" = (
+/obj/effect/turf_decal/road/edge,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"FH" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdocksecure)
+"FK" = (
+/obj/effect/turf_decal/road{
+ dir = 9
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"FM" = (
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/glass,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"FN" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-9"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"FP" = (
+/obj/effect/turf_decal/road{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"FQ" = (
+/obj/structure/table,
+/obj/item/paper_bin,
+/obj/item/pen/fourcolor,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/power/apc/auto_name/directional/west,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockcustoms)
+"FU" = (
+/obj/structure/table/wood,
+/obj/machinery/microwave,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockoffice)
+"FV" = (
+/obj/structure/flora/rock/pile/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"FX" = (
+/obj/effect/decal/cleanable/crayon,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"FZ" = (
+/obj/effect/decal/cleanable/confetti,
+/obj/machinery/light/broken/directional/east,
+/turf/open/floor/carpet/nanoweave,
+/area/ruin/rockplanet/shippingdockoffice)
+"Gg" = (
+/obj/structure/cable/yellow,
+/obj/machinery/power/solar,
+/turf/open/floor/concrete/reinforced{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Gj" = (
+/obj/structure/safe,
+/obj/item/spacecash/bundle/pocketchange,
+/obj/item/spacecash/bundle/c10,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/shippingdocksecure)
+"Gk" = (
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Gr" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Gs" = (
+/obj/effect/turf_decal/road{
+ dir = 1
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Gy" = (
+/obj/effect/turf_decal/road{
+ dir = 6
+ },
+/obj/effect/turf_decal/road/edge{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Gz" = (
+/obj/structure/table/wood,
+/obj/item/storage/fancy/donut_box,
+/turf/open/floor/carpet/nanoweave,
+/area/ruin/rockplanet/shippingdockoffice)
+"GB" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "shippingdocksecure"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/shippingdocksecure)
+"GM" = (
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/bottlegreen,
+/turf/open/floor/plasteel/mono/white,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"GN" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"GO" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"GP" = (
+/turf/template_noop,
+/area/template_noop)
+"GW" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"GZ" = (
+/obj/structure/table,
+/obj/machinery/door/window/brigdoor,
+/obj/machinery/door/window/northleft,
+/obj/item/clipboard,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockcustoms)
+"Hd" = (
+/obj/structure/chair/pew/left{
+ dir = 8
+ },
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Hk" = (
+/turf/open/floor/plasteel/stairs/left{
+ dir = 1
+ },
+/area/ruin/rockplanet/shippingdock)
+"Ho" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/effect/decal/remains/human,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdockoffice)
+"Hx" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{
+ dir = 1
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "shippingdockwarehousesouth"
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"HA" = (
+/obj/structure/fence/corner,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"HB" = (
+/obj/machinery/light/broken/directional/south,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"HI" = (
+/obj/item/weldingtool/old,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/hangar/plasteel/dark,
+/area/ruin/rockplanet/shippingdock)
+"HK" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_3{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"HL" = (
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"HM" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"HN" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 8
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"HP" = (
+/mob/living/simple_animal/hostile/netherworld/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"HV" = (
+/obj/item/mine/pressure/explosive/rusty/live,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"HW" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/concrete/slab_3{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"HY" = (
+/obj/structure/curtain,
+/obj/machinery/shower{
+ pixel_y = 19
+ },
+/obj/structure/window/reinforced/survival_pod,
+/obj/machinery/door/window/survival_pod{
+ dir = 4
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ruin/rockplanet/shippingdockoffice)
+"Ic" = (
+/obj/effect/turf_decal/industrial/stand_clear{
+ dir = 1
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Id" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ig" = (
+/obj/effect/turf_decal/road{
+ dir = 8
+ },
+/obj/item/mine/pressure/explosive/rusty/live,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Il" = (
+/obj/structure/closet/crate,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"Io" = (
+/obj/effect/turf_decal/road{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Iu" = (
+/obj/structure/flora/ash/garden/arid,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Iv" = (
+/obj/structure/railing{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"IE" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/rockplanet/shippingdockoffice)
+"IH" = (
+/obj/effect/decal/cleanable/food/tomato_smudge,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockoffice)
+"IK" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/layer_manifold,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"IS" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"IU" = (
+/obj/item/kirbyplants/random,
+/turf/open/floor/carpet/nanoweave/purple,
+/area/ruin/rockplanet/shippingdockoffice)
+"IV" = (
+/obj/effect/turf_decal/road,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"IY" = (
+/turf/closed/wall/rust,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Jd" = (
+/obj/structure/railing,
+/obj/structure/table,
+/obj/item/radio,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"Jq" = (
+/obj/effect/turf_decal/road{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Ju" = (
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"Jz" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockcustoms)
+"JD" = (
+/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/plasteel/dark,
+/area/ruin/rockplanet/shippingdockcustoms)
+"JE" = (
+/obj/effect/decal/fakelattice,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"JF" = (
+/obj/item/stack/cable_coil/cut/red,
+/obj/item/stack/ore/salvage/scraptitanium,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"JG" = (
+/obj/effect/turf_decal/industrial/hatch,
+/obj/structure/closet/cardboard/metal,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/plasteel/twenty,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"JI" = (
+/obj/structure/chair/plastic,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"JL" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 8
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "shippingdockwarehouse"
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"JO" = (
+/obj/item/clothing/shoes/magboots{
+ name = "charred magboots"
+ },
+/obj/effect/decal/cleanable/shreds{
+ pixel_x = -8;
+ pixel_y = 17
+ },
+/obj/effect/decal/cleanable/shreds{
+ pixel_y = -9;
+ pixel_x = 15
+ },
+/obj/effect/decal/cleanable/plasma,
+/turf/open/floor/plating/rockplanet{
+ icon_state = "platingdmg3";
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"JQ" = (
+/obj/effect/decal/cleanable/garbage,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"JU" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/rockplanet/shippingdockoffice)
+"JZ" = (
+/obj/effect/turf_decal/industrial/warning/dust/corner{
+ dir = 8
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Kc" = (
+/obj/effect/decal/cleanable/shreds{
+ pixel_x = 7;
+ pixel_y = -8
+ },
+/obj/effect/decal/cleanable/shreds{
+ pixel_y = 7
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating/rockplanet{
+ icon_state = "platingdmg2";
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ke" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/rockplanet/shippingdockoffice)
+"Kh" = (
+/obj/structure/flora/ash/garden,
+/turf/open/floor/plating/dirt/rockplanet{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Km" = (
+/obj/structure/fence/cut/medium{
+ dir = 4
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Kq" = (
+/obj/structure/marker_beacon,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Kr" = (
+/obj/effect/turf_decal/industrial/stand_clear,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Ks" = (
+/obj/structure/rack,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/effect/spawner/bundle/costume/marisawizard,
+/turf/open/floor/plasteel/mono/white,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Kt" = (
+/obj/structure/cable{
+ icon_state = "1-6"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_2{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Kx" = (
+/obj/machinery/door/airlock/external,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockcustoms)
+"Kz" = (
+/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp,
+/obj/structure/table,
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"KA" = (
+/turf/open/floor/concrete/slab_3{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"KG" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"KJ" = (
+/obj/item/shard,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"KQ" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 1
+ },
+/obj/item/toy/snappop,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"KR" = (
+/obj/effect/turf_decal/siding/white,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"KS" = (
+/obj/structure/filingcabinet/double,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/shippingdockoffice)
+"Lb" = (
+/obj/item/stack/ore/salvage/scraptitanium,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Lf" = (
+/obj/item/restraints/legcuffs/beartrap{
+ armed = 1
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"Lh" = (
+/obj/structure/fence/corner{
+ dir = 4
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ln" = (
+/obj/effect/turf_decal/number/left_one,
+/obj/effect/turf_decal/number/right_one,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Lq" = (
+/obj/machinery/door/airlock/grunge{
+ name = "Break Room";
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockoffice)
+"Lr" = (
+/obj/effect/turf_decal/industrial/stand_clear,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Ls" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockoffice)
+"Lu" = (
+/obj/effect/turf_decal/road{
+ dir = 1
+ },
+/obj/machinery/button/door{
+ id = "shippingdockwarehousesouth";
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Ly" = (
+/turf/open/floor/plating/rust{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/ruin/rockplanet/shippingdock)
+"LB" = (
+/obj/effect/turf_decal/road{
+ dir = 1
+ },
+/obj/structure/barricade/sandbags,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"LE" = (
+/obj/structure/sign/departments/drop{
+ pixel_x = 32
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"LL" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"LS" = (
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"LW" = (
+/obj/item/stack/ore/salvage/scrapmetal,
+/obj/effect/turf_decal/corner/opaque/brown/border{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/hangar/plasteel/white,
+/area/ruin/rockplanet/shippingdock)
+"LY" = (
+/obj/machinery/door/airlock/external,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockcustoms)
+"Mg" = (
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdocksecure)
+"Mj" = (
+/obj/effect/turf_decal/siding/white,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Mm" = (
+/obj/structure/flora/tree/cactus,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Mt" = (
+/obj/effect/turf_decal/trimline/opaque/white/filled/line{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Mv" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/confetti,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/nanoweave,
+/area/ruin/rockplanet/shippingdockoffice)
+"Mw" = (
+/obj/item/kirbyplants/random,
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/rockplanet/shippingdockoffice)
+"My" = (
+/obj/item/paper/crumpled/muddy{
+ default_raw_text = "# 01010100 01001000 01001001 01010011 00100000 01010011 01010000 01000001 01000011 01000101 00100000 01001001 01001110 01010100 01000101 01001110 01010100 01001001 01001111 01001110 01000001 01001100 01001100 01011001 00100000 01001100 01000101 01000110 01010100 00100000 01000010 01001100 01000001 01001110 01001011"
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Mz" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/rockplanet/shippingdockoffice)
+"MA" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"MG" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/light/small/broken/directional/east,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockoffice)
+"MM" = (
+/obj/effect/turf_decal/industrial/loading{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/white/corner{
+ dir = 1
+ },
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"MO" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/light/small/directional/south,
+/obj/effect/decal/cleanable/glass,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating/rust{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/ruin/rockplanet/shippingdockoffice)
+"MQ" = (
+/turf/closed/wall,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"MX" = (
+/obj/effect/turf_decal/road{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Nb" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/smes/engineering,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Nh" = (
+/obj/item/stack/ore/salvage/scraptitanium,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ni" = (
+/obj/structure/fence/post{
+ dir = 1
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Nj" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/rockplanet/shippingdockoffice)
+"Np" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile/shuttle,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"Nq" = (
+/turf/closed/wall/mineral/titanium,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ns" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Ny" = (
+/obj/structure/girder/reinforced,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"NB" = (
+/obj/machinery/light/dim/directional/north,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"NE" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockcustoms)
+"NH" = (
+/obj/structure/flora/rock/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"NK" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/concrete/slab_2{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"NL" = (
+/obj/structure/chair/pew{
+ dir = 4
+ },
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"NP" = (
+/obj/effect/turf_decal/road{
+ dir = 8
+ },
+/obj/effect/turf_decal/road{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"NQ" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/mine/pressure/explosive/live,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"NR" = (
+/turf/open/floor/concrete/slab_2{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"NT" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"NU" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/item/restraints/legcuffs/beartrap{
+ armed = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockoffice)
+"NY" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 4
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Oa" = (
+/obj/effect/turf_decal/road,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ob" = (
+/obj/effect/turf_decal/road/line/opaque/yellow{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Od" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/shippingdocksecure)
+"Oe" = (
+/obj/effect/turf_decal/road/stripes{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Om" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/grille,
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Ov" = (
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Oz" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockoffice)
+"OG" = (
+/obj/item/pipe{
+ dir = 8
+ },
+/obj/item/wrench/old,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"OI" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"OO" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/grunge{
+ name = "Cargo Checkpoint"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockcustoms)
+"OQ" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"OT" = (
+/obj/effect/turf_decal/industrial/stand_clear,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Pb" = (
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Pc" = (
+/obj/effect/turf_decal/trimline/opaque/white/warning,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Pf" = (
+/obj/machinery/door/airlock/external{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockoffice)
+"Pi" = (
+/obj/item/pickaxe,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Pn" = (
+/obj/structure/fence/cut/large{
+ dir = 8
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Po" = (
+/obj/item/mine/pressure/explosive/rusty/live,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Pp" = (
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/turf/open/floor/concrete/reinforced{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Pr" = (
+/obj/item/stack/ore/salvage/scrapmetal,
+/turf/open/floor/hangar/plasteel/dark,
+/area/ruin/rockplanet/shippingdock)
+"Ps" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/obj/machinery/button/door{
+ pixel_y = 24;
+ id = "shippingdockwarehousesouth"
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Pw" = (
+/obj/machinery/light/dim/directional/east,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/nanoweave/purple,
+/area/ruin/rockplanet/shippingdockoffice)
+"Px" = (
+/obj/effect/turf_decal/road,
+/obj/structure/barricade/sandbags,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Py" = (
+/obj/effect/decal/cleanable/generic,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"PA" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 8
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"PE" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"PM" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 1
+ },
+/obj/item/restraints/legcuffs/beartrap{
+ armed = 1
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"PP" = (
+/turf/closed/wall/r_wall/rust,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"PZ" = (
+/obj/effect/turf_decal/road,
+/obj/effect/turf_decal/trimline/opaque/white/corner{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Qg" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/shippingdockoffice)
+"Qi" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/nanoweave,
+/area/ruin/rockplanet/shippingdockoffice)
+"Qn" = (
+/obj/structure/table,
+/obj/item/flashlight/lamp,
+/obj/machinery/button/door{
+ pixel_y = 24;
+ id = "shippingdockfront"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockcustoms)
+"Qq" = (
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Qr" = (
+/obj/effect/turf_decal/road{
+ dir = 9
+ },
+/obj/effect/turf_decal/road,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Qv" = (
+/obj/machinery/door/airlock/external{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockoffice)
+"Qy" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"QB" = (
+/obj/structure/safe/floor,
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood,
+/obj/item/spacecash/bundle/c500,
+/obj/item/spacecash/bundle/mediumrand,
+/obj/machinery/light/broken/directional/west,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdockoffice)
+"QC" = (
+/obj/structure/closet/cabinet,
+/obj/item/clothing/under/suit/charcoal,
+/obj/item/clothing/suit/toggle/lawyer/charcoal,
+/obj/item/clothing/glasses/sunglasses/big,
+/obj/item/clothing/shoes/laceup,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/shippingdockoffice)
+"QD" = (
+/obj/effect/turf_decal/road,
+/obj/structure/barricade/sandbags,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"QI" = (
+/obj/effect/turf_decal/industrial/outline/red,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/mine/pressure/explosive/rusty/live,
+/turf/open/floor/hangar/plasteel/white,
+/area/ruin/rockplanet/shippingdock)
+"QQ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Rd" = (
+/obj/effect/turf_decal/industrial/stand_clear/red,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdocksecure)
+"Ri" = (
+/obj/structure/flora/grass/rockplanet/dead,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Rl" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/machinery/button/door{
+ pixel_y = 24;
+ id = "shippingdockwarehouse"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Ro" = (
+/obj/item/stack/rods,
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Rp" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/rockplanet/shippingdockoffice)
+"Rq" = (
+/obj/machinery/light/small/directional/west,
+/obj/structure/chair/sofa/brown/old/right,
+/turf/open/floor/carpet/nanoweave,
+/area/ruin/rockplanet/shippingdockoffice)
+"Rw" = (
+/obj/effect/turf_decal/road,
+/obj/effect/decal/cleanable/plasma,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Rz" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"RT" = (
+/obj/machinery/computer/mech_bay_power_console{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"RV" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/garbage,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/rockplanet/shippingdockoffice)
+"RW" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/door/airlock/maintenance_hatch,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdockoffice)
+"Sd" = (
+/obj/effect/turf_decal/road{
+ dir = 6
+ },
+/obj/structure/railing{
+ dir = 6
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Si" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/shippingdockoffice)
+"So" = (
+/obj/effect/turf_decal/trimline/opaque/white/warning{
+ dir = 1
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Sq" = (
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Sr" = (
+/obj/effect/turf_decal/road{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ss" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 8
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Su" = (
+/obj/structure/table,
+/obj/item/folder,
+/obj/machinery/light/broken/directional/south,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/nanoweave/purple,
+/area/ruin/rockplanet/shippingdockoffice)
+"SB" = (
+/mob/living/simple_animal/hostile/netherworld/asteroid,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"SF" = (
+/obj/effect/turf_decal/road{
+ dir = 5
+ },
+/obj/effect/turf_decal/road/edge{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"SI" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/barricade/sandbags,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"SJ" = (
+/obj/structure/rack,
+/obj/structure/window/reinforced,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
+/turf/open/floor/plasteel/mono/white,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"SM" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/concrete/slab_3{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"SO" = (
+/turf/closed/wall/mineral/titanium,
+/area/ruin/rockplanet/shippingdock)
+"SV" = (
+/obj/item/pipe{
+ dir = 8
+ },
+/obj/item/stack/ore/salvage/scrapplasma,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"SX" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/item/mine/proximity/explosive/sting/live,
+/turf/open/floor/concrete/slab_2{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"SY" = (
+/obj/structure/flora/grass/rockplanet/dead,
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"SZ" = (
+/obj/item/stack/ore/salvage/scrapmetal,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"Tc" = (
+/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/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_3{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Td" = (
+/obj/effect/turf_decal/industrial/stand_clear{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Th" = (
+/obj/machinery/door/poddoor/shutters{
+ id = "shippingdockwarehouse"
+ },
+/obj/effect/turf_decal/road,
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Ti" = (
+/obj/effect/turf_decal/industrial/stand_clear,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Tl" = (
+/obj/item/stack/cable_coil/cut/red,
+/obj/item/stock_parts/cell/empty,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"Tv" = (
+/obj/effect/turf_decal/box/corners,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Tw" = (
+/obj/effect/turf_decal/road{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Tx" = (
+/obj/structure/chair/office{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockcustoms)
+"Ty" = (
+/obj/effect/turf_decal/road/line/opaque/yellow{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"TA" = (
+/obj/effect/turf_decal/road/edge{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"TE" = (
+/obj/machinery/button/door{
+ dir = 1;
+ pixel_y = -24;
+ id = "shippingdockwarehouse"
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/ruin/rockplanet/shippingdockwarehouse)
+"TH" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"TW" = (
+/obj/machinery/door/airlock/public/glass{
+ dir = 4;
+ req_one_access_txt = "52"
+ },
+/turf/open/floor/hangar/plasteel/dark,
+/area/ruin/rockplanet/shippingdock)
+"TY" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-9"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ub" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ue" = (
+/obj/structure/cable/yellow,
+/obj/machinery/power/solar,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/reinforced{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Uf" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/rockplanet/shippingdockoffice)
+"Ug" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/oil/slippery,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Ui" = (
+/obj/structure/cable/yellow{
+ icon_state = "0-6"
+ },
+/obj/machinery/power/solar_control{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Uj" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-9"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/item/shard,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Uk" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"Ul" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-9"
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Un" = (
+/obj/structure/flora/ash/garden/arid,
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ur" = (
+/obj/structure/sign/warning/docking{
+ pixel_y = 28
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Uy" = (
+/obj/effect/turf_decal/industrial/stand_clear{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"UA" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/plastic,
+/turf/open/floor/concrete/slab_3{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"UD" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/mine/pressure/explosive/rusty/live,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"UG" = (
+/obj/structure/cable,
+/obj/machinery/power/smes/engineering,
+/turf/open/floor/plating,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"UK" = (
+/obj/structure/fence/post{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"UN" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_3{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"UT" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/wrapping,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"UV" = (
+/obj/structure/salvageable/computer{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/brown/border{
+ dir = 6
+ },
+/turf/open/floor/mineral/titanium/tiled/white,
+/area/ruin/rockplanet/shippingdock)
+"UW" = (
+/obj/structure/reagent_dispensers/water_cooler,
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockcustoms)
+"UX" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 1
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "shippingdockwarehouse"
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"UY" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Vf" = (
+/obj/structure/poddoor_assembly,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"Vg" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/hangar/plasteel/dark,
+/area/ruin/rockplanet/shippingdock)
+"Vh" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Vn" = (
+/obj/structure/railing{
+ max_integrity = 70;
+ dir = 4
+ },
+/obj/structure/barricade/sandbags,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"Vt" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Vu" = (
+/obj/structure/railing/corner,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"VE" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/rockplanet/shippingdockoffice)
+"VJ" = (
+/obj/item/trash/waffles,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/nanoweave,
+/area/ruin/rockplanet/shippingdockoffice)
+"VK" = (
+/obj/structure/cable/yellow,
+/obj/effect/decal/cleanable/glass,
+/obj/item/shard,
+/turf/open/floor/concrete/reinforced{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"VW" = (
+/obj/effect/turf_decal/road{
+ dir = 8
+ },
+/obj/effect/turf_decal/road{
+ dir = 10
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"VX" = (
+/obj/effect/turf_decal/industrial/warning/dust/corner{
+ dir = 1
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Wb" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Wc" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_3{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"We" = (
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Wh" = (
+/obj/machinery/door/poddoor,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"Wj" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Wk" = (
+/obj/structure/mirror{
+ pixel_y = 28
+ },
+/obj/structure/sink{
+ pixel_y = 17
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/showroomfloor,
+/area/ruin/rockplanet/shippingdockoffice)
+"Wl" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/structure/reagent_dispensers/fueltank,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Wn" = (
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Wp" = (
+/obj/effect/decal/cleanable/garbage,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Wv" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ww" = (
+/obj/structure/railing{
+ dir = 10
+ },
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"WE" = (
+/obj/structure/rack,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/item/storage/box/maid,
+/turf/open/floor/plasteel/mono/white,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"WH" = (
+/obj/structure/cable/yellow{
+ icon_state = "0-6"
+ },
+/turf/open/floor/concrete/reinforced{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"WJ" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/concrete/slab_3{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"WO" = (
+/obj/machinery/light/broken/directional/north,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"WS" = (
+/obj/structure/window/reinforced,
+/obj/effect/turf_decal/trimline/opaque/syndiered,
+/turf/open/floor/plasteel/mono/white,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"WT" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"WX" = (
+/obj/effect/turf_decal/industrial/warning/dust/corner{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/ash/large,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Xe" = (
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/obj/item/shard,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Xg" = (
+/obj/item/stack/ore/salvage/scraptitanium,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Xh" = (
+/obj/structure/fence{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Xi" = (
+/obj/structure/table,
+/obj/item/paper_bin,
+/obj/item/pen/fourcolor,
+/turf/open/floor/carpet/nanoweave/purple,
+/area/ruin/rockplanet/shippingdockoffice)
+"Xj" = (
+/obj/effect/turf_decal/road{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{
+ dir = 10
+ },
+/obj/item/toy/snappop,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Xk" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_2{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Xm" = (
+/obj/effect/turf_decal/road{
+ dir = 9
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{
+ dir = 9
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Xr" = (
+/obj/structure/flora/rock/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Xu" = (
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Xx" = (
+/obj/effect/turf_decal/road/edge{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/plasma,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"XB" = (
+/mob/living/simple_animal/hostile/netherworld/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"XD" = (
+/obj/effect/turf_decal/road{
+ dir = 9
+ },
+/obj/structure/railing{
+ dir = 9
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"XG" = (
+/turf/closed/wall/r_wall/rust,
+/area/ruin/rockplanet/shippingdocksecure)
+"XH" = (
+/obj/effect/decal/cleanable/robot_debris/old,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"XI" = (
+/obj/item/stack/ore/salvage/scrapmetal,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"XO" = (
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockoffice)
+"XP" = (
+/obj/structure/rack,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/effect/spawner/lootdrop/maintenance/eight,
+/turf/open/floor/plasteel/mono/white,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"XU" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/girder/displaced,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"XY" = (
+/obj/effect/turf_decal/road,
+/obj/machinery/door/poddoor/shutters{
+ id = "shippingdockwarehousesouth"
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{
+ dir = 1
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"XZ" = (
+/obj/effect/turf_decal/road{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Yc" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-6"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Yf" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Yk" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/ruin/rockplanet/shippingdockoffice)
+"Yn" = (
+/obj/effect/turf_decal/industrial/outline,
+/obj/structure/closet/cardboard,
+/obj/item/modular_computer/laptop/preset/civilian,
+/obj/item/modular_computer/laptop/preset/civilian,
+/obj/item/modular_computer/laptop/preset/civilian,
+/obj/item/modular_computer/laptop/preset/civilian,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Yr" = (
+/obj/effect/turf_decal/road{
+ dir = 4
+ },
+/obj/effect/turf_decal/road{
+ dir = 5
+ },
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ys" = (
+/obj/effect/decal/cleanable/garbage,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Yt" = (
+/obj/structure/fence/cut/large{
+ dir = 1
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Yu" = (
+/obj/effect/decal/cleanable/wrapping,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Yx" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/item/assembly/mousetrap/armed,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockoffice)
+"Yy" = (
+/obj/machinery/airalarm/directional/north,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/rockplanet/shippingdockoffice)
+"Yz" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"YA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"YD" = (
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/structure/sign/warning/electricshock{
+ pixel_y = 26
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"YE" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/item/mine/pressure/explosive/rusty/live,
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"YG" = (
+/obj/vehicle/ridden/atv{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"YI" = (
+/obj/effect/turf_decal/road{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"YO" = (
+/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/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"YZ" = (
+/obj/effect/turf_decal/industrial/outline/red,
+/obj/item/stack/sheet/mineral/gold/five,
+/obj/item/stack/sheet/mineral/diamond/five,
+/obj/structure/closet/crate/secure{
+ req_one_access_txt = "53"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdocksecure)
+"Zd" = (
+/obj/effect/turf_decal/road,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Zh" = (
+/obj/effect/turf_decal/road{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"Zn" = (
+/obj/machinery/door/airlock/external,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/shippingdockoffice)
+"Zo" = (
+/obj/structure/flora/rock/pile/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Zq" = (
+/obj/structure/flora/ash/garden/arid,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Zs" = (
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Zz" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/girder,
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ZA" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"ZB" = (
+/obj/structure/tank_dispenser,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"ZD" = (
+/obj/structure/closet/crate/large,
+/obj/item/bot_assembly/ed209,
+/obj/item/bot_assembly/ed209,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"ZE" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"ZF" = (
+/obj/structure/flora/ash/garden/arid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ZJ" = (
+/obj/item/stack/ore/salvage/scrapplasma,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/shippingdock)
+"ZK" = (
+/obj/structure/railing{
+ max_integrity = 70;
+ dir = 4
+ },
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ZL" = (
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ZM" = (
+/obj/effect/decal/fakelattice,
+/obj/item/stack/ore/salvage/scraptitanium,
+/turf/open/floor/concrete/pavement{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ZR" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ZS" = (
+/obj/effect/turf_decal/road/line/opaque/yellow{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/rockplanet/shippingdockwarehouse)
+"ZW" = (
+/obj/item/mine/pressure/explosive/rusty/live,
+/turf/open/floor/concrete/slab_2{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ZZ" = (
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/shippingdockwarehouse)
+
+(1,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(2,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(3,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+ib
+pi
+ib
+wf
+Wn
+ib
+pi
+ib
+Wn
+Wn
+ib
+Wn
+ib
+ib
+ib
+ib
+ib
+pi
+ib
+ib
+ib
+FV
+ib
+ib
+ib
+ib
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(4,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+ib
+Wn
+Wn
+ib
+ib
+Zo
+Wn
+Wn
+Wn
+Wn
+Wn
+ib
+ib
+Zo
+Wn
+Wn
+ib
+Wn
+Wn
+ib
+zX
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(5,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+Mm
+Wn
+Wn
+Wn
+ib
+Wn
+ib
+NH
+Wn
+Wn
+Wn
+Mm
+Wn
+Wn
+Wn
+Wn
+NH
+ib
+Wn
+ib
+ib
+ib
+ib
+FV
+ib
+pi
+ib
+ib
+zX
+ib
+ZF
+ib
+ib
+ib
+ib
+ib
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(6,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+ib
+ib
+ib
+pS
+Wn
+Wn
+Wn
+Wn
+Wn
+pS
+Wn
+Wn
+Wn
+Wn
+Wn
+Wn
+ib
+ib
+pi
+Wn
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+Zo
+Wn
+Wn
+Wn
+Wn
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(7,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+FV
+ib
+ib
+IY
+IY
+zD
+zD
+zD
+zD
+zD
+zD
+zD
+zD
+zD
+zD
+zD
+zD
+zD
+Yt
+Yt
+zD
+zD
+zD
+zD
+zD
+zD
+zD
+zD
+zD
+zD
+IY
+IY
+Wn
+ib
+pS
+Wn
+ib
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(8,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+ib
+ib
+ib
+IY
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+MA
+MA
+MA
+MA
+MA
+MA
+MA
+MA
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+IY
+Wn
+ib
+Wn
+Wn
+Wn
+Wn
+ib
+ib
+ib
+ib
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(9,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+ib
+ib
+ZF
+ib
+jD
+Ev
+FK
+IV
+IV
+IV
+IV
+IV
+IV
+IV
+IV
+hb
+PZ
+Oa
+IV
+IV
+eY
+Qr
+IV
+IV
+IV
+Oa
+Oa
+Oa
+IV
+IV
+ud
+Ev
+jD
+Wn
+ib
+Wn
+XB
+ib
+Wn
+Wn
+ib
+ib
+ib
+ib
+ib
+FV
+ib
+ib
+ib
+ib
+pi
+ib
+ib
+ib
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(10,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+pi
+ib
+ib
+ib
+jD
+Ev
+zH
+uQ
+mU
+mU
+mU
+mU
+xi
+mU
+Kq
+ED
+sU
+xi
+xi
+Py
+xc
+zH
+Kq
+Py
+xi
+xi
+xi
+mU
+mU
+Kq
+bo
+Ev
+jD
+ib
+Wn
+Mm
+ib
+ib
+qM
+Wn
+Wn
+Wn
+pS
+Wn
+Wn
+Wn
+ib
+Wn
+Wn
+Mm
+Wn
+ib
+ib
+ib
+Wn
+Wn
+Wn
+Wn
+ib
+GP
+GP
+"}
+(11,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+ib
+ib
+zX
+ib
+jD
+Ev
+zH
+mU
+xi
+Py
+xi
+xi
+mU
+mU
+xi
+ED
+sU
+mU
+mU
+xi
+xc
+zH
+xi
+xi
+xi
+xi
+xi
+HL
+mU
+xi
+bo
+Ev
+jD
+ib
+Wn
+Wn
+ib
+ib
+ib
+ib
+Iu
+ib
+ib
+ib
+ib
+Wn
+Wn
+Wn
+ib
+ib
+Wn
+Wn
+NH
+Wn
+Wn
+ib
+ib
+Zo
+ib
+GP
+GP
+"}
+(12,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+ib
+ib
+ib
+ib
+jD
+Ev
+zH
+mU
+mU
+xi
+xi
+mU
+mU
+HL
+mU
+ED
+So
+xi
+xi
+mU
+Pc
+zH
+xi
+xi
+mU
+mU
+xi
+xi
+mU
+xi
+bo
+Ev
+jD
+ib
+Wn
+Wn
+NH
+Wn
+pS
+Wn
+Wn
+Wn
+Mm
+Wn
+Wn
+Wn
+pS
+Wn
+Wn
+Zo
+Wn
+Wn
+Wn
+ib
+ib
+ib
+pi
+Wn
+ib
+GP
+GP
+"}
+(13,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+qM
+ib
+ib
+ib
+ib
+jD
+Ev
+zH
+Kq
+mU
+mU
+su
+xi
+xi
+xi
+Kq
+va
+sU
+xi
+Ys
+xi
+Pc
+Cy
+uQ
+HL
+xi
+mU
+mU
+xi
+mU
+Kq
+bo
+Ev
+jD
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+Wn
+Wn
+Wn
+Wn
+Wn
+Wn
+Wn
+Wn
+Wn
+ib
+ib
+Wn
+Wn
+Wn
+Wn
+Wn
+Wn
+Wn
+ib
+GP
+GP
+"}
+(14,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+ib
+pi
+FV
+ib
+jD
+Ev
+zH
+Po
+xi
+xi
+xi
+xi
+xi
+xi
+xi
+bo
+se
+uo
+xi
+xi
+wX
+zH
+mU
+mU
+xi
+xi
+mU
+mU
+Py
+xi
+ED
+Ev
+Lh
+zD
+zD
+zD
+zD
+zD
+zD
+zD
+Yt
+zD
+zD
+zD
+zD
+zD
+zD
+zD
+zD
+zD
+zD
+zD
+zD
+zD
+IY
+IY
+ib
+ib
+ib
+GP
+GP
+"}
+(15,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+ib
+ib
+ib
+ib
+jD
+Ev
+zH
+xi
+XI
+xi
+xi
+xi
+Nh
+xi
+xi
+bo
+So
+xi
+xi
+xi
+xc
+zH
+xi
+mU
+xi
+xi
+Py
+xi
+xi
+mU
+ED
+Ev
+Ev
+Ev
+MA
+MA
+MA
+MA
+MA
+MA
+MA
+MA
+MA
+MA
+MA
+MA
+MA
+MA
+MA
+wY
+MA
+Ev
+Ev
+Ev
+Ev
+IY
+ib
+ib
+ib
+GP
+GP
+"}
+(16,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+XB
+ib
+ib
+pi
+jD
+Ev
+zH
+xi
+SO
+jR
+xi
+Nh
+zL
+SO
+xi
+bo
+So
+Ys
+xi
+xi
+xc
+zH
+xi
+mU
+mU
+xi
+xi
+xi
+xi
+mU
+bo
+Ev
+Ev
+Wc
+CW
+hN
+zU
+gG
+hN
+NR
+KA
+ZW
+ZL
+NR
+KA
+hN
+gG
+CW
+zU
+Ub
+CW
+hN
+BH
+MA
+Ev
+jD
+ib
+zX
+ib
+ib
+GP
+"}
+(17,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+ib
+ib
+ib
+ib
+jD
+Ev
+zH
+zE
+SO
+gD
+SO
+SO
+yO
+SO
+Ti
+bo
+So
+xi
+xi
+xi
+Pc
+Cy
+Uy
+mU
+ht
+ht
+mU
+mU
+xi
+Ti
+ED
+MA
+zU
+Xk
+SM
+ch
+ZR
+SM
+xS
+hY
+Kt
+zU
+tX
+hY
+hY
+Fg
+ZR
+xS
+SM
+ZR
+EP
+ch
+SX
+zU
+Ev
+jD
+ib
+ib
+ib
+ib
+GP
+"}
+(18,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+ib
+ZF
+ib
+ib
+jD
+Ev
+zH
+xi
+SO
+Tl
+AW
+ZJ
+JF
+dw
+lp
+ED
+se
+Po
+xi
+su
+rN
+zH
+xi
+xi
+xi
+CM
+mU
+mU
+xi
+su
+ED
+Ev
+hN
+zK
+Ev
+Ev
+um
+um
+qn
+qn
+qn
+on
+vR
+vR
+MQ
+xh
+lf
+We
+cn
+Ev
+cn
+KJ
+HW
+gG
+Ev
+jD
+ib
+ib
+qM
+ib
+GP
+"}
+(19,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+Wn
+zX
+Wn
+qM
+ib
+jD
+Ev
+zH
+xi
+SO
+SO
+ku
+zg
+SO
+tN
+Nh
+ED
+So
+xi
+mU
+xi
+xc
+zH
+xi
+xi
+xi
+My
+mU
+xi
+mU
+mU
+bo
+Ev
+zU
+QQ
+qn
+qn
+um
+EG
+le
+FU
+qn
+GW
+UG
+bv
+ra
+LL
+zf
+Ul
+cn
+yl
+uZ
+bY
+QQ
+hN
+Ev
+jD
+ib
+XB
+ib
+ib
+GP
+"}
+(20,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+Wn
+Wn
+Wn
+ib
+ib
+jD
+Ev
+zH
+Ys
+JE
+SO
+tp
+lC
+SO
+JE
+xi
+ED
+So
+mU
+mU
+xi
+xc
+zH
+xi
+xi
+xi
+hp
+mU
+xi
+mU
+mU
+ED
+MA
+KA
+Dv
+qn
+Rq
+Fv
+Qi
+aq
+ws
+um
+um
+um
+qn
+qn
+Fs
+cn
+tg
+cn
+tg
+zf
+tg
+HK
+zU
+tM
+jD
+ib
+ib
+ib
+ib
+GP
+"}
+(21,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+ib
+Wn
+Wn
+ib
+jD
+Ev
+zH
+Ic
+Nh
+Np
+LW
+vs
+Np
+HL
+Ti
+ED
+So
+mU
+xi
+xi
+xc
+zH
+Ic
+xi
+xi
+xi
+mU
+xi
+mU
+Ti
+ED
+MA
+NR
+mP
+yN
+nZ
+Gz
+uF
+Mv
+aq
+IH
+um
+HY
+bH
+qn
+EC
+cn
+Uj
+Bi
+tg
+cn
+TY
+zK
+zU
+Ev
+Km
+uP
+ib
+ib
+pi
+GP
+"}
+(22,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+pi
+Wn
+Wn
+ib
+jD
+Ev
+zH
+xi
+EZ
+tN
+xd
+mx
+SO
+JE
+xi
+ED
+oi
+mU
+xi
+Py
+wX
+zH
+xi
+Py
+xi
+mU
+xi
+xi
+mU
+xi
+ui
+MA
+ZL
+Dv
+yN
+nZ
+sO
+VJ
+zd
+Oz
+DP
+um
+Wk
+nh
+qn
+EC
+cn
+TY
+WH
+Uj
+cn
+tg
+Vh
+gG
+MA
+jD
+ib
+ib
+ib
+ib
+GP
+"}
+(23,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+ib
+Wn
+Wn
+jD
+Ev
+zH
+Nh
+tN
+SO
+ER
+Vg
+SO
+SO
+XI
+ED
+So
+mU
+mU
+xi
+xc
+zH
+xi
+xi
+xi
+mU
+xi
+HL
+mU
+xi
+ED
+MA
+NR
+HW
+qn
+BJ
+Qi
+FZ
+uF
+gN
+Yx
+um
+um
+zy
+um
+iB
+IK
+yj
+yf
+uq
+Ei
+pB
+HK
+Ov
+MA
+jD
+ib
+FV
+ib
+ib
+GP
+"}
+(24,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+Wn
+Wn
+Lb
+Pn
+Ev
+zH
+xi
+SO
+kf
+OG
+tQ
+ca
+SO
+XI
+ED
+So
+xi
+mU
+xi
+Pc
+Cy
+mU
+mU
+xi
+mU
+xi
+xi
+mU
+xi
+ED
+MA
+ZL
+QQ
+qn
+qn
+qn
+um
+um
+Lq
+nj
+um
+Mw
+Uf
+um
+um
+um
+um
+qn
+pv
+Ov
+MA
+Vh
+ZL
+MA
+jD
+ib
+ib
+ib
+ib
+GP
+"}
+(25,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+Wn
+pS
+Wn
+CH
+Ev
+zH
+Uy
+Vf
+SZ
+Ew
+xx
+AW
+Wh
+Ti
+ED
+So
+xi
+mU
+mU
+Pc
+zH
+Ic
+mU
+Yf
+xi
+xi
+xi
+mU
+Ti
+ED
+MA
+ZW
+QQ
+yN
+KS
+Qg
+QB
+um
+vj
+VE
+dL
+JU
+Ke
+ux
+XO
+iv
+XO
+Zn
+gc
+NR
+zU
+Dv
+Ov
+MA
+jD
+ib
+ib
+zX
+ib
+GP
+"}
+(26,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+Wn
+ib
+Lb
+Wn
+Pn
+tM
+zH
+mU
+mI
+cZ
+bj
+cz
+px
+Wh
+xi
+ED
+oi
+HL
+xi
+xi
+wX
+zH
+xi
+xi
+mU
+xi
+Py
+xi
+mU
+xi
+ED
+Ev
+hN
+ys
+yN
+dI
+hi
+Si
+um
+RV
+Nj
+hB
+dv
+eJ
+au
+Ls
+MG
+NU
+dR
+di
+EP
+EP
+xT
+Ev
+MA
+jD
+ib
+ib
+ib
+ib
+GP
+"}
+(27,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+Wn
+Wn
+ib
+jD
+Ev
+zH
+xi
+Wh
+cZ
+mx
+QI
+px
+mI
+mU
+ED
+So
+xi
+xi
+xi
+xc
+zH
+xi
+xi
+mU
+xi
+xi
+mU
+xi
+xi
+ED
+Ev
+KA
+mP
+yN
+kI
+bT
+Yk
+um
+Yy
+aC
+CT
+Xi
+Su
+um
+um
+qn
+qn
+um
+NR
+CW
+Ev
+Ev
+Ev
+MA
+jD
+ib
+pi
+ib
+ib
+GP
+"}
+(28,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+FV
+Wn
+Wn
+ib
+jD
+Ev
+zH
+xi
+Wh
+Pr
+Uk
+bj
+HI
+Vf
+mU
+bo
+So
+xi
+xi
+xi
+xc
+Cy
+mU
+mU
+mU
+xi
+xi
+mU
+xi
+xi
+ED
+Ev
+KA
+HW
+um
+um
+ue
+fb
+rO
+Mz
+IE
+lT
+Ce
+xC
+yN
+Un
+Zs
+SY
+um
+uT
+zU
+MA
+Ev
+MA
+UD
+jD
+ib
+ib
+ib
+ib
+GP
+"}
+(29,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+Wn
+Wn
+pS
+jD
+Ev
+zH
+Ic
+Wh
+Il
+tQ
+SV
+ER
+Wh
+Ti
+bo
+So
+xi
+xi
+mU
+Pc
+zH
+Ic
+xi
+mU
+xi
+mU
+xi
+xi
+Ti
+ED
+MA
+ZL
+QQ
+KA
+um
+QC
+cw
+um
+Rp
+zV
+Pw
+xe
+IU
+yN
+Ri
+lB
+Zs
+WJ
+Ov
+CW
+MA
+Ev
+MA
+Ev
+CH
+ib
+ib
+pi
+ib
+GP
+"}
+(30,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+Wn
+Wn
+Wn
+jD
+Ev
+zH
+xi
+SO
+fG
+Ju
+tQ
+ic
+SO
+xi
+bo
+oi
+xi
+Py
+mU
+wX
+zH
+xi
+xi
+mU
+xi
+mU
+xi
+ob
+xi
+bo
+MA
+ZL
+mP
+ZL
+um
+qn
+qn
+um
+AL
+IE
+um
+yN
+yN
+yN
+lB
+Ri
+Zs
+Ro
+ZL
+zU
+MA
+MA
+Ev
+Ev
+jD
+qM
+ib
+ib
+ib
+GP
+"}
+(31,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+pS
+Wn
+Wn
+Wn
+jD
+Ev
+zH
+HL
+tN
+SO
+TW
+nr
+SO
+Nq
+XI
+bo
+So
+xi
+mU
+mU
+xc
+zH
+xi
+mU
+mU
+mU
+xi
+xi
+ob
+xi
+bo
+MA
+hN
+Dv
+NR
+um
+db
+zv
+qn
+Pf
+sz
+um
+Zs
+Un
+lB
+lB
+Zq
+lB
+WJ
+CW
+Ov
+MA
+wY
+Ev
+Ev
+jD
+ib
+ib
+qM
+ib
+GP
+"}
+(32,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+ib
+Wn
+ib
+jD
+Ev
+Cy
+xi
+ZM
+SO
+ns
+zT
+SO
+qW
+xi
+bo
+So
+xi
+mU
+xi
+xc
+zH
+xi
+mU
+xi
+mU
+Py
+cd
+xY
+fN
+bo
+Ev
+CW
+QQ
+KA
+um
+iQ
+MO
+qn
+cS
+wP
+qn
+SY
+Zs
+SY
+lB
+gH
+Zs
+mc
+zU
+NR
+Ev
+wY
+Ev
+Ev
+jD
+ib
+ib
+ib
+ib
+GP
+"}
+(33,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+ib
+Wn
+Mm
+ib
+jD
+Ev
+Cy
+xi
+Nh
+Np
+eb
+UV
+Np
+xi
+xi
+bo
+So
+mU
+xi
+xi
+xc
+zH
+mU
+mU
+mU
+mU
+xi
+xi
+jK
+sl
+bo
+Ev
+gG
+QQ
+ZL
+um
+um
+Ho
+RW
+CN
+pX
+qn
+lB
+Zs
+lB
+Un
+Zs
+SY
+lr
+zU
+Ov
+Ev
+wY
+MA
+Ev
+IY
+Ov
+ib
+ib
+ib
+GP
+"}
+(34,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+Wn
+Wn
+Wn
+ib
+ib
+jD
+Ev
+Sr
+Py
+xi
+Np
+Np
+Np
+Np
+xi
+Ys
+ED
+se
+mU
+xi
+HL
+wX
+zH
+mU
+xi
+mU
+xi
+xi
+nR
+fd
+CE
+bo
+Ev
+Wc
+HK
+NR
+KA
+um
+um
+um
+rK
+vi
+qn
+Zs
+SY
+sp
+Zs
+lB
+lB
+WJ
+gG
+ZL
+CW
+hN
+CW
+KA
+cv
+Ov
+ib
+ib
+ib
+GP
+"}
+(35,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+Wn
+pS
+ib
+ib
+ib
+jD
+Ev
+Sr
+mU
+xi
+xi
+xi
+xi
+Po
+mU
+mU
+ED
+So
+xi
+xi
+xi
+Pc
+zH
+xi
+xi
+mU
+xi
+xi
+xi
+xi
+xi
+bo
+Ev
+Ev
+sY
+KG
+ZL
+NR
+KA
+um
+hh
+Qv
+qn
+um
+UA
+ZL
+NK
+wp
+wp
+Sq
+zU
+NR
+hN
+zU
+zU
+Ov
+cv
+Ov
+ib
+ib
+ib
+GP
+"}
+(36,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+ib
+ib
+ib
+ib
+jD
+Ev
+Cy
+xi
+mU
+mU
+xi
+mU
+mU
+mU
+xi
+bo
+So
+xi
+Py
+mU
+Pc
+zH
+xi
+xi
+mU
+mU
+xi
+xi
+xi
+xi
+bo
+Ev
+Ev
+zU
+Dv
+Ov
+Ov
+Ov
+hf
+WT
+Wj
+zU
+zU
+ZL
+Ov
+Ov
+NR
+NR
+Ov
+CW
+KA
+Ev
+MA
+MA
+Ev
+IY
+Ov
+ib
+ib
+ib
+GP
+"}
+(37,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+ib
+ib
+ib
+FV
+jD
+Ev
+cT
+Mt
+hm
+AQ
+AQ
+AQ
+aY
+hm
+Mt
+im
+So
+xi
+mU
+DR
+xc
+AG
+ir
+BN
+AQ
+Oe
+AQ
+AQ
+hm
+Mt
+im
+Ev
+Ev
+MA
+wv
+fn
+fn
+YA
+TH
+oz
+Wv
+Ov
+NR
+zU
+zU
+gG
+tL
+ZL
+NR
+zU
+CW
+Ev
+MA
+MA
+Ev
+jD
+ib
+ib
+ib
+zX
+GP
+"}
+(38,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+ib
+ZF
+ib
+ib
+jD
+Ev
+Cy
+Kq
+xi
+mU
+mU
+mU
+mU
+mU
+uQ
+bo
+oi
+mU
+xi
+xi
+rN
+Cy
+uQ
+xi
+xi
+mU
+xi
+mU
+mU
+uQ
+bo
+Ev
+Ev
+Ev
+Tc
+NR
+MA
+MA
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+MA
+MA
+Ev
+Ev
+KA
+CW
+Ev
+MA
+Ev
+MA
+jD
+pi
+ib
+ib
+ib
+GP
+"}
+(39,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+ib
+ib
+pi
+ib
+jD
+Ev
+Cy
+xi
+mU
+Py
+xi
+xi
+xi
+xi
+mU
+tb
+sU
+xi
+xi
+xi
+Pc
+qH
+xi
+xi
+xi
+mU
+mU
+xi
+Py
+mU
+ED
+Ev
+Ev
+Ov
+Tc
+CW
+MA
+Ev
+Ov
+Ov
+he
+NL
+vS
+Ov
+Ov
+Ev
+Ev
+MA
+Ov
+Ov
+hN
+UD
+Ev
+MA
+MA
+jD
+ib
+ib
+ib
+FV
+GP
+"}
+(40,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+zX
+ib
+ib
+ib
+jD
+Ev
+zH
+mU
+mU
+Po
+xi
+xi
+xi
+xi
+xi
+cf
+So
+xi
+xi
+mU
+Pc
+qH
+Py
+xi
+xi
+xi
+mU
+xi
+xi
+xi
+ED
+Ev
+Ev
+Ov
+mY
+zU
+Ev
+Ov
+Ov
+Cx
+ZK
+ZK
+ZK
+kp
+Ov
+zU
+KA
+hN
+zU
+NR
+Ov
+MA
+Ev
+MA
+Ev
+jD
+ib
+qM
+ib
+ib
+GP
+"}
+(41,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+FV
+ib
+ib
+ib
+XB
+ib
+ib
+jD
+Ev
+vt
+MX
+Gs
+Gs
+Gs
+Gs
+Gs
+Gs
+MX
+Gy
+wE
+xi
+xi
+mU
+gr
+SF
+Gs
+Gs
+Gs
+Gs
+MX
+MX
+MX
+Gs
+YI
+MA
+MA
+hN
+YO
+MA
+Ev
+Ov
+Cx
+yW
+kV
+Kh
+fT
+Fj
+kp
+st
+Ov
+NR
+KA
+zU
+Ev
+Ev
+Ev
+MA
+Ev
+jD
+ib
+ib
+ib
+ib
+GP
+"}
+(42,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+qM
+ib
+jD
+MA
+Ev
+MA
+Ev
+Ev
+Ev
+Ev
+MA
+MA
+Ev
+zH
+mU
+xi
+xi
+mU
+mU
+bo
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+MA
+MA
+Ev
+KA
+re
+MA
+Ev
+Ov
+Eh
+fT
+pw
+qB
+qB
+pw
+mc
+zU
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+MA
+IY
+ib
+ib
+ib
+ib
+GP
+"}
+(43,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+Wn
+Wn
+pi
+ib
+ib
+ib
+pi
+ib
+ib
+ib
+jD
+Ev
+MA
+MA
+Ev
+Ev
+Ev
+MA
+Ev
+Ev
+Ev
+zH
+mU
+xi
+xi
+xi
+mU
+bo
+wo
+gO
+Ev
+Ev
+Ev
+Ev
+Ev
+JQ
+MA
+wY
+Ev
+tL
+Tc
+Ev
+Ev
+Ov
+Eh
+Kh
+qB
+qB
+qB
+kV
+mc
+zU
+Ev
+mb
+zD
+zD
+zD
+zD
+zD
+zD
+IY
+IY
+ib
+ib
+ib
+GP
+GP
+"}
+(44,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+Wn
+Wn
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+jD
+Ev
+MA
+wY
+MA
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+xo
+hm
+pT
+mE
+mE
+BN
+ea
+zM
+zM
+vz
+vz
+vz
+Ev
+Ev
+Ev
+Ev
+wY
+Ev
+Ov
+YO
+Ev
+Ev
+Ov
+Ro
+pV
+qB
+qB
+qB
+pw
+mc
+zU
+Ev
+jD
+ib
+Wn
+Wn
+ib
+ib
+Wn
+ib
+ib
+ib
+zX
+ib
+GP
+GP
+"}
+(45,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+NH
+Wn
+IY
+IY
+zD
+zD
+zD
+zD
+zD
+HA
+Ev
+MA
+MA
+MA
+Ev
+py
+Bz
+Bz
+Bz
+SI
+py
+Ur
+mU
+xi
+xi
+Wp
+zM
+zM
+Qn
+FQ
+DF
+zM
+zM
+zM
+FX
+Ev
+wY
+Ov
+KA
+Tc
+Ev
+Ev
+Ov
+Eh
+pw
+qB
+qB
+Kh
+fT
+mc
+zU
+tM
+jD
+Wn
+Zo
+Wn
+zX
+Wn
+Wn
+ib
+ib
+ib
+ib
+ib
+GP
+GP
+"}
+(46,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+pi
+ib
+Wn
+IY
+Ev
+MA
+MA
+MA
+MA
+MA
+MA
+MA
+hN
+Ov
+hN
+Ov
+Hk
+Lf
+mC
+Ly
+Ly
+Jd
+xi
+mU
+pp
+mU
+xi
+wj
+GZ
+xy
+Jz
+nP
+rY
+jT
+LY
+ch
+SM
+UN
+xS
+nB
+lg
+MA
+Ev
+tL
+Gk
+Ww
+Kh
+pV
+pw
+al
+Sq
+zU
+Ev
+Pn
+Wn
+Wn
+ib
+Wn
+ib
+qM
+ib
+pi
+ib
+ib
+ib
+GP
+GP
+"}
+(47,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+Wn
+Wn
+Wn
+jD
+Ev
+sf
+Cx
+ZK
+ZK
+kp
+ZL
+KA
+NR
+Ov
+zU
+ZW
+tx
+Ly
+Ly
+Ly
+JI
+cb
+xi
+xi
+xi
+xi
+xi
+wj
+qG
+Tx
+ml
+NE
+OO
+JD
+Kx
+jU
+jv
+jZ
+pD
+xf
+Ev
+MA
+MA
+Ov
+Ov
+Gk
+Dz
+Dz
+Dz
+Sq
+st
+zU
+Ev
+jD
+ib
+Lb
+Wn
+Wn
+Wn
+ib
+ib
+ib
+GP
+GP
+GP
+GP
+GP
+"}
+(48,1,1) = {"
+GP
+ib
+pi
+ib
+Wn
+ib
+Wn
+Zo
+Wn
+jD
+Ev
+Vu
+yW
+pS
+Mm
+Fj
+kp
+Ov
+KA
+Ev
+MA
+Ev
+py
+qU
+Vn
+Vn
+qU
+py
+ky
+ky
+ky
+ky
+ky
+vz
+vz
+il
+hD
+UW
+zM
+zM
+vz
+Bm
+Ov
+BH
+Ev
+Ev
+Ev
+Ev
+MA
+MA
+zU
+Ov
+Hd
+iH
+yc
+Ov
+zU
+Ev
+Ev
+jD
+ib
+Wn
+gR
+ib
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(49,1,1) = {"
+GP
+ib
+ib
+Wn
+Wn
+ib
+Wn
+Wn
+ib
+jD
+MA
+fS
+pi
+ib
+Wn
+pS
+mc
+Ov
+Ov
+Ev
+MA
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+Xm
+BO
+mi
+mi
+mi
+BO
+Xj
+zM
+zM
+zM
+vz
+zM
+gO
+Ev
+Ev
+CW
+Wc
+yJ
+NY
+NY
+NY
+NY
+NY
+tr
+MA
+MA
+MA
+MA
+MA
+Ev
+Ev
+Ev
+IY
+ib
+pS
+ib
+ib
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(50,1,1) = {"
+GP
+ib
+ZF
+Wn
+NH
+Wn
+Wn
+Mm
+ib
+jD
+MA
+Eh
+ib
+Mm
+Wn
+ib
+mc
+KA
+KA
+MA
+MA
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+Cy
+mU
+mU
+mU
+mU
+mU
+bo
+Ev
+Ev
+Ev
+wo
+wo
+Ev
+Ev
+MA
+Wc
+zU
+ey
+XD
+IV
+IV
+IV
+tq
+Av
+Ev
+mb
+zD
+zD
+zD
+zD
+zD
+IY
+IY
+ib
+Wn
+ib
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(51,1,1) = {"
+GP
+ib
+ib
+ib
+ib
+pi
+ib
+Wn
+Wn
+jD
+MA
+Ro
+Wn
+XB
+pi
+Wn
+YE
+NR
+Ov
+MA
+Ev
+Ev
+MA
+MA
+MA
+Ev
+MA
+zH
+xi
+xi
+xi
+xi
+mU
+bo
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+MA
+MA
+zU
+NR
+ey
+zH
+xi
+qi
+xi
+bo
+Av
+Ev
+jD
+ib
+ib
+ib
+ib
+ib
+ib
+Wn
+Wn
+Wn
+FV
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(52,1,1) = {"
+ib
+ib
+IY
+IY
+zD
+zD
+zD
+zD
+zD
+HA
+Ev
+Eh
+pS
+Wn
+ib
+Mm
+mc
+zU
+zU
+Ev
+MA
+MA
+Ev
+Ev
+Ev
+MA
+Ev
+zH
+xi
+xi
+xi
+xi
+mU
+ui
+MA
+MA
+wY
+PE
+wY
+MA
+MA
+MA
+Ov
+Ov
+ey
+zH
+zm
+sc
+sc
+bo
+Av
+Ev
+jD
+ib
+NH
+Wn
+Iu
+Wn
+Wn
+Mm
+ib
+Wn
+ib
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(53,1,1) = {"
+pi
+ib
+IY
+Ev
+Ev
+sS
+sS
+sS
+Ev
+Ev
+Ev
+Gk
+Ww
+Wn
+pi
+Iv
+of
+zU
+NR
+zU
+zU
+KA
+Ov
+Ov
+zU
+Ov
+KA
+Yr
+aV
+Gs
+Gs
+Gs
+aV
+NP
+zU
+hN
+zU
+vM
+zU
+Wc
+zU
+tL
+NR
+KA
+ey
+zH
+sc
+sc
+zm
+bo
+Av
+Ev
+jD
+ib
+Wn
+ib
+Wn
+ib
+Wn
+Wn
+Wn
+Wn
+ib
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(54,1,1) = {"
+XB
+ib
+jD
+MA
+xv
+sS
+By
+sS
+MA
+FX
+Ev
+Ev
+Gk
+Dz
+OI
+of
+ZL
+Ov
+hN
+CW
+KA
+Ov
+ZW
+Ov
+hN
+KA
+KA
+wN
+Ej
+Ej
+bN
+Ej
+Ej
+bA
+Ov
+KA
+NR
+KA
+Ov
+NR
+hN
+Ov
+Ov
+Ov
+ey
+zH
+Po
+Td
+xi
+bo
+Av
+Ev
+jD
+Wn
+Wn
+ib
+Zo
+Wn
+ib
+ib
+ib
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(55,1,1) = {"
+ib
+ib
+jD
+MA
+Ev
+By
+Ln
+sS
+MA
+Ev
+Ev
+Ev
+Ev
+Ev
+MA
+Ev
+Ev
+Ev
+zU
+KA
+Ov
+NR
+Ov
+hN
+KA
+Ov
+Ov
+lc
+BO
+IV
+IV
+IV
+BO
+VW
+KA
+Ov
+KA
+KA
+Ov
+NR
+zU
+KA
+Ov
+Ev
+ey
+Aq
+Gs
+Gs
+Gs
+Sd
+Av
+Ev
+jD
+Wn
+Mm
+ib
+ib
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(56,1,1) = {"
+ib
+ib
+jD
+MA
+FX
+wO
+Ln
+nT
+MA
+MA
+Ev
+Ev
+Ev
+MA
+Ev
+Ev
+MA
+MA
+MA
+Ev
+Ev
+Ev
+MA
+MA
+MA
+Ev
+Ev
+zH
+xi
+xi
+mU
+mU
+mU
+ED
+Ev
+Ev
+Ev
+Ev
+Ev
+MA
+wY
+wY
+MA
+Ev
+JZ
+HN
+HN
+HN
+HN
+HN
+VX
+LE
+IY
+Wn
+Wn
+ib
+ib
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(57,1,1) = {"
+ib
+FV
+jD
+MA
+Ev
+Ev
+Ev
+xv
+MA
+MA
+MA
+Ev
+Ev
+MA
+Ev
+MA
+MA
+Ev
+Ev
+Ev
+Ev
+MA
+Ev
+Ev
+MA
+Ev
+FK
+FD
+xi
+mU
+mU
+xi
+xi
+Br
+wB
+MA
+MA
+Pi
+nW
+MA
+Ev
+MA
+Ev
+MA
+Ev
+mb
+zD
+zD
+zD
+zD
+zD
+IY
+IY
+Wn
+Wn
+ib
+ib
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(58,1,1) = {"
+ib
+ib
+jD
+Ev
+MA
+Fn
+IV
+Oa
+IV
+IV
+Oa
+Oa
+Oa
+eR
+DV
+Oa
+IV
+IV
+IV
+Oa
+Oa
+IV
+IV
+IV
+Oa
+IV
+FD
+xi
+xi
+mU
+xi
+xi
+Po
+xi
+Br
+IV
+Oa
+Rw
+Oa
+Rw
+ud
+rl
+MA
+Ev
+Ev
+jD
+ib
+ib
+ib
+ib
+ib
+Wn
+Wn
+Wn
+pi
+ib
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(59,1,1) = {"
+ib
+ib
+CH
+Ev
+FK
+FD
+mU
+mU
+xi
+xi
+Id
+fV
+og
+xi
+xi
+mU
+qo
+Ty
+HM
+xi
+xi
+xi
+Id
+fV
+HM
+xi
+xi
+xi
+mU
+mU
+mU
+mU
+mU
+mU
+mU
+qo
+Ty
+wq
+mU
+Kc
+to
+ud
+MA
+Ev
+Ev
+jD
+Wn
+ZF
+Wn
+Wn
+pS
+Wn
+ib
+Wn
+Wn
+ib
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(60,1,1) = {"
+ib
+ib
+jD
+Ev
+zH
+mU
+mU
+Po
+xi
+xi
+GO
+ve
+xQ
+xi
+xi
+xi
+GO
+ve
+xQ
+xi
+xi
+xi
+GO
+ve
+xQ
+DR
+mU
+mU
+mU
+xi
+xi
+xi
+xi
+xi
+xi
+GO
+hr
+ju
+ti
+JO
+gj
+qR
+MA
+HV
+Ev
+jD
+Wn
+Wn
+zX
+ib
+Wn
+Wn
+ib
+ib
+Wn
+Wn
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(61,1,1) = {"
+GP
+ib
+jD
+Ev
+zH
+mU
+xi
+xi
+xF
+Gs
+MX
+MX
+MX
+MX
+Gs
+Gs
+Gs
+Gs
+Gs
+Gs
+Gs
+Gs
+Gs
+Gs
+Gs
+MX
+MX
+Gs
+Gs
+Gs
+Gs
+Gs
+Gs
+Gs
+Gs
+Gs
+MX
+Xx
+cB
+hU
+Aa
+qR
+Ev
+MA
+Ev
+jD
+ib
+pS
+Wn
+Wn
+NH
+Wn
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(62,1,1) = {"
+GP
+pi
+jD
+Ev
+zH
+qo
+og
+xF
+fx
+Ev
+MA
+Ev
+Ev
+MA
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+Ev
+MA
+vt
+kw
+aj
+HM
+ED
+MA
+MA
+MA
+Xh
+ib
+Wn
+Wn
+Wn
+Wn
+Wn
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(63,1,1) = {"
+GP
+ib
+jD
+Ev
+zH
+BA
+yT
+bo
+gO
+Ai
+Ev
+gO
+Ev
+MA
+PP
+PP
+en
+en
+en
+en
+en
+en
+en
+en
+en
+en
+en
+en
+en
+en
+en
+en
+en
+en
+Ev
+SB
+MA
+MA
+Cy
+aH
+yT
+ED
+Ev
+Ev
+Ev
+Xh
+ib
+ib
+pS
+Wn
+Wn
+ib
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(64,1,1) = {"
+GP
+ib
+jD
+Ev
+zH
+UY
+ju
+ED
+Ev
+Ev
+Ev
+SB
+DI
+XU
+PP
+ZB
+hG
+YG
+Ks
+wb
+KR
+SJ
+Ui
+Nb
+pY
+XP
+nJ
+fk
+ul
+Gr
+nO
+ct
+Kz
+en
+en
+Ev
+Ev
+Ev
+Sr
+UY
+xQ
+bo
+Ev
+Ev
+Ev
+jD
+ib
+Wn
+Wn
+Wn
+Mm
+ib
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(65,1,1) = {"
+GP
+ib
+Pn
+Fx
+zH
+xi
+xi
+bo
+Ev
+gO
+Ai
+Ev
+Zz
+Ny
+PP
+gb
+XH
+OQ
+fr
+Cm
+Mj
+Bx
+mu
+FN
+BI
+GM
+Cm
+KR
+WS
+dE
+rC
+op
+WX
+qc
+en
+Ev
+Ev
+Ev
+Cy
+mU
+mU
+bo
+Ev
+Ev
+Ev
+jD
+ib
+FV
+Wn
+ib
+ib
+ib
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(66,1,1) = {"
+GP
+ib
+jD
+Ev
+zH
+Id
+og
+bo
+Ai
+Ev
+SB
+Ai
+PP
+PP
+PP
+PP
+OQ
+yx
+WE
+nJ
+Mj
+lu
+ut
+gm
+BI
+XP
+nJ
+KR
+AE
+mF
+cm
+Qq
+Kr
+sa
+en
+Ev
+MA
+MA
+zH
+Id
+og
+ED
+MA
+Ev
+Ev
+lo
+ib
+ib
+Wn
+Wn
+Wn
+Wn
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(67,1,1) = {"
+GP
+ib
+jD
+MA
+Cy
+BA
+md
+ED
+Ev
+Ev
+Ev
+PP
+PP
+Rl
+sx
+en
+EL
+sP
+en
+tv
+kJ
+en
+YD
+Xu
+ZZ
+en
+MM
+xR
+en
+bb
+Qy
+fz
+Ug
+RT
+en
+Bm
+MA
+Ev
+zH
+aH
+yT
+bo
+MA
+MA
+Ev
+jD
+ib
+Wn
+Wn
+ib
+ib
+ib
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(68,1,1) = {"
+GP
+ib
+jD
+MA
+zH
+GO
+xQ
+Br
+ud
+Ev
+TE
+PP
+NB
+LS
+CF
+LS
+jE
+IS
+cl
+IS
+IS
+LS
+LS
+aA
+eP
+aW
+LS
+LS
+rS
+cI
+jE
+jE
+LS
+HB
+en
+gh
+Ev
+FK
+FD
+GO
+xQ
+bo
+SB
+MA
+Ev
+jD
+ib
+Wn
+Wn
+Wn
+Wn
+ib
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(69,1,1) = {"
+GP
+ib
+CH
+MA
+zH
+Po
+xi
+xi
+TA
+Oa
+IV
+Th
+xn
+xn
+xn
+ah
+ah
+xn
+QD
+QD
+Px
+Px
+ah
+Zd
+cX
+xn
+xn
+xn
+ah
+ah
+ah
+Px
+xn
+xn
+XY
+IV
+IV
+FD
+xi
+xi
+xi
+Ig
+MA
+MA
+Ev
+jD
+ib
+Mm
+pi
+qM
+Wn
+ib
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(70,1,1) = {"
+GP
+ib
+jD
+Ev
+Cy
+xi
+mU
+mU
+qo
+Ty
+og
+JL
+hW
+lZ
+ZE
+es
+Ss
+Wb
+hT
+ci
+ou
+dS
+tC
+PA
+hL
+Wb
+Wb
+Wb
+Om
+kb
+ZS
+iK
+wu
+Wb
+Hx
+rV
+fV
+og
+xi
+xi
+mU
+ED
+MA
+Ev
+Ev
+jD
+ib
+Wn
+ib
+ib
+wf
+ib
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(71,1,1) = {"
+GP
+ib
+jD
+Ev
+XZ
+kw
+mU
+xi
+GO
+hr
+PM
+UX
+lZ
+Yz
+Ns
+bZ
+KQ
+lZ
+tR
+jQ
+vD
+lM
+Ob
+wy
+nK
+Yz
+lZ
+lZ
+lZ
+wM
+bZ
+pz
+Yz
+NQ
+ms
+Rz
+ve
+xQ
+mU
+mU
+yV
+fx
+Ev
+yX
+Ev
+jD
+ib
+Wn
+Wn
+ib
+Wn
+Wn
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(72,1,1) = {"
+ib
+ib
+jD
+Ev
+Ev
+vt
+Gs
+Gs
+Gs
+MX
+Gs
+aR
+FP
+sC
+oC
+oC
+oC
+oC
+gF
+ee
+BG
+FP
+FP
+FP
+Io
+nY
+gv
+iL
+Jq
+Jq
+Zh
+LB
+oC
+Lu
+ko
+Tw
+Gs
+MX
+MX
+Gs
+fx
+vV
+jk
+Gg
+Ev
+jD
+Wn
+Zo
+Wn
+FV
+Wn
+Wn
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(73,1,1) = {"
+pi
+ib
+jD
+Ev
+Ev
+Ev
+Ev
+Ev
+MA
+MA
+TE
+PP
+WO
+LS
+IS
+qN
+IS
+IS
+LS
+IS
+IS
+cI
+aW
+mV
+bV
+bV
+XG
+XG
+pI
+pI
+GB
+XG
+XG
+XG
+bV
+Ps
+GN
+AI
+Ei
+Ei
+kv
+Yc
+wH
+uW
+Ev
+jD
+ib
+ib
+Wn
+ib
+Wn
+ib
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(74,1,1) = {"
+ib
+Wn
+jD
+Ev
+MA
+MA
+MA
+MA
+Ev
+Ev
+Ev
+PP
+CV
+Lr
+OQ
+OT
+Yu
+OQ
+vG
+tz
+pl
+hG
+OQ
+OQ
+XG
+fB
+Mg
+sL
+Mg
+Mg
+FH
+jB
+Od
+po
+XG
+CO
+Ue
+Pb
+Gg
+Ev
+DE
+Pp
+uW
+Ev
+Ev
+jD
+ib
+NH
+Wn
+ZF
+Wn
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(75,1,1) = {"
+Wn
+Wn
+IY
+Ev
+MA
+MA
+MA
+MA
+UD
+Ev
+Ev
+en
+Fb
+Wl
+lU
+Vt
+UT
+ZA
+zS
+zz
+Fc
+nV
+ep
+ut
+vP
+Mg
+Rd
+Mg
+xl
+Mg
+Rd
+Eg
+Od
+Gj
+XG
+Pb
+Gg
+jC
+ce
+AJ
+wY
+We
+Ev
+Ev
+Ev
+IY
+Wn
+Wn
+Wn
+Wn
+ib
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(76,1,1) = {"
+Wn
+pi
+IY
+IY
+zD
+zD
+zD
+Bl
+MA
+MA
+Ev
+en
+zz
+NT
+mu
+EE
+ut
+mu
+hE
+mu
+Yn
+ut
+ZD
+mu
+vP
+Mg
+lj
+Mg
+YZ
+Mg
+lj
+kX
+Od
+if
+XG
+sq
+VK
+FM
+Ue
+MA
+mb
+zD
+zD
+zD
+IY
+IY
+Wn
+ib
+zX
+Wn
+Wn
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(77,1,1) = {"
+Wn
+Wn
+ib
+Zo
+Wn
+ib
+ib
+jD
+Ev
+Ev
+MA
+PP
+PP
+yH
+Cu
+tn
+oj
+Tv
+pm
+pe
+JG
+lw
+eL
+ut
+bV
+fB
+rD
+Mg
+lR
+Mg
+FB
+bV
+bV
+bV
+bV
+sX
+Gg
+Pb
+Ue
+tY
+jD
+Zs
+lB
+lB
+lB
+lB
+ib
+ib
+ib
+Wn
+ib
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(78,1,1) = {"
+ib
+Wn
+Wn
+Wn
+Wn
+pS
+Wn
+jD
+Ev
+Ev
+MA
+Ev
+PP
+PP
+PP
+PP
+en
+en
+en
+PP
+PP
+PP
+en
+en
+XG
+bV
+bV
+bV
+XG
+XG
+XG
+bV
+Ny
+gO
+Ai
+Pb
+qL
+FM
+Ft
+Ev
+jD
+Zs
+Zs
+lB
+lB
+Ri
+lB
+ib
+ib
+Wn
+ib
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(79,1,1) = {"
+GP
+ib
+ib
+ib
+pS
+XB
+Wn
+jD
+Ev
+Ev
+MA
+MA
+Ev
+Ev
+Ev
+Ev
+Ev
+MA
+MA
+MA
+MA
+MA
+MA
+Ev
+Ev
+HV
+Ev
+Ev
+Ev
+Ev
+DI
+MA
+MA
+MA
+gO
+fM
+Ue
+Xe
+Gg
+Ev
+jD
+lB
+Zs
+Ch
+Zs
+lB
+lB
+Wn
+Wn
+Wn
+ib
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(80,1,1) = {"
+GP
+GP
+GP
+GP
+ib
+Wn
+Wn
+IY
+Ev
+Ev
+Ev
+Ev
+Ev
+MA
+MA
+MA
+MA
+HV
+MA
+Ev
+Ev
+Ev
+MA
+MA
+MA
+MA
+MA
+MA
+MA
+Ev
+Ev
+Ev
+Ai
+MA
+DI
+MA
+lQ
+Ev
+Ev
+Ev
+IY
+lB
+Zs
+lB
+Zs
+lB
+lB
+ib
+Wn
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(81,1,1) = {"
+GP
+GP
+GP
+GP
+Zo
+Wn
+ZF
+IY
+IY
+zD
+zD
+zD
+zD
+ll
+Ni
+zD
+zD
+zD
+ll
+ll
+ll
+ll
+UK
+ll
+ll
+ll
+ll
+ll
+ll
+ll
+ll
+UK
+zD
+zD
+zD
+Yt
+zD
+zD
+zD
+IY
+IY
+lB
+Zs
+SY
+Zs
+lB
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(82,1,1) = {"
+GP
+GP
+GP
+GP
+Wn
+Wn
+Wn
+ib
+ib
+ib
+Wn
+Wn
+FV
+ib
+ib
+ib
+ib
+ib
+pi
+ib
+ib
+ib
+ib
+FV
+ib
+lB
+Zs
+lB
+Ri
+lB
+Zs
+lB
+xZ
+lB
+Xg
+Zs
+Zs
+SY
+Zs
+lB
+lB
+lB
+Zs
+Zs
+Xr
+lB
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(83,1,1) = {"
+GP
+GP
+GP
+GP
+ib
+ib
+pS
+Wn
+Wn
+NH
+ib
+Wn
+Wn
+ib
+ib
+ib
+zX
+ib
+qM
+ib
+zX
+ib
+ib
+ib
+ib
+lB
+Zs
+Zs
+lB
+Zs
+SY
+Zs
+Zs
+lB
+lB
+fH
+lB
+lB
+Zs
+lB
+ny
+lB
+lB
+lB
+Zs
+lB
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(84,1,1) = {"
+GP
+GP
+GP
+GP
+ib
+ib
+Wn
+Wn
+pS
+ib
+ib
+ib
+Wn
+Wn
+zX
+Wn
+ib
+ib
+ib
+ib
+pi
+ib
+ib
+ib
+ib
+lB
+lB
+xZ
+Zs
+lB
+lB
+lB
+Zs
+Ch
+Zs
+Zs
+lB
+lB
+Ch
+Zs
+lB
+lB
+HP
+Zs
+lB
+Ri
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
+(85,1,1) = {"
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+ib
+ib
+Wn
+Wn
+pi
+ib
+ib
+ib
+ib
+qM
+ib
+ib
+GP
+GP
+GP
+GP
+GP
+GP
+lB
+Zs
+Zs
+Zs
+SY
+ny
+lB
+lB
+lB
+Zs
+Xr
+lB
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+GP
+"}
diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm
index f8b569cebdf4..f59cff023b4a 100644
--- a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm
+++ b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm
@@ -89,7 +89,7 @@
},
/area/overmap_encounter/planetoid/sand/explored)
"eq" = (
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor,
+/mob/living/simple_animal/hostile/human/hermit/survivor,
/turf/open/floor/plating/asteroid/whitesands{
light_range = 2
},
@@ -157,7 +157,7 @@
/area/ruin)
"fO" = (
/obj/structure/chair/plastic,
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
faction = list("adobe")
},
/turf/open/floor/plating/asteroid/whitesands{
@@ -360,7 +360,7 @@
},
/area/overmap_encounter/planetoid/sand/explored)
"nx" = (
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
dir = 4;
faction = list("adobe")
},
@@ -425,7 +425,7 @@
"oB" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/blood/old,
-/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter{
+/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{
faction = list("saloon");
name = "Whitesands Bartender"
},
@@ -592,7 +592,7 @@
/turf/open/floor/concrete,
/area/ruin)
"we" = (
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor,
+/mob/living/simple_animal/hostile/human/hermit/survivor,
/turf/open/floor/plating/asteroid/whitesands/dried{
light_range = 2
},
@@ -678,14 +678,14 @@
},
/area/overmap_encounter/planetoid/sand/explored)
"zB" = (
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
dir = 1;
faction = list("adobe")
},
/turf/open/floor/concrete,
/area/ruin)
"AC" = (
-/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/gunslinger{
+/mob/living/simple_animal/hostile/human/hermit/ranged/gunslinger{
dir = 4;
faction = list("adobe")
},
@@ -704,7 +704,7 @@
/turf/open/floor/wood,
/area/ruin)
"AR" = (
-/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter,
+/mob/living/simple_animal/hostile/human/hermit/ranged/hunter,
/turf/open/floor/plating/asteroid/whitesands{
light_range = 2
},
@@ -782,14 +782,14 @@
/area/ruin)
"Ed" = (
/obj/item/chair/stool/bar,
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
dir = 1;
faction = list("saloon")
},
/turf/open/floor/wood,
/area/ruin)
"Ef" = (
-/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter{
+/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{
dir = 4;
faction = list("adobe")
},
@@ -939,7 +939,7 @@
/obj/structure/chair/plastic{
dir = 4
},
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
dir = 4;
faction = list("adobe")
},
@@ -1189,7 +1189,7 @@
/turf/open/floor/concrete,
/area/ruin)
"TH" = (
-/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter{
+/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{
faction = list("adobe")
},
/turf/open/floor/concrete,
@@ -1200,7 +1200,7 @@
/area/ruin)
"UT" = (
/obj/structure/chair/stool/bar,
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
dir = 1;
faction = list("saloon")
},
@@ -1209,7 +1209,7 @@
"Vq" = (
/obj/structure/chair/stool/bar,
/obj/effect/decal/cleanable/dirt,
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
dir = 8;
faction = list("saloon")
},
@@ -1253,7 +1253,7 @@
/area/overmap_encounter/planetoid/sand/explored)
"Ws" = (
/obj/structure/chair/stool/bar,
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
dir = 8;
faction = list("saloon")
},
diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_drugstore.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_drugstore.dmm
index 4bf53b738636..7f69ca337c00 100644
--- a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_drugstore.dmm
+++ b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_drugstore.dmm
@@ -80,7 +80,7 @@
/turf/open/floor/wood,
/area/ruin/unpowered)
"n" = (
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
dir = 4
},
/turf/open/floor/wood{
diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm
index b17207b75020..400a710091b4 100644
--- a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm
+++ b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm
@@ -243,7 +243,7 @@
},
/obj/effect/turf_decal/siding/wood,
/obj/structure/chair/stool/bar,
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor,
+/mob/living/simple_animal/hostile/human/hermit/survivor,
/turf/open/floor/wood,
/area/ruin/whitesands/saloon)
"gC" = (
@@ -328,7 +328,7 @@
"ih" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/blood/old,
-/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter{
+/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{
name = "Hermit Bartender"
},
/turf/open/floor/wood{
@@ -499,7 +499,7 @@
/obj/effect/turf_decal/siding/wood{
dir = 1
},
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
dir = 1
},
/turf/open/floor/wood,
@@ -615,7 +615,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 6
},
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
dir = 1
},
/turf/open/floor/wood,
@@ -654,7 +654,7 @@
/obj/structure/chair/stool/bar{
dir = 1
},
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
dir = 1
},
/turf/open/floor/wood{
@@ -666,7 +666,7 @@
dir = 8
},
/obj/item/chair/stool/bar,
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
dir = 8
},
/turf/open/floor/wood,
@@ -744,7 +744,7 @@
/obj/effect/turf_decal/siding/wood{
dir = 8
},
-/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter{
+/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{
dir = 8
},
/turf/open/floor/wood{
@@ -756,7 +756,7 @@
dir = 1
},
/obj/effect/decal/cleanable/dirt,
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
dir = 1
},
/turf/open/floor/wood{
@@ -981,7 +981,7 @@
/area/ruin/whitesands/saloon)
"DT" = (
/obj/structure/chair/wood,
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
name = "Robert";
desc = "This fellow seems relatively sane and normal";
faction = list("neutral")
@@ -1114,7 +1114,7 @@
/obj/structure/chair/stool/bar{
dir = 8
},
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
dir = 8
},
/turf/open/floor/wood,
@@ -1148,7 +1148,7 @@
},
/area/ruin/whitesands/saloon)
"Ie" = (
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
dir = 1
},
/turf/open/floor/plating/asteroid/whitesands/lit,
@@ -1389,7 +1389,7 @@
/obj/structure/chair/stool/bar{
dir = 8
},
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
dir = 8
},
/turf/open/floor/wood,
@@ -1421,7 +1421,7 @@
/turf/open/floor/wood,
/area/ruin/whitesands/saloon)
"QV" = (
-/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter{
+/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{
name = "Hermit Bartender";
dir = 4
},
@@ -1497,7 +1497,7 @@
/area/ruin/whitesands/saloon)
"Ua" = (
/obj/structure/chair/stool/bar,
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
dir = 8
},
/turf/open/floor/wood{
@@ -1525,7 +1525,7 @@
/obj/structure/sign/poster/official/cohiba_robusto_ad{
pixel_y = 32
},
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor,
+/mob/living/simple_animal/hostile/human/hermit/survivor,
/turf/open/floor/wood{
icon_state = "wood-broken7"
},
@@ -1641,7 +1641,7 @@
/obj/structure/chair/stool/bar{
dir = 1
},
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
dir = 1
},
/turf/open/floor/wood,
diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_chokepoint.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_chokepoint.dmm
index 5d63a30bf22b..d4fa2737cd38 100644
--- a/_maps/RandomRuins/SandRuins/whitesands_surface_chokepoint.dmm
+++ b/_maps/RandomRuins/SandRuins/whitesands_surface_chokepoint.dmm
@@ -26,7 +26,7 @@
"g" = (
/obj/structure/bed,
/obj/item/bedsheet/hos,
-/mob/living/simple_animal/hostile/nanotrasen/ranged{
+/mob/living/simple_animal/hostile/human/nanotrasen/ranged{
atmos_requirements = list("min_oxy"=5,"max_oxy"=0,"min_tox"=0,"max_tox"=0,"min_co2"=0,"max_co2"=999,"min_n2"=0,"max_n2"=0);
damage_coeff = list("brute"=1,"fire"=1,"toxin"=1,"clone"=1,"stamina"=0,"oxygen"=0);
name = "\improper Nanotrasen Stranded Security Officer"
@@ -34,7 +34,7 @@
/turf/open/floor/plating/asteroid/whitesands/dried,
/area/ruin)
"h" = (
-/mob/living/simple_animal/hostile/nanotrasen/ranged{
+/mob/living/simple_animal/hostile/human/nanotrasen/ranged{
atmos_requirements = list("min_oxy"=5,"max_oxy"=0,"min_tox"=0,"max_tox"=0,"min_co2"=0,"max_co2"=999,"min_n2"=0,"max_n2"=0);
damage_coeff = list("brute"=1,"fire"=1,"toxin"=1,"clone"=1,"stamina"=0,"oxygen"=0);
dir = 4;
@@ -46,7 +46,7 @@
/obj/structure/chair/wood{
dir = 8
},
-/mob/living/simple_animal/hostile/nanotrasen/ranged{
+/mob/living/simple_animal/hostile/human/nanotrasen/ranged{
atmos_requirements = list("min_oxy"=5,"max_oxy"=0,"min_tox"=0,"max_tox"=0,"min_co2"=0,"max_co2"=999,"min_n2"=0,"max_n2"=0);
damage_coeff = list("brute"=1,"fire"=1,"toxin"=1,"clone"=1,"stamina"=0,"oxygen"=0);
dir = 8;
@@ -93,7 +93,7 @@
/turf/open/floor/plating/asteroid/whitesands,
/area/ruin)
"v" = (
-/mob/living/simple_animal/hostile/nanotrasen/ranged{
+/mob/living/simple_animal/hostile/human/nanotrasen/ranged{
atmos_requirements = list("min_oxy"=5,"max_oxy"=0,"min_tox"=0,"max_tox"=0,"min_co2"=0,"max_co2"=999,"min_n2"=0,"max_n2"=0);
damage_coeff = list("brute"=1,"fire"=1,"toxin"=1,"clone"=1,"stamina"=0,"oxygen"=0);
dir = 8;
diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_onlyaspoonful.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_onlyaspoonful.dmm
index f74a8895976a..f84ccaf6c8ef 100644
--- a/_maps/RandomRuins/SandRuins/whitesands_surface_onlyaspoonful.dmm
+++ b/_maps/RandomRuins/SandRuins/whitesands_surface_onlyaspoonful.dmm
@@ -65,7 +65,7 @@
/area/ruin/powered)
"ew" = (
/obj/effect/decal/cleanable/dirt/dust,
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor,
+/mob/living/simple_animal/hostile/human/hermit/survivor,
/turf/open/floor/plastic,
/area/ruin/powered)
"eH" = (
@@ -155,7 +155,7 @@
/turf/open/floor/plastic,
/area/ruin/powered)
"hw" = (
-/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter,
+/mob/living/simple_animal/hostile/human/hermit/ranged/hunter,
/turf/open/floor/plastic,
/area/ruin/powered)
"hA" = (
@@ -318,7 +318,7 @@
pixel_y = 9
},
/obj/effect/decal/cleanable/blood/tracks,
-/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/gunslinger,
+/mob/living/simple_animal/hostile/human/hermit/ranged/gunslinger,
/turf/open/floor/plastic,
/area/ruin/powered)
"wr" = (
@@ -439,7 +439,7 @@
/turf/open/floor/plastic,
/area/ruin/powered)
"EC" = (
-/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter,
+/mob/living/simple_animal/hostile/human/hermit/ranged/hunter,
/turf/open/floor/plating/asteroid/whitesands,
/area/overmap_encounter/planetoid/sand/explored)
"Fi" = (
diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_pubbyslopcrash.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_pubbyslopcrash.dmm
index 209709f2599b..e664dfec8d96 100644
--- a/_maps/RandomRuins/SandRuins/whitesands_surface_pubbyslopcrash.dmm
+++ b/_maps/RandomRuins/SandRuins/whitesands_surface_pubbyslopcrash.dmm
@@ -804,7 +804,7 @@
/obj/effect/decal/fakelattice{
icon_state = "lattice-2"
},
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
dir = 1;
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"
@@ -1003,7 +1003,7 @@
/turf/open/floor/plasteel/tech,
/area/ruin/whitesands/pubbycrash/engine_room)
"xc" = (
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
dir = 4
},
/turf/open/floor/plating/asteroid/whitesands/lit,
@@ -1145,7 +1145,7 @@
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light/directional/west,
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
dir = 1;
faction = list("saloon")
},
@@ -1744,7 +1744,7 @@
/obj/effect/turf_decal/spline/fancy/opaque/black{
dir = 1
},
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
faction = list("saloon")
},
/turf/open/floor/plasteel/dark,
@@ -1777,7 +1777,7 @@
/obj/effect/turf_decal/ntspaceworks_small/left{
dir = 4
},
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
dir = 4;
faction = list("saloon")
},
@@ -1946,7 +1946,7 @@
/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{
+/mob/living/simple_animal/hostile/human/hermit/survivor{
dir = 1;
faction = list("saloon")
},
@@ -1969,7 +1969,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 1
},
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{
+/mob/living/simple_animal/hostile/human/hermit/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"
@@ -2060,7 +2060,7 @@
/turf/open/floor/plating/asteroid/whitesands/dried,
/area/overmap_encounter/planetoid/cave/explored)
"Qo" = (
-/mob/living/simple_animal/hostile/asteroid/whitesands/ranged,
+/mob/living/simple_animal/hostile/human/hermit/ranged,
/turf/open/floor/plating/asteroid/whitesands/dried,
/area/overmap_encounter/planetoid/cave/explored)
"Qu" = (
diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_starfurycrash.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_starfurycrash.dmm
index bc8616028058..9e00376a8953 100644
--- a/_maps/RandomRuins/SandRuins/whitesands_surface_starfurycrash.dmm
+++ b/_maps/RandomRuins/SandRuins/whitesands_surface_starfurycrash.dmm
@@ -147,7 +147,7 @@
/obj/effect/turf_decal/industrial/traffic{
dir = 4
},
-/mob/living/simple_animal/hostile/syndicate/ranged/smg/space,
+/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space,
/turf/open/floor/engine{
initial_gas_mix = "ws_atmos"
},
@@ -224,7 +224,7 @@
},
/area/overmap_encounter/planetoid/cave/explored)
"mv" = (
-/mob/living/simple_animal/hostile/syndicate/ranged/space,
+/mob/living/simple_animal/hostile/human/syndicate/ranged/space,
/turf/open/floor/plating/asteroid/whitesands,
/area/overmap_encounter/planetoid/cave/explored)
"mP" = (
@@ -395,15 +395,15 @@
},
/area/overmap_encounter/planetoid/cave/explored)
"wS" = (
-/mob/living/simple_animal/hostile/syndicate/ranged/smg/space,
+/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space,
/turf/open/floor/plating{
icon_state = "platingdmg2";
initial_gas_mix = "ws_atmos"
},
/area/overmap_encounter/planetoid/cave/explored)
"xr" = (
-/mob/living/simple_animal/hostile/syndicate/ranged/smg/space,
-/mob/living/simple_animal/hostile/syndicate/ranged/space,
+/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space,
+/mob/living/simple_animal/hostile/human/syndicate/ranged/space,
/turf/open/floor/plating{
icon_state = "platingdmg2";
initial_gas_mix = "ws_atmos"
@@ -467,7 +467,7 @@
},
/area/overmap_encounter/planetoid/cave/explored)
"Bt" = (
-/mob/living/simple_animal/hostile/syndicate/ranged/shotgun/space,
+/mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun/space,
/turf/open/floor/plating{
icon_state = "platingdmg1";
initial_gas_mix = "ws_atmos"
@@ -546,7 +546,7 @@
},
/area/overmap_encounter/planetoid/cave/explored)
"Eu" = (
-/mob/living/simple_animal/hostile/syndicate/ranged/space/stormtrooper,
+/mob/living/simple_animal/hostile/human/syndicate/ranged/space/stormtrooper,
/turf/open/floor/plating{
icon_state = "panelscorched";
initial_gas_mix = "ws_atmos"
@@ -632,7 +632,7 @@
},
/area/overmap_encounter/planetoid/cave/explored)
"KR" = (
-/mob/living/simple_animal/hostile/syndicate/ranged/shotgun/space,
+/mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun/space,
/turf/open/floor/plating/asteroid/whitesands,
/area/overmap_encounter/planetoid/cave/explored)
"KT" = (
@@ -645,7 +645,7 @@
},
/area/overmap_encounter/planetoid/cave/explored)
"Md" = (
-/mob/living/simple_animal/hostile/syndicate/ranged/space,
+/mob/living/simple_animal/hostile/human/syndicate/ranged/space,
/turf/open/floor/plating{
initial_gas_mix = "ws_atmos"
},
@@ -880,7 +880,7 @@
/area/overmap_encounter/planetoid/cave/explored)
"Xh" = (
/obj/item/stack/tile/plasteel,
-/mob/living/simple_animal/hostile/syndicate/ranged/space,
+/mob/living/simple_animal/hostile/human/syndicate/ranged/space,
/turf/open/floor/plating/asteroid/whitesands/dried,
/area/overmap_encounter/planetoid/cave/explored)
"XR" = (
diff --git a/_maps/RandomRuins/SpaceRuins/astraeus.dmm b/_maps/RandomRuins/SpaceRuins/astraeus.dmm
index 2629cc5d1cd1..6b83da98447f 100644
--- a/_maps/RandomRuins/SpaceRuins/astraeus.dmm
+++ b/_maps/RandomRuins/SpaceRuins/astraeus.dmm
@@ -1724,7 +1724,7 @@
/turf/open/floor/plasteel/airless,
/area/ruin/space/has_grav/astraeus/munitions)
"TV" = (
-/obj/machinery/computer/communications{
+/obj/structure/frame/computer{
dir = 8
},
/turf/open/floor/plating/airless,
diff --git a/_maps/RandomRuins/SpaceRuins/crashedship.dmm b/_maps/RandomRuins/SpaceRuins/crashedship.dmm
index 9a154053c0bf..358b08790095 100644
--- a/_maps/RandomRuins/SpaceRuins/crashedship.dmm
+++ b/_maps/RandomRuins/SpaceRuins/crashedship.dmm
@@ -2232,7 +2232,7 @@
/turf/closed/mineral/diamond,
/area/awaymission/BMPship)
"hw" = (
-/turf/closed/mineral/bananium,
+/turf/closed/mineral/bscrystal,
/area/awaymission/BMPship)
"hE" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
diff --git a/_maps/RandomRuins/SpaceRuins/ntfacility.dmm b/_maps/RandomRuins/SpaceRuins/ntfacility.dmm
index d17fe7601d26..c9a4b0798185 100644
--- a/_maps/RandomRuins/SpaceRuins/ntfacility.dmm
+++ b/_maps/RandomRuins/SpaceRuins/ntfacility.dmm
@@ -114,7 +114,7 @@
/obj/effect/mob_spawn/human/corpse/assistant{
outfit = /datum/outfit/job/cmo
},
-/mob/living/simple_animal/hostile/zombie,
+/mob/living/simple_animal/hostile/human/zombie,
/turf/open/floor/mineral/titanium/blue,
/area/ruin/powered)
"dh" = (
@@ -136,7 +136,7 @@
/turf/open/floor/plating,
/area/ruin/powered)
"dm" = (
-/mob/living/simple_animal/hostile/zombie,
+/mob/living/simple_animal/hostile/human/zombie,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/dark,
/area/ruin/powered)
@@ -269,7 +269,7 @@
/turf/open/floor/plating,
/area/ruin/powered)
"gb" = (
-/mob/living/simple_animal/hostile/zombie,
+/mob/living/simple_animal/hostile/human/zombie,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/dark,
@@ -389,8 +389,8 @@
/turf/open/floor/vault,
/area/ruin/powered)
"hI" = (
-/mob/living/simple_animal/hostile/zombie,
-/mob/living/simple_animal/hostile/zombie,
+/mob/living/simple_animal/hostile/human/zombie,
+/mob/living/simple_animal/hostile/human/zombie,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ruin/powered)
@@ -478,7 +478,7 @@
/turf/open/floor/plasteel/white,
/area/ruin/powered)
"jP" = (
-/mob/living/simple_animal/hostile/zombie,
+/mob/living/simple_animal/hostile/human/zombie,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/corner/opaque/black{
@@ -568,7 +568,7 @@
pixel_x = -12
},
/obj/effect/gibspawner/human,
-/mob/living/simple_animal/hostile/zombie,
+/mob/living/simple_animal/hostile/human/zombie,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/dark,
@@ -879,7 +879,7 @@
/obj/effect/turf_decal/number/four{
dir = 4
},
-/mob/living/simple_animal/hostile/zombie,
+/mob/living/simple_animal/hostile/human/zombie,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/dark,
@@ -1113,13 +1113,13 @@
/obj/effect/decal/cleanable/blood/tracks{
dir = 6
},
-/mob/living/simple_animal/hostile/zombie,
+/mob/living/simple_animal/hostile/human/zombie,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/ruin/powered)
"BG" = (
-/mob/living/simple_animal/hostile/zombie,
+/mob/living/simple_animal/hostile/human/zombie,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel,
@@ -1633,7 +1633,7 @@
dir = 8
},
/obj/structure/window/reinforced,
-/obj/machinery/computer/communications{
+/obj/structure/frame/computer{
dir = 1
},
/turf/open/floor/wood,
@@ -1671,7 +1671,7 @@
/turf/open/floor/plasteel/dark,
/area/ruin/powered)
"LD" = (
-/mob/living/simple_animal/hostile/zombie,
+/mob/living/simple_animal/hostile/human/zombie,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/carpet/royalblue,
@@ -1959,7 +1959,7 @@
/area/ruin/powered)
"TD" = (
/obj/effect/gibspawner/human,
-/mob/living/simple_animal/hostile/zombie,
+/mob/living/simple_animal/hostile/human/zombie,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/dark,
@@ -2037,7 +2037,7 @@
/turf/open/floor/plasteel/dark,
/area/ruin/powered)
"VE" = (
-/mob/living/simple_animal/hostile/zombie,
+/mob/living/simple_animal/hostile/human/zombie,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/dark,
@@ -2140,7 +2140,7 @@
/turf/open/floor/carpet/royalblue,
/area/ruin/powered)
"XB" = (
-/mob/living/simple_animal/hostile/zombie,
+/mob/living/simple_animal/hostile/human/zombie,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ruin/powered)
@@ -2221,7 +2221,7 @@
/area/ruin/powered)
"Zu" = (
/obj/machinery/door/poddoor/preopen,
-/mob/living/simple_animal/hostile/zombie,
+/mob/living/simple_animal/hostile/human/zombie,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/dark,
/area/ruin/powered)
diff --git a/_maps/RandomRuins/SpaceRuins/onehalf.dmm b/_maps/RandomRuins/SpaceRuins/onehalf.dmm
index 0ff038bd93de..85f087ec38a9 100644
--- a/_maps/RandomRuins/SpaceRuins/onehalf.dmm
+++ b/_maps/RandomRuins/SpaceRuins/onehalf.dmm
@@ -1766,7 +1766,7 @@
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/onehalf)
"Gv" = (
-/obj/machinery/computer/communications{
+/obj/structure/frame/computer{
dir = 8
},
/turf/open/floor/plasteel,
diff --git a/_maps/RandomRuins/SpaceRuins/provinggrounds.dmm b/_maps/RandomRuins/SpaceRuins/provinggrounds.dmm
index 7577cdeb99f5..83e662b69ad0 100644
--- a/_maps/RandomRuins/SpaceRuins/provinggrounds.dmm
+++ b/_maps/RandomRuins/SpaceRuins/provinggrounds.dmm
@@ -115,7 +115,7 @@
/turf/open/floor/plasteel/tech/techmaint,
/area/ruin/space/has_grav/syndicircle/research)
"du" = (
-/mob/living/simple_animal/hostile/syndicate/civilian{
+/mob/living/simple_animal/hostile/human/syndicate/civilian{
name = "Syndicate Researcher"
},
/turf/open/floor/mineral/plastitanium/red,
@@ -232,7 +232,7 @@
/turf/open/floor/plating/asteroid/snow/atmosphere,
/area/ruin/space/has_grav/syndicircle/winter)
"gz" = (
-/mob/living/simple_animal/hostile/syndicate/ranged/smg{
+/mob/living/simple_animal/hostile/human/syndicate/ranged/smg{
name = "REDFOR operative"
},
/turf/open/floor/plating/asteroid/snow/atmosphere,
@@ -309,7 +309,7 @@
/obj/structure/flippedtable{
dir = 4
},
-/mob/living/simple_animal/hostile/nanotrasen/ranged/smg{
+/mob/living/simple_animal/hostile/human/nanotrasen/ranged/smg{
name = "BLUFOR operative"
},
/turf/open/floor/plasteel/tech,
@@ -422,7 +422,7 @@
/turf/open/floor/mineral/plastitanium,
/area/ruin/space/has_grav/syndicircle/halls)
"lX" = (
-/mob/living/simple_animal/hostile/syndicate/ranged/infiltrator{
+/mob/living/simple_animal/hostile/human/syndicate/ranged/infiltrator{
name = "REDFOR operative"
},
/turf/open/floor/plasteel/tech/techmaint,
@@ -465,7 +465,7 @@
/area/ruin/space/has_grav/syndicircle/winter)
"na" = (
/obj/structure/flippedtable,
-/mob/living/simple_animal/hostile/nanotrasen/ranged/smg{
+/mob/living/simple_animal/hostile/human/nanotrasen/ranged/smg{
name = "BLUFOR operative"
},
/obj/structure/cable{
@@ -497,7 +497,7 @@
/turf/open/floor/plating,
/area/ruin/space/has_grav/syndicircle/winter)
"ov" = (
-/mob/living/simple_animal/hostile/syndicate/civilian{
+/mob/living/simple_animal/hostile/human/syndicate/civilian{
name = "Syndicate Researcher"
},
/obj/structure/cable{
@@ -561,7 +561,7 @@
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ruin/space/has_grav/syndicircle/winter)
"qv" = (
-/mob/living/simple_animal/hostile/syndicate/ranged/shotgun{
+/mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun{
name = "REDFOR operative"
},
/turf/open/floor/plating/ice,
@@ -610,7 +610,7 @@
/obj/effect/turf_decal/ntlogo{
dir = 1
},
-/mob/living/simple_animal/hostile/syndicate/ranged/smg/space{
+/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space{
name = "REDFOR commando"
},
/turf/open/floor/mineral/titanium/white,
@@ -693,7 +693,7 @@
/obj/effect/turf_decal/ntlogo{
dir = 4
},
-/mob/living/simple_animal/hostile/syndicate/ranged/smg/space{
+/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space{
name = "REDFOR commando"
},
/turf/open/floor/mineral/titanium/white,
@@ -1222,7 +1222,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/mob/living/simple_animal/hostile/syndicate,
+/mob/living/simple_animal/hostile/human/syndicate,
/turf/open/floor/mineral/plastitanium,
/area/ruin/space/has_grav/syndicircle/halls)
"Fv" = (
@@ -1247,7 +1247,7 @@
/turf/open/floor/plasteel/tech/techmaint,
/area/ruin/space/has_grav/syndicircle/research)
"FM" = (
-/mob/living/simple_animal/hostile/syndicate/civilian{
+/mob/living/simple_animal/hostile/human/syndicate/civilian{
name = "Syndicate Researcher"
},
/turf/open/floor/mineral/plastitanium,
@@ -1304,7 +1304,7 @@
/turf/open/space/basic,
/area/ruin/space/has_grav/syndicircle/halls)
"HC" = (
-/mob/living/simple_animal/hostile/syndicate/civilian{
+/mob/living/simple_animal/hostile/human/syndicate/civilian{
name = "Syndicate Researcher"
},
/obj/structure/cable{
@@ -1507,7 +1507,7 @@
/area/ruin/space/has_grav/syndicircle/training)
"MP" = (
/obj/effect/decal/cleanable/dirt,
-/mob/living/simple_animal/hostile/syndicate/ranged/smg/space{
+/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space{
name = "REDFOR commando"
},
/obj/item/storage/backpack/duffelbag/syndie/c4,
@@ -1608,7 +1608,7 @@
/turf/open/floor/plating/dirt/jungle/wasteland,
/area/ruin/space/has_grav/syndicircle/training)
"Rj" = (
-/mob/living/simple_animal/hostile/syndicate,
+/mob/living/simple_animal/hostile/human/syndicate,
/turf/open/floor/mineral/plastitanium,
/area/ruin/space/has_grav/syndicircle/halls)
"Rs" = (
@@ -1670,7 +1670,7 @@
/obj/structure/chair/comfy/shuttle{
dir = 8
},
-/mob/living/simple_animal/hostile/nanotrasen/ranged{
+/mob/living/simple_animal/hostile/human/nanotrasen/ranged{
name = "BLUFOR operative"
},
/turf/open/floor/mineral/titanium,
@@ -1705,7 +1705,7 @@
dir = 4
},
/obj/effect/decal/cleanable/dirt,
-/mob/living/simple_animal/hostile/nanotrasen/ranged{
+/mob/living/simple_animal/hostile/human/nanotrasen/ranged{
name = "BLUFOR operative"
},
/turf/open/floor/mineral/titanium,
@@ -1756,7 +1756,7 @@
/turf/open/floor/mineral/plastitanium/red,
/area/ruin/space/has_grav/syndicircle/halls)
"UA" = (
-/mob/living/simple_animal/hostile/syndicate,
+/mob/living/simple_animal/hostile/human/syndicate,
/turf/open/floor/mineral/plastitanium/red,
/area/ruin/space/has_grav/syndicircle/halls)
"UI" = (
@@ -1794,7 +1794,7 @@
/obj/structure/chair/comfy/shuttle{
dir = 4
},
-/mob/living/simple_animal/hostile/nanotrasen/ranged{
+/mob/living/simple_animal/hostile/human/nanotrasen/ranged{
name = "BLUFOR operative"
},
/turf/open/floor/mineral/titanium,
@@ -1931,7 +1931,7 @@
/turf/open/floor/mineral/plastitanium,
/area/ruin/space/has_grav/syndicircle/halls)
"XW" = (
-/mob/living/simple_animal/hostile/syndicate/melee/space{
+/mob/living/simple_animal/hostile/human/syndicate/melee/space{
name = "REDFOR commando"
},
/turf/open/space,
@@ -1950,7 +1950,7 @@
/area/ruin/space/has_grav/syndicircle/escape)
"Yr" = (
/obj/structure/chair/comfy/shuttle,
-/mob/living/simple_animal/hostile/syndicate/mecha_pilot/no_mech/nanotrasen{
+/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/no_mech/nanotrasen{
name = "BLUFOR Pilot"
},
/turf/open/floor/mineral/titanium/blue,
@@ -2027,7 +2027,7 @@
/area/ruin/space/has_grav/syndicircle/halls)
"ZU" = (
/obj/effect/decal/cleanable/dirt,
-/mob/living/simple_animal/hostile/syndicate/ranged/smg/space{
+/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space{
name = "REDFOR commando"
},
/turf/open/floor/plating/asteroid/airless,
diff --git a/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm b/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm
index 202a6c0c0b74..54896bfe8630 100644
--- a/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm
+++ b/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm
@@ -827,7 +827,7 @@
/obj/structure/spacevine/dense{
pixel_x = -32
},
-/mob/living/simple_animal/hostile/zombie/kudzu{
+/mob/living/simple_animal/hostile/human/zombie/kudzu{
zombiejob = "Assistant"
},
/obj/structure/flora/ausbushes/lavendergrass,
@@ -885,7 +885,7 @@
/area/ruin/space/has_grav/singularitylab/cargo)
"dx" = (
/obj/structure/spacevine/dense,
-/mob/living/simple_animal/hostile/zombie/kudzu{
+/mob/living/simple_animal/hostile/human/zombie/kudzu{
zombiejob = "Assistant"
},
/turf/open/floor/plating/grass/jungle{
@@ -2576,7 +2576,7 @@
},
/obj/structure/window/reinforced/tinted/frosted,
/obj/item/soap/nanotrasen,
-/mob/living/simple_animal/hostile/zombie/kudzu{
+/mob/living/simple_animal/hostile/human/zombie/kudzu{
zombiejob = "Assistant"
},
/turf/open/floor/plasteel/dark,
@@ -2642,7 +2642,7 @@
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space/has_grav)
"kR" = (
-/mob/living/simple_animal/hostile/zombie/kudzu{
+/mob/living/simple_animal/hostile/human/zombie/kudzu{
zombiejob = "Cargo Technician"
},
/obj/effect/turf_decal/siding/yellow{
@@ -2942,7 +2942,7 @@
/area/ruin/space/has_grav/singularitylab/lab)
"lL" = (
/obj/structure/spacevine/dense,
-/mob/living/simple_animal/hostile/zombie/kudzu{
+/mob/living/simple_animal/hostile/human/zombie/kudzu{
zombiejob = "Assistant"
},
/obj/structure/flora/ausbushes/fullgrass,
@@ -3049,7 +3049,7 @@
/area/ruin/space/has_grav/singularitylab/cargo)
"mj" = (
/obj/structure/spacevine/dense,
-/mob/living/simple_animal/hostile/zombie/kudzu{
+/mob/living/simple_animal/hostile/human/zombie/kudzu{
zombiejob = "Assistant"
},
/obj/structure/flora/ausbushes/fullgrass,
@@ -3290,7 +3290,7 @@
/area/ruin/space/has_grav/singularitylab/reactor)
"nd" = (
/obj/effect/turf_decal/corner/opaque/white/full,
-/mob/living/simple_animal/hostile/zombie/kudzu{
+/mob/living/simple_animal/hostile/human/zombie/kudzu{
zombiejob = "Scientist"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
@@ -3610,7 +3610,7 @@
},
/area/ruin/space/has_grav/singularitylab)
"ol" = (
-/mob/living/simple_animal/hostile/zombie/kudzu{
+/mob/living/simple_animal/hostile/human/zombie/kudzu{
zombiejob = "Shaft Miner"
},
/turf/open/floor/plasteel/dark,
@@ -4271,7 +4271,7 @@
dir = 10
},
/obj/structure/railing/corner,
-/mob/living/simple_animal/hostile/zombie/kudzu{
+/mob/living/simple_animal/hostile/human/zombie/kudzu{
zombiejob = "Station Engineer"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
@@ -5557,7 +5557,7 @@
/area/ruin/space/has_grav/singularitylab)
"wV" = (
/obj/structure/spacevine/dense,
-/mob/living/simple_animal/hostile/zombie/kudzu{
+/mob/living/simple_animal/hostile/human/zombie/kudzu{
zombiejob = "Assistant"
},
/turf/open/floor/plating/grass/jungle{
@@ -6315,7 +6315,7 @@
"zC" = (
/obj/effect/turf_decal/corner/opaque/white/full,
/obj/effect/turf_decal/corner/opaque/white/full,
-/mob/living/simple_animal/hostile/zombie/kudzu{
+/mob/living/simple_animal/hostile/human/zombie/kudzu{
zombiejob = "Scientist"
},
/obj/effect/turf_decal/siding/thinplating/light,
@@ -6899,7 +6899,7 @@
/obj/effect/turf_decal/corner/opaque/purple{
dir = 5
},
-/mob/living/simple_animal/hostile/zombie/kudzu{
+/mob/living/simple_animal/hostile/human/zombie/kudzu{
zombiejob = "Scientist"
},
/turf/open/floor/plasteel,
@@ -7222,7 +7222,7 @@
"CX" = (
/obj/effect/turf_decal/corner/opaque/white/full,
/obj/effect/turf_decal/corner/opaque/white/full,
-/mob/living/simple_animal/hostile/zombie/kudzu{
+/mob/living/simple_animal/hostile/human/zombie/kudzu{
zombiejob = "Scientist"
},
/obj/effect/turf_decal/siding/thinplating/light{
@@ -9024,7 +9024,7 @@
/obj/structure/chair/office{
dir = 8
},
-/mob/living/simple_animal/hostile/zombie/kudzu{
+/mob/living/simple_animal/hostile/human/zombie/kudzu{
zombiejob = "Security Officer"
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
@@ -9452,7 +9452,7 @@
pixel_y = 4
},
/obj/effect/turf_decal/corner/opaque/white/full,
-/mob/living/simple_animal/hostile/zombie/kudzu{
+/mob/living/simple_animal/hostile/human/zombie/kudzu{
zombiejob = "Scientist"
},
/obj/effect/turf_decal/siding/thinplating/light/corner,
@@ -9798,7 +9798,7 @@
/obj/structure/chair{
dir = 1
},
-/mob/living/simple_animal/hostile/zombie/kudzu{
+/mob/living/simple_animal/hostile/human/zombie/kudzu{
zombiejob = "Cargo Technician"
},
/obj/machinery/light/small/directional/south,
@@ -10328,7 +10328,7 @@
/obj/structure/chair{
dir = 8
},
-/mob/living/simple_animal/hostile/zombie/kudzu{
+/mob/living/simple_animal/hostile/human/zombie/kudzu{
zombiejob = "Cargo Technician"
},
/turf/open/floor/carpet/nanoweave/beige,
@@ -11694,7 +11694,7 @@
/obj/structure/chair/office{
dir = 4
},
-/mob/living/simple_animal/hostile/zombie/kudzu{
+/mob/living/simple_animal/hostile/human/zombie/kudzu{
zombiejob = "Quartermaster"
},
/obj/effect/decal/cleanable/blood{
@@ -12894,7 +12894,7 @@
/area/ruin/space/has_grav/singularitylab/civvie)
"WE" = (
/obj/structure/spacevine,
-/mob/living/simple_animal/hostile/zombie/kudzu{
+/mob/living/simple_animal/hostile/human/zombie/kudzu{
zombiejob = "Assistant"
},
/turf/open/floor/plating/grass/jungle{
diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_abandoned_mechbay.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_abandoned_mechbay.dmm
index 20301b381145..31c53d09a82e 100644
--- a/_maps/RandomRuins/WasteRuins/wasteplanet_abandoned_mechbay.dmm
+++ b/_maps/RandomRuins/WasteRuins/wasteplanet_abandoned_mechbay.dmm
@@ -480,7 +480,7 @@
/area/ruin/wasteplanet/abandoned_mechbay/bay1)
"fe" = (
/obj/effect/decal/cleanable/dirt/dust,
-/mob/living/simple_animal/hostile/syndicate/melee{
+/mob/living/simple_animal/hostile/human/syndicate/melee{
name = "Syndicate Mech Pilot"
},
/turf/open/floor/concrete/slab_1,
@@ -1376,7 +1376,7 @@
dir = 4
},
/obj/effect/decal/cleanable/plastic,
-/mob/living/simple_animal/hostile/syndicate/ranged/shotgun,
+/mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun,
/turf/open/floor/plasteel/dark,
/area/ruin/wasteplanet/abandoned_mechbay/mechlab)
"pA" = (
@@ -1499,7 +1499,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/mob/living/simple_animal/hostile/syndicate{
+/mob/living/simple_animal/hostile/human/syndicate{
name = "Syndicate Engineer";
desc = "Death to bad mechanics."
},
@@ -1558,7 +1558,7 @@
/area/ruin/wasteplanet/abandoned_mechbay/bay1)
"rT" = (
/obj/structure/chair/sofa/brown/right/directional/south,
-/mob/living/simple_animal/hostile/syndicate{
+/mob/living/simple_animal/hostile/human/syndicate{
name = "Syndicate Engineer";
desc = "Death to bad mechanics."
},
@@ -1779,7 +1779,7 @@
/obj/machinery/camera/autoname{
dir = 4
},
-/mob/living/simple_animal/hostile/syndicate/ranged/smg/space,
+/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space,
/turf/open/floor/plasteel/tech/techmaint,
/area/ruin/wasteplanet/abandoned_mechbay/crewquarters)
"uM" = (
@@ -1907,7 +1907,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/mob/living/simple_animal/hostile/syndicate/ranged/shotgun,
+/mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun,
/turf/open/floor/plasteel/dark,
/area/ruin/wasteplanet/abandoned_mechbay/mechlab)
"vS" = (
@@ -2047,7 +2047,7 @@
/obj/structure/cable{
icon_state = "0-4"
},
-/mob/living/simple_animal/hostile/syndicate{
+/mob/living/simple_animal/hostile/human/syndicate{
name = "Syndicate Launderer";
desc = "Death to Dirty Laundry?"
},
@@ -2180,7 +2180,7 @@
dir = 8
},
/obj/machinery/light/floor,
-/mob/living/simple_animal/hostile/syndicate/ranged/smg/space,
+/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space,
/obj/machinery/door/firedoor/border_only{
dir = 8
},
@@ -2473,7 +2473,7 @@
pixel_y = 19
},
/obj/structure/curtain,
-/mob/living/simple_animal/hostile/syndicate/civilian{
+/mob/living/simple_animal/hostile/human/syndicate/civilian{
desc = "Can an armored mook not shower in peace?"
},
/turf/open/floor/carpet/blue,
@@ -2722,7 +2722,7 @@
dir = 1
},
/obj/effect/decal/cleanable/dirt,
-/mob/living/simple_animal/hostile/syndicate/melee{
+/mob/living/simple_animal/hostile/human/syndicate/melee{
name = "Syndicate Mech Pilot"
},
/turf/open/floor/plasteel/tech/techmaint,
@@ -2770,7 +2770,7 @@
/area/overmap_encounter/planetoid/cave/explored)
"Hj" = (
/obj/machinery/light/dim/directional/south,
-/mob/living/simple_animal/hostile/syndicate/melee{
+/mob/living/simple_animal/hostile/human/syndicate/melee{
name = "Syndicate Mech Pilot"
},
/turf/open/floor/plasteel/tech/techmaint,
@@ -3015,7 +3015,7 @@
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light/directional/south,
-/mob/living/simple_animal/hostile/syndicate/melee{
+/mob/living/simple_animal/hostile/human/syndicate/melee{
name = "Syndicate Mech Pilot"
},
/turf/open/floor/plasteel/dark,
@@ -3056,7 +3056,7 @@
/obj/effect/turf_decal/industrial/warning{
dir = 8
},
-/mob/living/simple_animal/hostile/syndicate{
+/mob/living/simple_animal/hostile/human/syndicate{
name = "Syndicate Engineer";
desc = "Death to bad mechanics."
},
@@ -3375,7 +3375,7 @@
},
/obj/effect/decal/cleanable/dirt,
/obj/item/radio/intercom/directional/west,
-/mob/living/simple_animal/hostile/syndicate{
+/mob/living/simple_animal/hostile/human/syndicate{
name = "Syndicate Engineer";
desc = "Death to bad mechanics."
},
diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_clowncrash.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_clowncrash.dmm
index ae2434a3ca45..11c0ecc1a2ff 100644
--- a/_maps/RandomRuins/WasteRuins/wasteplanet_clowncrash.dmm
+++ b/_maps/RandomRuins/WasteRuins/wasteplanet_clowncrash.dmm
@@ -96,7 +96,7 @@
/area/overmap_encounter/planetoid/cave/explored)
"r" = (
/obj/structure/table/reinforced,
-/obj/item/stack/ore/bananium,
+/obj/item/stack/ore/hellstone,
/turf/open/floor/plating/asteroid,
/area/overmap_encounter/planetoid/cave/explored)
"s" = (
diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_fortress_of_solitide.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_fortress_of_solitide.dmm
index 73735c65542b..b795826ec6c2 100644
--- a/_maps/RandomRuins/WasteRuins/wasteplanet_fortress_of_solitide.dmm
+++ b/_maps/RandomRuins/WasteRuins/wasteplanet_fortress_of_solitide.dmm
@@ -342,7 +342,7 @@
"cX" = (
/obj/structure/statue/bananium/clown,
/obj/effect/decal/cleanable/cobweb/cobweb2,
-/turf/open/floor/mineral/bananium,
+/turf/open/floor/mineral/gold,
/area/ruin/powered)
"dg" = (
/obj/structure/sign/poster/contraband/eat,
@@ -430,7 +430,7 @@
/area/ruin/powered)
"ed" = (
/obj/item/trash/cheesie,
-/turf/open/floor/mineral/bananium,
+/turf/open/floor/mineral/gold,
/area/ruin/powered)
"ee" = (
/obj/machinery/photocopier,
@@ -578,12 +578,8 @@
/turf/open/floor/plating/rust,
/area/ruin/powered)
"fk" = (
-/obj/machinery/door/airlock/bananium{
- name = "Clown Embassy";
- dir = 4
- },
/obj/item/grown/bananapeel,
-/turf/open/floor/mineral/bananium,
+/turf/open/floor/mineral/gold,
/area/ruin/powered)
"fn" = (
/obj/effect/gibspawner/human,
@@ -695,7 +691,7 @@
/area/ruin/powered)
"go" = (
/obj/machinery/light/small/directional/west,
-/turf/open/floor/mineral/bananium,
+/turf/open/floor/mineral/gold,
/area/ruin/powered)
"gp" = (
/mob/living/simple_animal/hostile/rat,
@@ -735,7 +731,7 @@
/turf/open/floor/plating,
/area/ruin/powered)
"gL" = (
-/turf/open/floor/mineral/bananium,
+/turf/open/floor/mineral/gold,
/area/ruin/powered)
"gM" = (
/obj/structure/rack,
@@ -762,7 +758,7 @@
/area/ruin/powered)
"hd" = (
/obj/item/reagent_containers/food/snacks/cakeslice/clown_slice,
-/turf/open/floor/mineral/bananium,
+/turf/open/floor/mineral/gold,
/area/ruin/powered)
"he" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
@@ -1123,7 +1119,7 @@
/obj/effect/decal/cleanable/blood,
/obj/effect/mob_spawn/human/clown/corpse,
/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/mineral/bananium,
+/turf/open/floor/mineral/gold,
/area/ruin/powered)
"kO" = (
/obj/item/trash/chips,
@@ -1133,7 +1129,7 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/mineral/bananium,
+/turf/open/floor/mineral/gold,
/area/ruin/powered)
"kS" = (
/obj/effect/decal/cleanable/blood,
@@ -1507,7 +1503,7 @@
/obj/item/pneumatic_cannon/pie,
/obj/item/reagent_containers/spray/waterflower/lube,
/obj/machinery/light/small/directional/east,
-/turf/open/floor/mineral/bananium,
+/turf/open/floor/mineral/gold,
/area/ruin/powered)
"nK" = (
/obj/structure/table,
@@ -2100,7 +2096,7 @@
/obj/structure/chair/wood{
dir = 8
},
-/mob/living/simple_animal/hostile/frontier{
+/mob/living/simple_animal/hostile/human/frontier{
dir = 8
},
/turf/open/floor/wood,
@@ -2375,7 +2371,7 @@
/obj/effect/decal/cleanable/blood,
/obj/effect/mob_spawn/human/clown/corpse,
/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/mineral/bananium,
+/turf/open/floor/mineral/gold,
/area/ruin/powered)
"vX" = (
/obj/item/ammo_casing,
@@ -2773,7 +2769,7 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/generic,
/obj/item/trash/cheesie,
-/turf/open/floor/mineral/bananium,
+/turf/open/floor/mineral/gold,
/area/ruin/powered)
"Aa" = (
/obj/effect/decal/cleanable/dirt/dust,
@@ -3113,7 +3109,7 @@
/area/ruin/powered)
"Cy" = (
/obj/structure/closet/cardboard,
-/obj/item/coin/bananium,
+/obj/item/coin/hellstone,
/obj/item/reagent_containers/food/snacks/soup/clownstears,
/turf/open/floor/plating,
/area/ruin/powered)
@@ -4333,7 +4329,7 @@
"Ow" = (
/obj/structure/table/wood/fancy/orange,
/obj/item/clothing/under/rank/civilian/clown/rainbow,
-/turf/open/floor/mineral/bananium,
+/turf/open/floor/mineral/gold,
/area/ruin/powered)
"Ox" = (
/obj/effect/decal/cleanable/dirt/dust,
@@ -4422,7 +4418,7 @@
/area/ruin/powered)
"Pr" = (
/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/mineral/bananium,
+/turf/open/floor/mineral/gold,
/area/ruin/powered)
"Px" = (
/mob/living/simple_animal/hostile/rat,
@@ -5549,7 +5545,7 @@
/turf/open/floor/plating,
/area/ruin/powered)
"Zo" = (
-/mob/living/simple_animal/hostile/cat_butcherer{
+/mob/living/simple_animal/hostile/human/cat_butcherer{
dir = 4
},
/obj/effect/decal/cleanable/blood,
diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm
index b6298e29f39d..a880d2947ae2 100644
--- a/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm
+++ b/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm
@@ -659,7 +659,7 @@
/turf/open/floor/mineral/titanium/white,
/area/ruin/wasteplanet)
"Bb" = (
-/mob/living/simple_animal/hostile/skeleton{
+/mob/living/simple_animal/hostile/human/skeleton{
desc = "A villager resurrected by the power of an unknown deity, eternally seeking vengeance for its people."
},
/turf/open/floor/plating/dirt/old/waste,
@@ -791,7 +791,7 @@
/turf/open/indestructible/hierophant/waste,
/area/ruin/wasteplanet)
"Fc" = (
-/mob/living/simple_animal/hostile/skeleton{
+/mob/living/simple_animal/hostile/human/skeleton{
desc = "A villager resurrected by the power of an unknown deity, eternally seeking vengeance for its people."
},
/turf/open/floor/wood/waste,
@@ -1378,7 +1378,7 @@
/turf/open/indestructible/hierophant/waste,
/area/ruin/wasteplanet)
"Xq" = (
-/mob/living/simple_animal/hostile/skeleton{
+/mob/living/simple_animal/hostile/human/skeleton{
desc = "A villager resurrected by the power of an unknown deity, eternally seeking vengeance for its people."
},
/turf/open/floor/plating/grass/wasteplanet,
diff --git a/_maps/configs/independent_beluga.json b/_maps/configs/independent_beluga.json
index 64230b0dc797..6d7926a8e845 100644
--- a/_maps/configs/independent_beluga.json
+++ b/_maps/configs/independent_beluga.json
@@ -13,7 +13,6 @@
],
"starting_funds": 4000,
"limit": 2,
- "roundstart": true,
"job_slots": {
"Captain": {
"outfit": "/datum/outfit/job/independent/captain",
diff --git a/_maps/configs/independent_dwayne.json b/_maps/configs/independent_dwayne.json
index 6fd5d86b8e37..a11e2dd0018c 100644
--- a/_maps/configs/independent_dwayne.json
+++ b/_maps/configs/independent_dwayne.json
@@ -15,7 +15,6 @@
"Mining",
"Cargo"
],
- "roundstart": true,
"limit": 1,
"job_slots": {
"Captain": {
diff --git a/_maps/configs/independent_mudskipper.json b/_maps/configs/independent_mudskipper.json
index 1dfd48861d13..9f4cf32e0cf8 100644
--- a/_maps/configs/independent_mudskipper.json
+++ b/_maps/configs/independent_mudskipper.json
@@ -14,7 +14,6 @@
"SPACE"
],
"map_path": "_maps/shuttles/independent/independent_mudskipper.dmm",
- "roundstart": true,
"limit": 2,
"starting_funds": 1500,
"job_slots": {
diff --git a/_maps/configs/independent_rigger.json b/_maps/configs/independent_rigger.json
index 3550773cc0e4..e36b57ca750a 100644
--- a/_maps/configs/independent_rigger.json
+++ b/_maps/configs/independent_rigger.json
@@ -15,7 +15,6 @@
"Generalist"
],
"map_path": "_maps/shuttles/independent/independent_rigger.dmm",
- "roundstart": true,
"limit": 1,
"job_slots": {
"Captain": {
diff --git a/_maps/configs/independent_shetland.json b/_maps/configs/independent_shetland.json
index 344f9a99ee50..de5873f80d75 100644
--- a/_maps/configs/independent_shetland.json
+++ b/_maps/configs/independent_shetland.json
@@ -14,7 +14,6 @@
],
"map_path": "_maps/shuttles/independent/independent_shetland.dmm",
"map_id": "independent_shetland",
- "roundstart": true,
"job_slots": {
"Captain": {
"outfit": "/datum/outfit/job/independent/captain/cheap",
diff --git a/_maps/configs/nanotrasen_skipper.json b/_maps/configs/nanotrasen_skipper.json
index 9ced4c28038c..2f61c3afa601 100644
--- a/_maps/configs/nanotrasen_skipper.json
+++ b/_maps/configs/nanotrasen_skipper.json
@@ -17,7 +17,6 @@
"Mining"
],
"starting_funds": 4500,
- "roundstart": true,
"job_slots": {
"Captain": {
"outfit": "/datum/outfit/job/nanotrasen/captain",
diff --git a/_maps/map_catalogue.txt b/_maps/map_catalogue.txt
index a62c39bcaabb..ca3748b4c94c 100644
--- a/_maps/map_catalogue.txt
+++ b/_maps/map_catalogue.txt
@@ -241,9 +241,9 @@ Find the key for using this catalogue in "map_catalogue_key.txt"
Size = (x = 30)(y = 20)(z = 1)
Tags = "Medium combat Challenge", "Medium Loot", "Inhospitable"
- File Name = "_maps\RandomRuins\RockRuins\.dmm"
- Size = (x = 9)(y = 9)(z = 1)
- Tags = "Boss Combat Challenge", "Major Loot", "Hazardous", "Inhospitable"
+ File Name = "_maps\RandomRuins\RockRuins\rockplanet_shippingdock.dmm"
+ Size = (x = 85)(y = 73)(z = 1)
+ Tags = "Medium Combat Challenge", "Medium Loot", "Hazardous", "Shelter"
File Name = "_maps\RandomRuins\RockRuins\rockplanet_nomadcrash.dmm"
Size = (x = 58)(y = 48)(z = 1)
diff --git a/_maps/shuttles/independent/independent_beluga.dmm b/_maps/shuttles/independent/independent_beluga.dmm
index f1595e0ffaa1..dd0519efde1e 100644
--- a/_maps/shuttles/independent/independent_beluga.dmm
+++ b/_maps/shuttles/independent/independent_beluga.dmm
@@ -4857,7 +4857,7 @@
/turf/open/floor/plasteel/tech,
/area/ship/cargo)
"VV" = (
-/obj/machinery/computer/communications{
+/obj/structure/frame/computer{
dir = 8
},
/obj/effect/turf_decal/techfloor{
diff --git a/_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm b/_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm
index 8a34bb9ff0ff..8314f17e288c 100644
--- a/_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm
+++ b/_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm
@@ -1467,9 +1467,8 @@
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/cargo/port)
"ph" = (
-/obj/machinery/computer/communications{
- dir = 8;
- icon_state = "computer-left"
+/obj/structure/frame/computer{
+ dir = 8
},
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
@@ -1934,7 +1933,7 @@
/obj/structure/railing,
/obj/machinery/computer/atmos_control/incinerator{
dir = 4;
- sensors = list("gecko_burn_sensor"="Combustion Chamber")
+ sensors = list("gecko_burn_sensor"="Combustion Chamber")
},
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering/engine)
@@ -2853,7 +2852,7 @@
"CI" = (
/obj/machinery/computer/helm{
dir = 8;
- icon_state = "computer-middle"
+ icon_state = "computer-left"
},
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
diff --git a/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm b/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm
index e4f74b4577e2..774f1d57cc40 100644
--- a/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm
+++ b/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm
@@ -2334,9 +2334,8 @@
/turf/open/floor/plasteel,
/area/ship/crew/cryo)
"pm" = (
-/obj/machinery/computer/communications{
- dir = 8;
- icon_state = "computer-right"
+/obj/structure/frame/computer{
+ dir = 8
},
/turf/open/floor/plasteel/tech/grid,
/area/ship/bridge)
@@ -3088,8 +3087,7 @@
/area/ship/bridge)
"ud" = (
/obj/machinery/computer/helm{
- dir = 8;
- icon_state = "computer-left"
+ dir = 8
},
/turf/open/floor/plasteel/tech/grid,
/area/ship/bridge)
diff --git a/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm b/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm
index bc4db627e44b..93c59445ee41 100644
--- a/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm
+++ b/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm
@@ -2693,7 +2693,7 @@
/turf/open/floor/wood,
/area/ship/hallway/central)
"uY" = (
-/obj/machinery/computer/communications{
+/obj/structure/frame/computer{
dir = 8
},
/obj/effect/turf_decal/corner/opaque/ntblue/half{
@@ -2868,7 +2868,7 @@
pixel_x = 4;
pixel_y = 8
},
-/obj/item/coin/adamantine{
+/obj/item/coin/hellstone{
pixel_x = -12;
pixel_y = -3
},
diff --git a/_maps/shuttles/pirate/pirate_noderider.dmm b/_maps/shuttles/pirate/pirate_noderider.dmm
index 10c591d8f52f..2e0352c54a58 100644
--- a/_maps/shuttles/pirate/pirate_noderider.dmm
+++ b/_maps/shuttles/pirate/pirate_noderider.dmm
@@ -435,9 +435,7 @@
id = "noderiders";
name = "cargo airshield"
},
-/obj/machinery/computer/crew{
- icon_state = "computer-right"
- },
+/obj/machinery/computer/crew,
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
"fG" = (
@@ -1570,9 +1568,7 @@
pixel_y = 25
},
/obj/machinery/firealarm/directional/west,
-/obj/machinery/computer/communications{
- icon_state = "computer-left"
- },
+/obj/structure/frame/computer,
/obj/machinery/light/small/built/directional/north{
pixel_x = 16
},
diff --git a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm
index f420ba047123..11840b667214 100644
--- a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm
+++ b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm
@@ -2560,11 +2560,8 @@
/obj/effect/turf_decal/corner/opaque/syndiered/half{
dir = 4
},
-/obj/machinery/computer/communications{
- dir = 8;
- req_access = list(151);
- set_obj_flags = "EMAGGED";
- icon_state = "computer-right"
+/obj/structure/frame/computer{
+ dir = 8
},
/turf/open/floor/mineral/plastitanium,
/area/ship/bridge)
@@ -4262,7 +4259,7 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/computer/helm{
dir = 8;
- icon_state = "computer-middle"
+ icon_state = "computer-right"
},
/obj/effect/turf_decal/corner/opaque/syndiered/half{
dir = 4
diff --git a/check_regex.yaml b/check_regex.yaml
index 538d570daea4..e01c41995e8e 100644
--- a/check_regex.yaml
+++ b/check_regex.yaml
@@ -38,7 +38,7 @@ standards:
- exactly:
[
- 269,
+ 268,
"non-bitwise << uses",
'(? 360) && !(angle_of_movement < 0))
+ return angle //early return if it doesn't need to change
+ var/new_angle
+ if(angle_of_movement > 360)
+ new_angle = angle_of_movement - 360
+ if(angle_of_movement < 0)
+ new_angle = angle_of_movement + 360
+ return new_angle
+
+/datum/component/movable_physics/process(delta_time)
+ var/atom/movable/moving_atom = parent
+ var/turf/location = get_turf(moving_atom)
+
+ angle_of_movement = fix_angle(angle_of_movement, moving_atom)
+ if(horizontal_velocity <= 0 && moving_atom.pixel_z == 0)
+ horizontal_velocity = 0
+ stop_movement()
+ return
+
+ moving_atom.pixel_x += (horizontal_velocity * (sin(angle_of_movement)))
+ moving_atom.pixel_y += (horizontal_velocity * (cos(angle_of_movement)))
+
+ horizontal_velocity = max(0, horizontal_velocity - horizontal_friction)
+
+ moving_atom.pixel_z = max(z_floor, moving_atom.pixel_z + vertical_velocity)
+ if(moving_atom.pixel_z > z_floor)
+ vertical_velocity -= (z_gravity * 0.05)
+
+ if(moving_atom.pixel_z <= z_floor && (vertical_velocity != 0) && moving_atom.has_gravity(location)) //z bounce
+ z_floor_bounce(moving_atom)
+
+ if(moving_atom.pixel_x > 16)
+ if(moving_atom.Move(get_step(moving_atom, EAST)))
+ moving_atom.pixel_x = -16
+ else
+ moving_atom.pixel_x = 16
+ ricochet(moving_atom, 0)
+ return
+
+ if(moving_atom.pixel_x < -16)
+ if(moving_atom.Move(get_step(moving_atom, WEST)))
+ moving_atom.pixel_x = 16
+ else
+ moving_atom.pixel_x = -16
+ ricochet(moving_atom, 0)
+ return
+
+ if(moving_atom.pixel_y > 16)
+ if(moving_atom.Move(get_step(moving_atom, NORTH)))
+ moving_atom.pixel_y = -16
+ else
+ moving_atom.pixel_y = 16
+ ricochet(moving_atom, 180)
+ return
+
+ if(moving_atom.pixel_y < -16)
+ if(moving_atom.Move(get_step(moving_atom, SOUTH)))
+ moving_atom.pixel_y = 16
+ else
+ moving_atom.pixel_y = -16
+ ricochet(moving_atom, 180)
+
diff --git a/code/datums/components/remote_materials.dm b/code/datums/components/remote_materials.dm
index de61c13ae295..2f3aa79749b2 100644
--- a/code/datums/components/remote_materials.dm
+++ b/code/datums/components/remote_materials.dm
@@ -52,7 +52,7 @@ handles linking back and forth.
/datum/material/diamond,
/datum/material/plasma,
/datum/material/uranium,
- /datum/material/bananium,
+ /datum/material/hellstone,
/datum/material/titanium,
/datum/material/bluespace,
/datum/material/plastic,
diff --git a/code/datums/elements/decals/blood.dm b/code/datums/elements/decals/blood.dm
index 85f75bef2416..0a3ca8ce59a3 100644
--- a/code/datums/elements/decals/blood.dm
+++ b/code/datums/elements/decals/blood.dm
@@ -6,9 +6,11 @@
. = ..()
RegisterSignal(target, COMSIG_ATOM_GET_EXAMINE_NAME, PROC_REF(get_examine_name), TRUE)
+ RegisterSignal(target, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED), PROC_REF(redraw), TRUE)
/datum/element/decal/blood/Detach(atom/source, force)
UnregisterSignal(source, COMSIG_ATOM_GET_EXAMINE_NAME)
+ UnregisterSignal(source, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED))
return ..()
/datum/element/decal/blood/generate_appearance(_icon, _icon_state, _dir, _layer, _color, _alpha, source)
@@ -30,3 +32,11 @@
override[EXAMINE_POSITION_ARTICLE] = A.gender == PLURAL? "some" : "a"
override[EXAMINE_POSITION_BEFORE] = " blood-stained "
return COMPONENT_EXNAME_CHANGED
+
+///this is probably quite bad, let me know if you have a better solution for this -S
+/datum/element/decal/blood/proc/redraw(datum/source, mob/user)
+ SIGNAL_HANDLER
+
+ var/atom/bloodsource = source
+ Detach(source)
+ bloodsource.AddElement(/datum/element/decal/blood, bloodsource.icon, bloodsource.icon_state, _color = get_blood_dna_color(bloodsource.return_blood_DNA()))
diff --git a/code/datums/elements/world_icon.dm b/code/datums/elements/world_icon.dm
new file mode 100644
index 000000000000..bcb0129c6c68
--- /dev/null
+++ b/code/datums/elements/world_icon.dm
@@ -0,0 +1,121 @@
+/////////////////////////////////////////////////////////////
+////////// WORLD ICON ELEMENT DIRECTORY //////////
+/////////////////////////////////////////////////////////////
+//PORTED FROM MOJAVE SUN//
+
+// Slap onto something to give it a world icon that differs from the inventory one (allows for realistically sized objects and all that) //
+// To fix 25/06/2021 : Blood Decals, Mutable Overlays and other baked in bitch ass overlays that need to be remade when the icon changes //
+// Fixed 07/05/2022: Now you can deal with the above by handling everything with attached_proc instead
+// Fixed 12/04/2023: Icon states, Needs major tuning up by someone who can properly make it work
+
+/datum/element/world_icon
+ id_arg_index = 2
+ element_flags = ELEMENT_BESPOKE | ELEMENT_DETACH
+ //If we want COMPLEX world icon behavior, this proc will handle icon updating when the item is NOT in the inventory.
+ //I just assumed that the default update_icon is for inventory sprites because ss13 basically focuses on how the sprites
+ //look on your hand, not how they realistically look in the world.
+ var/attached_proc
+ /// Only used if attached_proc doesn't exist, simply changes the icon of target to this when it's in the inventory
+ var/inventory_icon
+ /// Only used if attached_proc doesn't exist, simply changes the icon of target to this when it's NOT in the inventory
+ var/world_icon
+ /// Only used when inventory state icon is different from original
+ var/inventory_icon_state
+ /// Only used when world state icon is different from original, pretty much just the original "icon_state" but if you for some reason need to flip the standard icon states for this element around you can use this
+ var/world_icon_state
+
+/datum/element/world_icon/Attach(obj/item/target, attached_proc, world_icon, inventory_icon, world_icon_state, inventory_icon_state)
+ . = ..()
+ if(!istype(target))
+ return ELEMENT_INCOMPATIBLE
+
+ src.attached_proc = attached_proc
+ src.world_icon = world_icon
+ src.world_icon_state = world_icon_state
+ src.inventory_icon = inventory_icon
+ src.inventory_icon_state = inventory_icon_state
+ RegisterSignal(target, COMSIG_ATOM_UPDATE_ICON, PROC_REF(update_icon))
+ RegisterSignal(target, COMSIG_ATOM_UPDATE_ICON_STATE, PROC_REF(update_icon_state))
+ RegisterSignal(target, list(COMSIG_ITEM_EQUIPPED, COMSIG_STORAGE_ENTERED, COMSIG_ITEM_DROPPED, COMSIG_STORAGE_EXITED), PROC_REF(inventory_updated))
+ target.update_appearance(UPDATE_ICON)
+ target.update_appearance(UPDATE_ICON_STATE)
+
+/datum/element/world_icon/Detach(obj/item/source)
+ . = ..()
+ UnregisterSignal(source, COMSIG_ATOM_UPDATE_ICON)
+ UnregisterSignal(source, COMSIG_ATOM_UPDATE_ICON_STATE, PROC_REF(update_icon_state))
+ UnregisterSignal(source, list(COMSIG_ITEM_EQUIPPED, COMSIG_STORAGE_ENTERED, COMSIG_ITEM_DROPPED, COMSIG_STORAGE_EXITED))
+ source.update_appearance(UPDATE_ICON)
+ source.update_appearance(UPDATE_ICON_STATE)
+
+/datum/element/world_icon/proc/update_icon(obj/item/source, updates)
+ SIGNAL_HANDLER
+
+ if((source.item_flags & IN_INVENTORY) || (source.loc && SEND_SIGNAL(source.loc, COMSIG_CONTAINS_STORAGE)))
+ if(attached_proc)
+ return
+ return default_inventory_icon(source)
+
+ if(attached_proc)
+ return call(source, attached_proc)(updates)
+ else
+ return default_world_icon(source)
+
+/datum/element/world_icon/proc/update_icon_state(obj/item/source, updates)
+ SIGNAL_HANDLER
+
+ if((source.item_flags & IN_INVENTORY) || (source.loc && SEND_SIGNAL(source.loc, COMSIG_CONTAINS_STORAGE)))
+ if(attached_proc)
+ return
+ return default_inventory_icon_state(source)
+
+ if(attached_proc)
+ return call(source, attached_proc)(updates)
+ else
+ return default_world_icon_state(source)
+
+/datum/element/world_icon/proc/inventory_updated(obj/item/source)
+ SIGNAL_HANDLER
+
+ source.update_appearance(UPDATE_ICON)
+ source.update_appearance(UPDATE_ICON_STATE)
+
+/datum/element/world_icon/proc/default_inventory_icon(obj/item/source)
+ SIGNAL_HANDLER
+
+ source.icon = inventory_icon
+
+/datum/element/world_icon/proc/default_world_icon(obj/item/source)
+ SIGNAL_HANDLER
+
+ source.icon = world_icon
+
+/datum/element/world_icon/proc/default_inventory_icon_state(obj/item/source)
+ SIGNAL_HANDLER
+
+ if(!inventory_icon_state)
+ source.icon_state = source.icon_state
+ return
+
+ INVOKE_ASYNC(src, PROC_REF(check_inventory_state), source)
+
+/datum/element/world_icon/proc/default_world_icon_state(obj/item/source)
+ SIGNAL_HANDLER
+
+ if(!world_icon_state)
+ source.icon_state = source.icon_state
+ return
+
+ INVOKE_ASYNC(src, PROC_REF(check_world_icon_state), source)
+
+/datum/element/world_icon/proc/check_inventory_state(obj/item/source)
+ SIGNAL_HANDLER
+
+ inventory_icon_state = source.inventory_state
+ source.icon_state = inventory_icon_state
+
+/datum/element/world_icon/proc/check_world_icon_state(obj/item/source)
+ SIGNAL_HANDLER
+
+ world_icon_state = source.world_state
+ source.icon_state = world_icon_state
diff --git a/code/datums/mapgen/planetary/AsteroidGenerator.dm b/code/datums/mapgen/planetary/AsteroidGenerator.dm
index c2f7a5340097..737194b5ee28 100644
--- a/code/datums/mapgen/planetary/AsteroidGenerator.dm
+++ b/code/datums/mapgen/planetary/AsteroidGenerator.dm
@@ -114,7 +114,10 @@
/obj/structure/geyser/random = 1,
/obj/structure/spawner/mining/goliath = 1,
/obj/structure/spawner/mining = 1,
- /obj/structure/spawner/mining/hivelord = 1
+ /obj/structure/spawner/mining/hivelord = 1,
+ /obj/structure/vein/asteroid = 5,
+ /obj/structure/vein/classtwo/asteroid = 10,
+ /obj/structure/vein/classthree/asteroid = 5
)
mob_spawn_list = list(
@@ -157,8 +160,11 @@
)
feature_spawn_list = list(
- /obj/structure/geyser/random = 1,
- /obj/structure/spawner/mining/carp = 1
+ /obj/structure/geyser/random = 5,
+ /obj/structure/spawner/mining/carp = 5,
+ /obj/structure/vein/asteroid = 10,
+ /obj/structure/vein/classtwo/asteroid = 15,
+ /obj/structure/vein/classthree/asteroid = 12
)
mob_spawn_list = list(
diff --git a/code/datums/mapgen/planetary/SandGenerator.dm b/code/datums/mapgen/planetary/SandGenerator.dm
index 442daa0c7705..91fad1430a47 100644
--- a/code/datums/mapgen/planetary/SandGenerator.dm
+++ b/code/datums/mapgen/planetary/SandGenerator.dm
@@ -103,7 +103,7 @@
/mob/living/simple_animal/hostile/asteroid/goliath/beast/random = 50,
/mob/living/simple_animal/hostile/asteroid/basilisk/whitesands = 40,
/mob/living/simple_animal/hostile/asteroid/hivelord/legion/random = 30,
- /mob/living/simple_animal/hostile/asteroid/whitesands/survivor/random = 25,
+ /mob/living/simple_animal/hostile/human/hermit/survivor/random = 25,
)
/datum/biome/sand/wasteland
@@ -135,7 +135,7 @@
)
mob_spawn_chance = 1
mob_spawn_list = list(
- /mob/living/simple_animal/hostile/asteroid/whitesands/survivor/random = 1,
+ /mob/living/simple_animal/hostile/human/hermit/survivor/random = 1,
)
/datum/biome/sand/grass/dead
@@ -169,7 +169,7 @@
/mob/living/simple_animal/hostile/asteroid/goliath/beast/random = 40,
/mob/living/simple_animal/hostile/asteroid/basilisk/whitesands = 30,
/mob/living/simple_animal/hostile/asteroid/hivelord/legion/random = 20,
- /mob/living/simple_animal/hostile/asteroid/whitesands/survivor/random = 40,
+ /mob/living/simple_animal/hostile/human/hermit/survivor/random = 40,
)
/datum/biome/sand/acid //plains
diff --git a/code/datums/materials/basemats.dm b/code/datums/materials/basemats.dm
index 98db1541c953..ed8dd509ec3b 100644
--- a/code/datums/materials/basemats.dm
+++ b/code/datums/materials/basemats.dm
@@ -127,30 +127,6 @@ Unless you know what you're doing, only use the first three numbers. They're in
ore_type = /obj/item/stack/ore/bluespace_crystal
value_per_unit = 0.15
-///Honks and slips
-/datum/material/bananium
- name = "bananium"
- id = "bananium"
- desc = "Material with hilarious properties"
- color = "#ffff00" //obnoxiously bright yellow
- categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE)
- sheet_type = /obj/item/stack/sheet/mineral/bananium
- ore_type = /obj/item/stack/ore/bananium
- value_per_unit = 0.5
- beauty_modifier = 0.5
- armor_modifiers = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 100, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 0) //Clowns cant be blown away.
-
-/datum/material/bananium/on_applied(atom/source, amount, material_flags)
- . = ..()
- source.LoadComponent(/datum/component/squeak, list('sound/items/bikehorn.ogg'=1), 50, falloff_exponent = 20)
- source.AddComponent(/datum/component/slippery, min(amount / 10, 80))
-
-
-/datum/material/bananium/on_removed(atom/source, amount, material_flags)
- . = ..()
- qdel(source.GetComponent(/datum/component/slippery))
- qdel(source.GetComponent(/datum/component/squeak))
-
///Mediocre force increase
/datum/material/titanium
@@ -166,18 +142,6 @@ Unless you know what you're doing, only use the first three numbers. They're in
beauty_modifier = 0.05
armor_modifiers = list("melee" = 1.35, "bullet" = 1.3, "laser" = 1.3, "energy" = 1.25, "bomb" = 1.25, "bio" = 1, "rad" = 1, "fire" = 0.7, "acid" = 1)
-/datum/material/runite
- name = "runite"
- id = "runite"
- desc = "Runite"
- color = "#3F9995"
- strength_modifier = 1.3
- categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE)
- sheet_type = /obj/item/stack/sheet/mineral/runite
- value_per_unit = 0.3
- beauty_modifier = 0.5
- armor_modifiers = list("melee" = 1.35, "bullet" = 2, "laser" = 0.5, "energy" = 1.25, "bomb" = 1.25, "bio" = 1, "rad" = 1, "fire" = 1.4, "acid" = 1) //rune is weak against magic lasers but strong against bullets. This is the combat triangle.
-
///Force decrease
/datum/material/plastic
name = "plastic"
@@ -224,42 +188,20 @@ Unless you know what you're doing, only use the first three numbers. They're in
var/obj/wooden = source
wooden.resistance_flags &= ~FLAMMABLE
-///Stronk force increase
-/datum/material/adamantine
- name = "adamantine"
- id = "adamantine"
- desc = "A powerful material made out of magic, I mean science!"
- color = "#6d7e8e"
+//Remember when the theme used to be "Eerie" before 1.3? Good times.
+/datum/material/hellstone
+ name = "hellstone"
+ id = "hellstone"
+ desc = "A colloquialism given to millenia-old slag, heat-treated through the eons in deep magma."
+ color = "#ffaf5e"
strength_modifier = 1.5
categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE)
- sheet_type = /obj/item/stack/sheet/mineral/adamantine
+ sheet_type = /obj/item/stack/sheet/mineral/hidden/hellstone
+ ore_type = /obj/item/stack/ore/hellstone
value_per_unit = 0.25
beauty_modifier = 0.4
armor_modifiers = list("melee" = 1.5, "bullet" = 1.5, "laser" = 1.3, "energy" = 1.3, "bomb" = 1, "bio" = 1, "rad" = 1, "fire" = 2.5, "acid" = 1)
-///RPG Magic.
-/datum/material/mythril
- name = "mythril"
- id = "mythril"
- desc = "How this even exists is byond me"
- color = "#f2d5d7"
- categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE)
- sheet_type = /obj/item/stack/sheet/mineral/mythril
- value_per_unit = 0.75
- strength_modifier = 1.2
- armor_modifiers = list("melee" = 1.5, "bullet" = 1.5, "laser" = 1.5, "energy" = 1.5, "bomb" = 1.5, "bio" = 1.5, "rad" = 1.5, "fire" = 1.5, "acid" = 1.5)
- beauty_modifier = 0.5
-
-/datum/material/mythril/on_applied_obj(atom/source, amount, material_flags)
- . = ..()
- if(istype(source, /obj/item))
- source.AddComponent(/datum/component/fantasy)
-
-/datum/material/mythril/on_removed_obj(atom/source, material_flags)
- . = ..()
- if(istype(source, /obj/item))
- qdel(source.GetComponent(/datum/component/fantasy))
-
//formed when freon react with o2, emits a lot of plasma when heated
/datum/material/hot_ice
name = "hot ice"
@@ -323,18 +265,6 @@ Unless you know what you're doing, only use the first three numbers. They're in
turf_sound_override = FOOTSTEP_SAND
texture_layer_icon_state = "sand"
-/datum/material/runedmetal
- name = "runed metal"
- id = "runed metal"
- desc = "Mir'ntrath barhah Nar'sie."
- color = "#3C3434"
- categories = list(MAT_CATEGORY_RIGID = TRUE)
- sheet_type = /obj/item/stack/sheet/runed_metal
- value_per_unit = 0.75
- armor_modifiers = list("melee" = 1.2, "bullet" = 1.2, "laser" = 1, "energy" = 1, "bomb" = 1.2, "bio" = 1.2, "rad" = 1.5, "fire" = 1.5, "acid" = 1.5)
- beauty_modifier = -0.15
- texture_layer_icon_state = "runed"
-
/datum/material/bronze
name = "bronze"
id = "bronze"
diff --git a/code/datums/mood_events/drug_events.dm b/code/datums/mood_events/drug_events.dm
index 6af401e8b009..028973c5c839 100644
--- a/code/datums/mood_events/drug_events.dm
+++ b/code/datums/mood_events/drug_events.dm
@@ -4,12 +4,12 @@
/datum/mood_event/smoked
description = "I have had a smoke recently.\n"
- mood_change = 2
+ mood_change = 1
timeout = 6 MINUTES
/datum/mood_event/wrong_brand
- description = "I hate that brand of cigarettes.\n"
- mood_change = -2
+ description = "That brand of cigarette just doesn't hit right.\n"
+ mood_change = -1
timeout = 6 MINUTES
/datum/mood_event/overdose
diff --git a/code/datums/mood_events/generic_positive_events.dm b/code/datums/mood_events/generic_positive_events.dm
index 899c617a99d2..f9e339c3c081 100644
--- a/code/datums/mood_events/generic_positive_events.dm
+++ b/code/datums/mood_events/generic_positive_events.dm
@@ -105,14 +105,6 @@
description = "My family heirloom is safe with me.\n"
mood_change = 1
-/datum/mood_event/fan_clown_pin
- description = "I love showing off my clown pin!\n"
- mood_change = 1
-
-/datum/mood_event/fan_mime_pin
- description = "I love showing off my mime pin!\n"
- mood_change = 1
-
/datum/mood_event/rilena_fan
description = "I love my RILENA merch!\n"
mood_change = 1
diff --git a/code/datums/outfit.dm b/code/datums/outfit.dm
index 964c269b5f43..34771af91ed2 100644
--- a/code/datums/outfit.dm
+++ b/code/datums/outfit.dm
@@ -104,6 +104,9 @@
/// Set to FALSE if your outfit requires runtime parameters
var/can_be_admin_equipped = TRUE
+ // Used to determine if it should be ignored in unit tests due to being to dynamic to always spawn backpack contents right
+ var/random = FALSE
+
/**
* extra types for chameleon outfit changes, mostly guns
*
diff --git a/code/datums/ruins/rockplanet.dm b/code/datums/ruins/rockplanet.dm
index 0d47dd51d7da..966694c400f7 100644
--- a/code/datums/ruins/rockplanet.dm
+++ b/code/datums/ruins/rockplanet.dm
@@ -73,8 +73,16 @@
id = "rockplanet_budgetcuts"
suffix = "rockplanet_budgetcuts.dmm"
+
+/datum/map_template/ruin/rockplanet/shippingdock
+ name = "Abandoned Shipping Dock"
+ description = "An abandoned shipping dock used by small cargo freighters and smugglers alike. Some malicious group seems to have trapped the place to eliminate scavengers."
+ id = "rockplanet_shippingdock"
+ suffix = "rockplanet_shippingdock.dmm"
+
/datum/map_template/ruin/rockplanet/nomadcrash
name = "Nomad Crash"
description = "A Crashed Arrow & Axe Interceptor. A long forgotten Crew. They tried their best to survive..."
id = "rockplanet_nomadcrash"
suffix = "rockplanet_nomadcrash.dmm"
+
diff --git a/code/datums/traits/good.dm b/code/datums/traits/good.dm
index 52ee20e23c27..574c35f60beb 100644
--- a/code/datums/traits/good.dm
+++ b/code/datums/traits/good.dm
@@ -62,26 +62,6 @@
lose_text = "You feel isolated from others."
medical_record_text = "Patient is highly perceptive of and sensitive to social cues, or may possibly have ESP. Further testing needed."
-/datum/quirk/fan_clown
- name = "Clown Fan"
- desc = "You enjoy clown antics and get a mood boost from wearing your clown pin."
- value = 1
- mob_traits = list(TRAIT_FAN_CLOWN)
- gain_text = "You are a big fan of clowns."
- lose_text = "The clown doesn't seem so great."
- medical_record_text = "Patient reports being a big fan of clowns."
-
-/datum/quirk/fan_clown/on_spawn()
- var/mob/living/carbon/human/H = quirk_holder
- var/obj/item/clothing/accessory/fan_clown_pin/B = new(get_turf(H))
- var/list/slots = list (
- "backpack" = ITEM_SLOT_BACKPACK,
- "hands" = ITEM_SLOT_HANDS,
- )
- H.equip_in_one_of_slots(B, slots , qdel_on_fail = TRUE)
- var/datum/atom_hud/fan = GLOB.huds[DATA_HUD_FAN]
- fan.add_hud_to(H)
-
/datum/quirk/fan_rilena
name = "RILENA Super Fan"
desc = "You are a major fan of the popular webseries RILENA: LMR. You get a mood boost from plushies of your favorite characters, and wearing your Xader pin."
@@ -102,26 +82,6 @@
var/datum/atom_hud/fan = GLOB.huds[DATA_HUD_FAN]
fan.add_hud_to(H)
-/datum/quirk/fan_mime
- name = "Mime Fan"
- desc = "You enjoy mime antics and get a mood boost from wearing your mime pin."
- value = 1
- mob_traits = list(TRAIT_FAN_MIME)
- gain_text = "You are a big fan of the Mime."
- lose_text = "The mime doesn't seem so great."
- medical_record_text = "Patient reports being a big fan of mimes."
-
-/datum/quirk/fan_mime/on_spawn()
- var/mob/living/carbon/human/H = quirk_holder
- var/obj/item/clothing/accessory/fan_mime_pin/B = new(get_turf(H))
- var/list/slots = list (
- "backpack" = ITEM_SLOT_BACKPACK,
- "hands" = ITEM_SLOT_HANDS,
- )
- H.equip_in_one_of_slots(B, slots , qdel_on_fail = TRUE)
- var/datum/atom_hud/fan = GLOB.huds[DATA_HUD_FAN]
- fan.add_hud_to(H)
-
/datum/quirk/freerunning
name = "Freerunning"
desc = "You're great at quick moves! You can climb tables more quickly."
diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm
index 4b0afce14b47..d1a8fd6acaa5 100644
--- a/code/datums/traits/negative.dm
+++ b/code/datums/traits/negative.dm
@@ -430,11 +430,6 @@
/datum/quirk/insanity/proc/madness()
quirk_holder.hallucination += rand(10, 25)
-/datum/quirk/insanity/post_add() //I don't /think/ we'll need this but for newbies who think "roleplay as insane" = "license to kill" it's probably a good thing to have
- if(!quirk_holder.mind || quirk_holder.mind.special_role)
- return
- to_chat(quirk_holder, "Please note that your dissociation syndrome does NOT give you the right to attack people or otherwise cause any interference to \
- the round. You are not an antagonist, and the rules will treat you the same as other crewmembers.")
/datum/quirk/social_anxiety
name = "Social Anxiety"
@@ -589,24 +584,57 @@
reagent_type = /datum/reagent/drug/nicotine
accessory_type = /obj/item/lighter/greyscale
+//I fucking hate prefscode
+
/datum/quirk/junkie/smoker/on_spawn()
- drug_container_type = pick(/obj/item/storage/fancy/cigarettes,
- /obj/item/storage/fancy/cigarettes/cigpack_midori,
- /obj/item/storage/fancy/cigarettes/cigpack_uplift,
- /obj/item/storage/fancy/cigarettes/cigpack_robust,
- /obj/item/storage/fancy/cigarettes/cigpack_robustgold,
- /obj/item/storage/fancy/cigarettes/cigpack_carp)
+ var/mob/living/carbon/human/H = quirk_holder
+ switch (H.client?.prefs.preferred_smoke_brand)
+ if (PREF_CIG_SPACE)
+ drug_container_type = /obj/item/storage/fancy/cigarettes
+ if (PREF_CIG_DROMEDARY)
+ drug_container_type = /obj/item/storage/fancy/cigarettes/dromedaryco
+ if (PREF_CIG_UPLIFT)
+ drug_container_type = /obj/item/storage/fancy/cigarettes/cigpack_uplift
+ if (PREF_CIG_ROBUST)
+ drug_container_type = /obj/item/storage/fancy/cigarettes/cigpack_robust
+ if (PREF_CIG_ROBUSTGOLD)
+ drug_container_type = /obj/item/storage/fancy/cigarettes/cigpack_robustgold
+ if (PREF_CIG_CARP)
+ drug_container_type= /obj/item/storage/fancy/cigarettes/cigpack_carp
+ if (PREF_CIG_MIDORI)
+ drug_container_type = /obj/item/storage/fancy/cigarettes/cigpack_midori
+ if (PREF_CIGAR)
+ drug_container_type = /obj/item/storage/fancy/cigarettes/cigars
+ accessory_type = /obj/item/storage/box/matches
+ if (PREF_CIGAR_SOLAR)
+ drug_container_type = /obj/item/storage/fancy/cigarettes/cigars/havana
+ accessory_type = /obj/item/storage/box/matches
+ if (PREF_CIGAR_COHIBA)
+ drug_container_type = /obj/item/storage/fancy/cigarettes/cigars/cohiba
+ accessory_type = /obj/item/storage/box/matches
+ if (PREF_VAPE)
+ drug_container_type = /obj/item/clothing/mask/vape
+ accessory_type = null
+ if (PREF_PIPE)
+ drug_container_type = /obj/item/clothing/mask/cigarette/pipe
+ accessory_type = /obj/item/storage/box/matches
+ else
+ CRASH("Someone had an improper cigarette pref on loading")
. = ..()
/datum/quirk/junkie/smoker/announce_drugs()
- to_chat(quirk_holder, "There is a [initial(drug_container_type.name)] [where_drug], and a lighter [where_accessory]. Make sure you get your favorite brand when you run out.")
-
+ if(accessory_type == null)
+ to_chat(quirk_holder, "There is a [initial(drug_container_type.name)] [where_drug], Make sure you get a refill soon.")
+ return
+ to_chat(quirk_holder, "There is a [initial(drug_container_type.name)] [where_drug], and a [initial(accessory_type.name)] [where_accessory]. Make sure you get your favorite brand when you run out.")
/datum/quirk/junkie/smoker/on_process()
. = ..()
var/mob/living/carbon/human/H = quirk_holder
var/obj/item/I = H.get_item_by_slot(ITEM_SLOT_MASK)
if (istype(I, /obj/item/clothing/mask/cigarette))
+ if(I == drug_container_type)
+ return
var/obj/item/storage/fancy/cigarettes/C = drug_container_type
if(istype(I, initial(C.spawn_type)))
SEND_SIGNAL(quirk_holder, COMSIG_CLEAR_MOOD_EVENT, "wrong_cigs")
diff --git a/code/game/area/areas/ruins/rockplanet.dm b/code/game/area/areas/ruins/rockplanet.dm
index a89969566196..ddbe80529771 100644
--- a/code/game/area/areas/ruins/rockplanet.dm
+++ b/code/game/area/areas/ruins/rockplanet.dm
@@ -1,4 +1,6 @@
/**********************Rock Planet Areas**************************/
+/area/ruin/rockplanet
+ icon_state = "red"
//syndicate
/area/ruin/rockplanet/syndicate
@@ -9,7 +11,26 @@
/area/ruin/rockplanet/nanotrasen
name = "Abandoned Research Facility"
always_unpowered = FALSE
- icon_state = "green"
+
+//shippingdock
+/area/ruin/rockplanet/shippingdockoffice
+ name = "Employee Office"
+ icon_state = "crew_quarters"
+
+/area/ruin/rockplanet/shippingdockcustoms
+ name = "Cargo Checkpoint"
+ icon_state = "security"
+
+/area/ruin/rockplanet/shippingdockwarehouse
+ name = "Warehouse"
+ icon_state = "storage"
+
+/area/ruin/rockplanet/shippingdocksecure
+ name = "Warehouse Secure Storage"
+ icon_state = "armory"
+
+/area/ruin/rockplanet/shippingdock
+ name = "Abandoned Shipping Dock"
//nomad
/area/ruin/rockplanet/nomad
diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm
index 989db20efd1f..beb7cef2718f 100644
--- a/code/game/atoms_movable.dm
+++ b/code/game/atoms_movable.dm
@@ -624,7 +624,7 @@
SEND_SIGNAL(src, COMSIG_MOVABLE_BUMP, A)
. = ..()
if(!QDELETED(throwing))
- throwing.hit_atom(A)
+ throwing.finalize(hit = TRUE, target = A)
. = TRUE
if(QDELETED(A))
return
@@ -821,7 +821,9 @@
var/impact_signal = SEND_SIGNAL(src, COMSIG_MOVABLE_IMPACT, hit_atom, throwingdatum)
if(impact_signal & COMPONENT_MOVABLE_IMPACT_FLIP_HITPUSH)
hitpush = FALSE // hacky, tie this to something else or a proper workaround later
-
+ if(isturf(loc))
+ var/turf/T = loc
+ T.Entered(src)
if(impact_signal & ~COMPONENT_MOVABLE_IMPACT_NEVERMIND) // in case a signal interceptor broke or deleted the thing before we could process our hit
return hit_atom.hitby(src, throwingdatum=throwingdatum, hitpush=hitpush)
@@ -883,7 +885,7 @@
else
target_zone = thrower.zone_selected
- var/datum/thrownthing/TT = new(src, target, get_turf(target), get_dir(src, target), range, speed, thrower, diagonals_first, force, gentle, callback, target_zone)
+ var/datum/thrownthing/TT = new(src, target, get_dir(src, target), range, speed, thrower, diagonals_first, force, gentle, callback, target_zone)
var/dist_x = abs(target.x - src.x)
var/dist_y = abs(target.y - src.y)
diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm
index 1dee49da7f54..4020895f29bd 100644
--- a/code/game/data_huds.dm
+++ b/code/game/data_huds.dm
@@ -216,24 +216,6 @@ Medical HUD! Basic mode needs suit sensors on.
holder.icon_state = "hudhealthy"
-/***********************************************
-FAN HUDs! For identifying other fans on-sight.
-************************************************/
-
-//HOOKS
-
-/mob/living/carbon/human/proc/fan_hud_set_fandom()
- var/image/holder = hud_list[FAN_HUD]
- var/icon/I = icon(icon, icon_state, dir)
- holder.pixel_y = I.Height() - world.icon_size
- holder.icon_state = "hudfan_no"
- var/obj/item/clothing/under/U = get_item_by_slot(ITEM_SLOT_ICLOTHING)
- if(U)
- if(istype(U.attached_accessory, /obj/item/clothing/accessory/fan_mime_pin))
- holder.icon_state = "fan_mime_pin"
- else if(istype(U.attached_accessory, /obj/item/clothing/accessory/fan_clown_pin))
- holder.icon_state = "fan_clown_pin"
-
/***********************************************
Security HUDs! Basic mode shows only the job.
************************************************/
diff --git a/code/game/gamemodes/clown_ops/clown_weapons.dm b/code/game/gamemodes/clown_ops/clown_weapons.dm
index fe95ea3c5988..3064a52a48ad 100644
--- a/code/game/gamemodes/clown_ops/clown_weapons.dm
+++ b/code/game/gamemodes/clown_ops/clown_weapons.dm
@@ -40,14 +40,14 @@
/obj/item/clothing/shoes/clown_shoes/banana_shoes/combat/Initialize()
. = ..()
var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container)
- bananium.insert_amount_mat(max_recharge, /datum/material/bananium)
+ bananium.insert_amount_mat(max_recharge, /datum/material/hellstone)
START_PROCESSING(SSobj, src)
/obj/item/clothing/shoes/clown_shoes/banana_shoes/combat/process()
var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container)
- var/bananium_amount = bananium.get_material_amount(/datum/material/bananium)
+ var/bananium_amount = bananium.get_material_amount(/datum/material/hellstone)
if(bananium_amount < max_recharge)
- bananium.insert_amount_mat(min(recharge_rate, max_recharge - bananium_amount), /datum/material/bananium)
+ bananium.insert_amount_mat(min(recharge_rate, max_recharge - bananium_amount), /datum/material/hellstone)
/obj/item/clothing/shoes/clown_shoes/banana_shoes/combat/attack_self(mob/user)
ui_action_click(user)
diff --git a/code/game/machinery/PDApainter.dm b/code/game/machinery/PDApainter.dm
index e9906a6a0089..b423b28ce4d2 100644
--- a/code/game/machinery/PDApainter.dm
+++ b/code/game/machinery/PDApainter.dm
@@ -5,6 +5,8 @@
icon_state = "pdapainter"
base_icon_state = "pdapainter"
density = TRUE
+ use_power = IDLE_POWER_USE
+ idle_power_usage = IDLE_DRAW_MINIMAL
max_integrity = 200
var/obj/item/pda/storedpda = null
var/list/colorlist = list()
diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm
index f0a1c403cfa4..3d4d05336c3c 100644
--- a/code/game/machinery/Sleeper.dm
+++ b/code/game/machinery/Sleeper.dm
@@ -11,6 +11,8 @@
icon_state = "sleeper"
base_icon_state = "sleeper"
density = FALSE
+ use_power = IDLE_POWER_USE
+ idle_power_usage = IDLE_DRAW_LOW
state_open = TRUE
circuit = /obj/item/circuitboard/machine/sleeper
clicksound = 'sound/machines/pda_button1.ogg'
@@ -100,7 +102,7 @@
playsound(src, 'sound/machines/synth_yes.ogg', 50, TRUE, frequency = rand(5120, 8800))
target.apply_status_effect(STATUS_EFFECT_STASIS, STASIS_MACHINE_EFFECT)
target.ExtinguishMob()
- use_power = ACTIVE_POWER_USE
+ set_active_power()
/obj/machinery/sleeper/proc/thaw_them(mob/living/target)
if(IS_IN_STASIS(target))
@@ -109,7 +111,8 @@
/obj/machinery/sleeper/process()
if(!occupant || !isliving(occupant))
- use_power = IDLE_POWER_USE
+ if(use_static_power != IDLE_POWER_USE)
+ set_idle_power()
return
var/mob/living/L_occupant = occupant
if(stasis_running())
diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm
index a17b9c705dc1..4cddf93b2478 100644
--- a/code/game/machinery/_machinery.dm
+++ b/code/game/machinery/_machinery.dm
@@ -21,7 +21,7 @@ Class Variables:
power_channel (num)
What channel to draw from when drawing power for power mode
Possible Values:
- AREA_USAGE_EQUIP:0 -- Equipment Channel
+ AREA_USAGE_EQUIP:1 -- Equipment Channel
AREA_USAGE_LIGHT:2 -- Lighting Channel
AREA_USAGE_ENVIRON:3 -- Environment Channel
@@ -44,7 +44,7 @@ Class Procs:
auto_use_power() 'game/machinery/machine.dm'
This proc determines how power mode power is deducted by the machine.
'auto_use_power()' is called by the 'master_controller' game_controller every
- tick.
+ tick. (not anymore)
Return Value:
return:1 -- if object is powered
@@ -102,6 +102,7 @@ Class Procs:
//0 = dont run the auto
//1 = run auto, use idle
//2 = run auto, use active
+ var/use_static_power = NO_POWER_USE
var/idle_power_usage = 0
var/active_power_usage = 0
var/power_channel = AREA_USAGE_EQUIP
@@ -151,7 +152,11 @@ Class Procs:
if(occupant_typecache)
occupant_typecache = typecacheof(occupant_typecache)
-
+ switch(use_power)
+ if(IDLE_POWER_USE)
+ set_idle_power()
+ if(ACTIVE_POWER_USE)
+ set_active_power()
return INITIALIZE_HINT_LATELOAD
/// Helper proc for telling a machine to start processing with the subsystem type that is located in its `subsystem_type` var.
@@ -168,7 +173,16 @@ Class Procs:
. = ..()
power_change()
become_area_sensitive(ROUNDSTART_TRAIT)
- RegisterSignal(src, COMSIG_ENTER_AREA, PROC_REF(power_change))
+ RegisterSignal(src, COMSIG_ENTER_AREA, PROC_REF(enter_area))
+ RegisterSignal(src, COMSIG_EXIT_AREA, PROC_REF(exit_area))
+
+/obj/machinery/proc/enter_area(datum/source, area/A)
+ SIGNAL_HANDLER
+ power_change(A)
+
+/obj/machinery/proc/exit_area(datum/source, area/A)
+ SIGNAL_HANDLER
+ set_no_power(A)
/obj/machinery/Destroy()
GLOB.machines.Remove(src)
@@ -177,6 +191,7 @@ Class Procs:
lose_area_sensitivity(ROUNDSTART_TRAIT)
QDEL_NULL(circuit)
QDEL_LIST(component_parts)
+ set_no_power()
return ..()
/obj/machinery/proc/locate_machinery()
@@ -273,8 +288,8 @@ Class Procs:
target.forceMove(src)
updateUsrDialog()
update_appearance()
-
-/obj/machinery/proc/auto_use_power()
+/*
+/obj/machinery/proc/auto_use_power() //obsolete, tick controller doesn't call this anymore because machines use addStaticPower now.
if(!powered(power_channel))
return 0
if(use_power == 1)
@@ -282,7 +297,7 @@ Class Procs:
else if(use_power >= 2)
use_power(active_power_usage,power_channel)
return 1
-
+*/
///Called when we want to change the value of the `is_operational` variable. Boolean.
/obj/machinery/proc/set_is_operational(new_value)
@@ -618,6 +633,7 @@ Class Procs:
//called on deconstruction before the final deletion
/obj/machinery/proc/on_deconstruction()
+ set_no_power()
return
/obj/machinery/proc/can_be_overridden()
diff --git a/code/game/machinery/airlock_cycle_control.dm b/code/game/machinery/airlock_cycle_control.dm
index 76094e803cd3..7ba391fae782 100644
--- a/code/game/machinery/airlock_cycle_control.dm
+++ b/code/game/machinery/airlock_cycle_control.dm
@@ -67,8 +67,8 @@
icon = 'icons/obj/monitors.dmi'
icon_state = "aac"
use_power = IDLE_POWER_USE
- idle_power_usage = 4
- active_power_usage = 8
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_MINIMAL
power_channel = AREA_USAGE_ENVIRON
req_access = list(ACCESS_ATMOSPHERICS)
max_integrity = 250
diff --git a/code/game/machinery/announcement_system.dm b/code/game/machinery/announcement_system.dm
index f275d234fca7..d4057603957d 100644
--- a/code/game/machinery/announcement_system.dm
+++ b/code/game/machinery/announcement_system.dm
@@ -12,8 +12,8 @@ GLOBAL_LIST_EMPTY(announcement_systems)
verb_ask = "queries"
verb_exclaim = "alarms"
- idle_power_usage = 20
- active_power_usage = 50
+ idle_power_usage = IDLE_DRAW_LOW
+ active_power_usage = IDLE_DRAW_LOW
circuit = /obj/item/circuitboard/machine/announcement_system
diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm
index d83831f2c634..e63b3f75fb2b 100644
--- a/code/game/machinery/autolathe.dm
+++ b/code/game/machinery/autolathe.dm
@@ -9,8 +9,9 @@
icon_state = "autolathe"
density = TRUE
use_power = IDLE_POWER_USE
- idle_power_usage = 10
- active_power_usage = 100
+ idle_power_usage = IDLE_DRAW_LOW
+ active_power_usage = ACTIVE_DRAW_HIGH
+ power_channel = AREA_USAGE_EQUIP
circuit = /obj/item/circuitboard/machine/autolathe
layer = BELOW_OBJ_LAYER
@@ -50,7 +51,7 @@
)
/obj/machinery/autolathe/Initialize()
- AddComponent(/datum/component/material_container,list(/datum/material/iron, /datum/material/glass, /datum/material/plastic, /datum/material/silver, /datum/material/gold, /datum/material/plasma, /datum/material/uranium, /datum/material/titanium), 0, TRUE, null, null, CALLBACK(src, PROC_REF(AfterMaterialInsert)))
+ AddComponent(/datum/component/material_container,list(/datum/material/iron, /datum/material/glass, /datum/material/plastic, /datum/material/silver, /datum/material/gold, /datum/material/plasma, /datum/material/uranium, /datum/material/titanium, /datum/material/hellstone), 0, TRUE, null, null, CALLBACK(src, PROC_REF(AfterMaterialInsert)))
. = ..()
wires = new /datum/wires/autolathe(src)
@@ -223,7 +224,7 @@
for(var/MAT in being_built.materials)
total_amount += being_built.materials[MAT]
- var/power = max(active_power_usage, (total_amount)*multiplier/5) //Change this to use all materials
+ var/power = max(active_power_usage, total_amount) //Change this to use all materials
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
@@ -252,6 +253,7 @@
use_power(power)
icon_state = "autolathe_n"
var/time = is_stack ? 32 : (32 * coeff * multiplier) ** 0.8
+ set_active_power()
addtimer(CALLBACK(src, PROC_REF(make_item), power, materials_used, custom_materials, multiplier, coeff, is_stack, usr), time)
. = TRUE
else
@@ -326,12 +328,13 @@
else
flick("autolathe_o", src) //plays metal insertion animation
- use_power(min(1000, amount_inserted / 100))
+ use_power(min(active_power_usage, amount_inserted))
/obj/machinery/autolathe/proc/make_item(power, list/materials_used, list/picked_materials, multiplier, coeff, is_stack, mob/user)
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
var/atom/A = drop_location()
use_power(power)
+ set_idle_power()
materials.use_materials(materials_used)
diff --git a/code/game/machinery/bank_machine.dm b/code/game/machinery/bank_machine.dm
index 2e93cd179ed5..83f3e366e8a3 100644
--- a/code/game/machinery/bank_machine.dm
+++ b/code/game/machinery/bank_machine.dm
@@ -3,7 +3,7 @@
desc = "A machine used to deposit and withdraw funds."
icon_screen = "vault"
icon_keyboard = "security_key"
- idle_power_usage = 100
+ idle_power_usage = IDLE_DRAW_LOW
var/siphoning = FALSE
var/next_warning = 0
diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm
index 1a89a2b011cc..f6c004ddca71 100644
--- a/code/game/machinery/buttons.dm
+++ b/code/game/machinery/buttons.dm
@@ -12,7 +12,7 @@
var/initialized_button = 0
armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 50, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 70)
use_power = IDLE_POWER_USE
- idle_power_usage = 2
+ idle_power_usage = IDLE_DRAW_MINIMAL
resistance_flags = LAVA_PROOF | FIRE_PROOF
/obj/machinery/button/indestructible
@@ -68,34 +68,40 @@
default_deconstruction_screwdriver(user, "button-open", "[skin]",W)
update_appearance()
else
- to_chat(user, "Maintenance Access Denied.")
+ to_chat(user, span_alert("Maintenance Access Denied."))
flick("[skin]-denied", src)
return
if(panel_open)
if(!device && istype(W, /obj/item/assembly))
if(!user.transferItemToLoc(W, src))
- to_chat(user, "\The [W] is stuck to you!")
+ to_chat(user, span_warning("\The [W] is stuck to you!"))
return
device = W
- to_chat(user, "You add [W] to the button.")
+ to_chat(user, span_notice("You add [W] to the button."))
if(!board && istype(W, /obj/item/electronics/airlock))
if(!user.transferItemToLoc(W, src))
- to_chat(user, "\The [W] is stuck to you!")
+ to_chat(user, span_warning("\The [W] is stuck to you!"))
return
board = W
if(board.one_access)
req_one_access = board.accesses
else
req_access = board.accesses
- to_chat(user, "You add [W] to the button.")
+ to_chat(user, span_notice("You add [W] to the button."))
+
+ if(device && W.tool_behaviour == TOOL_MULTITOOL)
+ var/obj/item/multitool/multi = W
+ if(istype(device, /obj/item/assembly/control))
+ multi.buffer = device
+ to_chat(user, span_notice("You copy the [device] to your multitool's buffer."))
if(!device && !board && W.tool_behaviour == TOOL_WRENCH)
- to_chat(user, "You start unsecuring the button frame...")
+ to_chat(user, span_notice("You start unsecuring the button frame..."))
W.play_tool_sound(src)
if(W.use_tool(src, user, 40))
- to_chat(user, "You unsecure the button frame.")
+ to_chat(user, span_notice("You unsecure the button frame."))
transfer_fingerprints_to(new /obj/item/wallframe/button(get_turf(src)))
playsound(loc, 'sound/items/deconstruct.ogg', 50, TRUE)
qdel(src)
@@ -153,14 +159,14 @@
req_one_access = list()
board = null
update_appearance()
- to_chat(user, "You remove electronics from the button frame.")
+ to_chat(user, span_notice("You remove electronics from the button frame."))
else
if(skin == "doorctrl")
skin = "launcher"
else
skin = "doorctrl"
- to_chat(user, "You change the button frame's front panel.")
+ to_chat(user, span_notice("You change the button frame's front panel."))
return
if((machine_stat & (NOPOWER|BROKEN)))
@@ -170,7 +176,7 @@
return
if(!allowed(user))
- to_chat(user, "Access Denied.")
+ to_chat(user, span_alert("Access Denied."))
flick("[skin]-denied", src)
return
diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm
index c1cca432efd4..fda41eab7789 100644
--- a/code/game/machinery/camera/camera.dm
+++ b/code/game/machinery/camera/camera.dm
@@ -9,8 +9,8 @@
icon_state = "camera" //mapping icon to represent upgrade states. if you want a different base icon, update default_camera_icon as well as this.
light_color = "#CDDDFF"
use_power = ACTIVE_POWER_USE
- idle_power_usage = 5
- active_power_usage = 10
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = IDLE_DRAW_MINIMAL*2
layer = WALL_OBJ_LAYER
resistance_flags = FIRE_PROOF
damage_deflection = 12
diff --git a/code/game/machinery/camera/presets.dm b/code/game/machinery/camera/presets.dm
index 8f57ad09203a..d5f7e618c637 100644
--- a/code/game/machinery/camera/presets.dm
+++ b/code/game/machinery/camera/presets.dm
@@ -56,18 +56,11 @@
/obj/machinery/camera/autoname/LateInitialize()
. = ..()
- number = 1
- var/area/A = get_area(src)
- if(A)
- for(var/obj/machinery/camera/autoname/C in GLOB.machines)
- if(C == src)
- continue
- var/area/CA = get_area(C)
- if(CA.type == A.type)
- if(C.number)
- number = max(number, C.number+1)
- c_tag = "[A.name] #[number]"
-
+ var/static/list/autonames_in_areas = list()
+ var/area/camera_area = get_area(src)
+ number = autonames_in_areas[camera_area] + 1
+ autonames_in_areas[camera_area] = number
+ c_tag = "[format_text(camera_area.name)] #[number]"
// UPGRADE PROCS
diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm
index e1be8d8e4453..85d2d5651203 100644
--- a/code/game/machinery/cell_charger.dm
+++ b/code/game/machinery/cell_charger.dm
@@ -4,8 +4,8 @@
icon = 'icons/obj/power.dmi'
icon_state = "ccharger"
use_power = IDLE_POWER_USE
- idle_power_usage = 5
- active_power_usage = 60
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_LOW
power_channel = AREA_USAGE_EQUIP
circuit = /obj/item/circuitboard/machine/cell_charger
pass_flags = PASSTABLE
diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm
index c71e94a0948a..ad4cd3834f06 100644
--- a/code/game/machinery/cloning.dm
+++ b/code/game/machinery/cloning.dm
@@ -16,6 +16,8 @@
density = TRUE
icon = 'icons/obj/machines/cloning.dmi'
icon_state = "pod_0"
+ use_power = IDLE_POWER_USE
+ idle_power_usage = IDLE_DRAW_LOW
req_access = list(ACCESS_CLONING) //FOR PREMATURE UNLOCKING.
verb_say = "states"
circuit = /obj/item/circuitboard/machine/clonepod
diff --git a/code/game/machinery/computer/_computer.dm b/code/game/machinery/computer/_computer.dm
index bdbadf79a943..3a36603c5070 100644
--- a/code/game/machinery/computer/_computer.dm
+++ b/code/game/machinery/computer/_computer.dm
@@ -4,8 +4,8 @@
icon_state = "computer"
density = TRUE
use_power = IDLE_POWER_USE
- idle_power_usage = 300
- active_power_usage = 300
+ idle_power_usage = IDLE_DRAW_LOW
+ active_power_usage = ACTIVE_DRAW_LOW
max_integrity = 200
integrity_failure = 0.5
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 40, "acid" = 20)
diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm
index b665a36bcf32..d7f80fc45680 100644
--- a/code/game/machinery/computer/arcade.dm
+++ b/code/game/machinery/computer/arcade.dm
@@ -867,7 +867,7 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list(
say("WEEWOO! WEEWOO! Spaceport security en route!")
playsound(src, 'sound/items/weeoo1.ogg', 100, FALSE)
for(var/i, i<=3, i++)
- var/mob/living/simple_animal/hostile/syndicate/ranged/smg/orion/O = new/mob/living/simple_animal/hostile/syndicate/ranged/smg/orion(get_turf(src))
+ var/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/orion/O = new/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/orion(get_turf(src))
O.target = usr
@@ -1242,7 +1242,7 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list(
newgame()
obj_flags |= EMAGGED
-/mob/living/simple_animal/hostile/syndicate/ranged/smg/orion
+/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/orion
name = "spaceport security"
desc = "Premier corporate security forces for all spaceports found along the Orion Trail."
faction = list("orion")
diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm
index f875defd6044..c1a1171e57cc 100644
--- a/code/game/machinery/computer/crew.dm
+++ b/code/game/machinery/computer/crew.dm
@@ -6,8 +6,8 @@
icon_screen = "crew"
icon_keyboard = "med_key"
use_power = IDLE_POWER_USE
- idle_power_usage = 250
- active_power_usage = 500
+ idle_power_usage = IDLE_DRAW_LOW
+ active_power_usage = ACTIVE_DRAW_MEDIUM
circuit = /obj/item/circuitboard/computer/crew
light_color = LIGHT_COLOR_BLUE
diff --git a/code/game/machinery/computer/dna_console.dm b/code/game/machinery/computer/dna_console.dm
index ffeabbdc4e0a..815e2496d41b 100644
--- a/code/game/machinery/computer/dna_console.dm
+++ b/code/game/machinery/computer/dna_console.dm
@@ -43,8 +43,8 @@
circuit = /obj/item/circuitboard/computer/scan_consolenew
use_power = IDLE_POWER_USE
- idle_power_usage = 10
- active_power_usage = 400
+ idle_power_usage = IDLE_DRAW_LOW
+ active_power_usage = ACTIVE_DRAW_MEDIUM
light_color = LIGHT_COLOR_BLUE
/// Link to the techweb's stored research. Used to retrieve stored mutations
diff --git a/code/game/machinery/dance_machine.dm b/code/game/machinery/dance_machine.dm
index 20c3d66e8585..8419ee80ce1e 100644
--- a/code/game/machinery/dance_machine.dm
+++ b/code/game/machinery/dance_machine.dm
@@ -5,6 +5,8 @@
icon_state = "jukebox-"
verb_say = "states"
density = TRUE
+ use_power = IDLE_POWER_USE
+ idle_power_usage = IDLE_DRAW_MINIMAL
var/active = FALSE
var/list/rangers = list()
var/stop = 0
diff --git a/code/game/machinery/defibrillator_mount.dm b/code/game/machinery/defibrillator_mount.dm
index f3fa616032d3..645e8eee762f 100644
--- a/code/game/machinery/defibrillator_mount.dm
+++ b/code/game/machinery/defibrillator_mount.dm
@@ -165,7 +165,7 @@
name = "PENLITE defibrillator mount"
desc = "Holds defibrillators. You can grab the paddles if one is mounted. This PENLITE variant also allows for slow, passive recharging of the defibrillator."
icon_state = "penlite_mount"
- idle_power_usage = 1
+ idle_power_usage = 0
wallframe_type = /obj/item/wallframe/defib_mount/charging
diff --git a/code/game/machinery/dish_drive.dm b/code/game/machinery/dish_drive.dm
index baf3d6ae2cc1..740ea5c935fa 100644
--- a/code/game/machinery/dish_drive.dm
+++ b/code/game/machinery/dish_drive.dm
@@ -5,8 +5,8 @@
Or you can just drop your plates on the floor, like civilized folk."
icon = 'icons/obj/kitchen.dmi'
icon_state = "synthesizer"
- idle_power_usage = 8 //5 with default parts
- active_power_usage = 13 //10 with default parts
+ idle_power_usage = IDLE_DRAW_MINIMAL //lower
+ active_power_usage = ACTIVE_DRAW_MINIMAL //lower ingame because stockparts
density = FALSE
circuit = /obj/item/circuitboard/machine/dish_drive
pass_flags = PASSTABLE
diff --git a/code/game/machinery/dna_scanner.dm b/code/game/machinery/dna_scanner.dm
index 7f61dde6ef79..a45aaa474438 100644
--- a/code/game/machinery/dna_scanner.dm
+++ b/code/game/machinery/dna_scanner.dm
@@ -6,8 +6,8 @@
base_icon_state = "scanner"
density = TRUE
use_power = IDLE_POWER_USE
- idle_power_usage = 50
- active_power_usage = 300
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_MEDIUM
occupant_typecache = list(/mob/living, /obj/item/bodypart/head, /obj/item/organ/brain)
circuit = /obj/item/circuitboard/machine/dnascanner
var/locked = FALSE
diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm
index 8e0ed982b501..492ce30f6ac4 100644
--- a/code/game/machinery/doors/airlock_types.dm
+++ b/code/game/machinery/doors/airlock_types.dm
@@ -264,17 +264,7 @@
opacity = FALSE
glass = TRUE
-/obj/machinery/door/airlock/bananium
- name = "bananium airlock"
- desc = "Honkhonkhonk"
- icon = 'icons/obj/doors/airlocks/station/bananium.dmi'
- assemblytype = /obj/structure/door_assembly/door_assembly_bananium
- doorOpen = 'sound/items/bikehorn.ogg'
- has_hatch = FALSE
-/obj/machinery/door/airlock/bananium/glass
- opacity = FALSE
- glass = TRUE
/obj/machinery/door/airlock/sandstone
name = "sandstone airlock"
diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm
index 4e846c26f14a..ce705c71e434 100644
--- a/code/game/machinery/doors/poddoor.dm
+++ b/code/game/machinery/doors/poddoor.dm
@@ -23,26 +23,32 @@
/obj/machinery/door/poddoor/attackby(obj/item/W, mob/user, params)
. = ..()
if((resistance_flags & INDESTRUCTIBLE) && W.tool_behaviour == TOOL_SCREWDRIVER) // This makes it so ERT members cannot cheese by opening their blast doors.
- to_chat(user, "You can't find the panel!")
+ to_chat(user, span_warning("You can't find the panel!"))
return
if(W.tool_behaviour == TOOL_SCREWDRIVER)
if(density)
- to_chat(user, "You need to open [src] to access the maintenance panel!")
+ to_chat(user, span_warning("You need to open [src] to access the maintenance panel"))
return
else if(default_deconstruction_screwdriver(user, icon_state, icon_state, W))
- to_chat(user, "You [panel_open ? "open" : "close"] the maintenance hatch of [src].")
+ to_chat(user, span_notice("You [panel_open ? "open" : "close"] the maintenance hatch of [src]."))
return TRUE
if(panel_open && !density)
if(W.tool_behaviour == TOOL_MULTITOOL)
- var/change_id = input("Set [src]'s ID. It must be a number between 1 and 100.", "ID", id) as num|null
- if(change_id)
- id = clamp(round(change_id, 1), 1, 100)
- to_chat(user, "You change the ID to [id].")
+ var/obj/item/multitool/multi = W
+ if (istype(multi.buffer,/obj/item/assembly/control))
+ var/obj/item/assembly/control/controller = multi.buffer
+ id = controller.id
+ to_chat(user, span_notice("You copy the ID in your multitool's buffer into the [src]."))
+ else
+ var/change_id = input("Set [src]'s ID. It must be a number between 1 and 100.", "ID", id) as num|null
+ if(change_id)
+ id = clamp(round(change_id, 1), 1, 100)
+ to_chat(user, span_notice("You change the ID to [id]."))
if(W.tool_behaviour == TOOL_CROWBAR)
- to_chat(user, "You start to remove the airlock electronics.")
+ to_chat(user, span_notice("You start to remove the airlock electronics."))
if(!(machine_stat & NOPOWER))
do_sparks(5, TRUE, src)
electrocute_mob(user, get_area(src), src, 1, TRUE) //fuck this fella
@@ -52,9 +58,9 @@
/obj/machinery/door/poddoor/examine(mob/user)
. = ..()
- . += "The maintenance panel is [panel_open ? "opened" : "closed"]."
+ . += span_notice("The maintenance panel is [panel_open ? "opened" : "closed"].")
if(panel_open)
- . += "The airlock electronics are exposed and could be pried out."
+ . += span_notice("The airlock electronics are exposed and could be pried out.")
/obj/machinery/door/poddoor/deconstruct(disassembled = TRUE, mob/user)
if(!(flags_1 & NODECONSTRUCT_1))
@@ -142,9 +148,9 @@
/obj/machinery/door/poddoor/attack_alien(mob/living/carbon/alien/humanoid/user)
if(density & !(resistance_flags & INDESTRUCTIBLE))
add_fingerprint(user)
- user.visible_message("[user] begins prying open [src].",\
- "You begin digging your claws into [src] with all your might!",\
- "You hear groaning metal...")
+ user.visible_message(span_warning("[user] begins prying open [src]."),\
+ span_noticealien("You begin digging your claws into [src] with all your might"),\
+ span_warning("You hear groaning metal..."))
playsound(src, 'sound/machines/creaking.ogg', 100, TRUE)
var/time_to_open = 5 SECONDS
@@ -153,7 +159,7 @@
if(do_after(user, time_to_open, TRUE, src))
if(density && !open(TRUE)) //The airlock is still closed, but something prevented it opening. (Another player noticed and bolted/welded the airlock in time!)
- to_chat(user, "Despite your efforts, [src] managed to resist your attempts to open it!")
+ to_chat(user, span_warning("Despite your efforts, [src] managed to resist your attempts to open it!"))
else
return ..()
diff --git a/code/game/machinery/doppler_array.dm b/code/game/machinery/doppler_array.dm
index aa3e4ece65e9..25da902ea3f5 100644
--- a/code/game/machinery/doppler_array.dm
+++ b/code/game/machinery/doppler_array.dm
@@ -6,6 +6,8 @@
icon = 'icons/obj/machines/research.dmi'
base_icon_state = "tdoppler"
density = TRUE
+ use_power = IDLE_POWER_USE
+ idle_power_usage = IDLE_DRAW_LOW
verb_say = "states coldly"
var/cooldown = 10
var/next_announce = 0
diff --git a/code/game/machinery/droneDispenser.dm b/code/game/machinery/droneDispenser.dm
index dbf055d98079..4603044ab285 100644
--- a/code/game/machinery/droneDispenser.dm
+++ b/code/game/machinery/droneDispenser.dm
@@ -9,6 +9,8 @@
icon = 'icons/obj/machines/droneDispenser.dmi'
icon_state = "on"
density = TRUE
+ use_power = IDLE_POWER_USE
+ idle_power_usage = IDLE_DRAW_LOW
max_integrity = 250
integrity_failure = 0.33
diff --git a/code/game/machinery/embedded_controller/access_controller.dm b/code/game/machinery/embedded_controller/access_controller.dm
index 9d190b2e1369..34d4bb320c46 100644
--- a/code/game/machinery/embedded_controller/access_controller.dm
+++ b/code/game/machinery/embedded_controller/access_controller.dm
@@ -7,8 +7,8 @@
/obj/machinery/doorButtons
power_channel = AREA_USAGE_ENVIRON
use_power = IDLE_POWER_USE
- idle_power_usage = 2
- active_power_usage = 4
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_MINIMAL
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
var/idSelf
diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm
index faceb46419d5..6cbd6eaed278 100644
--- a/code/game/machinery/firealarm.dm
+++ b/code/game/machinery/firealarm.dm
@@ -23,8 +23,8 @@
integrity_failure = 0.4
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 30)
use_power = IDLE_POWER_USE
- idle_power_usage = 2
- active_power_usage = 6
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_MINIMAL
power_channel = AREA_USAGE_ENVIRON
resistance_flags = FIRE_PROOF
diff --git a/code/game/machinery/gulag_item_reclaimer.dm b/code/game/machinery/gulag_item_reclaimer.dm
index 8833a20d90c4..81c422ea31fa 100644
--- a/code/game/machinery/gulag_item_reclaimer.dm
+++ b/code/game/machinery/gulag_item_reclaimer.dm
@@ -6,8 +6,8 @@
req_access = list(ACCESS_SECURITY) //REQACCESS TO ACCESS ALL STORED ITEMS
density = FALSE
use_power = IDLE_POWER_USE
- idle_power_usage = 100
- active_power_usage = 2500
+ idle_power_usage = IDLE_DRAW_LOW
+ active_power_usage = IDLE_DRAW_MEDIUM
var/list/stored_items = list()
var/obj/machinery/gulag_teleporter/linked_teleporter = null
diff --git a/code/game/machinery/gulag_teleporter.dm b/code/game/machinery/gulag_teleporter.dm
index e147e24717ca..3632c204f36b 100644
--- a/code/game/machinery/gulag_teleporter.dm
+++ b/code/game/machinery/gulag_teleporter.dm
@@ -15,8 +15,8 @@ The console is located at computer/gulag_teleporter.dm
state_open = FALSE
density = TRUE
use_power = IDLE_POWER_USE
- idle_power_usage = 200
- active_power_usage = 5000
+ idle_power_usage = IDLE_DRAW_LOW
+ active_power_usage = ACTIVE_DRAW_EXTREME
circuit = /obj/item/circuitboard/machine/gulag_teleporter
var/locked = FALSE
var/message_cooldown
diff --git a/code/game/machinery/harvester.dm b/code/game/machinery/harvester.dm
index 9cf4470cab5c..1b0093458e49 100644
--- a/code/game/machinery/harvester.dm
+++ b/code/game/machinery/harvester.dm
@@ -2,12 +2,14 @@
name = "organ harvester"
desc = "An advanced machine used for harvesting organs and limbs from the deceased."
density = TRUE
+ use_power = IDLE_POWER_USE
+ idle_power_usage = IDLE_DRAW_LOW
icon = 'icons/obj/machines/harvester.dmi'
icon_state = "harvester"
base_icon_state = "harvester"
verb_say = "states"
state_open = FALSE
- idle_power_usage = 50
+ idle_power_usage = IDLE_DRAW_MINIMAL
circuit = /obj/item/circuitboard/machine/harvester
light_color = LIGHT_COLOR_BLUE
var/interval = 20
diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm
index 4a31d650f9a1..60ded054842a 100644
--- a/code/game/machinery/hologram.dm
+++ b/code/game/machinery/hologram.dm
@@ -36,8 +36,8 @@ Possible to do for anyone motivated enough:
plane = FLOOR_PLANE
req_access = list(ACCESS_KEYCARD_AUTH) //Used to allow for forced connecting to other (not secure) holopads. Anyone can make a call, though.
use_power = IDLE_POWER_USE
- idle_power_usage = 5
- active_power_usage = 100
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_MEDIUM
max_integrity = 300
armor = list("melee" = 50, "bullet" = 20, "laser" = 20, "energy" = 20, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 0)
circuit = /obj/item/circuitboard/machine/holopad
@@ -78,6 +78,8 @@ Possible to do for anyone motivated enough:
var/secure = FALSE
/// If we are currently calling another holopad
var/calling = FALSE
+ /// The last holopad that called this one.
+ var/caller_history
/obj/machinery/holopad/Initialize()
. = ..()
@@ -178,7 +180,9 @@ Possible to do for anyone motivated enough:
/obj/machinery/holopad/examine(mob/user)
. = ..()
if(in_range(user, src) || isobserver(user))
- . += "The status display reads: Current projection range: [holo_range] units."
+ . += span_notice("The status display reads: Current projection range: [holo_range] units.")
+ if(caller_history)
+ . += span_notice("The caller history displays the last recieved call to be from: [caller_history].")
/obj/machinery/holopad/attackby(obj/item/P, mob/user, params)
if(default_deconstruction_screwdriver(user, "holopad_open", "holopad0", P))
@@ -195,11 +199,11 @@ Possible to do for anyone motivated enough:
if(istype(P,/obj/item/disk/holodisk))
if(disk)
- to_chat(user,"There's already a disk inside [src]!")
+ to_chat(user,span_warning("There's already a disk inside [src]!"))
return
if (!user.transferItemToLoc(P,src))
return
- to_chat(user,"You insert [P] into [src].")
+ to_chat(user,span_notice("You insert [P] into [src]."))
disk = P
return
@@ -249,15 +253,15 @@ Possible to do for anyone motivated enough:
if("AIrequest")
if(last_request + 200 < world.time)
last_request = world.time
- to_chat(usr, "You requested an AI's presence.")
+ to_chat(usr, span_info("You requested an AI's presence."))
var/area/area = get_area(src)
for(var/mob/living/silicon/ai/AI in GLOB.silicon_mobs)
if(!AI.client)
continue
- to_chat(AI, "Your presence is requested at \the [area].")
+ to_chat(AI, span_info("Your presence is requested at \the [area]."))
return TRUE
else
- to_chat(usr, "A request for AI presence was already sent recently.")
+ to_chat(usr, span_info("A request for AI presence was already sent recently."))
return
if("holocall")
if(outgoing_call)
@@ -280,7 +284,7 @@ Possible to do for anyone motivated enough:
calling = TRUE
return TRUE
else
- to_chat(usr, "You must stand on the holopad to make a call!")
+ to_chat(usr, span_warning("You must stand on the holopad to make a call!"))
if("connectcall")
var/datum/holocall/call_to_connect = locate(params["holopad"]) in holo_calls
if(!QDELETED(call_to_connect))
@@ -374,6 +378,7 @@ Possible to do for anyone motivated enough:
for(var/I in holo_calls)
var/datum/holocall/HC = I
if(HC.connected_holopad != src)
+ caller_history = get_area_name(HC.calling_holopad)
if(force_answer_call && world.time > (HC.call_start_time + (HOLOPAD_MAX_DIAL_TIME / 2)))
HC.Answer(src)
break
@@ -392,7 +397,7 @@ Possible to do for anyone motivated enough:
if(is_operational && (!AI || AI.eyeobj.loc == loc))//If the projector has power and client eye is on it
if (AI && istype(AI.current, /obj/machinery/holopad))
- to_chat(user, "ERROR: \black Image feed in progress.")
+ to_chat(user, span_danger("ERROR: \black Image feed in progress."))
return
var/obj/effect/overlay/holo_pad_hologram/Hologram = new(loc)//Spawn a blank effect at the location.
@@ -415,11 +420,11 @@ Possible to do for anyone motivated enough:
move_hologram(user, loc)
set_holo(user, Hologram)
- visible_message("A holographic image of [user] flickers to life before your eyes!")
+ visible_message(span_notice("A holographic image of [user] flickers to life before your eyes!"))
return Hologram
else
- to_chat(user, "ERROR: Unable to project hologram.")
+ to_chat(user, span_danger("ERROR:Unable to project hologram."))
/*This is the proc for special two-way communication between AI and holopad/people talking near holopad.
For the other part of the code, check silicon say.dm. Particularly robot talk.*/
@@ -446,8 +451,11 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
/obj/machinery/holopad/proc/SetLightsAndPower()
var/total_users = LAZYLEN(masters) + LAZYLEN(holo_calls)
- use_power = total_users > 0 ? ACTIVE_POWER_USE : IDLE_POWER_USE
- active_power_usage = HOLOPAD_PASSIVE_POWER_USAGE + (HOLOGRAM_POWER_USAGE * total_users)
+ if(total_users > 0)
+ set_active_power()
+ else
+ set_idle_power()
+ active_power_usage = initial(active_power_usage) * total_users
if(total_users || replay_mode)
set_light(2)
else
@@ -580,7 +588,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
Hologram.set_anchored(TRUE)//So space wind cannot drag it.
Hologram.name = "[record.caller_name] (Hologram)"//If someone decides to right click.
Hologram.set_light(2) //hologram lighting
- visible_message("A holographic image of [record.caller_name] flickers to life before your eyes!")
+ visible_message(span_notice("A holographic image of [record.caller_name] flickers to life before your eyes!"))
return Hologram
/obj/machinery/holopad/proc/replay_start()
diff --git a/code/game/machinery/hypnochair.dm b/code/game/machinery/hypnochair.dm
index b31dd9925375..e14756815bb2 100644
--- a/code/game/machinery/hypnochair.dm
+++ b/code/game/machinery/hypnochair.dm
@@ -6,6 +6,8 @@
base_icon_state = "hypnochair"
circuit = /obj/item/circuitboard/machine/hypnochair
density = TRUE
+ use_power = IDLE_POWER_USE
+ idle_power_usage = IDLE_DRAW_LOW
opacity = FALSE
var/mob/living/carbon/victim = null ///Keeps track of the victim to apply effects if it teleports away
diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm
index 8117ad2c251a..c82d67a9df62 100644
--- a/code/game/machinery/igniter.dm
+++ b/code/game/machinery/igniter.dm
@@ -6,8 +6,8 @@
base_icon_state = "igniter"
plane = FLOOR_PLANE
use_power = IDLE_POWER_USE
- idle_power_usage = 2
- active_power_usage = 4
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_LOW
max_integrity = 300
armor = list("melee" = 50, "bullet" = 30, "laser" = 70, "energy" = 50, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 70)
resistance_flags = FIRE_PROOF
diff --git a/code/game/machinery/launch_pad.dm b/code/game/machinery/launch_pad.dm
index c7752a8cbfaa..c3e6bead671a 100644
--- a/code/game/machinery/launch_pad.dm
+++ b/code/game/machinery/launch_pad.dm
@@ -3,9 +3,9 @@
desc = "A bluespace pad able to thrust matter through bluespace, teleporting it to or from nearby locations."
icon = 'icons/obj/telescience.dmi'
icon_state = "lpad-idle"
- use_power = TRUE
- idle_power_usage = 200
- active_power_usage = 2500
+ use_power = IDLE_POWER_USE
+ idle_power_usage = IDLE_DRAW_LOW
+ active_power_usage = ACTIVE_DRAW_EXTREME
hud_possible = list(DIAG_LAUNCHPAD_HUD)
circuit = /obj/item/circuitboard/machine/launchpad
var/icon_teleport = "lpad-beam"
@@ -149,7 +149,7 @@
teleporting = FALSE
// use a lot of power
- use_power(1000)
+ use_power(active_power_usage)
var/turf/source = target
var/list/log_msg = list()
diff --git a/code/game/machinery/limbgrower.dm b/code/game/machinery/limbgrower.dm
index 40f405ad4a16..c0f296c1ffcf 100644
--- a/code/game/machinery/limbgrower.dm
+++ b/code/game/machinery/limbgrower.dm
@@ -7,8 +7,8 @@
icon_state = "limbgrower_idleoff"
density = TRUE
use_power = IDLE_POWER_USE
- idle_power_usage = 10
- active_power_usage = 100
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_LOW
circuit = /obj/item/circuitboard/machine/limbgrower
/// The category of limbs we're browing in our UI.
diff --git a/code/game/machinery/mass_driver.dm b/code/game/machinery/mass_driver.dm
index 4f91bea3ab7a..7316e5b42422 100644
--- a/code/game/machinery/mass_driver.dm
+++ b/code/game/machinery/mass_driver.dm
@@ -4,8 +4,8 @@
icon = 'icons/obj/stationobjs.dmi'
icon_state = "mass_driver"
use_power = IDLE_POWER_USE
- idle_power_usage = 2
- active_power_usage = 50
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_MEDIUM
var/power = 1
var/code = 1
var/id = 1
diff --git a/code/game/machinery/medical_kiosk.dm b/code/game/machinery/medical_kiosk.dm
index d7be7fea98ee..52933a5aba74 100644
--- a/code/game/machinery/medical_kiosk.dm
+++ b/code/game/machinery/medical_kiosk.dm
@@ -18,6 +18,8 @@
base_icon_state = "kiosk"
layer = ABOVE_MOB_LAYER
density = TRUE
+ use_power = IDLE_POWER_USE
+ idle_power_usage = IDLE_DRAW_LOW
circuit = /obj/item/circuitboard/machine/medical_kiosk
var/obj/item/scanner_wand
/// Emag mode
diff --git a/code/game/machinery/medipen_refiller.dm b/code/game/machinery/medipen_refiller.dm
index e104257b5493..ceb0ed389c17 100644
--- a/code/game/machinery/medipen_refiller.dm
+++ b/code/game/machinery/medipen_refiller.dm
@@ -5,7 +5,7 @@
icon_state = "medipen_refiller"
density = TRUE
circuit = /obj/item/circuitboard/machine/medipen_refiller
- idle_power_usage = 100
+ idle_power_usage = IDLE_DRAW_LOW
/// list of medipen subtypes it can refill
var/list/allowed = list(
/obj/item/reagent_containers/hypospray/medipen = /datum/reagent/medicine/epinephrine,
diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm
index 75498600b007..5891898ef6dc 100644
--- a/code/game/machinery/porta_turret/portable_turret.dm
+++ b/code/game/machinery/porta_turret/portable_turret.dm
@@ -33,8 +33,8 @@ DEFINE_BITFIELD(turret_flags, list(
density = TRUE
desc = "A covered turret that shoots at its enemies."
use_power = IDLE_POWER_USE //this turret uses and requires power
- idle_power_usage = 50 //when inactive, this turret takes up constant 50 Equipment power
- active_power_usage = 300 //when active, this turret takes up constant 300 Equipment power
+ idle_power_usage = IDLE_DRAW_MINIMAL //when inactive, this turret takes up constant 50 Equipment power
+ active_power_usage = ACTIVE_DRAW_LOW //when active, this turret takes up constant 300 Equipment power
req_access = list(ACCESS_SECURITY) /// Only people with Security access
power_channel = AREA_USAGE_EQUIP //drains power from the EQUIPMENT channel
max_integrity = 160 //the turret's health
@@ -795,7 +795,7 @@ DEFINE_BITFIELD(turret_flags, list(
max_integrity = 300
always_up = 1
use_power = ACTIVE_POWER_USE
- active_power_usage = 300
+ active_power_usage = ACTIVE_DRAW_MINIMAL
has_cover = 0
scan_range = 9
stun_projectile = /obj/projectile/beam/disabler
diff --git a/code/game/machinery/prisonlabor.dm b/code/game/machinery/prisonlabor.dm
index 6fe329ed4a71..76612018d87a 100644
--- a/code/game/machinery/prisonlabor.dm
+++ b/code/game/machinery/prisonlabor.dm
@@ -4,8 +4,8 @@
icon = 'icons/obj/machines/prison.dmi'
icon_state = "offline"
use_power = IDLE_POWER_USE
- idle_power_usage = 2
- active_power_usage = 50
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_LOW
var/obj/item/stack/license_plates/empty/current_plate
var/pressing = FALSE
diff --git a/code/game/machinery/quantum_pad.dm b/code/game/machinery/quantum_pad.dm
index cc9f8f6d3d59..7d0455ab82f0 100644
--- a/code/game/machinery/quantum_pad.dm
+++ b/code/game/machinery/quantum_pad.dm
@@ -4,8 +4,8 @@
icon = 'icons/obj/telescience.dmi'
icon_state = "qpad-idle"
use_power = IDLE_POWER_USE
- idle_power_usage = 200
- active_power_usage = 5000
+ idle_power_usage = IDLE_DRAW_LOW
+ active_power_usage = ACTIVE_DRAW_EXTREME
obj_flags = CAN_BE_HIT | UNIQUE_RENAME
circuit = /obj/item/circuitboard/machine/quantumpad
var/teleport_cooldown = 400 //30 seconds base due to base parts
diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm
index c604b3eeccf6..2720443d2424 100644
--- a/code/game/machinery/recharger.dm
+++ b/code/game/machinery/recharger.dm
@@ -5,8 +5,8 @@
base_icon_state = "recharger"
desc = "A charging dock for energy based weaponry."
use_power = IDLE_POWER_USE
- idle_power_usage = 4
- active_power_usage = 250
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_LOW
circuit = /obj/item/circuitboard/machine/recharger
pass_flags = PASSTABLE
var/obj/item/charging = null
@@ -50,11 +50,11 @@
if (new_charging)
START_PROCESSING(SSmachines, src)
finished_recharging = FALSE
- use_power = ACTIVE_POWER_USE
+ set_active_power()
using_power = TRUE
update_appearance()
else
- use_power = IDLE_POWER_USE
+ set_idle_power()
using_power = FALSE
update_appearance()
diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm
index 14e253298070..cedf6c0a56ff 100644
--- a/code/game/machinery/rechargestation.dm
+++ b/code/game/machinery/rechargestation.dm
@@ -5,8 +5,8 @@
icon_state = "borgcharger0"
density = FALSE
use_power = IDLE_POWER_USE
- idle_power_usage = 5
- active_power_usage = 1000
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_MEDIUM
req_access = list(ACCESS_ROBOTICS)
state_open = TRUE
circuit = /obj/item/circuitboard/machine/cyborgrecharger
@@ -90,12 +90,12 @@
/obj/machinery/recharge_station/open_machine()
. = ..()
- use_power = IDLE_POWER_USE
+ set_idle_power()
/obj/machinery/recharge_station/close_machine()
. = ..()
if(occupant)
- use_power = ACTIVE_POWER_USE //It always tries to charge, even if it can't.
+ set_active_power() //It always tries to charge, even if it can't.
add_fingerprint(occupant)
/obj/machinery/recharge_station/update_icon_state()
diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm
index b548ecf73125..82265e244448 100644
--- a/code/game/machinery/recycler.dm
+++ b/code/game/machinery/recycler.dm
@@ -7,6 +7,8 @@
icon_state = "grinder-o0"
layer = ABOVE_ALL_MOB_LAYER // Overhead
density = TRUE
+ use_power = IDLE_POWER_USE
+ idle_power_usage = IDLE_DRAW_LOW
circuit = /obj/item/circuitboard/machine/recycler
var/safety_mode = FALSE // Temporarily stops machine if it detects a mob
var/icon_name = "grinder-o"
@@ -19,7 +21,7 @@
/obj/machinery/recycler/Initialize()
AddComponent(/datum/component/butchering/recycler, 1, amount_produced,amount_produced/5)
- AddComponent(/datum/component/material_container, list(/datum/material/iron, /datum/material/glass, /datum/material/silver, /datum/material/plasma, /datum/material/gold, /datum/material/diamond, /datum/material/plastic, /datum/material/uranium, /datum/material/bananium, /datum/material/titanium, /datum/material/bluespace), INFINITY, FALSE, null, null, null, TRUE)
+ AddComponent(/datum/component/material_container, list(/datum/material/iron, /datum/material/glass, /datum/material/silver, /datum/material/plasma, /datum/material/gold, /datum/material/diamond, /datum/material/plastic, /datum/material/uranium, /datum/material/hellstone, /datum/material/titanium, /datum/material/bluespace), INFINITY, FALSE, null, null, null, TRUE)
. = ..()
update_appearance()
req_one_access = get_all_accesses() + get_all_centcom_access()
diff --git a/code/game/machinery/roulette_machine.dm b/code/game/machinery/roulette_machine.dm
index c9e1d108c1e5..351f1c42ae5e 100644
--- a/code/game/machinery/roulette_machine.dm
+++ b/code/game/machinery/roulette_machine.dm
@@ -26,8 +26,8 @@
density = TRUE
use_power = IDLE_POWER_USE
anchored = FALSE
- idle_power_usage = 10
- active_power_usage = 100
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_MINIMAL
max_integrity = 500
armor = list("melee" = 45, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 10, "bio" = 30, "rad" = 30, "fire" = 30, "acid" = 30)
var/static/list/numbers = list("0" = "green", "1" = "red", "3" = "red", "5" = "red", "7" = "red", "9" = "red", "12" = "red", "14" = "red", "16" = "red",\
diff --git a/code/game/machinery/scan_gate.dm b/code/game/machinery/scan_gate.dm
index 1ffb03200183..cf83233598aa 100644
--- a/code/game/machinery/scan_gate.dm
+++ b/code/game/machinery/scan_gate.dm
@@ -27,7 +27,7 @@
icon = 'icons/obj/machines/scangate.dmi'
icon_state = "scangate"
use_power = IDLE_POWER_USE
- idle_power_usage = 50
+ idle_power_usage = IDLE_DRAW_LOW
circuit = /obj/item/circuitboard/machine/scanner_gate
var/scanline_timer
diff --git a/code/game/machinery/sheetifier.dm b/code/game/machinery/sheetifier.dm
index 569bfa4b6f9e..ec9f0f5ff5a3 100644
--- a/code/game/machinery/sheetifier.dm
+++ b/code/game/machinery/sheetifier.dm
@@ -5,8 +5,8 @@
icon_state = "base_machine"
density = TRUE
use_power = IDLE_POWER_USE
- idle_power_usage = 10
- active_power_usage = 100
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_LOW
circuit = /obj/item/circuitboard/machine/sheetifier
layer = BELOW_OBJ_LAYER
var/busy_processing = FALSE
diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm
index bc578a856300..df865aee82e5 100644
--- a/code/game/machinery/shieldgen.dm
+++ b/code/game/machinery/shieldgen.dm
@@ -122,25 +122,23 @@
if(.)
return
if(locked && !issilicon(user))
- to_chat(user, "The machine is locked, you are unable to use it!")
+ to_chat(user, span_notice("The machine is locked, you are unable to use it!"))
return
if(panel_open)
- to_chat(user, "The panel must be closed before operating this machine!")
+ to_chat(user, span_warning("The panel must be closed before operating this machine!"))
return
if (active)
- user.visible_message("[user] deactivated \the [src].", \
- "You deactivate \the [src].", \
- "You hear heavy droning fade out.")
+ user.visible_message(span_notice("[user] deactivated \the [src]."), span_notice("You deactivate \the [src]."), span_hear("You hear heavy droning fade out"))
shields_down()
else
if(anchored)
- user.visible_message("[user] activated \the [src].", \
- "You activate \the [src].", \
- "You hear heavy droning.")
+ user.visible_message(span_notice("[user] activated \the [src]."), \
+ span_notice("You activate \the [src]."), \
+ span_hear("You hear heavy droning."))
shields_up()
else
- to_chat(user, "The device must first be secured to the floor!")
+ to_chat(user, span_warning("The device must first be secured to the floor!"))
return
/obj/machinery/shieldgen/attackby(obj/item/W, mob/user, params)
@@ -148,60 +146,60 @@
W.play_tool_sound(src, 100)
panel_open = !panel_open
if(panel_open)
- to_chat(user, "You open the panel and expose the wiring.")
+ to_chat(user, span_notice("You open the panel and expose the wiring."))
else
- to_chat(user, "You close the panel.")
+ to_chat(user, span_notice("You close the panel."))
else if(istype(W, /obj/item/stack/cable_coil) && (machine_stat & BROKEN) && panel_open)
var/obj/item/stack/cable_coil/coil = W
if (coil.get_amount() < 1)
- to_chat(user, "You need one length of cable to repair [src]!")
+ to_chat(user, span_warning("You need one length of cable to repair [src]!"))
return
- to_chat(user, "You begin to replace the wires...")
+ to_chat(user, span_notice("You begin to replace the wires..."))
if(do_after(user, 30, target = src))
if(coil.get_amount() < 1)
return
coil.use(1)
obj_integrity = max_integrity
set_machine_stat(machine_stat & ~BROKEN)
- to_chat(user, "You repair \the [src].")
+ to_chat(user, span_notice("You repair \the [src]."))
update_appearance()
else if(W.tool_behaviour == TOOL_WRENCH)
if(locked)
- to_chat(user, "The bolts are covered! Unlocking this would retract the covers.")
+ to_chat(user, span_warning("The bolts are covered! Unlocking this would retract the covers."))
return
if(!anchored && !isinspace())
W.play_tool_sound(src, 100)
- to_chat(user, "You secure \the [src] to the floor!")
+ to_chat(user, span_notice("You secure \the [src] to the floor!"))
set_anchored(TRUE)
else if(anchored)
W.play_tool_sound(src, 100)
- to_chat(user, "You unsecure \the [src] from the floor!")
+ to_chat(user, span_notice("You unsecure \the [src] from the floor!"))
if(active)
- to_chat(user, "\The [src] shuts off!")
+ to_chat(user, span_notice("\The [src] shuts off!"))
shields_down()
set_anchored(FALSE)
else if(W.GetID())
if(allowed(user) && !(obj_flags & EMAGGED))
locked = !locked
- to_chat(user, "You [locked ? "lock" : "unlock"] the controls.")
+ to_chat(user, span_notice("You [locked ? "lock" : "unlock"] the controls."))
else if(obj_flags & EMAGGED)
- to_chat(user, "Error, access controller damaged!")
+ to_chat(user, span_danger("Error, access controller damaged!"))
else
- to_chat(user, "Access denied.")
+ to_chat(user, span_danger("Access denied."))
else
return ..()
/obj/machinery/shieldgen/emag_act(mob/user)
if(obj_flags & EMAGGED)
- to_chat(user, "The access controller is damaged!")
+ to_chat(user, span_warning("The access controller is damaged!"))
return
obj_flags |= EMAGGED
locked = FALSE
playsound(src, "sparks", 100, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
- to_chat(user, "You short out the access controller.")
+ to_chat(user, span_warning("You short out the access controller."))
/obj/machinery/shieldgen/update_icon_state()
icon_state = "shield[active ? "on" : "off"][(machine_stat & BROKEN) ? "br" : null]"
@@ -219,8 +217,8 @@
req_access = list(ACCESS_TELEPORTER)
flags_1 = CONDUCT_1
use_power = NO_POWER_USE
- idle_power_usage = 10
- active_power_usage = 50
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_HIGH
circuit = /obj/item/circuitboard/machine/shieldwallgen
max_integrity = 300
var/active = FALSE
@@ -275,9 +273,7 @@
if(!active_power_usage || surplus() >= active_power_usage)
add_load(active_power_usage)
else
- visible_message("The [src.name] shuts down due to lack of power!", \
- "If this message is ever seen, something is wrong.",
- "You hear heavy droning fade out.")
+ visible_message(span_danger("The [src.name] shuts down due to lack of power!"), "If this message is ever seen, something is wrong.",span_hear("You hear heavy droning fade out."))
active = FALSE
log_game("[src] deactivated due to lack of power at [AREACOORD(src)]")
for(var/direction in GLOB.cardinals)
@@ -348,7 +344,7 @@
/obj/machinery/power/shieldwallgen/can_be_unfasten_wrench(mob/user, silent)
if(active)
if(!silent)
- to_chat(user, "Turn off the shield generator first!")
+ to_chat(user, span_warning("Turn off the shield generator first!"))
return FAILED_UNFASTEN
return ..()
@@ -388,11 +384,11 @@
if(item.GetID())
if(allowed(user) && !(obj_flags & EMAGGED))
locked = !locked
- to_chat(user, "You [src.locked ? "lock" : "unlock"] the controls.")
+ to_chat(user, span_notice("You [src.locked ? "lock" : "unlock"] the controls."))
else if(obj_flags & EMAGGED)
- to_chat(user, "Error, access controller damaged!")
+ to_chat(user, span_danger("Error, access controller damaged!"))
else
- to_chat(user, "Access denied.")
+ to_chat(user, span_danger("Access denied."))
else
add_fingerprint(user)
@@ -406,25 +402,23 @@
shock(user,50)
return
if(!anchored)
- to_chat(user, "\The [src] needs to be firmly secured to the floor first!")
+ to_chat(user, span_warning("\The [src] needs to be firmly secured to the floor first!"))
return
if(locked && !issilicon(user))
- to_chat(user, "The controls are locked!")
+ to_chat(user, span_warning("The controls are locked!"))
return
if(!powernet)
- to_chat(user, "\The [src] needs to be powered by a wire!")
+ to_chat(user, span_warning("\The [src] needs to be powered by a wire!"))
return
if(active)
- user.visible_message("[user] turned \the [src] off.", \
- "You turn off \the [src].", \
- "You hear heavy droning fade out.")
+ user.visible_message(span_notice("[user] turned \the [src] off."), \
+ span_notice("You turn off \the [src]."), \
+ span_hear("You hear heavy droning fade out."))
active = FALSE
log_game("[src] was deactivated by [key_name(user)] at [AREACOORD(src)]")
else
- user.visible_message("[user] turned \the [src] on.", \
- "You turn on \the [src].", \
- "You hear heavy droning.")
+ user.visible_message(span_notice("[user] turned \the [src] on."), span_notice("ou turn on \the [src]."), span_hear("ou hear heavy droning."))
active = ACTIVE_SETUPFIELDS
log_game("[src] was activated by [key_name(user)] at [AREACOORD(src)]")
add_fingerprint(user)
@@ -435,28 +429,28 @@
if(!powernet)
return
if(active)
- visible_message("The [src.name] hums as it powers down.", \
+ visible_message(span_notice("The [src.name] hums as it powers down."), \
"If this message is ever seen, something is wrong.", \
- "You hear heavy droning fade out.")
+ span_notice("You hear heavy droning fade out."))
playsound(src, 'sound/machines/synth_no.ogg', 50, TRUE, frequency = 6120)
active = FALSE
log_game("[src] was deactivated by wire pulse at [AREACOORD(src)]")
else
- visible_message("The [src.name] beeps as it powers up.", \
+ visible_message(span_notice("The [src.name] beeps as it powers up."), \
"If this message is ever seen, something is wrong.", \
- "You hear heavy droning.")
+ span_notice("You hear heavy droning."))
playsound(src, 'sound/machines/synth_yes.ogg', 50, TRUE, frequency = 6120)
active = ACTIVE_SETUPFIELDS
log_game("[src] was activated by wire pulse at [AREACOORD(src)]")
/obj/machinery/power/shieldwallgen/emag_act(mob/user)
if(obj_flags & EMAGGED)
- to_chat(user, "The access controller is damaged!")
+ to_chat(user, span_warning("The access controller is damaged!"))
return
obj_flags |= EMAGGED
locked = FALSE
playsound(src, "sparks", 100, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
- to_chat(user, "You short out the access controller.")
+ to_chat(user, span_warning("You short out the access controller."))
/obj/machinery/power/shieldwallgen/proc/shock(mob/user, prb)
if(machine_stat & (BROKEN|NOPOWER)) // unpowered, no shock
@@ -511,10 +505,31 @@
/obj/machinery/power/shieldwallgen/atmos/proc/can_be_rotated(mob/user, rotation_type)
if (anchored)
- to_chat(user, "It is fastened to the floor!")
+ to_chat(user, span_warning("It is fastened to the floor!"))
return FALSE
return TRUE
+/obj/machinery/power/shieldwallgen/atmos/attacked_by(obj/item/I, mob/living/user)
+ if(I.tool_behaviour == TOOL_MULTITOOL)
+ var/obj/item/multitool/multi = I
+ if(!panel_open && !locked)
+ if(istype(multi.buffer,/obj/item/assembly/control/shieldwallgen))
+ var/obj/item/assembly/control/shieldwallgen/controller = multi.buffer
+ to_chat(user, span_notice("You copy the ID in your multitool's buffer to the [src]."))
+ id = controller.id
+ return TRUE
+
+ else
+ to_chat(user, span_warning("The controls are locked!"))
+ return
+
+ return ..()
+
+/obj/machinery/power/shieldwallgen/atmos/multitool_act(mob/living/user, obj/item/I)
+ . = ..()
+
+
+
/// Same as in the normal shieldwallgen, but with the shieldwalls replaced with atmos shieldwalls
/obj/machinery/power/shieldwallgen/atmos/setup_field(direction)
if(!direction)
@@ -586,7 +601,7 @@
setDir(get_dir(gen_primary, gen_secondary))
if(hardshield == TRUE)
for(var/mob/living/victim in get_turf(src))
- visible_message("\The [src] is suddenly occupying the same space as \the [victim]!")
+ visible_message(span_danger("\The [src] is suddenly occupying the same space as \the [victim]!"))
victim.gib()
/obj/machinery/shieldwall/Destroy()
diff --git a/code/game/machinery/shuttle/ship_gravity.dm b/code/game/machinery/shuttle/ship_gravity.dm
index bfcf937f341a..4f63c60d7824 100644
--- a/code/game/machinery/shuttle/ship_gravity.dm
+++ b/code/game/machinery/shuttle/ship_gravity.dm
@@ -9,8 +9,8 @@
icon_state = "shipgrav"
base_icon_state = "shipgrav"
density = TRUE
- idle_power_usage = 10
- active_power_usage = 5000
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_EXTREME
circuit = /obj/item/circuitboard/machine/ship_gravity
var/charging = FALSE
var/active = FALSE
diff --git a/code/game/machinery/shuttle/shuttle_engine_types.dm b/code/game/machinery/shuttle/shuttle_engine_types.dm
index e5e3d812c098..de9992e106d1 100644
--- a/code/game/machinery/shuttle/shuttle_engine_types.dm
+++ b/code/game/machinery/shuttle/shuttle_engine_types.dm
@@ -29,7 +29,7 @@
if(heat_creation)
heat_engine()
var/to_use = fuel_use * (percentage / 100) * deltatime
- return resolved_heater.consume_fuel(to_use, fuel_type) / to_use * thrust //This proc returns how much was actually burned, so let's use that and multiply it by the thrust to get all the thrust we CAN give.
+ return resolved_heater.consume_fuel(to_use, fuel_type) / to_use * percentage / 100 * thrust //This proc returns how much was actually burned, so let's use that and multiply it by the thrust to get all the thrust we CAN give.
/obj/machinery/power/shuttle/engine/fueled/return_fuel()
. = ..()
diff --git a/code/game/machinery/shuttle/shuttle_heater.dm b/code/game/machinery/shuttle/shuttle_heater.dm
index 94735ba4ab25..8578e3fb5a23 100644
--- a/code/game/machinery/shuttle/shuttle_heater.dm
+++ b/code/game/machinery/shuttle/shuttle_heater.dm
@@ -16,7 +16,7 @@
icon_state = "heater_pipe"
var/icon_state_closed = "heater_pipe"
var/icon_state_open = "heater_pipe_open"
- idle_power_usage = 50
+ idle_power_usage = IDLE_DRAW_MINIMAL
circuit = /obj/item/circuitboard/machine/shuttle/heater
density = TRUE
@@ -25,7 +25,7 @@
layer = OBJ_LAYER
showpipe = TRUE
- pipe_flags = PIPING_ONE_PER_TURF | PIPING_DEFAULT_LAYER_ONLY
+ pipe_flags = PIPING_ONE_PER_TURF
var/efficiency_multiplier = 1
var/gas_capacity = 0
@@ -34,6 +34,13 @@
///The internals tank to draw from
var/obj/item/tank/fuel_tank
+/obj/machinery/atmospherics/components/unary/shuttle/heater/on_construction(obj_color, set_layer)
+ var/obj/item/circuitboard/machine/shuttle/heater/board = circuit
+ if(board)
+ piping_layer = board.pipe_layer
+ set_layer = piping_layer
+ ..()
+
/obj/machinery/atmospherics/components/unary/shuttle/heater/New()
. = ..()
SetInitDirections()
diff --git a/code/game/machinery/slotmachine.dm b/code/game/machinery/slotmachine.dm
index 0ae88638d5b3..2038612c2791 100644
--- a/code/game/machinery/slotmachine.dm
+++ b/code/game/machinery/slotmachine.dm
@@ -22,7 +22,7 @@
base_icon_state = "slots"
density = TRUE
use_power = IDLE_POWER_USE
- idle_power_usage = 50
+ idle_power_usage = IDLE_DRAW_MINIMAL
circuit = /obj/item/circuitboard/computer/slot_machine
light_color = LIGHT_COLOR_BROWN
unique_icon = TRUE
diff --git a/code/game/machinery/stasis.dm b/code/game/machinery/stasis.dm
index 37e079715dcd..2582c57da903 100644
--- a/code/game/machinery/stasis.dm
+++ b/code/game/machinery/stasis.dm
@@ -9,8 +9,8 @@
can_buckle = TRUE
buckle_lying = 90
circuit = /obj/item/circuitboard/machine/stasis
- idle_power_usage = 40
- active_power_usage = 340
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_HIGH
var/stasis_enabled = TRUE
var/last_stasis_sound = FALSE
var/stasis_can_toggle = 0
@@ -112,12 +112,12 @@
playsound(src, 'sound/effects/spray.ogg', 5, TRUE, 2, frequency = freq)
target.apply_status_effect(STATUS_EFFECT_STASIS, STASIS_MACHINE_EFFECT)
target.ExtinguishMob()
- use_power = ACTIVE_POWER_USE
+ set_active_power()
/obj/machinery/stasis/proc/thaw_them(mob/living/target)
target.remove_status_effect(STATUS_EFFECT_STASIS, STASIS_MACHINE_EFFECT)
if(target == occupant)
- use_power = IDLE_POWER_USE
+ set_idle_power()
/obj/machinery/stasis/post_buckle_mob(mob/living/L)
if(!can_be_occupant(L))
diff --git a/code/game/machinery/status_display.dm b/code/game/machinery/status_display.dm
index 1e402ee02e5a..9e1b5b28690b 100644
--- a/code/game/machinery/status_display.dm
+++ b/code/game/machinery/status_display.dm
@@ -22,7 +22,7 @@
icon_state = "frame"
density = FALSE
use_power = IDLE_POWER_USE
- idle_power_usage = 10
+ idle_power_usage = IDLE_DRAW_MINIMAL
maptext_height = 26
maptext_width = 32
diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm
index e86d4ae9f0f9..ed734453202b 100644
--- a/code/game/machinery/suit_storage_unit.dm
+++ b/code/game/machinery/suit_storage_unit.dm
@@ -1,3 +1,5 @@
+#define BASE_UV_CYCLES 7
+
// SUIT STORAGE UNIT /////////////////
/obj/machinery/suit_storage_unit
name = "suit storage unit"
@@ -6,7 +8,10 @@
icon_state = "ssu_classic"
base_icon_state = "ssu_classic"
density = TRUE
+ use_power = IDLE_POWER_USE
+ idle_power_usage = IDLE_DRAW_MINIMAL
max_integrity = 250
+ circuit = /obj/item/circuitboard/machine/suit_storage_unit
var/obj/item/clothing/suit/space/suit = null
var/obj/item/clothing/head/helmet/space/helmet = null
@@ -40,7 +45,9 @@
*/
var/uv_super = FALSE
/// How many cycles remain for the decontamination sequence.
- var/uv_cycles = 6
+ var/uv_cycles = 7
+ /// Time reduction from stock parts
+ var/lasers_bonus = 0
/// Cooldown for occupant breakout messages via relaymove()
var/message_cooldown
/// How long it takes to break out of the SSU.
@@ -191,6 +198,19 @@
storage = new storage_type(src)
update_appearance()
+/obj/machinery/suit_storage_unit/examine(mob/user)
+ . = ..()
+ . += span_notice("Number of UV cycles reduced by [lasers_bonus].")
+ if(locked)
+ . += span_notice("The locking bolts on \the [src] are engaged, preventing it from being pried open.")
+
+/obj/machinery/suit_storage_unit/RefreshParts()
+ lasers_bonus = 0
+ for(var/obj/item/stock_parts/micro_laser/lasers in component_parts)
+ lasers_bonus += ((lasers.rating) * 0.25)
+
+ uv_cycles = BASE_UV_CYCLES - lasers_bonus
+
/obj/machinery/suit_storage_unit/Destroy()
QDEL_NULL(suit)
QDEL_NULL(helmet)
@@ -250,7 +270,15 @@
if(!(flags_1 & NODECONSTRUCT_1))
open_machine()
dump_contents()
- new /obj/item/stack/sheet/metal (loc, 2)
+ on_deconstruction()
+ if(circuit)
+ circuit.forceMove(loc)
+ circuit = null
+ if(length(component_parts))
+ spawn_frame(disassembled)
+ for(var/obj/item/I in component_parts)
+ I.forceMove(loc)
+ component_parts.Cut()
qdel(src)
/obj/machinery/suit_storage_unit/interact(mob/living/user)
@@ -318,7 +346,7 @@
else
if (occupant)
var/mob/living/mob_occupant = occupant
- to_chat(mob_occupant, "[src]'s confines grow warm, then hot, then scorching. You're being burned [!mob_occupant.stat ? "alive" : "away"]!")
+ to_chat(mob_occupant, span_userdanger("[src]'s confines grow warm, then hot, then scorching. You're being burned [!mob_occupant.stat ? "alive" : "away"]!"))
cook()
if ("lock", "unlock")
if (!state_open)
@@ -364,27 +392,27 @@
return
var/mob/living/target = A
if(!state_open)
- to_chat(user, "The unit's doors are shut!")
+ to_chat(user, span_warning("The unit's doors are shut!"))
return
if(!is_operational)
- to_chat(user, "The unit is not operational!")
+ to_chat(user, span_warning("The unit is not operational!"))
return
if(occupant || helmet || suit || storage)
- to_chat(user, "It's too cluttered inside to fit in!")
+ to_chat(user, span_warning("It's too cluttered inside to fit in!"))
return
if(target == user)
- user.visible_message("[user] starts squeezing into [src]!", "You start working your way into [src]...")
+ user.visible_message(span_warning("[user] starts squeezing into [src]!"), span_notice("You start working your way into [src]..."))
else
- target.visible_message("[user] starts shoving [target] into [src]!", "[user] starts shoving you into [src]!")
+ target.visible_message(span_warning("[user] starts shoving [target] into [src]!"), span_userdanger("[user] starts shoving you into [src]!"))
if(do_mob(user, target, 30))
if(occupant || helmet || suit || storage)
return
if(target == user)
- user.visible_message("[user] slips into [src] and closes the door behind [user.p_them()]!", "You slip into [src]'s cramped space and shut its door.")
+ user.visible_message(span_warning("[user] slips into [src] and closes the door behind [user.p_them()]!"), span_notice("You slip into [src]'s cramped space and shut its door."))
else
- target.visible_message("[user] pushes [target] into [src] and shuts its door!", "[user] shoves you into [src] and shuts the door!")
+ target.visible_message(span_warning("[user] pushes [target] into [src] and shuts its door!"), span_userdanger("[user] shoves you into [src] and shuts the door!"))
close_machine(target)
add_fingerprint(user)
@@ -398,11 +426,12 @@
*/
/obj/machinery/suit_storage_unit/proc/cook()
var/mob/living/mob_occupant = occupant
- if(uv_cycles)
+ if(uv_cycles > 0)
uv_cycles--
uv = TRUE
locked = TRUE
update_appearance()
+ use_power(ACTIVE_DRAW_HIGH)
if(occupant)
if(uv_super)
mob_occupant.adjustFireLoss(rand(20, 36))
@@ -411,11 +440,11 @@
mob_occupant.emote("scream")
addtimer(CALLBACK(src, PROC_REF(cook)), 50)
else
- uv_cycles = initial(uv_cycles)
+ uv_cycles = (BASE_UV_CYCLES - lasers_bonus)
uv = FALSE
locked = FALSE
if(uv_super)
- visible_message("[src]'s door creaks open with a loud whining noise. A cloud of foul black smoke escapes from its chamber.")
+ visible_message(span_warning("[src]'s door creaks open with a loud whining noise. A cloud of foul black smoke escapes from its chamber."))
playsound(src, 'sound/machines/creaking.ogg', 50, TRUE)
helmet = null
qdel(helmet)
@@ -429,9 +458,9 @@
wires.cut_all()
else
if(!occupant)
- visible_message("[src]'s door slides open. The glowing yellow lights dim to a gentle green.")
+ visible_message(span_notice("[src]'s door slides open. The glowing yellow lights dim to a gentle green."))
else
- visible_message("[src]'s door slides open, barraging you with the nauseating smell of charred flesh.")
+ visible_message(span_warning("[src]'s door slides open, barraging you with the nauseating smell of charred flesh."))
mob_occupant.radiation = 0
playsound(src, 'sound/machines/airlocks/standard/close.ogg', 25, TRUE)
var/list/things_to_clear = list() //Done this way since using GetAllContents on the SSU itself would include circuitry and such.
@@ -469,7 +498,7 @@
if(locked)
if(message_cooldown <= world.time)
message_cooldown = world.time + 50
- to_chat(user, "[src]'s door won't budge!")
+ to_chat(user, span_warning("[src]'s door won't budge!"))
return
open_machine()
dump_contents()
@@ -481,21 +510,21 @@
return
user.changeNext_move(CLICK_CD_BREAKOUT)
user.last_special = world.time + CLICK_CD_BREAKOUT
- user.visible_message("You see [user] kicking against the doors of [src]!", \
- "You start kicking against the doors... (this will take about [DisplayTimeText(breakout_time)].)", \
- "You hear a thump from [src].")
+ user.visible_message(span_notice("You see [user] kicking against the doors of [src]!"), \
+ span_notice("You start kicking against the doors... (this will take about [DisplayTimeText(breakout_time)].)"), \
+ span_hear("You hear a thump from [src]."))
if(do_after(user,(breakout_time), target = src))
if(!user || user.stat != CONSCIOUS || user.loc != src)
return
- user.visible_message("[user] successfully broke out of [src]!", \
- "You successfully break out of [src]!")
+ user.visible_message(span_warning("[user] successfully broke out of [src]!"), \
+ span_notice("You successfully break out of [src]!"))
open_machine()
dump_contents()
add_fingerprint(user)
if(locked)
- visible_message("You see [user] kicking against the doors of [src]!", \
- "You start kicking against the doors...")
+ visible_message(span_notice("You see [user] kicking against the doors of [src]!"), \
+ span_notice("You start kicking against the doors..."))
addtimer(CALLBACK(src, PROC_REF(resist_open), user), 300)
else
open_machine()
@@ -503,42 +532,42 @@
/obj/machinery/suit_storage_unit/proc/resist_open(mob/user)
if(!state_open && occupant && (user in src) && user.stat == 0) // Check they're still here.
- visible_message("You see [user] burst out of [src]!", \
- "You escape the cramped confines of [src]!")
+ visible_message(span_notice("You see [user] burst out of [src]!"), \
+ span_notice("You escape the cramped confines of [src]!"))
open_machine()
/obj/machinery/suit_storage_unit/attackby(obj/item/I, mob/user, params)
if(state_open && is_operational)
if(istype(I, /obj/item/clothing/suit))
if(suit)
- to_chat(user, "The unit already contains a suit!.")
+ to_chat(user, span_warning("The unit already contains a suit!."))
return
if(!user.transferItemToLoc(I, src))
return
suit = I
else if(istype(I, /obj/item/clothing/head))
if(helmet)
- to_chat(user, "The unit already contains a helmet!")
+ to_chat(user, span_warning("The unit already contains a helmet!"))
return
if(!user.transferItemToLoc(I, src))
return
helmet = I
else if(istype(I, /obj/item/clothing/mask))
if(mask)
- to_chat(user, "The unit already contains a mask!")
+ to_chat(user, span_warning("The unit already contains a mask!"))
return
if(!user.transferItemToLoc(I, src))
return
mask = I
else
if(storage)
- to_chat(user, "The auxiliary storage compartment is full!")
+ to_chat(user, span_warning("The auxiliary storage compartment is full!"))
return
if(!user.transferItemToLoc(I, src))
return
storage = I
- visible_message("[user] inserts [I] into [src]", "You load [I] into [src].")
+ visible_message(span_notice("[user] inserts [I] into [src]"), span_notice("You load [I] into [src]."))
update_appearance()
return
@@ -561,7 +590,7 @@
*/
/obj/machinery/suit_storage_unit/default_deconstruction_screwdriver(mob/user, icon_state_open, icon_state_closed, obj/item/I)
if(!(flags_1 & NODECONSTRUCT_1) && I.tool_behaviour == TOOL_SCREWDRIVER && uv)
- to_chat(user, "It might not be wise to fiddle with [src] while it's running...")
+ to_chat(user, span_warning("It might not be wise to fiddle with [src] while it's running..."))
return TRUE
return ..()
@@ -570,8 +599,12 @@
. = !(state_open || panel_open || is_operational || locked || (flags_1 & NODECONSTRUCT_1)) && I.tool_behaviour == TOOL_CROWBAR
if(.)
I.play_tool_sound(src, 50)
- visible_message("[usr] pries open \the [src].", "You pry open \the [src].")
+ visible_message(span_notice("[usr] pries open \the [src]."), span_notice("You pry open \the [src]."))
open_machine()
+ // todo, make it not deconstruct while locked
+ if(!locked)
+ if(default_deconstruction_crowbar(I))
+ return TRUE
// Mapping helper unit takes whatever lies on top of it
/obj/machinery/suit_storage_unit/inherit/Initialize(mapload)
@@ -596,3 +629,6 @@
AM.forceMove(src)
storage = AM
update_appearance()
+
+
+#undef BASE_UV_CYCLES
diff --git a/code/game/machinery/telecomms/machines/broadcaster.dm b/code/game/machinery/telecomms/machines/broadcaster.dm
index f9cbc692e050..2a12e6bcf937 100644
--- a/code/game/machinery/telecomms/machines/broadcaster.dm
+++ b/code/game/machinery/telecomms/machines/broadcaster.dm
@@ -14,7 +14,7 @@ GLOBAL_VAR_INIT(message_delay, 0) // To make sure restarting the recentmessages
desc = "A dish-shaped machine used to broadcast processed subspace signals."
density = TRUE
use_power = IDLE_POWER_USE
- idle_power_usage = 25
+ idle_power_usage = IDLE_DRAW_MINIMAL
circuit = /obj/item/circuitboard/machine/telecomms/broadcaster
/obj/machinery/telecomms/broadcaster/receive_information(datum/signal/subspace/signal, obj/machinery/telecomms/machine_from)
diff --git a/code/game/machinery/telecomms/machines/bus.dm b/code/game/machinery/telecomms/machines/bus.dm
index 2496ee41c874..6428456d1614 100644
--- a/code/game/machinery/telecomms/machines/bus.dm
+++ b/code/game/machinery/telecomms/machines/bus.dm
@@ -14,7 +14,7 @@
desc = "A mighty piece of hardware used to send massive amounts of data quickly."
density = TRUE
use_power = IDLE_POWER_USE
- idle_power_usage = 50
+ idle_power_usage = IDLE_DRAW_MINIMAL
netspeed = 40
circuit = /obj/item/circuitboard/machine/telecomms/bus
var/change_frequency = 0
diff --git a/code/game/machinery/telecomms/machines/hub.dm b/code/game/machinery/telecomms/machines/hub.dm
index dedf7c7f3a77..a01225b4f4fd 100644
--- a/code/game/machinery/telecomms/machines/hub.dm
+++ b/code/game/machinery/telecomms/machines/hub.dm
@@ -14,7 +14,7 @@
desc = "A mighty piece of hardware used to send/receive massive amounts of data."
density = TRUE
use_power = IDLE_POWER_USE
- idle_power_usage = 80
+ idle_power_usage = IDLE_DRAW_MINIMAL
long_range_link = TRUE
netspeed = 40
circuit = /obj/item/circuitboard/machine/telecomms/hub
diff --git a/code/game/machinery/telecomms/machines/message_server.dm b/code/game/machinery/telecomms/machines/message_server.dm
index d11067c290fd..d9f927a7c355 100644
--- a/code/game/machinery/telecomms/machines/message_server.dm
+++ b/code/game/machinery/telecomms/machines/message_server.dm
@@ -12,8 +12,8 @@
name = "Blackbox Recorder"
density = TRUE
use_power = IDLE_POWER_USE
- idle_power_usage = 10
- active_power_usage = 100
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_MINIMAL
armor = list("melee" = 25, "bullet" = 10, "laser" = 10, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 70)
var/obj/item/stored
@@ -80,8 +80,8 @@
desc = "A machine that processes and routes PDA and request console messages."
density = TRUE
use_power = IDLE_POWER_USE
- idle_power_usage = 10
- active_power_usage = 100
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_MINIMAL
circuit = /obj/item/circuitboard/machine/telecomms/message_server
var/list/datum/data_pda_msg/pda_msgs = list()
diff --git a/code/game/machinery/telecomms/machines/processor.dm b/code/game/machinery/telecomms/machines/processor.dm
index 86bc02438d95..6c13ee65d510 100644
--- a/code/game/machinery/telecomms/machines/processor.dm
+++ b/code/game/machinery/telecomms/machines/processor.dm
@@ -12,7 +12,7 @@
desc = "This machine is used to process large quantities of information."
density = TRUE
use_power = IDLE_POWER_USE
- idle_power_usage = 30
+ idle_power_usage = IDLE_DRAW_MINIMAL
circuit = /obj/item/circuitboard/machine/telecomms/processor
var/process_mode = 1 // 1 = Uncompress Signals, 0 = Compress Signals
diff --git a/code/game/machinery/telecomms/machines/receiver.dm b/code/game/machinery/telecomms/machines/receiver.dm
index 79b989648d55..33b0bc7028ec 100644
--- a/code/game/machinery/telecomms/machines/receiver.dm
+++ b/code/game/machinery/telecomms/machines/receiver.dm
@@ -12,7 +12,7 @@
desc = "This machine has a dish-like shape and green lights. It is designed to detect and process subspace radio activity."
density = TRUE
use_power = IDLE_POWER_USE
- idle_power_usage = 30
+ idle_power_usage = IDLE_DRAW_MINIMAL
circuit = /obj/item/circuitboard/machine/telecomms/receiver
/obj/machinery/telecomms/receiver/receive_signal(datum/signal/subspace/signal)
diff --git a/code/game/machinery/telecomms/machines/relay.dm b/code/game/machinery/telecomms/machines/relay.dm
index ffaeda72e26d..763c42dbbf9c 100644
--- a/code/game/machinery/telecomms/machines/relay.dm
+++ b/code/game/machinery/telecomms/machines/relay.dm
@@ -12,7 +12,7 @@
desc = "A mighty piece of hardware used to send massive amounts of data far away."
density = TRUE
use_power = IDLE_POWER_USE
- idle_power_usage = 30
+ idle_power_usage = IDLE_DRAW_MINIMAL
netspeed = 5
long_range_link = 1
circuit = /obj/item/circuitboard/machine/telecomms/relay
diff --git a/code/game/machinery/telecomms/machines/server.dm b/code/game/machinery/telecomms/machines/server.dm
index 664d45b5b1c1..5607b6bbec8c 100644
--- a/code/game/machinery/telecomms/machines/server.dm
+++ b/code/game/machinery/telecomms/machines/server.dm
@@ -11,7 +11,7 @@
desc = "A machine used to store data and network statistics."
density = TRUE
use_power = IDLE_POWER_USE
- idle_power_usage = 15
+ idle_power_usage = IDLE_DRAW_MINIMAL
circuit = /obj/item/circuitboard/machine/telecomms/server
var/list/log_entries = list()
var/totaltraffic = 0 // gigabytes (if > 1024, divide by 1024 -> terrabytes)
diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm
index 6e0551b25d41..1a342f0554cd 100644
--- a/code/game/machinery/teleporter.dm
+++ b/code/game/machinery/teleporter.dm
@@ -9,8 +9,8 @@
icon_state = "tele0"
base_icon_state = "tele"
use_power = IDLE_POWER_USE
- idle_power_usage = 10
- active_power_usage = 2000
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_HIGH
circuit = /obj/item/circuitboard/machine/teleporter_hub
var/accuracy = 0
var/obj/machinery/teleport/station/power_station
@@ -106,8 +106,8 @@
icon_state = "controller"
base_icon_state = "controller"
use_power = IDLE_POWER_USE
- idle_power_usage = 10
- active_power_usage = 2000
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_HIGH
circuit = /obj/item/circuitboard/machine/teleporter_station
var/engaged = FALSE
var/obj/machinery/computer/teleporter/teleporter_console
diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm
index 6814f0cc2e7f..83a2c4861c90 100644
--- a/code/game/mecha/mech_fabricator.dm
+++ b/code/game/mecha/mech_fabricator.dm
@@ -5,8 +5,8 @@
desc = "Nothing is being built."
density = TRUE
use_power = IDLE_POWER_USE
- idle_power_usage = 20
- active_power_usage = 5000
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_HIGH
req_access = list(ACCESS_ROBOTICS)
circuit = /obj/item/circuitboard/machine/mechfab
var/time_coeff = 1
@@ -196,10 +196,10 @@
rmat.silo_log(src, "built", -1, "[D.name]", res_coef)
add_overlay("fab-active")
- use_power = ACTIVE_POWER_USE
+ set_active_power()
updateUsrDialog()
sleep(get_construction_time_w_coeff(D))
- use_power = IDLE_POWER_USE
+ set_idle_power()
cut_overlay("fab-active")
desc = initial(desc)
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index d2c712d32ea8..88c2ca721da2 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -831,7 +831,7 @@
//An actual AI (simple_animal mecha pilot) entering the mech
-/obj/mecha/proc/aimob_enter_mech(mob/living/simple_animal/hostile/syndicate/mecha_pilot/pilot_mob)
+/obj/mecha/proc/aimob_enter_mech(mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/pilot_mob)
if(pilot_mob && pilot_mob.Adjacent(src))
if(occupant)
return
@@ -841,7 +841,7 @@
pilot_mob.forceMove(src)
GrantActions(pilot_mob)//needed for checks, and incase a badmin puts somebody in the mob
-/obj/mecha/proc/aimob_exit_mech(mob/living/simple_animal/hostile/syndicate/mecha_pilot/pilot_mob)
+/obj/mecha/proc/aimob_exit_mech(mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/pilot_mob)
if(occupant == pilot_mob)
occupant = null
if(pilot_mob.mecha == src)
diff --git a/code/game/objects/effects/anomalies/anomalies_hallucination.dm b/code/game/objects/effects/anomalies/anomalies_hallucination.dm
index fc7e4e3c9859..ab859a3b3215 100644
--- a/code/game/objects/effects/anomalies/anomalies_hallucination.dm
+++ b/code/game/objects/effects/anomalies/anomalies_hallucination.dm
@@ -28,7 +28,7 @@
/obj/effect/anomaly/hallucination/proc/hallucination_pulse(turf/open/location, effectrange)
for(var/mob/living/carbon/human/user in view(location, effectrange))
// If they are immune to the anomaly
- if (iscarbon(user) && !user.research_scanner)
+ if (user.research_scanner)
continue
// Blind people don't get hallucinations.
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 00943573a12e..7e64ce658e8b 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -202,6 +202,10 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
var/canMouseDown = FALSE
+ //for setting world icons on the go
+ var/inventory_state
+ var/world_state
+
/obj/item/Initialize()
if(attack_verb)
@@ -518,12 +522,12 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
/obj/item/proc/equipped(mob/user, slot, initial = FALSE)
SHOULD_CALL_PARENT(1)
visual_equipped(user, slot, initial)
- SEND_SIGNAL(src, COMSIG_ITEM_EQUIPPED, user, slot)
for(var/X in actions)
var/datum/action/A = X
if(item_action_slot_check(slot, user)) //some items only give their actions buttons when in a specific slot.
A.Grant(user)
item_flags |= IN_INVENTORY
+ SEND_SIGNAL(src, COMSIG_ITEM_EQUIPPED, user, slot)
if(!initial)
if(equip_sound && (slot_flags & slot))
playsound(src, equip_sound, EQUIP_SOUND_VOLUME, TRUE, ignore_walls = FALSE)
@@ -694,7 +698,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
if (callback) //call the original callback
. = callback.Invoke()
item_flags &= ~IN_INVENTORY
- if(!pixel_y && !pixel_x)
+ if(!pixel_y && !pixel_x && !(item_flags & NO_PIXEL_RANDOM_DROP))
pixel_x = rand(-8,8)
pixel_y = rand(-8,8)
diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm
index 6a5fa6e70a12..1a4a57d5cbb1 100644
--- a/code/game/objects/items/circuitboards/machine_circuitboards.dm
+++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm
@@ -201,8 +201,19 @@
name = "Circulator/Heat Exchanger (Machine Board)"
icon_state = "engineering"
build_path = /obj/machinery/atmospherics/components/binary/circulator
+ var/pipe_layer = PIPING_LAYER_DEFAULT
req_components = list()
+/obj/item/circuitboard/machine/circulator/attackby(obj/item/I, mob/user, params)
+ if(I.tool_behaviour == TOOL_MULTITOOL)
+ pipe_layer = (pipe_layer >= PIPING_LAYER_MAX) ? PIPING_LAYER_MIN : (pipe_layer + 1)
+ to_chat(user, "You change the circuitboard to layer [pipe_layer].")
+ return
+
+/obj/item/circuitboard/machine/circulator/examine()
+ . = ..()
+ . += "It is set to layer [pipe_layer]."
+
/obj/item/circuitboard/machine/emitter
name = "Emitter (Machine Board)"
icon_state = "engineering"
@@ -1470,10 +1481,22 @@
/obj/item/circuitboard/machine/shuttle/heater
name = "Fueled Engine Heater (Machine Board)"
+ desc = "You can use mulitool to switch pipe layers"
build_path = /obj/machinery/atmospherics/components/unary/shuttle/heater
+ var/pipe_layer = PIPING_LAYER_DEFAULT
req_components = list(/obj/item/stock_parts/micro_laser = 2,
/obj/item/stock_parts/matter_bin = 1)
+/obj/item/circuitboard/machine/shuttle/heater/attackby(obj/item/I, mob/user, params)
+ if(I.tool_behaviour == TOOL_MULTITOOL)
+ pipe_layer = (pipe_layer >= PIPING_LAYER_MAX) ? PIPING_LAYER_MIN : (pipe_layer + 1)
+ to_chat(user, "You change the circuitboard to layer [pipe_layer].")
+ return
+
+/obj/item/circuitboard/machine/shuttle/heater/examine()
+ . = ..()
+ . += "It is set to layer [pipe_layer]."
+
/obj/item/circuitboard/machine/shuttle/smes
name = "Electric Engine Precharger (Machine Board)"
build_path = /obj/machinery/power/smes/shuttle
@@ -1520,3 +1543,9 @@
/obj/item/stock_parts/capacitor = 1,
/obj/item/stock_parts/micro_laser = 2,
)
+
+/obj/item/circuitboard/machine/suit_storage_unit
+ name = "Suit Storage Unit"
+ icon_state = "engineering"
+ build_path = /obj/machinery/suit_storage_unit
+ req_components = list(/obj/item/stock_parts/micro_laser = 4)
diff --git a/code/game/objects/items/devices/mines.dm b/code/game/objects/items/devices/mines.dm
index 112e26e1303b..1772cbf497c3 100644
--- a/code/game/objects/items/devices/mines.dm
+++ b/code/game/objects/items/devices/mines.dm
@@ -212,11 +212,8 @@
SIGNAL_HANDLER
if(!can_trigger(arrived))
return
- // Flying = can't step on a mine
- if(arrived.movement_type & FLYING)
- return
- //no cheap disarming
- if(arrived.throwing && isitem(arrived))
+ // All other movment types rn can easily avoid it
+ if(!(arrived.movement_type == GROUND))
return
// Someone already on it
if(foot_on_mine?.resolve())
@@ -257,6 +254,10 @@
clicked = FALSE
. = ..()
+/obj/item/mine/pressure/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum)
+ trigger_mine(AM)
+ ..()
+
//handles disarming(and failing to disarm)
/obj/item/mine/pressure/attackby(obj/item/I, mob/user)
if(I.tool_behaviour == TOOL_SCREWDRIVER)
diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm
index 3a6ba2f73950..5b69cab9cc7b 100644
--- a/code/game/objects/items/devices/powersink.dm
+++ b/code/game/objects/items/devices/powersink.dm
@@ -10,6 +10,7 @@
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
w_class = WEIGHT_CLASS_BULKY
flags_1 = CONDUCT_1
+ item_flags = NO_PIXEL_RANDOM_DROP
throwforce = 5
throw_speed = 1
throw_range = 2
diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm
index 496fc07288ec..f41deb5598a6 100644
--- a/code/game/objects/items/handcuffs.dm
+++ b/code/game/objects/items/handcuffs.dm
@@ -272,6 +272,11 @@
update_appearance()
playsound(src, 'sound/effects/snap.ogg', 50, TRUE)
+/obj/item/restraints/legcuffs/beartrap/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum)
+ if(armed)
+ close_trap()
+ ..()
+
/obj/item/restraints/legcuffs/beartrap/proc/on_entered(datum/source, AM as mob|obj)
SIGNAL_HANDLER
if(armed && isturf(loc))
diff --git a/code/game/objects/items/kitchen.dm b/code/game/objects/items/kitchen.dm
index 1475ae88f8dd..c8c9a0f96b96 100644
--- a/code/game/objects/items/kitchen.dm
+++ b/code/game/objects/items/kitchen.dm
@@ -179,6 +179,7 @@
/obj/item/kitchen/knife/combat
name = "combat knife"
+ icon = 'icons/obj/world/melee.dmi'
icon_state = "combatknife"
item_state = "combatknife"
desc = "A military combat utility survival knife."
@@ -188,6 +189,10 @@
attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "cut")
bayonet = TRUE
+/obj/item/kitchen/knife/combat/Initialize()
+ . = ..()
+ AddElement(/datum/element/world_icon, null, icon, 'icons/obj/kitchen.dmi')
+
/obj/item/kitchen/knife/combat/survival
name = "survival knife"
icon_state = "survivalknife"
diff --git a/code/game/objects/items/puzzle_pieces.dm b/code/game/objects/items/puzzle_pieces.dm
index 5d6b409e8d32..473bcd945c58 100644
--- a/code/game/objects/items/puzzle_pieces.dm
+++ b/code/game/objects/items/puzzle_pieces.dm
@@ -1,6 +1,6 @@
//**************
-//*****Keys*******************
-//************** ** **
+//*****Keys*****
+//**************
/obj/item/keycard
name = "security keycard"
desc = "This feels like it belongs to a door."
diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm
index e3ef63e116d4..9fc6fa808a46 100644
--- a/code/game/objects/items/stacks/sheets/mineral.dm
+++ b/code/game/objects/items/stacks/sheets/mineral.dm
@@ -332,32 +332,6 @@ GLOBAL_LIST_INIT(silver_recipes, list ( \
/obj/item/stack/sheet/mineral/silver/five
amount = 5
-/*
- * Clown
- */
-/obj/item/stack/sheet/mineral/bananium
- name = "bananium"
- icon_state = "sheet-bananium"
- item_state = "sheet-bananium"
- singular_name = "bananium sheet"
- sheettype = "bananium"
- custom_materials = list(/datum/material/bananium=MINERAL_MATERIAL_AMOUNT)
-
- grind_results = list(/datum/reagent/consumable/banana = 20)
- point_value = 50
- merge_type = /obj/item/stack/sheet/mineral/bananium
- material_type = /datum/material/bananium
- walltype = /turf/closed/wall/mineral/bananium
-
-GLOBAL_LIST_INIT(bananium_recipes, list ( \
- new/datum/stack_recipe("bananium tile", /obj/item/stack/tile/mineral/bananium, 1, 4, 20), \
- new/datum/stack_recipe("Clown Statue", /obj/structure/statue/bananium/clown, 5, one_per_turf = 1, on_floor = 1), \
- ))
-
-/obj/item/stack/sheet/mineral/bananium/get_main_recipes()
- . = ..()
- . += GLOB.bananium_recipes
-
/*
* Titanium
*/
@@ -436,7 +410,6 @@ GLOBAL_LIST_INIT(plastitanium_recipes, list ( \
. = ..()
. += GLOB.plastitanium_recipes
-
/*
* Snow
*/
@@ -465,56 +438,6 @@ GLOBAL_LIST_INIT(snow_recipes, list ( \
. = ..()
. += GLOB.snow_recipes
-/****************************** Others ****************************/
-
-/*
- * Adamantine
-*/
-
-/obj/item/stack/sheet/mineral/adamantine
- name = "adamantine"
- icon_state = "sheet-adamantine"
- item_state = "sheet-adamantine"
- singular_name = "adamantine sheet"
- custom_materials = list(/datum/material/adamantine=MINERAL_MATERIAL_AMOUNT)
- merge_type = /obj/item/stack/sheet/mineral/adamantine
- grind_results = list(/datum/reagent/liquidadamantine = 10)
-
-/obj/item/stack/sheet/mineral/adamantine/ten
- amount = 10
-
-/*
- * Runite
- */
-
-/obj/item/stack/sheet/mineral/runite
- name = "runite"
- desc = "Rare material found in distant lands."
- singular_name = "runite bar"
- icon_state = "sheet-runite"
- item_state = "sheet-runite"
- custom_materials = list(/datum/material/runite=MINERAL_MATERIAL_AMOUNT)
- merge_type = /obj/item/stack/sheet/mineral/runite
- material_type = /datum/material/runite
-
-/obj/item/stack/sheet/mineral/runite/ten
- amount = 10
-
-/*
- * Mythril
- */
-/obj/item/stack/sheet/mineral/mythril
- name = "mythril"
- icon_state = "sheet-mythril"
- item_state = "sheet-mythril"
- singular_name = "mythril sheet"
- novariants = TRUE
- custom_materials = list(/datum/material/mythril=MINERAL_MATERIAL_AMOUNT)
- merge_type = /obj/item/stack/sheet/mineral/mythril
-
-/obj/item/stack/sheet/mineral/mythril/ten
- amount = 10
-
/*
* Alien Alloy
*/
@@ -573,3 +496,35 @@ GLOBAL_LIST_INIT(abductor_recipes, list ( \
/obj/item/stack/sheet/mineral/coal/ten
amount = 10
+
+/*
+ * Hellstone
+ */
+/obj/item/stack/sheet/mineral/hidden
+ name = "????????"
+ singular_name = "????????"
+
+/obj/item/stack/sheet/mineral/hidden/hellstone
+ name = "hellstone"
+ icon_state = "sheet-hellstone"
+ item_state = "sheet-hellstone"
+ singular_name = "hellstone bar"
+ sheettype = "hellstone"
+ resistance_flags = FIRE_PROOF | LAVA_PROOF
+ custom_materials = list(/datum/material/hellstone=MINERAL_MATERIAL_AMOUNT)
+ grind_results = list(/datum/reagent/clf3 = 5)
+ point_value = 20
+ merge_type = /obj/item/stack/sheet/mineral/hidden/hellstone
+ material_type = /datum/material/hellstone
+
+/obj/item/stack/sheet/mineral/hidden/hellstone/fifty
+ amount = 50
+
+/obj/item/stack/sheet/mineral/hidden/hellstone/twenty
+ amount = 20
+
+/obj/item/stack/sheet/mineral/hidden/hellstone/ten
+ amount = 10
+
+/obj/item/stack/sheet/mineral/hidden/hellstone/five
+ amount = 5
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index 7c28c93200a3..68a6772bb4e4 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -31,10 +31,6 @@
tableVariant = /obj/structure/table
material_type = /datum/material/iron
-/obj/item/stack/sheet/metal/narsie_act()
- new /obj/item/stack/sheet/runed_metal(loc, amount)
- qdel(src)
-
/obj/item/stack/sheet/metal/fifty
amount = 50
@@ -249,6 +245,7 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \
new/datum/stack_recipe("rag", /obj/item/reagent_containers/glass/rag, 1), \
new/datum/stack_recipe("towel", /obj/item/towel, 2), \
new/datum/stack_recipe("bedsheet", /obj/item/bedsheet, 3), \
+ new/datum/stack_recipe("double bedsheet", /obj/item/bedsheet/double, 4), \
new/datum/stack_recipe("empty sandbag", /obj/item/emptysandbag, 4), \
null, \
new/datum/stack_recipe("fingerless gloves", /obj/item/clothing/gloves/fingerless, 1), \
@@ -443,52 +440,6 @@ GLOBAL_LIST_INIT(cardboard_recipes, list ( \
else
. = ..()
-
-/*
- * Runed Metal
- */
-
-GLOBAL_LIST_INIT(runed_metal_recipes, list ( \
- new/datum/stack_recipe("runed door", /obj/machinery/door/airlock/cult, 1, time = 50, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("runed girder", /obj/structure/girder/cult, 1, time = 50, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("pylon", /obj/structure/destructible/cult/pylon, 4, time = 40, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("forge", /obj/structure/destructible/cult/forge, 3, time = 40, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("archives", /obj/structure/destructible/cult/tome, 3, time = 40, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("altar", /obj/structure/destructible/cult/talisman, 3, time = 40, one_per_turf = TRUE, on_floor = TRUE), \
- ))
-
-/obj/item/stack/sheet/runed_metal
- name = "runed metal"
- desc = "Sheets of cold metal with shifting inscriptions writ upon them."
- singular_name = "runed metal sheet"
- icon_state = "sheet-runed"
- item_state = "sheet-runed"
- icon = 'icons/obj/stack_objects.dmi'
- custom_materials = list(/datum/material/runedmetal = MINERAL_MATERIAL_AMOUNT)
- merge_type = /obj/item/stack/sheet/runed_metal
- novariants = TRUE
- grind_results = list(/datum/reagent/iron = 5, /datum/reagent/blood = 15)
- material_type = /datum/material/runedmetal
-
-/obj/item/stack/sheet/runed_metal/attack_self(mob/living/user)
- if(!iscultist(user))
- to_chat(user, "Only one with forbidden knowledge could hope to work this metal...")
- return FALSE
- return ..()
-
-/obj/item/stack/sheet/runed_metal/get_main_recipes()
- . = ..()
- . += GLOB.runed_metal_recipes
-
-/obj/item/stack/sheet/runed_metal/fifty
- amount = 50
-
-/obj/item/stack/sheet/runed_metal/ten
- amount = 10
-
-/obj/item/stack/sheet/runed_metal/five
- amount = 5
-
/*
* Bronze
*/
diff --git a/code/game/objects/items/stacks/tiles/tile_mineral.dm b/code/game/objects/items/stacks/tiles/tile_mineral.dm
index c5e05b5212fc..ad00f3902c50 100644
--- a/code/game/objects/items/stacks/tiles/tile_mineral.dm
+++ b/code/game/objects/items/stacks/tiles/tile_mineral.dm
@@ -48,16 +48,6 @@
mineralType = "diamond"
custom_materials = list(/datum/material/diamond=500)
-/obj/item/stack/tile/mineral/bananium
- name = "bananium tile"
- singular_name = "bananium floor tile"
- desc = "A tile made out of bananium, HOOOOOOOOONK!"
- icon_state = "tile_bananium"
- item_state = "tile-bananium"
- turf_type = /turf/open/floor/mineral/bananium
- mineralType = "bananium"
- custom_materials = list(/datum/material/bananium=500)
-
/obj/item/stack/tile/mineral/abductor
name = "alien floor tile"
singular_name = "alien floor tile"
diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm
index bfe08526311b..3214f4915c72 100644
--- a/code/game/objects/items/storage/belt.dm
+++ b/code/game/objects/items/storage/belt.dm
@@ -698,6 +698,7 @@
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_items = 40
+ STR.max_combined_w_class = 40
STR.display_numerical_stacking = TRUE
STR.set_holdable(list(
/obj/item/ammo_casing
diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm
index fb001b2eb56b..a7fdbc05691a 100644
--- a/code/game/objects/items/storage/boxes.dm
+++ b/code/game/objects/items/storage/boxes.dm
@@ -1370,10 +1370,10 @@
/obj/item/stack/sheet/mineral/uranium=20,\
/obj/item/stack/sheet/mineral/diamond=50,\
/obj/item/stack/sheet/bluespace_crystal=50,\
- /obj/item/stack/sheet/mineral/bananium=50,\
+ /obj/item/stack/sheet/mineral/hidden/hellstone=50,\
/obj/item/stack/sheet/mineral/wood=50,\
/obj/item/stack/sheet/plastic/fifty=1,\
- /obj/item/stack/sheet/runed_metal/fifty=1
+ /obj/item/stack/sheet/mineral/hidden/hellstone/fifty=1
)
generate_items_inside(items_inside,src)
diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm
index 41f214998ffd..01307d92a0f8 100644
--- a/code/game/objects/items/storage/fancy.dm
+++ b/code/game/objects/items/storage/fancy.dm
@@ -163,7 +163,7 @@
////////////
/obj/item/storage/fancy/cigarettes
name = "\improper Space Cigarettes packet"
- desc = "The most popular brand of cigarettes, sponsors of the Space Olympics."
+ desc = "The most popular brand of cigarettes on the Frontier."
icon = 'icons/obj/cigarettes.dmi'
base_icon_state = "cig"
icon_state = "cig"
@@ -273,14 +273,14 @@
/obj/item/storage/fancy/cigarettes/cigpack_carp
name = "\improper Carp Classic packet"
- desc = "Since 2313."
+ desc = "Since 207 FS."
icon_state = "carp"
base_icon_state = "carp"
spawn_type = /obj/item/clothing/mask/cigarette/carp
/obj/item/storage/fancy/cigarettes/cigpack_syndicate
name = "cigarette packet"
- desc = "An obscure brand of cigarettes."
+ desc = "A semi-obscure brand of cigarettes, favored by interstellar miners."
icon_state = "syndie"
base_icon_state = "syndie"
spawn_type = /obj/item/clothing/mask/cigarette/syndicate
@@ -322,7 +322,7 @@
/obj/item/storage/fancy/cigarettes/cigpack_mindbreaker
name = "\improper Leary's Delight packet"
- desc = "Banned in over 36 galaxies."
+ desc = "Banned in over 36 Sectors."
icon_state = "shadyjim"
base_icon_state = "shadyjim"
spawn_type = /obj/item/clothing/mask/cigarette/rollie/mindbreaker
@@ -435,7 +435,7 @@
/obj/item/storage/fancy/cigarettes/cigars/havana
name = "\improper premium Havanian cigar case"
- desc = "A case of classy Havanian cigars."
+ desc = "Even after centuries of Solarian export, Havana smooth is only found in proper terran cigars."
icon_state = "cohibacase"
base_icon_state = "cohibacase"
spawn_type = /obj/item/clothing/mask/cigarette/cigar/havana
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index 361358892520..b1dfb479b66c 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -562,7 +562,6 @@
var/datum/fakeDevil/devil = new
var/list/messages = list()
messages += "Some fun facts about: [devil.truename]"
- messages += "[GLOB.lawlorify[LORE][devil.bane]]"
messages += "[GLOB.lawlorify[LORE][devil.obligation]]"
messages += "[GLOB.lawlorify[LORE][devil.ban]]"
messages += "[GLOB.lawlorify[LORE][devil.banish]]"
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
index a11e647a706d..f3aca3e96a98 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
@@ -5,11 +5,9 @@
/obj/structure/closet/secure_closet/engineering_chief/PopulateContents()
..()
- //WS Begin
new /obj/item/clothing/head/beret/ce(src) //Berets
new /obj/item/clothing/under/rank/command(src) //Better command uniforms
new /obj/item/stack/tape/industrial/pro(src) //Better tape
- //WS End
new /obj/item/clothing/neck/cloak/ce(src)
new /obj/item/clothing/under/rank/engineering/chief_engineer(src)
new /obj/item/clothing/under/rank/engineering/chief_engineer/skirt(src)
@@ -40,9 +38,7 @@
/obj/structure/closet/secure_closet/engineering_electrical/PopulateContents()
..()
var/static/items_inside = list(
- //WS Begin
/obj/item/stack/tape/industrial/electrical = 1, // Better tape
- //WS End
/obj/item/clothing/gloves/color/yellow = 2,
/obj/item/storage/toolbox/electrical = 3,
/obj/item/electronics/apc = 3,
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
index cfdcca348b14..6c01be326e7a 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
@@ -79,13 +79,11 @@
/obj/structure/closet/secure_closet/CMO/PopulateContents()
..()
- //WS Begin
new /obj/item/storage/belt/medical(src) //Gives the CMO a belt
new /obj/item/storage/bag/medical(src) //Medibags
new /obj/item/clothing/head/beret/cmo(src) //Berets
new /obj/item/clothing/under/rank/command(src) //Better command uniforms
new /obj/item/storage/box/hypospray/CMO(src) //Hypo mk. 2s
- //WS End
new /obj/item/clothing/neck/cloak/cmo(src)
new /obj/item/clothing/suit/bio_suit/cmo(src)
new /obj/item/clothing/head/bio_hood/cmo(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/syndicate.dm b/code/game/objects/structures/crates_lockers/closets/syndicate.dm
index ee9a29945aa0..fc0aae860782 100644
--- a/code/game/objects/structures/crates_lockers/closets/syndicate.dm
+++ b/code/game/objects/structures/crates_lockers/closets/syndicate.dm
@@ -105,7 +105,7 @@
/obj/item/stack/sheet/mineral/plasma,
/obj/item/stack/sheet/mineral/uranium,
/obj/item/stack/sheet/mineral/diamond,
- /obj/item/stack/sheet/mineral/bananium,
+ /obj/item/stack/sheet/mineral/hidden/hellstone,
/obj/item/stack/sheet/plasteel,
/obj/item/stack/sheet/mineral/titanium,
/obj/item/stack/sheet/mineral/plastitanium,
diff --git a/code/game/objects/structures/door_assembly_types.dm b/code/game/objects/structures/door_assembly_types.dm
index 2558993a5278..d2bcf77cfda7 100644
--- a/code/game/objects/structures/door_assembly_types.dm
+++ b/code/game/objects/structures/door_assembly_types.dm
@@ -214,14 +214,6 @@
mineral = "plasma"
glass_type = /obj/machinery/door/airlock/plasma/glass
-/obj/structure/door_assembly/door_assembly_bananium
- name = "bananium airlock assembly"
- desc = "Honk."
- icon = 'icons/obj/doors/airlocks/station/bananium.dmi'
- base_name = "bananium airlock"
- airlock_type = /obj/machinery/door/airlock/bananium
- mineral = "bananium"
- glass_type = /obj/machinery/door/airlock/bananium/glass
/obj/structure/door_assembly/door_assembly_sandstone
name = "sandstone airlock assembly"
diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm
index a0097504c1d3..d5a8c3e496c1 100644
--- a/code/game/objects/structures/false_walls.dm
+++ b/code/game/objects/structures/false_walls.dm
@@ -269,19 +269,6 @@
if(exposed_temperature > 300)
burnbabyburn()
-/obj/structure/falsewall/bananium
- name = "bananium wall"
- desc = "A wall with bananium plating. Honk!"
- icon = 'icons/turf/walls/bananium_wall.dmi'
- icon_state = "bananium_wall-0"
- base_icon_state = "bananium_wall"
- mineral = /obj/item/stack/sheet/mineral/bananium
- walltype = /turf/closed/wall/mineral/bananium
- smoothing_flags = SMOOTH_BITMASK
- smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_BANANIUM_WALLS)
- canSmoothWith = list(SMOOTH_GROUP_BANANIUM_WALLS)
-
-
/obj/structure/falsewall/sandstone
name = "sandstone wall"
desc = "A wall with sandstone plating. Rough."
diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm
index 25822d69ff00..6463282eb6df 100644
--- a/code/game/objects/structures/girders.dm
+++ b/code/game/objects/structures/girders.dm
@@ -364,7 +364,7 @@
add_fingerprint(user)
if(istype(W, /obj/item/melee/cultblade/dagger) && iscultist(user)) //Cultists can demolish cult girders instantly with their tomes
user.visible_message("[user] strikes [src] with [W]!", "You demolish [src].")
- new /obj/item/stack/sheet/runed_metal(drop_location(), 1)
+ new /obj/item/stack/sheet/mineral/hidden/hellstone(drop_location(), 1)
qdel(src)
else if(W.tool_behaviour == TOOL_WELDER)
@@ -374,19 +374,19 @@
to_chat(user, "You start slicing apart the girder...")
if(W.use_tool(src, user, 40, volume=50))
to_chat(user, "You slice apart the girder.")
- var/obj/item/stack/sheet/runed_metal/R = new(drop_location(), 1)
+ var/obj/item/stack/sheet/mineral/hidden/hellstone/R = new(drop_location(), 1)
transfer_fingerprints_to(R)
qdel(src)
else if(istype(W, /obj/item/pickaxe/drill/jackhammer))
to_chat(user, "Your jackhammer smashes through the girder!")
- var/obj/item/stack/sheet/runed_metal/R = new(drop_location(), 2)
+ var/obj/item/stack/sheet/mineral/hidden/hellstone/R = new(drop_location(), 2)
transfer_fingerprints_to(R)
W.play_tool_sound(src)
qdel(src)
- else if(istype(W, /obj/item/stack/sheet/runed_metal))
- var/obj/item/stack/sheet/runed_metal/R = W
+ else if(istype(W, /obj/item/stack/sheet/mineral/hidden/hellstone))
+ var/obj/item/stack/sheet/mineral/hidden/hellstone/R = W
if(R.get_amount() < 1)
to_chat(user, "You need at least one sheet of runed metal to construct a runed wall!")
return 0
@@ -408,7 +408,7 @@
/obj/structure/girder/cult/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
- new /obj/item/stack/sheet/runed_metal(drop_location(), 1)
+ new /obj/item/stack/sheet/mineral/hidden/hellstone(drop_location(), 1)
qdel(src)
/obj/structure/girder/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
diff --git a/code/game/objects/structures/icemoon/cave_entrance.dm b/code/game/objects/structures/icemoon/cave_entrance.dm
index 07ecef04afac..2a7a8c5f4a38 100644
--- a/code/game/objects/structures/icemoon/cave_entrance.dm
+++ b/code/game/objects/structures/icemoon/cave_entrance.dm
@@ -5,7 +5,6 @@ GLOBAL_LIST_INIT(ore_probability, list(
/obj/item/stack/ore/silver = 50,
/obj/item/stack/ore/gold = 50,
/obj/item/stack/ore/diamond = 25,
- /obj/item/stack/ore/bananium = 5,
/obj/item/stack/ore/titanium = 75,
/obj/item/pickaxe/diamond = 15,
/obj/item/borg/upgrade/modkit/cooldown = 5,
@@ -258,8 +257,7 @@ GLOBAL_LIST_INIT(ore_probability, list(
new /mob/living/simple_animal/hostile/clown/fleshclown(loc)
if(prob(25))//you lost
new /obj/item/circlegame(loc)
- new /obj/item/stack/sheet/mineral/bananium(loc)
- new /turf/open/floor/mineral/bananium(loc)
+ new /obj/item/stack/sheet/mineral/hidden/hellstone(loc)
if(2)//basic demonic incursion
visible_message("You glimpse an indescribable abyss in the portal. Horrifying monsters appear in a gout of flame.")
playsound(loc,'sound/hallucinations/wail.ogg', 200, FALSE, 50, TRUE, TRUE)
@@ -312,18 +310,18 @@ GLOBAL_LIST_INIT(ore_probability, list(
playsound(loc,'sound/ambience/ambiholy.ogg', 100, FALSE, 50, TRUE, TRUE)
if(prob(30))
new /obj/item/reagent_containers/glass/bottle/potion/flight(loc)
- new /mob/living/simple_animal/hostile/skeleton/templar(loc)
+ new /mob/living/simple_animal/hostile/human/skeleton/templar(loc)
else
new /obj/item/clothing/neck/memento_mori(loc)
- new /mob/living/simple_animal/hostile/skeleton(loc)
- new /mob/living/simple_animal/hostile/skeleton/templar(loc)
+ new /mob/living/simple_animal/hostile/human/skeleton(loc)
+ new /mob/living/simple_animal/hostile/human/skeleton/templar(loc)
if(prob(35))
new /obj/item/storage/box/holy_grenades(loc)
- new /mob/living/simple_animal/hostile/skeleton/templar(loc)
- new /mob/living/simple_animal/hostile/skeleton/templar(loc)
+ new /mob/living/simple_animal/hostile/human/skeleton/templar(loc)
+ new /mob/living/simple_animal/hostile/human/skeleton/templar(loc)
if(prob(40))
new /obj/item/claymore(loc)
- new /mob/living/simple_animal/hostile/skeleton/templar(loc)
+ new /mob/living/simple_animal/hostile/human/skeleton/templar(loc)
if(prob(45))
new /obj/item/gun/ballistic/bow(loc)
new /obj/item/storage/bag/quiver(loc)
@@ -332,38 +330,38 @@ GLOBAL_LIST_INIT(ore_probability, list(
new /obj/item/ammo_casing/caseless/arrow/bronze(loc)
new /obj/item/ammo_casing/caseless/arrow/bronze(loc)
new /obj/item/ammo_casing/caseless/arrow/bronze(loc)
- new /mob/living/simple_animal/hostile/skeleton/templar(loc)
- new /mob/living/simple_animal/hostile/skeleton(loc)
+ new /mob/living/simple_animal/hostile/human/skeleton/templar(loc)
+ new /mob/living/simple_animal/hostile/human/skeleton(loc)
if(prob(30))
new /obj/item/stack/sheet/mineral/wood/fifty(loc)
- new /mob/living/simple_animal/hostile/skeleton(loc)
- new /mob/living/simple_animal/hostile/skeleton(loc)
+ new /mob/living/simple_animal/hostile/human/skeleton(loc)
+ new /mob/living/simple_animal/hostile/human/skeleton(loc)
if(prob(35))
new /obj/item/staff/bostaff(loc)
- new /mob/living/simple_animal/hostile/skeleton(loc)
- new /mob/living/simple_animal/hostile/skeleton(loc)
+ new /mob/living/simple_animal/hostile/human/skeleton(loc)
+ new /mob/living/simple_animal/hostile/human/skeleton(loc)
if(prob(45))
new /obj/item/disk/design_disk/adv/cleric_mace(loc)
- new /mob/living/simple_animal/hostile/skeleton(loc)
- new /mob/living/simple_animal/hostile/skeleton(loc)
+ new /mob/living/simple_animal/hostile/human/skeleton(loc)
+ new /mob/living/simple_animal/hostile/human/skeleton(loc)
if(prob(25))
new /obj/item/shield/riot/roman(loc)
- new /mob/living/simple_animal/hostile/skeleton(loc)
+ new /mob/living/simple_animal/hostile/human/skeleton(loc)
if(prob(55))
new /obj/item/clothing/suit/armor/riot/knight/blue(loc)
new /obj/item/clothing/head/helmet/knight/blue(loc)
- new /mob/living/simple_animal/hostile/skeleton(loc)
- new /mob/living/simple_animal/hostile/skeleton(loc)
+ new /mob/living/simple_animal/hostile/human/skeleton(loc)
+ new /mob/living/simple_animal/hostile/human/skeleton(loc)
if(prob(35))
new /obj/item/disk/design_disk/adv/knight_gear(loc)
- new /mob/living/simple_animal/hostile/skeleton(loc)
- new /mob/living/simple_animal/hostile/skeleton(loc)
+ new /mob/living/simple_animal/hostile/human/skeleton(loc)
+ new /mob/living/simple_animal/hostile/human/skeleton(loc)
new /obj/item/instrument/trombone(loc)
new /obj/item/stack/sheet/bone(loc)
new /obj/item/stack/sheet/bone(loc)
new /obj/item/stack/sheet/bone(loc)
new /obj/item/stack/sheet/bone(loc)
- new /mob/living/simple_animal/hostile/skeleton/templar(loc)
+ new /mob/living/simple_animal/hostile/human/skeleton/templar(loc)
new /turf/open/floor/mineral/silver(loc)
if(4)//syndicate incursion. Again, high-quality loot at low chances, this time with excessive levels of danger
visible_message("Radio chatter echoes out from the portal. Red-garbed figures step through, weapons raised.")
@@ -372,74 +370,74 @@ GLOBAL_LIST_INIT(ore_probability, list(
if(prob(35))
if(prob(15))
new /obj/item/clothing/suit/space/hardsuit/syndi/elite(loc)
- new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc)
+ new /mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space(loc)
else
if(prob(50))
new /obj/item/clothing/suit/space/hardsuit/syndi(loc)
- new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc)
+ new /mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space(loc)
else
new /obj/item/clothing/suit/space/hardsuit/syndi(loc)
- new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc)
- new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc)
+ new /mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space(loc)
+ new /mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space(loc)
if(prob(25))//the real prize
new /obj/effect/spawner/lootdrop/donkpockets(loc)
new /obj/effect/spawner/lootdrop/donkpockets(loc)
new /obj/effect/spawner/lootdrop/donkpockets(loc)
if(prob(35))
new /obj/item/clothing/shoes/magboots/syndie(loc)
- new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc)
+ new /mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space(loc)
if(prob(25))
new /obj/item/gun/ballistic/automatic/pistol/suppressed(loc)
new /obj/item/ammo_box/magazine/
- new /mob/living/simple_animal/hostile/syndicate/melee/sword(loc)
+ new /mob/living/simple_animal/hostile/human/syndicate/melee/sword(loc)
if(prob(25))
new /obj/item/gun/ballistic/automatic/pistol/tec9(loc)
new /obj/item/ammo_box/magazine/tec9(loc)
new /obj/item/ammo_box/magazine/tec9(loc)
- new /mob/living/simple_animal/hostile/syndicate/melee/sword(loc)
+ new /mob/living/simple_animal/hostile/human/syndicate/melee/sword(loc)
if(prob(35))
new /obj/item/clothing/gloves/rapid(loc)
- new /mob/living/simple_animal/hostile/syndicate/melee/sword/space(loc)
- new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc)
+ new /mob/living/simple_animal/hostile/human/syndicate/melee/sword/space(loc)
+ new /mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space(loc)
if(prob(35))
new /obj/item/wrench/combat(loc)
new /obj/item/storage/toolbox/syndicate(loc)
- new /mob/living/simple_animal/hostile/syndicate/melee/sword/space(loc)
+ new /mob/living/simple_animal/hostile/human/syndicate/melee/sword/space(loc)
if(prob(35))
new /obj/item/storage/fancy/cigarettes/cigpack_syndicate(loc)
if(prob(35))
new /obj/item/borg/upgrade/transform/assault(loc)
- new /mob/living/simple_animal/hostile/syndicate/ranged/smg(loc)
+ new /mob/living/simple_animal/hostile/human/syndicate/ranged/smg(loc)
if(prob(25))
- new /mob/living/simple_animal/hostile/syndicate/ranged/smg(loc)
- new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc)
+ new /mob/living/simple_animal/hostile/human/syndicate/ranged/smg(loc)
+ new /mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space(loc)
if(prob(25))
- new /mob/living/simple_animal/hostile/syndicate/melee/sword/space(loc)
- new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc)
+ new /mob/living/simple_animal/hostile/human/syndicate/melee/sword/space(loc)
+ new /mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space(loc)
if(prob(25))
- new /mob/living/simple_animal/hostile/syndicate/melee/sword(loc)
+ new /mob/living/simple_animal/hostile/human/syndicate/melee/sword(loc)
new /obj/item/storage/backpack/duffelbag/syndie/c4(loc)
if(prob(35))
new /obj/item/storage/belt/military(loc)
- new /mob/living/simple_animal/hostile/syndicate/ranged/smg(loc)
+ new /mob/living/simple_animal/hostile/human/syndicate/ranged/smg(loc)
if(prob(35))
new /obj/item/kinetic_crusher/syndie_crusher(loc)
- new /mob/living/simple_animal/hostile/syndicate/ranged/smg(loc)
- new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc)
+ new /mob/living/simple_animal/hostile/human/syndicate/ranged/smg(loc)
+ new /mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space(loc)
if(prob(25))
new /obj/item/card/id/syndicate/anyone(loc)
if(prob(35))
new /obj/item/clothing/glasses/thermal/syndi(loc)
- new /mob/living/simple_animal/hostile/syndicate/melee/sword(loc)
+ new /mob/living/simple_animal/hostile/human/syndicate/melee/sword(loc)
if(prob(35))
new /obj/item/reagent_containers/hypospray(loc)
- new /mob/living/simple_animal/hostile/syndicate/ranged/shotgun(loc)
- new /mob/living/simple_animal/hostile/syndicate/melee/sword(loc)
+ new /mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun(loc)
+ new /mob/living/simple_animal/hostile/human/syndicate/melee/sword(loc)
if(prob(25))
new /obj/item/card/emag(loc)
- new /mob/living/simple_animal/hostile/syndicate/melee/sword(loc)
- new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc)
- new /mob/living/simple_animal/hostile/syndicate/melee/sword/space(loc)
+ new /mob/living/simple_animal/hostile/human/syndicate/melee/sword(loc)
+ new /mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space(loc)
+ new /mob/living/simple_animal/hostile/human/syndicate/melee/sword/space(loc)
new /turf/open/floor/mineral/plastitanium/red(loc)
if(5)//;HELP BLOB IN MEDICAL
visible_message("You hear a robotic voice saying something about a \"Delta-level biohazard\".")
@@ -618,19 +616,19 @@ GLOBAL_LIST_INIT(ore_probability, list(
visible_message("You catch a brief glimpse of a vast production complex. One of the assembly lines outputs through the portal!")
playsound(loc,'sound/ambience/antag/clockcultalr.ogg', 100, FALSE, 50, TRUE, TRUE)
if(prob(45))
- new /obj/item/stack/sheet/mineral/adamantine/ten(loc)
- new /obj/item/stack/sheet/mineral/runite/ten(loc)
- new /obj/item/stack/sheet/mineral/mythril/ten(loc)
+ new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc)
+ new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc)
+ new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc)
new /mob/living/simple_animal/hostile/hivebot(loc)
if(prob(35))
- new /obj/item/stack/sheet/mineral/adamantine/ten(loc)
- new /obj/item/stack/sheet/mineral/runite/ten(loc)
- new /obj/item/stack/sheet/mineral/mythril/ten(loc)
+ new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc)
+ new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc)
+ new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc)
new /mob/living/simple_animal/hostile/hivebot(loc)
if(prob(25))
- new /obj/item/stack/sheet/mineral/adamantine/ten(loc)
- new /obj/item/stack/sheet/mineral/runite/ten(loc)
- new /obj/item/stack/sheet/mineral/mythril/ten(loc)
+ new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc)
+ new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc)
+ new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc)
new /mob/living/simple_animal/hostile/hivebot/strong(loc)
if(prob(35))
new /obj/item/stack/sheet/mineral/silver/twenty(loc)
@@ -665,9 +663,9 @@ GLOBAL_LIST_INIT(ore_probability, list(
new /obj/item/circuitboard/machine/ore_silo(loc)
new /mob/living/simple_animal/hostile/hivebot/mechanic(loc)
if(prob(35))
- new /obj/item/stack/sheet/mineral/adamantine/ten(loc)
- new /obj/item/stack/sheet/mineral/runite/ten(loc)
- new /obj/item/stack/sheet/mineral/mythril/ten(loc)
+ new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc)
+ new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc)
+ new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc)
new /mob/living/simple_animal/hostile/hivebot/strong(loc)
if(prob(35))
new /obj/item/circuitboard/machine/medipen_refiller(loc)
@@ -838,7 +836,7 @@ GLOBAL_LIST_INIT(ore_probability, list(
new /obj/item/bedsheet/cult(loc)
new /mob/living/simple_animal/hostile/construct/wraith/hostile(loc)
if(prob(50))
- new /obj/item/stack/sheet/runed_metal/ten(loc)
+ new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc)
if(prob(35))
new /obj/item/sharpener/cult(loc)
new /mob/living/simple_animal/hostile/construct/artificer/hostile(loc)
@@ -979,46 +977,46 @@ GLOBAL_LIST_INIT(ore_probability, list(
playsound(loc,'sound/misc/bloblarm.ogg', 120, FALSE, 50, TRUE, TRUE)
if(prob(35))
new /obj/item/storage/box/rndboards(loc)
- new /mob/living/simple_animal/hostile/zombie(loc)
+ new /mob/living/simple_animal/hostile/human/zombie(loc)
if(prob(35))
new /obj/item/storage/box/stockparts/deluxe(loc)
- new /mob/living/simple_animal/hostile/zombie(loc)
- new /mob/living/simple_animal/hostile/zombie(loc)
+ new /mob/living/simple_animal/hostile/human/zombie(loc)
+ new /mob/living/simple_animal/hostile/human/zombie(loc)
if(prob(15))
new /obj/effect/spawner/lootdrop/stockparts(loc)
- new /mob/living/simple_animal/hostile/zombie(loc)
+ new /mob/living/simple_animal/hostile/human/zombie(loc)
if(prob(15))
new /obj/effect/spawner/lootdrop/stockparts(loc)
- new /mob/living/simple_animal/hostile/zombie(loc)
+ new /mob/living/simple_animal/hostile/human/zombie(loc)
if(prob(15))
new /obj/effect/spawner/lootdrop/stockparts(loc)
- new /mob/living/simple_animal/hostile/zombie(loc)
+ new /mob/living/simple_animal/hostile/human/zombie(loc)
if(prob(15))
new /obj/effect/spawner/lootdrop/stockparts(loc)
- new /mob/living/simple_animal/hostile/zombie(loc)
+ new /mob/living/simple_animal/hostile/human/zombie(loc)
if(prob(30))
new /obj/item/circuitboard/machine/rdserver(loc)
- new /mob/living/simple_animal/hostile/zombie(loc)
+ new /mob/living/simple_animal/hostile/human/zombie(loc)
if(prob(35))
new /obj/item/research_notes/loot/big(loc)
- new /mob/living/simple_animal/hostile/zombie(loc)
+ new /mob/living/simple_animal/hostile/human/zombie(loc)
else
new /obj/item/research_notes/loot/medium(loc)
if(prob(35))
new /obj/item/research_notes/loot/medium(loc)
- new /mob/living/simple_animal/hostile/zombie(loc)
+ new /mob/living/simple_animal/hostile/human/zombie(loc)
else
new /obj/item/research_notes/loot/small(loc)
if(prob(35))
new /obj/item/pneumatic_cannon(loc)
- new /mob/living/simple_animal/hostile/zombie(loc)
+ new /mob/living/simple_animal/hostile/human/zombie(loc)
if(prob(45))
new /obj/item/research_notes/loot/medium(loc)
- new /mob/living/simple_animal/hostile/zombie(loc)
+ new /mob/living/simple_animal/hostile/human/zombie(loc)
else
new /obj/item/research_notes/loot/small(loc)
new/turf/open/floor/mineral/titanium/purple(loc)
- new /mob/living/simple_animal/hostile/zombie(loc)
+ new /mob/living/simple_animal/hostile/human/zombie(loc)
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)
diff --git a/code/game/objects/structures/plasticflaps.dm b/code/game/objects/structures/plasticflaps.dm
index 89ec5a384320..4efc9f895ab0 100644
--- a/code/game/objects/structures/plasticflaps.dm
+++ b/code/game/objects/structures/plasticflaps.dm
@@ -1,13 +1,12 @@
/obj/structure/plasticflaps
- name = "airtight plastic flaps"
- desc = "Heavy duty, airtight, plastic flaps. Definitely can't get past those. No way."
+ name = "plastic flaps"
+ desc = "Heavy duty plastic flaps. Definitely can't get past those. No way."
gender = PLURAL
icon = 'icons/obj/stationobjs.dmi'
icon_state = "plasticflaps"
armor = list("melee" = 100, "bullet" = 80, "laser" = 80, "energy" = 100, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 50, "acid" = 50)
density = FALSE
anchored = TRUE
- CanAtmosPass = ATMOS_PASS_NO
/obj/structure/plasticflaps/opaque
opacity = TRUE
diff --git a/code/game/objects/structures/spawner.dm b/code/game/objects/structures/spawner.dm
index 9773221f0c22..d44606a1a57b 100644
--- a/code/game/objects/structures/spawner.dm
+++ b/code/game/objects/structures/spawner.dm
@@ -5,7 +5,7 @@ GLOBAL_LIST_INIT(astroloot, list(
/obj/item/stack/ore/silver = 50,
/obj/item/stack/ore/gold = 50,
/obj/item/stack/ore/diamond = 25,
- /obj/item/stack/ore/bananium = 5,
+ /obj/item/stack/ore/hellstone = 5,
/obj/item/stack/ore/titanium = 75,
/obj/item/pickaxe/diamond = 15,
/obj/item/borg/upgrade/modkit/cooldown = 5,
@@ -59,7 +59,7 @@ GLOBAL_LIST_INIT(astroloot, list(
icon = 'icons/obj/device.dmi'
icon_state = "syndbeacon"
spawn_text = "warps in from"
- mob_types = list(/mob/living/simple_animal/hostile/syndicate/ranged)
+ mob_types = list(/mob/living/simple_animal/hostile/human/syndicate/ranged)
faction = list(ROLE_SYNDICATE)
/obj/structure/spawner/skeleton
@@ -68,7 +68,7 @@ GLOBAL_LIST_INIT(astroloot, list(
max_integrity = 150
max_mobs = 15
spawn_time = 150
- mob_types = list(/mob/living/simple_animal/hostile/skeleton)
+ mob_types = list(/mob/living/simple_animal/hostile/human/skeleton)
spawn_text = "climbs out of"
faction = list("skeleton")
diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm
index 642c2c2efdd4..9f51ba34476a 100644
--- a/code/game/objects/structures/statues.dm
+++ b/code/game/objects/structures/statues.dm
@@ -224,7 +224,7 @@
/obj/structure/statue/bananium
max_integrity = 300
- material_drop_type = /obj/item/stack/sheet/mineral/bananium
+ material_drop_type = /obj/item/stack/sheet/mineral/hidden/hellstone
impressiveness = 50
desc = "A bananium statue with a small engraving:'HOOOOOOONK'."
var/spam_flag = 0
diff --git a/code/game/turfs/closed/_closed.dm b/code/game/turfs/closed/_closed.dm
index cfede10541d4..bb5d6f7311c0 100644
--- a/code/game/turfs/closed/_closed.dm
+++ b/code/game/turfs/closed/_closed.dm
@@ -86,47 +86,6 @@
smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS)
canSmoothWith = list(SMOOTH_GROUP_CLOSED_TURFS)
-/turf/closed/indestructible/riveted/supermatter
- name = "wall"
- desc = "A wall made out of a strange metal. The squares on it pulse in a predictable pattern."
- icon = 'icons/turf/walls/bananium_wall.dmi'
- icon_state = "bananium_wall-0"
- base_icon_state = "bananium_wall"
- smoothing_flags = SMOOTH_BITMASK
- smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_BANANIUM_WALLS)
- canSmoothWith = list(SMOOTH_GROUP_BANANIUM_WALLS)
-
-/turf/closed/indestructible/riveted/supermatter/Bumped(atom/movable/AM)
- if(isliving(AM))
- AM.visible_message("\The [AM] slams into \the [src] inducing a resonance... [AM.p_their()] body starts to glow and burst into flames before flashing into dust!",\
- "You slam into \the [src] as your ears are filled with unearthly ringing. Your last thought is \"Oh, fuck.\"",\
- "You hear an unearthly noise as a wave of heat washes over you.")
- else if(isobj(AM) && !iseffect(AM))
- AM.visible_message("\The [AM] smacks into \the [src] and rapidly flashes to ash.", null,\
- "You hear a loud crack as you are washed with a wave of heat.")
- else
- return
-
- playsound(get_turf(src), 'sound/effects/supermatter.ogg', 50, TRUE)
- Consume(AM)
-
-/turf/closed/indestructible/riveted/supermatter/proc/Consume(atom/movable/AM)
- if(isliving(AM))
- var/mob/living/user = AM
- if(user.status_flags & GODMODE)
- return
- message_admins("[src] has consumed [key_name_admin(user)] [ADMIN_JMP(src)].")
- investigate_log("has consumed [key_name(user)].", INVESTIGATE_SUPERMATTER)
- user.dust(force = TRUE)
- else if(isobj(AM))
- if(!iseffect(AM))
- var/suspicion = ""
- if(AM.fingerprintslast)
- suspicion = "last touched by [AM.fingerprintslast]"
- message_admins("[src] has consumed [AM], [suspicion] [ADMIN_JMP(src)].")
- investigate_log("has consumed [AM] - [suspicion].", INVESTIGATE_SUPERMATTER)
- qdel(AM)
-
/turf/closed/indestructible/syndicate
icon = 'icons/turf/walls/plastitanium_wall.dmi'
icon_state = "plastitanium_wall-0"
diff --git a/code/game/turfs/closed/minerals.dm b/code/game/turfs/closed/minerals.dm
index ab46afa7e884..370afeaeedf2 100644
--- a/code/game/turfs/closed/minerals.dm
+++ b/code/game/turfs/closed/minerals.dm
@@ -281,14 +281,13 @@
light_range = 2
light_power = 1
-
/turf/closed/mineral/random/snow/underground
baseturfs = /turf/open/floor/plating/asteroid/snow/icemoon
// abundant ore
mineralChance = 10
mineralSpawnChanceList = list(
/obj/item/stack/ore/uranium = 10, /obj/item/stack/ore/diamond = 4, /obj/item/stack/ore/gold = 20, /obj/item/stack/ore/titanium = 22,
- /obj/item/stack/ore/silver = 24, /obj/item/stack/ore/plasma = 20, /obj/item/stack/ore/iron = 20, /obj/item/stack/ore/bananium = 1,
+ /obj/item/stack/ore/silver = 24, /obj/item/stack/ore/plasma = 20, /obj/item/stack/ore/iron = 20,
/turf/closed/mineral/gibtonite/ice/icemoon = 8, /obj/item/stack/ore/bluespace_crystal = 2)
/turf/closed/mineral/random/snow/high_chance
@@ -404,11 +403,6 @@
initial_gas_mix = FROZEN_ATMOS
defer_change = TRUE
-/turf/closed/mineral/bananium
- mineralType = /obj/item/stack/ore/bananium
- mineralAmt = 3
- scan_state = "rock_Bananium"
-
/turf/closed/mineral/bscrystal
mineralType = /obj/item/stack/ore/bluespace_crystal
mineralAmt = 1
@@ -650,10 +644,7 @@
H.mind.adjust_experience(/datum/skill/mining, 100) //yay!
/turf/closed/mineral/strong/proc/drop_ores()
- if(prob(10))
- new /obj/item/stack/sheet/mineral/mythril(src, 5)
- else
- new /obj/item/stack/sheet/mineral/adamantine(src, 5)
+ new /obj/item/stack/sheet/mineral/hidden/hellstone(src, 5)
/turf/closed/mineral/strong/acid_melt()
return
diff --git a/code/game/turfs/closed/wall/mineral_walls.dm b/code/game/turfs/closed/wall/mineral_walls.dm
index 720a95afd0e1..89a00d04c142 100644
--- a/code/game/turfs/closed/wall/mineral_walls.dm
+++ b/code/game/turfs/closed/wall/mineral_walls.dm
@@ -68,24 +68,6 @@
icon_state = "diamond_wall-255"
smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS
-/turf/closed/wall/mineral/bananium
- name = "bananium wall"
- desc = "A wall with bananium plating. Honk!"
- icon = 'icons/turf/walls/bananium_wall.dmi'
- icon_state = "bananium_wall-0"
- base_icon_state = "bananium_wall"
- sheet_type = /obj/item/stack/sheet/mineral/bananium
- smoothing_flags = SMOOTH_BITMASK | SMOOTH_CONNECTORS
- smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_BANANIUM_WALLS)
- canSmoothWith = list(SMOOTH_GROUP_BANANIUM_WALLS, SMOOTH_GROUP_WALLS,SMOOTH_GROUP_AIRLOCK)
- connector_icon = 'icons/turf/connectors/bananium_wall_connector.dmi'
- connector_icon_state = "bananium_wall_connector"
- no_connector_typecache = list(/turf/closed/wall/mineral/bananium, /obj/structure/falsewall/bananium)
-
-/turf/closed/wall/mineral_bananium/yesdiag
- icon_state = "bananium_wall-255"
- smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS
-
/turf/closed/wall/mineral/sandstone
name = "sandstone wall"
desc = "A wall with sandstone plating. Rough."
diff --git a/code/game/turfs/closed/wall/misc_walls.dm b/code/game/turfs/closed/wall/misc_walls.dm
index e6e5c8f0c557..20fcb2cb9f57 100644
--- a/code/game/turfs/closed/wall/misc_walls.dm
+++ b/code/game/turfs/closed/wall/misc_walls.dm
@@ -6,7 +6,7 @@
base_icon_state = "cult_wall"
smoothing_flags = SMOOTH_BITMASK
canSmoothWith = null
- sheet_type = /obj/item/stack/sheet/runed_metal
+ sheet_type = /obj/item/stack/sheet/mineral/hidden/hellstone
sheet_amount = 1
girder_type = /obj/structure/girder/cult
diff --git a/code/game/turfs/open/floor/mineral_floor.dm b/code/game/turfs/open/floor/mineral_floor.dm
index 476a69fa468d..5d53a162b087 100644
--- a/code/game/turfs/open/floor/mineral_floor.dm
+++ b/code/game/turfs/open/floor/mineral_floor.dm
@@ -172,48 +172,6 @@
/turf/open/floor/mineral/plastitanium/red/brig
name = "brig floor"
-//BANANIUM
-
-/turf/open/floor/mineral/bananium
- name = "bananium floor"
- icon_state = "bananium"
- floor_tile = /obj/item/stack/tile/mineral/bananium
- icons = list("bananium","bananium_dam")
- var/spam_flag = 0
-
-/turf/open/floor/mineral/bananium/Entered(atom/movable/AM)
- .=..()
- if(!.)
- if(isliving(AM))
- squeak()
-
-/turf/open/floor/mineral/bananium/attackby(obj/item/W, mob/user, params)
- .=..()
- if(!.)
- honk()
-
-/turf/open/floor/mineral/bananium/attack_hand(mob/user)
- .=..()
- if(!.)
- honk()
-
-/turf/open/floor/mineral/bananium/attack_paw(mob/user)
- .=..()
- if(!.)
- honk()
-
-/turf/open/floor/mineral/bananium/proc/honk()
- if(spam_flag < world.time)
- playsound(src, 'sound/items/bikehorn.ogg', 50, TRUE)
- spam_flag = world.time + 20
-
-/turf/open/floor/mineral/bananium/proc/squeak()
- if(spam_flag < world.time)
- playsound(src, "clownstep", 50, TRUE)
- spam_flag = world.time + 10
-
-/turf/open/floor/mineral/bananium/airless
- initial_gas_mix = AIRLESS_ATMOS
//DIAMOND
diff --git a/code/game/turfs/open/lava.dm b/code/game/turfs/open/lava.dm
index 99f1d590c05a..eb2132940bd9 100644
--- a/code/game/turfs/open/lava.dm
+++ b/code/game/turfs/open/lava.dm
@@ -18,6 +18,8 @@
heavyfootstep = FOOTSTEP_LAVA
var/particle_emitter = /obj/effect/particle_emitter/lava
+ /// Whether the lava has been dug with hellstone found successfully
+ var/is_mined = FALSE
/turf/open/lava/Initialize(mapload)
. = ..()
@@ -100,10 +102,10 @@
/turf/open/lava/TakeTemperature(temp)
-/turf/open/lava/attackby(obj/item/C, mob/user, params)
+/turf/open/lava/attackby(obj/item/attacking_item, mob/user, params)
..()
- if(istype(C, /obj/item/stack/rods/lava))
- var/obj/item/stack/rods/lava/R = C
+ if(istype(attacking_item, /obj/item/stack/rods/lava))
+ var/obj/item/stack/rods/lava/R = attacking_item
var/obj/structure/lattice/lava/H = locate(/obj/structure/lattice/lava, src)
if(H)
to_chat(user, "There is already a lattice here!")
@@ -115,6 +117,19 @@
else
to_chat(user, "You need one rod to build a heatproof lattice.")
return
+ if(attacking_item.tool_behaviour == TOOL_MINING && (attacking_item.custom_materials[SSmaterials.GetMaterialRef(/datum/material/diamond)]))
+ if(is_mined)
+ to_chat(user, span_notice("This has already been cleared out of hellstone..."))
+ return FALSE
+ to_chat(user, span_notice("You start parting away [src]..."))
+ if(attacking_item.use_tool(src, user, 175, volume=30))
+ to_chat(user, span_notice("You part away [src]."))
+ playsound(src, 'sound/effects/break_stone.ogg', 30, TRUE)
+ if (prob(10))
+ new /obj/item/stack/ore/hellstone(src)
+ is_mined = TRUE
+ return TRUE
+ return FALSE
/turf/open/lava/proc/is_safe()
//if anything matching this typecache is found in the lava, we don't burn things
diff --git a/code/modules/NTNet/relays.dm b/code/modules/NTNet/relays.dm
index 9a1b01403eda..f161eced8060 100644
--- a/code/modules/NTNet/relays.dm
+++ b/code/modules/NTNet/relays.dm
@@ -3,8 +3,8 @@
name = "NTNet Quantum Relay"
desc = "A very complex router and transmitter capable of connecting electronic devices together. Looks fragile."
use_power = ACTIVE_POWER_USE
- active_power_usage = 10000 //10kW, apropriate for machine that keeps massive cross-Zlevel wireless network operational. Used to be 20 but that actually drained the smes one round
- idle_power_usage = 100
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_EXTREME //Since NTnet is barely used, this has been lowered by half.
icon = 'icons/obj/machines/telecomms.dmi'
icon_state = "bus"
density = TRUE
@@ -64,9 +64,9 @@
/obj/machinery/ntnet_relay/process()
if(is_operational)
- use_power = ACTIVE_POWER_USE
+ set_active_power()
else
- use_power = IDLE_POWER_USE
+ set_idle_power()
update_appearance()
diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm
index 003abfd42991..00dc550c11ce 100644
--- a/code/modules/antagonists/cult/blood_magic.dm
+++ b/code/modules/antagonists/cult/blood_magic.dm
@@ -601,7 +601,7 @@
var/quantity = candidate.amount
if(candidate.use(quantity))
uses --
- new /obj/item/stack/sheet/runed_metal(T,quantity)
+ new /obj/item/stack/sheet/mineral/hidden/hellstone(T,quantity)
to_chat(user, "A dark cloud emanates from you hand and swirls around the plasteel, transforming it into runed metal!")
SEND_SOUND(user, sound('sound/effects/magic.ogg',0,1,25))
else if(istype(target,/mob/living/silicon/robot))
diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm
index e7f37d37f4a6..406c51956035 100644
--- a/code/modules/antagonists/cult/cult.dm
+++ b/code/modules/antagonists/cult/cult.dm
@@ -61,7 +61,7 @@
var/mob/living/current = owner.current
add_objectives()
if(give_equipment)
- equip_cultist(TRUE)
+ equip_cultist()
SSticker.mode.cult += owner // Only add after they've been given objectives
current.log_message("has been converted to the cult of Nar'Sie!", LOG_ATTACK, color="#960000")
@@ -69,13 +69,11 @@
current.client.images += cult_team.blood_target_image
-/datum/antagonist/cult/proc/equip_cultist(metal=TRUE)
+/datum/antagonist/cult/proc/equip_cultist()
var/mob/living/carbon/H = owner.current
if(!istype(H))
return
. += cult_give_item(/obj/item/melee/cultblade/dagger, H)
- if(metal)
- . += cult_give_item(/obj/item/stack/sheet/runed_metal/ten, H)
to_chat(owner, "These will help you jumpstart a cult of your own in this sector. Use them well, and remember - you are not the only one.")
@@ -163,21 +161,16 @@
/datum/antagonist/cult/get_admin_commands()
. = ..()
.["Dagger"] = CALLBACK(src, PROC_REF(admin_give_dagger))
- .["Dagger and Metal"] = CALLBACK(src, PROC_REF(admin_give_metal))
- .["Remove Dagger and Metal"] = CALLBACK(src, PROC_REF(admin_take_all))
+ .["Metal"] = CALLBACK(src, PROC_REF(admin_take_all))
/datum/antagonist/cult/proc/admin_give_dagger(mob/admin)
- if(!equip_cultist(metal=FALSE))
+ if(!equip_cultist())
to_chat(admin, "Spawning dagger failed!")
-/datum/antagonist/cult/proc/admin_give_metal(mob/admin)
- if (!equip_cultist(metal=TRUE))
- to_chat(admin, "Spawning runed metal failed!")
-
/datum/antagonist/cult/proc/admin_take_all(mob/admin)
var/mob/living/current = owner.current
for(var/o in current.GetAllContents())
- if(istype(o, /obj/item/melee/cultblade/dagger) || istype(o, /obj/item/stack/sheet/runed_metal))
+ if(istype(o, /obj/item/melee/cultblade/dagger))
qdel(o)
/datum/antagonist/cult/master
diff --git a/code/modules/antagonists/cult/cult_structures.dm b/code/modules/antagonists/cult/cult_structures.dm
index 66526d96a34f..60816a90d45d 100644
--- a/code/modules/antagonists/cult/cult_structures.dm
+++ b/code/modules/antagonists/cult/cult_structures.dm
@@ -5,7 +5,7 @@
light_power = 2
var/cooldowntime = 0
break_sound = 'sound/hallucinations/veryfar_noise.ogg'
- debris = list(/obj/item/stack/sheet/runed_metal = 1)
+ debris = list(/obj/item/stack/sheet/mineral/hidden/hellstone = 1)
/obj/structure/destructible/cult/proc/conceal() //for spells that hide cult presence
density = FALSE
diff --git a/code/modules/antagonists/devil/devil.dm b/code/modules/antagonists/devil/devil.dm
index 9b9ba7c4d69d..ace534f94dfa 100644
--- a/code/modules/antagonists/devil/devil.dm
+++ b/code/modules/antagonists/devil/devil.dm
@@ -24,13 +24,6 @@ GLOBAL_LIST_INIT(lawlorify, list (
OBLIGATION_SAYNAME = "He will always chant his name upon killing someone.",
OBLIGATION_ANNOUNCEKILL = "This devil always loudly announces his kills for the world to hear.",
OBLIGATION_ANSWERTONAME = "This devil always responds to his truename.",
- BANE_SILVER = "Silver seems to gravely injure this devil.",
- BANE_SALT = "Throwing salt at this devil will hinder his ability to use infernal powers temporarily.",
- BANE_LIGHT = "Bright flashes will disorient the devil, likely causing him to flee.",
- BANE_IRON = "Cold iron will slowly injure him, until he can purge it from his system.",
- BANE_WHITECLOTHES = "Wearing clean white clothing will help ward off this devil.",
- BANE_HARVEST = "Presenting the labors of a harvest will disrupt the devil.",
- BANE_TOOLBOX = "That which holds the means of creation also holds the means of the devil's undoing.",
BAN_HURTWOMAN = "This devil seems to prefer hunting men.",
BAN_CHAPEL = "This devil avoids holy ground.",
BAN_HURTPRIEST = "The annointed clergy appear to be immune to his powers.",
@@ -62,13 +55,6 @@ GLOBAL_LIST_INIT(lawlorify, list (
BAN_STRIKEUNCONSCIOUS = "You must never strike an unconscious person.",
BAN_HURTlizard = "You must never harm a lizardman outside of self defense.",
BAN_HURTANIMAL = "You must never harm a non-sentient creature or robot outside of self defense.",
- BANE_SILVER = "Silver, in all of its forms shall be your downfall.",
- BANE_SALT = "Salt will disrupt your magical abilities.",
- BANE_LIGHT = "Blinding lights will prevent you from using offensive powers for a time.",
- BANE_IRON = "Cold wrought iron shall act as poison to you.",
- BANE_WHITECLOTHES = "Those clad in pristine white garments will strike you true.",
- BANE_HARVEST = "The fruits of the harvest shall be your downfall.",
- BANE_TOOLBOX = "Toolboxes are bad news for you, for some reason.",
BANISH_WATER = "If your corpse is filled with holy water, you will be unable to resurrect.",
BANISH_COFFIN = "If your corpse is in a coffin, you will be unable to resurrect.",
BANISH_FORMALDYHIDE = "If your corpse is embalmed, you will be unable to resurrect.",
@@ -94,7 +80,6 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master",
show_to_ghosts = TRUE
var/obligation
var/ban
- var/bane
var/banish
var/truename
var/list/datum/mind/soulsOwned = new
@@ -171,9 +156,6 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master",
/proc/randomdevilban()
return pick(BAN_HURTWOMAN, BAN_CHAPEL, BAN_HURTPRIEST, BAN_AVOIDWATER, BAN_STRIKEUNCONSCIOUS, BAN_HURTLIZARD, BAN_HURTANIMAL)
-/proc/randomdevilbane()
- return pick(BANE_SALT, BANE_LIGHT, BANE_IRON, BANE_WHITECLOTHES, BANE_SILVER, BANE_HARVEST, BANE_TOOLBOX)
-
/proc/randomdevilbanish()
return pick(BANISH_WATER, BANISH_COFFIN, BANISH_FORMALDYHIDE, BANISH_RUNES, BANISH_CANDLES, BANISH_DESTRUCTION, BANISH_FUNERAL_GARB)
@@ -489,7 +471,6 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master",
to_chat(owner.current, "However, your infernal form is not without weaknesses.")
to_chat(owner.current, "You may not use violence to coerce someone into selling their soul.")
to_chat(owner.current, "You may not directly and knowingly physically harm a devil, other than yourself.")
- to_chat(owner.current, GLOB.lawlorify[LAW][bane])
to_chat(owner.current, GLOB.lawlorify[LAW][ban])
to_chat(owner.current, GLOB.lawlorify[LAW][obligation])
to_chat(owner.current, GLOB.lawlorify[LAW][banish])
@@ -499,12 +480,11 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master",
/datum/antagonist/devil/on_gain()
truename = randomDevilName()
ban = randomdevilban()
- bane = randomdevilbane()
obligation = randomdevilobligation()
banish = randomdevilbanish()
GLOB.allDevils[lowertext(truename)] = src
- antag_memory += "Your devilic true name is [truename]
[GLOB.lawlorify[LAW][ban]]
You may not use violence to coerce someone into selling their soul.
You may not directly and knowingly physically harm a devil, other than yourself.
[GLOB.lawlorify[LAW][bane]]
[GLOB.lawlorify[LAW][obligation]]
[GLOB.lawlorify[LAW][banish]]
"
+ antag_memory += "Your devilic true name is [truename]
[GLOB.lawlorify[LAW][ban]]
You may not use violence to coerce someone into selling their soul.
You may not directly and knowingly physically harm a devil, other than yourself.
[GLOB.lawlorify[LAW][obligation]]
[GLOB.lawlorify[LAW][banish]]
"
if(issilicon(owner.current))
var/mob/living/silicon/robot_devil = owner.current
var/laws = list("You may not use violence to coerce someone into selling their soul.", "You may not directly and knowingly physically harm a devil, other than yourself.", GLOB.lawlorify[LAW][ban], GLOB.lawlorify[LAW][obligation], "Accomplish your objectives at all costs.")
@@ -541,7 +521,6 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master",
parts += "The devil's true name is: [truename]"
parts += "The devil's bans were:"
parts += "[FOURSPACES][GLOB.lawlorify[LORE][ban]]"
- parts += "[FOURSPACES][GLOB.lawlorify[LORE][bane]]"
parts += "[FOURSPACES][GLOB.lawlorify[LORE][obligation]]"
parts += "[FOURSPACES][GLOB.lawlorify[LORE][banish]]"
return parts.Join("
")
@@ -556,7 +535,6 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master",
//A simple super light weight datum for the codex gigas.
/datum/fakeDevil
var/truename
- var/bane
var/obligation
var/ban
var/banish
@@ -564,7 +542,6 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master",
/datum/fakeDevil/New(name = randomDevilName())
truename = name
- bane = randomdevilbane()
obligation = randomdevilobligation()
ban = randomdevilban()
banish = randomdevilbanish()
diff --git a/code/modules/antagonists/devil/devil_helpers.dm b/code/modules/antagonists/devil/devil_helpers.dm
deleted file mode 100644
index 3be8320a001f..000000000000
--- a/code/modules/antagonists/devil/devil_helpers.dm
+++ /dev/null
@@ -1,37 +0,0 @@
-/mob/living/proc/check_devil_bane_multiplier(obj/item/weapon, mob/living/attacker)
- var/datum/antagonist/devil/devilInfo = mind.has_antag_datum(/datum/antagonist/devil)
- switch(devilInfo.bane)
- if(BANE_WHITECLOTHES)
- if(ishuman(attacker))
- var/mob/living/carbon/human/H = attacker
- if(H.w_uniform && istype(H.w_uniform, /obj/item/clothing/under))
- var/obj/item/clothing/under/U = H.w_uniform
- var/static/list/whiteness = list (
- /obj/item/clothing/under/color/white = 2,
- /obj/item/clothing/under/rank/civilian/bartender = 1,
- /obj/item/clothing/under/rank/civilian/chef = 1,
- /obj/item/clothing/under/rank/engineering/chief_engineer = 1,
- /obj/item/clothing/under/rank/rnd/scientist = 1,
- /obj/item/clothing/under/rank/medical/chemist = 1,
- /obj/item/clothing/under/rank/medical/chief_medical_officer = 1,
- /obj/item/clothing/under/rank/medical/geneticist = 1,
- /obj/item/clothing/under/rank/medical/virologist = 1,
- /obj/item/clothing/under/rank/medical/doctor/nurse = 1,
- /obj/item/clothing/under/rank/medical/doctor = 1,
- /obj/item/clothing/under/rank/security/detective = 1,
- /obj/item/clothing/under/suit/white = 0.5,
- )
- if(U && whiteness[U.type])
- src.visible_message("[src] seems to have been harmed by the purity of [attacker]'s clothes.", "Unsullied white clothing is disrupting your form.")
- return whiteness[U.type] + 1
- if(BANE_TOOLBOX)
- if(istype(weapon, /obj/item/storage/toolbox))
- src.visible_message("The [weapon] seems unusually robust this time.", "The [weapon] is your unmaking!")
- return 2.5 // Will take four hits with a normal toolbox to crit.
- if(BANE_HARVEST)
- if(istype(weapon, /obj/item/reagent_containers/food/snacks/grown/))
- visible_message("The spirits of the harvest aid in the exorcism.", "The harvest spirits are harming you.")
- Paralyze(40)
- qdel(weapon)
- return 2
- return 1
diff --git a/code/modules/antagonists/devil/true_devil/_true_devil.dm b/code/modules/antagonists/devil/true_devil/_true_devil.dm
index 0faab8e003cf..4703f95263f7 100644
--- a/code/modules/antagonists/devil/true_devil/_true_devil.dm
+++ b/code/modules/antagonists/devil/true_devil/_true_devil.dm
@@ -113,11 +113,6 @@
/mob/living/carbon/true_devil/assess_threat(judgement_criteria, lasercolor = "", datum/callback/weaponcheck=null)
return 666
-/mob/living/carbon/true_devil/flash_act(intensity = 1, override_blindness_check = 0, affect_silicon = 0, visual = 0)
- if(mind && has_bane(BANE_LIGHT))
- mind.disrupt_spells(-500)
- return ..() //flashes don't stop devils UNLESS it's their bane.
-
/mob/living/carbon/true_devil/soundbang_act()
return 0
@@ -126,8 +121,7 @@
/mob/living/carbon/true_devil/attacked_by(obj/item/I, mob/living/user, def_zone)
- var/weakness = check_weakness(I, user)
- apply_damage(I.force * weakness, I.damtype, def_zone)
+ apply_damage(I.force, I.damtype, def_zone)
var/message_verb = ""
if(I.attack_verb && I.attack_verb.len)
message_verb = "[pick(I.attack_verb)]"
@@ -213,8 +207,6 @@
b_loss = 150
if (EXPLODE_LIGHT)
b_loss = 30
- if(has_bane(BANE_LIGHT))
- b_loss *=2
adjustBruteLoss(b_loss)
return ..()
diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm
index bef2f277f7e1..895bfdc96cf4 100644
--- a/code/modules/atmospherics/machinery/airalarm.dm
+++ b/code/modules/atmospherics/machinery/airalarm.dm
@@ -65,8 +65,8 @@
icon = 'icons/obj/monitors.dmi'
icon_state = "alarm"
use_power = IDLE_POWER_USE
- idle_power_usage = 4
- active_power_usage = 1200
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_MEDIUM
power_channel = AREA_USAGE_ENVIRON
//req_access = list(ACCESS_ATMOSPHERICS)
max_integrity = 250
@@ -753,14 +753,14 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/airalarm, 27)
visible_message("The air alarm makes a quiet click as it stops heating the area")
playsound(src, 'sound/machines/terminal_off.ogg', 40)
heating_current_mode = "Idle"
- use_power = IDLE_POWER_USE
+ set_idle_power()
return
if(wanted_mode == "Heat" & heating_current_mode == "Idle")
visible_message("The air alarm makes a quiet click as it starts heating the area")
playsound(src, 'sound/machines/terminal_on.ogg', 40)
heating_current_mode = "Heat"
- use_power = ACTIVE_POWER_USE
+ set_active_power()
if(heating_current_mode == "Heat")
var/temperature = environment.return_temperature()
diff --git a/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm b/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm
index 9f2d582be256..30703b2f4a02 100644
--- a/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm
+++ b/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm
@@ -15,12 +15,19 @@
var/active = FALSE
var/last_pressure_delta = 0
- pipe_flags = PIPING_ONE_PER_TURF | PIPING_DEFAULT_LAYER_ONLY
+ pipe_flags = PIPING_ONE_PER_TURF
var/flipped = 0
var/mode = CIRCULATOR_HOT
var/obj/machinery/power/generator/generator
+/obj/machinery/atmospherics/components/unary/shuttle/heater/on_construction(obj_color, set_layer)
+ var/obj/item/circuitboard/machine/circulator/board = circuit
+ if(board)
+ piping_layer = board.pipe_layer
+ set_layer = piping_layer
+ ..()
+
//for mappers
/obj/machinery/atmospherics/components/binary/circulator/cold
mode = CIRCULATOR_COLD
diff --git a/code/modules/atmospherics/machinery/components/binary_devices/pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/pump.dm
index 8579d70a1165..8cd12ddf27cf 100644
--- a/code/modules/atmospherics/machinery/components/binary_devices/pump.dm
+++ b/code/modules/atmospherics/machinery/components/binary_devices/pump.dm
@@ -18,6 +18,10 @@
can_unwrench = TRUE
shift_underlay_only = FALSE
+ use_power = IDLE_POWER_USE
+ idle_power_usage = 0
+ active_power_usage = ACTIVE_DRAW_MINIMAL
+
var/target_pressure = ONE_ATMOSPHERE
var/frequency = 0
@@ -30,6 +34,10 @@
/obj/machinery/atmospherics/components/binary/pump/CtrlClick(mob/user)
if(can_interact(user))
on = !on
+ if(on)
+ set_active_power()
+ else
+ set_idle_power()
investigate_log("was turned [on ? "on" : "off"] by [key_name(user)]", INVESTIGATE_ATMOS)
update_appearance()
return ..()
@@ -110,6 +118,10 @@
switch(action)
if("power")
on = !on
+ if(on)
+ set_active_power()
+ else
+ set_idle_power()
investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", INVESTIGATE_ATMOS)
. = TRUE
if("pressure")
diff --git a/code/modules/atmospherics/machinery/components/binary_devices/valve.dm b/code/modules/atmospherics/machinery/components/binary_devices/valve.dm
index 020570f34785..24ef0997406d 100644
--- a/code/modules/atmospherics/machinery/components/binary_devices/valve.dm
+++ b/code/modules/atmospherics/machinery/components/binary_devices/valve.dm
@@ -73,6 +73,9 @@ It's like a regular ol' straight pipe, but you can turn it on and off.
return
..()
+/obj/machinery/atmospherics/components/binary/valve/digital/toggle()
+ use_power(ACTIVE_DRAW_MINIMAL)
+ . = ..()
/obj/machinery/atmospherics/components/binary/valve/layer2
piping_layer = 2
diff --git a/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm
index 03b41df05e32..c32a750848da 100644
--- a/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm
+++ b/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm
@@ -18,6 +18,10 @@
can_unwrench = TRUE
shift_underlay_only = FALSE
+ use_power = IDLE_POWER_USE
+ idle_power_usage = 0
+ active_power_usage = ACTIVE_DRAW_MINIMAL
+
var/transfer_rate = MAX_TRANSFER_RATE
var/overclocked = FALSE
@@ -31,6 +35,10 @@
/obj/machinery/atmospherics/components/binary/volume_pump/CtrlClick(mob/user)
if(can_interact(user))
on = !on
+ if(on)
+ set_active_power()
+ else
+ set_idle_power()
investigate_log("was turned [on ? "on" : "off"] by [key_name(user)]", INVESTIGATE_ATMOS)
update_appearance()
return ..()
@@ -130,6 +138,10 @@
switch(action)
if("power")
on = !on
+ if(on)
+ set_active_power()
+ else
+ set_idle_power()
investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", INVESTIGATE_ATMOS)
. = TRUE
if("rate")
diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm
index 404ecbf46eb2..d196bca1c3b3 100644
--- a/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm
+++ b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm
@@ -5,6 +5,10 @@
name = "gas filter"
desc = "Very useful for filtering gasses."
+ use_power = IDLE_POWER_USE
+ idle_power_usage = 0
+ active_power_usage = ACTIVE_DRAW_MINIMAL
+
can_unwrench = TRUE
var/transfer_rate = MAX_TRANSFER_RATE
var/filter_type = null
@@ -17,6 +21,10 @@
/obj/machinery/atmospherics/components/trinary/filter/CtrlClick(mob/user)
if(can_interact(user))
on = !on
+ if(on)
+ set_active_power()
+ else
+ set_idle_power()
investigate_log("was turned [on ? "on" : "off"] by [key_name(user)]", INVESTIGATE_ATMOS)
update_appearance()
return ..()
@@ -114,6 +122,10 @@
switch(action)
if("power")
on = !on
+ if(on)
+ set_active_power()
+ else
+ set_idle_power()
investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", INVESTIGATE_ATMOS)
. = TRUE
if("rate")
diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm
index c1ce88286b4c..9ea52bd847be 100644
--- a/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm
+++ b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm
@@ -5,6 +5,10 @@
name = "gas mixer"
desc = "Very useful for mixing gasses."
+ use_power = IDLE_POWER_USE
+ idle_power_usage = 0
+ active_power_usage = ACTIVE_DRAW_MINIMAL
+
can_unwrench = TRUE
var/target_pressure = ONE_ATMOSPHERE
@@ -19,6 +23,10 @@
/obj/machinery/atmospherics/components/trinary/mixer/CtrlClick(mob/user)
if(can_interact(user))
on = !on
+ if(on)
+ set_active_power()
+ else
+ set_idle_power()
investigate_log("was turned [on ? "on" : "off"] by [key_name(user)]", INVESTIGATE_ATMOS)
update_appearance()
return ..()
@@ -137,6 +145,10 @@
switch(action)
if("power")
on = !on
+ if(on)
+ set_active_power()
+ else
+ set_idle_power()
investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", INVESTIGATE_ATMOS)
. = TRUE
if("pressure")
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm
index 1b6df20c721e..bcb46dedf147 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm
@@ -6,6 +6,7 @@
desc = "Heats or cools gas in connected pipes."
density = TRUE
+ idle_power_usage = IDLE_DRAW_LOW
max_integrity = 300
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 30)
layer = OBJ_LAYER
@@ -83,7 +84,7 @@
var/temperature_delta= abs(old_temperature - air_contents.return_temperature())
if(temperature_delta > 1)
- active_power_usage = (heat_capacity * temperature_delta) / 10 + idle_power_usage
+ active_power_usage = (heat_capacity * temperature_delta) / 5 + idle_power_usage
update_parents()
else
active_power_usage = idle_power_usage
@@ -152,7 +153,10 @@
switch(action)
if("power")
on = !on
- use_power = on ? ACTIVE_POWER_USE : IDLE_POWER_USE
+ if(on)
+ set_active_power()
+ else
+ set_idle_power()
investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", INVESTIGATE_ATMOS)
. = TRUE
if("target")
@@ -182,6 +186,10 @@
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE))
return
on = !on
+ if(on)
+ set_active_power()
+ else
+ set_idle_power()
investigate_log("was turned [on ? "on" : "off"] by [key_name(user)]", INVESTIGATE_ATMOS)
update_appearance()
investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", INVESTIGATE_ATMOS)
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
index c55b8da80436..dc8b278959f6 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
@@ -48,8 +48,8 @@
radio_connection = null
adjacent_turfs.Cut()
return ..()
-
-/obj/machinery/atmospherics/components/unary/vent_scrubber/auto_use_power()
+/*
+/obj/machinery/atmospherics/components/unary/vent_scrubber/auto_use_power() //auto_use_power no longer called
if(!on || welded || !is_operational || !powered(power_channel))
return FALSE
@@ -64,7 +64,7 @@
amount += amount * (adjacent_turfs.len * (adjacent_turfs.len / 2))
use_power(amount, power_channel)
return TRUE
-
+*/
/obj/machinery/atmospherics/components/unary/vent_scrubber/update_icon_nopipes()
cut_overlays()
if(showpipe)
@@ -138,13 +138,20 @@
..()
if(welded || !on || !is_operational)
+ if(use_static_power != NO_POWER_USE)
+ set_no_power()
return FALSE
if(!nodes[1])
return FALSE
scrub(loc)
if(widenet)
+ if(use_static_power != ACTIVE_POWER_USE)
+ set_active_power()
for(var/turf/tile in adjacent_turfs)
scrub(tile)
+ else
+ if(use_static_power != IDLE_POWER_USE)
+ set_idle_power()
return TRUE
/obj/machinery/atmospherics/components/unary/vent_scrubber/proc/scrub(turf/tile)
diff --git a/code/modules/atmospherics/machinery/other/meter.dm b/code/modules/atmospherics/machinery/other/meter.dm
index 811979dd4c39..07aca0757568 100644
--- a/code/modules/atmospherics/machinery/other/meter.dm
+++ b/code/modules/atmospherics/machinery/other/meter.dm
@@ -6,8 +6,8 @@
layer = GAS_PUMP_LAYER
power_channel = AREA_USAGE_ENVIRON
use_power = IDLE_POWER_USE
- idle_power_usage = 2
- active_power_usage = 4
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = IDLE_DRAW_MINIMAL
max_integrity = 150
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 40, "acid" = 0)
var/frequency = 0
diff --git a/code/modules/atmospherics/machinery/other/miner.dm b/code/modules/atmospherics/machinery/other/miner.dm
index 37045635cf1a..ca85e9cc5569 100644
--- a/code/modules/atmospherics/machinery/other/miner.dm
+++ b/code/modules/atmospherics/machinery/other/miner.dm
@@ -26,8 +26,8 @@
var/power_draw_dynamic_kpa_coeff = 0.5
var/broken = FALSE
var/broken_message = "ERROR"
- idle_power_usage = 150
- active_power_usage = 2000
+ idle_power_usage = IDLE_DRAW_LOW
+ active_power_usage = ACTIVE_DRAW_HIGH
/obj/machinery/atmospherics/miner/Initialize()
. = ..()
diff --git a/code/modules/atmospherics/machinery/portable/scrubber.dm b/code/modules/atmospherics/machinery/portable/scrubber.dm
index b608d5849e38..8e71222ab4d4 100644
--- a/code/modules/atmospherics/machinery/portable/scrubber.dm
+++ b/code/modules/atmospherics/machinery/portable/scrubber.dm
@@ -113,8 +113,8 @@
name = "huge air scrubber"
icon_state = "scrubber:0"
anchored = TRUE
- active_power_usage = 500
- idle_power_usage = 10
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_MEDIUM
overpressure_m = 200
volume_rate = 1500
@@ -137,8 +137,10 @@
if((!anchored && !movable) || !is_operational)
on = FALSE
update_appearance()
- use_power = on ? ACTIVE_POWER_USE : IDLE_POWER_USE
- if(!on)
+ if(on)
+ set_active_power()
+ else
+ set_idle_power()
return
..()
diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm
index 40932634cfa4..11358938bd47 100644
--- a/code/modules/awaymissions/corpse.dm
+++ b/code/modules/awaymissions/corpse.dm
@@ -30,7 +30,7 @@
var/mob_color //Change the mob's color
var/assignedrole
var/show_flavour = TRUE
- var/banType = ROLE_LAVALAND
+ var/ban_type = ROLE_LAVALAND
var/ghost_usable = TRUE
/// Weakref to the mob this spawner created - just if you needed to do something with it.
var/datum/weakref/spawned_mob_ref
@@ -42,7 +42,7 @@
if(!uses)
to_chat(user, "This spawner is out of charges!")
return
- if(is_banned_from(user.key, banType))
+ if(is_banned_from(user.key, ban_type))
to_chat(user, "You are jobanned!")
return
if(!allow_spawn(user))
diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm
index a643be115aab..51ab76479657 100644
--- a/code/modules/awaymissions/gateway.dm
+++ b/code/modules/awaymissions/gateway.dm
@@ -157,8 +157,8 @@ GLOBAL_LIST_EMPTY(gateway_destinations)
density = TRUE
use_power = IDLE_POWER_USE
- idle_power_usage = 100
- active_power_usage = 5000
+ idle_power_usage = IDLE_DRAW_LOW
+ active_power_usage = ACTIVE_DRAW_EXTREME
var/calibrated = TRUE
/// Type of instanced gateway destination, needs to be subtype of /datum/gateway_destination/gateway
@@ -198,7 +198,7 @@ GLOBAL_LIST_EMPTY(gateway_destinations)
target = null
dest.deactivate(src)
QDEL_NULL(portal)
- use_power = IDLE_POWER_USE
+ set_idle_power()
update_appearance()
portal_visuals.reset_visuals()
@@ -221,7 +221,7 @@ GLOBAL_LIST_EMPTY(gateway_destinations)
target.activate(destination)
portal_visuals.setup_visuals(target)
generate_bumper()
- use_power = ACTIVE_POWER_USE
+ set_active_power()
update_appearance()
/obj/machinery/gateway/proc/Transfer(atom/movable/AM)
diff --git a/code/modules/awaymissions/mission_code/spacebattle.dm b/code/modules/awaymissions/mission_code/spacebattle.dm
index dee4def256b0..efe429b86b73 100644
--- a/code/modules/awaymissions/mission_code/spacebattle.dm
+++ b/code/modules/awaymissions/mission_code/spacebattle.dm
@@ -41,11 +41,11 @@
name = "Hidden Chamber"
icon_state = "awaycontent10"
-/mob/living/simple_animal/hostile/syndicate/ranged/spacebattle
+/mob/living/simple_animal/hostile/human/syndicate/ranged/spacebattle
loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,
/obj/item/gun/ballistic/automatic/smg/c20r,
/obj/item/shield/energy)
-/mob/living/simple_animal/hostile/syndicate/melee/spacebattle
+/mob/living/simple_animal/hostile/human/syndicate/melee/spacebattle
deathmessage = "falls limp as they release their grip from the energy weapons, activating their self-destruct function!"
loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier)
diff --git a/code/modules/cargo/blackmarket/blackmarket_items/misc.dm b/code/modules/cargo/blackmarket/blackmarket_items/misc.dm
index eb3de3c4040d..a5e2c67175af 100644
--- a/code/modules/cargo/blackmarket/blackmarket_items/misc.dm
+++ b/code/modules/cargo/blackmarket/blackmarket_items/misc.dm
@@ -91,7 +91,7 @@
stock = 1
availability_prob = 40
-/datum/blackmarket_item/consumable/secret_docs/spawn_item(loc)
+/datum/blackmarket_item/misc/secret_docs/spawn_item(loc)
var/docs = pick(list(/obj/item/documents/nanotrasen,
/obj/item/documents/solgov,
/obj/item/documents/terragov,
diff --git a/code/modules/cargo/blackmarket/blackmarket_telepad.dm b/code/modules/cargo/blackmarket/blackmarket_telepad.dm
index 0dea6c59b819..14211cad6878 100644
--- a/code/modules/cargo/blackmarket/blackmarket_telepad.dm
+++ b/code/modules/cargo/blackmarket/blackmarket_telepad.dm
@@ -16,7 +16,7 @@
circuit = /obj/item/circuitboard/machine/ltsrbt
density = TRUE
- idle_power_usage = 200
+ idle_power_usage = IDLE_DRAW_LOW
/// Divider for power_usage_per_teleport.
var/power_efficiency = 1
diff --git a/code/modules/cargo/bounties/special.dm b/code/modules/cargo/bounties/special.dm
index af61a6698e44..fa581504ca89 100644
--- a/code/modules/cargo/bounties/special.dm
+++ b/code/modules/cargo/bounties/special.dm
@@ -19,12 +19,12 @@
return (Copy.copy_type && ispath(Copy.copy_type, /obj/item/documents/syndicate))
return TRUE
-/datum/bounty/item/adamantine
- name = "Adamantine"
- description = "Nanotrasen's anomalous materials division is in desparate need for Adamantine. Send them a large shipment and we'll make it worth your while."
+/datum/bounty/item/hellstone
+ name = "Hellstone"
+ description = "Nanotrasen's anomalous materials division is in desparate need for Hellstone. Send them a large shipment and we'll make it worth your while."
reward = 35000
required_count = 10
- wanted_types = list(/obj/item/stack/sheet/mineral/adamantine)
+ wanted_types = list(/obj/item/stack/sheet/mineral/hidden/hellstone)
/datum/bounty/item/trash
name = "Trash"
diff --git a/code/modules/cargo/bounty.dm b/code/modules/cargo/bounty.dm
index 01efd57be70b..3807e9bd6984 100644
--- a/code/modules/cargo/bounty.dm
+++ b/code/modules/cargo/bounty.dm
@@ -166,7 +166,7 @@ GLOBAL_LIST_EMPTY(bounties_list)
/********************************Low Priority Gens********************************/
var/list/low_priority_strict_type_list = list( /datum/bounty/item/alien_organs,
/datum/bounty/item/syndicate_documents,
- /datum/bounty/item/adamantine,
+ /datum/bounty/item/hellstone,
/datum/bounty/item/trash,
/datum/bounty/more_bounties)
diff --git a/code/modules/cargo/exports/materials.dm b/code/modules/cargo/exports/materials.dm
index 1bf35a94c440..f81654978ac2 100644
--- a/code/modules/cargo/exports/materials.dm
+++ b/code/modules/cargo/exports/materials.dm
@@ -26,11 +26,6 @@
// Materials. Prices have been heavily nerfed from the original values; mining is boring, so it shouldn't be a good way to make money.
-/datum/export/material/bananium
- cost = 250
- material_id = /datum/material/bananium
- message = "cm3 of bananium"
-
/datum/export/material/diamond
cost = 125
material_id = /datum/material/diamond
@@ -62,15 +57,10 @@
material_id = /datum/material/titanium
message = "cm3 of titanium"
-/datum/export/material/adamantine
+/datum/export/material/hellstone
cost = 125
- material_id = /datum/material/adamantine
- message = "cm3 of adamantine"
-
-/datum/export/material/mythril
- cost = 375
- material_id = /datum/material/mythril
- message = "cm3 of mythril"
+ material_id = /datum/material/hellstone
+ message = "cm3 of hellstone"
/datum/export/material/bscrystal
cost = 75
@@ -82,11 +72,6 @@
message = "cm3 of plastic"
material_id = /datum/material/plastic
-/datum/export/material/runite
- cost = 150
- message = "cm3 of runite"
- material_id = /datum/material/runite
-
/datum/export/material/metal
cost = 2
message = "cm3 of metal"
diff --git a/code/modules/cargo/packs/mechs.dm b/code/modules/cargo/packs/mechs.dm
index e184a8372627..b28d16359d5e 100644
--- a/code/modules/cargo/packs/mechs.dm
+++ b/code/modules/cargo/packs/mechs.dm
@@ -174,7 +174,7 @@ weapons
/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser
)
-/datum/supply_pack/mech/equipment/laser
+/datum/supply_pack/mech/equipment/biglaser
name = "Solaris kit"
desc = "A heavy laser cannon designed for combat usage."
cost = 2000
diff --git a/code/modules/cargo/packs/medical.dm b/code/modules/cargo/packs/medical.dm
index d49e9760da81..08b576937138 100644
--- a/code/modules/cargo/packs/medical.dm
+++ b/code/modules/cargo/packs/medical.dm
@@ -61,10 +61,9 @@
/datum/supply_pack/medical/defibs
name = "Defibrillator Crate"
- desc = "Contains two defibrillators for bringing the recently deceased back to life."
- cost = 1500
- contains = list(/obj/item/defibrillator/loaded,
- /obj/item/defibrillator/loaded)
+ desc = "Contains a defibrillator for bringing the recently deceased back to life."
+ cost = 750
+ contains = list(/obj/item/defibrillator/loaded)
crate_name = "defibrillator crate"
/datum/supply_pack/medical/surgery
diff --git a/code/modules/client/loadout/loadout_accessories.dm b/code/modules/client/loadout/loadout_accessories.dm
index 40702e5fc2be..b81588c8e72e 100644
--- a/code/modules/client/loadout/loadout_accessories.dm
+++ b/code/modules/client/loadout/loadout_accessories.dm
@@ -77,6 +77,11 @@
description = "Standard hand coverings for everyday use."
path = /obj/item/clothing/gloves/color/white
+/datum/gear/accessory/gloves/fingerless
+ display_name = "fingerless gloves"
+ description = "Radical hand coverings for everyday use."
+ path = /obj/item/clothing/gloves/fingerless
+
/datum/gear/accessory/gloves/evening
display_name = "evening gloves"
description = "Excessively fancy elbow-length gloves."
diff --git a/code/modules/client/loadout/loadout_general.dm b/code/modules/client/loadout/loadout_general.dm
index d9e6d8f13020..265a7728d2ab 100644
--- a/code/modules/client/loadout/loadout_general.dm
+++ b/code/modules/client/loadout/loadout_general.dm
@@ -36,7 +36,7 @@
/datum/gear/mug
display_name = "coffee mug"
- path = /obj/item/reagent_containers/food/drinks/britcup
+ path = /obj/item/reagent_containers/food/drinks/mug
/datum/gear/rilena_mug
display_name = "coffee mug, rilena"
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index b1aef68b112b..662a549ca631 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -154,6 +154,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
)
var/fbp = FALSE
var/phobia = "spiders"
+ var/preferred_smoke_brand = PREF_CIG_SPACE
var/list/alt_titles_preferences = list()
var/list/custom_names = list()
var/preferred_ai_core_display = "Blue"
@@ -839,6 +840,11 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "[phobia]
"
+ if("Smoker" in all_quirks)
+ dat += "Smoker
"
+
+ dat += "[preferred_smoke_brand]
"
+
if("body_size" in pref_species.default_features)
if(!mutant_category)
dat += APPEARANCE_CATEGORY_COLUMN
@@ -1670,9 +1676,9 @@ GLOBAL_LIST_EMPTY(preferences_datums)
age = clamp(round(text2num(new_age)), pref_species.species_age_min, pref_species.species_age_max)
if("flavor_text")
- var/msg = sanitize(stripped_multiline_input(usr, "Set the flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!", "Flavor Text", features["flavor_text"], 4096, TRUE))
+ var/msg = stripped_multiline_input(usr, "A snippet of text shown when others examine you, describing what you may look like. This can also be used for OOC notes.", "Flavor Text", html_decode(features["flavor_text"]), MAX_FLAVOR_LEN, TRUE)
if(msg) //WS edit - "Cancel" does not clear flavor text
- features["flavor_text"] = html_decode(msg)
+ features["flavor_text"] = msg
if("hair")
var/new_hair = input(user, "Choose your character's hair colour:", "Character Preference","#"+hair_color) as color|null
@@ -2078,6 +2084,10 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/phobiaType = input(user, "What are you scared of?", "Character Preference", phobia) as null|anything in SStraumas.phobia_types
if(phobiaType)
phobia = phobiaType
+ if("preferred_smoke_brand")
+ var/smokeBrand = input(user, "What cigarettes are your favorite?", "Character Preference", preferred_smoke_brand) as null|anything in GLOB.valid_smoke_types
+ if(smokeBrand)
+ preferred_smoke_brand = smokeBrand
if("generic_adjective")
var/selectAdj
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index cce6b66ac612..b53d761c41da 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -405,6 +405,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
READ_FILE(S["jumpsuit_style"], jumpsuit_style)
READ_FILE(S["uplink_loc"], uplink_spawn_loc)
READ_FILE(S["phobia"], phobia)
+ READ_FILE(S["preferred_smoke_brand"], preferred_smoke_brand)
READ_FILE(S["generic_adjective"], generic_adjective)
READ_FILE(S["randomise"], randomise)
READ_FILE(S["body_size"], features["body_size"])
@@ -594,6 +595,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["uplink_loc"] , uplink_spawn_loc)
WRITE_FILE(S["randomise"] , randomise)
WRITE_FILE(S["species"] , pref_species.id)
+ WRITE_FILE(S["preferred_smoke_brand"] , preferred_smoke_brand)
WRITE_FILE(S["phobia"] , phobia)
WRITE_FILE(S["generic_adjective"] , generic_adjective)
WRITE_FILE(S["body_size"] , features["body_size"])
diff --git a/code/modules/clothing/shoes/bananashoes.dm b/code/modules/clothing/shoes/bananashoes.dm
index a09ea07a3250..4ed246a587be 100644
--- a/code/modules/clothing/shoes/bananashoes.dm
+++ b/code/modules/clothing/shoes/bananashoes.dm
@@ -16,7 +16,7 @@
/obj/item/clothing/shoes/clown_shoes/banana_shoes/ComponentInitialize()
. = ..()
AddElement(/datum/element/update_icon_updates_onmob)
- AddComponent(/datum/component/material_container, list(/datum/material/bananium), 200000, TRUE, /obj/item/stack)
+ AddComponent(/datum/component/material_container, list(/datum/material/hellstone), 200000, TRUE, /obj/item/stack)
AddComponent(/datum/component/squeak, list('sound/items/bikehorn.ogg'=1), 75, falloff_exponent = 20)
/obj/item/clothing/shoes/clown_shoes/banana_shoes/step_action()
@@ -24,7 +24,7 @@
var/mob/wearer = loc
var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container)
if(on && istype(wearer))
- if(bananium.get_material_amount(/datum/material/bananium) < 100)
+ if(bananium.get_material_amount(/datum/material/hellstone) < 100)
on = !on
if(!always_noslip)
clothing_flags &= ~NOSLIP
@@ -32,7 +32,7 @@
to_chat(loc, "You ran out of bananium!")
else
new /obj/item/grown/bananapeel/specialpeel(get_step(src,turn(wearer.dir, 180))) //honk
- bananium.use_amount_mat(100, /datum/material/bananium)
+ bananium.use_amount_mat(100, /datum/material/hellstone)
/obj/item/clothing/shoes/clown_shoes/banana_shoes/attack_self(mob/user)
var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container)
@@ -48,7 +48,7 @@
/obj/item/clothing/shoes/clown_shoes/banana_shoes/ui_action_click(mob/user)
var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container)
- if(bananium.get_material_amount(/datum/material/bananium))
+ if(bananium.get_material_amount(/datum/material/hellstone))
on = !on
update_appearance()
to_chat(user, "You [on ? "activate" : "deactivate"] the prototype shoes.")
diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm
index bce5d5bd2445..4e3f6d5e3a9c 100644
--- a/code/modules/clothing/suits/cloaks.dm
+++ b/code/modules/clothing/suits/cloaks.dm
@@ -67,6 +67,11 @@
desc = "Worn by high ranking vampires of the transylvanian society of vampires."
icon_state = "trans"
+/obj/item/clothing/neck/cloak/bi
+ name = "solarian marine biologist cloak"
+ desc = "Commonly worn by members of the Solarian Marine Biologist Society, dedicated to the study and preservation of marine wildlife."
+ icon_state = "bi"
+
/obj/item/clothing/suit/hooded/cloak/goliath
name = "goliath cloak"
icon_state = "goliath_cloak"
diff --git a/code/modules/clothing/suits/hoodies.dm b/code/modules/clothing/suits/hoodies.dm
index b9e7ebb218c0..f58d445c53f0 100644
--- a/code/modules/clothing/suits/hoodies.dm
+++ b/code/modules/clothing/suits/hoodies.dm
@@ -85,11 +85,13 @@
/obj/item/clothing/head/hooded/hood/fbp
name = "\improper FBP kepori hood"
desc = "A hood for your FBP hoodie."
+ icon_state = "hoodie_fbp"
item_state = "hoodie_fbp"
/obj/item/clothing/suit/hooded/hoodie/rilena
name = "K4L1 hoodie"
desc = "A hoodie themed to look like K4L1 from the popular webseries RILENA. It has a comfy pocket for keeping your hands warm."
+ icon_state = "hoodie_rilena"
item_state = "hoodie_rilena"
hoodtype = /obj/item/clothing/head/hooded/hood/rilena
@@ -110,5 +112,6 @@
/obj/item/clothing/head/hooded/hood/rilena
name = "RILENA: LMR K4L1 hood"
desc = "A hood for your RILENA themed hoodie."
+ icon_state = "hoodie_rilena"
item_state = "hoodie_rilena"
diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm
index 41c1cddde5a1..451d428760f3 100644
--- a/code/modules/clothing/suits/wiz_robe.dm
+++ b/code/modules/clothing/suits/wiz_robe.dm
@@ -148,39 +148,6 @@
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
resistance_flags = FLAMMABLE
-/obj/item/clothing/suit/wizrobe/paper
- name = "papier-mache robe" // no non-latin characters!
- desc = "A robe held together by various bits of clear-tape and paste."
- icon_state = "wizard-paper"
- item_state = "wizard-paper"
- var/robe_charge = TRUE
- actions_types = list(/datum/action/item_action/stickmen)
-
-
-/obj/item/clothing/suit/wizrobe/paper/ui_action_click(mob/user, action)
- stickmen()
-
-
-/obj/item/clothing/suit/wizrobe/paper/verb/stickmen()
- set category = "Object"
- set name = "Summon Stick Minions"
- set src in usr
- if(!isliving(usr))
- return
- if(!robe_charge)
- to_chat(usr, "The robe's internal magic supply is still recharging!")
- return
-
- usr.say("Rise, my creation! Off your page into this realm!", forced = "stickman summoning")
- playsound(src.loc, 'sound/magic/summon_magic.ogg', 50, TRUE, TRUE)
- var/mob/living/M = new /mob/living/simple_animal/hostile/stickman(get_turf(usr))
- var/list/factions = usr.faction
- M.faction = factions
- src.robe_charge = FALSE
- sleep(30)
- src.robe_charge = TRUE
- to_chat(usr, "The robe hums, its internal magic supply restored.")
-
/obj/item/clothing/suit/space/hardsuit/shielded/wizard
name = "battlemage armour"
desc = "Not all wizards are afraid of getting up close and personal."
diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm
index 7a8e21ae2bea..a28d6d323a83 100644
--- a/code/modules/clothing/under/_under.dm
+++ b/code/modules/clothing/under/_under.dm
@@ -86,7 +86,6 @@
if(attached_accessory && slot != ITEM_SLOT_HANDS && ishuman(user))
var/mob/living/carbon/human/H = user
attached_accessory.on_uniform_equip(src, user)
- H.fan_hud_set_fandom()
if(attached_accessory.above_suit)
H.update_inv_wear_suit()
@@ -101,7 +100,6 @@
attached_accessory.on_uniform_dropped(src, user)
if(ishuman(user))
var/mob/living/carbon/human/H = user
- H.fan_hud_set_fandom()
if(attached_accessory.above_suit)
H.update_inv_wear_suit()
@@ -136,7 +134,6 @@
var/mob/living/carbon/human/H = loc
H.update_inv_w_uniform()
H.update_inv_wear_suit()
- H.fan_hud_set_fandom()
return TRUE
@@ -158,7 +155,6 @@
var/mob/living/carbon/human/H = loc
H.update_inv_w_uniform()
H.update_inv_wear_suit()
- H.fan_hud_set_fandom()
/obj/item/clothing/under/examine(mob/user)
diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm
index ed1d12be3fcb..76de51b173cd 100644
--- a/code/modules/clothing/under/accessories.dm
+++ b/code/modules/clothing/under/accessories.dm
@@ -376,45 +376,6 @@
for(var/i in 1 to 3)
new /obj/item/lipstick/random(src)
-////////////////
-//REAL BIG FAN//
-////////////////
-
-/obj/item/clothing/accessory/fan_clown_pin
- name = "Clown Pin"
- desc = "A pin to show off your appreciation for clowns and clowning"
- icon_state = "fan_clown_pin"
- above_suit = FALSE
- minimize_when_attached = TRUE
- attachment_slot = CHEST
-
-/obj/item/clothing/accessory/fan_clown_pin/on_uniform_equip(obj/item/clothing/under/U, user)
- var/mob/living/L = user
- if(HAS_TRAIT(L, TRAIT_FAN_CLOWN))
- SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "fan_clown_pin", /datum/mood_event/fan_clown_pin)
-
-/obj/item/clothing/accessory/fan_clown_pin/on_uniform_dropped(obj/item/clothing/under/U, user)
- var/mob/living/L = user
- if(HAS_TRAIT(L, TRAIT_FAN_CLOWN))
- SEND_SIGNAL(L, COMSIG_CLEAR_MOOD_EVENT, "fan_clown_pin")
-
-/obj/item/clothing/accessory/fan_mime_pin
- name = "Mime Pin"
- desc = "A pin to show off your appreciation for mimes and miming"
- icon_state = "fan_mime_pin"
- above_suit = FALSE
- minimize_when_attached = TRUE
- attachment_slot = CHEST
-
-/obj/item/clothing/accessory/fan_mime_pin/on_uniform_equip(obj/item/clothing/under/U, user)
- var/mob/living/L = user
- if(HAS_TRAIT(L, TRAIT_FAN_MIME))
- SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "fan_mime_pin", /datum/mood_event/fan_mime_pin)
-
-/obj/item/clothing/accessory/fan_mime_pin/on_uniform_dropped(obj/item/clothing/under/U, user)
- var/mob/living/L = user
- if(HAS_TRAIT(L, TRAIT_FAN_MIME))
- SEND_SIGNAL(L, COMSIG_CLEAR_MOOD_EVENT, "fan_mime_pin")
////////////////
//OONGA BOONGA//
diff --git a/code/modules/fishing/fishing_portal_machine.dm b/code/modules/fishing/fishing_portal_machine.dm
index 0cbeae7c3dac..a070e7b7f797 100644
--- a/code/modules/fishing/fishing_portal_machine.dm
+++ b/code/modules/fishing/fishing_portal_machine.dm
@@ -6,7 +6,7 @@
icon_state = "portal_off"
idle_power_usage = 0
- active_power_usage = 2000
+ active_power_usage = ACTIVE_DRAW_HIGH
anchored = FALSE
density = TRUE
@@ -35,12 +35,12 @@
/obj/machinery/fishing_portal_generator/proc/activate()
active = AddComponent(/datum/component/fishing_spot, fishing_source)
- use_power = ACTIVE_POWER_USE
+ set_active_power()
update_appearance()
/obj/machinery/fishing_portal_generator/proc/deactivate()
QDEL_NULL(active)
- use_power = IDLE_POWER_USE
+ set_idle_power()
update_appearance()
/obj/machinery/fishing_portal_generator/on_set_is_operational(old_value)
diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm
index 258e9a56217f..ced086e1dfc6 100644
--- a/code/modules/flufftext/Hallucination.dm
+++ b/code/modules/flufftext/Hallucination.dm
@@ -525,11 +525,11 @@ GLOBAL_LIST_INIT(hallucination_list, list(
/datum/hallucination/delusion
var/list/image/delusions = list()
-/datum/hallucination/delusion/New(mob/living/carbon/C, forced, force_kind = null , duration = 300,skip_nearby = TRUE, custom_icon = null, custom_icon_file = null, custom_name = null)
+/datum/hallucination/delusion/New(mob/living/carbon/C, forced, force_kind = null , duration = rand(30,300),skip_nearby = TRUE, custom_icon = null, custom_icon_file = null, custom_name = null)
set waitfor = FALSE
. = ..()
var/image/A = null
- var/kind = force_kind ? force_kind : pick("nothing","monkey","corgi","carp","skeleton","demon","zombie")
+ var/kind = force_kind ? force_kind : pick("doe","mi-go","carp","hermit","frontiersman","ramzi")
feedback_details += "Type: [kind]"
var/list/nearby
if(skip_nearby)
@@ -540,27 +540,24 @@ GLOBAL_LIST_INIT(hallucination_list, list(
if(skip_nearby && (H in nearby))
continue
switch(kind)
- if("nothing")
- A = image('icons/effects/effects.dmi',H,"nothing")
- A.name = "..."
- if("monkey")//Monkey
- A = image('icons/mob/monkey.dmi',H,"monkey1")
- A.name = "Monkey ([rand(1,999)])"
+ if("doe")//Doe
+ A = image('icons/mob/animal.dmi',H,"deer-doe")
+ A.name = "Doe"
if("carp")//Carp
A = image('icons/mob/carp.dmi',H,"carp")
A.name = "Space Carp"
- if("corgi")//Corgi
- A = image('icons/mob/pets.dmi',H,"corgi")
- A.name = "Corgi"
- if("skeleton")//Skeletons
- A = image('icons/mob/human.dmi',H,"skeleton")
- A.name = "Skeleton"
- if("zombie")//Zombies
- A = image('icons/mob/human.dmi',H,"zombie")
- A.name = "Zombie"
- if("demon")//Demon
- A = image('icons/mob/mob.dmi',H,"daemon")
- A.name = "Demon"
+ if("mi-go")//Mi-go
+ A = image('icons/mob/animal.dmi',H,"mi-go")
+ A.name = "Mi-go"
+ if("hermit")//Hermit
+ A = image('icons/mob/simple_human.dmi',H,"survivor_gunslinger")
+ A.name = "Hermit Soldier"
+ if("frontiersman")//Frontiersman
+ A = image('icons/mob/simple_human.dmi',H,"frontiersmanrangedminigun")
+ A.name = "Frontiersman"
+ if("ramzi")//Ramzi
+ A = image('icons/mob/simple_human.dmi',H,"ramzi_base")
+ A.name = "Ramzi Commando"
if("custom")
A = image(custom_icon_file, H, custom_icon)
A.name = custom_name
@@ -568,8 +565,7 @@ GLOBAL_LIST_INIT(hallucination_list, list(
if(target.client)
delusions |= A
target.client.images |= A
- if(duration)
- QDEL_IN(src, duration)
+ addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), src), duration)
/datum/hallucination/delusion/Destroy()
for(var/image/I in delusions)
@@ -580,25 +576,28 @@ GLOBAL_LIST_INIT(hallucination_list, list(
/datum/hallucination/self_delusion
var/image/delusion
-/datum/hallucination/self_delusion/New(mob/living/carbon/C, forced, force_kind = null , duration = 300, custom_icon = null, custom_icon_file = null, wabbajack = TRUE) //set wabbajack to false if you want to use another fake source
+/datum/hallucination/self_delusion/New(mob/living/carbon/C, forced, force_kind = null , duration = rand(30,300), custom_icon = null, custom_icon_file = null, wabbajack = TRUE) //set wabbajack to false if you want to use another fake source
set waitfor = FALSE
..()
var/image/A = null
- var/kind = force_kind ? force_kind : pick("monkey","corgi","carp","skeleton","demon","zombie","robot")
+ var/kind = force_kind ? force_kind : pick("doe","mi-go","carp","hermit","frontiersman","ramzi","pai","robot")
feedback_details += "Type: [kind]"
switch(kind)
- if("monkey")//Monkey
- A = image('icons/mob/monkey.dmi',target,"monkey1")
+ if("doe")//Doe
+ A = image('icons/mob/animal.dmi',target,"deer-doe")
if("carp")//Carp
A = image('icons/mob/animal.dmi',target,"carp")
- if("corgi")//Corgi
- A = image('icons/mob/pets.dmi',target,"corgi")
- if("skeleton")//Skeletons
- A = image('icons/mob/human.dmi',target,"skeleton")
- if("zombie")//Zombies
- A = image('icons/mob/human.dmi',target,"zombie")
- if("demon")//Demon
- A = image('icons/mob/mob.dmi',target,"daemon")
+ if("mi-go")//Mi-go
+ A = image('icons/mob/animal.dmi',target,"mi-go")
+ if("hermit")//Hermit
+ A = image('icons/mob/simple_human.dmi',target,"survivor_base")
+ if("frontiersman")//Frontiersman
+ A = image('icons/mob/simple_human.dmi',target,"frontiersmanranged")
+ if("ramzi")//Ramzi
+ A = image('icons/mob/simple_human.dmi',target,"ramzi_base")
+ if("pai")//pAI
+ A = image('icons/mob/pai.dmi',target,"repairbot")
+ target.playsound_local(target,'sound/effects/pai_boot.ogg', 75, 1)
if("robot")//Cyborg
A = image('icons/mob/robots.dmi',target,"robot")
target.playsound_local(target,'sound/voice/liveagain.ogg', 75, 1)
@@ -610,7 +609,7 @@ GLOBAL_LIST_INIT(hallucination_list, list(
to_chat(target, "...you look down and notice... you aren't the same as you used to be...")
delusion = A
target.client.images |= A
- QDEL_IN(src, duration)
+ addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), src), duration)
/datum/hallucination/self_delusion/Destroy()
if(target.client)
diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm
index 8f88924930f4..aa2830daee92 100644
--- a/code/modules/food_and_drinks/drinks/drinks.dm
+++ b/code/modules/food_and_drinks/drinks/drinks.dm
@@ -120,27 +120,36 @@
if(!.) //if the bottle wasn't caught
smash(hit_atom, throwingdatum?.thrower, TRUE)
-/obj/item/reagent_containers/food/drinks/proc/smash(atom/target, mob/thrower, ranged = FALSE)
+/obj/item/reagent_containers/food/drinks/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum)
+ smash()
+ ..()
+
+/obj/item/reagent_containers/food/drinks/proc/smash(atom/target = FALSE, mob/thrower = FALSE, ranged = FALSE)
if(!isGlass)
return
- if(QDELING(src) || !target || !(flags_1 & INITIALIZED_1)) //Invalid loc
- return
- if(bartender_check(target) && ranged)
+ if(QDELING(src) || !(flags_1 & INITIALIZED_1)) //Invalid loc
return
- var/obj/item/broken_bottle/B = new (loc)
- B.icon_state = icon_state
- var/icon/I = new(icon, icon_state)
- I.Blend(B.broken_outline, ICON_OVERLAY, rand(5), 1)
- I.SwapColor(rgb(255, 0, 220, 255), rgb(0, 0, 0, 0))
- B.icon = I
- B.name = "broken [name]"
+ if(target)
+ if(bartender_check(target) && ranged)
+ return
+ var/obj/item/broken_bottle/smashed_bottle = new (loc)
+ if(!ranged && thrower)
+ thrower.put_in_hands(smashed_bottle)
+ smashed_bottle.icon_state = icon_state
+ var/icon/new_icon = new(icon, icon_state)
+ new_icon.Blend(smashed_bottle.broken_outline, ICON_OVERLAY, rand(5), 1)
+ new_icon.SwapColor(rgb(255, 0, 220, 255), rgb(0, 0, 0, 0))
+ smashed_bottle.icon = new_icon
+ smashed_bottle.name = "broken [name]"
if(prob(33))
- var/obj/item/shard/S = new(drop_location())
- target.Bumped(S)
+ var/obj/item/shard/new_shard = new(drop_location())
+ if(target)
+ target.Bumped(new_shard)
playsound(src, "shatter", 70, TRUE)
- transfer_fingerprints_to(B)
+ transfer_fingerprints_to(smashed_bottle)
qdel(src)
- target.Bumped(B)
+ if(target)
+ target.Bumped(smashed_bottle)
/obj/item/reagent_containers/food/drinks/bullet_act(obj/projectile/P)
. = ..()
diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm
index 4da78a5989a1..c19fd9dd3baa 100644
--- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm
+++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm
@@ -34,39 +34,7 @@
volume = 50
custom_price = 55
-/obj/item/reagent_containers/food/drinks/bottle/smash(mob/living/target, mob/thrower, ranged = FALSE)
- if(QDELING(src) || !target || !(flags_1 & INITIALIZED_1)) //Invalid loc
- return
- //Creates a shattering noise and replaces the bottle with a broken_bottle
- if(bartender_check(target) && ranged)
- return
- var/obj/item/broken_bottle/B = new (loc)
- if(!ranged && thrower)
- thrower.put_in_hands(B)
- B.icon_state = icon_state
-
- var/icon/I = new('icons/obj/drinks/drinks.dmi', src.icon_state)
- I.Blend(B.broken_outline, ICON_OVERLAY, rand(5), 1)
- I.SwapColor(rgb(255, 0, 220, 255), rgb(0, 0, 0, 0))
- B.icon = I
-
- if(isGlass)
- if(prob(33))
- var/obj/item/shard/S = new(drop_location())
- target.Bumped(S)
- playsound(src, "shatter", 70, TRUE)
- else
- B.force = 0
- B.throwforce = 0
- B.desc = "A carton with the bottom half burst open. Might give you a papercut."
- B.name = "broken [name]"
- transfer_fingerprints_to(B)
-
- qdel(src)
- target.Bumped(B)
-
/obj/item/reagent_containers/food/drinks/bottle/attack(mob/living/target, mob/living/user)
-
if(!target)
return
diff --git a/code/modules/food_and_drinks/kitchen_machinery/coffeemaker.dm b/code/modules/food_and_drinks/kitchen_machinery/coffeemaker.dm
index 7b98be6a16c4..bebf3dda83a4 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/coffeemaker.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/coffeemaker.dm
@@ -6,6 +6,8 @@
icon = 'icons/obj/machines/coffeemaker.dmi'
icon_state = "coffeemaker_nopot_nocart"
base_icon_state = "coffeemaker"
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_MINIMAL
resistance_flags = FIRE_PROOF | ACID_PROOF
circuit = /obj/item/circuitboard/machine/coffeemaker
var/obj/item/reagent_containers/food/drinks/bottle/coffeepot/coffeepot = null
@@ -375,11 +377,12 @@
if(!silent)
playsound(src, 'sound/machines/coffeemaker_brew.ogg', 20, vary = TRUE)
toggle_steam()
- use_power(active_power_usage * time * 0.1) // .1 needed here to convert time (in deciseconds) to seconds such that watts * seconds = joules
+ set_active_power()
addtimer(CALLBACK(src, PROC_REF(stop_operating)), time / speed)
/obj/machinery/coffeemaker/proc/stop_operating()
brewing = FALSE
+ set_idle_power()
toggle_steam()
/obj/machinery/coffeemaker/proc/brew()
diff --git a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm
index 4fa5354339c5..8eccd04c8404 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm
@@ -25,7 +25,7 @@
icon_state = "fryer_off"
density = TRUE
use_power = IDLE_POWER_USE
- idle_power_usage = 5
+ idle_power_usage = IDLE_DRAW_LOW
layer = BELOW_OBJ_LAYER
var/obj/item/reagent_containers/food/snacks/deepfryholder/frying //What's being fried RIGHT NOW?
var/cook_time = 0
diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
index fad3c3bc963f..7be027c012f4 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
@@ -5,8 +5,8 @@
icon_state = "grinder"
density = TRUE
use_power = IDLE_POWER_USE
- idle_power_usage = 2
- active_power_usage = 500
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_MEDIUM
circuit = /obj/item/circuitboard/machine/gibber
var/operating = FALSE //Is it on?
diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm
index 4a739d2ab7fc..678016182428 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm
@@ -8,8 +8,8 @@
layer = BELOW_OBJ_LAYER
density = TRUE
use_power = IDLE_POWER_USE
- idle_power_usage = 5
- active_power_usage = 100
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_MEDIUM
circuit = /obj/item/circuitboard/machine/microwave
pass_flags = PASSTABLE
light_color = LIGHT_COLOR_YELLOW
@@ -275,6 +275,7 @@
/obj/machinery/microwave/proc/start()
wzhzhzh()
+ set_active_power()
loop(MICROWAVE_NORMAL, 10)
/obj/machinery/microwave/proc/start_can_fail()
@@ -303,11 +304,11 @@
pre_success()
return
time--
- use_power(500)
addtimer(CALLBACK(src, PROC_REF(loop), type, time, wait), wait)
/obj/machinery/microwave/proc/loop_finish()
operating = FALSE
+ set_idle_power()
var/metal = 0
for(var/obj/item/O in ingredients)
@@ -330,6 +331,7 @@
/obj/machinery/microwave/proc/pre_fail()
broken = 2
operating = FALSE
+ set_idle_power()
spark()
after_finish_loop()
@@ -338,6 +340,7 @@
/obj/machinery/microwave/proc/muck_finish()
visible_message("\The [src] gets covered in muck!")
+ set_idle_power()
dirty = 100
dirty_anim_playing = FALSE
diff --git a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm
index 005ffa7632ba..79382343e1ae 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm
@@ -8,8 +8,8 @@ GLOBAL_LIST_EMPTY(monkey_recyclers)
layer = BELOW_OBJ_LAYER
density = TRUE
use_power = IDLE_POWER_USE
- idle_power_usage = 5
- active_power_usage = 50
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_MEDIUM
circuit = /obj/item/circuitboard/machine/monkey_recycler
var/stored_matter = 0
var/cube_production = 0.2
diff --git a/code/modules/food_and_drinks/kitchen_machinery/processor.dm b/code/modules/food_and_drinks/kitchen_machinery/processor.dm
index ba26a265f8ee..bc17a9fd22af 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/processor.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/processor.dm
@@ -7,8 +7,8 @@
layer = BELOW_OBJ_LAYER
density = TRUE
use_power = IDLE_POWER_USE
- idle_power_usage = 5
- active_power_usage = 50
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_MEDIUM
circuit = /obj/item/circuitboard/machine/processor
var/broken = FALSE
var/processing = FALSE
diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
index ed1347fb5124..5852ea34742b 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
@@ -9,8 +9,8 @@
layer = BELOW_OBJ_LAYER
density = TRUE
use_power = IDLE_POWER_USE
- idle_power_usage = 5
- active_power_usage = 100
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_MINIMAL
circuit = /obj/item/circuitboard/machine/smartfridge
var/max_n_of_items = 1500
@@ -245,8 +245,9 @@
icon = 'icons/obj/hydroponics/equipment.dmi'
icon_state = "drying_rack"
use_power = IDLE_POWER_USE
- idle_power_usage = 5
- active_power_usage = 200
+ circuit = null
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_MINIMAL
visible_contents = FALSE
var/drying = FALSE
@@ -258,7 +259,6 @@
/obj/machinery/smartfridge/drying_rack/on_deconstruction()
new /obj/item/stack/sheet/mineral/wood(drop_location(), 10)
- ..()
/obj/machinery/smartfridge/drying_rack/RefreshParts()
/obj/machinery/smartfridge/drying_rack/default_deconstruction_screwdriver()
@@ -326,10 +326,10 @@
/obj/machinery/smartfridge/drying_rack/proc/toggle_drying(forceoff)
if(drying || forceoff)
drying = FALSE
- use_power = IDLE_POWER_USE
+ set_idle_power()
else
drying = TRUE
- use_power = ACTIVE_POWER_USE
+ set_active_power()
update_appearance()
/obj/machinery/smartfridge/drying_rack/proc/rack_dry()
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm
index 0d7f403b538d..d0558f94fdb5 100644
--- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm
@@ -152,7 +152,7 @@
/datum/reagent/water = 10,
/obj/item/reagent_containers/glass/bowl = 1,
/obj/item/reagent_containers/food/snacks/grown/banana = 1,
- /obj/item/stack/ore/bananium = 1
+ /obj/item/stack/sheet/mineral/hidden/hellstone = 1
)
result = /obj/item/reagent_containers/food/snacks/soup/clownstears
subcategory = CAT_SOUP
diff --git a/code/modules/holodeck/items.dm b/code/modules/holodeck/items.dm
index f1a5862649a4..d56fd4f9c32c 100644
--- a/code/modules/holodeck/items.dm
+++ b/code/modules/holodeck/items.dm
@@ -152,8 +152,8 @@
var/eventstarted = FALSE
use_power = IDLE_POWER_USE
- idle_power_usage = 2
- active_power_usage = 6
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_MINIMAL
power_channel = AREA_USAGE_ENVIRON
/obj/machinery/readybutton/attack_ai(mob/user as mob)
diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm
index e9e40fd167b8..c3bcc09940d0 100644
--- a/code/modules/hydroponics/biogenerator.dm
+++ b/code/modules/hydroponics/biogenerator.dm
@@ -5,7 +5,7 @@
icon_state = "biogen-empty"
density = TRUE
use_power = IDLE_POWER_USE
- idle_power_usage = 40
+ idle_power_usage = IDLE_DRAW_LOW
circuit = /obj/item/circuitboard/machine/biogenerator
var/processing = FALSE
var/obj/item/reagent_containers/glass/beaker = null
diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm
index a5e66f6df4ef..66e4904e64d4 100644
--- a/code/modules/hydroponics/hydroponics.dm
+++ b/code/modules/hydroponics/hydroponics.dm
@@ -6,7 +6,9 @@
pixel_z = 1
obj_flags = CAN_BE_HIT | UNIQUE_RENAME
circuit = /obj/item/circuitboard/machine/hydroponics
- idle_power_usage = 0
+ use_power = IDLE_POWER_USE
+ idle_power_usage = IDLE_DRAW_LOW
+ active_power_usage = ACTIVE_DRAW_HIGH
var/waterlevel = 100 //The amount of water in the tray (max 100)
var/maxwater = 100 //The maximum amount of water in the tray
var/nutridrain = 1 // How many units of nutrient will be drained in the tray
@@ -114,7 +116,7 @@
if(!powered() && self_sustaining)
visible_message("[name]'s auto-grow functionality shuts off!")
- idle_power_usage = 0
+ set_idle_power()
self_sustaining = FALSE
update_appearance()
@@ -671,7 +673,10 @@
if(!anchored)
return
self_sustaining = !self_sustaining
- idle_power_usage = self_sustaining ? 1250 : 0
+ if(self_sustaining)
+ set_active_power()
+ else
+ set_idle_power()
to_chat(user, "You [self_sustaining ? "activate" : "deactivated"] [src]'s autogrow function[self_sustaining ? ", maintaining the tray's health while using high amounts of power" : ""].")
update_appearance()
@@ -702,7 +707,7 @@
desc = initial(desc)
TRAY_NAME_UPDATE
if(self_sustaining) //No reason to pay for an empty tray.
- idle_power_usage = 0
+ set_idle_power()
self_sustaining = FALSE
update_appearance()
diff --git a/code/modules/library/lib_codex_gigas.dm b/code/modules/library/lib_codex_gigas.dm
index c4263a771b0d..707f7a7647b7 100644
--- a/code/modules/library/lib_codex_gigas.dm
+++ b/code/modules/library/lib_codex_gigas.dm
@@ -59,7 +59,7 @@
inUse = FALSE
/obj/item/book/codex_gigas/proc/display_devil(datum/antagonist/devil/devil, mob/reader, devilName)
- reader << browse("Information on [devilName]
[GLOB.lawlorify[LORE][devil.ban]]
[GLOB.lawlorify[LORE][devil.bane]]
[GLOB.lawlorify[LORE][devil.obligation]]
[GLOB.lawlorify[LORE][devil.banish]]
[devil.ascendable?"This devil may ascend given enough souls.":""]", "window=book[window_size != null ? ";size=[window_size]" : ""]")
+ reader << browse("Information on [devilName]
[GLOB.lawlorify[LORE][devil.ban]]
[GLOB.lawlorify[LORE][devil.obligation]]
[GLOB.lawlorify[LORE][devil.banish]]
[devil.ascendable?"This devil may ascend given enough souls.":""]", "window=book[window_size != null ? ";size=[window_size]" : ""]")
/obj/item/book/codex_gigas/proc/ask_name(mob/reader)
ui_interact(reader)
diff --git a/code/modules/mining/abandoned_crates.dm b/code/modules/mining/abandoned_crates.dm
index 613a68a2de47..d86cfebf1197 100644
--- a/code/modules/mining/abandoned_crates.dm
+++ b/code/modules/mining/abandoned_crates.dm
@@ -192,7 +192,7 @@
if(77 to 78)
new /obj/item/toy/plush/lizardplushie(src)
if(79 to 80)
- new /obj/item/stack/sheet/mineral/bananium(src, 10)
+ new /obj/item/stack/sheet/mineral/hidden/hellstone(src, 10)
if(81 to 82)
new /obj/item/bikehorn/airhorn(src)
if(83 to 84)
diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm
index 6955bd23d66b..46c20dd02e1b 100644
--- a/code/modules/mining/equipment/explorer_gear.dm
+++ b/code/modules/mining/equipment/explorer_gear.dm
@@ -10,7 +10,7 @@
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
heat_protection = CHEST|GROIN|LEGS|ARMS
hoodtype = /obj/item/clothing/head/hooded/explorer
- armor = list("melee" = 10, "bullet" = 0, "laser" = 0, "energy" = 10, "bomb" = 50, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 50)
+ armor = list("melee" = 15, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 50, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 50)
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe)
resistance_flags = FIRE_PROOF
supports_variations = DIGITIGRADE_VARIATION | VOX_VARIATION
@@ -23,7 +23,7 @@
flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS
min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT
max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT
- armor = list("melee" = 10, "bullet" = 0, "laser" = 0, "energy" = 10, "bomb" = 50, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 50)
+ armor = list("melee" = 15, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 50, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 50)
resistance_flags = FIRE_PROOF
/obj/item/clothing/suit/hooded/explorer/Initialize()
@@ -166,7 +166,7 @@
max_heat_protection_temperature = (FIRE_SUIT_MAX_TEMP_PROTECT / 2)
heat_protection = CHEST|GROIN|LEGS|ARMS
hoodtype = /obj/item/clothing/head/hooded/survivor_hood
- armor = list("melee" = 15, "bullet" = 10, "laser" = 10, "energy" = 15, "bomb" = 20, "bio" = 100, "rad" = 20, "fire" = 50, "acid" = 30)
+ armor = list("melee" = 10, "bullet" = 0, "laser" = 0, "energy" = 10, "bomb" = 20, "bio" = 100, "rad" = 20, "fire" = 50, "acid" = 30)
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe)
resistance_flags = FIRE_PROOF
supports_variations = DIGITIGRADE_VARIATION | VOX_VARIATION
@@ -180,7 +180,7 @@
flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS
min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT
max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT
- armor = list("melee" = 15, "bullet" = 10, "laser" = 10, "energy" = 15, "bomb" = 20, "bio" = 100, "rad" = 20, "fire" = 50, "acid" = 30)
+ armor = list("melee" = 10, "bullet" = 0, "laser" = 0, "energy" = 10, "bomb" = 20, "bio" = 100, "rad" = 20, "fire" = 50, "acid" = 30)
resistance_flags = FIRE_PROOF
/obj/item/clothing/suit/hooded/survivor/Initialize()
diff --git a/code/modules/mining/equipment/mining_tools.dm b/code/modules/mining/equipment/mining_tools.dm
index ed8be5000a66..d38a3ce8b55b 100644
--- a/code/modules/mining/equipment/mining_tools.dm
+++ b/code/modules/mining/equipment/mining_tools.dm
@@ -53,6 +53,7 @@
force = 19
custom_price = 1500
custom_premium_price = 2000
+ custom_materials = list(/datum/material/diamond=2000)
/obj/item/pickaxe/drill
name = "mining drill"
@@ -81,6 +82,7 @@
toolspeed = 0.2
desc = "EXOCOM's improvement on the NT autodrill design, featuring a premium diamond cutting head. Yours is the drill that will pierce the heavens!"
force = 20
+ custom_materials = list(/datum/material/diamond=2000)
/obj/item/pickaxe/drill/cyborg/diamond //This is the BORG version!
name = "diamond-tipped integrated mining drill" //To inherit the NODROP_1 flag, and easier to change borg specific drill mechanics.
diff --git a/code/modules/mining/machine_bluespaceminer.dm b/code/modules/mining/machine_bluespaceminer.dm
index feffb562a7e0..f44775d20c20 100644
--- a/code/modules/mining/machine_bluespaceminer.dm
+++ b/code/modules/mining/machine_bluespaceminer.dm
@@ -7,7 +7,7 @@
circuit = /obj/item/circuitboard/machine/bluespace_miner
layer = BELOW_OBJ_LAYER
use_power = NO_POWER_USE
- idle_power_usage = 50000
+ idle_power_usage = ACTIVE_DRAW_EXTREME * 10
var/powered = FALSE
var/active = FALSE
diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm
index bbc84ec7ee68..0ae29ca8ee54 100644
--- a/code/modules/mining/machine_processing.dm
+++ b/code/modules/mining/machine_processing.dm
@@ -3,6 +3,7 @@
/**********************Mineral processing unit console**************************/
/obj/machinery/mineral
+ idle_power_usage = IDLE_DRAW_MINIMAL
processing_flags = START_PROCESSING_MANUALLY
subsystem_type = /datum/controller/subsystem/processing/fastprocess
/// The current direction of `input_turf`, in relation to the machine.
@@ -142,7 +143,7 @@
/obj/machinery/mineral/processing_unit/Initialize()
. = ..()
proximity_monitor = new(src, 1)
- AddComponent(/datum/component/material_container, list(/datum/material/iron, /datum/material/glass, /datum/material/silver, /datum/material/gold, /datum/material/diamond, /datum/material/plasma, /datum/material/uranium, /datum/material/bananium, /datum/material/titanium, /datum/material/bluespace), INFINITY, TRUE, /obj/item/stack)
+ AddComponent(/datum/component/material_container, list(/datum/material/iron, /datum/material/glass, /datum/material/silver, /datum/material/gold, /datum/material/diamond, /datum/material/plasma, /datum/material/uranium, /datum/material/hellstone, /datum/material/titanium, /datum/material/bluespace), INFINITY, TRUE, /obj/item/stack)
stored_research = new /datum/techweb/specialized/autounlocking/smelter
selected_material = SSmaterials.GetMaterialRef(/datum/material/iron)
diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm
index fd36a4bb4ab1..d0704887b4ea 100644
--- a/code/modules/mining/machine_redemption.dm
+++ b/code/modules/mining/machine_redemption.dm
@@ -17,7 +17,7 @@
var/points = 0
var/ore_multiplier = 1
var/point_upgrade = 1
- var/list/ore_values = list(/datum/material/iron = 1, /datum/material/glass = 1, /datum/material/plasma = 15, /datum/material/silver = 16, /datum/material/gold = 18, /datum/material/titanium = 30, /datum/material/uranium = 30, /datum/material/diamond = 50, /datum/material/bluespace = 50, /datum/material/bananium = 60)
+ var/list/ore_values = list(/datum/material/iron = 1, /datum/material/glass = 1, /datum/material/plasma = 15, /datum/material/silver = 16, /datum/material/gold = 18, /datum/material/titanium = 30, /datum/material/uranium = 30, /datum/material/diamond = 50, /datum/material/bluespace = 50)
/// Variable that holds a timer which is used for callbacks to `send_console_message()`. Used for preventing multiple calls to this proc while the ORM is eating a stack of ores.
var/console_notify_timer
var/datum/techweb/stored_research
diff --git a/code/modules/mining/machine_silo.dm b/code/modules/mining/machine_silo.dm
index 788d1c102f75..444e72992685 100644
--- a/code/modules/mining/machine_silo.dm
+++ b/code/modules/mining/machine_silo.dm
@@ -22,7 +22,6 @@ GLOBAL_LIST_EMPTY(silo_access_logs)
/datum/material/diamond,
/datum/material/plasma,
/datum/material/uranium,
- /datum/material/bananium,
/datum/material/titanium,
/datum/material/bluespace,
/datum/material/plastic,
diff --git a/code/modules/mining/minebot.dm b/code/modules/mining/minebot.dm
index 707d68a871f7..cc2a9f176c70 100644
--- a/code/modules/mining/minebot.dm
+++ b/code/modules/mining/minebot.dm
@@ -33,7 +33,7 @@
wanted_objects = list(
/obj/item/stack/ore/diamond, /obj/item/stack/ore/gold, /obj/item/stack/ore/silver,
/obj/item/stack/ore/plasma, /obj/item/stack/ore/uranium, /obj/item/stack/ore/iron,
- /obj/item/stack/ore/bananium, /obj/item/stack/ore/titanium)
+ /obj/item/stack/ore/hellstone, /obj/item/stack/ore/titanium)
healable = 0
loot = list(/obj/effect/decal/cleanable/robot_debris)
del_on_death = TRUE
diff --git a/code/modules/mining/mint.dm b/code/modules/mining/mint.dm
index 33117d99c518..79c2f0d52208 100644
--- a/code/modules/mining/mint.dm
+++ b/code/modules/mining/mint.dm
@@ -24,11 +24,8 @@
/datum/material/uranium,
/datum/material/titanium,
/datum/material/diamond,
- /datum/material/bananium,
- /datum/material/adamantine,
- /datum/material/mythril,
/datum/material/plastic,
- /datum/material/runite
+ /datum/material/hellstone,
), MINERAL_MATERIAL_AMOUNT * 75, FALSE, /obj/item/stack)
chosen = SSmaterials.GetMaterialRef(chosen)
diff --git a/code/modules/mining/money_bag.dm b/code/modules/mining/money_bag.dm
index 46011ae8ec7e..2c8ac19a353a 100644
--- a/code/modules/mining/money_bag.dm
+++ b/code/modules/mining/money_bag.dm
@@ -26,4 +26,4 @@
new /obj/item/coin/silver(src)
new /obj/item/coin/gold(src)
new /obj/item/coin/gold(src)
- new /obj/item/coin/adamantine(src)
+ new /obj/item/coin/hellstone(src)
diff --git a/code/modules/mining/ore_veins.dm b/code/modules/mining/ore_veins.dm
index 3e5e20053a77..0df6cd187d03 100644
--- a/code/modules/mining/ore_veins.dm
+++ b/code/modules/mining/ore_veins.dm
@@ -209,3 +209,36 @@ GLOBAL_LIST_EMPTY(ore_veins)
)
max_mobs = 6
spawn_time = 80
+
+// Asteroid veins are the same as the base planetary ones yield wise, but with the asteroid mobs.
+
+/obj/structure/vein/asteroid
+ mob_types = list(
+ /mob/living/simple_animal/hostile/asteroid/goliath = 60,
+ /mob/living/simple_animal/hostile/asteroid/basilisk = 30,
+ /mob/living/simple_animal/hostile/asteroid/hivelord = 30,
+ /mob/living/simple_animal/hostile/asteroid/brimdemon = 20,
+ /mob/living/simple_animal/hostile/carp = 20,
+ )
+
+/obj/structure/vein/classtwo/asteroid
+ mob_types = list(
+ /mob/living/simple_animal/hostile/asteroid/goliath = 60,
+ /mob/living/simple_animal/hostile/asteroid/basilisk = 30,
+ /mob/living/simple_animal/hostile/asteroid/hivelord = 30,
+ /mob/living/simple_animal/hostile/asteroid/brimdemon = 20,
+ /mob/living/simple_animal/hostile/carp = 20,
+ /mob/living/simple_animal/hostile/carp/megacarp = 15,
+ /mob/living/simple_animal/hostile/asteroid/goliath/beast/ancient = 5
+ )
+
+/obj/structure/vein/classthree/asteroid
+ mob_types = list(
+ /mob/living/simple_animal/hostile/asteroid/goliath = 60,
+ /mob/living/simple_animal/hostile/asteroid/basilisk = 30,
+ /mob/living/simple_animal/hostile/asteroid/hivelord = 30,
+ /mob/living/simple_animal/hostile/asteroid/brimdemon = 20,
+ /mob/living/simple_animal/hostile/carp/megacarp = 20,
+ /mob/living/simple_animal/hostile/asteroid/goliath/beast/ancient = 10
+ )
+
diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm
index ec971ed84bed..1dfe590cac0a 100644
--- a/code/modules/mining/ores_coins.dm
+++ b/code/modules/mining/ores_coins.dm
@@ -217,16 +217,6 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
mine_experience = 10
scan_state = "rock_Diamond"
-/obj/item/stack/ore/bananium
- name = "bananium ore"
- icon_state = "Bananium ore"
- item_state = "Bananium ore"
- singular_name = "bananium ore chunk"
- points = 60
- custom_materials = list(/datum/material/bananium=MINERAL_MATERIAL_AMOUNT)
- refined_type = /obj/item/stack/sheet/mineral/bananium
- mine_experience = 15
- scan_state = "rock_Bananium"
/obj/item/stack/ore/titanium
name = "titanium ore"
@@ -240,6 +230,16 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
scan_state = "rock_Titanium"
spreadChance = 5
+/obj/item/stack/ore/hellstone
+ name = "hellstone ore"
+ icon_state = "hellstone-ore"
+ item_state = "hellstone-ore"
+ singular_name = "hellstone ore chunk"
+ resistance_flags = LAVA_PROOF
+ points = 50
+ custom_materials = list(/datum/material/hellstone=MINERAL_MATERIAL_AMOUNT)
+ refined_type = /obj/item/stack/sheet/mineral/hidden/hellstone
+
/obj/item/stack/ore/slag
name = "slag"
desc = "Completely useless."
@@ -458,20 +458,11 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
/obj/item/coin/titanium
custom_materials = list(/datum/material/titanium = 400)
-/obj/item/coin/bananium
- custom_materials = list(/datum/material/bananium = 400)
-
-/obj/item/coin/adamantine
- custom_materials = list(/datum/material/adamantine = 400)
-
-/obj/item/coin/mythril
- custom_materials = list(/datum/material/mythril = 400)
-
/obj/item/coin/plastic
custom_materials = list(/datum/material/plastic = 400)
-/obj/item/coin/runite
- custom_materials = list(/datum/material/runite = 400)
+/obj/item/coin/hellstone
+ custom_materials = list(/datum/material/hellstone = 400)
/obj/item/coin/twoheaded
desc = "Hey, this coin's the same on both sides!"
diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm
index 5ccba743bb1b..25722dd28e5f 100644
--- a/code/modules/mob/dead/new_player/new_player.dm
+++ b/code/modules/mob/dead/new_player/new_player.dm
@@ -319,7 +319,6 @@
spawn_point.join_player_here(character)
var/atom/movable/screen/splash/Spl = new(character.client, TRUE)
Spl.Fade(TRUE)
- character.playsound_local(get_turf(character), 'sound/voice/ApproachingTG.ogg', 25)
character.update_parallax_teleport()
diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm
index de07b3d4f0fd..0d9dab7a035f 100644
--- a/code/modules/mob/inventory.dm
+++ b/code/modules/mob/inventory.dm
@@ -275,7 +275,7 @@
*/
/mob/proc/dropItemToGround(obj/item/I, force = FALSE, silent = FALSE)
. = doUnEquip(I, force, drop_location(), FALSE, silent = silent)
- if(. && I) //ensure the item exists and that it was dropped properly.
+ if(. && I && !(I.item_flags & NO_PIXEL_RANDOM_DROP)) //ensure the item exists and that it was dropped properly.
I.pixel_x = rand(-6,6)
I.pixel_y = rand(-6,6)
diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm
index 9b50d1827724..8377fc0833d6 100644
--- a/code/modules/mob/living/carbon/carbon_defense.dm
+++ b/code/modules/mob/living/carbon/carbon_defense.dm
@@ -554,14 +554,10 @@
else
to_chat(src, "Your eyes are really starting to hurt. This can't be good for you!")
- if(has_bane(BANE_LIGHT))
- mind.disrupt_spells(-500)
return 1
else if(damage == 0) // just enough protection
if(prob(20))
to_chat(src, "Something bright flashes in the corner of your vision!")
- if(has_bane(BANE_LIGHT))
- mind.disrupt_spells(0)
/mob/living/carbon/soundbang_act(intensity = 1, stun_pwr = 20, damage_pwr = 5, deafen_pwr = 15)
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 148c02d4988b..528d8500ea46 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -52,8 +52,6 @@
sec_hud_set_ID()
sec_hud_set_implants()
sec_hud_set_security_status()
- //...fan gear
- fan_hud_set_fandom()
//...and display them.
add_to_all_human_data_huds()
@@ -898,11 +896,6 @@
dna.remove_mutation(HM.name)
..()
-/mob/living/carbon/human/check_weakness(obj/item/weapon, mob/living/attacker)
- . = ..()
- if (dna && dna.species)
- . += dna.species.check_species_weakness(weapon, attacker)
-
/mob/living/carbon/human/is_literate()
return TRUE
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index 7091090f8877..3e3fd2209856 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -485,6 +485,9 @@
///Calculates the siemens coeff based on clothing and species, can also restart hearts.
/mob/living/carbon/human/electrocute_act(shock_damage, source, siemens_coeff = 1, flags = NONE)
+ //If it doesnt have physiology its prob still initializing.
+ if(!physiology)
+ return
//Calculates the siemens coeff based on clothing. Completely ignores the arguments
if(flags & SHOCK_TESLA) //I hate this entire block. This gets the siemens_coeff for tesla shocks
if(gloves && gloves.siemens_coefficient <= 0)
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index 9d0617a513bd..c276b44947c2 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -1289,9 +1289,6 @@ GLOBAL_LIST_EMPTY(roundstart_races)
/datum/species/proc/get_spans()
return list()
-/datum/species/proc/check_species_weakness(obj/item, mob/living/attacker)
- return 0 //This is not a boolean, it's the multiplier for the damage that the user takes from the item.It is added onto the check_weakness value of the mob, and then the force of the item is multiplied by this value
-
/**
* Equip the outfit required for life. Replaces items currently worn.
*/
@@ -1608,8 +1605,7 @@ GLOBAL_LIST_EMPTY(roundstart_races)
var/armor_block = H.run_armor_check(affecting, "melee", I.armour_penetration, FALSE, "Your armor has protected your [hit_area]!", "Your armor has softened a hit to your [hit_area]!")
armor_block = min(90,armor_block) //cap damage reduction at 90%
- var/weakness = H.check_weakness(I, user)
- apply_damage(I.force * weakness, I.damtype, def_zone, armor_block, H)
+ apply_damage(I.force, I.damtype, def_zone, armor_block, H)
H.send_item_attack_message(I, user, hit_area)
diff --git a/code/modules/mob/living/carbon/human/species_types/ethereal.dm b/code/modules/mob/living/carbon/human/species_types/ethereal.dm
index 6aa59e824169..12b824f5eac4 100644
--- a/code/modules/mob/living/carbon/human/species_types/ethereal.dm
+++ b/code/modules/mob/living/carbon/human/species_types/ethereal.dm
@@ -46,7 +46,6 @@
var/current_color
var/EMPeffect = FALSE
- var/emag_effect = FALSE
var/static/unhealthy_color = rgb(237, 164, 149)
loreblurb = "Elzuosa are an uncommon and unusual species best described as crystalline, electrically-powered plantpeople. They hail from the warm planet Kalixcis, where they evolved alongside the Sarathi. Kalixcian culture places no importance on blood-bonds, and those from it tend to consider their family anyone they are sufficiently close to, and choose their own names."
var/drain_time = 0 //used to keep ethereals from spam draining power sources
@@ -64,7 +63,6 @@
return
var/mob/living/carbon/human/ethereal = _carbon
default_color = "#[ethereal.dna.features["ethcolor"]]"
- RegisterSignal(ethereal, COMSIG_ATOM_EMAG_ACT, PROC_REF(on_emag_act))
RegisterSignal(ethereal, COMSIG_ATOM_EMP_ACT, PROC_REF(on_emp_act))
ethereal_light = ethereal.mob_light()
spec_updatehealth(ethereal)
@@ -80,7 +78,6 @@
BP.update_limb(is_creating = TRUE)
/datum/species/elzuose/on_species_loss(mob/living/carbon/human/_carbon, datum/species/new_species, pref_load)
- UnregisterSignal(_carbon, COMSIG_ATOM_EMAG_ACT)
UnregisterSignal(_carbon, COMSIG_ATOM_EMP_ACT)
UnregisterSignal(_carbon, COMSIG_DIGOUT)
UnregisterSignal(_carbon, COMSIG_MOVABLE_MOVED)
@@ -180,8 +177,7 @@
return
if(_human.stat != DEAD && !EMPeffect)
- if(!emag_effect)
- current_color = health_adjusted_color(_human, default_color)
+ current_color = health_adjusted_color(_human, default_color)
set_ethereal_light(_human, current_color)
ethereal_light.set_light_on(TRUE)
fixed_mut_color = copytext_char(current_color, 2)
@@ -235,16 +231,6 @@
if(EMP_HEAVY)
addtimer(CALLBACK(src, PROC_REF(stop_emp), _human), 20 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) //We're out for 20 seconds
-/datum/species/elzuose/proc/on_emag_act(mob/living/carbon/human/_human, mob/user)
- if(emag_effect)
- return
- emag_effect = TRUE
- if(user)
- to_chat(user, span_notice("You tap [_human] on the back with your card."))
- _human.visible_message(span_danger("[_human] starts flickering in an array of colors!"))
- handle_emag(_human)
- addtimer(CALLBACK(src, PROC_REF(stop_emag), _human), 30 SECONDS) //Disco mode for 30 seconds! This doesn't affect the ethereal at all besides either annoying some players, or making someone look badass.
-
/datum/species/elzuose/spec_life(mob/living/carbon/human/_human)
.=..()
handle_charge(_human)
@@ -254,18 +240,6 @@
spec_updatehealth(_human)
to_chat(_human, span_notice("You feel more energized as your shine comes back."))
-/datum/species/elzuose/proc/handle_emag(mob/living/carbon/human/_human)
- if(!emag_effect)
- return
- current_color = pick(ELZUOSE_EMAG_COLORS)
- spec_updatehealth(_human)
- addtimer(CALLBACK(src, PROC_REF(handle_emag), _human), 5) //Call ourselves every 0.5 seconds to change color
-
-/datum/species/elzuose/proc/stop_emag(mob/living/carbon/human/_human)
- emag_effect = FALSE
- spec_updatehealth(_human)
- _human.visible_message(span_danger("[_human] stops flickering and goes back to their normal state!"))
-
/datum/species/elzuose/proc/handle_charge(mob/living/carbon/human/_human)
brutemod = 1.25
switch(get_charge(_human))
@@ -320,34 +294,3 @@
if(istype(stomach))
return stomach.crystal_charge
return ELZUOSE_CHARGE_NONE
-
-/datum/species/elzuose/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/_human)
- if(istype(I, /obj/item/multitool))
- if(user.a_intent == INTENT_HARM)
- . = ..() // multitool beatdown
- return
-
- if (emag_effect == TRUE)
- to_chat(user, span_warning("The multitool can't get a lock on [_human]'s EM frequency!"))
- return
-
- if(user != _human)
- // random color change
- default_color = "#" + GLOB.color_list_ethereal[pick(GLOB.color_list_ethereal)]
- current_color = health_adjusted_color(_human, default_color)
- spec_updatehealth(_human)
- _human.visible_message(span_danger("[_human]'s EM frequency is scrambled to a random color."))
- else
- // select new color
- var/new_etherealcolor = input(user, "Choose your Elzuose color:", "Character Preference",default_color) as color|null
- if(new_etherealcolor)
- var/temp_hsv = RGBtoHSV(new_etherealcolor)
- if(ReadHSV(temp_hsv)[3] >= ReadHSV("#505050")[3]) // elzu colors should be bright ok??
- default_color = sanitize_hexcolor(new_etherealcolor, 6, TRUE)
- current_color = health_adjusted_color(_human, default_color)
- spec_updatehealth(_human)
- _human.visible_message(span_notice("[_human] modulates [_human.p_their()] EM frequency to [new_etherealcolor]"))
- else
- to_chat(user, span_danger("Invalid color. Your color is not bright enough."))
- else
- . = ..()
diff --git a/code/modules/mob/living/carbon/human/species_types/flypeople.dm b/code/modules/mob/living/carbon/human/species_types/flypeople.dm
index af19f1316ce2..f5de9f873b3b 100644
--- a/code/modules/mob/living/carbon/human/species_types/flypeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/flypeople.dm
@@ -35,7 +35,3 @@
"You throw up on the floor!")
return ..()
-/datum/species/fly/check_species_weakness(obj/item/weapon, mob/living/attacker)
- if(istype(weapon, /obj/item/melee/flyswatter))
- return 29 //Flyswatters deal 30x damage to flypeople.
- return 0
diff --git a/code/modules/mob/living/carbon/human/species_types/mothmen.dm b/code/modules/mob/living/carbon/human/species_types/mothmen.dm
index b20b27efc928..91169299afba 100644
--- a/code/modules/mob/living/carbon/human/species_types/mothmen.dm
+++ b/code/modules/mob/living/carbon/human/species_types/mothmen.dm
@@ -73,11 +73,6 @@
H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM)
return ..()
-/datum/species/moth/check_species_weakness(obj/item/weapon, mob/living/attacker)
- if(istype(weapon, /obj/item/melee/flyswatter))
- return 9 //flyswatters deal 10x damage to moths
- return 0
-
/datum/species/space_move(mob/living/carbon/human/H)
. = ..()
if(H.loc && !isspaceturf(H.loc) && H.getorganslot(ORGAN_SLOT_WINGS) && !flying_species) //"flying_species" is exclusive to the potion of flight, which has its flying mechanics. If they want to fly they can use that instead
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 847d6ad74f3f..9c0f58dc8312 100644
--- a/code/modules/mob/living/carbon/human/species_types/spider.dm
+++ b/code/modules/mob/living/carbon/human/species_types/spider.dm
@@ -97,11 +97,6 @@ GLOBAL_LIST_INIT(spider_last, world.file2list("strings/names/spider_last.txt"))
H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM)
return ..()
-/datum/species/spider/check_species_weakness(obj/item/weapon, mob/living/attacker)
- if(istype(weapon, /obj/item/melee/flyswatter))
- return 9 //flyswatters deal 10x damage to spiders
- return 0
-
/mob/living/carbon/human/species/spider
race = /datum/species/spider
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 070894a92bee..5caf871a7f23 100644
--- a/code/modules/mob/living/carbon/human/species_types/vampire.dm
+++ b/code/modules/mob/living/carbon/human/species_types/vampire.dm
@@ -53,11 +53,6 @@
C.adjust_fire_stacks(6)
C.IgniteMob()
-/datum/species/vampire/check_species_weakness(obj/item/weapon, mob/living/attacker)
- if(istype(weapon, /obj/item/nullrod/whip))
- return 1 //Whips deal 2x damage to vampires. Vampire killer.
- return 0
-
/obj/item/organ/tongue/vampire
name = "vampire tongue"
actions_types = list(/datum/action/item_action/organ_action/vampire)
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index b240836b55e7..4e220fd18cff 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -1144,15 +1144,6 @@
devilInfo.remove_soul(mind)
mind.soulOwner = mind
-/mob/living/proc/has_bane(banetype)
- var/datum/antagonist/devil/devilInfo = is_devil(src)
- return devilInfo && banetype == devilInfo.bane
-
-/mob/living/proc/check_weakness(obj/item/weapon, mob/living/attacker)
- if(mind && mind.has_antag_datum(/datum/antagonist/devil))
- return check_devil_bane_multiplier(weapon, attacker)
- return 1 //This is not a boolean, it's the multiplier for the damage the weapon does.
-
/mob/living/proc/check_acedia()
if(mind && mind.has_objective(/datum/objective/sintouched/acedia))
return TRUE
diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm
index 86c85d27360a..977cb220568e 100644
--- a/code/modules/mob/living/living_defense.dm
+++ b/code/modules/mob/living/living_defense.dm
@@ -101,6 +101,9 @@
return 1
else
playsound(loc, 'sound/weapons/genhit.ogg', 50, TRUE, -1) //Item sounds are handled in the item itself
+
+ if(body_position == LYING_DOWN) // physics says it's significantly harder to push someone by constantly chucking random furniture at them if they are down on the floor.
+ hitpush = FALSE
..()
diff --git a/code/modules/mob/living/simple_animal/corpse.dm b/code/modules/mob/living/simple_animal/corpse.dm
index aa49c6e52b59..a1b10b897db6 100644
--- a/code/modules/mob/living/simple_animal/corpse.dm
+++ b/code/modules/mob/living/simple_animal/corpse.dm
@@ -47,14 +47,14 @@
id = /obj/item/card/id/syndicate
/obj/effect/mob_spawn/human/corpse/syndicateramzi
- name = "Ramzi's Clique Commando"
+ name = "Ramzi Clique Commando"
id_job = "Cutthroat"
hairstyle = "Bald"
facial_hairstyle = "Shaved"
outfit = /datum/outfit/syndicateramzicorpse
/datum/outfit/syndicateramzicorpse
- name = "Ramzi's Clique Commando Corpse"
+ name = "Ramzi Clique Commando Corpse"
uniform = /obj/item/clothing/under/syndicate/gorlex
suit = /obj/item/clothing/suit/space/hardsuit/syndi/ramzi
shoes = /obj/item/clothing/shoes/combat
diff --git a/code/modules/mob/living/simple_animal/friendly/mothroach.dm b/code/modules/mob/living/simple_animal/friendly/mothroach.dm
index 2002ef3b5d8d..881e64d2a70f 100644
--- a/code/modules/mob/living/simple_animal/friendly/mothroach.dm
+++ b/code/modules/mob/living/simple_animal/friendly/mothroach.dm
@@ -64,8 +64,3 @@
qdel(I) // this sucks
else
return ..()
-
-/mob/living/simple_animal/pet/mothroach/check_weakness(obj/item/weapon, mob/living/attacker)
- if(istype(weapon, /obj/item/melee/flyswatter))
- return 9 // flyswatters deal 10x damage to mothroaches
- return 0
diff --git a/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm b/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm
deleted file mode 100644
index 57d6f2fc325f..000000000000
--- a/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm
+++ /dev/null
@@ -1,171 +0,0 @@
-//Paper Wizard Boss
-/mob/living/simple_animal/hostile/boss/paper_wizard
- name = "Mjor the Creative"
- desc = "A wizard with a taste for the arts."
- mob_biotypes = MOB_HUMANOID
- boss_abilities = list(/datum/action/boss/wizard_summon_minions, /datum/action/boss/wizard_mimic)
- faction = list("hostile","stickman")
- del_on_death = TRUE
- icon = 'icons/mob/simple_human.dmi'
- icon_state = "paperwizard"
- ranged = 1
- environment_smash = ENVIRONMENT_SMASH_NONE
- minimum_distance = 3
- retreat_distance = 3
- obj_damage = 0
- melee_damage_lower = 10
- melee_damage_upper = 20
- health = 1000
- maxHealth = 1000
- loot = list(/obj/effect/temp_visual/paperwiz_dying)
- projectiletype = /obj/projectile/temp
- projectilesound = 'sound/weapons/emitter.ogg'
- attack_sound = 'sound/hallucinations/growl1.ogg'
- var/list/copies = list()
-
- footstep_type = FOOTSTEP_MOB_SHOE
-
-
-//Summon Ability
-//Lets the wizard summon his art to fight for him
-/datum/action/boss/wizard_summon_minions
- name = "Summon Minions"
- icon_icon = 'icons/mob/actions/actions_minor_antag.dmi'
- button_icon_state = "art_summon"
- usage_probability = 40
- boss_cost = 30
- boss_type = /mob/living/simple_animal/hostile/boss/paper_wizard
- needs_target = FALSE
- say_when_triggered = "Rise, my creations! Jump off your pages and into this realm!"
- var/static/summoned_minions = 0
-
-/datum/action/boss/wizard_summon_minions/Trigger()
- if(summoned_minions <= 6 && ..())
- var/list/minions = list(
- /mob/living/simple_animal/hostile/stickman,
- /mob/living/simple_animal/hostile/stickman/ranged,
- /mob/living/simple_animal/hostile/stickman/dog)
- var/list/directions = GLOB.cardinals.Copy()
- for(var/i in 1 to 3)
- var/minions_chosen = pick_n_take(minions)
- new minions_chosen (get_step(boss,pick_n_take(directions)), 1)
- summoned_minions += 3;
-
-
-//Mimic Ability
-//Summons mimics of himself with magical papercraft
-//Hitting a decoy hurts nearby people excluding the wizard himself
-//Hitting the wizard himself destroys all decoys
-/datum/action/boss/wizard_mimic
- name = "Craft Mimicry"
- icon_icon = 'icons/mob/actions/actions_minor_antag.dmi'
- button_icon_state = "mimic_summon"
- usage_probability = 30
- boss_cost = 40
- boss_type = /mob/living/simple_animal/hostile/boss/paper_wizard
- say_when_triggered = ""
-
-/datum/action/boss/wizard_mimic/Trigger()
- if(..())
- var/mob/living/target
- if(!boss.client) //AI's target
- target = boss.target
- else //random mob
- var/list/threats = boss.PossibleThreats()
- if(threats.len)
- target = pick(threats)
- if(target)
- var/mob/living/simple_animal/hostile/boss/paper_wizard/wiz = boss
- var/directions = GLOB.cardinals.Copy()
- for(var/i in 1 to 3)
- var/mob/living/simple_animal/hostile/boss/paper_wizard/copy/C = new (get_step(target,pick_n_take(directions)))
- wiz.copies += C
- C.original = wiz
- C.say("My craft defines me, you could even say it IS me!")
- wiz.say("My craft defines me, you could even say it IS me!")
- wiz.forceMove(get_step(target,pick_n_take(directions)))
- wiz.minimum_distance = 1 //so he doesn't run away and ruin everything
- wiz.retreat_distance = 0
- else
- boss.atb.refund(boss_cost)
-
-/mob/living/simple_animal/hostile/boss/paper_wizard/copy
- desc = "'Tis a ruse!"
- health = 1
- maxHealth = 1
- alpha = 200
- boss_abilities = list()
- melee_damage_lower = 1
- melee_damage_upper = 5
- minimum_distance = 0
- retreat_distance = 0
- ranged = 0
- loot = list()
- var/mob/living/simple_animal/hostile/boss/paper_wizard/original
-
-//Hit a fake? eat pain!
-/mob/living/simple_animal/hostile/boss/paper_wizard/copy/adjustHealth(amount, updating_health = TRUE, forced = FALSE)
- if(amount > 0) //damage
- if(original)
- original.minimum_distance = 3
- original.retreat_distance = 3
- original.copies -= src
- for(var/c in original.copies)
- qdel(c)
- for(var/mob/living/L in range(5,src))
- if(L == original || istype(L, type))
- continue
- L.adjustBruteLoss(50)
- qdel(src)
- else
- . = ..()
-
-//Hit the real guy? copies go bai-bai
-/mob/living/simple_animal/hostile/boss/paper_wizard/adjustHealth(amount, updating_health = TRUE, forced = FALSE)
- . = ..()
- if(. > 0)//damage
- minimum_distance = 3
- retreat_distance = 3
- for(var/copy in copies)
- qdel(copy)
-
-/mob/living/simple_animal/hostile/boss/paper_wizard/copy/examine(mob/user)
- . = ..()
- qdel(src) //I see through your ruse!
-
-//fancy effects
-/obj/effect/temp_visual/paper_scatter
- name = "scattering paper"
- desc = "Pieces of paper scattering to the wind."
- layer = ABOVE_OPEN_TURF_LAYER
- icon = 'icons/effects/effects.dmi'
- icon_state = "paper_scatter"
- anchored = TRUE
- duration = 5
- randomdir = FALSE
-
-/obj/effect/temp_visual/paperwiz_dying
- name = "craft portal"
- desc = "A wormhole sucking the wizard into the void. Neat."
- layer = ABOVE_OPEN_TURF_LAYER
- icon = 'icons/effects/effects.dmi'
- icon_state = "paperwiz_poof"
- anchored = TRUE
- duration = 18
- randomdir = FALSE
-
-/obj/effect/temp_visual/paperwiz_dying/Initialize()
- . = ..()
- visible_message("The wizard cries out in pain as a gate appears behind him, sucking him in!")
- playsound(get_turf(src),'sound/magic/mandswap.ogg', 50, TRUE, TRUE)
- playsound(get_turf(src),'sound/hallucinations/wail.ogg', 50, TRUE, TRUE)
-
-/obj/effect/temp_visual/paperwiz_dying/Destroy()
- for(var/mob/M in range(7,src))
- shake_camera(M, 7, 1)
- var/turf/T = get_turf(src)
- playsound(T,'sound/magic/summon_magic.ogg', 50, TRUE, TRUE)
- new /obj/effect/temp_visual/paper_scatter(T)
- new /obj/item/clothing/suit/wizrobe/paper(T)
- new /obj/item/clothing/head/collectable/paper(T)
- return ..()
diff --git a/code/modules/mob/living/simple_animal/hostile/dark_wizard.dm b/code/modules/mob/living/simple_animal/hostile/dark_wizard.dm
deleted file mode 100644
index 5c3e60c8377b..000000000000
--- a/code/modules/mob/living/simple_animal/hostile/dark_wizard.dm
+++ /dev/null
@@ -1,41 +0,0 @@
-/mob/living/simple_animal/hostile/dark_wizard
- name = "Dark Wizard"
- desc = "Killing amateurs since the dawn of times."
- icon = 'icons/mob/simple_human.dmi'
- icon_state = "dark_wizard"
- icon_living = "dark_wizard"
- move_to_delay = 10
- projectiletype = /obj/projectile/temp/earth_bolt
- projectilesound = 'sound/magic/ethereal_enter.ogg'
- ranged = TRUE
- ranged_message = "earth bolts"
- ranged_cooldown_time = 20
- maxHealth = 50
- health = 50
- harm_intent_damage = 5
- obj_damage = 20
- melee_damage_lower = 5
- melee_damage_upper = 5
- attack_verb_continuous = "staves"
- a_intent = INTENT_HARM
- speak_emote = list("chants")
- attack_sound = 'sound/weapons/bladeslice.ogg'
- aggro_vision_range = 9
- turns_per_move = 5
- gold_core_spawnable = HOSTILE_SPAWN
- faction = list(ROLE_WIZARD)
- footstep_type = FOOTSTEP_MOB_SHOE
- weather_immunities = list("lava","ash")
- minbodytemp = 0
- maxbodytemp = INFINITY
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
- loot = list(/obj/effect/decal/remains/human)
- del_on_death = TRUE
-
-/obj/projectile/temp/earth_bolt
- name = "earth bolt"
- icon_state = "declone"
- damage = 4
- damage_type = BURN
- flag = "energy"
- temperature = -100 // closer to the old temp loss
diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm
index 526763e875b7..70ce3f665bab 100644
--- a/code/modules/mob/living/simple_animal/hostile/hostile.dm
+++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm
@@ -30,7 +30,7 @@
var/ranged_cooldown = 0 //What the current cooldown on ranged attacks is, generally world.time + ranged_cooldown_time
var/ranged_cooldown_time = 30 //How long, in deciseconds, the cooldown of ranged attacks is
var/ranged_ignores_vision = FALSE //if it'll fire ranged attacks even if it lacks vision on its target, only works with environment smash
- var/check_friendly_fire = 0 // Should the ranged mob check for friendlies when shooting
+ var/check_friendly_fire = FALSE // Should the ranged mob check for friendlies when shooting
var/retreat_distance = null //If our mob runs from players when they're too close, set in tile distance. By default, mobs do not retreat.
var/minimum_distance = 1 //Minimum approach distance, so ranged mobs chase targets down, but still keep their distance set in tiles to the target, set higher to make mobs keep distance
diff --git a/code/modules/mob/living/simple_animal/hostile/cat_butcher.dm b/code/modules/mob/living/simple_animal/hostile/human/cat_butcher.dm
similarity index 88%
rename from code/modules/mob/living/simple_animal/hostile/cat_butcher.dm
rename to code/modules/mob/living/simple_animal/hostile/human/cat_butcher.dm
index 8da384aaca4b..0e265fc3b531 100644
--- a/code/modules/mob/living/simple_animal/hostile/cat_butcher.dm
+++ b/code/modules/mob/living/simple_animal/hostile/human/cat_butcher.dm
@@ -1,41 +1,27 @@
-/mob/living/simple_animal/hostile/cat_butcherer
+/mob/living/simple_animal/hostile/human/cat_butcherer
name = "Cat Surgeon"
desc = "Feline genemod physiological modification surgery is outlawed in Nanotrasen-controlled sectors. This doctor doesn't seem to care, and thus, is wanted for several warcrimes."
- icon = 'icons/mob/simple_human.dmi'
icon_state = "cat_butcher"
icon_living = "cat_butcher"
- icon_dead = "syndicate_dead"
- icon_gib = "syndicate_gib"
projectiletype = /obj/projectile/bullet/dart/tranq
projectilesound = 'sound/items/syringeproj.ogg'
- ranged = 1
+ ranged = TRUE
ranged_message = "fires the syringe gun at"
ranged_cooldown_time = 30
speak_chance = 0
- turns_per_move = 5
- speed = 0
stat_attack = HARD_CRIT
- robust_searching = 1
- maxHealth = 100
- health = 100
- harm_intent_damage = 5
melee_damage_lower = 15
melee_damage_upper = 15
attack_verb_continuous = "slashes at"
attack_verb_simple = "slash at"
attack_sound = 'sound/weapons/circsawhit.ogg'
- a_intent = INTENT_HARM
- mob_biotypes = MOB_ORGANIC|MOB_HUMANOID
loot = list(/obj/effect/mob_spawn/human/corpse/cat_butcher, /obj/item/circular_saw, /obj/item/gun/syringe)
atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0)
- unsuitable_atmos_damage = 15
faction = list("hostile")
- check_friendly_fire = 1
- status_flags = CANPUSH
- del_on_death = 1
+ check_friendly_fire = TRUE
var/impatience = 0
-/mob/living/simple_animal/hostile/cat_butcherer/CanAttack(atom/the_target)
+/mob/living/simple_animal/hostile/human/cat_butcherer/CanAttack(atom/the_target)
if(iscarbon(target))
var/mob/living/carbon/human/C = target
if(C.getorgan(/obj/item/organ/ears/cat) && C.getorgan(/obj/item/organ/tail/cat) && C.has_trauma_type(/datum/brain_trauma/severe/pacifism))//he wont attack his creations
@@ -45,7 +31,7 @@
return FALSE
return ..()
-/mob/living/simple_animal/hostile/cat_butcherer/AttackingTarget()
+/mob/living/simple_animal/hostile/human/cat_butcherer/AttackingTarget()
if(iscarbon(target))
var/mob/living/carbon/human/L = target
if(!L.getorgan(/obj/item/organ/ears/cat) && L.stat >= UNCONSCIOUS) //target doesnt have cat ears
diff --git a/code/modules/mob/living/simple_animal/hostile/frontiersman.dm b/code/modules/mob/living/simple_animal/hostile/human/frontiersman.dm
similarity index 70%
rename from code/modules/mob/living/simple_animal/hostile/frontiersman.dm
rename to code/modules/mob/living/simple_animal/hostile/human/frontiersman.dm
index 213cd8c2b822..040b6b26ae2a 100644
--- a/code/modules/mob/living/simple_animal/hostile/frontiersman.dm
+++ b/code/modules/mob/living/simple_animal/hostile/human/frontiersman.dm
@@ -1,36 +1,18 @@
-/mob/living/simple_animal/hostile/frontier
+/mob/living/simple_animal/hostile/human/frontier
name = "Frontiersman"
desc = "A frontiersman! A terrorist that would probably kill everyone without mercy."
- icon = 'icons/mob/simple_human.dmi'
icon_state = "frontiersmanmelee"
icon_living = "frontiersmanmelee"
icon_dead = "frontiersmanmelee_dead"
- icon_gib = "syndicate_gib"
- mob_biotypes = MOB_ORGANIC|MOB_HUMANOID
speak_chance = 0
- turns_per_move = 5
- speed = 0
- maxHealth = 100
- health = 100
- harm_intent_damage = 5
melee_damage_lower = 15
melee_damage_upper = 15
- attack_verb_continuous = "punches"
- attack_verb_simple = "punch"
- attack_sound = 'sound/weapons/punch1.ogg'
- a_intent = INTENT_HARM
loot = list(/obj/effect/mob_spawn/human/corpse/frontier,
/obj/item/kitchen/knife)
atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0)
- unsuitable_atmos_damage = 15
faction = list(FACTION_ANTAG_FRONTIERSMEN)
- status_flags = CANPUSH
- del_on_death = 1
- footstep_type = FOOTSTEP_MOB_SHOE
-
-
-/mob/living/simple_animal/hostile/frontier/ranged
+/mob/living/simple_animal/hostile/human/frontier/ranged
icon_state = "frontiersmanranged"
icon_living = "frontiersmanranged"
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged,
@@ -41,10 +23,10 @@
projectilesound = 'sound/weapons/gun/revolver/shot.ogg'
casingtype = /obj/item/ammo_casing/a357
-/mob/living/simple_animal/hostile/frontier/ranged/neutered
+/mob/living/simple_animal/hostile/human/frontier/ranged/neutered
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged)
-/mob/living/simple_animal/hostile/frontier/ranged/mosin
+/mob/living/simple_animal/hostile/human/frontier/ranged/mosin
icon_state = "frontiersmanrangedrifle"
icon_living = "frontiersmanrangedrifle"
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged,
@@ -52,10 +34,10 @@
casingtype = /obj/item/ammo_casing/a8_50r
projectilesound = 'sound/weapons/gun/rifle/mosin.ogg'
-/mob/living/simple_animal/hostile/frontier/ranged/mosin/neutered
+/mob/living/simple_animal/hostile/human/frontier/ranged/mosin/neutered
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged)
-/mob/living/simple_animal/hostile/frontier/ranged/trooper
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper
icon_state = "frontiersmanrangedelite"
icon_living = "frontiersmanrangedelite"
maxHealth = 170
@@ -65,10 +47,10 @@
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper,
/obj/item/gun/ballistic/shotgun/brimstone)
-/mob/living/simple_animal/hostile/frontier/ranged/trooper/neutered
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/neutered
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper)
-/mob/living/simple_animal/hostile/frontier/ranged/trooper/skm
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/skm
icon_state = "frontiersmanrangedak47"
icon_living = "frontiersmanrangedak47"
projectilesound = 'sound/weapons/gun/rifle/skm.ogg'
@@ -78,10 +60,10 @@
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper,
/obj/item/gun/ballistic/automatic/assault/skm)
-/mob/living/simple_animal/hostile/frontier/ranged/trooper/skm/neutured
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/skm/neutured
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper)
-/mob/living/simple_animal/hostile/frontier/ranged/trooper/rifle
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/rifle
icon_state = "frontiersmanrangedmosin"
icon_living = "frontiersmanrangedmosin"
@@ -90,10 +72,10 @@
casingtype = /obj/item/ammo_casing/a8_50r
projectilesound = 'sound/weapons/gun/rifle/mosin.ogg'
-/mob/living/simple_animal/hostile/frontier/ranged/trooper/rifle/neutered
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/rifle/neutered
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper)
-/mob/living/simple_animal/hostile/frontier/ranged/trooper/heavy
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/heavy
icon_state = "frontiersmanrangedminigun"
icon_living = "frontiersmanrangedminigun"
projectilesound = 'sound/weapons/laser4.ogg'
@@ -105,10 +87,10 @@
projectiletype = /obj/projectile/beam/weak/penetrator
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper/heavy)
-/mob/living/simple_animal/hostile/frontier/ranged/trooper/heavy/neutered
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/heavy/neutered
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper/heavy/gunless)
-/mob/living/simple_animal/hostile/frontier/ranged/officer
+/mob/living/simple_animal/hostile/human/frontier/ranged/officer
name = "Frontiersman Officer"
icon_state = "frontiersmanofficer"
icon_living = "frontiersmanofficer"
@@ -119,10 +101,10 @@
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/officer,
/obj/item/gun/ballistic/automatic/pistol/APS)
-/mob/living/simple_animal/hostile/frontier/ranged/officer/neutured
+/mob/living/simple_animal/hostile/human/frontier/ranged/officer/neutured
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/officer)
-/mob/living/simple_animal/hostile/frontier/ranged/officer/Aggro()
+/mob/living/simple_animal/hostile/human/frontier/ranged/officer/Aggro()
..()
summon_backup(15)
say(pick("Help!!", "They're right here!!", "Don't let me die!!"))
diff --git a/code/modules/mob/living/simple_animal/hostile/human/human.dm b/code/modules/mob/living/simple_animal/hostile/human/human.dm
new file mode 100644
index 000000000000..633bd40090e8
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/human/human.dm
@@ -0,0 +1,41 @@
+/mob/living/simple_animal/hostile/human
+ name = "crazed human"
+ desc = "A crazed human, they cannot be reasoned with"
+ icon = 'icons/mob/simple_human.dmi'
+ icon_state = "survivor_base"
+ icon_living = "survivor_base"
+ icon_dead = null
+ icon_gib = "syndicate_gib"
+ mob_biotypes = MOB_ORGANIC|MOB_HUMANOID
+
+ speak_chance = 20
+ speak_emote = list("groans")
+
+ turns_per_move = 5
+ speed = 0
+ maxHealth = 100
+ health = 100
+
+ robust_searching = TRUE
+ harm_intent_damage = 5
+ melee_damage_lower = 10
+ melee_damage_upper = 10
+ attack_verb_continuous = "punches"
+ attack_verb_simple = "punch"
+ attack_sound = 'sound/weapons/punch1.ogg'
+ a_intent = INTENT_HARM
+ response_help_continuous = "pushes"
+ response_help_simple = "push"
+
+ loot = list(/obj/effect/mob_spawn/human/corpse/damaged)
+ del_on_death = TRUE
+
+ atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0)
+ unsuitable_atmos_damage = 15
+ minbodytemp = 180
+ status_flags = CANPUSH
+ del_on_death = TRUE
+
+ footstep_type = FOOTSTEP_MOB_SHOE
+
+ faction = list("hermit")
diff --git a/code/modules/mob/living/simple_animal/hostile/human/nanotrasen.dm b/code/modules/mob/living/simple_animal/hostile/human/nanotrasen.dm
new file mode 100644
index 000000000000..6c1676d202ab
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/human/nanotrasen.dm
@@ -0,0 +1,80 @@
+/mob/living/simple_animal/hostile/human/nanotrasen
+ name = "\improper Nanotrasen Private Security Officer"
+ desc = "An officer part of Nanotrasen's private security force, he seems rather unpleased to meet you."
+ icon_state = "nanotrasen"
+ icon_living = "nanotrasen"
+ speak_chance = 0
+ stat_attack = HARD_CRIT
+ melee_damage_upper = 15
+ loot = list(/obj/effect/mob_spawn/human/corpse/nanotrasensoldier)
+ atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0)
+ faction = list(ROLE_DEATHSQUAD)
+ check_friendly_fire = TRUE
+ dodging = TRUE
+
+/mob/living/simple_animal/hostile/human/nanotrasen/screaming
+ icon_state = "nanotrasen"
+ icon_living = "nanotrasen"
+
+/mob/living/simple_animal/hostile/human/nanotrasen/screaming/Aggro()
+ ..()
+ summon_backup(15)
+ say("411 in progress, requesting backup!")
+
+
+/mob/living/simple_animal/hostile/human/nanotrasen/ranged
+ icon_state = "nanotrasenranged"
+ icon_living = "nanotrasenranged"
+ ranged = 1
+ retreat_distance = 3
+ minimum_distance = 5
+ casingtype = /obj/item/ammo_casing/c45
+ projectilesound = 'sound/weapons/gun/pistol/shot_alt.ogg'
+
+
+/mob/living/simple_animal/hostile/human/nanotrasen/ranged/smg
+ icon_state = "nanotrasenrangedsmg"
+ icon_living = "nanotrasenrangedsmg"
+ rapid = 3
+ casingtype = /obj/item/ammo_casing/c46x30mm
+ projectilesound = 'sound/weapons/gun/smg/shot.ogg'
+
+/mob/living/simple_animal/hostile/human/nanotrasen/ranged/assault
+ name = "Nanotrasen Assault Officer"
+ desc = "A Nanotrasen Assault Officer. Prepare to die, if you've been found near Syndicate property."
+ icon_state = "nanotrasenrangedassault"
+ icon_living = "nanotrasenrangedassault"
+ icon_dead = null
+ icon_gib = "syndicate_gib"
+ ranged = TRUE
+ rapid = 4
+ rapid_fire_delay = 1
+ rapid_melee = 1
+ retreat_distance = 2
+ minimum_distance = 4
+ casingtype = /obj/item/ammo_casing/c46x30mm
+ projectilesound = 'sound/weapons/gun/general/heavy_shot_suppressed.ogg'
+ loot = list(/obj/effect/mob_spawn/human/corpse/nanotrasenassaultsoldier)
+
+/mob/living/simple_animal/hostile/human/nanotrasen/elite
+ name = "Nanotrasen Elite Assault Officer"
+ desc = "Pray for your life, syndicate. Run while you can."
+ icon = 'icons/mob/simple_human.dmi'
+ icon_state = "nanotrasen_ert"
+ icon_living = "nanotrasen_ert"
+ maxHealth = 150
+ health = 150
+ melee_damage_lower = 13
+ melee_damage_upper = 18
+ ranged = TRUE
+ rapid = 3
+ rapid_fire_delay = 5
+ rapid_melee = 3
+ retreat_distance = 0
+ minimum_distance = 1
+ atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ minbodytemp = 0
+ projectiletype = /obj/projectile/beam/laser
+ projectilesound = 'sound/weapons/laser.ogg'
+ loot = list(/obj/effect/gibspawner/human)
+ faction = list(ROLE_DEATHSQUAD)
diff --git a/code/modules/mob/living/simple_animal/hostile/pirate.dm b/code/modules/mob/living/simple_animal/hostile/human/pirate.dm
similarity index 67%
rename from code/modules/mob/living/simple_animal/hostile/pirate.dm
rename to code/modules/mob/living/simple_animal/hostile/human/pirate.dm
index b0bc7941fd69..df10cfa6a2b4 100644
--- a/code/modules/mob/living/simple_animal/hostile/pirate.dm
+++ b/code/modules/mob/living/simple_animal/hostile/human/pirate.dm
@@ -1,35 +1,17 @@
-/mob/living/simple_animal/hostile/pirate
+/mob/living/simple_animal/hostile/human/pirate
name = "Pirate"
desc = "Does what he wants cause a pirate is free."
- icon = 'icons/mob/simple_human.dmi'
icon_state = "piratemelee"
icon_living = "piratemelee"
icon_dead = "pirate_dead"
- mob_biotypes = MOB_ORGANIC|MOB_HUMANOID
speak_chance = 0
- turns_per_move = 5
- response_help_continuous = "pushes"
- response_help_simple = "push"
- speed = 0
- maxHealth = 100
- health = 100
- harm_intent_damage = 5
- melee_damage_lower = 10
- melee_damage_upper = 10
- attack_verb_continuous = "punches"
- attack_verb_simple = "punch"
- attack_sound = 'sound/weapons/punch1.ogg'
- a_intent = INTENT_HARM
atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0)
- unsuitable_atmos_damage = 15
speak_emote = list("yarrs")
loot = list(/obj/effect/mob_spawn/human/corpse/pirate,
/obj/item/melee/transforming/energy/sword/saber/pirate)
- del_on_death = 1
faction = list("pirate")
-
-/mob/living/simple_animal/hostile/pirate/melee
+/mob/living/simple_animal/hostile/human/pirate/melee
name = "Pirate Swashbuckler"
icon_state = "piratemelee"
icon_living = "piratemelee"
@@ -44,7 +26,7 @@
footstep_type = FOOTSTEP_MOB_SHOE
-/mob/living/simple_animal/hostile/pirate/melee/space
+/mob/living/simple_animal/hostile/human/pirate/melee/space
name = "Space Pirate Swashbuckler"
icon_state = "piratespace"
icon_living = "piratespace"
@@ -53,23 +35,23 @@
minbodytemp = 0
speed = 1
-/mob/living/simple_animal/hostile/pirate/melee/space/Initialize()
+/mob/living/simple_animal/hostile/human/pirate/melee/space/Initialize()
. = ..()
ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT)
-/mob/living/simple_animal/hostile/pirate/melee/Initialize()
+/mob/living/simple_animal/hostile/human/pirate/melee/Initialize()
. = ..()
sord = new(src)
-/mob/living/simple_animal/hostile/pirate/melee/Destroy()
+/mob/living/simple_animal/hostile/human/pirate/melee/Destroy()
QDEL_NULL(sord)
return ..()
-/mob/living/simple_animal/hostile/pirate/melee/Initialize()
+/mob/living/simple_animal/hostile/human/pirate/melee/Initialize()
. = ..()
set_light(2)
-/mob/living/simple_animal/hostile/pirate/ranged
+/mob/living/simple_animal/hostile/human/pirate/ranged
name = "Pirate Gunner"
icon_state = "pirateranged"
icon_living = "pirateranged"
@@ -84,7 +66,7 @@
loot = list(/obj/effect/mob_spawn/human/corpse/pirate/ranged,
/obj/item/gun/energy/laser)
-/mob/living/simple_animal/hostile/pirate/ranged/space
+/mob/living/simple_animal/hostile/human/pirate/ranged/space
name = "Space Pirate Gunner"
icon_state = "piratespaceranged"
icon_living = "piratespaceranged"
@@ -93,6 +75,6 @@
minbodytemp = 0
speed = 1
-/mob/living/simple_animal/hostile/pirate/ranged/space/Initialize()
+/mob/living/simple_animal/hostile/human/pirate/ranged/space/Initialize()
. = ..()
ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT)
diff --git a/code/modules/mob/living/simple_animal/hostile/skeleton.dm b/code/modules/mob/living/simple_animal/hostile/human/skeleton.dm
similarity index 87%
rename from code/modules/mob/living/simple_animal/hostile/skeleton.dm
rename to code/modules/mob/living/simple_animal/hostile/human/skeleton.dm
index 978353978e9a..675c6fc99342 100644
--- a/code/modules/mob/living/simple_animal/hostile/skeleton.dm
+++ b/code/modules/mob/living/simple_animal/hostile/human/skeleton.dm
@@ -1,20 +1,16 @@
-/mob/living/simple_animal/hostile/skeleton
+/mob/living/simple_animal/hostile/human/skeleton
name = "reanimated skeleton"
desc = "A real bonefied skeleton, doesn't seem like it wants to socialize."
- icon = 'icons/mob/simple_human.dmi'
icon_state = "skeleton"
icon_living = "skeleton"
icon_dead = "skeleton"
gender = NEUTER
mob_biotypes = MOB_UNDEAD|MOB_HUMANOID
- turns_per_move = 5
speak_emote = list("rattles")
emote_see = list("rattles")
- a_intent = INTENT_HARM
maxHealth = 40
health = 40
speed = 1
- harm_intent_damage = 5
melee_damage_lower = 15
melee_damage_upper = 15
minbodytemp = 0
@@ -25,18 +21,15 @@
attack_sound = 'sound/hallucinations/growl1.ogg'
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
unsuitable_atmos_damage = 10
- robust_searching = 1
stat_attack = HARD_CRIT
faction = list("skeleton")
see_in_dark = 8
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
deathmessage = "collapses into a pile of bones!"
- del_on_death = 1
loot = list(/obj/effect/decal/remains/human)
-
footstep_type = FOOTSTEP_MOB_SHOE
-/mob/living/simple_animal/hostile/skeleton/templar
+/mob/living/simple_animal/hostile/human/skeleton/templar
name = "undead templar"
desc = "The reanimated remains of a holy templar knight."
icon_state = "templar"
@@ -58,7 +51,7 @@
/obj/item/clothing/head/helmet/chaplain,
/obj/item/claymore/weak{name = "holy sword"})
-/mob/living/simple_animal/hostile/skeleton/ice
+/mob/living/simple_animal/hostile/human/skeleton/ice
name = "ice skeleton"
desc = "A reanimated skeleton protected by a thick sheet of natural ice armor. Looks slow, though."
speed = 5
@@ -68,7 +61,7 @@
color = rgb(114,228,250)
loot = list(/obj/effect/decal/remains/human{color = rgb(114,228,250)})
-/mob/living/simple_animal/hostile/skeleton/plasmaminer
+/mob/living/simple_animal/hostile/human/skeleton/plasmaminer
name = "shambling miner"
desc = "A plasma-soaked miner, their exposed limbs turned into a grossly incandescent bone seemingly made of plasma."
icon_state = "plasma_miner"
@@ -86,7 +79,7 @@
deathmessage = "collapses into a pile of bones, their suit dissolving among the plasma!"
loot = list(/obj/effect/decal/remains/plasma)
-/mob/living/simple_animal/hostile/skeleton/plasmaminer/jackhammer
+/mob/living/simple_animal/hostile/human/skeleton/plasmaminer/jackhammer
desc = "A plasma-soaked miner, their exposed limbs turned into a grossly incandescent bone seemingly made of plasma. They seem to still have their mining tool in their hand, gripping tightly."
icon_state = "plasma_miner_tool"
icon_living = "plasma_miner_tool"
@@ -101,6 +94,6 @@
attack_sound = 'sound/weapons/sonic_jackhammer.ogg'
loot = list(/obj/effect/decal/remains/plasma, /obj/item/pickaxe/drill/jackhammer)
-/mob/living/simple_animal/hostile/skeleton/plasmaminer/Initialize()
+/mob/living/simple_animal/hostile/human/skeleton/plasmaminer/Initialize()
. = ..()
set_light(2)
diff --git a/code/modules/mob/living/simple_animal/hostile/survivors.dm b/code/modules/mob/living/simple_animal/hostile/human/survivors.dm
similarity index 53%
rename from code/modules/mob/living/simple_animal/hostile/survivors.dm
rename to code/modules/mob/living/simple_animal/hostile/human/survivors.dm
index d5759431d65a..4f8c758068ce 100644
--- a/code/modules/mob/living/simple_animal/hostile/survivors.dm
+++ b/code/modules/mob/living/simple_animal/hostile/human/survivors.dm
@@ -1,38 +1,14 @@
-/mob/living/simple_animal/hostile/asteroid/whitesands
+/mob/living/simple_animal/hostile/human/hermit
name = "Whitesands Inhabitant"
desc = "If you can read this, yell at a coder!"
- icon = 'icons/mob/simple_human.dmi'
icon_state = "survivor_base"
icon_living = "survivor_base"
- icon_dead = null
- icon_gib = "syndicate_gib"
- mob_biotypes = MOB_ORGANIC
- minbodytemp = 180
- unsuitable_atmos_damage = 15
atmos_requirements = list("min_oxy" = 1, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 999, "min_n2" = 0, "max_n2" = 0)
- speak_chance = 20
- turns_per_move = 5
- response_help_continuous = "pushes"
- response_help_simple = "push"
- speed = 0
- maxHealth = 100
- health = 100
- harm_intent_damage = 5
- melee_damage_lower = 10
- melee_damage_upper = 10
- attack_verb_continuous = "punches"
- attack_verb_simple = "punch"
- attack_sound = 'sound/weapons/punch1.ogg'
- a_intent = INTENT_HARM
- unsuitable_atmos_damage = 15
- speak_emote = list("groans")
loot = list(
/obj/effect/mob_spawn/human/corpse/damaged/whitesands
)
- del_on_death = 1
- faction = list("hermit")
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor/death(gibbed)
+/mob/living/simple_animal/hostile/human/hermit/survivor/death(gibbed)
move_force = MOVE_FORCE_DEFAULT
move_resist = MOVE_RESIST_DEFAULT
pull_force = PULL_FORCE_DEFAULT
@@ -41,19 +17,23 @@
visible_message("You notice a glimmering nugget of shiny metal.")
..()
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor
+/mob/living/simple_animal/hostile/human/hermit/survivor
name = "Hermit Wanderer"
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."
+ loot = list(
+ /obj/effect/mob_spawn/human/corpse/damaged/whitesands/survivor
+ )
-/mob/living/simple_animal/hostile/asteroid/whitesands/survivor/random/Initialize()
+/mob/living/simple_animal/hostile/human/hermit/survivor/random/Initialize()
. = ..()
if(prob(35))
- new /mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter(loc)
+ new /mob/living/simple_animal/hostile/human/hermit/ranged/hunter(loc)
+ return INITIALIZE_HINT_QDEL
if(prob(10))
- new /mob/living/simple_animal/hostile/asteroid/whitesands/ranged/gunslinger(loc)
+ new /mob/living/simple_animal/hostile/human/hermit/ranged/gunslinger(loc)
return INITIALIZE_HINT_QDEL
-/mob/living/simple_animal/hostile/asteroid/whitesands/ranged
+/mob/living/simple_animal/hostile/human/hermit/ranged
icon_state = "survivor_hunter"
icon_living = "survivor_hunter"
projectiletype = null
@@ -64,14 +44,14 @@
retreat_distance = 5
minimum_distance = 5
-/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter
+/mob/living/simple_animal/hostile/human/hermit/ranged/hunter
name = "Hermit Hunter"
desc ="A wild-eyed figure. Watch out- he has a gun, and he remembers just enough of his old life to use it!"
loot = list(
/obj/effect/mob_spawn/human/corpse/damaged/whitesands/hunter,
)
-/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/gunslinger
+/mob/living/simple_animal/hostile/human/hermit/ranged/gunslinger
name = "Hermit Soldier"
desc = "The miner's rebellion, though mostly underground, recieved a few good weapon shipments from an off-sector source. You should probably start running."
icon_state = "survivor_gunslinger"
@@ -88,102 +68,25 @@
//survivor corpses
/obj/effect/mob_spawn/human/corpse/damaged/whitesands
+ uniform = /obj/item/clothing/under/color/random
+ belt = /obj/item/storage/belt/fannypack
+ shoes = /obj/item/clothing/shoes/workboots/mining
+ suit = /obj/item/clothing/suit/hooded/survivor
+ l_pocket = /obj/item/radio
+ r_pocket = /obj/item/tank/internals/emergency_oxygen/engi
var/survivor_type //room for alternatives inside the fuckoff grade init.
/obj/effect/mob_spawn/human/corpse/damaged/whitesands/Initialize() //everything here should equal out to 100 for the sake of my sanity.
-
mob_species = pickweight(list(
/datum/species/human = 50,
- /datum/species/lizard = 25,
+ /datum/species/lizard = 20,
+ /datum/species/ipc = 10,
/datum/species/elzuose = 10,
- /datum/species/moth = 10,
- /datum/species/spider = 3,
- /datum/species/fly = 2
- )
+ /datum/species/moth = 5,
+ /datum/species/spider = 5
)
+ )
//to-do: learn how to make mobsprites for other survivors
- //uniforms are random to show varied backgrounds, but similar goal
- if(survivor_type == "survivor")
- uniform = pickweight(list(
- /obj/item/clothing/under/color/random = 65,
- /obj/item/clothing/under/rank/cargo/miner/lavaland = 10,
- /obj/item/clothing/under/rank/prisoner = 10,
- /obj/item/clothing/under/rank/cargo/miner/lavaland/old = 5,
- /obj/item/clothing/under/color/khaki/buster = 5,
- /obj/item/clothing/under/rank/cargo/miner = 5
- )
- )
- else if (survivor_type == "hunter")
- uniform = pickweight(list(
- /obj/item/clothing/under/color/random = 50,
- /obj/item/clothing/under/rank/cargo/miner/lavaland = 25,
- /obj/item/clothing/under/rank/cargo/miner/lavaland/old = 15,
- /obj/item/clothing/under/rank/security/officer/camo = 5,
- /obj/item/clothing/under/utility = 5
- )
- )
- else if (survivor_type == "gunslinger")
- uniform = pickweight(list(
- /obj/item/clothing/under/rank/cargo/miner/lavaland = 35,
- /obj/item/clothing/under/color/random = 25,
- /obj/item/clothing/under/rank/cargo/miner/lavaland/old = 15,
- /obj/item/clothing/under/rank/security/officer/camo = 10,
- /obj/item/clothing/under/syndicate/camo = 10,
- /obj/item/clothing/under/syndicate/combat = 5
- )
- )
- else
- uniform = /obj/item/clothing/under/color/random
-
- //storage is semi-randomized, giving some variety
- if(survivor_type == "survivor")
- belt = pickweight(list(
- /obj/item/storage/belt/fannypack = 40,
- /obj/item/storage/belt/mining = 20,
- /obj/item/storage/belt/mining/alt = 15,
- /obj/item/storage/belt/utility = 10,
- /obj/item/storage/belt/bandolier = 9,
- /obj/item/storage/belt/utility/full = 5,
- /obj/item/storage/belt/chameleon= 1,
- )
- )
- else if(survivor_type == "hunter")
- belt = pickweight(list(
- /obj/item/storage/belt/mining = 30,
- /obj/item/storage/belt/fannypack = 20,
- /obj/item/storage/belt/mining/alt = 15,
- /obj/item/storage/belt/mining/primitive = 15,
- /obj/item/storage/belt/bandolier = 10,
- /obj/item/storage/belt/military = 7,
- /obj/item/storage/belt/mining/vendor = 3,
- )
- )
- else if(survivor_type == "gunslinger")
- belt = pickweight(list(
- /obj/item/storage/belt/mining = 30,
- /obj/item/storage/belt/bandolier = 30,
- /obj/item/storage/belt/military = 20,
- /obj/item/storage/belt/fannypack = 15,
- /obj/item/storage/belt/mining/alt = 5,
- /obj/item/storage/belt/mining/primitive = 5
- )
- )
- else
- belt = /obj/item/storage/belt/fannypack
-
- //everyone wears the same suit
- suit = /obj/item/clothing/suit/hooded/survivor
-
- if (survivor_type == "gunslinger")
- if(prob(30))
- shoes = /obj/item/clothing/shoes/combat //but sometimes there are nicer shoes
- else
- shoes = /obj/item/clothing/shoes/workboots/mining
- else
- shoes = /obj/item/clothing/shoes/workboots/mining
-
-
-
//gloves are a tossup
gloves = pickweight(list(
@@ -260,35 +163,6 @@
if(prob(30)) //some pens maybe?
backpack_contents += /obj/item/reagent_containers/hypospray/medipen/survival
- //pockets
- if(survivor_type == "survivor") //could also use fleshing out
- if(prob(30))
- l_pocket = /obj/item/reagent_containers/food/snacks/meat/steak/goliath
- else
- l_pocket = /obj/item/tank/internals/emergency_oxygen/engi
- if (prob(20))
- r_pocket = /obj/item/spacecash/bundle/mediumrand
- else
- r_pocket = null
-
- if(survivor_type == "hunter")
- l_pocket = /obj/item/tank/internals/emergency_oxygen/engi
- if (prob(20))
- r_pocket = /obj/item/reagent_containers/food/snacks/meat/steak/goliath
- else if (prob(60))
- r_pocket = /obj/item/ammo_box/aac_300blk_stripper
- else
- r_pocket = null
-
- if(survivor_type == "gunslinger")
- if(prob(50))
- l_pocket = /obj/item/ammo_box/magazine/skm_545_39
- r_pocket = /obj/item/tank/internals/emergency_oxygen/engi
-
- else
- r_pocket = /obj/item/tank/internals/emergency_oxygen/engi
- l_pocket = /obj/item/radio
-
//masks
mask = pickweight(list(
/obj/item/clothing/mask/gas = 40,
@@ -298,7 +172,7 @@
)
)
- //the eyes are the window into the soul. I don't think these things have souls but whatever.
+ //the eyes are the window into the soul.
if(prob(70))
glasses = pickweight(list(
/obj/item/clothing/glasses/heat = 20,
@@ -307,8 +181,6 @@
/obj/item/clothing/glasses = 20
)
)
- else
- glasses = null
//and of course, ears.
if(prob(1)) //oh my god they can't hear the sandstorm coming they've got airpods in
@@ -319,21 +191,91 @@
/obj/item/radio/headset/alt = 50
)
)
+ //now for the fun stuff
+ switch(survivor_type)
+ if("survivor")
+ //uniforms are random to show varied backgrounds, but similar goal
+ uniform = pickweight(list(
+ /obj/item/clothing/under/color/random = 65,
+ /obj/item/clothing/under/rank/cargo/miner/lavaland = 10,
+ /obj/item/clothing/under/rank/prisoner = 10,
+ /obj/item/clothing/under/rank/cargo/miner/lavaland/old = 5,
+ /obj/item/clothing/under/color/khaki/buster = 5,
+ /obj/item/clothing/under/rank/cargo/miner = 5
+ )
+ )
+ //storage is semi-randomized, giving some variety
+ belt = pickweight(list(
+ /obj/item/storage/belt/fannypack = 40,
+ /obj/item/storage/belt/mining = 20,
+ /obj/item/storage/belt/mining/alt = 15,
+ /obj/item/storage/belt/utility = 10,
+ /obj/item/storage/belt/bandolier = 9,
+ /obj/item/storage/belt/utility/full = 5,
+ /obj/item/storage/belt/chameleon= 1,
+ )
+ )
+ if(prob(30))
+ l_pocket = /obj/item/reagent_containers/food/snacks/meat/steak/goliath
+ if(prob(20))
+ r_pocket = /obj/item/spacecash/bundle/smallrand
+
+ if("hunter")
+ uniform = pickweight(list(
+ /obj/item/clothing/under/color/random = 50,
+ /obj/item/clothing/under/rank/cargo/miner/lavaland = 25,
+ /obj/item/clothing/under/rank/cargo/miner/lavaland/old = 15,
+ /obj/item/clothing/under/rank/security/officer/camo = 5,
+ /obj/item/clothing/under/utility = 5
+ )
+ )
+ belt = pickweight(list(
+ /obj/item/storage/belt/mining = 30,
+ /obj/item/storage/belt/fannypack = 20,
+ /obj/item/storage/belt/mining/alt = 15,
+ /obj/item/storage/belt/mining/primitive = 15,
+ /obj/item/storage/belt/bandolier = 10,
+ /obj/item/storage/belt/military = 7,
+ /obj/item/storage/belt/mining/vendor = 3,
+ )
+ )
+ if(prob(20))
+ l_pocket = /obj/item/reagent_containers/food/snacks/meat/steak/goliath
+ else if(prob(60))
+ l_pocket = /obj/item/ammo_box/aac_300blk_stripper
+ if(prob(20))
+ new /obj/item/gun/ballistic/rifle/polymer(loc)
+ else
+ visible_message(span_warning("The hunter's weapon shatters as they impact the ground!"))
+
+ if("gunslinger")
+ uniform = pickweight(list(
+ /obj/item/clothing/under/rank/cargo/miner/lavaland = 35,
+ /obj/item/clothing/under/color/random = 25,
+ /obj/item/clothing/under/rank/cargo/miner/lavaland/old = 15,
+ /obj/item/clothing/under/rank/security/officer/camo = 10,
+ /obj/item/clothing/under/syndicate/camo = 10,
+ /obj/item/clothing/under/syndicate/combat = 5
+ )
+ )
+ belt = pickweight(list(
+ /obj/item/storage/belt/mining = 30,
+ /obj/item/storage/belt/bandolier = 30,
+ /obj/item/storage/belt/military = 20,
+ /obj/item/storage/belt/fannypack = 15,
+ /obj/item/storage/belt/mining/alt = 5,
+ /obj/item/storage/belt/mining/primitive = 5
+ )
+ )
+ if(prob(30))
+ shoes = /obj/item/clothing/shoes/combat //sometimes there are nicer shoes
+ if(prob(50))
+ l_pocket = /obj/item/ammo_box/magazine/skm_545_39
+ if(prob(20))
+ new /obj/item/gun/ballistic/automatic/smg/skm_carbine(loc)
+ else
+ visible_message(span_warning("The gunslinger's weapon shatters as they impact the ground!"))
- //exosuit bits
- suit_store = null
- if (survivor_type == "hunter")
- if(prob(20))
- new /obj/item/gun/ballistic/rifle/polymer(loc)
- else
- visible_message("The hunter's weapon shatters as they impact the ground!")
- suit_store = null
- if(survivor_type == "gunslinger")
- if(prob(20))
- new /obj/item/gun/ballistic/automatic/smg/skm_carbine(loc)
- else
- visible_message("The gunslinger's weapon shatters as they impact the ground!")
- suit_store = null
. = ..()
diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/human/syndicate.dm
similarity index 62%
rename from code/modules/mob/living/simple_animal/hostile/syndicate.dm
rename to code/modules/mob/living/simple_animal/hostile/human/syndicate.dm
index b98d14128e12..b4769b647aad 100644
--- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm
+++ b/code/modules/mob/living/simple_animal/hostile/human/syndicate.dm
@@ -1,12 +1,3 @@
-/*
- CONTENTS
- LINE 10 - BASE MOB
- LINE 52 - SWORD AND SHIELD
- LINE 164 - GUNS
- LINE 267 - MISC
-*/
-
-
///////////////Base mob////////////
/obj/effect/light_emitter/red_energy_sword //used so there's a combination of both their head light and light coming off the energy sword
set_luminosity = 2
@@ -14,65 +5,48 @@
light_color = COLOR_SOFT_RED
-/mob/living/simple_animal/hostile/syndicate
- name = "Syndicate Operative"
- desc = "Death to Nanotrasen."
- icon = 'icons/mob/simple_human.dmi'
+/mob/living/simple_animal/hostile/human/syndicate
+ name = "Ramzi Clique Operative"
+ desc = "An ex-Syndicate pirate of the Ramzi Clique."
icon_state = "syndicate"
icon_living = "syndicate"
- icon_dead = "syndicate_dead"
- icon_gib = "syndicate_gib"
- mob_biotypes = MOB_ORGANIC|MOB_HUMANOID
speak_chance = 0
- turns_per_move = 5
- speed = 0
stat_attack = HARD_CRIT
- robust_searching = 1
- maxHealth = 100
- health = 100
- harm_intent_damage = 5
- melee_damage_lower = 10
- melee_damage_upper = 10
- attack_verb_continuous = "punches"
- attack_verb_simple = "punch"
- attack_sound = 'sound/weapons/punch1.ogg'
- a_intent = INTENT_HARM
loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier)
atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0)
+ maxbodytemp = 400
unsuitable_atmos_damage = 15
faction = list(FACTION_ANTAG_SYNDICATE)
- check_friendly_fire = 1
- status_flags = CANPUSH
- del_on_death = 1
+ check_friendly_fire = TRUE
dodging = TRUE
rapid_melee = 2
- footstep_type = FOOTSTEP_MOB_SHOE
///////////////Melee////////////
-/mob/living/simple_animal/hostile/syndicate/space
+/mob/living/simple_animal/hostile/human/syndicate/space
icon_state = "syndicate_space"
icon_living = "syndicate_space"
- name = "Syndicate Commando"
+ name = "Ramzi Clique Commando"
maxHealth = 170
health = 170
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 0
+ maxbodytemp = 1000
speed = 1
-/mob/living/simple_animal/hostile/syndicate/space/Initialize()
+/mob/living/simple_animal/hostile/human/syndicate/space/Initialize()
. = ..()
ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT)
set_light(4)
-/mob/living/simple_animal/hostile/syndicate/space/stormtrooper
+/mob/living/simple_animal/hostile/human/syndicate/space/stormtrooper
icon_state = "syndicate_stormtrooper"
icon_living = "syndicate_stormtrooper"
- name = "Syndicate Stormtrooper"
+ name = "Ramzi Clique Assault Trooper"
maxHealth = 250
health = 250
-/mob/living/simple_animal/hostile/syndicate/melee //dude with a knife and no shields
+/mob/living/simple_animal/hostile/human/syndicate/melee //dude with a knife and no shields
melee_damage_lower = 15
melee_damage_upper = 15
icon_state = "syndicate_knife"
@@ -84,31 +58,32 @@
status_flags = 0
var/projectile_deflect_chance = 0
-/mob/living/simple_animal/hostile/syndicate/melee/space
+/mob/living/simple_animal/hostile/human/syndicate/melee/space
icon_state = "syndicate_space_knife"
icon_living = "syndicate_space_knife"
- name = "Syndicate Commando"
+ name = "Ramzi Clique Commando"
maxHealth = 170
health = 170
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 0
+ maxbodytemp = 1000
speed = 1
projectile_deflect_chance = 50
-/mob/living/simple_animal/hostile/syndicate/melee/space/Initialize()
+/mob/living/simple_animal/hostile/human/syndicate/melee/space/Initialize()
. = ..()
ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT)
set_light(4)
-/mob/living/simple_animal/hostile/syndicate/melee/space/stormtrooper
+/mob/living/simple_animal/hostile/human/syndicate/melee/space/stormtrooper
icon_state = "syndicate_stormtrooper_knife"
icon_living = "syndicate_stormtrooper_knife"
- name = "Syndicate Stormtrooper"
+ name = "Ramzi Clique Stormtrooper"
maxHealth = 250
health = 250
projectile_deflect_chance = 50
-/mob/living/simple_animal/hostile/syndicate/melee/sword
+/mob/living/simple_animal/hostile/human/syndicate/melee/sword
melee_damage_lower = 30
melee_damage_upper = 30
icon_state = "syndicate_sword"
@@ -122,52 +97,53 @@
var/obj/effect/light_emitter/red_energy_sword/sord
projectile_deflect_chance = 50
-/mob/living/simple_animal/hostile/syndicate/melee/sword/Initialize()
+/mob/living/simple_animal/hostile/human/syndicate/melee/sword/Initialize()
. = ..()
set_light(2)
-/mob/living/simple_animal/hostile/syndicate/melee/sword/Destroy()
+/mob/living/simple_animal/hostile/human/syndicate/melee/sword/Destroy()
QDEL_NULL(sord)
return ..()
-/mob/living/simple_animal/hostile/syndicate/melee/bullet_act(obj/projectile/Proj)
+/mob/living/simple_animal/hostile/human/syndicate/melee/bullet_act(obj/projectile/Proj)
if(prob(projectile_deflect_chance))
visible_message("[src] blocks [Proj] with its shield!")
return BULLET_ACT_BLOCK
return ..()
-/mob/living/simple_animal/hostile/syndicate/melee/sword/space
+/mob/living/simple_animal/hostile/human/syndicate/melee/sword/space
icon_state = "syndicate_space_sword"
icon_living = "syndicate_space_sword"
- name = "Syndicate Commando"
+ name = "Ramzi Clique Commando"
maxHealth = 170
health = 170
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 0
+ maxbodytemp = 1000
speed = 1
projectile_deflect_chance = 50
-/mob/living/simple_animal/hostile/syndicate/melee/sword/space/Initialize()
+/mob/living/simple_animal/hostile/human/syndicate/melee/sword/space/Initialize()
. = ..()
ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT)
sord = new(src)
set_light(4)
-/mob/living/simple_animal/hostile/syndicate/melee/sword/space/Destroy()
+/mob/living/simple_animal/hostile/human/syndicate/melee/sword/space/Destroy()
QDEL_NULL(sord)
return ..()
-/mob/living/simple_animal/hostile/syndicate/melee/sword/space/stormtrooper
+/mob/living/simple_animal/hostile/human/syndicate/melee/sword/space/stormtrooper
icon_state = "syndicate_stormtrooper_sword"
icon_living = "syndicate_stormtrooper_sword"
- name = "Syndicate Stormtrooper"
+ name = "Ramzi Clique Stormtrooper"
maxHealth = 250
health = 250
projectile_deflect_chance = 50
///////////////Guns////////////
-/mob/living/simple_animal/hostile/syndicate/ranged
+/mob/living/simple_animal/hostile/human/syndicate/ranged
ranged = 1
retreat_distance = 5
minimum_distance = 5
@@ -179,104 +155,107 @@
dodging = FALSE
rapid_melee = 1
-/mob/living/simple_animal/hostile/syndicate/ranged/infiltrator //shuttle loan event
+/mob/living/simple_animal/hostile/human/syndicate/ranged/infiltrator //shuttle loan event
projectilesound = 'sound/weapons/gun/smg/shot_suppressed.ogg'
loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier)
-/mob/living/simple_animal/hostile/syndicate/ranged/space
+/mob/living/simple_animal/hostile/human/syndicate/ranged/space
icon_state = "syndicate_space_pistol"
icon_living = "syndicate_space_pistol"
- name = "Syndicate Commando"
+ name = "Ramzi Clique Commando"
maxHealth = 170
health = 170
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 0
+ maxbodytemp = 1000
speed = 1
-/mob/living/simple_animal/hostile/syndicate/ranged/space/Initialize()
+/mob/living/simple_animal/hostile/human/syndicate/ranged/space/Initialize()
. = ..()
ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT)
set_light(4)
-/mob/living/simple_animal/hostile/syndicate/ranged/space/stormtrooper
+/mob/living/simple_animal/hostile/human/syndicate/ranged/space/stormtrooper
icon_state = "syndicate_stormtrooper_pistol"
icon_living = "syndicate_stormtrooper_pistol"
- name = "Syndicate Stormtrooper"
+ name = "Ramzi Clique Stormtrooper"
maxHealth = 250
health = 250
-/mob/living/simple_animal/hostile/syndicate/ranged/smg
+/mob/living/simple_animal/hostile/human/syndicate/ranged/smg
rapid = 2
icon_state = "syndicate_smg"
icon_living = "syndicate_smg"
casingtype = /obj/item/ammo_casing/c45
projectilesound = 'sound/weapons/gun/smg/shot.ogg'
-/mob/living/simple_animal/hostile/syndicate/ranged/smg/pilot //caravan ambush ruin
- name = "Syndicate Salvage Pilot"
+/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/pilot //caravan ambush ruin
+ name = "Ramzi Clique Salvage Pilot"
loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier)
-/mob/living/simple_animal/hostile/syndicate/ranged/smg/space
+/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space
icon_state = "syndicate_space_smg"
icon_living = "syndicate_space_smg"
- name = "Syndicate Commando"
+ name = "Ramzi Clique Commando"
maxHealth = 170
health = 170
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 0
+ maxbodytemp = 1000
speed = 1
-/mob/living/simple_animal/hostile/syndicate/ranged/smg/space/Initialize()
+/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space/Initialize()
. = ..()
ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT)
set_light(4)
-/mob/living/simple_animal/hostile/syndicate/ranged/smg/space/stormtrooper
+/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space/stormtrooper
icon_state = "syndicate_stormtrooper_smg"
icon_living = "syndicate_stormtrooper_smg"
- name = "Syndicate Stormtrooper"
+ name = "Ramzi Clique Stormtrooper"
maxHealth = 250
health = 250
-/mob/living/simple_animal/hostile/syndicate/ranged/shotgun
+/mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun
rapid = 2
rapid_fire_delay = 6
minimum_distance = 3
icon_state = "syndicate_shotgun"
icon_living = "syndicate_shotgun"
- casingtype = /obj/item/ammo_casing/shotgun/buckshot //buckshot (up to 72.5 brute) fired in a two-round burst
+ casingtype = /obj/item/ammo_casing/shotgun/buckshot //buckshot fired in a two-round burst. This will two-tap unarmored players.
-/mob/living/simple_animal/hostile/syndicate/ranged/shotgun/space
+/mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun/space
icon_state = "syndicate_space_shotgun"
icon_living = "syndicate_space_shotgun"
- name = "Syndicate Commando"
+ name = "Ramzi Clique Commando"
maxHealth = 170
health = 170
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 0
+ maxbodytemp = 1000
speed = 1
-/mob/living/simple_animal/hostile/syndicate/ranged/shotgun/space/Initialize()
+/mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun/space/Initialize()
. = ..()
ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT)
set_light(4)
-/mob/living/simple_animal/hostile/syndicate/ranged/shotgun/space/stormtrooper
+/mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun/space/stormtrooper
icon_state = "syndicate_stormtrooper_shotgun"
icon_living = "syndicate_stormtrooper_shotgun"
- name = "Syndicate Stormtrooper"
+ name = "Ramzi Clique Stormtrooper"
maxHealth = 250
health = 250
///////////////Misc////////////
-/mob/living/simple_animal/hostile/syndicate/civilian
+/mob/living/simple_animal/hostile/human/syndicate/civilian
minimum_distance = 10
retreat_distance = 10
obj_damage = 0
environment_smash = ENVIRONMENT_SMASH_NONE
-/mob/living/simple_animal/hostile/syndicate/civilian/Aggro()
+/mob/living/simple_animal/hostile/human/syndicate/civilian/Aggro()
..()
summon_backup(15)
say("GUARDS!!")
@@ -302,6 +281,7 @@
faction = list(ROLE_SYNDICATE)
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 0
+ maxbodytemp = 1000
mob_size = MOB_SIZE_TINY
movement_type = FLYING
limb_destroyer = 1
@@ -314,32 +294,3 @@
/mob/living/simple_animal/hostile/viscerator/Initialize()
. = ..()
AddComponent(/datum/component/swarming)
-
-/mob/living/simple_animal/hostile/syndicate/melee/sword/space/oldcode
- melee_damage_lower = 20
- melee_damage_upper = 20
- icon = 'icons/mob/simple_human.dmi'
- icon_state = "oldcode_syndicate_csaber"
- icon_living = "oldcode_syndicate_csaber"
- name = "Syndicate Spaceman"
- desc = "Death to IS-Nanotrasen."
- maxHealth = 170
- health = 170
- armour_penetration = 20
- light_color = LIGHT_COLOR_BLUE
- sord = /obj/effect/light_emitter/blue_energy_sword
- projectile_deflect_chance = 10
-
-/mob/living/simple_animal/hostile/syndicate/ranged/space/oldcode
- icon = 'icons/mob/simple_human.dmi'
- icon_state = "oldcode_syndicate_gun"
- icon_living = "oldcode_syndicate_gun"
- name = "Syndicate Spaceman"
- desc = "Death to IS-Nanotrasen."
- maxHealth = 170
- health = 170
-
-/obj/effect/light_emitter/blue_energy_sword
- set_luminosity = 2
- set_cap = 2.5
- light_color = LIGHT_COLOR_BLUE
diff --git a/code/modules/mob/living/simple_animal/hostile/zombie.dm b/code/modules/mob/living/simple_animal/hostile/human/zombie.dm
similarity index 83%
rename from code/modules/mob/living/simple_animal/hostile/zombie.dm
rename to code/modules/mob/living/simple_animal/hostile/human/zombie.dm
index 6f1db7aaf996..7a12465b98bb 100644
--- a/code/modules/mob/living/simple_animal/hostile/zombie.dm
+++ b/code/modules/mob/living/simple_animal/hostile/human/zombie.dm
@@ -1,4 +1,4 @@
-/mob/living/simple_animal/hostile/zombie
+/mob/living/simple_animal/hostile/human/zombie
name = "Shambling Corpse"
desc = "When there is no more room in hell, the dead will walk in outer space."
icon = 'icons/mob/simple_human.dmi'
@@ -19,16 +19,17 @@
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 0
status_flags = CANPUSH
+ loot = list()
del_on_death = 1
var/zombiejob = "Medical Doctor"
var/infection_chance = 0
var/obj/effect/mob_spawn/human/corpse/delayed/corpse
-/mob/living/simple_animal/hostile/zombie/Initialize(mapload)
+/mob/living/simple_animal/hostile/human/zombie/Initialize(mapload)
. = ..()
INVOKE_ASYNC(src, PROC_REF(setup_visuals))
-/mob/living/simple_animal/hostile/zombie/proc/setup_visuals()
+/mob/living/simple_animal/hostile/human/zombie/proc/setup_visuals()
var/datum/preferences/dummy_prefs = new
dummy_prefs.pref_species = new /datum/species/zombie
dummy_prefs.randomise[RANDOM_BODY] = TRUE
@@ -48,17 +49,17 @@
corpse.mob_species = /datum/species/zombie
corpse.mob_name = name
-/mob/living/simple_animal/hostile/zombie/AttackingTarget()
+/mob/living/simple_animal/hostile/human/zombie/AttackingTarget()
. = ..()
if(. && ishuman(target) && prob(infection_chance))
try_to_zombie_infect(target)
-/mob/living/simple_animal/hostile/zombie/drop_loot()
+/mob/living/simple_animal/hostile/human/zombie/drop_loot()
. = ..()
corpse.forceMove(drop_location())
corpse.create()
-/mob/living/simple_animal/hostile/zombie/kudzu
+/mob/living/simple_animal/hostile/human/zombie/kudzu
name = "shambling bramble"
desc = "A shambling mass of vibrant vines and rotting flesh. "
melee_damage_lower = 15
diff --git a/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm b/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm
index cf8a32af157c..2a60b3c52fc2 100644
--- a/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm
@@ -18,7 +18,7 @@ Featuring:
*/
-/mob/living/simple_animal/hostile/syndicate/mecha_pilot
+/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot
name = "Syndicate Mecha Pilot"
desc = "Death to Nanotrasen. This variant comes in MECHA DEATH flavour."
wanted_objects = list()
@@ -36,15 +36,15 @@ Featuring:
var/smoke_chance = 20 //Chance to deploy smoke for crowd control
var/retreat_chance = 40 //Chance to run away
-/mob/living/simple_animal/hostile/syndicate/mecha_pilot/no_mech
+/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/no_mech
spawn_mecha_type = null
search_objects = 2
-/mob/living/simple_animal/hostile/syndicate/mecha_pilot/no_mech/Initialize()
+/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/no_mech/Initialize()
. = ..()
wanted_objects = typecacheof(/obj/mecha/combat, TRUE)
-/mob/living/simple_animal/hostile/syndicate/mecha_pilot/nanotrasen //nanotrasen are syndies! no it's just a weird path.
+/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/nanotrasen //nanotrasen are syndies! no it's just a weird path.
name = "\improper Nanotrasen Mecha Pilot"
desc = "Death to the Syndicate. This variant comes in MECHA DEATH flavour."
icon_living = "nanotrasen"
@@ -52,7 +52,7 @@ Featuring:
faction = list("nanotrasen")
spawn_mecha_type = /obj/mecha/combat/marauder/loaded
-/mob/living/simple_animal/hostile/syndicate/mecha_pilot/no_mech/nanotrasen
+/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/no_mech/nanotrasen
name = "\improper Nanotrasen Mecha Pilot"
desc = "Death to the Syndicate. This variant comes in MECHA DEATH flavour."
icon_living = "nanotrasen"
@@ -60,7 +60,7 @@ Featuring:
faction = list("nanotrasen")
-/mob/living/simple_animal/hostile/syndicate/mecha_pilot/Initialize()
+/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/Initialize()
. = ..()
if(spawn_mecha_type)
var/obj/mecha/M = new spawn_mecha_type (get_turf(src))
@@ -68,7 +68,7 @@ Featuring:
INVOKE_ASYNC(src, PROC_REF(enter_mecha), M)
-/mob/living/simple_animal/hostile/syndicate/mecha_pilot/proc/enter_mecha(obj/mecha/M)
+/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/proc/enter_mecha(obj/mecha/M)
if(!M)
return 0
LoseTarget() //Target was our mecha, so null it out
@@ -93,7 +93,7 @@ Featuring:
mecha.lights_action.Activate()
-/mob/living/simple_animal/hostile/syndicate/mecha_pilot/proc/exit_mecha(obj/mecha/M)
+/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/proc/exit_mecha(obj/mecha/M)
if(!M)
return 0
@@ -116,7 +116,7 @@ Featuring:
walk(M,0)//end any lingering movement loops, to prevent the haunted mecha bug
//Checks if a mecha is valid for theft
-/mob/living/simple_animal/hostile/syndicate/mecha_pilot/proc/is_valid_mecha(obj/mecha/M)
+/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/proc/is_valid_mecha(obj/mecha/M)
if(!M)
return 0
if(M.occupant)
@@ -128,7 +128,7 @@ Featuring:
return 1
-/mob/living/simple_animal/hostile/syndicate/mecha_pilot/proc/mecha_face_target(atom/A)
+/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/proc/mecha_face_target(atom/A)
if(mecha)
var/dirto = get_dir(mecha,A)
if(mecha.dir != dirto) //checking, because otherwise the mecha makes too many turn noises
@@ -136,7 +136,7 @@ Featuring:
-/mob/living/simple_animal/hostile/syndicate/mecha_pilot/proc/mecha_reload()
+/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/proc/mecha_reload()
if(mecha)
for(var/equip in mecha.equipment)
var/obj/item/mecha_parts/mecha_equipment/ME = equip
@@ -144,7 +144,7 @@ Featuring:
ME.rearm()
-/mob/living/simple_animal/hostile/syndicate/mecha_pilot/proc/get_mecha_equip_by_flag(flag = MECHA_RANGED)
+/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/proc/get_mecha_equip_by_flag(flag = MECHA_RANGED)
. = list()
if(mecha)
for(var/equip in mecha.equipment)
@@ -156,7 +156,7 @@ Featuring:
//Pick a ranged weapon/tool
//Fire it
-/mob/living/simple_animal/hostile/syndicate/mecha_pilot/OpenFire(atom/A)
+/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/OpenFire(atom/A)
if(mecha)
mecha_reload()
mecha_face_target(A)
@@ -171,7 +171,7 @@ Featuring:
..()
-/mob/living/simple_animal/hostile/syndicate/mecha_pilot/AttackingTarget()
+/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/AttackingTarget()
if(mecha)
var/list/possible_weapons = get_mecha_equip_by_flag(MECHA_MELEE)
if(possible_weapons.len)
@@ -198,7 +198,7 @@ Featuring:
return target.attack_animal(src)
-/mob/living/simple_animal/hostile/syndicate/mecha_pilot/handle_automated_action()
+/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/handle_automated_action()
if(..())
if(!mecha)
for(var/obj/mecha/combat/C in range(src,vision_range))
@@ -245,12 +245,12 @@ Featuring:
-/mob/living/simple_animal/hostile/syndicate/mecha_pilot/death(gibbed)
+/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/death(gibbed)
if(mecha)
mecha.aimob_exit_mech(src)
..()
-/mob/living/simple_animal/hostile/syndicate/mecha_pilot/gib()
+/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/gib()
if(mecha)
mecha.aimob_exit_mech(src)
..()
@@ -258,7 +258,7 @@ Featuring:
//Yes they actually try and pull this shit
//~simple animals~
-/mob/living/simple_animal/hostile/syndicate/mecha_pilot/CanAttack(atom/the_target)
+/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/CanAttack(atom/the_target)
if(ismecha(the_target))
var/obj/mecha/M = the_target
if(mecha)
@@ -275,19 +275,19 @@ Featuring:
. = ..()
-/mob/living/simple_animal/hostile/syndicate/mecha_pilot/EscapeConfinement()
+/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/EscapeConfinement()
if(mecha && loc == mecha)
return 0
..()
-/mob/living/simple_animal/hostile/syndicate/mecha_pilot/Move(NewLoc,Dir=0,step_x=0,step_y=0)
+/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/Move(NewLoc,Dir=0,step_x=0,step_y=0)
if(mecha && loc == mecha)
return mecha.relaymove(src, Dir)
return ..()
-/mob/living/simple_animal/hostile/syndicate/mecha_pilot/Goto(target, delay, minimum_distance)
+/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/Goto(target, delay, minimum_distance)
if(mecha)
walk_to(mecha, target, minimum_distance, mecha.step_in)
else
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 1cbc7ec58d51..e0c0d8a801ab 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
@@ -403,521 +403,38 @@
/obj/effect/mob_spawn/human/corpse/damaged/legioninfested/Initialize() //in an ideal world, these would generate, the legion would overlay over the corpse, and we'd get cool sprites
mob_species = pickweight(list(
- /datum/species/human = 31,
- /datum/species/lizard = 26,
- /datum/species/elzuose = 24,
- /datum/species/spider = 7,
- /datum/species/ipc = 7,
- /datum/species/jelly = 4,
- /datum/species/fly = 1
+ /datum/species/human = 50,
+ /datum/species/lizard = 20,
+ /datum/species/ipc = 10,
+ /datum/species/elzuose = 10,
+ /datum/species/moth = 5,
+ /datum/species/spider = 5
)
)
var/type = pickweight(list(
- "Miner" = 44,
- "Waldo" = 3,
- "Ashwalker" = 7,
- "Soldier" = 5,
- "Oldminer" = 8,
- "Kobold" = 5,
- "SRM" = 6,
- "Operative" = 5,
- pick("Shadow", "YeOlde") = 4
+ "Miner" = 40,
+ "Assistant" = 10,
+ "Engineer" = 5,
+ "Doctor" = 5,
+ "Scientist" = 5,
+ "Cargo" = 5,
+ "Security" = 5
)
)
+
switch(type)
if("Miner")
- if(prob(2))
- mob_species = /datum/species/plasmaman
- uniform = /obj/item/clothing/under/plasmaman
- head = /obj/item/clothing/head/helmet/space/plasmaman
- belt = /obj/item/tank/internals/plasmaman/belt
- else
- uniform = /obj/item/clothing/under/rank/cargo/miner/lavaland
- if (prob(4))
- belt = pickweight(list(
- /obj/item/storage/belt/mining = 2,
- /obj/item/storage/belt/mining/alt = 2
- )
- )
- else if(prob(10))
- belt = pickweight(list(
- /obj/item/pickaxe = 8,
- /obj/item/pickaxe/mini = 4,
- /obj/item/pickaxe/silver = 2,
- /obj/item/pickaxe/diamond = 1,
- /obj/item/gun/energy/kinetic_accelerator = 1
- )
- )
- else
- belt = /obj/item/tank/internals/emergency_oxygen/engi
- if(mob_species != /datum/species/lizard)
- shoes = /obj/item/clothing/shoes/workboots/mining
- gloves = /obj/item/clothing/gloves/color/black
- mask = /obj/item/clothing/mask/gas/explorer
- if(prob(45))
- glasses = /obj/item/clothing/glasses/meson
- if(prob(20))
- suit = pickweight(list(
- /obj/item/clothing/suit/hooded/explorer = 18,
- /obj/item/clothing/suit/hooded/cloak/goliath = 2
- )
- )
- if(prob(30))
- r_pocket = pickweight(list(
- /obj/item/stack/marker_beacon = 20,
- /obj/item/spacecash/bundle/mediumrand = 7,
- /obj/item/reagent_containers/hypospray/medipen/survival = 2,
- /obj/item/borg/upgrade/modkit/damage = 1
- )
- )
- if(prob(10))
- l_pocket = pickweight(list(
- /obj/item/spacecash/bundle/mediumrand = 7,
- /obj/item/reagent_containers/hypospray/medipen/survival = 2,
- /obj/item/borg/upgrade/modkit/cooldown = 1
- )
- )
- if(prob(95))
- back = /obj/item/storage/backpack/explorer
- backpack_contents = list(/obj/item/radio)
- if(prob(70))
- backpack_contents += pickweight(list(
- /obj/item/borg/upgrade/modkit/damage = 1,
- /obj/item/borg/upgrade/modkit/trigger_guard = 1,
- /obj/item/soap/nanotrasen = 1,
- /obj/item/wormhole_jaunter = 1,
- /obj/item/fulton_core = 1,
- /obj/item/extraction_pack = 2,
- /obj/item/stack/sheet/animalhide/goliath_hide = 3,
- /obj/item/hivelordstabilizer = 2,
- /obj/item/stack/marker_beacon/ten = 2,
- /obj/item/mining_scanner = 2,
- /obj/item/extinguisher/mini = 2,
- /obj/item/kitchen/knife/combat/survival = 3,
- /obj/item/flashlight/seclite=3,
- /obj/item/stack/sheet/sinew = 3,
- /obj/item/stack/sheet/bone = 3
- )
- )
- if(prob(70))
- backpack_contents += pickweight(list(
- /obj/item/borg/upgrade/modkit/damage = 1,
- /obj/item/borg/upgrade/modkit/trigger_guard = 1,
- /obj/item/soap/nanotrasen = 1,
- /obj/item/wormhole_jaunter = 1,
- /obj/item/fulton_core = 1,
- /obj/item/extraction_pack = 2,
- /obj/item/stack/sheet/animalhide/goliath_hide = 3,
- /obj/item/hivelordstabilizer = 2,
- /obj/item/stack/marker_beacon/ten = 2,
- /obj/item/mining_scanner = 2,
- /obj/item/extinguisher/mini = 2,
- /obj/item/kitchen/knife/combat/survival = 3,
- /obj/item/flashlight/seclite = 3,
- /obj/item/stack/sheet/sinew = 3,
- /obj/item/stack/sheet/bone = 3
- )
- )
- if(prob(70))
- backpack_contents += pickweight(list(
- /obj/item/borg/upgrade/modkit/damage = 1,
- /obj/item/borg/upgrade/modkit/trigger_guard = 1,
- /obj/item/soap/nanotrasen = 1,
- /obj/item/wormhole_jaunter = 1,
- /obj/item/fulton_core = 1,
- /obj/item/extraction_pack = 2,
- /obj/item/stack/sheet/animalhide/goliath_hide = 3,
- /obj/item/hivelordstabilizer = 2,
- /obj/item/stack/marker_beacon/ten = 2,
- /obj/item/mining_scanner = 2,
- /obj/item/extinguisher/mini = 2,
- /obj/item/kitchen/knife/combat/survival = 3,
- /obj/item/flashlight/seclite = 3,
- /obj/item/stack/sheet/sinew = 3,
- /obj/item/stack/sheet/bone = 3
- )
- )
- if(prob(30))
- backpack_contents += list(
- /obj/item/reagent_containers/hypospray/medipen/survival = pickweight(list(
- 1 = 3,
- 2 = 2,
- 3 = 1
- )
- )
- )
- else
- back = /obj/item/kinetic_crusher
- if("Oldminer")
- suit = /obj/item/clothing/suit/hooded/explorer/old
- mask = /obj/item/clothing/mask/gas/explorer/old
- if(prob(95))
- glasses = /obj/item/clothing/glasses/meson
- else
- glasses = /obj/item/clothing/glasses/meson/night
- suit_store = /obj/item/tank/internals/oxygen
- gloves = /obj/item/clothing/gloves/explorer/old
- uniform = /obj/item/clothing/under/rank/cargo/miner/lavaland/old
- if(prob(85))
- back = /obj/item/storage/backpack/explorer //someone could totally make these backpacks a subtype and just have them be there. It'd cut down this file size a bit.
- backpack_contents = list()
- if(prob(70))
- backpack_contents += pickweight(list(
- /obj/item/borg/upgrade/modkit/damage = 1,
- /obj/item/borg/upgrade/modkit/trigger_guard = 1,
- /obj/item/soap/nanotrasen = 1,
- /obj/item/wormhole_jaunter = 1,
- /obj/item/fulton_core = 1,
- /obj/item/extraction_pack = 2,
- /obj/item/stack/sheet/animalhide/goliath_hide = 3,
- /obj/item/hivelordstabilizer = 2,
- /obj/item/stack/marker_beacon/ten = 2,
- /obj/item/mining_scanner = 2,
- /obj/item/extinguisher/mini = 2,
- /obj/item/kitchen/knife/combat/survival = 3,
- /obj/item/flashlight/seclite=3,
- /obj/item/stack/sheet/sinew = 3,
- /obj/item/stack/sheet/bone = 3
- )
- )
- if(prob(70))
- backpack_contents += pickweight(list(
- /obj/item/borg/upgrade/modkit/damage = 1,
- /obj/item/borg/upgrade/modkit/trigger_guard = 1,
- /obj/item/soap/nanotrasen = 1,
- /obj/item/wormhole_jaunter = 1,
- /obj/item/fulton_core = 1,
- /obj/item/extraction_pack = 2,
- /obj/item/stack/sheet/animalhide/goliath_hide = 3,
- /obj/item/hivelordstabilizer = 2,
- /obj/item/stack/marker_beacon/ten = 2,
- /obj/item/mining_scanner = 2,
- /obj/item/extinguisher/mini = 2,
- /obj/item/kitchen/knife/combat/survival = 3,
- /obj/item/flashlight/seclite=3,
- /obj/item/stack/sheet/sinew = 3,
- /obj/item/stack/sheet/bone = 3
- )
- )
- if(prob(70))
- backpack_contents += pickweight(list(
- /obj/item/borg/upgrade/modkit/damage = 1,
- /obj/item/borg/upgrade/modkit/trigger_guard = 1,
- /obj/item/soap/nanotrasen = 1,
- /obj/item/wormhole_jaunter = 1,
- /obj/item/fulton_core = 1,
- /obj/item/extraction_pack = 2,
- /obj/item/stack/sheet/animalhide/goliath_hide = 3,
- /obj/item/hivelordstabilizer = 2,
- /obj/item/stack/marker_beacon/ten = 2,
- /obj/item/mining_scanner = 2,
- /obj/item/extinguisher/mini = 2,
- /obj/item/kitchen/knife/combat/survival = 3,
- /obj/item/flashlight/seclite=3,
- /obj/item/stack/sheet/sinew = 3,
- /obj/item/stack/sheet/bone = 3
- )
- )
- if(prob(30))
- backpack_contents += list(
- /obj/item/reagent_containers/hypospray/medipen/survival = pickweight(list(
- 1 = 3,
- 2 = 2,
- 3 = 1
- )
- )
- )
- else
- back = /obj/item/kinetic_crusher/old
- if(prob(30))
- belt = /obj/item/gun/energy/kinetic_accelerator/old
- if(prob(30))
- r_pocket = pickweight(list(
- /obj/item/stack/marker_beacon = 20,
- /obj/item/spacecash/bundle/mediumrand = 7,
- /obj/item/reagent_containers/hypospray/medipen/survival = 2,
- /obj/item/borg/upgrade/modkit/damage = 1
- )
- )
- if(prob(30))
- l_pocket = pickweight(list(
- /obj/item/spacecash/bundle/mediumrand = 5,
- /obj/item/reagent_containers/hypospray/medipen/survival = 2,
- /obj/item/borg/upgrade/modkit/cooldown = 1
- )
- )
- if("Ashwalker")
- mob_species = /datum/species/lizard/ashwalker
- uniform = /obj/item/clothing/under/costume/gladiator/ash_walker
- if(prob(95))
- head = /obj/item/clothing/head/helmet/gladiator
- else
- head = /obj/item/clothing/head/helmet/skull
- suit = /obj/item/clothing/suit/armor/bone
- gloves = /obj/item/clothing/gloves/bracer
- if(prob(45))
- back = pickweight(list(
- /obj/item/spear/bonespear = 3,
- /obj/item/fireaxe/boneaxe = 2
- )
- )
- if(prob(10))
- belt = /obj/item/storage/belt/mining/primitive
- if(prob(30))
- r_pocket = /obj/item/restraints/legcuffs/bola/watcher
- if(prob(30))
- l_pocket = /obj/item/kitchen/knife/combat/bone
- if("Soldier")
- mob_species = /datum/species/human
- if(prob(90))
- 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
- mask = /obj/item/clothing/mask/gas/sechailer
- head = /obj/item/clothing/head/solgov/sonnensoldner
- id = /obj/item/card/id/solgov
- else
- uniform = /obj/item/clothing/under/solgov
- suit = /obj/item/clothing/suit/space/hardsuit/solgov
- shoes = /obj/item/clothing/shoes/combat
- gloves = /obj/item/clothing/gloves/combat
- mask = /obj/item/clothing/mask/gas/sechailer/swat
- id = /obj/item/card/id/solgov
- if(prob(85))
- back = /obj/item/storage/backpack
- backpack_contents = list()
- if(prob(75))
- backpack_contents += pickweight(list(
- /obj/item/reagent_containers/hypospray/medipen/stimpack/traitor = 1,
- /obj/item/storage/firstaid/tactical = 1,
- /obj/item/gun/ballistic/automatic/pistol/solgov = 1,
- /obj/item/gps = 1,
- /obj/item/stock_parts/cell/gun/upgraded = 2,
- /obj/item/ammo_box/magazine/pistol556mm = 3,
- /obj/item/desk_flag/solgov = 3,
- /obj/item/stack/marker_beacon/ten = 3,
- /obj/item/detective_scanner = 2,
- /obj/item/extinguisher/mini = 3,
- /obj/item/kitchen/knife/combat = 3,
- /obj/item/flashlight/seclite=3,
- /obj/item/ammo_casing/shotgun = 3,
- /obj/item/binoculars = 3,
- /obj/item/clipboard = 3
- )
- )
- if(prob(75))
- backpack_contents += pickweight(list(
- /obj/item/reagent_containers/hypospray/medipen/stimpack/traitor = 1,
- /obj/item/storage/firstaid/tactical = 1,
- /obj/item/gun/ballistic/automatic/pistol/solgov = 1,
- /obj/item/gps = 1,
- /obj/item/stock_parts/cell/gun/upgraded = 2,
- /obj/item/ammo_box/magazine/pistol556mm = 3,
- /obj/item/desk_flag/solgov = 3,
- /obj/item/stack/marker_beacon/ten = 3,
- /obj/item/detective_scanner = 2,
- /obj/item/extinguisher/mini = 3,
- /obj/item/kitchen/knife/combat = 3,
- /obj/item/flashlight/seclite=3,
- /obj/item/ammo_casing/shotgun = 3,
- /obj/item/binoculars = 3,
- /obj/item/clipboard = 3
- )
- )
- if(prob(75))
- backpack_contents += pickweight(list(
- /obj/item/reagent_containers/hypospray/medipen/stimpack/traitor = 1,
- /obj/item/storage/firstaid/tactical = 1,
- /obj/item/gun/ballistic/automatic/pistol/solgov = 1,
- /obj/item/gps = 1,
- /obj/item/stock_parts/cell/gun/upgraded = 2,
- /obj/item/ammo_box/magazine/pistol556mm = 3,
- /obj/item/desk_flag/solgov = 3,
- /obj/item/stack/marker_beacon/ten = 3,
- /obj/item/detective_scanner = 2,
- /obj/item/extinguisher/mini = 3,
- /obj/item/kitchen/knife/combat = 3,
- /obj/item/flashlight/seclite=3,
- /obj/item/ammo_casing/shotgun = 3,
- /obj/item/binoculars = 3,
- /obj/item/clipboard = 3
- )
- )
- else
- back = pickweight(list(
- /obj/item/energyhalberd = 5,
- /obj/item/gun/ballistic/rocketlauncher = 5
- )
- )
- if(prob(25))
- belt = /obj/item/storage/belt/military
- if(prob(50))
- r_pocket = pickweight(list(
- /obj/item/reagent_containers/hypospray/medipen/stimpack = 1,
- /obj/item/kitchen/knife/letter_opener = 3,
- /obj/item/radio = 3,
- /obj/item/grenade/syndieminibomb/concussion = 1,
- /obj/item/melee/transforming/energy/ctf/solgov = 1
- )
- )
- if(prob(50))
- l_pocket = pickweight(list(
- /obj/item/reagent_containers/hypospray/medipen/stimpack = 1,
- /obj/item/kitchen/knife/letter_opener = 3,
- /obj/item/radio = 3,
- /obj/item/grenade/syndieminibomb/concussion = 1,
- /obj/item/melee/transforming/energy/ctf/solgov = 1
- )
- )
- if(prob(70))
- glasses = pickweight(list(
- /obj/item/clothing/glasses/sunglasses = 3,
- /obj/item/clothing/glasses/hud/health = 3,
- /obj/item/clothing/glasses/hud/health/night = 1,
- /obj/item/clothing/glasses/night = 2
- )
- )
- if("Kobold")
- mob_species = /datum/species/lizard/ashwalker/kobold
- uniform = /obj/item/clothing/under/costume/gladiator/ash_walker
- if(prob(95))
- head = /obj/item/clothing/head/helmet/gladiator
- else
- head = /obj/item/clothing/head/helmet/skull
- suit = /obj/item/clothing/suit/armor/bone
- gloves = /obj/item/clothing/gloves/bracer
- if(prob(5))
- back = pickweight(list(
- /obj/item/spear/bonespear = 3,
- /obj/item/fireaxe/boneaxe = 2
- )
- )
- if(prob(10))
- belt = /obj/item/storage/belt/mining/primitive
- if(prob(30))
- r_pocket = /obj/item/kitchen/knife/combat/bone
- if(prob(30))
- l_pocket = /obj/item/kitchen/knife/combat/bone
- if("YeOlde")
- mob_gender = FEMALE
- uniform = /obj/item/clothing/under/costume/maid
- gloves = /obj/item/clothing/gloves/color/white
- shoes = /obj/item/clothing/shoes/laceup
- head = /obj/item/clothing/head/helmet/knight
- suit = /obj/item/clothing/suit/armor/riot/knight
- back = /obj/item/shield/riot/buckler
- belt = /obj/item/nullrod/claymore
- r_pocket = /obj/item/tank/internals/emergency_oxygen
- mask = /obj/item/clothing/mask/breath
- if("Operative")
- id_job = "Operative"
- if(prob(40))
- outfit = /datum/outfit/syndicatecommandocorpse
- else if(prob(5))
- outfit = /datum/outfit/syndicatestormtroopercorpse
- else
- outfit = /datum/outfit/syndicateramzicorpse
- if("Waldo")//WE FINALLY FOUND HIM
- name = "Waldo"
- uniform = /obj/item/clothing/under/pants/jeans
- suit = /obj/item/clothing/suit/striped_sweater
- head = /obj/item/clothing/head/beanie/waldo
- shoes = /obj/item/clothing/shoes/sneakers/brown
- ears = /obj/item/radio/headset
- glasses = /obj/item/clothing/glasses/regular/circle
- back = /obj/item/storage/backpack/satchel/leather
- backpack_contents = list()
- if(prob(50))
- backpack_contents += pickweight(list(
- /obj/item/book/granter/spell/knock = 1,
- /obj/item/book/granter/spell/blind = 1,
- /obj/item/shadowcloak = 1,
- /obj/item/book/granter/spell/smoke = 2,
- /obj/item/reagent_containers/syringe/mulligan = 2,
- /obj/item/dice/d20 = 3,
- /obj/item/dice/d20/fate/stealth/one_use = 1,
- /obj/item/clothing/head/chameleon/broken = 3,
- /obj/item/stack/marker_beacon/ten = 3,
- /obj/item/grenade/smokebomb = 3,
- /obj/item/grenade/flashbang = 3
- )
- )
- if(prob(50))
- backpack_contents += pickweight(list(
- /obj/item/book/granter/spell/knock = 1,
- /obj/item/book/granter/spell/blind = 1,
- /obj/item/shadowcloak = 1,
- /obj/item/book/granter/spell/smoke = 2,
- /obj/item/reagent_containers/syringe/mulligan = 2,
- /obj/item/dice/d20/fate/stealth/one_use = 1,
- /obj/item/dice/d20 = 3,
- /obj/item/clothing/head/chameleon/broken = 3,
- /obj/item/stack/marker_beacon/ten = 3,
- /obj/item/grenade/smokebomb = 3,
- /obj/item/grenade/flashbang = 3
- )
- )
- if(prob(50))
- backpack_contents += pickweight(list(
- /obj/item/book/granter/spell/knock = 1,
- /obj/item/book/granter/spell/blind = 1,
- /obj/item/shadowcloak = 1,
- /obj/item/book/granter/spell/smoke = 2,
- /obj/item/reagent_containers/syringe/mulligan = 2,
- /obj/item/dice/d20/fate/stealth/one_use = 1,
- /obj/item/clothing/head/chameleon/broken = 3,
- /obj/item/stack/marker_beacon/ten = 3,
- /obj/item/grenade/smokebomb = 3,
- /obj/item/grenade/flashbang = 3
- )
- )
- if(prob(25))
- r_pocket = pickweight(list(
- /obj/item/chameleon,
- /obj/item/dnainjector/chameleonmut = 1,
- /obj/item/flashlight/flashdark = 1
- )
- )
- if(prob(25))
- l_pocket = pickweight(list(
- /obj/item/chameleon,
- /obj/item/dnainjector/chameleonmut = 1,
- /obj/item/flashlight/flashdark = 1
- )
- )
- if("Shadow")
- mob_species = /datum/species/shadow
- neck = /obj/item/clothing/accessory/medal/plasma/nobel_science
- uniform = /obj/item/clothing/under/color/black
- shoes = /obj/item/clothing/shoes/sneakers/black
- suit = /obj/item/clothing/suit/toggle/labcoat
- glasses = /obj/item/clothing/glasses/blindfold
- back = /obj/item/tank/internals/oxygen
- mask = /obj/item/clothing/mask/breath
- if("SRM")
- uniform = /obj/item/clothing/under/suit/roumain
- shoes = /obj/item/clothing/shoes/workboots/mining
- if(prob(50))
- suit = /obj/item/clothing/suit/armor/roumain/shadow
- head = /obj/item/clothing/head/cowboy/sec/roumain/shadow
- else
- 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/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
- backpack_contents = list()
- if(prob(75))
- backpack_contents += list(/obj/item/ammo_box/c38_box = 1)
- if(prob(75))
- backpack_contents += list(pick(
- /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/ashwine,
- /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/icewine,
- /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/shockwine,
- /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/hearthwine,
- /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/forcewine,
- /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/prismwine,) = 2)
+ outfit = /datum/outfit/generic/miner
+ if("Assistant")
+ outfit = /datum/outfit/generic
+ if("Engineer")
+ outfit = /datum/outfit/generic/engineer
+ if("Doctor")
+ outfit = /datum/outfit/generic/doctor
+ if("Scientist")
+ outfit = /datum/outfit/generic/science
+ if("Cargo")
+ outfit = /datum/outfit/generic/cargo
+ if("Security")
+ outfit = /datum/outfit/generic/security
. = ..()
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm
new file mode 100644
index 000000000000..0dca4c21dade
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm
@@ -0,0 +1,479 @@
+/datum/outfit/generic/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
+ . = ..()
+ uniform = pickweight(list(
+ /obj/item/clothing/under/utility = 5,
+ /obj/item/clothing/under/utility/skirt = 5,
+ /obj/item/clothing/under/color/black = 1,
+ /obj/item/clothing/under/color/white = 1,
+ /obj/item/clothing/under/color/random = 1,
+ /obj/item/clothing/under/suit/white = 1,
+ /obj/item/clothing/under/suit/tan = 1,
+ /obj/item/clothing/under/suit/black_really = 1,
+ /obj/item/clothing/under/suit/navy = 1,
+ /obj/item/clothing/under/suit/burgundy = 1,
+ /obj/item/clothing/under/suit/charcoal = 1,
+ /obj/item/clothing/under/rank/civilian/lawyer/galaxy = 1,
+ /obj/item/clothing/under/suit/black/skirt = 1,
+ /obj/item/clothing/under/suit/black = 1,
+ /obj/item/clothing/under/dress/sailor = 1,
+ /obj/item/clothing/under/dress/striped = 1,
+ /obj/item/clothing/under/dress/skirt/blue = 1,
+ /obj/item/clothing/under/syndicate/tacticool = 1,
+ )
+ )
+ suit = pickweight(list(
+ /obj/item/clothing/suit/hooded/wintercoat = 1,
+ /obj/item/clothing/suit/jacket = 1,
+ /obj/item/clothing/suit/jacket/leather = 1,
+ /obj/item/clothing/suit/jacket/leather/overcoat = 1,
+ /obj/item/clothing/suit/jacket/leather/duster = 1,
+ /obj/item/clothing/suit/jacket/miljacket = 1,
+ /obj/item/clothing/suit/jacket/puffer = 1,
+ /obj/item/clothing/suit/gothcoat = 1,
+ /obj/item/clothing/suit/toggle/industrial = 1,
+ /obj/item/clothing/suit/toggle/hazard = 1,
+ )
+ )
+ back = pickweight(list(
+ /obj/item/storage/backpack = 1,
+ /obj/item/storage/backpack/satchel = 1,
+ /obj/item/storage/backpack/duffelbag = 1,
+ /obj/item/storage/backpack/messenger = 1,
+ /obj/item/storage/backpack/satchel/leather = 1
+ )
+ )
+ if (prob(10))
+ belt = pickweight(list(
+ /obj/item/gun/ballistic/automatic/pistol/candor = 2,
+ /obj/item/gun/ballistic/automatic/pistol/commander = 1,
+ /obj/item/gun/ballistic/automatic/pistol = 1,
+ /obj/item/gun/ballistic/revolver = 1,
+ /obj/item/gun/ballistic/revolver/firebrand = 1,
+ )
+ )
+ if(prob(50))
+ gloves = pickweight(list(
+ /obj/item/clothing/gloves/color/black = 1,
+ /obj/item/clothing/gloves/fingerless = 1,
+ /obj/item/clothing/gloves/color/white = 1,
+ )
+ )
+ shoes = pickweight(list(
+ /obj/item/clothing/shoes/laceup = 1,
+ /obj/item/clothing/shoes/sandal = 1,
+ /obj/item/clothing/shoes/winterboots = 1,
+ /obj/item/clothing/shoes/workboots/mining = 1,
+ /obj/item/clothing/shoes/workboots = 1,
+ /obj/item/clothing/shoes/sneakers/black = 1,
+ /obj/item/clothing/shoes/sneakers/brown = 1,
+ /obj/item/clothing/shoes/sneakers/white = 1
+ )
+ )
+ if(prob(50))
+ head = pickweight(list(
+ /obj/item/clothing/head/beret = 3,
+ /obj/item/clothing/head/beret/grey = 3,
+ /obj/item/clothing/head/flatcap = 3,
+ /obj/item/clothing/head/beanie = 3,
+ /obj/item/clothing/head/cowboy = 3,
+ /obj/item/clothing/head/trapper = 2,
+ /obj/item/clothing/head/hardhat = 2,
+ /obj/item/clothing/head/hardhat/orange = 2,
+ /obj/item/clothing/head/hardhat/dblue = 2,
+ /obj/item/clothing/head/pirate = 1,
+ /obj/item/clothing/head/foilhat = 1
+ )
+ )
+ if(prob(50))
+ mask = pickweight(list(
+ /obj/item/clothing/mask/balaclava = 1,
+ /obj/item/clothing/mask/bandana/red = 1,
+ /obj/item/clothing/mask/gas = 3,
+ /obj/item/clothing/mask/breath = 3,
+ )
+ )
+ if(prob(25))
+ neck = pickweight(list(
+ /obj/item/clothing/neck/scarf/red = 1,
+ /obj/item/clothing/neck/scarf/green = 1,
+ /obj/item/clothing/neck/scarf/darkblue = 1,
+ /obj/item/clothing/neck/shemagh = 1,
+ /obj/item/clothing/neck/stripedredscarf = 1,
+ /obj/item/clothing/neck/stripedgreenscarf = 1,
+ /obj/item/clothing/neck/stripedbluescarf = 1
+ )
+ )
+ ears = pick(/obj/item/radio/headset, /obj/item/radio/headset/alt)
+ if(prob(50))
+ glasses = pickweight(list(
+ /obj/item/clothing/glasses/regular = 1,
+ /obj/item/clothing/glasses/regular/circle = 1,
+ /obj/item/clothing/glasses/regular/jamjar = 1,
+ /obj/item/clothing/glasses/eyepatch = 1,
+ /obj/item/clothing/glasses/cheapsuns = 1,
+ /obj/item/clothing/glasses/regular/hipster = 1,
+ /obj/item/clothing/glasses/cold = 1,
+ /obj/item/clothing/glasses/heat = 1,
+ /obj/item/clothing/glasses/orange = 1,
+ )
+ )
+ if(prob(75))
+ r_pocket = /obj/item/tank/internals/emergency_oxygen
+ if(prob(75))
+ l_pocket = pick(/obj/item/radio, /obj/item/flashlight)
+ id = /obj/item/card/id
+ backpack_contents = list()
+ backpack_contents += pickweight(list(
+ /obj/item/dice/d20 = 1,
+ /obj/item/lipstick = 1,
+ /obj/item/clothing/mask/vape = 1,
+ /obj/item/clothing/mask/vape/cigar = 1,
+ /obj/item/reagent_containers/food/drinks/flask = 1,
+ /obj/item/lighter = 1,
+ /obj/item/toy/cards/deck = 1,
+ /obj/item/toy/eightball = 1,
+ /obj/item/storage/wallet = 1,
+ /obj/item/paicard = 1,
+ /obj/item/pen/fourcolor = 1,
+ /obj/item/paper_bin = 1,
+ /obj/item/cane = 1,
+ /obj/item/radio = 1,
+ /obj/item/dyespray = 1,
+ /obj/item/table_bell/brass = 1,
+ /obj/item/flashlight = 1,
+ /obj/item/crowbar/red = 1
+ )
+ )
+
+/datum/outfit/generic
+ name = "Generic (Legion)"
+ box = /obj/item/storage/box/survival
+ random = TRUE
+
+/datum/outfit/generic/miner/pre_equip(mob/living/carbon/human/H, visualsOnly)
+ . = ..()
+ if(prob(75))
+ uniform = pickweight(list(
+ /obj/item/clothing/under/rank/cargo/miner/lavaland = 5,
+ /obj/item/clothing/under/rank/cargo/miner = 4,
+ /obj/item/clothing/under/rank/cargo/miner/lavaland/old = 1,
+ )
+ )
+ if(prob(25))
+ suit = pickweight(list(
+ /obj/item/clothing/suit/hooded/explorer = 18,
+ /obj/item/clothing/suit/hooded/explorer/old = 1,
+ /obj/item/clothing/suit/hooded/cloak/goliath = 1
+ )
+ )
+ if(prob(75))
+ back = /obj/item/storage/backpack/explorer
+ if(prob(75))
+ belt = pickweight(list(
+ /obj/item/storage/belt/mining = 2,
+ /obj/item/storage/belt/mining/alt = 2
+ )
+ )
+ else if(prob(75))
+ belt = pickweight(list(
+ /obj/item/pickaxe = 16,
+ /obj/item/pickaxe/mini = 8,
+ /obj/item/pickaxe/silver = 4,
+ /obj/item/pickaxe/diamond = 2,
+ /obj/item/gun/energy/kinetic_accelerator = 2,
+ /obj/item/kinetic_crusher/old = 1
+ )
+ )
+ if(prob(75))
+ gloves = pickweight(list(
+ /obj/item/clothing/gloves/color/black = 9,
+ /obj/item/clothing/gloves/explorer/old = 1
+ )
+ )
+ if(prob(75))
+ shoes = /obj/item/clothing/shoes/workboots/mining
+ if(prob(75))
+ mask = pickweight(list(
+ /obj/item/clothing/mask/gas/explorer = 9,
+ /obj/item/clothing/mask/gas/explorer/old = 1
+ )
+ )
+ if(prob(50))
+ glasses = /obj/item/clothing/glasses/meson
+ if(prob(50))
+ r_pocket = pickweight(list(
+ /obj/item/stack/marker_beacon = 20,
+ /obj/item/spacecash/bundle/mediumrand = 7,
+ /obj/item/reagent_containers/hypospray/medipen/survival = 2,
+ /obj/item/borg/upgrade/modkit/damage = 1
+ )
+ )
+ if(prob(25))
+ l_pocket = pickweight(list(
+ /obj/item/spacecash/bundle/mediumrand = 5,
+ /obj/item/reagent_containers/hypospray/medipen/survival = 2,
+ /obj/item/borg/upgrade/modkit/cooldown = 1
+ )
+ )
+ if(prob(75))
+ for(var/count in 1 to 3)
+ if(prob(70))
+ backpack_contents += pickweight(list(
+ /obj/item/borg/upgrade/modkit/damage = 1,
+ /obj/item/borg/upgrade/modkit/trigger_guard = 1,
+ /obj/item/soap/nanotrasen = 1,
+ /obj/item/wormhole_jaunter = 1,
+ /obj/item/fulton_core = 1,
+ /obj/item/extraction_pack = 2,
+ /obj/item/stack/sheet/animalhide/goliath_hide = 3,
+ /obj/item/hivelordstabilizer = 2,
+ /obj/item/stack/marker_beacon/ten = 2,
+ /obj/item/mining_scanner = 2,
+ /obj/item/extinguisher/mini = 2,
+ /obj/item/kitchen/knife/combat/survival = 3,
+ /obj/item/flashlight/seclite = 3,
+ /obj/item/stack/sheet/sinew = 3,
+ /obj/item/stack/sheet/bone = 3
+ )
+ )
+ if(prob(30))
+ backpack_contents += list(
+ /obj/item/reagent_containers/hypospray/medipen/survival = pickweight(list(
+ 1 = 3,
+ 2 = 2,
+ 3 = 1
+ )
+ )
+ )
+ else if (prob(75))
+ backpack_contents = list()
+ back = pickweight(list(
+ /obj/item/kinetic_crusher = 9,
+ /obj/item/kinetic_crusher/old = 1
+ )
+ )
+
+/datum/outfit/generic/miner
+ name = "Miner (Legion)"
+
+/datum/outfit/generic/engineer/pre_equip(mob/living/carbon/human/H, visualsOnly)
+ . = ..()
+ if(prob(75))
+ uniform = pick(/obj/item/clothing/under/rank/engineering/engineer, /obj/item/clothing/under/rank/engineering/engineer/hazard, /obj/item/clothing/under/rank/security/officer/military/eng)
+ if(prob(75))
+ suit = pick(/obj/item/clothing/suit/toggle/hazard, /obj/item/clothing/suit/hazardvest, /obj/item/clothing/suit/hooded/wintercoat/engineering)
+ if(prob(75))
+ gloves = pick(/obj/item/clothing/gloves/color/yellow, /obj/item/clothing/gloves/color/fyellow, /obj/item/clothing/gloves/color/fyellow/old)
+ if(prob(75))
+ belt = pick(/obj/item/storage/belt/utility/full, /obj/item/storage/belt/utility)
+ if(prob(50))
+ head = /obj/item/clothing/head/welding
+ if(prob(75))
+ ears = /obj/item/radio/headset/headset_eng
+ else if(prob(50))
+ glasses = /obj/item/clothing/glasses/welding
+ if(prob(75))
+ back = pick(/obj/item/storage/backpack/industrial, /obj/item/storage/backpack/satchel/eng, /obj/item/storage/backpack/duffelbag/engineering, /obj/item/storage/backpack/messenger/engi)
+ if(prob(10))
+ back = /obj/item/fireaxe
+ for(var/i = 1 to 3)
+ if(prob(75))
+ backpack_contents += pickweight(list(
+ /obj/item/stack/tape/industrial/electrical = 1,
+ /obj/item/electronics/apc = 1,
+ /obj/item/multitool = 1,
+ /obj/item/pipe_dispenser = 1,
+ /obj/item/tank/internals/emergency_oxygen/engi = 1,
+ /obj/item/holosign_creator/engineering = 1,
+ /obj/item/extinguisher/advanced = 1,
+ /obj/item/stack/sheet/metal/twenty = 1
+ )
+ )
+ if(prob(75))
+ accessory = /obj/item/clothing/accessory/armband/engine
+
+/datum/outfit/generic/engineer
+ name = "Mechanic (Legion)"
+ box = /obj/item/storage/box/survival/engineer
+
+/datum/outfit/generic/doctor/pre_equip(mob/living/carbon/human/H, visualsOnly)
+ . = ..()
+ if(prob(75))
+ uniform = pick(/obj/item/clothing/under/rank/medical/doctor, /obj/item/clothing/under/rank/medical/doctor/blue)
+ if(prob(75))
+ suit = pick(/obj/item/clothing/suit/toggle/labcoat, /obj/item/clothing/suit/apron/surgical ,/obj/item/clothing/suit/hooded/wintercoat/medical)
+ if(prob(75))
+ back = pick(/obj/item/storage/backpack/medic, /obj/item/storage/backpack/satchel/med, /obj/item/storage/backpack/duffelbag/med, /obj/item/storage/backpack/messenger/med)
+ else if (prob(75))
+ back = /obj/item/defibrillator/loaded
+ if(prob(75))
+ belt = pickweight(list(/obj/item/storage/belt/medical = 5, /obj/item/defibrillator/compact/loaded = 1))
+ if(prob(75))
+ gloves = pick(/obj/item/clothing/gloves/color/white, /obj/item/clothing/gloves/color/latex/nitrile)
+ if(prob(75))
+ mask = /obj/item/clothing/mask/surgical
+ if(prob(75))
+ shoes = /obj/item/clothing/shoes/sneakers/white
+ if(prob(75))
+ head = /obj/item/clothing/head/beret/med
+ if(prob(75))
+ ears = /obj/item/radio/headset/headset_med
+ if(prob(75))
+ glasses = pick(/obj/item/clothing/glasses/hud/health, /obj/item/clothing/glasses/hud/health/prescription)
+ for(var/i = 1 to 3)
+ if(prob(75))
+ backpack_contents += pickweight(list(
+ /obj/item/reagent_containers/pill/patch/styptic = 5,
+ /obj/item/reagent_containers/pill/patch/silver_sulf = 5,
+ /obj/item/storage/firstaid/medical = 3,
+ /obj/item/reagent_containers/syringe = 3,
+ /obj/item/reagent_containers/glass/beaker = 2,
+ /obj/item/reagent_containers/dropper = 2,
+ /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/medigel/sterilizine = 1,
+ /obj/item/flashlight/pen = 1,
+ /obj/item/hypospray/mkii = 1,
+ /obj/item/healthanalyzer = 1,
+ )
+ )
+ if(prob(75))
+ accessory = /obj/item/clothing/accessory/armband/medblue
+
+/datum/outfit/generic/doctor
+ name = "Medical Doctor (Legion)"
+ box = /obj/item/storage/box/survival/medical
+
+/datum/outfit/generic/science/pre_equip(mob/living/carbon/human/H)
+ ..()
+ if(prob(75))
+ uniform = pick(/obj/item/clothing/under/rank/rnd/scientist, /obj/item/clothing/under/rank/rnd/roboticist)
+ if(prob(75))
+ suit = pick(/obj/item/clothing/suit/toggle/labcoat/science, /obj/item/clothing/suit/hooded/wintercoat/science)
+ if(prob(75))
+ back = pick(/obj/item/storage/backpack/science, /obj/item/storage/backpack/satchel/tox, /obj/item/storage/backpack/messenger/tox)
+ if(prob(75))
+ shoes = /obj/item/clothing/shoes/sneakers/white
+ if(prob(75))
+ gloves = /obj/item/clothing/gloves/color/white
+ if(prob(75))
+ head = /obj/item/clothing/head/beret/sci
+ if(prob(75))
+ ears = /obj/item/radio/headset/headset_sci
+ if(prob(75))
+ glasses = pick(/obj/item/clothing/glasses/hud/diagnostic, /obj/item/clothing/glasses/science)
+ if(prob(1))
+ neck = /obj/item/clothing/neck/tie/horrible
+ for(var/i = 1 to 3)
+ if(prob(75))
+ backpack_contents += pickweight(list(
+ /obj/item/research_notes/loot/tiny = 3,
+ /obj/item/research_notes/loot/small = 3,
+ /obj/item/reagent_scanner = 3,
+ /obj/item/assembly/flash/handheld = 3,
+ /obj/item/stock_parts/capacitor/adv = 2,
+ /obj/item/stock_parts/scanning_module/adv = 2,
+ /obj/item/stock_parts/manipulator/nano = 2,
+ /obj/item/stock_parts/micro_laser/high = 2,
+ /obj/item/stock_parts/matter_bin/adv = 2,
+ /obj/item/survey_handheld = 1,
+ /obj/item/weldingtool/experimental = 1,
+ /obj/item/mmi/posibrain = 1,
+ /obj/item/reagent_containers/glass/beaker/plastic = 1,
+ /obj/item/organ/eyes/robotic/shield = 1,
+ /obj/item/organ/eyes/robotic/glow = 1,
+ )
+ )
+ if(prob(75))
+ accessory = /obj/item/clothing/accessory/armband/science
+
+
+/datum/outfit/generic/science
+ name = "Scientist (Legion)"
+
+/datum/outfit/generic/cargo/pre_equip(mob/living/carbon/human/H, visualsOnly)
+ . = ..()
+ if(prob(75))
+ uniform = pick(/obj/item/clothing/under/rank/cargo/tech, /obj/item/clothing/under/shorts/grey)
+ if(prob(75))
+ suit = pick(/obj/item/clothing/suit/hazardvest, /obj/item/clothing/suit/hooded/wintercoat/cargo)
+ if(prob(25))
+ belt = /obj/item/gun/ballistic/automatic/zip_pistol
+ if(prob(75))
+ gloves = /obj/item/clothing/gloves/fingerless
+ if(prob(75))
+ shoes = /obj/item/clothing/shoes/sneakers/black
+ if(prob(75))
+ head = /obj/item/clothing/head/soft
+ if(prob(75))
+ ears = /obj/item/radio/headset/headset_cargo
+ for(var/i = 1 to 3)
+ if(prob(75))
+ backpack_contents += pickweight(list(
+ /obj/item/spacecash/bundle/mediumrand = 5,
+ /obj/item/ammo_box/magazine/illestren_a850r = 5,
+ /obj/item/ammo_box/magazine/zip_ammo_9mm = 5,
+ /obj/item/modular_computer/tablet/preset/cargo = 3,
+ /obj/item/stack/tape = 3,
+ /obj/item/stack/tape/industrial = 3,
+ /obj/item/stack/sheet/plastic/five = 3,
+ /obj/item/grenade/frag = 1
+ )
+ )
+ if(prob(75))
+ accessory = /obj/item/clothing/accessory/armband/cargo
+ if(prob(25))
+ suit = /obj/item/clothing/suit/armor/vest/scrap_armor
+ suit_store = /obj/item/gun/ballistic/rifle/illestren
+
+/datum/outfit/generic/cargo
+ name = "Cargo Technician (Legion)"
+
+/datum/outfit/generic/security/pre_equip(mob/living/carbon/human/H, visualsOnly)
+ . = ..()
+ if(prob(75))
+ uniform = /obj/item/clothing/under/rank/security/officer
+ if(prob(75))
+ suit = pick(/obj/item/clothing/suit/armor/vest, /obj/item/clothing/suit/armor/vest/security/officer, /obj/item/clothing/suit/armor/vest/bulletproof, /obj/item/clothing/suit/armor/vest/blueshirt)
+ if(prob(75))
+ back = pick(/obj/item/storage/backpack/security, /obj/item/storage/backpack/satchel/sec, /obj/item/storage/backpack/duffelbag/sec, /obj/item/storage/backpack/messenger/sec)
+ if(prob(75))
+ belt = pick(/obj/item/storage/belt/security, /obj/item/storage/belt/security/webbing)
+ if(prob(75))
+ gloves = pick(/obj/item/clothing/gloves/color/black, /obj/item/clothing/gloves/tackler)
+ if(prob(75))
+ shoes = /obj/item/clothing/shoes/jackboots
+ if(prob(75))
+ head = pick(/obj/item/clothing/head/helmet/sec, /obj/item/clothing/head/helmet/blueshirt, /obj/item/clothing/head/helmet/bulletproof)
+ if(prob(75))
+ mask = /obj/item/clothing/mask/gas/sechailer
+ if(prob(75))
+ ears = /obj/item/radio/headset/headset_sec
+ if(prob(75))
+ glasses = pick(/obj/item/clothing/glasses/hud/security, /obj/item/clothing/glasses/sunglasses)
+ if(prob(75))
+ r_pocket = pick(/obj/item/flashlight/seclite, /obj/item/assembly/flash/handheld, /obj/item/restraints/handcuffs)
+ if(prob(50))
+ suit_store = pick(/obj/item/gun/energy/e_gun, /obj/item/gun/energy/e_gun/smg, /obj/item/gun/energy/e_gun/iot)
+ for(var/i = 1 to 3)
+ if(prob(75))
+ backpack_contents += pickweight(list(
+ /obj/item/restraints/handcuffs = 8,
+ /obj/item/assembly/flash/handheld = 5,
+ /obj/item/storage/box/evidence = 6,
+ /obj/item/flashlight/seclite = 4,
+ /obj/item/ammo_box/c9mm/rubbershot = 3,
+ /obj/item/ammo_box/c9mm = 1,
+ /obj/item/stock_parts/cell/gun = 3,
+ /obj/item/coin/antagtoken = 1,
+ /obj/item/grenade/stingbang = 1
+ )
+ )
+ if(prob(75))
+ accessory = /obj/item/clothing/accessory/armband/deputy
+
+/datum/outfit/generic/security
+ name = "Security Officer (Legion)"
+ box = /obj/item/storage/box/survival/security
+
diff --git a/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm b/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm
deleted file mode 100644
index 4417e68e2ec1..000000000000
--- a/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm
+++ /dev/null
@@ -1,59 +0,0 @@
-/mob/living/simple_animal/hostile/nanotrasen
- name = "\improper Nanotrasen Private Security Officer"
- desc = "An officer part of Nanotrasen's private security force, he seems rather unpleased to meet you."
- icon = 'icons/mob/simple_human.dmi'
- icon_state = "nanotrasen"
- icon_living = "nanotrasen"
- icon_dead = null
- icon_gib = "syndicate_gib"
- mob_biotypes = MOB_ORGANIC|MOB_HUMANOID
- speak_chance = 0
- turns_per_move = 5
- speed = 0
- stat_attack = HARD_CRIT
- robust_searching = 1
- maxHealth = 100
- health = 100
- harm_intent_damage = 5
- melee_damage_lower = 10
- melee_damage_upper = 15
- attack_verb_continuous = "punches"
- attack_verb_simple = "punch"
- attack_sound = 'sound/weapons/punch1.ogg'
- a_intent = INTENT_HARM
- loot = list(/obj/effect/mob_spawn/human/corpse/nanotrasensoldier)
- atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0)
- unsuitable_atmos_damage = 15
- faction = list(ROLE_DEATHSQUAD)
- check_friendly_fire = TRUE
- status_flags = CANPUSH
- del_on_death = TRUE
- dodging = TRUE
- footstep_type = FOOTSTEP_MOB_SHOE
-
-/mob/living/simple_animal/hostile/nanotrasen/screaming
- icon_state = "nanotrasen"
- icon_living = "nanotrasen"
-
-/mob/living/simple_animal/hostile/nanotrasen/screaming/Aggro()
- ..()
- summon_backup(15)
- say("411 in progress, requesting backup!")
-
-
-/mob/living/simple_animal/hostile/nanotrasen/ranged
- icon_state = "nanotrasenranged"
- icon_living = "nanotrasenranged"
- ranged = 1
- retreat_distance = 3
- minimum_distance = 5
- casingtype = /obj/item/ammo_casing/c45
- projectilesound = 'sound/weapons/gun/pistol/shot_alt.ogg'
-
-
-/mob/living/simple_animal/hostile/nanotrasen/ranged/smg
- icon_state = "nanotrasenrangedsmg"
- icon_living = "nanotrasenrangedsmg"
- rapid = 3
- casingtype = /obj/item/ammo_casing/c46x30mm
- projectilesound = 'sound/weapons/gun/smg/shot.ogg'
diff --git a/code/modules/mob/living/simple_animal/hostile/stickman.dm b/code/modules/mob/living/simple_animal/hostile/stickman.dm
deleted file mode 100644
index 1eb03b07650c..000000000000
--- a/code/modules/mob/living/simple_animal/hostile/stickman.dm
+++ /dev/null
@@ -1,61 +0,0 @@
-/mob/living/simple_animal/hostile/stickman
- name = "Angry Stick Man"
- desc = "A being from a realm with only 2 dimensions. At least it's trying to stay faced towards you."
- icon_state = "stickman"
- icon_living = "stickman"
- icon_dead = "stickman_dead"
- icon_gib = "syndicate_gib"
- mob_biotypes = MOB_HUMANOID
- gender = MALE
- speak_chance = 0
- turns_per_move = 5
- speed = 0
- stat_attack = HARD_CRIT
- robust_searching = 1
- environment_smash = ENVIRONMENT_SMASH_NONE
- maxHealth = 100
- health = 100
- harm_intent_damage = 5
- obj_damage = 0
- melee_damage_lower = 10
- melee_damage_upper = 10
- attack_verb_continuous = "punches"
- attack_verb_simple = "punch"
- attack_sound = 'sound/weapons/punch1.ogg'
- a_intent = INTENT_HARM
- atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0)
- unsuitable_atmos_damage = 15
- faction = list("hostile","stickman")
- check_friendly_fire = 1
- status_flags = CANPUSH
- var/datum/action/boss/wizard_summon_minions/changesummons = /datum/action/boss/wizard_summon_minions
- var/summoned_by_wizard = 0
-
-/mob/living/simple_animal/hostile/stickman/ranged
- ranged = 1
- retreat_distance = 5
- minimum_distance = 5
- icon_state = "stickmanranged"
- icon_living = "stickmanranged"
- casingtype = /obj/item/ammo_casing/c45
- projectilesound = 'sound/misc/bang.ogg'
- loot = list(/obj/item/gun/ballistic/automatic/pistol/stickman)
-
-
-/mob/living/simple_animal/hostile/stickman/dog
- name = "Angry Stick Dog"
- desc = "Stickman's best friend, if he could see him at least."
- icon_state = "stickdog"
- icon_living = "stickdog"
- icon_dead = "stickdog_dead"
- mob_biotypes = MOB_BEAST
-
-/mob/living/simple_animal/hostile/stickman/Initialize(mapload, wizard_summoned)
- . = ..()
- new /obj/effect/temp_visual/paper_scatter(src)
- summoned_by_wizard = wizard_summoned
-
-/mob/living/simple_animal/hostile/stickman/death()
- ..()
- if(summoned_by_wizard == 1)
- changesummons.summoned_minions --
diff --git a/code/modules/mob/living/simple_animal/hostile/wizard.dm b/code/modules/mob/living/simple_animal/hostile/wizard.dm
deleted file mode 100644
index 0d97a1f18869..000000000000
--- a/code/modules/mob/living/simple_animal/hostile/wizard.dm
+++ /dev/null
@@ -1,82 +0,0 @@
-/mob/living/simple_animal/hostile/wizard
- name = "Space Wizard"
- desc = "EI NATH?"
- icon = 'icons/mob/simple_human.dmi'
- icon_state = "wizard"
- icon_living = "wizard"
- icon_dead = "wizard_dead"
- mob_biotypes = MOB_ORGANIC|MOB_HUMANOID
- speak_chance = 0
- turns_per_move = 3
- speed = 0
- maxHealth = 100
- health = 100
- harm_intent_damage = 5
- melee_damage_lower = 5
- melee_damage_upper = 5
- attack_verb_continuous = "punches"
- attack_verb_simple = "punch"
- attack_sound = 'sound/weapons/punch1.ogg'
- a_intent = INTENT_HARM
- atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0)
- unsuitable_atmos_damage = 15
- faction = list(ROLE_WIZARD)
- status_flags = CANPUSH
-
- retreat_distance = 3 //out of fireball range
- minimum_distance = 3
- del_on_death = 1
- loot = list(/obj/effect/mob_spawn/human/corpse/wizard,
- /obj/item/staff)
-
- var/obj/effect/proc_holder/spell/aimed/fireball/fireball = null
- var/obj/effect/proc_holder/spell/targeted/turf_teleport/blink/blink = null
- var/obj/effect/proc_holder/spell/targeted/projectile/magic_missile/mm = null
-
- var/next_cast = 0
-
- footstep_type = FOOTSTEP_MOB_SHOE
-
-/mob/living/simple_animal/hostile/wizard/Initialize()
- . = ..()
- fireball = new /obj/effect/proc_holder/spell/aimed/fireball
- fireball.clothes_req = 0
- fireball.human_req = 0
- fireball.player_lock = 0
- AddSpell(fireball)
- implants += new /obj/item/implant/exile(src)
-
- mm = new /obj/effect/proc_holder/spell/targeted/projectile/magic_missile
- mm.clothes_req = 0
- mm.human_req = 0
- mm.player_lock = 0
- AddSpell(mm)
-
- blink = new /obj/effect/proc_holder/spell/targeted/turf_teleport/blink
- blink.clothes_req = 0
- blink.human_req = 0
- blink.player_lock = 0
- blink.outer_tele_radius = 3
- AddSpell(blink)
-
-/mob/living/simple_animal/hostile/wizard/handle_automated_action()
- . = ..()
- if(target && next_cast < world.time)
- if((get_dir(src,target) in list(SOUTH,EAST,WEST,NORTH)) && fireball.cast_check(0,src)) //Lined up for fireball
- src.setDir(get_dir(src,target))
- fireball.perform(list(target), user = src)
- next_cast = world.time + 10 //One spell per second
- return .
- if(mm.cast_check(0,src))
- mm.choose_targets(src)
- next_cast = world.time + 10
- return .
- if(blink.cast_check(0,src)) //Spam Blink when you can
- blink.choose_targets(src)
- next_cast = world.time + 10
- return .
-
-/mob/living/simple_animal/hostile/wizard/planet
- weather_immunities = list("lava","ash")
- minbodytemp = 0
- maxbodytemp = INFINITY
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index 131e3f971113..2f79b2a13d69 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -821,8 +821,10 @@
src << browse(null, t1)
if(href_list["flavor_more"])
- usr << browse(text("[][]", name, replacetext(flavor_text, "\n", "
")), text("window=[];size=500x200", name))
- onclose(usr, "[name]")
+ var/datum/browser/popup = new(usr, "[name]'s flavor text", "[name]'s Flavor Text (expanded)", 500, 200)
+ popup.set_content(text("[][]", "[name]'s flavor text (expanded)", replacetext(flavor_text, "\n", "
")))
+ popup.open()
+ return
if(user != src)
if(href_list["item"] && user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY))
diff --git a/code/modules/mob/say_vr.dm b/code/modules/mob/say_vr.dm
index d2e6a4f0dda2..01e3a4d33b1a 100644
--- a/code/modules/mob/say_vr.dm
+++ b/code/modules/mob/say_vr.dm
@@ -11,7 +11,7 @@
if(usr != src)
to_chat(usr, span_warning("You can't set someone else's flavour text!"))
- var/msg = sanitize(input(usr,"Set the flavor text in your 'examine' verb. Can also be used for OOC notes about your character.","Flavor Text",html_decode(flavor_text)) as message|null)
+ var/msg = input(usr, "A snippet of text shown when others examine you, describing what you may look like. This can also be used for OOC notes.", "Flavor Text", html_decode("flavor_text")) as message|null
if(msg)
msg = copytext(msg, 1, MAX_MESSAGE_LEN)
@@ -22,10 +22,10 @@
/mob/proc/print_flavor_text()
if(flavor_text && flavor_text != "")
var/msg = replacetext(flavor_text, "\n", " ")
- if(length(msg) <= 100)
+ if(length(msg) <= MAX_SHORTFLAVOR_LEN)
return "[msg]"
else
- return "[copytext(msg, 1, 97)]... More..."
+ return "[copytext(msg, 1, MAX_SHORTFLAVOR_LEN)]... More..."
/mob/proc/get_top_level_mob()
if(istype(src.loc,/mob)&&src.loc!=src)
diff --git a/code/modules/modular_computers/computers/machinery/modular_console.dm b/code/modules/modular_computers/computers/machinery/modular_console.dm
index 6213cba441a6..a1af42ca3169 100644
--- a/code/modules/modular_computers/computers/machinery/modular_console.dm
+++ b/code/modules/modular_computers/computers/machinery/modular_console.dm
@@ -9,8 +9,8 @@
screen_icon_state_menu = "menu"
hardware_flag = PROGRAM_CONSOLE
density = TRUE
- base_idle_power_usage = 100
- base_active_power_usage = 500
+ base_idle_power_usage = IDLE_DRAW_MINIMAL
+ base_active_power_usage = ACTIVE_DRAW_LOW
max_hardware_size = 4
steel_sheet_cost = 10
light_strength = 2
diff --git a/code/modules/overmap/missions/research_mission.dm b/code/modules/overmap/missions/research_mission.dm
index a84b07b6529a..9481556d33be 100644
--- a/code/modules/overmap/missions/research_mission.dm
+++ b/code/modules/overmap/missions/research_mission.dm
@@ -106,7 +106,7 @@
density = FALSE
anchored = FALSE
use_power = NO_POWER_USE
- idle_power_usage = 400
+ idle_power_usage = IDLE_DRAW_MEDIUM
processing_flags = START_PROCESSING_MANUALLY
/obj/machinery/mission_scanner/wrench_act(mob/living/user, obj/item/I)
@@ -122,7 +122,7 @@
if(anchorvalue)
set_is_operational(TRUE)
START_PROCESSING(SSmachines, src)
- use_power = IDLE_POWER_USE
+ set_idle_power()
else
set_is_operational(FALSE)
STOP_PROCESSING(SSmachines, src)
diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm
index f85bd0bc77f9..40b0771981e4 100644
--- a/code/modules/paperwork/photocopier.dm
+++ b/code/modules/paperwork/photocopier.dm
@@ -24,8 +24,8 @@
anchored = TRUE
density = TRUE
use_power = IDLE_POWER_USE
- idle_power_usage = 30
- active_power_usage = 200
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_LOW
power_channel = AREA_USAGE_EQUIP
max_integrity = 300
integrity_failure = 0.33
diff --git a/code/modules/plumbing/plumbers/_plumb_machinery.dm b/code/modules/plumbing/plumbers/_plumb_machinery.dm
index 87096bad7e56..f4448c4a53ac 100644
--- a/code/modules/plumbing/plumbers/_plumb_machinery.dm
+++ b/code/modules/plumbing/plumbers/_plumb_machinery.dm
@@ -8,7 +8,7 @@
icon = 'icons/obj/plumbing/plumbers.dmi'
icon_state = "pump"
density = TRUE
- active_power_usage = 30
+ active_power_usage = ACTIVE_DRAW_MINIMAL
use_power = ACTIVE_POWER_USE
resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF
///Plumbing machinery is always gonna need reagents, so we might aswell put it here
diff --git a/code/modules/plumbing/plumbers/pumps.dm b/code/modules/plumbing/plumbers/pumps.dm
index 331e3fc24d89..294b50eff748 100644
--- a/code/modules/plumbing/plumbers/pumps.dm
+++ b/code/modules/plumbing/plumbers/pumps.dm
@@ -7,8 +7,8 @@
base_icon_state = "pump"
anchored = FALSE
density = TRUE
- idle_power_usage = 10
- active_power_usage = 1000
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_MEDIUM
rcd_cost = 30
rcd_delay = 40
diff --git a/code/modules/power/floodlight.dm b/code/modules/power/floodlight.dm
index e112b38f2fd7..0fe0b51c6193 100644
--- a/code/modules/power/floodlight.dm
+++ b/code/modules/power/floodlight.dm
@@ -61,8 +61,8 @@
density = TRUE
max_integrity = 100
integrity_failure = 0.8
- idle_power_usage = 100
- active_power_usage = 1000
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_MEDIUM
anchored = FALSE
light_power = 1.75
var/list/light_setting_list = list(0, 5, 10, 15)
diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm
index a6020d0fae11..3ed7e262a53d 100644
--- a/code/modules/power/gravitygenerator.dm
+++ b/code/modules/power/gravitygenerator.dm
@@ -115,7 +115,7 @@
/obj/machinery/gravity_generator/main
icon_state = "on_8"
idle_power_usage = 0
- active_power_usage = 3000
+ active_power_usage = ACTIVE_DRAW_EXTREME
power_channel = AREA_USAGE_ENVIRON
sprite_number = 8
use_power = IDLE_POWER_USE
@@ -286,7 +286,10 @@
/obj/machinery/gravity_generator/main/proc/set_state(new_state)
charging_state = POWER_IDLE
on = new_state
- use_power = on ? ACTIVE_POWER_USE : IDLE_POWER_USE
+ if(on)
+ set_active_power()
+ else
+ set_idle_power()
// Sound the alert if gravity was just enabled or disabled.
var/alert = FALSE
if(SSticker.IsRoundInProgress())
diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm
index 5b0655ddd42d..e92efb779d67 100644
--- a/code/modules/power/lighting.dm
+++ b/code/modules/power/lighting.dm
@@ -217,9 +217,9 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/light_construct/small, 28)
desc = "A lighting fixture."
layer = WALL_OBJ_LAYER
max_integrity = 100
- use_power = ACTIVE_POWER_USE
- idle_power_usage = 2
- active_power_usage = 20
+ use_power = IDLE_POWER_USE
+ idle_power_usage = 0
+ active_power_usage = 0
power_channel = AREA_USAGE_LIGHT //Lights are calc'd via area so they dont need to be in the machine list
var/on = FALSE // 1 if on, 0 if off
var/on_gs = FALSE
@@ -360,6 +360,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/light/small/built, 28)
addtimer(CALLBACK(src, PROC_REF(update), 0), 1)
/obj/machinery/light/Destroy()
+ if(on)
+ removeStaticPower(static_power_used, AREA_USAGE_STATIC_LIGHT)
var/area/A = get_area(src)
if(A)
on = FALSE
@@ -420,22 +422,18 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/light/small/built, 28)
if(trigger)
burn_out()
else
- use_power = ACTIVE_POWER_USE
set_light(BR, PO, CO)
else if(has_emergency_power(LIGHT_EMERGENCY_POWER_USE) && !turned_off())
- use_power = IDLE_POWER_USE
emergency_mode = TRUE
START_PROCESSING(SSmachines, src)
else
- use_power = IDLE_POWER_USE
set_light(0)
update_appearance()
- active_power_usage = (brightness * 10)
if(on != on_gs)
on_gs = on
if(on)
- static_power_used = brightness * 20 //20W per unit luminosity
+ static_power_used = brightness * LIGHT_DRAW //defined in power defines
addStaticPower(static_power_used, AREA_USAGE_STATIC_LIGHT)
else
removeStaticPower(static_power_used, AREA_USAGE_STATIC_LIGHT)
@@ -859,8 +857,11 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/light/small/built, 28)
if(!..()) //not caught by a mob
shatter()
-// update the icon state and description of the light
+/obj/item/light/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum)
+ shatter()
+ ..()
+// update the icon state and description of the light
/obj/item/light/proc/update()
switch(status)
if(LIGHT_OK)
diff --git a/code/modules/power/monitor.dm b/code/modules/power/monitor.dm
index b1c2a95a938f..debdba4946bf 100644
--- a/code/modules/power/monitor.dm
+++ b/code/modules/power/monitor.dm
@@ -7,8 +7,8 @@
icon_keyboard = "power_key"
light_color = LIGHT_COLOR_YELLOW
use_power = ACTIVE_POWER_USE
- idle_power_usage = 20
- active_power_usage = 100
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_MINIMAL
circuit = /obj/item/circuitboard/computer/powermonitor
tgui_id = "PowerMonitor"
@@ -49,10 +49,12 @@
/obj/machinery/computer/monitor/process()
if(!get_powernet())
- use_power = IDLE_POWER_USE
+ if(use_static_power != IDLE_POWER_USE)
+ set_idle_power()
search()
else
- use_power = ACTIVE_POWER_USE
+ if(use_static_power != ACTIVE_POWER_USE)
+ set_active_power()
record()
/obj/machinery/computer/monitor/proc/search() //keep in sync with /datum/computer_file/program/power_monitor's version
diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm
index e235e9328549..e63cd1298616 100644
--- a/code/modules/power/port_gen.dm
+++ b/code/modules/power/port_gen.dm
@@ -291,7 +291,6 @@
circuit = /obj/item/circuitboard/machine/pacman/super
sheet_path = /obj/item/stack/sheet/mineral/uranium
power_gen = 15000
- time_per_sheet = 85
/obj/machinery/power/port_gen/pacman/super/overheat()
. =..()
@@ -304,7 +303,6 @@
circuit = /obj/item/circuitboard/machine/pacman/mrs
sheet_path = /obj/item/stack/sheet/mineral/diamond
power_gen = 40000
- time_per_sheet = 80
/obj/machinery/power/port_gen/pacman/mrs/overheat()
. =..()
diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm
index 3cf5f5766097..a386a739622d 100644
--- a/code/modules/power/power.dm
+++ b/code/modules/power/power.dm
@@ -19,6 +19,7 @@
/obj/machinery/power/Destroy()
disconnect_from_network()
+ set_no_power()
return ..()
///////////////////////////////
@@ -96,14 +97,47 @@
chan = power_channel
A.use_power(amount, chan)
-/obj/machinery/proc/addStaticPower(value, powerchannel)
- var/area/A = get_area(src)
+/obj/machinery/proc/addStaticPower(value, powerchannel, area/A)
if(!A)
- return
+ if(get_area(src))
+ A = get_area(src)
+ else
+ return
A.addStaticPower(value, powerchannel)
-/obj/machinery/proc/removeStaticPower(value, powerchannel)
- addStaticPower(-value, powerchannel)
+/obj/machinery/proc/removeStaticPower(value, powerchannel, area/A)
+ addStaticPower(-value, powerchannel, A)
+
+/obj/machinery/proc/set_idle_power(area/A)
+ set_no_power(A)
+ if(use_power == NO_POWER_USE)
+ return
+ use_static_power = IDLE_POWER_USE
+ addStaticPower(idle_power_usage, power_channel + 3, A)
+
+/obj/machinery/proc/set_active_power(area/A)
+ set_no_power(A)
+ if(use_power == NO_POWER_USE)
+ return
+ use_static_power = ACTIVE_POWER_USE
+ addStaticPower(active_power_usage, power_channel + 3, A)
+
+/obj/machinery/proc/set_no_power(area/A)
+ switch(use_static_power)
+ if(IDLE_POWER_USE)
+ removeStaticPower(idle_power_usage, power_channel + 3, A)
+ if(ACTIVE_POWER_USE)
+ removeStaticPower(active_power_usage, power_channel + 3, A)
+ use_static_power = NO_POWER_USE
+
+/obj/machinery/proc/set_static_power(area/A)//used to set the actual draw to the value of use_static_power
+ switch(use_power)
+ if(NO_POWER_USE)
+ set_no_power(A)
+ if(IDLE_POWER_USE)
+ set_idle_power(A)
+ if(ACTIVE_POWER_USE)
+ set_active_power(A)
/**
* Called whenever the power settings of the containing area change
@@ -112,13 +146,15 @@
*
* Returns TRUE if the NOPOWER flag was toggled
*/
-/obj/machinery/proc/power_change()
+/obj/machinery/proc/power_change(area/A)
SIGNAL_HANDLER
SHOULD_CALL_PARENT(1)
+ set_no_power(A)
if(machine_stat & BROKEN)
return
if(powered(power_channel))
+ set_static_power(A)
if(machine_stat & NOPOWER)
SEND_SIGNAL(src, COMSIG_MACHINERY_POWER_RESTORED)
. = TRUE
diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm
index d17e12264706..2dcaa224a71e 100644
--- a/code/modules/power/singularity/emitter.dm
+++ b/code/modules/power/singularity/emitter.dm
@@ -11,8 +11,8 @@
circuit = /obj/item/circuitboard/machine/emitter
use_power = NO_POWER_USE
- idle_power_usage = 10
- active_power_usage = 300
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_LOW
var/icon_state_on = "emitter_+a"
var/icon_state_underpowered = "emitter_+u"
@@ -67,7 +67,7 @@
var/max_firedelay = 120
var/firedelay = 120
var/min_firedelay = 24
- var/power_usage = 350
+ var/power_usage = ACTIVE_DRAW_LOW
for(var/obj/item/stock_parts/micro_laser/L in component_parts)
max_firedelay -= 20 * L.rating
min_firedelay -= 4 * L.rating
diff --git a/code/modules/power/singularity/particle_accelerator/particle_control.dm b/code/modules/power/singularity/particle_accelerator/particle_control.dm
index 7bc3fa552ad3..ddcaf026a40e 100644
--- a/code/modules/power/singularity/particle_accelerator/particle_control.dm
+++ b/code/modules/power/singularity/particle_accelerator/particle_control.dm
@@ -6,8 +6,8 @@
anchored = FALSE
density = TRUE
use_power = NO_POWER_USE
- idle_power_usage = 500
- active_power_usage = 10000
+ idle_power_usage = IDLE_DRAW_MEDIUM
+ active_power_usage = ACTIVE_DRAW_EXTREME * 2
dir = NORTH
mouse_opacity = MOUSE_OPACITY_OPAQUE
var/strength_upper_limit = 2
@@ -53,7 +53,7 @@
connected_parts.Cut()
return
if(!part_scan())
- use_power = IDLE_POWER_USE
+ set_idle_power()
active = FALSE
connected_parts.Cut()
@@ -106,7 +106,7 @@
active = FALSE
use_power = NO_POWER_USE
else if(!machine_stat && construction_state == PA_CONSTRUCTION_COMPLETE)
- use_power = IDLE_POWER_USE
+ set_idle_power()
/obj/machinery/particle_accelerator/control_box/process()
if(active)
@@ -175,14 +175,14 @@
message_admins("PA Control Computer turned [active ?"ON":"OFF"] by [usr ? ADMIN_LOOKUPFLW(usr) : "outside forces"] in [ADMIN_VERBOSEJMP(src)]")
log_game("PA Control Computer turned [active ?"ON":"OFF"] by [usr ? "[key_name(usr)]" : "outside forces"] at [AREACOORD(src)]")
if(active)
- use_power = ACTIVE_POWER_USE
+ set_active_power()
for(var/CP in connected_parts)
var/obj/structure/particle_accelerator/part = CP
part.strength = strength
part.powered = TRUE
part.update_appearance()
else
- use_power = IDLE_POWER_USE
+ set_idle_power()
for(var/CP in connected_parts)
var/obj/structure/particle_accelerator/part = CP
part.strength = null
diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm
index 8ca409051d6c..d25fc732abe7 100644
--- a/code/modules/power/solar.dm
+++ b/code/modules/power/solar.dm
@@ -324,7 +324,7 @@
icon_state = "computer"
density = TRUE
use_power = IDLE_POWER_USE
- idle_power_usage = 250
+ idle_power_usage = IDLE_DRAW_LOW
max_integrity = 200
integrity_failure = 0.5
var/icon_screen = "solar"
diff --git a/code/modules/projectiles/ammunition/_ammunition.dm b/code/modules/projectiles/ammunition/_ammunition.dm
index 5b7317972175..26597a64f33b 100644
--- a/code/modules/projectiles/ammunition/_ammunition.dm
+++ b/code/modules/projectiles/ammunition/_ammunition.dm
@@ -38,6 +38,8 @@
var/list/bounce_sfx_override // if true, overrides the bouncing sfx from the turf to this one
+ var/bullet_per_box
+
/obj/item/ammo_casing/spent
name = "spent bullet casing"
@@ -49,6 +51,7 @@
BB = new projectile_type(src)
pixel_x = base_pixel_x + rand(-10, 10)
pixel_y = base_pixel_y + rand(-10, 10)
+ item_flags |= NO_PIXEL_RANDOM_DROP
if(auto_rotate)
transform = transform.Turn(pick(0, 90, 180, 270))
update_appearance()
@@ -100,9 +103,14 @@
bounce_away(FALSE, NONE)
. = ..()
-/obj/item/ammo_casing/proc/on_eject()
+/obj/item/ammo_casing/proc/on_eject(atom/shooter)
forceMove(drop_location()) //Eject casing onto ground.
- bounce_away(TRUE)
+ pixel_x = rand(-4, 4)
+ pixel_y = rand(-4, 4)
+ pixel_z = 8 //bounce time
+ var/angle_of_movement = !isnull(shooter) ? (rand(-3000, 3000) / 100) + dir2angle(turn(shooter.dir, 180)) : rand(-3000, 3000) / 100
+ AddComponent(/datum/component/movable_physics, _horizontal_velocity = rand(400, 450) / 100, _vertical_velocity = rand(400, 450) / 100, _horizontal_friction = rand(20, 24) / 100, _z_gravity = PHYSICS_GRAV_STANDARD, _z_floor = 0, _angle_of_movement = angle_of_movement, _bounce_sound = bounce_sfx_override)
+
/obj/item/ammo_casing/proc/bounce_away(still_warm = FALSE, bounce_delay = 3)
if(!heavy_metal)
diff --git a/code/modules/projectiles/ammunition/ballistic/lmg.dm b/code/modules/projectiles/ammunition/ballistic/lmg.dm
index 90030e7b0944..d46001951ba4 100644
--- a/code/modules/projectiles/ammunition/ballistic/lmg.dm
+++ b/code/modules/projectiles/ammunition/ballistic/lmg.dm
@@ -6,6 +6,7 @@
icon_state = "rifle-steel"
caliber = "7.12x82mm"
projectile_type = /obj/projectile/bullet/mm712x82
+ bullet_per_box = 100
/obj/item/ammo_casing/mm712x82/ap
name = "7.12x82mm armor-piercing bullet casing"
diff --git a/code/modules/projectiles/ammunition/ballistic/pistol.dm b/code/modules/projectiles/ammunition/ballistic/pistol.dm
index a105ae6602ee..0f37b5426d2d 100644
--- a/code/modules/projectiles/ammunition/ballistic/pistol.dm
+++ b/code/modules/projectiles/ammunition/ballistic/pistol.dm
@@ -6,6 +6,7 @@
icon_state = "pistol-steel"
caliber = "10mm"
projectile_type = /obj/projectile/bullet/c10mm
+ bullet_per_box = 50
/obj/item/ammo_casing/c10mm/surplus
name = "10mm surplus bullet casing"
@@ -45,6 +46,7 @@
icon_state = "pistol-brass"
caliber = "9mm"
projectile_type = /obj/projectile/bullet/c9mm
+ bullet_per_box = 50
/obj/item/ammo_casing/c9mm/surplus
name = "9mm surplus bullet casing"
@@ -84,6 +86,7 @@
icon_state = "pistol-steel"
caliber = ".45"
projectile_type = /obj/projectile/bullet/c45
+ bullet_per_box = 50
/obj/item/ammo_casing/c45/surplus
name = ".45 surplus bullet casing"
@@ -122,6 +125,7 @@
desc = "A .50 AE bullet casing."
caliber = ".50 AE"
projectile_type = /obj/projectile/bullet/a50AE
+ bullet_per_box = 20
/obj/item/ammo_casing/a50AE/hp
name = ".50 AE hollow point bullet casing"
@@ -134,4 +138,5 @@
desc = "A .22 LR bullet casing."
projectile_type = /obj/projectile/bullet/c22lr
caliber = "22lr"
+ bullet_per_box = 75
diff --git a/code/modules/projectiles/ammunition/ballistic/revolver.dm b/code/modules/projectiles/ammunition/ballistic/revolver.dm
index d5684e834e3d..fa77095de9b9 100644
--- a/code/modules/projectiles/ammunition/ballistic/revolver.dm
+++ b/code/modules/projectiles/ammunition/ballistic/revolver.dm
@@ -6,6 +6,7 @@
caliber = ".357"
icon_state = "magnum-brass"
projectile_type = /obj/projectile/bullet/a357
+ bullet_per_box = 50
/obj/item/ammo_casing/a357/match
name = ".357 match bullet casing"
@@ -28,6 +29,7 @@
caliber = ".45-70"
icon_state = "magnum-brass"
projectile_type = /obj/projectile/bullet/a4570
+ bullet_per_box = 12
/obj/item/ammo_casing/a4570/match
name = ".45-70 match bullet casing"
@@ -53,6 +55,7 @@
desc = "A .38 Special bullet casing."
caliber = ".38"
projectile_type = /obj/projectile/bullet/c38
+ bullet_per_box = 50
/obj/item/ammo_casing/c38/surplus
name = ".38 surplus bullet casing"
diff --git a/code/modules/projectiles/ammunition/ballistic/rifle.dm b/code/modules/projectiles/ammunition/ballistic/rifle.dm
index 5b93bfaa2463..57592185aff6 100644
--- a/code/modules/projectiles/ammunition/ballistic/rifle.dm
+++ b/code/modules/projectiles/ammunition/ballistic/rifle.dm
@@ -6,6 +6,7 @@
icon_state = "rifle-brass"
caliber = "8x50mmR"
projectile_type = /obj/projectile/bullet/a8_50r
+ bullet_per_box = 20
/obj/item/ammo_casing/a8_50rhp
name = "8x50mmR hollow point bullet casing"
@@ -23,6 +24,7 @@
icon_state = "caseless"
caliber = "a858"
projectile_type = /obj/projectile/bullet/a858
+ bullet_per_box = 20
// .300 Magnum (Smile Rifle)
@@ -32,6 +34,7 @@
icon_state = "rifle-steel"
caliber = "a300"
projectile_type = /obj/projectile/bullet/a300
+ bullet_per_box = 20
// 5.56x39mm (M-90gl Carbine & P-16)
@@ -41,6 +44,7 @@
icon_state = "rifle-brass"
caliber = "5.56x45mm"
projectile_type = /obj/projectile/bullet/a556_45
+ bullet_per_box = 80
// 5.45x39mm (SKM-24v)
@@ -51,6 +55,7 @@
caliber = "5.45x39mm"
randomspread = TRUE
projectile_type = /obj/projectile/bullet/a545_39
+ bullet_per_box = 80
/obj/item/ammo_casing/a545_39/recycled
name = "recycled 5.45x39mm bullet casing"
@@ -67,6 +72,7 @@
icon_state = "rifle-brass"
caliber = "7.62x40mm"
projectile_type = /obj/projectile/bullet/a762_40
+ bullet_per_box = 80
// .300 Blackout (Polymer Survivor Rifle)
@@ -76,6 +82,7 @@
icon_state = "rifle-steel"
caliber = ".300 BLK"
projectile_type = /obj/projectile/bullet/aac_300blk
+ bullet_per_box = 20
/obj/item/ammo_casing/aac_300blk/recycled
name = "recycled .300 BLK bullet casing"
@@ -91,6 +98,7 @@
icon_state = "rifle-brass"
caliber = ".308"
projectile_type = /obj/projectile/bullet/a308
+ bullet_per_box = 20
/obj/item/ammo_casing/caseless/c299
name = ".229 Eoehoma caseless bullet casing"
@@ -98,3 +106,4 @@
icon_state = "caseless"
caliber = ".299 caseless"
projectile_type = /obj/projectile/bullet/c299
+ bullet_per_box = 80
diff --git a/code/modules/projectiles/ammunition/ballistic/shotgun.dm b/code/modules/projectiles/ammunition/ballistic/shotgun.dm
index b297ee30e776..8e5f2e128ac7 100644
--- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm
+++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm
@@ -8,6 +8,7 @@
caliber = "12ga"
custom_materials = list(/datum/material/iron=4000)
projectile_type = /obj/projectile/bullet/slug
+ bullet_per_box = 25
bounce_sfx_override = 'sound/weapons/gun/general/bulletcasing_shotgun_bounce.ogg'
diff --git a/code/modules/projectiles/ammunition/ballistic/smg.dm b/code/modules/projectiles/ammunition/ballistic/smg.dm
index d947736d5f25..74bb35b1ec2e 100644
--- a/code/modules/projectiles/ammunition/ballistic/smg.dm
+++ b/code/modules/projectiles/ammunition/ballistic/smg.dm
@@ -6,6 +6,7 @@
icon_state = "rifle-brass"
caliber = "4.6x30mm"
projectile_type = /obj/projectile/bullet/c46x30mm
+ bullet_per_box = 50
/obj/item/ammo_casing/c46x30mm/ap
name = "4.6x30mm armor-piercing bullet casing"
@@ -18,6 +19,7 @@
desc = "A 4.6x30mm incendiary bullet casing."
bullet_skin = "incen"
projectile_type = /obj/projectile/bullet/incendiary/c46x30mm
+ bullet_per_box = 50
// 4.73x33mm caseless (Solar)
@@ -27,6 +29,7 @@
icon_state = "caseless"
caliber = "4.73x33mm caseless"
projectile_type = /obj/projectile/bullet/c47x33mm
+ bullet_per_box = 50
// 5.56mm HITP caseless (Pistole C)
diff --git a/code/modules/projectiles/ammunition/ballistic/sniper.dm b/code/modules/projectiles/ammunition/ballistic/sniper.dm
index af7369204e6d..e4b668c2228f 100644
--- a/code/modules/projectiles/ammunition/ballistic/sniper.dm
+++ b/code/modules/projectiles/ammunition/ballistic/sniper.dm
@@ -6,6 +6,7 @@
icon_state = "big-steel"
caliber = ".50 BMG"
projectile_type = /obj/projectile/bullet/p50
+ bullet_per_box = 20
/obj/item/ammo_casing/p50/soporific
name = ".50 BMG soporific bullet casing"
diff --git a/code/modules/projectiles/ammunition/caseless/_caseless.dm b/code/modules/projectiles/ammunition/caseless/_caseless.dm
index 2fe0ecf808eb..0d364cc93f5a 100644
--- a/code/modules/projectiles/ammunition/caseless/_caseless.dm
+++ b/code/modules/projectiles/ammunition/caseless/_caseless.dm
@@ -3,7 +3,7 @@
firing_effect_type = null
heavy_metal = FALSE
-/obj/item/ammo_casing/caseless/on_eject()
+/obj/item/ammo_casing/caseless/on_eject(atom/shooter)
qdel(src)
// Overridden; caseless ammo does not distinguish between "live" and "empty"/"spent" icon states (because it has no casing).
diff --git a/code/modules/projectiles/ammunition/caseless/foam.dm b/code/modules/projectiles/ammunition/caseless/foam.dm
index 3c71d31eb5ed..0051680fd1e8 100644
--- a/code/modules/projectiles/ammunition/caseless/foam.dm
+++ b/code/modules/projectiles/ammunition/caseless/foam.dm
@@ -9,6 +9,7 @@
custom_materials = list(/datum/material/iron = 11.25)
harmful = FALSE
var/modified = FALSE
+ bullet_per_box = 40
/obj/item/ammo_casing/caseless/foam_dart/update_icon_state()
. = ..()
diff --git a/code/modules/projectiles/boxes_magazines/_box_magazine.dm b/code/modules/projectiles/boxes_magazines/_box_magazine.dm
index 87f47b99d36d..08a87e017aad 100644
--- a/code/modules/projectiles/boxes_magazines/_box_magazine.dm
+++ b/code/modules/projectiles/boxes_magazines/_box_magazine.dm
@@ -51,7 +51,7 @@
if(!start_empty)
for(var/i = 1, i <= max_ammo, i++)
stored_ammo += new ammo_type(src)
- update_appearance()
+ update_ammo_count()
///gets a round from the magazine, if keep is TRUE the round will stay in the gun
/obj/item/ammo_box/proc/get_round(keep = FALSE)
@@ -107,8 +107,8 @@
if(!silent)
playsound(get_turf(attacking_box), '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 attacking_box
num_loaded++
- attacking_obj.update_appearance()
- update_appearance()
+ attacking_box.update_ammo_count()
+ update_ammo_count()
if(istype(attacking_obj, /obj/item/ammo_casing))
var/obj/item/ammo_casing/casing_to_insert = attacking_obj
@@ -117,7 +117,7 @@
if(!silent)
playsound(casing_to_insert, 'sound/weapons/gun/general/mag_bullet_insert.ogg', 60, TRUE)
num_loaded++
- update_appearance()
+ update_ammo_count()
if(num_loaded)
diff --git a/code/modules/projectiles/boxes_magazines/generic_ammo_box.dm b/code/modules/projectiles/boxes_magazines/generic_ammo_box.dm
new file mode 100644
index 000000000000..2c88824623e2
--- /dev/null
+++ b/code/modules/projectiles/boxes_magazines/generic_ammo_box.dm
@@ -0,0 +1,53 @@
+/obj/item/ammo_box/generic
+ name = "generic ammo box"
+ desc = "A generic, unbranded box of ammo. It doesn't have great capacity, but it can hold a variety of different calibers."
+ max_ammo = 20
+ start_empty = TRUE
+ icon_state = "generic-ammo"
+ /// Does the box currently have an ammo type set?
+ var/ammo_set = FALSE
+ /// Name of the currently set ammo type
+ var/ammo_name
+
+/obj/item/ammo_box/generic/update_ammo_count()
+ . = ..()
+ if(LAZYLEN(stored_ammo) == 0)
+ ammo_set = FALSE
+ ammo_type = /obj/item/ammo_casing
+
+/obj/item/ammo_box/generic/proc/update_max_ammo(obj/item/ammo_casing/ammo)
+ if(ammo.bullet_per_box)
+ max_ammo = round(ammo.bullet_per_box)
+ else
+ max_ammo = 10
+
+ return
+
+/obj/item/ammo_box/generic/attackby(obj/item/attacking_obj, mob/user, params, silent, replace_spent)
+ . = ..()
+
+ if(!ammo_set && istype(attacking_obj, /obj/item/ammo_casing))
+ var/obj/item/ammo_casing/ammo_load = attacking_obj.type
+ ammo_type = ammo_load
+ ammo_set = TRUE
+ ammo_name = attacking_obj.name
+ update_max_ammo(attacking_obj)
+ to_chat(user, span_notice("You set the box to hold [attacking_obj]!"))
+
+ if(istype(attacking_obj, /obj/item/pen))
+ if(!user.is_literate())
+ to_chat(user, span_notice("You scribble illegibly on the cover of [src]!"))
+ return
+ var/inputvalue = stripped_input(user, "What would you like to label the box?", "Box Labelling", "", MAX_NAME_LEN)
+
+ if(!inputvalue)
+ return
+
+ if(user.canUseTopic(src, BE_CLOSE))
+ name = "[initial(src.name)][(inputvalue ? " - '[inputvalue]'" : null)]"
+
+/obj/item/ammo_box/generic/examine(mob/user)
+ . = ..()
+ . += span_notice("[ammo_set ? "It's set to hold [ammo_name]\s. The box can hold up to [max_ammo] rounds." : "It doesn't have an ammo type set. Use a bullet on the box to set it."]")
+ . += span_notice("You can use a pen on it to rename the box.")
+
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index 5cd55858537a..ca4d0217b380 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -209,7 +209,7 @@
zoom(user, user.dir, FALSE) //we can only stay zoomed in if it's in our hands //yeah and we only unzoom if we're actually zoomed using the gun!!
//called after the gun has successfully fired its chambered ammo.
-/obj/item/gun/proc/process_chamber()
+/obj/item/gun/proc/process_chamber(atom/shooter)
SEND_SIGNAL(src, COMSIG_GUN_CHAMBER_PROCESSED)
return FALSE
@@ -357,7 +357,7 @@
shoot_with_empty_chamber(user)
firing_burst = FALSE
return FALSE
- process_chamber()
+ process_chamber(shooter = user)
update_appearance()
return TRUE
@@ -408,7 +408,7 @@
else
shoot_with_empty_chamber(user)
return
- process_chamber()
+ process_chamber(shooter = user)
update_appearance()
if(fire_delay)
semicd = TRUE
diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm
index 227abceffa01..559b7daa643a 100644
--- a/code/modules/projectiles/guns/ballistic.dm
+++ b/code/modules/projectiles/guns/ballistic.dm
@@ -144,13 +144,13 @@
if(!chambered && empty_indicator)
. += "[icon_state]_empty"
-/obj/item/gun/ballistic/process_chamber(empty_chamber = TRUE, from_firing = TRUE, chamber_next_round = TRUE)
+/obj/item/gun/ballistic/process_chamber(empty_chamber = TRUE, from_firing = TRUE, chamber_next_round = TRUE, atom/shooter)
if(!semi_auto && from_firing)
return
var/obj/item/ammo_casing/casing = chambered //Find chambered round
if(istype(casing)) //there's a chambered round
if(casing_ejector || !from_firing)
- casing.on_eject()
+ casing.on_eject(shooter)
chambered = null
else if(empty_chamber)
chambered = null
@@ -179,7 +179,7 @@
bolt_locked = FALSE
if (user)
to_chat(user, "You rack the [bolt_wording] of \the [src].")
- process_chamber(!chambered, FALSE)
+ process_chamber(!chambered, FALSE, shooter = user)
if (bolt_type == BOLT_TYPE_LOCKING && !chambered)
bolt_locked = TRUE
playsound(src, lock_back_sound, lock_back_sound_volume, lock_back_sound_vary)
@@ -267,7 +267,7 @@
if (istype(A, /obj/item/ammo_casing) || istype(A, /obj/item/ammo_box))
if (bolt_type == BOLT_TYPE_NO_BOLT || internal_magazine)
if (chambered && !chambered.BB)
- chambered.on_eject()
+ chambered.on_eject(shooter = user)
chambered = null
var/num_loaded = magazine.attackby(A, user, params)
if (num_loaded)
@@ -364,7 +364,10 @@
var/num_unloaded = 0
for(var/obj/item/ammo_casing/CB in get_ammo_list(FALSE, TRUE))
CB.forceMove(drop_location())
- CB.bounce_away(FALSE, NONE)
+
+ var/angle_of_movement =(rand(-3000, 3000) / 100) + dir2angle(turn(user.dir, 180))
+ CB.AddComponent(/datum/component/movable_physics, _horizontal_velocity = rand(350, 450) / 100, _vertical_velocity = rand(400, 450) / 100, _horizontal_friction = rand(20, 24) / 100, _z_gravity = PHYSICS_GRAV_STANDARD, _z_floor = 0, _angle_of_movement = angle_of_movement, _bounce_sound = CB.bounce_sfx_override)
+
num_unloaded++
SSblackbox.record_feedback("tally", "station_mess_created", 1, CB.name)
if (num_unloaded)
@@ -422,7 +425,7 @@ GLOBAL_LIST_INIT(gun_saw_types, typecacheof(list(
///Handles all the logic of sawing off guns,
/obj/item/gun/ballistic/proc/sawoff(mob/user, obj/item/saw)
- if(!saw.get_sharpness() || !is_type_in_typecache(saw, GLOB.gun_saw_types) && !saw.tool_behaviour == TOOL_SAW) //needs to be sharp. Otherwise turned off eswords can cut this.
+ if(!saw.get_sharpness() || !is_type_in_typecache(saw, GLOB.gun_saw_types) && saw.tool_behaviour != TOOL_SAW) //needs to be sharp. Otherwise turned off eswords can cut this.
return
if(sawn_off)
to_chat(user, "\The [src] is already shortened!")
diff --git a/code/modules/projectiles/guns/ballistic/pistol.dm b/code/modules/projectiles/guns/ballistic/pistol.dm
index 1cb86fec256d..4c3aafad7ce3 100644
--- a/code/modules/projectiles/guns/ballistic/pistol.dm
+++ b/code/modules/projectiles/guns/ballistic/pistol.dm
@@ -79,6 +79,12 @@
/obj/item/gun/ballistic/automatic/pistol/candor/factory/no_mag
spawnwithmagazine = FALSE
+/obj/item/gun/ballistic/automatic/pistol/candor/phenex
+ name = "\improper HP Phenex"
+ desc = "A uniquely modified version of the Candor, famously created by Hunter's Pride. Named after the daemonic Phoenix of legend that the Ashen Huntsman had once slain, this hell-kissed weapon is more visually intimidating than its original counterpart, but mechanically acts the same. Chambered in .45."
+ icon_state = "phenex"
+ item_state = "hp_phenex"
+
/obj/item/gun/ballistic/automatic/pistol/deagle
name = "\improper Desert Eagle"
desc = "An oversized handgun chambered in .50 AE. A true hand cannon."
diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm
index dea8c12e5a2e..7fcc3c4b500c 100644
--- a/code/modules/projectiles/guns/ballistic/revolver.dm
+++ b/code/modules/projectiles/guns/ballistic/revolver.dm
@@ -57,7 +57,7 @@
. += "[base_icon_state || initial(icon_state)][safety ? "_hammer_up" : "_hammer_down"]"
-/obj/item/gun/ballistic/revolver/process_chamber(empty_chamber = TRUE, from_firing = TRUE, chamber_next_round = TRUE)
+/obj/item/gun/ballistic/revolver/process_chamber(empty_chamber = TRUE, from_firing = TRUE, chamber_next_round = TRUE, atom/shooter)
SEND_SIGNAL(src, COMSIG_UPDATE_AMMO_HUD)
return ..()
@@ -84,7 +84,9 @@
if(!casing_to_eject)
continue
casing_to_eject.forceMove(drop_location())
- casing_to_eject.bounce_away(FALSE, NONE)
+ var/angle_of_movement =(rand(-3000, 3000) / 100) + dir2angle(turn(user.dir, 180))
+ casing_to_eject.AddComponent(/datum/component/movable_physics, _horizontal_velocity = rand(450, 550) / 100, _vertical_velocity = rand(400, 450) / 100, _horizontal_friction = rand(20, 24) / 100, _z_gravity = PHYSICS_GRAV_STANDARD, _z_floor = 0, _angle_of_movement = angle_of_movement, _bounce_sound = casing_to_eject.bounce_sfx_override)
+
num_unloaded++
SSblackbox.record_feedback("tally", "station_mess_created", 1, casing_to_eject.name)
chamber_round(FALSE)
@@ -98,7 +100,7 @@
var/doafter_time = 0.4 SECONDS
if(!do_mob(user,user,doafter_time))
break
- if(!eject_casing())
+ if(!eject_casing(user))
doafter_time = 0 SECONDS
else
num_unloaded++
@@ -121,7 +123,9 @@
return FALSE
playsound(src, eject_sound, eject_sound_volume, eject_sound_vary)
casing_to_eject.forceMove(drop_location())
- casing_to_eject.bounce_away(FALSE, NONE)
+ var/angle_of_movement =(rand(-3000, 3000) / 100) + dir2angle(turn(user.dir, 180))
+ casing_to_eject.AddComponent(/datum/component/movable_physics, _horizontal_velocity = rand(350, 450) / 100, _vertical_velocity = rand(400, 450) / 100, _horizontal_friction = rand(20, 24) / 100, _z_gravity = PHYSICS_GRAV_STANDARD, _z_floor = 0, _angle_of_movement = angle_of_movement, _bounce_sound = casing_to_eject.bounce_sfx_override)
+
SSblackbox.record_feedback("tally", "station_mess_created", 1, casing_to_eject.name)
if(!gate_loaded)
magazine.stored_ammo[casing_index] = null
@@ -139,6 +143,12 @@
/obj/item/gun/ballistic/revolver/proc/insert_casing(mob/living/user, obj/item/ammo_casing/casing_to_insert, allow_ejection)
if(!casing_to_insert)
return FALSE
+
+// Check if the bullet's caliber matches the magazine's caliber.If not, send a warning message to the user and return FALSE.
+ if(casing_to_insert.caliber != magazine.caliber)
+ to_chat(user, "\The [casing_to_insert] is not suitable for [src].")
+ return FALSE
+
var/list/rounds = magazine.ammo_list()
var/obj/item/ammo_casing/slot = rounds[gate_offset+1] //byond arrays start at 1, so we add 1 to get the correct index
var/doafter_time = 0.4 SECONDS
@@ -270,7 +280,6 @@
playsound(src, rack_sound, rack_sound_volume, rack_sound_vary)
chamber_round(TRUE)
- //playsound(src, rack_sound, rack_sound_volume, rack_sound_vary)
SEND_SIGNAL(src, COMSIG_UPDATE_AMMO_HUD)
update_appearance()
diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm
index 1632e175fd8e..24cf3323048a 100644
--- a/code/modules/projectiles/guns/ballistic/rifle.dm
+++ b/code/modules/projectiles/guns/ballistic/rifle.dm
@@ -33,11 +33,11 @@
. = ..()
. += "[icon_state]_bolt[bolt_locked ? "_locked" : ""]"
-/obj/item/gun/ballistic/rifle/rack(mob/user = null)
+/obj/item/gun/ballistic/rifle/rack(mob/living/user)
if (bolt_locked == FALSE)
to_chat(user, "You open the bolt of \the [src].")
playsound(src, rack_sound, rack_sound_volume, rack_sound_vary)
- process_chamber(FALSE, FALSE, FALSE)
+ process_chamber(FALSE, FALSE, FALSE, shooter = user)
bolt_locked = TRUE
update_appearance()
if (magazine && !magazine?.ammo_count() && empty_autoeject && !internal_magazine)
diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm
index 0b7e526c8a2b..9d257821344b 100644
--- a/code/modules/projectiles/guns/ballistic/shotgun.dm
+++ b/code/modules/projectiles/guns/ballistic/shotgun.dm
@@ -64,6 +64,7 @@
mag_type = /obj/item/ammo_box/magazine/internal/shot/lethal
manufacturer = MANUFACTURER_HUNTERSPRIDE
fire_delay = 1
+ rack_delay = 2
can_be_sawn_off = TRUE
@@ -303,7 +304,9 @@
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)
+ var/angle_of_movement =(rand(-3000, 3000) / 100) + dir2angle(turn(user.dir, 180))
+ casing_bullet.AddComponent(/datum/component/movable_physics, _horizontal_velocity = rand(450, 550) / 100, _vertical_velocity = rand(400, 450) / 100, _horizontal_friction = rand(20, 24) / 100, _z_gravity = PHYSICS_GRAV_STANDARD, _z_floor = 0, _angle_of_movement = angle_of_movement, _bounce_sound = casing_bullet.bounce_sfx_override)
+
num_unloaded++
SSblackbox.record_feedback("tally", "station_mess_created", 1, casing_bullet.name)
if (num_unloaded)
diff --git a/code/modules/projectiles/guns/ballistic/toy.dm b/code/modules/projectiles/guns/ballistic/toy.dm
index 95911c9269bc..5f62b8c7ca78 100644
--- a/code/modules/projectiles/guns/ballistic/toy.dm
+++ b/code/modules/projectiles/guns/ballistic/toy.dm
@@ -59,8 +59,8 @@
. = ..()
. += "[icon_state]_toy"
-/obj/item/gun/ballistic/shotgun/toy/process_chamber(empty_chamber = 0)
- ..()
+/obj/item/gun/ballistic/shotgun/toy/process_chamber(empty_chamber = 0, from_firing = TRUE, chamber_next_round = TRUE, atom/shooter)
+ . = ..()
if(chambered && !chambered.BB)
qdel(chambered)
diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm
index a6e424901d5e..705789b3484a 100644
--- a/code/modules/projectiles/guns/energy.dm
+++ b/code/modules/projectiles/guns/energy.dm
@@ -204,7 +204,7 @@
if(!chambered.BB)
chambered.newshot()
-/obj/item/gun/energy/process_chamber()
+/obj/item/gun/energy/process_chamber(atom/shooter)
if(chambered && !chambered.BB) //if BB is null, i.e the shot has been fired...
var/obj/item/ammo_casing/energy/shot = chambered
cell.use(shot.e_cost)//... drain the cell cell
diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm
index 27b7b65b622d..d84655fb5813 100644
--- a/code/modules/projectiles/guns/energy/special.dm
+++ b/code/modules/projectiles/guns/energy/special.dm
@@ -221,7 +221,7 @@
if(istype(WH))
WH.gun = WEAKREF(src)
-/obj/item/gun/energy/wormhole_projector/process_chamber()
+/obj/item/gun/energy/wormhole_projector/process_chamber(atom/shooter)
..()
select_fire()
diff --git a/code/modules/projectiles/guns/magic.dm b/code/modules/projectiles/guns/magic.dm
index 9360c24be499..1f8be937b645 100644
--- a/code/modules/projectiles/guns/magic.dm
+++ b/code/modules/projectiles/guns/magic.dm
@@ -41,7 +41,7 @@
if (charges && chambered && !chambered.BB)
chambered.newshot()
-/obj/item/gun/magic/process_chamber()
+/obj/item/gun/magic/process_chamber(atom/shooter)
if(chambered && !chambered.BB) //if BB is null, i.e the shot has been fired...
charges--//... drain a charge
recharge_newshot()
diff --git a/code/modules/projectiles/guns/misc/chem_gun.dm b/code/modules/projectiles/guns/misc/chem_gun.dm
index fef47121af5f..7c99b7156000 100644
--- a/code/modules/projectiles/guns/misc/chem_gun.dm
+++ b/code/modules/projectiles/guns/misc/chem_gun.dm
@@ -29,7 +29,7 @@
/obj/item/gun/chem/can_shoot()
return syringes_left
-/obj/item/gun/chem/process_chamber()
+/obj/item/gun/chem/process_chamber(atom/shooter)
if(chambered && !chambered.BB && syringes_left)
chambered.newshot()
diff --git a/code/modules/projectiles/guns/misc/syringe_gun.dm b/code/modules/projectiles/guns/misc/syringe_gun.dm
index 96927eb91afc..84d00b226371 100644
--- a/code/modules/projectiles/guns/misc/syringe_gun.dm
+++ b/code/modules/projectiles/guns/misc/syringe_gun.dm
@@ -29,7 +29,7 @@
/obj/item/gun/syringe/can_shoot()
return syringes.len
-/obj/item/gun/syringe/process_chamber()
+/obj/item/gun/syringe/process_chamber(atom/shooter)
if(chambered && !chambered.BB) //we just fired
recharge_newshot()
diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm
index 458c19d053da..6ca85ca933ec 100644
--- a/code/modules/projectiles/projectile/magic.dm
+++ b/code/modules/projectiles/projectile/magic.dm
@@ -237,8 +237,6 @@
/mob/living/simple_animal/hostile/asteroid/goliath/beast,
/mob/living/simple_animal/hostile/headcrab,
/mob/living/simple_animal/hostile/morph,
- /mob/living/simple_animal/hostile/stickman,
- /mob/living/simple_animal/hostile/stickman/dog,
/mob/living/simple_animal/hostile/megafauna/dragon/lesser,
/mob/living/simple_animal/hostile/gorilla,
/mob/living/simple_animal/parrot,
diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm
index f62a3a32035d..86f4e05226e4 100644
--- a/code/modules/reagents/chemistry/holder.dm
+++ b/code/modules/reagents/chemistry/holder.dm
@@ -389,7 +389,7 @@
for(var/addiction in cached_addictions)
var/datum/reagent/A = addiction
if(istype(R, A))
- A.addiction_stage = -15 // you're satisfied for a good while.
+ A.addiction_stage = -30 // you're satisfied for a good while.
need_mob_update += R.on_mob_life(C)
if(can_overdose)
diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
index 290aec1f6c54..037256db302f 100644
--- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
@@ -19,7 +19,7 @@
icon_state = "dispenser"
base_icon_state = "dispenser"
use_power = IDLE_POWER_USE
- idle_power_usage = 40
+ idle_power_usage = IDLE_DRAW_MINIMAL
interaction_flags_machine = INTERACT_MACHINE_OPEN | INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_OFFLINE
resistance_flags = FIRE_PROOF | ACID_PROOF
circuit = /obj/item/circuitboard/machine/chem_dispenser
diff --git a/code/modules/reagents/chemistry/machinery/chem_heater.dm b/code/modules/reagents/chemistry/machinery/chem_heater.dm
index e8892390e189..88e7973dd29c 100644
--- a/code/modules/reagents/chemistry/machinery/chem_heater.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_heater.dm
@@ -5,7 +5,7 @@
icon_state = "mixer0b"
base_icon_state = "mixer"
use_power = IDLE_POWER_USE
- idle_power_usage = 40
+ idle_power_usage = IDLE_DRAW_MINIMAL
resistance_flags = FIRE_PROOF | ACID_PROOF
circuit = /obj/item/circuitboard/machine/chem_heater
diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm
index e53a7f20ae16..c9791666b54f 100644
--- a/code/modules/reagents/chemistry/machinery/chem_master.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_master.dm
@@ -7,7 +7,7 @@
icon_state = "mixer0"
base_icon_state = "mixer"
use_power = IDLE_POWER_USE
- idle_power_usage = 20
+ idle_power_usage = IDLE_DRAW_MINIMAL
resistance_flags = FIRE_PROOF | ACID_PROOF
circuit = /obj/item/circuitboard/machine/chem_master
diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm
index 65bcf56ef25c..6c85e75ccd86 100644
--- a/code/modules/reagents/chemistry/machinery/pandemic.dm
+++ b/code/modules/reagents/chemistry/machinery/pandemic.dm
@@ -8,8 +8,8 @@
icon = 'icons/obj/chemical/misc.dmi'
icon_state = "pandemic0"
base_icon_state = "pandemic"
- use_power = TRUE
- idle_power_usage = 20
+ use_power = IDLE_POWER_USE
+ idle_power_usage = IDLE_DRAW_MINIMAL
resistance_flags = ACID_PROOF
circuit = /obj/item/circuitboard/computer/pandemic
unique_icon = TRUE
diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm
index 5e5bd21747dc..5beaca629934 100644
--- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm
+++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm
@@ -8,8 +8,8 @@
base_icon_state = "juicer"
layer = BELOW_OBJ_LAYER
use_power = IDLE_POWER_USE
- idle_power_usage = 5
- active_power_usage = 100
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_MEDIUM
circuit = /obj/item/circuitboard/machine/reagentgrinder
pass_flags = PASSTABLE
resistance_flags = ACID_PROOF
@@ -261,10 +261,11 @@
operating = FALSE
/obj/machinery/reagentgrinder/proc/juice()
- power_change()
if(!beaker || machine_stat & (NOPOWER|BROKEN) || beaker.reagents.total_volume >= beaker.reagents.maximum_volume)
return
+ set_active_power()
operate_for(50, juicing = TRUE)
+ set_idle_power()
for(var/obj/item/i in holdingitems)
if(beaker.reagents.total_volume >= beaker.reagents.maximum_volume)
break
@@ -281,10 +282,11 @@
remove_object(I)
/obj/machinery/reagentgrinder/proc/grind(mob/user)
- power_change()
if(!beaker || machine_stat & (NOPOWER|BROKEN) || beaker.reagents.total_volume >= beaker.reagents.maximum_volume)
return
+ set_active_power()
operate_for(60)
+ set_idle_power()
for(var/i in holdingitems)
if(beaker.reagents.total_volume >= beaker.reagents.maximum_volume)
break
@@ -310,10 +312,11 @@
/obj/machinery/reagentgrinder/proc/mix(mob/user)
//For butter and other things that would change upon shaking or mixing
- power_change()
if(!beaker || machine_stat & (NOPOWER|BROKEN))
return
+ set_active_power()
operate_for(50, juicing = TRUE)
+ set_idle_power()
addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/machinery/reagentgrinder, mix_complete)), 50)
/obj/machinery/reagentgrinder/proc/mix_complete()
diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm
index 2c0ecef181a1..09812ef20cf3 100644
--- a/code/modules/reagents/chemistry/reagents/food_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm
@@ -327,12 +327,6 @@
color = "#FFFFFF" // rgb: 255,255,255
taste_description = "salt"
-/datum/reagent/consumable/sodiumchloride/expose_mob(mob/living/M, method=TOUCH, reac_volume)
- if(!istype(M))
- return
- if(M.has_bane(BANE_SALT))
- M.mind.disrupt_spells(-200)
-
/datum/reagent/consumable/sodiumchloride/expose_turf(turf/T, reac_volume) //Creates an umbra-blocking salt pile
if(!istype(T))
return
diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm
index d727cbfd0fa6..02d8850f8776 100644
--- a/code/modules/reagents/chemistry/reagents/other_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm
@@ -795,12 +795,6 @@
C.blood_volume += 0.5
..()
-/datum/reagent/iron/expose_mob(mob/living/M, method=TOUCH, reac_volume)
- if(M.has_bane(BANE_IRON)) //If the target is weak to cold iron, then poison them.
- if(holder && holder.chem_temp < 100) // COLD iron.
- M.reagents.add_reagent(/datum/reagent/toxin, reac_volume)
- ..()
-
/datum/reagent/gold
name = "Gold"
description = "Gold is a dense, soft, shiny metal and the most malleable and ductile metal known."
@@ -817,11 +811,6 @@
taste_description = "expensive yet reasonable metal"
material = /datum/material/silver
-/datum/reagent/silver/expose_mob(mob/living/M, method=TOUCH, reac_volume)
- if(M.has_bane(BANE_SILVER))
- M.reagents.add_reagent(/datum/reagent/toxin, reac_volume)
- ..()
-
/datum/reagent/uranium
name ="Uranium"
description = "A jade-green metallic chemical element in the actinide series, weakly radioactive."
diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
index 91927581095c..ab0be2930324 100644
--- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
@@ -259,7 +259,8 @@
taste_description = "sourness"
/datum/reagent/toxin/mindbreaker/on_mob_life(mob/living/carbon/M)
- M.hallucination += 5
+ if(!M.has_quirk(/datum/quirk/insanity))
+ M.hallucination += 5
return ..()
/datum/reagent/toxin/plantbgone
diff --git a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm
index df76f85b1f64..88f1871e6a28 100644
--- a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm
@@ -180,15 +180,13 @@
/datum/reagent/consumable/ethanol/trickwine/prism_wine/on_mob_metabolize(mob/living/carbon/human/M)
..()
ADD_TRAIT(M, TRAIT_REFLECTIVE, "trickwine")
- if(M.physiology.burn_mod <= initial(M.physiology.burn_mod))
- M.physiology.burn_mod *= 0.5
+ M.physiology.burn_mod *= 0.5
M.add_filter("prism-wine", 2, list("type"="outline", "color"="#8FD7DF", "size"=1))
M.visible_message("[M] seems to shimmer with power!")
/datum/reagent/consumable/ethanol/trickwine/prism_wine/on_mob_end_metabolize(mob/living/carbon/human/M)
REMOVE_TRAIT(M, TRAIT_REFLECTIVE, "trickwine")
- if(M.physiology.burn_mod > initial(M.physiology.burn_mod))
- M.physiology.burn_mod *= 2
+ M.physiology.burn_mod *= 2
M.remove_filter("prism-wine")
M.visible_message("[M] has returned to normal!")
..()
diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm
index 10cd8ffc72eb..e7494191d1df 100644
--- a/code/modules/reagents/chemistry/recipes/others.dm
+++ b/code/modules/reagents/chemistry/recipes/others.dm
@@ -56,7 +56,7 @@
/datum/chemical_reaction/adamantinesolidification/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
for(var/i = 1, i <= created_volume, i++)
- new /obj/item/stack/sheet/mineral/adamantine(location)
+ new /obj/item/stack/sheet/mineral/hidden/hellstone(location)
/datum/chemical_reaction/silversolidification
required_reagents = list(/datum/reagent/silver = 20, /datum/reagent/consumable/frostoil = 5, /datum/reagent/carbon = 10)
diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm
index 97290d54213f..d3bf1e211290 100644
--- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm
+++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm
@@ -425,7 +425,7 @@
required_other = TRUE
/datum/chemical_reaction/slime/adamantine/on_reaction(datum/reagents/holder)
- new /obj/item/stack/sheet/mineral/adamantine(get_turf(holder.my_atom))
+ new /obj/item/stack/sheet/mineral/hidden/hellstone(get_turf(holder.my_atom))
..()
//Bluespace
diff --git a/code/modules/research/bepis.dm b/code/modules/research/bepis.dm
index 84d948f7c2b9..a033b59b56ae 100644
--- a/code/modules/research/bepis.dm
+++ b/code/modules/research/bepis.dm
@@ -17,7 +17,7 @@
density = TRUE
layer = ABOVE_MOB_LAYER
use_power = IDLE_POWER_USE
- active_power_usage = 1500
+ active_power_usage = ACTIVE_DRAW_HIGH
circuit = /obj/item/circuitboard/machine/bepis
var/banking_amount = 100
@@ -254,7 +254,7 @@
return
calcsuccess()
use_power(MACHINE_OPERATION * power_saver) //This thing should eat your APC battery if you're not careful.
- use_power = IDLE_POWER_USE //Machine shuts off after use to prevent spam and look better visually.
+ set_idle_power() //Machine shuts off after use to prevent spam and look better visually.
update_icon_state()
if("amount")
var/input = text2num(params["amount"])
@@ -262,9 +262,9 @@
banking_amount = input
if("toggle_power")
if(use_power == ACTIVE_POWER_USE)
- use_power = IDLE_POWER_USE
+ set_idle_power()
else
- use_power = ACTIVE_POWER_USE
+ set_active_power()
update_icon_state()
if("account_reset")
if(use_power == IDLE_POWER_USE)
diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm
index 7c43c3fc5acb..e39d48e5cc77 100644
--- a/code/modules/research/designs/autolathe_designs.dm
+++ b/code/modules/research/designs/autolathe_designs.dm
@@ -870,6 +870,22 @@
build_path = /obj/item/ammo_box/c556mmHITP/surplus
category = list("initial", "Security", "Ammo")
+/datum/design/generic_ammo_box
+ name = "Generic Ammo Box"
+ id = "ammo-generic"
+ build_type = AUTOLATHE | PROTOLATHE
+ materials = list(/datum/material/iron = 1500)
+ build_path = /obj/item/ammo_box/generic
+ category = list("initial", "Security", "Ammo")
+
+/datum/design/ammo_can
+ name = "Ammo Can"
+ id = "ammo-can"
+ build_type = AUTOLATHE | PROTOLATHE
+ materials = list(/datum/material/iron = 500)
+ build_path = /obj/item/storage/toolbox/ammo
+ category = list("initial", "Security", "Ammo")
+
/datum/design/cleaver
name = "Butcher's Cleaver"
id = "cleaver"
@@ -1175,6 +1191,14 @@
build_path = /obj/item/assembly/control
category = list("initial","Misc")
+/datum/design/holofield_control
+ name = "Holofield Controller"
+ id = "holofield"
+ build_type = AUTOLATHE
+ materials = list(/datum/material/iron = 100, /datum/material/glass = 50)
+ build_path = /obj/item/assembly/control/shieldwallgen
+ category = list("initial","Misc")
+
/datum/design/trashbag
name="Trash Bag"
id="trashbag"
diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm
index e12db8a59738..6955bf525d29 100644
--- a/code/modules/research/designs/machine_designs.dm
+++ b/code/modules/research/designs/machine_designs.dm
@@ -9,6 +9,13 @@
build_path = /obj/item/circuitboard/machine/smes
category = list ("Engineering Machinery")
+/datum/design/board/ssu
+ name = "Machine Design (Suit Storage Unit Board)"
+ desc = "The circuit board for a suit storage unit."
+ id = "ssu"
+ build_path = /obj/item/circuitboard/machine/suit_storage_unit
+ category = list ("Engineering Machinery")
+
/datum/design/board/circulator
name = "Machine Design (Circulator Board)"
desc = "The circuit board for a circulator."
diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm
index dfd373dcd3d7..46dddeb0c586 100644
--- a/code/modules/research/designs/mechfabricator_designs.dm
+++ b/code/modules/research/designs/mechfabricator_designs.dm
@@ -445,7 +445,7 @@
id = "honk_torso"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/honker_torso
- materials = list(/datum/material/iron=20000,/datum/material/glass = 10000,/datum/material/bananium=10000)
+ materials = list(/datum/material/iron=20000,/datum/material/glass = 10000,/datum/material/hellstone=10000)
construction_time = 300
category = list("H.O.N.K")
@@ -454,7 +454,7 @@
id = "honk_head"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/honker_head
- materials = list(/datum/material/iron=10000,/datum/material/glass = 5000,/datum/material/bananium=5000)
+ materials = list(/datum/material/iron=10000,/datum/material/glass = 5000,/datum/material/hellstone=5000)
construction_time = 200
category = list("H.O.N.K")
@@ -463,7 +463,7 @@
id = "honk_left_arm"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/honker_left_arm
- materials = list(/datum/material/iron=15000,/datum/material/bananium=5000)
+ materials = list(/datum/material/iron=15000,/datum/material/hellstone=5000)
construction_time = 200
category = list("H.O.N.K")
@@ -472,7 +472,7 @@
id = "honk_right_arm"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/honker_right_arm
- materials = list(/datum/material/iron=15000,/datum/material/bananium=5000)
+ materials = list(/datum/material/iron=15000,/datum/material/hellstone=5000)
construction_time = 200
category = list("H.O.N.K")
@@ -481,7 +481,7 @@
id = "honk_left_leg"
build_type = MECHFAB
build_path =/obj/item/mecha_parts/part/honker_left_leg
- materials = list(/datum/material/iron=20000,/datum/material/bananium=5000)
+ materials = list(/datum/material/iron=20000,/datum/material/hellstone=5000)
construction_time = 200
category = list("H.O.N.K")
@@ -490,7 +490,7 @@
id = "honk_right_leg"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/honker_right_leg
- materials = list(/datum/material/iron=20000,/datum/material/bananium=5000)
+ materials = list(/datum/material/iron=20000,/datum/material/hellstone=5000)
construction_time = 200
category = list("H.O.N.K")
@@ -657,7 +657,7 @@
id = "mech_mousetrap_mortar"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/mousetrap_mortar
- materials = list(/datum/material/iron=20000,/datum/material/bananium=5000)
+ materials = list(/datum/material/iron=20000,/datum/material/hellstone=5000)
construction_time = 300
category = list("Exosuit Equipment")
@@ -666,7 +666,7 @@
id = "mech_banana_mortar"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/banana_mortar
- materials = list(/datum/material/iron=20000,/datum/material/bananium=5000)
+ materials = list(/datum/material/iron=20000,/datum/material/hellstone=5000)
construction_time = 300
category = list("Exosuit Equipment")
@@ -675,7 +675,7 @@
id = "mech_honker"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/honker
- materials = list(/datum/material/iron=20000,/datum/material/bananium=10000)
+ materials = list(/datum/material/iron=20000,/datum/material/hellstone=10000)
construction_time = 500
category = list("Exosuit Equipment")
@@ -684,7 +684,7 @@
id = "mech_punching_face"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/punching_glove
- materials = list(/datum/material/iron=20000,/datum/material/bananium=7500)
+ materials = list(/datum/material/iron=20000,/datum/material/hellstone=7500)
construction_time = 400
category = list("Exosuit Equipment")
@@ -769,7 +769,7 @@
id = "borg_transform_clown"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/transform/clown
- materials = list(/datum/material/iron = 15000, /datum/material/glass = 15000, /datum/material/bananium = 1000)
+ materials = list(/datum/material/iron = 15000, /datum/material/glass = 15000, /datum/material/hellstone = 1000)
construction_time = 120
category = list("Cyborg Upgrade Modules")
diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm
index 343ff920df20..95a03b829608 100644
--- a/code/modules/research/designs/medical_designs.dm
+++ b/code/modules/research/designs/medical_designs.dm
@@ -476,7 +476,7 @@
desc = "Makes death amusing."
id = "implant_trombone"
build_type = PROTOLATHE
- materials = list(/datum/material/glass = 500, /datum/material/bananium = 500)
+ materials = list(/datum/material/glass = 500, /datum/material/hellstone = 500)
build_path = /obj/item/implantcase/sad_trombone
category = list("Medical Designs")
diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm
index eeca189ef2dc..816cd4f9fdbf 100644
--- a/code/modules/research/designs/misc_designs.dm
+++ b/code/modules/research/designs/misc_designs.dm
@@ -130,7 +130,7 @@
desc = "Damn son, where'd you find this?"
id = "air_horn"
build_type = PROTOLATHE
- materials = list(/datum/material/iron = 4000, /datum/material/bananium = 1000)
+ materials = list(/datum/material/iron = 4000, /datum/material/hellstone = 1000)
build_path = /obj/item/bikehorn/airhorn
category = list("Equipment")
diff --git a/code/modules/research/machinery/_production.dm b/code/modules/research/machinery/_production.dm
index 36a22dac2cc7..0f8c2eb53c1d 100644
--- a/code/modules/research/machinery/_production.dm
+++ b/code/modules/research/machinery/_production.dm
@@ -2,6 +2,10 @@
name = "technology fabricator"
desc = "Makes researched and prototype items with materials and energy."
layer = BELOW_OBJ_LAYER
+ use_power = IDLE_POWER_USE
+ idle_power_usage = IDLE_DRAW_LOW
+ active_power_usage = ACTIVE_DRAW_HIGH
+ power_channel = AREA_USAGE_EQUIP
var/consoleless_interface = FALSE //Whether it can be used without a console.
var/efficiency_coeff = 1 //Materials needed / coeff = actual.
var/list/categories = list()
@@ -96,6 +100,7 @@
if(notify_admins)
investigate_log("[key_name(usr)] built [amount] of [path] at [src]([type]).", INVESTIGATE_RESEARCH)
message_admins("[ADMIN_LOOKUPFLW(usr)] has built [amount] of [path] at \a [src]([type]).")
+ set_idle_power()
for(var/i in 1 to amount)
var/obj/item/I = new path(get_turf(src))
if(efficient_with(I.type))
@@ -142,11 +147,11 @@
if(materials.on_hold())
say("Mineral access is on hold, please contact the quartermaster.")
return FALSE
- var/power = 1000
+ var/power = active_power_usage
amount = clamp(amount, 1, 50)
for(var/M in D.materials)
power += round(D.materials[M] * amount / 35)
- power = min(3000, power)
+ power = min(ACTIVE_DRAW_EXTREME, power)
use_power(power)
var/coeff = efficient_with(D.build_path) ? efficiency_coeff : 1
var/list/efficient_mats = list()
@@ -168,6 +173,7 @@
flick(production_animation, src)
var/timecoeff = D.lathe_time_factor / efficiency_coeff
addtimer(CALLBACK(src, PROC_REF(reset_busy)), (30 * timecoeff * amount) ** 0.5)
+ set_active_power()
addtimer(CALLBACK(src, PROC_REF(do_print), D.build_path, amount, efficient_mats, D.dangerous_construction), (32 * timecoeff * amount) ** 0.8)
return TRUE
diff --git a/code/modules/research/nanites/nanite_chamber.dm b/code/modules/research/nanites/nanite_chamber.dm
index d5d5fa79e8ca..eb50a70af0bb 100644
--- a/code/modules/research/nanites/nanite_chamber.dm
+++ b/code/modules/research/nanites/nanite_chamber.dm
@@ -9,8 +9,8 @@
use_power = IDLE_POWER_USE
anchored = TRUE
density = TRUE
- idle_power_usage = 50
- active_power_usage = 300
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_HIGH
var/locked = FALSE
var/breakout_time = 1200
diff --git a/code/modules/research/nanites/public_chamber.dm b/code/modules/research/nanites/public_chamber.dm
index 9e39486c2052..b149fda6baae 100644
--- a/code/modules/research/nanites/public_chamber.dm
+++ b/code/modules/research/nanites/public_chamber.dm
@@ -8,8 +8,8 @@
use_power = IDLE_POWER_USE
anchored = TRUE
density = TRUE
- idle_power_usage = 50
- active_power_usage = 300
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_HIGH
var/cloud_id = 1
var/locked = FALSE
diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm
index af76ef1d00fa..eaa696c8d775 100644
--- a/code/modules/research/techweb/all_nodes.dm
+++ b/code/modules/research/techweb/all_nodes.dm
@@ -183,7 +183,7 @@
prereq_ids = list("base")
design_ids = list("solarcontrol", "solarassembly", "recharger", "powermonitor", "rped", "pacman", "adv_capacitor", "adv_scanning", "emitter", "high_cell", "adv_matter_bin", "scanner_gate",
"atmosalerts", "atmos_control", "recycler", "autolathe", "high_micro_laser", "nano_mani", "mesons", "welding_goggles", "thermomachine", "rad_collector", "tesla_coil", "grounding_rod",
- "apc_control", "cell_charger", "power control", "airlock_board", "firelock_board", "aac_electronics", "airalarm_electronics", "firealarm_electronics", "cell_charger", "stack_console", "stack_machine",
+ "apc_control", "cell_charger", "ssu", "power control", "airlock_board", "firelock_board", "aac_electronics", "airalarm_electronics", "firealarm_electronics", "cell_charger", "stack_console", "stack_machine",
"oxygen_tank", "plasma_tank", "emergency_oxygen", "emergency_oxygen_engi", "plasmaman_tank_belt", "pneumatic_seal", "shieldwallgen", "shieldwallgen_atmos") //WS edit, solar assemblies from lathe
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000)
export_price = 5000
diff --git a/code/modules/research/xenobiology/crossbreeding/charged.dm b/code/modules/research/xenobiology/crossbreeding/charged.dm
index 501ff548e08f..25aa79302918 100644
--- a/code/modules/research/xenobiology/crossbreeding/charged.dm
+++ b/code/modules/research/xenobiology/crossbreeding/charged.dm
@@ -146,7 +146,7 @@ Charged extracts:
effect_desc = "Creates bananium. Oh no."
/obj/item/slimecross/charged/pyrite/do_effect(mob/user)
- new /obj/item/stack/sheet/mineral/bananium(get_turf(user), 10)
+ new /obj/item/stack/sheet/mineral/hidden/hellstone(get_turf(user), 10)
user.visible_message("[src] solidifies with a horrifying banana stench!")
..()
diff --git a/code/modules/ruins/lavaland_ruin_code.dm b/code/modules/ruins/lavaland_ruin_code.dm
index 1115224a6733..7f050c3ac5e5 100644
--- a/code/modules/ruins/lavaland_ruin_code.dm
+++ b/code/modules/ruins/lavaland_ruin_code.dm
@@ -75,7 +75,7 @@
/obj/effect/mob_spawn/human/lavaland_syndicate/comms/space/Initialize()
. = ..()
if(prob(90)) //only has a 10% chance of existing, otherwise it'll just be a NPC syndie.
- new /mob/living/simple_animal/hostile/syndicate/ranged(get_turf(src))
+ new /mob/living/simple_animal/hostile/human/syndicate/ranged(get_turf(src))
return INITIALIZE_HINT_QDEL
/datum/outfit/lavaland_syndicate/comms
diff --git a/code/modules/ruins/spaceruin_code/forgottenship.dm b/code/modules/ruins/spaceruin_code/forgottenship.dm
index def148f22239..57b9f64bf60f 100644
--- a/code/modules/ruins/spaceruin_code/forgottenship.dm
+++ b/code/modules/ruins/spaceruin_code/forgottenship.dm
@@ -81,45 +81,3 @@ GLOBAL_VAR_INIT(fscpassword, generate_password())
area_flags = NOTELEPORT | UNIQUE_AREA
//Cybersun hardsuit
-
-//Special NT NPCs
-
-/mob/living/simple_animal/hostile/nanotrasen/ranged/assault
- name = "Nanotrasen Assault Officer"
- desc = "A Nanotrasen Assault Officer. Prepare to die, if you've been found near Syndicate property."
- icon_state = "nanotrasenrangedassault"
- icon_living = "nanotrasenrangedassault"
- icon_dead = null
- icon_gib = "syndicate_gib"
- ranged = TRUE
- rapid = 4
- rapid_fire_delay = 1
- rapid_melee = 1
- retreat_distance = 2
- minimum_distance = 4
- casingtype = /obj/item/ammo_casing/c46x30mm
- projectilesound = 'sound/weapons/gun/general/heavy_shot_suppressed.ogg'
- loot = list(/obj/effect/mob_spawn/human/corpse/nanotrasenassaultsoldier)
-
-/mob/living/simple_animal/hostile/nanotrasen/elite
- name = "Nanotrasen Elite Assault Officer"
- desc = "Pray for your life, syndicate. Run while you can."
- icon = 'icons/mob/simple_human.dmi'
- icon_state = "nanotrasen_ert"
- icon_living = "nanotrasen_ert"
- maxHealth = 150
- health = 150
- melee_damage_lower = 13
- melee_damage_upper = 18
- ranged = TRUE
- rapid = 3
- rapid_fire_delay = 5
- rapid_melee = 3
- retreat_distance = 0
- minimum_distance = 1
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
- minbodytemp = 0
- projectiletype = /obj/projectile/beam/laser
- projectilesound = 'sound/weapons/laser.ogg'
- loot = list(/obj/effect/gibspawner/human)
- faction = list(ROLE_DEATHSQUAD)
diff --git a/code/modules/security_levels/keycard_authentication.dm b/code/modules/security_levels/keycard_authentication.dm
index 7f3693e98760..58e75c399d81 100644
--- a/code/modules/security_levels/keycard_authentication.dm
+++ b/code/modules/security_levels/keycard_authentication.dm
@@ -10,8 +10,8 @@ GLOBAL_DATUM_INIT(keycard_events, /datum/events, new)
icon = 'icons/obj/monitors.dmi'
icon_state = "auth_off"
use_power = IDLE_POWER_USE
- idle_power_usage = 2
- active_power_usage = 6
+ idle_power_usage = IDLE_DRAW_MINIMAL
+ active_power_usage = ACTIVE_DRAW_MINIMAL
power_channel = AREA_USAGE_ENVIRON
req_access = list(ACCESS_KEYCARD_AUTH)
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
diff --git a/code/modules/station_goals/dna_vault.dm b/code/modules/station_goals/dna_vault.dm
index 9679aa860c9c..b894f99c255d 100644
--- a/code/modules/station_goals/dna_vault.dm
+++ b/code/modules/station_goals/dna_vault.dm
@@ -120,7 +120,7 @@
icon_state = "vault"
density = TRUE
anchored = TRUE
- idle_power_usage = 5000
+ idle_power_usage = ACTIVE_DRAW_EXTREME
pixel_x = -32
pixel_y = -64
light_range = 3
diff --git a/code/modules/unit_tests/outfit_sanity.dm b/code/modules/unit_tests/outfit_sanity.dm
index aca1d210fbf0..4dc12b4dc6e3 100644
--- a/code/modules/unit_tests/outfit_sanity.dm
+++ b/code/modules/unit_tests/outfit_sanity.dm
@@ -3,7 +3,10 @@
/* We don't check the result of equip_to_slot_or_del because it returns false for random jumpsuits, as they delete themselves on init */ \
var/obj/item/outfit_item = H.get_item_by_slot(##slot_name); \
if (!outfit_item) { \
- TEST_FAIL("[outfit.name]'s [#outfit_key] is invalid! Could not equip a [outfit.##outfit_key] into that slot."); \
+ if (outfit.random != TRUE) \
+ TEST_FAIL("[outfit.name]'s [#outfit_key] is invalid! Could not equip a [outfit.##outfit_key] into that slot."); \
+ else \
+ log_world("[outfit.name]'s [#outfit_key] is invalid! Could not equip a [outfit.##outfit_key] into that slot."); \
} \
}
@@ -61,6 +64,10 @@
var/number = backpack_contents[path] || 1
for (var/_ in 1 to number)
if (!H.equip_to_slot_or_del(new path(H), ITEM_SLOT_BACKPACK, TRUE))
- TEST_FAIL("[outfit.name]'s backpack_contents are invalid! Couldn't add [path] to backpack.")
+ if (outfit.random != TRUE)
+ TEST_FAIL("[outfit.name]'s backpack_contents are invalid! Couldn't add [path] to backpack.")
+ else
+ log_world("[outfit.name]'s backpack_contents are invalid! Couldn't add [path] to backpack.")
+
#undef CHECK_OUTFIT_SLOT
diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm
index 93fcacba45b1..4c97b3f7eaa2 100644
--- a/code/modules/vending/_vending.dm
+++ b/code/modules/vending/_vending.dm
@@ -47,6 +47,8 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
icon_state = "generic"
layer = BELOW_OBJ_LAYER
density = TRUE
+ use_power = IDLE_POWER_USE
+ idle_power_usage = IDLE_DRAW_MINIMAL
verb_say = "beeps"
verb_ask = "beeps"
verb_exclaim = "beeps"
diff --git a/code/modules/vending/assist.dm b/code/modules/vending/assist.dm
index 8a1c86cc9536..cb3cd0053d8a 100644
--- a/code/modules/vending/assist.dm
+++ b/code/modules/vending/assist.dm
@@ -10,8 +10,7 @@
/obj/item/stock_parts/manipulator = 3,
/obj/item/stock_parts/micro_laser = 3,
/obj/item/stock_parts/scanning_module = 3,
- /obj/item/stock_parts/capacitor = 3)
- contraband = list(
+ /obj/item/stock_parts/capacitor = 3,
/obj/item/assembly/timer = 2,
/obj/item/assembly/voice = 2,
/obj/item/assembly/health = 2,
diff --git a/code/modules/vending/autodrobe.dm b/code/modules/vending/autodrobe.dm
index b1d85fb3fcbb..04ae257730f2 100644
--- a/code/modules/vending/autodrobe.dm
+++ b/code/modules/vending/autodrobe.dm
@@ -109,12 +109,9 @@
/obj/item/clothing/suit/changshan_blue = 1,
/obj/item/clothing/suit/cheongsam_red = 1,
/obj/item/clothing/suit/cheongsam_blue = 1,
- /obj/item/gohei = 1)
- contraband = list(
+ /obj/item/gohei = 1,
/obj/item/clothing/suit/judgerobe = 1,
/obj/item/clothing/head/powdered_wig = 1,
- /obj/item/clothing/accessory/fan_mime_pin = 1,
- /obj/item/clothing/accessory/fan_clown_pin = 1,
/obj/item/gun/magic/wand/nothing = 2,
/obj/item/clothing/glasses/sunglasses/garb = 2,
/obj/item/clothing/glasses/blindfold = 1,
diff --git a/code/modules/vending/cigarette.dm b/code/modules/vending/cigarette.dm
index 7dd0b6004ea7..3cff7d3c361d 100644
--- a/code/modules/vending/cigarette.dm
+++ b/code/modules/vending/cigarette.dm
@@ -11,19 +11,19 @@
/obj/item/storage/fancy/cigarettes/cigpack_robust = 3,
/obj/item/storage/fancy/cigarettes/cigpack_carp = 3,
/obj/item/storage/fancy/cigarettes/cigpack_midori = 3,
+ /obj/item/storage/fancy/cigarettes/dromedaryco = 3,
+ /obj/item/clothing/mask/vape = 5,
/obj/item/storage/box/matches = 10,
/obj/item/lighter/greyscale = 4,
/obj/item/storage/fancy/rollingpapers = 5)
- contraband = list(
- /obj/item/clothing/mask/vape = 5,
- /obj/item/clothing/mask/vape/cigar = 3) //WS edit - E-Cigars
premium = list(
/obj/item/storage/fancy/cigarettes/cigpack_robustgold = 3,
- /obj/item/storage/box/gum/nicotine = 2,
+ /obj/item/storage/box/gum/nicotine = 3,
/obj/item/lighter = 3,
/obj/item/storage/fancy/cigarettes/cigars = 1,
/obj/item/storage/fancy/cigarettes/cigars/havana = 1,
- /obj/item/storage/fancy/cigarettes/cigars/cohiba = 1)
+ /obj/item/storage/fancy/cigarettes/cigars/cohiba = 1,
+ /obj/item/clothing/mask/vape/cigar = 3)
refill_canister = /obj/item/vending_refill/cigarette
default_price = 75
extra_price = 250
diff --git a/code/modules/vending/clothesmate.dm b/code/modules/vending/clothesmate.dm
index 8a7199968774..e9eef49a0e3a 100644
--- a/code/modules/vending/clothesmate.dm
+++ b/code/modules/vending/clothesmate.dm
@@ -104,19 +104,16 @@
/obj/item/clothing/suit/apron/purple_bartender = 2,
/obj/item/clothing/under/rank/civilian/bartender/purple = 2,
/obj/item/clothing/suit/toggle/suspenders/blue = 2,
- /obj/item/clothing/suit/toggle/suspenders/gray = 2)
- contraband = list(
- /obj/item/clothing/under/syndicate/tacticool = 1,
- /obj/item/clothing/under/syndicate/tacticool/skirt = 1,
+ /obj/item/clothing/suit/toggle/suspenders/gray = 2,
+ /obj/item/clothing/under/syndicate/tacticool = 2,
+ /obj/item/clothing/under/syndicate/tacticool/skirt = 2,
/obj/item/clothing/mask/balaclava = 1,
/obj/item/clothing/head/trapper = 1,
/obj/item/storage/belt/fannypack/black = 2,
/obj/item/clothing/suit/jacket/letterman_syndie = 1,
/obj/item/clothing/under/costume/jabroni = 1,
/obj/item/clothing/suit/vapeshirt = 1,
- /obj/item/clothing/under/costume/geisha = 1,
- /obj/item/clothing/under/rank/centcom/officer/replica = 1,
- /obj/item/clothing/under/rank/centcom/officer_skirt/replica = 1)
+ /obj/item/clothing/under/costume/geisha = 1)
premium = list(
/obj/item/clothing/under/suit/checkered = 1,
/obj/item/clothing/suit/jacket/leather = 1,
diff --git a/code/modules/vending/coffee.dm b/code/modules/vending/coffee.dm
index 3e45b431b16d..9c4851c134a5 100644
--- a/code/modules/vending/coffee.dm
+++ b/code/modules/vending/coffee.dm
@@ -7,11 +7,11 @@
products = list(
/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)
+ /obj/item/reagent_containers/food/drinks/mug/coco = 3,
+ /obj/item/reagent_containers/food/drinks/ice = 6)
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
extra_price = 150
diff --git a/code/modules/vending/cola.dm b/code/modules/vending/cola.dm
index 2ce937979e74..4a9f4a456eee 100644
--- a/code/modules/vending/cola.dm
+++ b/code/modules/vending/cola.dm
@@ -15,8 +15,7 @@
/obj/item/reagent_containers/food/drinks/soda_cans/lemon_lime = 10,
/obj/item/reagent_containers/food/drinks/soda_cans/sol_dry = 10,
/obj/item/reagent_containers/food/drinks/waterbottle = 10,
- /obj/item/reagent_containers/food/drinks/soda_cans/efuel = 5)
- contraband = list(
+ /obj/item/reagent_containers/food/drinks/soda_cans/efuel = 5,
/obj/item/reagent_containers/food/drinks/soda_cans/thirteenloko = 6,
/obj/item/reagent_containers/food/drinks/soda_cans/shamblers = 6)
premium = list(
diff --git a/code/modules/vending/drinnerware.dm b/code/modules/vending/drinnerware.dm
index 7ff7d80ddccd..5dbd8ea733db 100644
--- a/code/modules/vending/drinnerware.dm
+++ b/code/modules/vending/drinnerware.dm
@@ -17,11 +17,8 @@
/obj/item/kitchen/rollingpin = 2,
/obj/item/kitchen/knife = 2,
/obj/item/kitchen/knife/pizza_cutter = 2,
- /obj/item/book/granter/crafting_recipe/cooking_sweets_101 = 2)
- contraband = list(
- /obj/item/kitchen/rollingpin = 2,
- /obj/item/kitchen/knife/butcher = 2,
- /obj/item/shovel/spoon = 2) // ST - Only a spoonfull
+ /obj/item/book/granter/crafting_recipe/cooking_sweets_101 = 2,
+ /obj/item/kitchen/knife/butcher = 1)
refill_canister = /obj/item/vending_refill/dinnerware
default_price = 50
extra_price = 250
diff --git a/code/modules/vending/engivend.dm b/code/modules/vending/engivend.dm
index 096bffb1adf7..fb096656c1c3 100644
--- a/code/modules/vending/engivend.dm
+++ b/code/modules/vending/engivend.dm
@@ -16,8 +16,8 @@
/obj/item/electronics/airalarm = 10,
/obj/item/electronics/advanced_airlock_controller = 10,
/obj/item/electronics/firealarm = 10,
- /obj/item/electronics/firelock = 10)
- contraband = list(/obj/item/stock_parts/cell/potato = 3)
+ /obj/item/electronics/firelock = 10,
+ /obj/item/stock_parts/cell/potato = 3)
premium = list(/obj/item/storage/belt/utility = 3,
/obj/item/construction/rcd/loaded = 2,
/obj/item/storage/box/smart_metal_foam = 1)
diff --git a/code/modules/vending/games.dm b/code/modules/vending/games.dm
index d209c93eae8e..d27a1f6ffe6e 100644
--- a/code/modules/vending/games.dm
+++ b/code/modules/vending/games.dm
@@ -14,7 +14,6 @@
/obj/item/instrument/piano_synth/headphones = 4,
/obj/item/camera = 3,
/obj/item/dyespray = 3)
- contraband = list(/obj/item/dice/fudge = 9)
premium = list(
/obj/item/melee/skateboard/pro = 3,
/obj/item/melee/skateboard/hoverboard = 1)
diff --git a/code/modules/vending/medical.dm b/code/modules/vending/medical.dm
index 1fff1bd03398..5a35a75a4495 100644
--- a/code/modules/vending/medical.dm
+++ b/code/modules/vending/medical.dm
@@ -27,15 +27,12 @@
/obj/item/reagent_containers/medigel/sterilizine = 1,
/obj/item/sensor_device = 1,
/obj/item/pinpointer/crew = 1)
- contraband = list(
- /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)
+ contraband = list(/obj/item/reagent_containers/pill/tox = 2)
premium = list(
/obj/item/clothing/glasses/hud/health = 1,
/obj/item/clothing/glasses/hud/health/prescription = 1,
- /obj/item/shears = 1)
+ /obj/item/shears = 1,
+ /obj/item/storage/box/hug/medical = 1)
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
resistance_flags = FIRE_PROOF
refill_canister = /obj/item/vending_refill/medical
diff --git a/code/modules/vending/medical_wall.dm b/code/modules/vending/medical_wall.dm
index cf0bca7c3bdb..dd498ffded07 100644
--- a/code/modules/vending/medical_wall.dm
+++ b/code/modules/vending/medical_wall.dm
@@ -11,11 +11,11 @@
/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
+ /obj/item/reagent_containers/medigel/sterilizine = 1,
+ /obj/item/reagent_containers/pill/morphine = 1
)
contraband = list(
/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)
diff --git a/code/modules/vending/megaseed.dm b/code/modules/vending/megaseed.dm
index 899bbac5ea87..4d59628f5fd2 100644
--- a/code/modules/vending/megaseed.dm
+++ b/code/modules/vending/megaseed.dm
@@ -42,12 +42,12 @@
/obj/item/seeds/tower = 3,
/obj/item/seeds/watermelon = 3,
/obj/item/seeds/wheat = 3,
- /obj/item/seeds/whitebeet = 3)
+ /obj/item/seeds/whitebeet = 3,
+ /obj/item/seeds/plump = 3)
contraband = list(/obj/item/seeds/amanita = 2,
/obj/item/seeds/glowshroom = 2,
/obj/item/seeds/liberty = 2,
/obj/item/seeds/nettle = 2,
- /obj/item/seeds/plump = 2,
/obj/item/seeds/reishi = 2,
/obj/item/seeds/cannabis = 3,
/obj/item/seeds/starthistle = 2,
diff --git a/code/modules/vending/nutrimax.dm b/code/modules/vending/nutrimax.dm
index 1849750d3fce..0aaa47461406 100644
--- a/code/modules/vending/nutrimax.dm
+++ b/code/modules/vending/nutrimax.dm
@@ -15,8 +15,7 @@
/obj/item/storage/bag/plants = 5,
/obj/item/cultivator = 3,
/obj/item/shovel/spade = 3,
- /obj/item/plant_analyzer = 4)
- contraband = list(
+ /obj/item/plant_analyzer = 4,
/obj/item/reagent_containers/glass/bottle/ammonia = 10,
/obj/item/reagent_containers/glass/bottle/diethylamine = 5)
refill_canister = /obj/item/vending_refill/hydronutrients
diff --git a/code/modules/vending/plasmaresearch.dm b/code/modules/vending/plasmaresearch.dm
index 650d9878ad36..a638bfc81d8a 100644
--- a/code/modules/vending/plasmaresearch.dm
+++ b/code/modules/vending/plasmaresearch.dm
@@ -10,7 +10,7 @@
/obj/item/assembly/timer = 6,
/obj/item/assembly/signaler = 6,
/obj/item/assembly/prox_sensor = 6,
- /obj/item/assembly/igniter = 6)
- contraband = list(/obj/item/assembly/health = 3)
+ /obj/item/assembly/igniter = 6,
+ /obj/item/assembly/health = 3)
default_price = 400
extra_price = 600
diff --git a/code/modules/vending/security.dm b/code/modules/vending/security.dm
index 0141967beff3..95afc6f2eb92 100644
--- a/code/modules/vending/security.dm
+++ b/code/modules/vending/security.dm
@@ -14,8 +14,7 @@
/obj/item/flashlight/seclite = 4,
/obj/item/ammo_box/c9mm/rubbershot = 3,
/obj/item/ammo_box/c9mm = 1,
- /obj/item/stock_parts/cell/gun = 3)
- contraband = list(
+ /obj/item/stock_parts/cell/gun = 3,
/obj/item/clothing/glasses/sunglasses = 2)
premium = list(
/obj/item/storage/belt/security/webbing = 5,
diff --git a/code/modules/vending/snack.dm b/code/modules/vending/snack.dm
index 0785df82f14d..d0130d7358fc 100644
--- a/code/modules/vending/snack.dm
+++ b/code/modules/vending/snack.dm
@@ -14,8 +14,7 @@
/obj/item/reagent_containers/food/snacks/no_raisin = 6,
/obj/item/reagent_containers/food/drinks/dry_ramen = 3,
/obj/item/storage/box/gum = 3,
- /obj/item/reagent_containers/food/snacks/energybar = 6)
- contraband = list(
+ /obj/item/reagent_containers/food/snacks/energybar = 6,
/obj/item/reagent_containers/food/snacks/syndicake = 6,
/obj/item/reagent_containers/food/snacks/candy/bronx = 1)
refill_canister = /obj/item/vending_refill/snack
diff --git a/code/modules/vending/sovietsoda.dm b/code/modules/vending/sovietsoda.dm
index f9eff36e5e6c..213a3d01df0a 100644
--- a/code/modules/vending/sovietsoda.dm
+++ b/code/modules/vending/sovietsoda.dm
@@ -4,8 +4,9 @@
icon_state = "sovietsoda"
light_mask = "soviet-light-mask"
product_ads = "Have you fulfilled your nutrition quota today?;Very nice!;We are simple people, for this is all we eat.;If there is a person, there is a problem. If there is no person, then there is no problem."
- products = list(/obj/item/reagent_containers/food/drinks/drinkingglass/filled/soda = 30)
- contraband = list(/obj/item/reagent_containers/food/drinks/drinkingglass/filled/cola = 20)
+ products = list(
+ /obj/item/reagent_containers/food/drinks/drinkingglass/filled/soda = 30,
+ /obj/item/reagent_containers/food/drinks/drinkingglass/filled/cola = 20)
resistance_flags = FIRE_PROOF
refill_canister = /obj/item/vending_refill/sovietsoda
default_price = 1
diff --git a/code/modules/vending/toys.dm b/code/modules/vending/toys.dm
index c86049ab75ef..8fefa1015536 100644
--- a/code/modules/vending/toys.dm
+++ b/code/modules/vending/toys.dm
@@ -16,11 +16,10 @@
/obj/item/toy/foamblade = 10,
/obj/item/toy/balloon/syndicate = 10,
/obj/item/clothing/suit/syndicatefake = 5,
- /obj/item/clothing/head/syndicatefake = 5)
- contraband = list(
+ /obj/item/clothing/head/syndicatefake = 5,
/obj/item/gun/ballistic/shotgun/toy/crossbow = 10,
- /obj/item/gun/ballistic/automatic/smg/c20r/toy = 10,
- /obj/item/gun/ballistic/automatic/hmg/l6_saw/toy = 10,
+ /obj/item/gun/ballistic/automatic/smg/c20r/toy = 5,
+ /obj/item/gun/ballistic/automatic/hmg/l6_saw/toy = 5,
/obj/item/toy/katana = 10,
/obj/item/dualsaber/toy = 5)
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
diff --git a/code/modules/vending/youtool.dm b/code/modules/vending/youtool.dm
index 6e75c75c7eae..98a5331b2744 100644
--- a/code/modules/vending/youtool.dm
+++ b/code/modules/vending/youtool.dm
@@ -15,8 +15,9 @@
/obj/item/flashlight/glowstick = 3,
/obj/item/flashlight/glowstick/red = 3,
/obj/item/flashlight = 3,
- /obj/item/clothing/ears/earmuffs = 1)
- contraband = list(/obj/item/clothing/gloves/color/fyellow = 2)
+ /obj/item/clothing/ears/earmuffs = 1,
+ /obj/item/clothing/gloves/color/fyellow = 2
+ )
premium = list(/obj/item/storage/belt/utility = 2,
/obj/item/multitool = 2,
/obj/item/weldingtool/hugetank = 1,
diff --git a/html/changelogs/AutoChangeLog-pr-2950.yml b/html/changelogs/AutoChangeLog-pr-2950.yml
new file mode 100644
index 000000000000..2086c0a24242
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-2950.yml
@@ -0,0 +1,7 @@
+author: FalloutFalcon
+changes:
+ - {rscadd: You can trip landmines with a well placed throw}
+ - {rscadd: 'New interaction with throwing things at bottles, lights, and bear traps'}
+ - {bugfix: The end of finalize no longer gets called twice and targeting items seems
+ like an intended behavior that was lost}
+delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-2952.yml b/html/changelogs/AutoChangeLog-pr-2952.yml
new file mode 100644
index 000000000000..9f5ebacb2d05
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-2952.yml
@@ -0,0 +1,7 @@
+author: Hardly
+changes:
+ - {rscadd: Added some style to the flavor text popup}
+ - {bugfix: Fixed flavor text not accepting certain characters or new lines}
+ - {tweak: Changed up Flavor Text editing text a bit}
+ - {tweak: Flavor text's max length has been chopped from 4096 to 1024}
+delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-2964.yml b/html/changelogs/AutoChangeLog-pr-2964.yml
new file mode 100644
index 000000000000..7df335ae6616
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-2964.yml
@@ -0,0 +1,7 @@
+author: FalloutFalcon
+changes:
+ - {rscadd: Smokers rejoice! You can now pick your favorite type of nicotine delivery
+ system.}
+ - {rscadd: 'Smokers have a choice between most brands of cigarette, cigars, a vape,
+ or a pipe!'}
+delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-2972.yml b/html/changelogs/AutoChangeLog-pr-2972.yml
new file mode 100644
index 000000000000..49781e01d5a5
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-2972.yml
@@ -0,0 +1,4 @@
+author: FalloutFalcon
+changes:
+ - {refactor: refactored hostile humans}
+delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-2974.yml b/html/changelogs/AutoChangeLog-pr-2974.yml
new file mode 100644
index 000000000000..a1f122bf66b8
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-2974.yml
@@ -0,0 +1,4 @@
+author: FalloutFalcon
+changes:
+ - {rscdel: Removed moths getting one shot by a flyswatter}
+delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-2983.yml b/html/changelogs/AutoChangeLog-pr-2983.yml
new file mode 100644
index 000000000000..82c90b8aed8f
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-2983.yml
@@ -0,0 +1,4 @@
+author: FalloutFalcon
+changes:
+ - {bugfix: fixed free smart fridge circuit board from drying rack}
+delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-2999.yml b/html/changelogs/AutoChangeLog-pr-2999.yml
new file mode 100644
index 000000000000..a3f72282d791
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-2999.yml
@@ -0,0 +1,4 @@
+author: FalloutFalcon
+changes:
+ - {bugfix: fixed create and destroy test fail}
+delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-3001.yml b/html/changelogs/AutoChangeLog-pr-3001.yml
new file mode 100644
index 000000000000..bc00e83e6f16
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3001.yml
@@ -0,0 +1,4 @@
+author: FalloutFalcon
+changes:
+ - {code_imp: camera/autoname/LateInitialize() optimization}
+delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-3007.yml b/html/changelogs/AutoChangeLog-pr-3007.yml
new file mode 100644
index 000000000000..0dbec57f99ce
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3007.yml
@@ -0,0 +1,6 @@
+author: Sadhorizon
+changes:
+ - {tweak: Moved most of contraband items out of vendor contraband.}
+ - {rscadd: Added DromaderyCo packets to the cigarette vendors.}
+ - {tweak: Increased nicotine amount to three in the cigarette vendors.}
+delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-3010.yml b/html/changelogs/AutoChangeLog-pr-3010.yml
new file mode 100644
index 000000000000..f150b34715fd
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3010.yml
@@ -0,0 +1,4 @@
+author: FalloutFalcon
+changes:
+ - {code_imp: sorted code owner stuff and added me to some files}
+delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-3012.yml b/html/changelogs/AutoChangeLog-pr-3012.yml
new file mode 100644
index 000000000000..3e0eb8f71b2f
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3012.yml
@@ -0,0 +1,4 @@
+author: Gristlebee
+changes:
+ - {rscadd: Asteroid ore veins}
+delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-3014.yml b/html/changelogs/AutoChangeLog-pr-3014.yml
new file mode 100644
index 000000000000..d1aa452b59e7
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3014.yml
@@ -0,0 +1,4 @@
+author: SomeguyManperson
+changes:
+ - {bugfix: bandoliers now hold the correct amount of bullets (several more)}
+delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-3023.yml b/html/changelogs/AutoChangeLog-pr-3023.yml
new file mode 100644
index 000000000000..97226db250d0
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3023.yml
@@ -0,0 +1,5 @@
+author: SomeguyManperson
+changes:
+ - {bugfix: hallucination anomalies now trigger if you aren't wearing proper protection
+ (as opposed to only triggering if you are)}
+delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-3028.yml b/html/changelogs/AutoChangeLog-pr-3028.yml
new file mode 100644
index 000000000000..4f9da2d642ab
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3028.yml
@@ -0,0 +1,4 @@
+author: SomeguyManperson
+changes:
+ - {bugfix: gun sawing can now only be done with proper equipment (usually a saw))}
+delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-3040.yml b/html/changelogs/AutoChangeLog-pr-3040.yml
new file mode 100644
index 000000000000..b39e705418cd
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3040.yml
@@ -0,0 +1,4 @@
+author: Gristlebee
+changes:
+ - {tweak: 'Defib crate now contains a single defib, priced 750'}
+delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-3055.yml b/html/changelogs/AutoChangeLog-pr-3055.yml
new file mode 100644
index 000000000000..ae7527866d8c
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3055.yml
@@ -0,0 +1,4 @@
+author: SomeguyManperson
+changes:
+ - {balance: the brimstone can now be pumped faster. Enjoy your rilena.}
+delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-3057.yml b/html/changelogs/AutoChangeLog-pr-3057.yml
new file mode 100644
index 000000000000..cfc1bc9340ba
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3057.yml
@@ -0,0 +1,4 @@
+author: Sun-Soaked
+changes:
+ - {bugfix: shoutgun casing bounce sfx now plays as intended. oopsies.}
+delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-3058.yml b/html/changelogs/AutoChangeLog-pr-3058.yml
new file mode 100644
index 000000000000..1bd6f57c0a9a
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3058.yml
@@ -0,0 +1,4 @@
+author: Sun-Soaked
+changes:
+ - {config: tweak option removed from changelog template}
+delete-after: true
diff --git a/html/changelogs/archive/2024-05.yml b/html/changelogs/archive/2024-05.yml
index 8b5e1e4a969b..9e6c28996774 100644
--- a/html/changelogs/archive/2024-05.yml
+++ b/html/changelogs/archive/2024-05.yml
@@ -114,3 +114,73 @@
- rscadd: adds support to make adding species variants easier, jesus christ it was
bad before.
- rscadd: snouted variant support for sprites
+2024-05-22:
+ Zevotech:
+ - rscadd: rockplanet_shippingdock.dmm and associated code
+2024-05-25:
+ FalloutFalcon:
+ - rscdel: Removed comms consoles from ruins and ships
+ PositiveEntropy:
+ - imageadd: Computers now look sleeker!
+ SomeguyManperson:
+ - bugfix: mech laser cargo crate is no longer unbuyable
+ Zevotech:
+ - rscdel: Plastic flaps no longer block atmos
+2024-05-28:
+ Anticept:
+ - tweak: All pacman and its variants now have the same sheet burn times. Superpacmans
+ are no longer the vastly inferior generator.
+ Gristlebee:
+ - rscadd: Generic Ammo Boxes, printable in the autolathe
+ - rscadd: Ammo cans are printable in the autolathe
+ - bugfix: Ammo boxes sometimes not properly updating their materials
+ - rscdel: Elzu can no longer change their color with the multitool or emag.
+ Martinpachu:
+ - rscadd: Double bedsheets, fit for double beds, are now craftable via cloth.
+ Mirag19:
+ - bugfix: Fix revolver ammo check
+ Skies-Of-Blue:
+ - bugfix: fbp and rilena hoodies now work as intended
+ SomeguyManperson:
+ - bugfix: melee hermits now pull from the "survivor" loot variant rather than no
+ loot variant
+ - bugfix: hermits can no longer commit mitosis
+ - tweak: hermit loot has been compactified, defaults are now declared in the object
+ rather than initialize, and variant-specific loot now uses a switch statement
+ - bugfix: all hermits now have pocket loot randomized as intended
+ - tweak: reduces the cash bundle melee hermits can drop from a medium random (500-3000)
+ to small random (100-500) bundle since they are quite common
+ - bugfix: prismwine's burn resistance can no longer end up stacking
+ Spyroshark, Sun-Soaked:
+ - rscadd: A movable physics subsystem, deployed using a component.
+ - rscadd: Bullet casings now drop using movable physics
+ - code_imp: ports NO_PIXEL_RANDOM_DROP from TG.
+ Thera-Pissed:
+ - tweak: SSUs draw power to decontaminate
+ - balance: lights no longer take 60% of a ships power, machines use more to account
+ for this.
+ - code_imp: added standardized defines for power usage
+ Zevotech:
+ - rscdel: Clown and mime fan quirks have been removed
+ - rscdel: Removes the clown and mime fan pins
+2024-05-29:
+ Apogee-dev:
+ - tweak: Syndicate mobs have been renamed to Ramzi Clique mobs. New sprites will
+ come later.
+ Gristlebee:
+ - rscadd: Holopads now display the location of the last holopad that called them
+ on examine.
+ - code_imp: Span macros for hologram.dm
+ - rscadd: Autolathe can print holofield controllers.
+ - rscadd: You can sync blastdoors and holofields to a controller in a button with
+ a multitool
+ - code_imp: span macros for blast doors, buttons and holofields
+2024-05-30:
+ PositiveEntropy:
+ - rscadd: Solarian Marine Bi-ologists now have proper representation in the form
+ of a cute cloak!
+2024-05-31:
+ Gristlebee:
+ - bugfix: Auto unloading for gate loaded revolvers
+ INFRARED_BARON, PositiveEntropy:
+ - imageadd: Resprites nearly every mech!
diff --git a/html/changelogs/archive/2024-06.yml b/html/changelogs/archive/2024-06.yml
new file mode 100644
index 000000000000..04885ae26286
--- /dev/null
+++ b/html/changelogs/archive/2024-06.yml
@@ -0,0 +1,41 @@
+2024-06-01:
+ FalloutFalcon:
+ - rscadd: Added new more varied legion corpses
+ - rscdel: Removed lot of the crappy legion corpses
+ - balance: rebalanced most of the old legion corpses
+ - refactor: moved most legion corpse loot behavior to outfits
+ - tweak: tweaked the new ore
+ Gristlebee:
+ - rscadd: Suit Storage Unit construction
+ - rscadd: Added suit storage unit circuit boards to industrial engineering tech
+ - tweak: Suit storage unit examines
+ - tweak: span class to span macros in suit_storage.dm
+ INFRARED_BARON:
+ - imageadd: All mechs have been successfully resprited, including the Mauler, Marauder
+ and Seraph now!
+ Skies-Of-Blue:
+ - tweak: mugs referencing an ancient terran empire have been confiscated by the
+ confederation. Please enjoy your complementary, generic mug in compensation
+ - bugfix: rds based delusions now pass without the player having to relog, thank
+ god
+ - bugfix: rds can once again be treated with mindbreaker toxin (hopefully)
+ - tweak: the pool of possible delusions has been changed to better reflect shiptest's
+ narrative
+ - rscadd: a base ramzi sprite to simple_human.dmi to be used in the changed delusion
+ pool
+ - rscdel: chat warning message for rds users not to grief. Just be cool about it,
+ okay?
+ SomeguyManperson:
+ - bugfix: fueled thruster throttling now works right
+ Sun-Soaked:
+ - rscadd: World icon element.
+ - rscadd: World icons for combat knives.
+ thgvr:
+ - rscadd: Roundstart ships no longer spawn
+2024-06-02:
+ Skies-Of-Blue:
+ - rscdel: removes the roundjoin "welcome to /tg/ station" audio clip
+ SomeguyManperson:
+ - bugfix: black market secret documents are no longer default documents
+ - balance: the shoddy survivor suits found on hermits are now actually worse than
+ the EXOCOM explorer suits
diff --git a/icons/effects/ore_visuals.dmi b/icons/effects/ore_visuals.dmi
index 1353a2d814ad..b64b8f0427e2 100644
Binary files a/icons/effects/ore_visuals.dmi and b/icons/effects/ore_visuals.dmi differ
diff --git a/icons/mecha/mecha.dmi b/icons/mecha/mecha.dmi
index 08f0c94505ee..b894d9191225 100644
Binary files a/icons/mecha/mecha.dmi and b/icons/mecha/mecha.dmi differ
diff --git a/icons/mob/clothing/belt.dmi b/icons/mob/clothing/belt.dmi
index 398d4589ad71..f334af20104e 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 6b27c56c8b35..bc048fc920c9 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/neck.dmi b/icons/mob/clothing/neck.dmi
index 9443ebfbc615..a22e958effd8 100644
Binary files a/icons/mob/clothing/neck.dmi and b/icons/mob/clothing/neck.dmi differ
diff --git a/icons/mob/inhands/misc/sheets_lefthand.dmi b/icons/mob/inhands/misc/sheets_lefthand.dmi
index 8a5431217705..4d7c351d35f9 100644
Binary files a/icons/mob/inhands/misc/sheets_lefthand.dmi and b/icons/mob/inhands/misc/sheets_lefthand.dmi differ
diff --git a/icons/mob/inhands/misc/sheets_righthand.dmi b/icons/mob/inhands/misc/sheets_righthand.dmi
index 24256299f2e8..c19a179e689b 100644
Binary files a/icons/mob/inhands/misc/sheets_righthand.dmi and b/icons/mob/inhands/misc/sheets_righthand.dmi differ
diff --git a/icons/mob/inhands/weapons/guns_lefthand.dmi b/icons/mob/inhands/weapons/guns_lefthand.dmi
index ef1b09fccc53..d356f95fd272 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 827bd71ad50e..b69fb6ff8f74 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/simple_human.dmi b/icons/mob/simple_human.dmi
index 8cbc0f841bcb..133544acc999 100644
Binary files a/icons/mob/simple_human.dmi and b/icons/mob/simple_human.dmi differ
diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi
index 4f2f029a96b7..6fac77253d60 100644
Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ
diff --git a/icons/obj/clothing/cloaks.dmi b/icons/obj/clothing/cloaks.dmi
index 48f09da9a178..4e863875c47f 100644
Binary files a/icons/obj/clothing/cloaks.dmi and b/icons/obj/clothing/cloaks.dmi differ
diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi
index 2ee023557f56..fb23d4bc2afe 100644
Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ
diff --git a/icons/obj/clothing/suits/hooded.dmi b/icons/obj/clothing/suits/hooded.dmi
index 06d98acf2358..5b04aa13aaa7 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/projectile.dmi b/icons/obj/guns/projectile.dmi
index 690ed5d86d2f..9068f301647f 100644
Binary files a/icons/obj/guns/projectile.dmi and b/icons/obj/guns/projectile.dmi differ
diff --git a/icons/obj/machines/computer.dmi b/icons/obj/machines/computer.dmi
index 908304d40b02..2e102cda95ad 100644
Binary files a/icons/obj/machines/computer.dmi and b/icons/obj/machines/computer.dmi differ
diff --git a/icons/obj/ores.dmi b/icons/obj/ores.dmi
index f3451a8432dd..1e6c41a90c05 100644
Binary files a/icons/obj/ores.dmi and b/icons/obj/ores.dmi differ
diff --git a/icons/obj/stack_objects.dmi b/icons/obj/stack_objects.dmi
index 0989e1834f70..80350d2bfaa3 100644
Binary files a/icons/obj/stack_objects.dmi and b/icons/obj/stack_objects.dmi differ
diff --git a/icons/obj/world/melee.dmi b/icons/obj/world/melee.dmi
new file mode 100644
index 000000000000..ff8e2114e827
Binary files /dev/null and b/icons/obj/world/melee.dmi differ
diff --git a/icons/turf/walls/bananium_wall.dmi b/icons/turf/walls/bananium_wall.dmi
deleted file mode 100644
index 48a58fe20619..000000000000
Binary files a/icons/turf/walls/bananium_wall.dmi and /dev/null differ
diff --git a/shiptest.dme b/shiptest.dme
index af3c472e4e6b..6574a98b5a1e 100644
--- a/shiptest.dme
+++ b/shiptest.dme
@@ -377,6 +377,7 @@
#include "code\controllers\subsystem\processing\fastprocess.dm"
#include "code\controllers\subsystem\processing\fluids.dm"
#include "code\controllers\subsystem\processing\instruments.dm"
+#include "code\controllers\subsystem\processing\movable_physics.dm"
#include "code\controllers\subsystem\processing\nanites.dm"
#include "code\controllers\subsystem\processing\networks.dm"
#include "code\controllers\subsystem\processing\obj.dm"
@@ -502,6 +503,7 @@
#include "code\datums\components\material_container.dm"
#include "code\datums\components\mirv.dm"
#include "code\datums\components\mood.dm"
+#include "code\datums\components\movable_physics.dm"
#include "code\datums\components\nanites.dm"
#include "code\datums\components\ntnet_interface.dm"
#include "code\datums\components\orbiter.dm"
@@ -653,6 +655,7 @@
#include "code\datums\elements\update_icon_blocker.dm"
#include "code\datums\elements\update_icon_updates_onmob.dm"
#include "code\datums\elements\waddling.dm"
+#include "code\datums\elements\world_icon.dm"
#include "code\datums\elements\decals\_decals.dm"
#include "code\datums\elements\decals\blood.dm"
#include "code\datums\helper_datums\events.dm"
@@ -1682,7 +1685,6 @@
#include "code\modules\antagonists\cult\rune_spawn_action.dm"
#include "code\modules\antagonists\cult\runes.dm"
#include "code\modules\antagonists\devil\devil.dm"
-#include "code\modules\antagonists\devil\devil_helpers.dm"
#include "code\modules\antagonists\devil\imp\imp.dm"
#include "code\modules\antagonists\devil\sintouched\objectives.dm"
#include "code\modules\antagonists\devil\sintouched\sintouched.dm"
@@ -2706,13 +2708,10 @@
#include "code\modules\mob\living\simple_animal\hostile\bear.dm"
#include "code\modules\mob\living\simple_animal\hostile\bees.dm"
#include "code\modules\mob\living\simple_animal\hostile\carp.dm"
-#include "code\modules\mob\living\simple_animal\hostile\cat_butcher.dm"
#include "code\modules\mob\living\simple_animal\hostile\clown.dm"
#include "code\modules\mob\living\simple_animal\hostile\cockroach.dm"
-#include "code\modules\mob\living\simple_animal\hostile\dark_wizard.dm"
#include "code\modules\mob\living\simple_animal\hostile\eyeballs.dm"
#include "code\modules\mob\living\simple_animal\hostile\faithless.dm"
-#include "code\modules\mob\living\simple_animal\hostile\frontiersman.dm"
#include "code\modules\mob\living\simple_animal\hostile\giant_spider.dm"
#include "code\modules\mob\living\simple_animal\hostile\goose.dm"
#include "code\modules\mob\living\simple_animal\hostile\headcrab.dm"
@@ -2723,26 +2722,26 @@
#include "code\modules\mob\living\simple_animal\hostile\mecha_pilot.dm"
#include "code\modules\mob\living\simple_animal\hostile\mimic.dm"
#include "code\modules\mob\living\simple_animal\hostile\mushroom.dm"
-#include "code\modules\mob\living\simple_animal\hostile\nanotrasen.dm"
#include "code\modules\mob\living\simple_animal\hostile\netherworld.dm"
-#include "code\modules\mob\living\simple_animal\hostile\pirate.dm"
#include "code\modules\mob\living\simple_animal\hostile\regalrat.dm"
-#include "code\modules\mob\living\simple_animal\hostile\skeleton.dm"
#include "code\modules\mob\living\simple_animal\hostile\space_dragon.dm"
#include "code\modules\mob\living\simple_animal\hostile\statue.dm"
-#include "code\modules\mob\living\simple_animal\hostile\stickman.dm"
-#include "code\modules\mob\living\simple_animal\hostile\survivors.dm"
-#include "code\modules\mob\living\simple_animal\hostile\syndicate.dm"
#include "code\modules\mob\living\simple_animal\hostile\tree.dm"
#include "code\modules\mob\living\simple_animal\hostile\venus_human_trap.dm"
-#include "code\modules\mob\living\simple_animal\hostile\wizard.dm"
#include "code\modules\mob\living\simple_animal\hostile\wumborian_fugu.dm"
-#include "code\modules\mob\living\simple_animal\hostile\zombie.dm"
#include "code\modules\mob\living\simple_animal\hostile\bosses\boss.dm"
-#include "code\modules\mob\living\simple_animal\hostile\bosses\paperwizard.dm"
#include "code\modules\mob\living\simple_animal\hostile\gorilla\emotes.dm"
#include "code\modules\mob\living\simple_animal\hostile\gorilla\gorilla.dm"
#include "code\modules\mob\living\simple_animal\hostile\gorilla\visuals_icons.dm"
+#include "code\modules\mob\living\simple_animal\hostile\human\cat_butcher.dm"
+#include "code\modules\mob\living\simple_animal\hostile\human\frontiersman.dm"
+#include "code\modules\mob\living\simple_animal\hostile\human\human.dm"
+#include "code\modules\mob\living\simple_animal\hostile\human\nanotrasen.dm"
+#include "code\modules\mob\living\simple_animal\hostile\human\pirate.dm"
+#include "code\modules\mob\living\simple_animal\hostile\human\skeleton.dm"
+#include "code\modules\mob\living\simple_animal\hostile\human\survivors.dm"
+#include "code\modules\mob\living\simple_animal\hostile\human\syndicate.dm"
+#include "code\modules\mob\living\simple_animal\hostile\human\zombie.dm"
#include "code\modules\mob\living\simple_animal\hostile\jungle\_jungle_mobs.dm"
#include "code\modules\mob\living\simple_animal\hostile\jungle\leaper.dm"
#include "code\modules\mob\living\simple_animal\hostile\jungle\mega_arachnid.dm"
@@ -2766,6 +2765,7 @@
#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\goldgrub.dm"
#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\goliath.dm"
#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\gutlunch.dm"
+#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\hivelord_outfits.dm"
#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\hivelord.dm"
#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\ice demon.dm"
#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\ice whelp.dm"
@@ -3006,6 +3006,7 @@
#include "code\modules\projectiles\ammunition\special\syringe.dm"
#include "code\modules\projectiles\boxes_magazines\_box_magazine.dm"
#include "code\modules\projectiles\boxes_magazines\ammo_boxes.dm"
+#include "code\modules\projectiles\boxes_magazines\generic_ammo_box.dm"
#include "code\modules\projectiles\boxes_magazines\external\gauss.dm"
#include "code\modules\projectiles\boxes_magazines\external\grenade.dm"
#include "code\modules\projectiles\boxes_magazines\external\lmg.dm"
diff --git a/sound/voice/ApproachingTG.ogg b/sound/voice/ApproachingTG.ogg
deleted file mode 100644
index 3f8bc1c48801..000000000000
Binary files a/sound/voice/ApproachingTG.ogg and /dev/null differ
diff --git a/tools/UpdatePaths/Scripts/2972_human_hostile.txt b/tools/UpdatePaths/Scripts/2972_human_hostile.txt
new file mode 100644
index 000000000000..297ba2df7bb9
--- /dev/null
+++ b/tools/UpdatePaths/Scripts/2972_human_hostile.txt
@@ -0,0 +1,7 @@
+/mob/living/simple_animal/hostile/pirate/@SUBTYPES: /mob/living/simple_animal/hostile/human/pirate/@SUBTYPES {@OLD}
+/mob/living/simple_animal/hostile/frontier/@SUBTYPES: /mob/living/simple_animal/hostile/human/frontier/@SUBTYPES {@OLD}
+/mob/living/simple_animal/hostile/nanotrasen/@SUBTYPES: /mob/living/simple_animal/hostile/human/nanotrasen/@SUBTYPES {@OLD}
+/mob/living/simple_animal/hostile/skeleton/@SUBTYPES: /mob/living/simple_animal/hostile/human/skeleton/@SUBTYPES {@OLD}
+/mob/living/simple_animal/hostile/asteroid/whitesands/@SUBTYPES: /mob/living/simple_animal/hostile/human/hermit/@SUBTYPES {@OLD}
+/mob/living/simple_animal/hostile/cat_butcherer/@SUBTYPES: /mob/living/simple_animal/hostile/human/cat_butcherer/@SUBTYPES {@OLD}
+/mob/living/simple_animal/hostile/syndicate/@SUBTYPES:: /mob/living/simple_animal/hostile/human/syndicate/@SUBTYPES {@OLD}