diff --git a/SQL/tgstation_schema.sql b/SQL/tgstation_schema.sql
index 848e28b7f41..02329c2b66a 100644
--- a/SQL/tgstation_schema.sql
+++ b/SQL/tgstation_schema.sql
@@ -306,16 +306,7 @@ CREATE TABLE `poll_vote` (
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
---var/reason = input(usr,"Reason?","reason","Metagaming") as text|null
- if(!reason)
- return
- log_admin("[key_name_admin(usr)] has added [key_name_admin(M)] to the watchlist - Reason: [reason]")
- message_admins("[key_name_admin(usr)] has added [key_name_admin(M)] to the watchlist - Reason: [reason]", 1)
- reason = sanitizeSQL(reason)
- var/DBQuery/query_watchadd = dbcon.NewQuery("INSERT INTO [format_table_name("watch")] (ckey, reason) VALUES ('[sql_ckey]', '[reason]')")
- if(!query_watchadd.Execute())
- var/err = query_watchadd.ErrorMsg()
- log_game("SQL ERROR during adding new watch entry. Error : \[[err]\]\n")
+
-- Table structure for table `privacy`
--
diff --git a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm
index 11d8e3fd510..11d43cc22db 100644
--- a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm
@@ -1000,7 +1000,7 @@
"atl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Storage Room"; req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/fore)
"atm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating{dir = 8; icon_state = "warnplate"; tag = ""},/area/maintenance/fore)
"atn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plating,/area/maintenance/fore)
-"ato" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/light/small{dir = 1},/obj/structure/table/wood,/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/item/weapon/lighter/zippo,/turf/simulated/floor/wood,/area/crew_quarters/sleep)
+"ato" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/light/small{dir = 1},/obj/structure/table/wood,/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/item/weapon/lighter,/turf/simulated/floor/wood,/area/crew_quarters/sleep)
"atp" = (/obj/structure/closet/secure_closet/personal/cabinet,/obj/machinery/alarm{pixel_y = 23},/obj/item/clothing/under/assistantformal,/turf/simulated/floor/wood,/area/crew_quarters/sleep)
"atq" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/machinery/door_control{id = "Cabin3"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/effect/decal/cleanable/cobweb2,/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/wood,/area/crew_quarters/sleep)
"atr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/crew_quarters/sleep)
@@ -1608,7 +1608,7 @@
"aEV" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor/plasteel{dir = 1; icon_state = "neutralcorner"},/area/crew_quarters/sleep)
"aEW" = (/obj/structure/stool{pixel_y = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/crew_quarters/sleep)
"aEX" = (/obj/structure/table,/obj/item/weapon/storage/pill_bottle/dice,/turf/simulated/floor/plasteel,/area/crew_quarters/sleep)
-"aEY" = (/obj/structure/table,/obj/item/weapon/storage/fancy/crayons,/turf/simulated/floor/plasteel,/area/crew_quarters/sleep)
+"aEY" = (/obj/structure/table,/obj/item/weapon/storage/crayons,/turf/simulated/floor/plasteel,/area/crew_quarters/sleep)
"aEZ" = (/obj/structure/table,/obj/item/toy/cards/deck,/turf/simulated/floor/plasteel,/area/crew_quarters/sleep)
"aFa" = (/obj/structure/stool{pixel_y = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/crew_quarters/sleep)
"aFb" = (/obj/machinery/door/airlock{id_tag = "Cabin6"; name = "Cabin 2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/sleep)
@@ -3044,7 +3044,7 @@
"bgB" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -28},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/engine/chiefs_office)
"bgC" = (/obj/structure/table/glass,/turf/simulated/floor/plasteel,/area/engine/break_room)
"bgD" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/secure/briefcase,/obj/item/clothing/mask/cigarette/cigar,/obj/machinery/computer/security/telescreen{dir = 1; name = "MiniSat Monitor"; network = list("MiniSat","tcomm"); pixel_x = 0; pixel_y = -30},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/engine/chiefs_office)
-"bgE" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/lighter/zippo,/obj/item/clothing/glasses/meson,/obj/machinery/door_control{id = "ceprivacy"; name = "Privacy Shutters Control"; pixel_x = 0; pixel_y = -26},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/engine/chiefs_office)
+"bgE" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/lighter,/obj/item/clothing/glasses/meson,/obj/machinery/door_control{id = "ceprivacy"; name = "Privacy Shutters Control"; pixel_x = 0; pixel_y = -26},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/engine/chiefs_office)
"bgF" = (/obj/structure/filingcabinet/chestdrawer,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/mob/living/simple_animal/parrot/Poly,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/engine/chiefs_office)
"bgG" = (/obj/structure/closet/secure_closet/engineering_chief{req_access_txt = "0"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/engine/chiefs_office)
"bgH" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/engineering{name = "Engine Room"; req_access_txt = "10"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/engine/engineering)
@@ -3717,7 +3717,7 @@
"bty" = (/obj/machinery/computer/card,/obj/machinery/light/small{dir = 4},/obj/machinery/requests_console{announcementConsole = 1; department = "Captain's Desk"; departmentType = 5; name = "Captain RC"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"})
"btz" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/hallway/primary/central)
"btA" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "neutralcorner"},/area/hallway/primary/central)
-"btB" = (/obj/structure/table,/obj/item/weapon/storage/fancy/crayons,/obj/item/weapon/storage/fancy/crayons,/obj/machinery/power/apc{cell_type = 2500; dir = 8; name = "Art Storage APC"; pixel_x = -25; pixel_y = 0},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plasteel,/area/storage/art)
+"btB" = (/obj/structure/table,/obj/item/weapon/storage/crayons,/obj/item/weapon/storage/crayons,/obj/machinery/power/apc{cell_type = 2500; dir = 8; name = "Art Storage APC"; pixel_x = -25; pixel_y = 0},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plasteel,/area/storage/art)
"btC" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel,/area/storage/art)
"btD" = (/obj/structure/table,/obj/item/weapon/airlock_painter,/turf/simulated/floor/plasteel,/area/storage/art)
"btE" = (/obj/structure/reagent_dispensers/beerkeg,/turf/simulated/floor/wood,/area/crew_quarters/bar)
@@ -4022,7 +4022,7 @@
"bzr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/fancy/carpet{tag = "icon-carpet7-3"; icon_state = "carpet7-3"},/area/crew_quarters/captain{name = "\improper Captain's Quarters"})
"bzs" = (/obj/machinery/door/airlock/command{name = "Emergency Escape"; req_access = null; req_access_txt = "20"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/crew_quarters/captain{name = "\improper Captain's Quarters"})
"bzt" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/wood,/area/crew_quarters/bar)
-"bzu" = (/obj/machinery/vending/cigarette{pixel_y = 2; products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/random = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/simulated/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"})
+"bzu" = (/obj/machinery/vending/cigarette{pixel_y = 2; products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/greyscale = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/simulated/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"})
"bzv" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bzw" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bzx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/fancy/carpet{tag = "icon-carpet11-12"; icon_state = "carpet11-12"},/area/crew_quarters/captain{name = "\improper Captain's Quarters"})
@@ -4148,7 +4148,7 @@
"bBN" = (/obj/machinery/atmospherics/unary/heat_reservoir/heater{dir = 2; on = 1; tag = ""},/turf/simulated/floor/plasteel{dir = 1; icon_state = "caution"},/area/atmos)
"bBO" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 10; initialize_directions = 10},/turf/simulated/floor/plasteel{dir = 1; icon_state = "caution"},/area/atmos)
"bBP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating{icon_state = "warnplate"},/area/maintenance/maintcentral{name = "Central Maintenance"})
-"bBQ" = (/obj/structure/table/reinforced,/obj/item/weapon/lighter/zippo,/obj/machinery/computer/security/telescreen/entertainment{pixel_x = -31; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
+"bBQ" = (/obj/structure/table/reinforced,/obj/item/weapon/lighter,/obj/machinery/computer/security/telescreen/entertainment{pixel_x = -31; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"bBR" = (/obj/item/weapon/tank/internals/air,/obj/item/weapon/tank/internals/air,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/aft{name = "Aft Maintenance"})
"bBS" = (/obj/structure/table/reinforced,/obj/item/clothing/head/that{throwforce = 1; throwing = 1},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"bBT" = (/obj/structure/table/reinforced,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
@@ -4206,7 +4206,7 @@
"bCT" = (/obj/machinery/light_switch{pixel_x = -26; pixel_y = 0},/obj/machinery/light/small{dir = 8},/obj/structure/closet/l3closet,/turf/simulated/floor/plasteel{dir = 10; icon_state = "whiteblue"},/area/medical/medbay2{name = "Medbay Storage"})
"bCU" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/vending/coffee{pixel_x = -3},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/bridge)
"bCV" = (/obj/machinery/door_control{id = "council blast"; name = "Council Chamber Blast Door Control"; pixel_x = 5; pixel_y = -28; req_access_txt = "19"},/turf/simulated/floor/fancy/carpet,/area/bridge)
-"bCW" = (/obj/structure/table/wood,/obj/item/weapon/folder/blue,/obj/item/weapon/lighter/zippo,/turf/simulated/floor/fancy/carpet,/area/bridge)
+"bCW" = (/obj/structure/table/wood,/obj/item/weapon/folder/blue,/obj/item/weapon/lighter,/turf/simulated/floor/fancy/carpet,/area/bridge)
"bCX" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/vending/cigarette{pixel_x = 2},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/bridge)
"bCY" = (/obj/machinery/door_control{id = "council blast"; name = "Council Chamber Blast Door Control"; pixel_x = -5; pixel_y = -28; req_access_txt = "19"},/turf/simulated/floor/fancy/carpet,/area/bridge)
"bCZ" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/wood,/area/crew_quarters/bar)
@@ -6259,7 +6259,7 @@
"cqu" = (/obj/structure/disposaloutlet{dir = 2},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/plating/airless,/area/space)
"cqv" = (/obj/structure/sign/fire{pixel_x = 0; pixel_y = 0},/turf/simulated/wall/r_wall,/area/maintenance/incinerator)
"cqw" = (/obj/machinery/door/poddoor{id = "turbinevent"; name = "Turbine Vent"},/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator)
-"cqx" = (/obj/item/weapon/storage/fancy/crayons,/obj/machinery/light/small{dir = 8},/obj/structure/table/wood,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office)
+"cqx" = (/obj/item/weapon/storage/crayons,/obj/machinery/light/small{dir = 8},/obj/structure/table/wood,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office)
"cqy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/storage/fancy/candle_box{pixel_x = 0; pixel_y = 5},/obj/structure/table/wood,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office)
"cqz" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
"cqA" = (/obj/structure/stool,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab)
diff --git a/_maps/map_files/MetaStation/z2.dmm b/_maps/map_files/MetaStation/z2.dmm
index 33f537a9409..3ecffff05b3 100644
--- a/_maps/map_files/MetaStation/z2.dmm
+++ b/_maps/map_files/MetaStation/z2.dmm
@@ -288,7 +288,7 @@
"fB" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/shotgun/toy/crossbow,/obj/item/toy/foamblade,/turf/simulated/floor{dir = 1; icon_state = "green"},/area/centcom/evac)
"fC" = (/turf/simulated/floor{dir = 1; icon_state = "green"},/area/centcom/evac)
"fD" = (/turf/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/evac)
-"fE" = (/obj/structure/rack,/obj/item/weapon/storage/fancy/crayons,/obj/item/toy/sword,/turf/simulated/floor{dir = 1; icon_state = "green"},/area/centcom/evac)
+"fE" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/toy/sword,/turf/simulated/floor{dir = 1; icon_state = "green"},/area/centcom/evac)
"fF" = (/turf/simulated/floor/plasteel/shuttle,/area/shuttle/escape)
"fG" = (/turf/simulated/floor/plating{icon_state = "floorgrime"},/area/shuttle/escape)
"fH" = (/turf/simulated/floor/plating{dir = 1; icon_state = "delivery"},/area/shuttle/escape)
@@ -471,7 +471,7 @@
"jc" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/shotgun/toy/crossbow,/obj/item/toy/katana,/turf/simulated/floor{icon_state = "red"; dir = 2},/area/centcom/evac)
"jd" = (/turf/simulated/floor{icon_state = "red"; dir = 2},/area/centcom/evac)
"je" = (/turf/indestructible/fakeglass,/area/centcom/evac)
-"jf" = (/obj/structure/rack,/obj/item/weapon/storage/fancy/crayons,/obj/item/toy/sword,/turf/simulated/floor{icon_state = "red"; dir = 2},/area/centcom/evac)
+"jf" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/toy/sword,/turf/simulated/floor{icon_state = "red"; dir = 2},/area/centcom/evac)
"jg" = (/obj/structure/closet/emcloset,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/floor/plasteel/shuttle{icon_state = "floor3"},/area/shuttle/escape)
"jh" = (/obj/machinery/flasher{id = "emshuttlebridgeflash"; pixel_y = -24},/turf/simulated/floor/plasteel/shuttle,/area/shuttle/escape)
"ji" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel/shuttle{icon_state = "floor3"},/area/shuttle/escape)
@@ -482,9 +482,9 @@
"jn" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/simulated/floor/plasteel/shuttle{icon_state = "floor4"},/area/shuttle/syndicate)
"jo" = (/obj/structure/stool/bed/chair/comfy/black{dir = 1; icon_state = "comfychair"; name = "pilot's chair"; tag = "icon-comfychair (NORTH)"},/turf/simulated/floor/plasteel/shuttle{icon_state = "floor4"},/area/shuttle/syndicate)
"jp" = (/turf/simulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership)
-"jq" = (/obj/item/weapon/storage/fancy/crayons,/obj/structure/table,/obj/item/weapon/storage/fancy/crayons,/turf/simulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
+"jq" = (/obj/item/weapon/storage/crayons,/obj/structure/table,/obj/item/weapon/storage/crayons,/turf/simulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
"jr" = (/obj/machinery/washing_machine,/turf/simulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
-"js" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/random = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/simulated/floor{icon_state = "dark"},/area/centcom/ferry)
+"js" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/greyscale = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/simulated/floor{icon_state = "dark"},/area/centcom/ferry)
"jt" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/simulated/floor{icon_state = "dark"},/area/centcom/ferry)
"ju" = (/obj/structure/sign/map/left{icon_state = "map-left-MS"; pixel_y = 0; tag = "icon-map-left-MS"},/turf/simulated/floor{tag = "icon-light_on"; icon_state = "light_on"},/area/centcom/ferry)
"jv" = (/obj/structure/sign/map/right{icon_state = "map-right-MS"},/turf/simulated/floor{tag = "icon-light_on"; icon_state = "light_on"},/area/centcom/ferry)
@@ -507,7 +507,7 @@
"jM" = (/turf/simulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"jN" = (/obj/machinery/computer/shuttle/syndicate/recall,/turf/simulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"jO" = (/obj/machinery/vending/coffee,/turf/simulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"jP" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/random = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/simulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"jP" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/greyscale = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/simulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"jQ" = (/obj/machinery/vending/cola,/turf/simulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"jR" = (/obj/item/device/paicard,/turf/simulated/floor{icon_state = "grimy"},/area/syndicate_mothership)
"jS" = (/turf/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/syndicate_mothership)
@@ -845,7 +845,7 @@
"qm" = (/obj/structure/cult/forge{desc = "A engine used in powering the wizards ship"; name = "magma engine"},/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
"qn" = (/obj/structure/table,/obj/item/ammo_box/foambox,/turf/simulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
"qo" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/simulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"qp" = (/obj/structure/table,/obj/item/weapon/lighter/zippo,/turf/simulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
+"qp" = (/obj/structure/table,/obj/item/weapon/lighter,/turf/simulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
"qq" = (/obj/structure/table,/obj/item/weapon/dice/d20,/turf/simulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
"qr" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/turf/simulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
"qs" = (/obj/structure/stool{pixel_y = 8},/obj/item/clothing/head/bandana{pixel_y = -10},/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor/plating/beach/sand,/area/centcom/holding)
@@ -855,9 +855,9 @@
"qw" = (/obj/structure/rack,/obj/item/clothing/head/that,/obj/item/clothing/under/suit_jacket,/obj/item/clothing/tie/waistcoat,/turf/simulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
"qx" = (/obj/item/toy/beach_ball,/turf/simulated/floor/plating/beach/sand,/area/centcom/holding)
"qy" = (/obj/structure/shuttle/engine/heater,/turf/simulated/floor{tag = "icon-lava"; icon_state = "lava"},/area/wizard_station)
-"qz" = (/obj/structure/rack,/obj/item/weapon/storage/fancy/crayons,/obj/item/weapon/gun/projectile/automatic/toy/pistol,/turf/simulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
+"qz" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/weapon/gun/projectile/automatic/toy/pistol,/turf/simulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
"qA" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
-"qB" = (/obj/structure/rack,/obj/item/weapon/storage/fancy/crayons,/obj/item/weapon/gun/projectile/shotgun/toy/crossbow,/turf/simulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
+"qB" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/weapon/gun/projectile/shotgun/toy/crossbow,/turf/simulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
"qC" = (/turf/simulated/floor/plating/beach/coastline,/area/centcom/holding)
"qD" = (/obj/item/clothing/head/collectable/paper,/turf/simulated/floor/plating/beach/coastline,/area/centcom/holding)
"qE" = (/obj/structure/rack,/obj/item/clothing/shoes/laceup,/obj/item/clothing/under/suit_jacket/female{desc = "A black trouser suit for women. Very formal."; name = "black suit"; pixel_x = 3; pixel_y = 1},/turf/simulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
diff --git a/_maps/map_files/MetaStation/z3.dmm b/_maps/map_files/MetaStation/z3.dmm
index f64cd149fbc..b7083787bb8 100644
--- a/_maps/map_files/MetaStation/z3.dmm
+++ b/_maps/map_files/MetaStation/z3.dmm
@@ -1,4 +1,5 @@
"aa" = (/turf/space,/area/space)
+"ab" = (/obj/effect/spawner/lootdrop,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
"ac" = (/turf/simulated/wall/shuttle{tag = "icon-swall14"; icon_state = "swall14"; dir = 2},/area/shuttle/abandoned)
"ad" = (/turf/simulated/wall/shuttle{icon_state = "swall_s6"; dir = 2},/area/shuttle/abandoned)
"ae" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/simulated/floor/plating,/area/shuttle/abandoned)
@@ -345,6 +346,7 @@
"gH" = (/obj/structure/table,/obj/item/weapon/defibrillator,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/floor/plasteel/shuttle{icon_state = "floor3"},/area/shuttle/abandoned)
"gI" = (/obj/structure/table,/obj/item/weapon/storage/backpack/dufflebag/med{contents = newlist(/obj/item/weapon/scalpel,/obj/item/weapon/hemostat,/obj/item/weapon/retractor,/obj/item/weapon/cautery,/obj/item/weapon/circular_saw,/obj/item/weapon/surgicaldrill,/obj/item/weapon/razor); desc = "A large dufflebag for holding extra medical supplies - this one seems to be designed for holding surgical tools."; name = "surgical dufflebag"; pixel_y = 4},/turf/simulated/floor/plasteel/shuttle{icon_state = "floor3"},/area/shuttle/abandoned)
"gJ" = (/obj/structure/table,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/clothing/suit/apron/surgical,/turf/simulated/floor/plasteel/shuttle{icon_state = "floor3"},/area/shuttle/abandoned)
+"gK" = (/obj/effect/spawner/lootdrop,/turf/simulated/floor/plating/airless,/area/AIsattele)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -461,7 +463,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBbBbDbEbEbzbEbDbDbDbDbDbDbDbDbDbDbDbDbDbDbDbDbDbDbEbzayayaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAbBbDbDbDbDbDbFbFbFbFbFbDbDbDbDbDbDbDbDbDbFbFbFbFbGbHayayayayayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBbDbDbDayaabIbJbKbLbMbNbFbFbFbFbFbFbFbFbFbObFbPbQbRbSbHbHaybzbEbAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBbDbDayayaybTbJbHbUbVbWbXbFbYbYbZcacbccbFcdbFcecfbYbRbSbSbHbEbDbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBbDbDayayaybTbJbHbUbVbWbXbFabbYbZcacbccbFcdbFcecfbYbRbSbSbHbEbDbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBbDbDaaayaabIcgchcichcjckbFbYclbYbYbYcbbFcdbFcmcebYbYbRbRbFbDbDbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAbDbDaaayaaaacncocpcqcrcsctcubYcvbYbYcbbFcdbFcecebYcwcxcybFbDbDbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBbDbDaaayaabIczcAcBcAcBcCcDbYbYcEbYbYbFbFbFbFcFcGbYcEcHcIcJcKcKcLcMcNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -534,7 +536,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeCeCeCeCeCayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayayeCeCeDeEeFeCeCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayayayeCeCeGeHeHeHeIeCeCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeJeKeCeHeLeMeHeNeMeHeCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeJeKeCeHeLeMeHeNeMgKeCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayayeOeHeOeHePeNeQeHeHeReCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeJeSeCeReTeHeUeHeVeWeCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayayayeCeCeHeHeMeHeXeCeCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
diff --git a/_maps/map_files/MetaStation/z4.dmm b/_maps/map_files/MetaStation/z4.dmm
index 8f1e302b0f2..28ec3f8ad01 100644
--- a/_maps/map_files/MetaStation/z4.dmm
+++ b/_maps/map_files/MetaStation/z4.dmm
@@ -819,6 +819,8 @@
"pM" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/mineral/bananium/airless,/area/space)
"pN" = (/obj/item/weapon/pickaxe,/turf/simulated/floor/mineral/bananium/airless,/area/space)
"pO" = (/obj/structure/closet/crate,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/turf/simulated/floor/mineral/bananium/airless,/area/space)
+"pP" = (/obj/effect/spawner/lootdrop/crate_spawner,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/djstation)
+"pQ" = (/obj/effect/spawner/lootdrop/crate_spawner,/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -855,7 +857,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacagahahaoahahagacacacac
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababafapaqarahasafabababababaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafatafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafauavawaxayafafafafafafaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagazaAaAaAagawawawawawagaBaCaDaEagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagazaAaAaAagawawawawawagpPaCaDaEagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaFaAaAaAaGawaHaIaHawaJaBaBaBaKagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaLaMaNaAagawaOaPaQawagaRaSaTaUagaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaVafafaWafawawawawaXafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -904,7 +906,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeelelfpeIeJeHfEeHeJeHePePfpeHeHeHeHeJeHelceaaaaaaaaaaaaaaaaaaaaaeaedodtdtfqdtdtfFeBeBeSfGfHeSfHfIfJcdfKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeeleleHeJeHfLfMfNfOePfPePePfQfRfSfpeIeJelceaeaaaaaaaaaaefaaaaaeaeaedodododBdodteyfTeBfUfVfWezezeBeVfkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeelelfpeHfLfXfYfZePePePePePgagagbfSeHeIelceaeaeaacedododododododododododtdBdododogcgcgdgcgcgcetetetabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeelelelfpfpgegfeIePePePePePePePePggghfpgielceceaeaecedogjgjgjgkglgmgndododtdBdogogoceaecdcdaacegpcddfabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeelelelfpfpgegfeIePePePePePePePePggghfpgielceceaeaecedopQgjgjgkglgmgndododtdBdogogoceaecdcdaacegpcddfabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaelelelelelfpfpgefXeIePePePePePePePePgqghePfpelelelelelaadogrgjgjgjgjgjgjdododtdBdogogoaeaaaaaaaaaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeelelfpgsgtfpfpgugvePfOaaaaaaaaaaePePgqfmePfpeHfpePelelaedogjgjgjgjgjgjgjdododogwdododoaeaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaelelgxeHgqfSfpeIfpgyePePaaaaaaaaaaePePgzgyfpgAgBgCeHfpeleldodogDdogEgEgEgEdogjgjgFgjgjdoefaaaaaaaaaaaaaaaacdcdcedfcddfcdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -1077,3 +1079,4 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
"}
+
diff --git a/_maps/map_files/MetaStation/z5.dmm b/_maps/map_files/MetaStation/z5.dmm
index 771f56987f4..006bec69756 100644
--- a/_maps/map_files/MetaStation/z5.dmm
+++ b/_maps/map_files/MetaStation/z5.dmm
@@ -9,7 +9,7 @@
"ai" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"aj" = (/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
"ak" = (/obj/structure/lattice,/turf/space,/area/space)
-"al" = (/turf/simulated/floor/plating/asteroid/airless/cave,/area/mine/unexplored)
+"al" = (/obj/effect/spawner/lootdrop/crate_spawner,/turf/simulated/floor/plating/asteroid/airless/cave,/area/mine/unexplored)
"am" = (/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"an" = (/obj/item/stack/rods,/obj/structure/door_assembly/door_assembly_ext{name = "Broken External Airlock"},/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
"ao" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
@@ -608,9 +608,9 @@
"lJ" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/mine/living_quarters)
"lK" = (/turf/simulated/floor/plasteel{dir = 5; icon_state = "whiteblue"},/area/mine/living_quarters)
"lL" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/mine/living_quarters)
-"lM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/light/small{dir = 1},/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/mine/living_quarters)
+"lM" = (/obj/effect/spawner/lootdrop/crate_spawner,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/abandoned)
"lN" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/mine/living_quarters)
-"lO" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plating,/area/mine/living_quarters)
+"lO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/light/small{dir = 1},/obj/structure/closet/crate/secure/loot,/turf/simulated/floor/plating,/area/mine/living_quarters)
"lP" = (/obj/structure/rack,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/regular{pixel_x = -3; pixel_y = -3},/turf/simulated/floor/plating,/area/mine/living_quarters)
"lQ" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/living_quarters)
"lR" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/living_quarters)
@@ -711,6 +711,7 @@
"nI" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_z5"; name = "south of asteroid"; turf_type = /turf/space; width = 18},/turf/space,/area/space)
"nJ" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "loadingarea"},/area/mine/production)
"nK" = (/obj/machinery/mineral/unloading_machine{dir = 1; icon_state = "unloader-corner"; input_dir = 1; output_dir = 2},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/mine/production)
+"nL" = (/obj/machinery/atmospherics/pipe/simple,/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/mine/living_quarters)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -787,7 +788,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpdpdpdpdpdpddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacacawdqcHcHcHcHcHcHcHcHcHcGawbpajdrajdadsdbdbacacacacacacacacacacacacacacacacacacacacacacacacacacabababaebFbFbFbFbFbFbFbFbFbFbFbFbFbFdtdududududududududtbFbFbFdvdvdvbhdwdxdycNcAbFbFbFbFbFbFbFaeaeaeaeahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpdpdpdpdpdpdzdzdzdAdpdddddddBdBddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacacacawdqcGcGcGdCdDcGcGcGdqdqawbpdrdrdrbqawdbdbdbacacacacacacacacacacacacacacacacacacacacacacacacacabababaebFbFbFbFbFbFbFbFbFbFbFbFbFdgdgdEdFdFdFdFdFdFdFdgdgbFbFbFbFbFbhbSdGbScNdHbFbFbFbFbFbFbFaeaeaeaeahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpdIdJdKdLdMdNdOdOdOdpdPdPdPdPdQdBddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababacacacacacacacacacawawawawawawawawawawawawawawcTdRdSawawdbdbdbdbacacacacacacacacacacacacacacacacacacacacacacacacabababaebFbFbFbFbFbFbFbFbFbFbFbFbFaeaaaaaaaaaaaaaaaaaeaeaebFbFbFbFbFbFdTdUdVdWdXdYbFbFbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpdZeaebecdMeddOeeefegeheieidPdQejdBddddddddddddaaaaaaaaaaaaaaaaaaaaaaababababababacacacacacacacacacacacacacacacacacacacacacdbdbdbawcZcZdrawdbdbdbdbdbacacacacacacacacacacacacacacacacacacacacacacacacabababaebFbFbFbFbFbFbFbFbFbFbFbFaeaaaaaaaaaaaaaaaeaeaeaeaeaeaeaebFbFbFbFbFdTekekdVbFbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpdZeaebecdMeddOeeefegeheieidPdQejdBddddddddddddaaaaaaaaaaaaaaaaaaaaaaababababababacacacacacacacacacacacacacacacacacacacacacdbdbdbawlMcZdrawdbdbdbdbdbacacacacacacacacacacacacacacacacacacacacacacacacabababaebFbFbFbFbFbFbFbFbFbFbFbFaeaaaaaaaaaaaaaaaeaeaeaeaeaeaeaebFbFbFbFbFdTekekdVbFbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpdpdpdMelemendMeoepdMdMdpdpdpeqeresdBdBddddddddddddddaaaaaaaaaaaaaaaaaaaaababababacacacacacacacacacacacacacacacacacacacacacacacdbdbdbaweteuetawdbdbdbdbdbacacacacacacacacacacacacacacacacacacacacacacacacacababaebFbFbFbFbFbFbFbFbFbFbFbFaeaaaaaaaaaaaaaaaeaeaeaeaeaeaeaeaeaebFbFbFbFevevbFbFbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpewexdMeydOdNezeAdOeBdMeCeCeCdQeieidBdBddddddddddddddaaaaaaaaaaaaaaaaaaababababacacacacacacacacacacacacacacacacacacacacacacacacacdbdbaweDdReEawdbdbdbdbacacacacacacacacacacacacacacacacacacacacacacacacacacababaeaebFbFbFbFbFbFbFbFaeaeaeaeaaaaaaaaaaaaaaaaaeaeaeaeaeaeaeaeaeaeaebFbFevevbFbFaeaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakdpeFeGeHeIeJeKdOeydOdOeLeCeCeieieieieMdBddddddddddddddddaaaaaaaaaaaaaaabababababacacacacacacacadacacacacacacacacacacacacacacacacacdbdbdbeNeOePdbdbdbdbacacacacacacacacacacacacacacacacacacacacacadacacacacacabababaeaeaeaeaebFbFcrcraeababaaaaaaaaaaaaaaaaaaaeaeaeaeaeaeaeaeaeaeaeaebFevevbFbFaeaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -896,7 +897,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaebFbFhShShShShSklkmknhShSkokpkpkpkpgTgUgqgqgqgqfjfigqgqfjbFbFbFaeaeabababacacababababaeaebFbFgNgOgNgObFbFbFbFbFbFbFdTdVbFbFbFfigqfjevbFbFbFbFaeaeaeaeabhvhvhvhvkqjekrksktjakukvkvkwkwkvkvkxkykxkykzkzkzkzkzkzkzkzkAkAkAkAkAkAkAkBkCkBkCkDkEkFiwkGkHkIkJiwkKkLiwdVbFbFbFbFaeaeaeaeaeahahahahahaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaeaebFbFbFbFbFhSkMkNkOkPhSkQkRhLbFbFdTdVbFbFbFbFfigqgqfjevbFbFbFbFaeaeaeababababababaeaebFbFgNgOgNgObFbFbFbFaebFbFbFbFbFbFbFbFbFbFevevbFbFbFbFbFbFbFaeaeaeaeaehviKkSkTkUkUkTkVkWkXkUkUkTkTkYkZkZkZlalalalalalalalalblblblblblblcldldldlelflglhjfjfjgjfjfjfjfjfjfliljlkljllcraeaeaeaeaeahahahahaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaeaebFbFbFbFhSlmlnlolphSbFbFbFbFbFbFbFbFbFbFbFbFbFbFevfifjbFbFbFbFbFaeaeaeaeaeaeaeaebFbFgNgOgNgObFbFaeaeaeaeaeaeaebFbFbFbFbFbFbFevevbFgMdYbFbFbFbFbFbFaeaehvhvhKlqhKhvhvlrlslthvhvhKluhKhvhKbFbFbFaaaaaaaaakaaaaaaakaaaaaaaaaaakaajhjhlvlwlxlylzlAlBlClDlDlElFlGlGlGlGllbFaeaeaeaeaeahahahahaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababaeaebFbFbFhShShShShShSbFbFaeaeaeaeaeaeaeaeaebFbFbFfifjfigqgqgqfjbFbFbFbFbFbFbFbFbFbFbFevgNgObFbFaeaeabababababaebFbFbFbFbFbFbFevfigqgTgUgqgqgqgqfjbFbFaehvlHlIlJlKhvlLlMlNlOlPhvlQlRlSlTbFbFbFbFbFbFaaaaakaaaaaaakakakakakakakakakjflUlVlWjfjfjfjfjfjfjfjfjflXllllllllbFaeaeaeaeaeahahahahaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababaeaebFbFbFhShShShShShSbFbFaeaeaeaeaeaeaeaeaebFbFbFfifjfigqgqgqfjbFbFbFbFbFbFbFbFbFbFbFevgNgObFbFaeaeabababababaebFbFbFbFbFbFbFevfigqgTgUgqgqgqgqfjbFbFaehvlHlIlJlKhvlLlOlNnLlPhvlQlRlSlTbFbFbFbFbFbFaaaaakaaaaaaakakakakakakakakakjflUlVlWjfjfjfjfjfjfjfjfjflXllllllllbFaeaeaeaeaeahahahahaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababaebFbFbFbFbFbFbFbFbFbFbFaeabababababababaeaebFbFbFfigqgqgqfjfifjbFgMdYbFbFgNgqgqgqgqgOevbFbFaeaeababababababaeaebFbFbFbFbFbFfigqgqgTgUgqgqgqfjevbFbFbFhvlYlZmambhvmcmdmdmemfhvmgmhmihvbFbFbFbFbFbFakakakakakakakaaaaaaaaaaakaaakjfmjmkmlmmjfmnmompmqmAmrjfbFbFbFbFbFaeaeaeaeahahahahahahaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababaebFbFbFbFbFbFbFbFbFaeaeaeabababacacabababaeaeaebFbFbFbFbFfifjfigqgTgUgqgqgOgNgqgqgqgqgObFaeaeababababababababaeaeaebFbFbFbFbFbFbFdTdVbFbFbFevevbFbFbFlThvhvhvhvhvmsmtmumvmfhvhKmwhKhvbFbFbFbFbFbFaaaaakaaaaaaakaaaaaaaaaaakaajhjhlvmxmlmmjhmykbkcmznJmMjfbFbFbFbFbFaeaeaeaeahahahahahahaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababaeaeaeaebFbFbFbFaeaeaeababacacacacacacacabababaeaeaebFbFbFbFfigqgqgTgUgqgqgqgObFbFbFbFbFbFaeababababababacacabababaeaeaeaebFbFbFbFbFbFbFbFbFevfigqfjbFbFbFbFbFbFlThvhvhvhvhvlTmCmCiEmDbFbFbFbFbFaaaaaaakaaaaaaakaaaaaaaaaamEjhmFmGmHmxmlmIjfmJlvmKmLjfnKjfbFbFbFbFaeaeaeaeaeahahahahahahaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
diff --git a/_maps/map_files/MiniStation/MiniStation.dmm b/_maps/map_files/MiniStation/MiniStation.dmm
index 16070b251e1..181a961b31a 100644
--- a/_maps/map_files/MiniStation/MiniStation.dmm
+++ b/_maps/map_files/MiniStation/MiniStation.dmm
@@ -449,7 +449,7 @@
"iG" = (/obj/structure/closet/secure_closet/personal,/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/fancy/carpet{icon_state = "carpetnoconnect"},/area/hallway/primary/central)
"iH" = (/obj/machinery/vending/autodrobe{req_access_txt = ""},/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 9},/area/hallway/primary/central)
"iI" = (/obj/structure/closet/wardrobe/mixed,/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 1},/area/hallway/primary/central)
-"iJ" = (/obj/machinery/camera/autoname,/obj/structure/table/wood,/obj/item/weapon/storage/fancy/crayons,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/obj/item/toy/cards/deck,/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 1},/area/hallway/primary/central)
+"iJ" = (/obj/machinery/camera/autoname,/obj/structure/table/wood,/obj/item/weapon/storage/crayons,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/obj/item/toy/cards/deck,/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 1},/area/hallway/primary/central)
"iK" = (/obj/machinery/washing_machine,/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 1},/area/hallway/primary/central)
"iL" = (/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 5},/area/hallway/primary/central)
"iM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/plasteel,/area/hallway/primary/central)
@@ -820,7 +820,7 @@
"pN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/hallway/secondary/exit)
"pO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel,/area/hallway/secondary/exit)
"pP" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/hallway/secondary/exit)
-"pQ" = (/obj/structure/table/wood,/obj/item/weapon/storage/fancy/cigarettes{pixel_y = 2},/obj/item/weapon/lighter{pixel_x = 4; pixel_y = 2},/turf/simulated/floor/fancy/carpet,/area/hallway/secondary/exit)
+"pQ" = (/obj/structure/table/wood,/obj/item/weapon/storage/fancy/cigarettes{pixel_y = 2},/obj/item/weapon/lighter/greyscale{pixel_x = 4; pixel_y = 2},/turf/simulated/floor/fancy/carpet,/area/hallway/secondary/exit)
"pR" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/item/device/camera,/turf/simulated/floor/fancy/carpet,/area/hallway/secondary/exit)
"pS" = (/obj/structure/stool/bed/chair/comfy/beige{dir = 8},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/hallway/secondary/exit)
"pT" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/janitorialcart,/obj/item/weapon/mop,/turf/simulated/floor/plasteel{dir = 2; icon_state = "bot"},/area/janitor)
@@ -1034,7 +1034,7 @@
"tT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"tU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"tV" = (/obj/structure/stool,/turf/simulated/floor/fancy/carpet,/area/crew_quarters/bar)
-"tW" = (/obj/structure/table/reinforced,/obj/item/weapon/lighter/zippo,/obj/structure/sign/securearea{desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'"; icon_state = "monkey_painting"; name = "Mr. Deempisi portrait"; pixel_x = 4; pixel_y = 28},/turf/simulated/floor/fancy/carpet,/area/crew_quarters/bar)
+"tW" = (/obj/structure/table/reinforced,/obj/item/weapon/lighter,/obj/structure/sign/securearea{desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'"; icon_state = "monkey_painting"; name = "Mr. Deempisi portrait"; pixel_x = 4; pixel_y = 28},/turf/simulated/floor/fancy/carpet,/area/crew_quarters/bar)
"tX" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1},/obj/machinery/photocopier,/turf/simulated/floor/plasteel,/area/crew_quarters/heads{name = "\improper Job Assignment"})
"tY" = (/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; listening = 1; name = "Common Channel"; pixel_x = 25; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/crew_quarters/bar)
"tZ" = (/obj/machinery/requests_console{department = "Garden"; departmentType = 2; pixel_x = 30; pixel_y = 0},/turf/simulated/floor/plasteel,/area/hallway/primary/central)
diff --git a/_maps/map_files/MiniStation/z2.dmm b/_maps/map_files/MiniStation/z2.dmm
index 525985ae76b..2df3ed71f91 100644
--- a/_maps/map_files/MiniStation/z2.dmm
+++ b/_maps/map_files/MiniStation/z2.dmm
@@ -406,7 +406,7 @@
"hP" = (/obj/structure/stool/bed/chair/comfy/black{dir = 1; icon_state = "comfychair"; name = "pilot's chair"; tag = "icon-comfychair (NORTH)"},/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate)
"hQ" = (/turf/simulated/floor/plating/snow,/turf/simulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership)
"hR" = (/obj/machinery/washing_machine,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
-"hS" = (/obj/item/weapon/storage/fancy/crayons,/obj/structure/table,/obj/item/weapon/storage/fancy/crayons,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
+"hS" = (/obj/item/weapon/storage/crayons,/obj/structure/table,/obj/item/weapon/storage/crayons,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
"hT" = (/turf/simulated/floor/plasteel,/area/tdome/tdomeobserve)
"hU" = (/obj/structure/table,/turf/simulated/floor/plasteel,/area/tdome/tdomeobserve)
"hV" = (/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 8},/area/tdome/tdomeobserve)
@@ -433,7 +433,7 @@
"iq" = (/obj/machinery/vending/cola,/turf/simulated/floor/plasteel/bar,/area/syndicate_mothership)
"ir" = (/obj/machinery/vending/coffee,/turf/simulated/floor/plasteel/bar,/area/syndicate_mothership)
"is" = (/turf/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/syndicate_mothership)
-"it" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/random = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/simulated/floor/plasteel/bar,/area/syndicate_mothership)
+"it" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/greyscale = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/simulated/floor/plasteel/bar,/area/syndicate_mothership)
"iu" = (/obj/structure/stool/bed/chair/comfy/teal,/turf/simulated/floor/plasteel/grimy,/area/syndicate_mothership)
"iv" = (/obj/item/device/paicard,/turf/simulated/floor/plasteel/grimy,/area/syndicate_mothership)
"iw" = (/obj/structure/bookcase,/obj/item/weapon/book/manual/wiki/engineering_hacking,/obj/item/weapon/book/manual/robotics_cyborgs,/obj/item/weapon/book/manual/engineering_singularity_safety,/obj/item/weapon/book/manual/detective,/turf/simulated/floor/plasteel/grimy,/area/syndicate_mothership)
@@ -690,7 +690,7 @@
"no" = (/obj/item/device/camera,/turf/simulated/floor/plating/beach/sand,/area/centcom/holding)
"np" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
"nq" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/space,/area/wizard_station)
-"nr" = (/obj/structure/table,/obj/item/weapon/lighter/zippo,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
+"nr" = (/obj/structure/table,/obj/item/weapon/lighter,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
"ns" = (/obj/structure/table,/obj/item/weapon/dice/d20,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
"nt" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
"nu" = (/obj/structure/stool{pixel_y = 8},/obj/item/clothing/head/bandana{pixel_y = -10},/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor/plating/beach/sand,/area/centcom/holding)
@@ -700,7 +700,7 @@
"ny" = (/obj/machinery/flasher{id = "tdomeflash"; name = "Thunderdome Flash"},/turf/simulated/floor/bluegrid,/area/tdome/arena)
"nz" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/Dooruranium.dmi'; name = "Engine Room B"},/turf/space,/area/wizard_station)
"nA" = (/obj/item/toy/beach_ball,/turf/simulated/floor/plating/beach/sand,/area/centcom/holding)
-"nB" = (/obj/structure/rack,/obj/item/weapon/storage/fancy/crayons,/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/centcom/holding)
+"nB" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/centcom/holding)
"nC" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/centcom/holding)
"nD" = (/obj/machinery/camera{pixel_x = 10; network = list("thunder"); c_tag = "Arena"},/turf/simulated/floor/bluegrid,/area/tdome/arena)
"nE" = (/turf/simulated/floor/plating/beach/coastline,/area/centcom/holding)
diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm
index 1900ac33c2f..95d017a4a21 100644
--- a/_maps/map_files/TgStation/tgstation.2.1.3.dmm
+++ b/_maps/map_files/TgStation/tgstation.2.1.3.dmm
@@ -1694,7 +1694,7 @@
"aGD" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/toilet)
"aGE" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/toilet)
"aGF" = (/obj/machinery/door/airlock{name = "Unit B"},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/toilet)
-"aGG" = (/obj/structure/table/wood,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/item/weapon/storage/fancy/crayons,/turf/simulated/floor/plasteel{tag = "icon-redbluefull"; icon_state = "redbluefull"},/area/crew_quarters/theatre)
+"aGG" = (/obj/structure/table/wood,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/item/weapon/storage/crayons,/turf/simulated/floor/plasteel{tag = "icon-redbluefull"; icon_state = "redbluefull"},/area/crew_quarters/theatre)
"aGH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{tag = "icon-redbluefull"; icon_state = "redbluefull"},/area/crew_quarters/theatre)
"aGI" = (/obj/machinery/power/apc{dir = 8; name = "Theatre APC"; pixel_x = -25},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor/plating,/area/crew_quarters/theatre)
"aGJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint2)
@@ -1722,7 +1722,7 @@
"aHf" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/office)
"aHg" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office)
"aHh" = (/obj/effect/landmark/start{name = "Chaplain"},/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office)
-"aHi" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/storage/fancy/crayons,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office)
+"aHi" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/storage/crayons,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office)
"aHj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office)
"aHk" = (/obj/structure/closet/coffin,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
"aHl" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "chapel"},/area/chapel/main)
@@ -2009,7 +2009,7 @@
"aMG" = (/obj/machinery/light{dir = 1},/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/hallway/secondary/exit)
"aMH" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/secondary/exit)
"aMI" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/hallway/secondary/exit)
-"aMJ" = (/obj/structure/table/wood,/obj/item/weapon/storage/fancy/cigarettes{pixel_y = 2},/obj/item/weapon/lighter{pixel_x = 4; pixel_y = 2},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/hallway/secondary/entry)
+"aMJ" = (/obj/structure/table/wood,/obj/item/weapon/storage/fancy/cigarettes{pixel_y = 2},/obj/item/weapon/lighter/greyscale{pixel_x = 4; pixel_y = 2},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/hallway/secondary/entry)
"aMK" = (/obj/structure/table/wood,/turf/simulated/floor/fancy/carpet,/area/hallway/secondary/entry)
"aML" = (/obj/machinery/vending/cola,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/hallway/secondary/entry)
"aMM" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/hallway/primary/port)
@@ -2292,7 +2292,7 @@
"aSd" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/crew_quarters/locker)
"aSe" = (/obj/structure/closet/secure_closet/personal,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/camera{c_tag = "Locker Room East"; dir = 8; network = list("SS13")},/obj/machinery/light{dir = 4},/turf/simulated/floor/plasteel,/area/crew_quarters/locker)
"aSf" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/turf/simulated/floor/plasteel,/area/storage/art)
-"aSg" = (/obj/structure/table,/obj/item/weapon/storage/fancy/crayons,/obj/item/weapon/storage/fancy/crayons,/turf/simulated/floor/plasteel,/area/storage/art)
+"aSg" = (/obj/structure/table,/obj/item/weapon/storage/crayons,/obj/item/weapon/storage/crayons,/turf/simulated/floor/plasteel,/area/storage/art)
"aSh" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/table,/obj/item/device/camera_film,/obj/item/device/camera,/turf/simulated/floor/plasteel,/area/storage/art)
"aSi" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/storage/emergency2)
"aSj" = (/obj/machinery/light/small,/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/storage/emergency2)
@@ -2481,7 +2481,7 @@
"aVK" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel,/area/hallway/primary/central)
"aVL" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel,/area/hallway/primary/central)
"aVM" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plasteel,/area/hallway/primary/central)
-"aVN" = (/obj/structure/table/reinforced,/obj/item/weapon/lighter/zippo,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
+"aVN" = (/obj/structure/table/reinforced,/obj/item/weapon/lighter,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aVO" = (/obj/structure/stool,/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aVP" = (/obj/structure/table,/obj/item/weapon/kitchen/fork,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aVQ" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/simulated/wall/r_wall,/area/atmos)
@@ -5653,7 +5653,7 @@
"ceK" = (/turf/simulated/wall/r_wall,/area/engine/engineering)
"ceL" = (/obj/machinery/computer/atmos_alert,/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Engineer's Desk"; departmentType = 3; name = "Chief Engineer RC"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office)
"ceM" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office)
-"ceN" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/lighter/zippo,/obj/item/clothing/glasses/meson{pixel_y = 4},/obj/item/weapon/stamp/ce,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office)
+"ceN" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/lighter,/obj/item/clothing/glasses/meson{pixel_y = 4},/obj/item/weapon/stamp/ce,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office)
"ceO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office)
"ceP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office)
"ceQ" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/engine/chiefs_office)
diff --git a/_maps/map_files/generic/z2.dmm b/_maps/map_files/generic/z2.dmm
index 8ad1bf4fff5..9dc7e9110c2 100644
--- a/_maps/map_files/generic/z2.dmm
+++ b/_maps/map_files/generic/z2.dmm
@@ -223,7 +223,7 @@
"eo" = (/obj/structure/flora/kirbyplants,/turf/simulated/floor/plasteel/red/side{dir = 9},/area/centcom/evac)
"ep" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/shotgun/toy/crossbow,/obj/item/toy/foamblade,/turf/simulated/floor/plasteel/red/side{dir = 1},/area/centcom/evac)
"eq" = (/turf/simulated/floor/plasteel/red/side{dir = 1},/area/centcom/evac)
-"er" = (/obj/structure/rack,/obj/item/weapon/storage/fancy/crayons,/obj/item/toy/sword,/turf/simulated/floor/plasteel/red/side{dir = 1},/area/centcom/evac)
+"er" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/toy/sword,/turf/simulated/floor/plasteel/red/side{dir = 1},/area/centcom/evac)
"es" = (/turf/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/evac)
"et" = (/turf/simulated/floor/plasteel/black,/area/centcom/evac)
"eu" = (/turf/simulated/floor/plasteel/darkwarning{dir = 4},/area/centcom/evac)
@@ -414,7 +414,7 @@
"hX" = (/obj/structure/filingcabinet,/turf/simulated/floor/plasteel/shuttle,/area/centcom/evac)
"hY" = (/obj/structure/stool/bed/chair{dir = 4; name = "Prosecution"},/turf/simulated/floor/plasteel/shuttle,/area/centcom/evac)
"hZ" = (/obj/structure/stool/bed/chair/office/dark,/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/simulated/floor/plasteel/black,/area/centcom/ferry)
-"ia" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/random = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/simulated/floor/plasteel/black,/area/centcom/ferry)
+"ia" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/greyscale = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/simulated/floor/plasteel/black,/area/centcom/ferry)
"ib" = (/obj/structure/reagent_dispensers/water_cooler,/turf/simulated/floor/plasteel/black,/area/centcom/ferry)
"ic" = (/obj/machinery/vending/coffee,/turf/simulated/floor/plasteel/black,/area/centcom/ferry)
"id" = (/obj/structure/flora/kirbyplants,/turf/simulated/floor/plasteel/black,/area/centcom/ferry)
@@ -736,7 +736,7 @@
"oh" = (/obj/structure/stool/bed/chair/comfy/black{dir = 1; icon_state = "comfychair"; name = "pilot's chair"; tag = "icon-comfychair (NORTH)"},/turf/simulated/floor/plasteel/shuttle{icon_state = "floor4"},/area/shuttle/syndicate)
"oi" = (/turf/simulated/floor/plating/snow,/turf/simulated/floor/plating/snow/gravsnow/corner{dir = 8},/area/syndicate_mothership)
"oj" = (/obj/machinery/washing_machine,/turf/simulated/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership)
-"ok" = (/obj/item/weapon/storage/fancy/crayons,/obj/structure/table,/obj/item/weapon/storage/fancy/crayons,/turf/simulated/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership)
+"ok" = (/obj/item/weapon/storage/crayons,/obj/structure/table,/obj/item/weapon/storage/crayons,/turf/simulated/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership)
"ol" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"},/turf/simulated/floor/plating,/area/shuttle/supply)
"om" = (/obj/structure/shuttle/engine/propulsion,/turf/simulated/floor/plating,/area/shuttle/supply)
"on" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"},/turf/simulated/floor/plating,/area/shuttle/supply)
@@ -772,7 +772,7 @@
"oR" = (/turf/simulated/floor/plating,/area/centcom/supply)
"oS" = (/turf/simulated/wall/shuttle{icon_state = "swall_s5"; dir = 2},/area/shuttle/supply)
"oT" = (/turf/indestructible/fakeglass{icon_state = "fakewindows"; dir = 9},/area/centcom/evac)
-"oU" = (/obj/structure/rack,/obj/item/weapon/storage/fancy/crayons,/obj/item/toy/sword,/turf/simulated/floor/plasteel/green/side,/area/centcom/evac)
+"oU" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/toy/sword,/turf/simulated/floor/plasteel/green/side,/area/centcom/evac)
"oV" = (/obj/structure/flora/kirbyplants,/turf/simulated/floor/plasteel/green/side{dir = 10},/area/centcom/evac)
"oW" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel/green/side,/area/centcom/evac)
"oX" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/shotgun/toy/crossbow,/obj/item/toy/katana,/turf/simulated/floor/plasteel/green/side,/area/centcom/evac)
@@ -803,7 +803,7 @@
"pw" = (/obj/machinery/computer/shuttle/syndicate/recall,/turf/simulated/floor/plasteel/bar{dir = 2},/area/syndicate_mothership)
"px" = (/obj/machinery/vending/coffee,/turf/simulated/floor/plasteel/bar{dir = 2},/area/syndicate_mothership)
"py" = (/obj/item/device/paicard,/turf/simulated/floor/plasteel/grimy,/area/syndicate_mothership)
-"pz" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/random = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/simulated/floor/plasteel/bar{dir = 2},/area/syndicate_mothership)
+"pz" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/greyscale = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/simulated/floor/plasteel/bar{dir = 2},/area/syndicate_mothership)
"pA" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/Dooruranium.dmi'; name = "Engine Room B"},/turf/space,/area/wizard_station)
"pB" = (/obj/machinery/vending/cola,/turf/simulated/floor/plasteel/bar{dir = 2},/area/syndicate_mothership)
"pC" = (/obj/structure/bookcase,/obj/item/weapon/book/manual/wiki/engineering_hacking,/obj/item/weapon/book/manual/robotics_cyborgs,/obj/item/weapon/book/manual/engineering_singularity_safety,/obj/item/weapon/book/manual/detective,/turf/simulated/floor/plasteel/grimy,/area/syndicate_mothership)
@@ -829,15 +829,15 @@
"pW" = (/turf/simulated/floor/plating/beach/water,/area/centcom/holding)
"pX" = (/turf/simulated/floor/plating/beach/coastline,/area/centcom/holding)
"pY" = (/obj/item/clothing/head/collectable/paper,/turf/simulated/floor/plating/beach/coastline,/area/centcom/holding)
-"pZ" = (/obj/structure/rack,/obj/item/weapon/storage/fancy/crayons,/obj/item/weapon/gun/projectile/shotgun/toy/crossbow,/turf/simulated/floor/plasteel/cafeteria,/area/centcom/holding)
+"pZ" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/weapon/gun/projectile/shotgun/toy/crossbow,/turf/simulated/floor/plasteel/cafeteria,/area/centcom/holding)
"qa" = (/obj/structure/shuttle/engine/heater,/turf/simulated/floor/plating/lava,/area/wizard_station)
-"qb" = (/obj/structure/rack,/obj/item/weapon/storage/fancy/crayons,/obj/item/weapon/gun/projectile/automatic/toy/pistol,/turf/simulated/floor/plasteel/cafeteria,/area/centcom/holding)
+"qb" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/weapon/gun/projectile/automatic/toy/pistol,/turf/simulated/floor/plasteel/cafeteria,/area/centcom/holding)
"qc" = (/obj/structure/window/reinforced{color = "#008000"; dir = 1},/turf/simulated/floor/plating/lava,/area/wizard_station)
"qd" = (/obj/docking_port/stationary/transit{dheight = 0; dir = 2; dwidth = 11; height = 22; id = "whiteship_transit"; width = 35},/turf/space/transit/horizontal,/area/space)
"qe" = (/obj/item/toy/beach_ball,/turf/simulated/floor/plating/beach/sand,/area/centcom/holding)
"qf" = (/obj/structure/rack,/obj/item/clothing/head/that,/obj/item/clothing/under/suit_jacket,/obj/item/clothing/tie/waistcoat,/turf/simulated/floor/plasteel/cafeteria,/area/centcom/holding)
"qg" = (/obj/structure/cult/forge{desc = "A engine used in powering the wizards ship"; name = "magma engine"},/turf/simulated/floor/plasteel/cult,/area/wizard_station)
-"qh" = (/obj/structure/table,/obj/item/weapon/lighter/zippo,/turf/simulated/floor/plasteel/freezer{dir = 2},/area/centcom/holding)
+"qh" = (/obj/structure/table,/obj/item/weapon/lighter,/turf/simulated/floor/plasteel/freezer{dir = 2},/area/centcom/holding)
"qi" = (/obj/structure/table,/obj/item/weapon/dice/d20,/turf/simulated/floor/plasteel/freezer{dir = 2},/area/centcom/holding)
"qj" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/turf/simulated/floor/plasteel/freezer{dir = 2},/area/centcom/holding)
"qk" = (/obj/structure/table,/obj/item/ammo_box/foambox,/turf/simulated/floor/plasteel/freezer{dir = 2},/area/centcom/holding)
diff --git a/_maps/map_files/generic/z3.dmm b/_maps/map_files/generic/z3.dmm
index 8a624a86329..3f3cbdcd4f7 100644
--- a/_maps/map_files/generic/z3.dmm
+++ b/_maps/map_files/generic/z3.dmm
@@ -59,6 +59,8 @@
"bg" = (/turf/simulated/wall/shuttle{tag = "icon-swall_f16"; icon_state = "swall_f16"},/area/shuttle/abandoned)
"bh" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 6; pixel_y = -5},/turf/simulated/floor/plasteel/shuttle{icon_state = "floor3"},/area/shuttle/abandoned)
"bi" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/obj/effect/decal/remains/human,/turf/simulated/floor/plasteel/shuttle{icon_state = "floor3"},/area/shuttle/abandoned)
+"bj" = (/obj/effect/spawner/lootdrop/crate_spawner,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"bk" = (/obj/effect/spawner/lootdrop/crate_spawner,/turf/simulated/floor/plating/airless,/area/AIsattele)
"bB" = (/obj/item/trash/cheesie,/turf/space,/area/space)
"bK" = (/turf/simulated/floor/plating/airless,/area/space)
"bL" = (/obj/structure/lattice,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/space,/area/space)
@@ -362,7 +364,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabMbMbObPbPbKbPbObObObObObObObObObObObObObObObObObObPbKaNaNaaaNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLbMbObObObObObQbQbQbQbQbObObObObObObObObObQbQbQbQbRbSaNaNaNaNaNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabMbObObOaNaabTbUbVbWbXbYbQbQbQbQbQbQbQbQbQbZbQcacbcccdbSbSaNbKbPbLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabMbObOaNaNaNcebUbScfcgchcibQcjcjckclcmcnbQcobQcpcqcjcccdcdbSbPbObMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabMbObOaNaNaNcebUbScfcgchcibQbjcjckclcmcnbQcobQcpcqcjcccdcdbSbPbObMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabMbObOaaaNaabTcrcsctcscucvbQcjcwcjcjcjcmbQcobQcxcpcjcjccccbQbObObMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLbObOaaaNaaaacyczcAcBcCcDcEcFcjcGcjcjcmbQcHbQcpcpcjcIcJcKbQbObObMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabMbObOaaaNaabTcLcMcNcMcNcOcPcjcjcQcjcjbQbQbQbQcRcScjcQcTcUcVcWcWcXcYcZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -435,7 +437,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeOeOeOeOeOaNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNaNeOeOePeQeReOeOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNaNaNeOeOeSeTeTeTeUeOeOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeVeWeOeTeXeYeTeZeYeTeOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeVeWeOeTeXeYeTeZeYbkeOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNaNfaeTfaeTfbeZfceTeTfdeOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeVfeeOfdffeTfgeTfhfieOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNaNaNeOeOeTeTeYeTfjeOeOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
diff --git a/_maps/map_files/generic/z4.dmm b/_maps/map_files/generic/z4.dmm
index ec1e0f796df..35a66cc4ebf 100644
--- a/_maps/map_files/generic/z4.dmm
+++ b/_maps/map_files/generic/z4.dmm
@@ -540,6 +540,7 @@
"kt" = (/obj/item/weapon/wirecutters,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary)
"ku" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plasteel/airless,/area/derelict/se_solar)
"kv" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/item/drone_shell,/turf/simulated/floor/plasteel/airless,/area/derelict/se_solar)
+"kw" = (/obj/effect/spawner/lootdrop/crate_spawner,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/djstation)
"kx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary)
"ky" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary)
"kz" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict1"},/area/derelict/hallway/secondary)
@@ -555,6 +556,7 @@
"kJ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
"kK" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
"kL" = (/turf/simulated/wall/r_wall,/area/derelict/bridge/ai_upload)
+"kM" = (/obj/effect/spawner/lootdrop/crate_spawner,/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access)
"kN" = (/obj/machinery/door/airlock/external{name = "Escape Airlock"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
"kO" = (/obj/machinery/door/firedoor,/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
"kP" = (/obj/structure/window/fulltile{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
@@ -857,7 +859,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacagahahaoahahagacacacac
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababafapaqarahasafabababababaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafatafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafauavawaxayafafafafafafaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagazaAaAaAagawawawawawagaBaCaDaEagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagazaAaAaAagawawawawawagkwaCaDaEagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaFaAaAaAaGawaHaIaHawaJaBaBaBaKagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaLaMaNaAagawaOaPaQawagaRaSaTaUagaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaVafafaWafawawawawaXafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -906,7 +908,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaecIcIdBdcdddbdQdbdddbdfdfdBdbdbdbdbdddbcIblaaaaaaaaaaaaaaaaaaaaaeaecechchdCchchdRcVcVdidSdTdidTdUdVbjdWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaecIcIdbdddbdXdYdZeadfebdfdfecedeedBdcddcIblaeaaaaaaaaaacDaaaaaeaeaececececmcechcSefcVeheiejcTcTcVdldwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaecIcIdBdbdXekelemdfdfdfdfdfeneneoeedbdccIblaeaeaablcecececececececececechcmcececeeqeqereqeqeqcMcMcMabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaecIcIcIdBdBesetdcdfdfdfdfdfdfdfdfeuevdBewcIblblaeaeblceexgRexqAgWeAeBcecechcmcenWnWblaebjbjaableDbjbwabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaecIcIcIdBdBesetdcdfdfdfdfdfdfdfdfeuevdBewcIblblaeaeblcekMgRexqAgWeAeBcecechcmcenWnWblaebjbjaableDbjbwabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIcIcIcIcIdBdBesekdcdfdfdfdfdfdfdfdfeEevdfdBcIcIcIcIcIaacenXexexexexexexcecechcmcenWnWaeaaaaaaaaaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaecIcIdBeKeLdBdBeMeNdfeaaaaaaaaaaadfdfeEdydfdBdbdBdfcIcIaeceexexexexexexexcececeepcececeaeaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIcIeQdbeEeedBdcdBnYdfdfaaaaaaaaaadfdfeRnYdBeSeTeUdbdBcIcIceceeVceeWeWeWeWceexexeCexexcecDaaaaaaaaaaaaaaaabjbjblbwbjbwbjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
diff --git a/_maps/map_files/generic/z5.dmm b/_maps/map_files/generic/z5.dmm
index 47ef322fc1c..0a5516d7c8c 100644
--- a/_maps/map_files/generic/z5.dmm
+++ b/_maps/map_files/generic/z5.dmm
@@ -10,7 +10,7 @@
"aj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"ak" = (/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
"al" = (/obj/structure/lattice,/turf/space,/area/space)
-"am" = (/turf/simulated/floor/plating/asteroid/airless/cave,/area/mine/unexplored)
+"am" = (/obj/effect/spawner/lootdrop/crate_spawner,/turf/simulated/floor/plating/asteroid/airless/cave,/area/mine/unexplored)
"an" = (/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"ao" = (/obj/item/stack/rods,/obj/structure/door_assembly/door_assembly_ext{name = "Broken External Airlock"},/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
"ap" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
@@ -609,9 +609,9 @@
"lK" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/mine/living_quarters)
"lL" = (/turf/simulated/floor/plasteel{dir = 5; icon_state = "whiteblue"},/area/mine/living_quarters)
"lM" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/mine/living_quarters)
-"lN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/light/small{dir = 1},/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/mine/living_quarters)
+"lN" = (/obj/effect/spawner/lootdrop/crate_spawner,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/abandoned)
"lO" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/mine/living_quarters)
-"lP" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plating,/area/mine/living_quarters)
+"lP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/light/small{dir = 1},/obj/structure/closet/crate/secure/loot,/turf/simulated/floor/plating,/area/mine/living_quarters)
"lQ" = (/turf/simulated/floor/plating,/area/mine/living_quarters)
"lR" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/living_quarters)
"lS" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/living_quarters)
@@ -710,6 +710,7 @@
"nH" = (/obj/structure/disposaloutlet{dir = 1; eject_range = 1},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/mine/production)
"nI" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_z5"; name = "south of asteroid"; turf_type = /turf/space; width = 18},/turf/space,/area/space)
"nJ" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/brute{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/regular,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteblue"},/area/mine/living_quarters)
+"nK" = (/obj/machinery/atmospherics/pipe/simple,/obj/item/weapon/storage/box/lights,/turf/simulated/floor/plating,/area/mine/living_quarters)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -786,7 +787,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadedeaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqdqdqdqdqdqdedededededeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacacaxdrcIcIcIcIcIcIcIcIcIcHaxbqakdsakdbdtdcdcacacacacacacacacacacacacacacacacacacacacacacacacacacabababafbGbGbGbGbGbGbGbGbGbGbGbGbGbGdudvdvdvdvdvdvdvdvdubGbGbGdwdwdwbidxdydzcOcBbGbGbGbGbGbGbGafafafafaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqdqdqdqdqdqdAdAdAdBdqdedededCdCdedededeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacacacaxdrcHcHcHdDdEcHcHcHdrdraxbqdsdsdsbraxdcdcdcacacacacacacacacacacacacacacacacacacacacacacacacacabababafbGbGbGbGbGbGbGbGbGbGbGbGbGdhdhdFdGdGdGdGdGdGdGdhdhbGbGbGbGbGbibTdHbTcOdIbGbGbGbGbGbGbGafafafafaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqdJdKdLdMdNdOdPdPdPdqdQdQdQdQdRdCdededededeaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababacacacacacacacacacaxaxaxaxaxaxaxaxaxaxaxaxaxaxcUdSdTaxaxdcdcdcdcacacacacacacacacacacacacacacacacacacacacacacacacabababafbGbGbGbGbGbGbGbGbGbGbGbGbGafaaaaaaaaaaaaaaaaafafafbGbGbGbGbGbGdUdVdWdXdYdZbGbGbGbGafafafafafaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqeaebeceddNaddPefegeheiejejdQdRekdCdedededededeaaaaaaaaaaaaaaaaaaaaaaababababababacacacacacacacacacacacacacacacacacacacacacdcdcdcaxdadadsaxdcdcdcdcdcacacacacacacacacacacacacacacacacacacacacacacacacabababafbGbGbGbGbGbGbGbGbGbGbGbGafaaaaaaaaaaaaaaafafafafafafafafbGbGbGbGbGdUeleldWbGbGbGafafafafafaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqeaebeceddNaddPefegeheiejejdQdRekdCdedededededeaaaaaaaaaaaaaaaaaaaaaaababababababacacacacacacacacacacacacacacacacacacacacacdcdcdcaxlNdadsaxdcdcdcdcdcacacacacacacacacacacacacacacacacacacacacacacacacabababafbGbGbGbGbGbGbGbGbGbGbGbGafaaaaaaaaaaaaaaafafafafafafafafbGbGbGbGbGdUeleldWbGbGbGafafafafafaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqdqdqdNemeneodNepeqdNdNdqdqdqeresetdCdCdededededededeaaaaaaaaaaaaaaaaaaaaababababacacacacacacacacacacacacacacacacacacacacacacacdcdcdcaxeueveuaxdcdcdcdcdcacacacacacacacacacacacacacacacacacacacacacacacacacababafbGbGbGbGbGbGbGbGbGbGbGbGafaaaaaaaaaaaaaaafafafafafafafafafafbGbGbGbGewewbGbGbGbGafafafafafaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqexeydNezdPdOeAeBdPeCdNeDeDeDdRejejdCdCdededededededeaaaaaaaaaaaaaaaaaaababababacacacacacacacacacacacacacacacacacacacacacacacacacdcdcaxeFdSeGaxdcdcdcdcacacacacacacacacacacacacacacacacacacacacacacacacacacababafafbGbGbGbGbGbGbGbGafafafafaaaaaaaaaaaaaaaaafafafafafafafafafafafbGbGewewbGbGafafafafafafaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaldqeHeIeJeKeLeMdPezdPdPeNeDeDejejejejeOdCdedededededededeaaaaaaaaaaaaaaabababababacacacacacacacaeacacacacacacacacacacacacacacacacacdcdcdcePeQeRdcdcdcdcacacacacacacacacacacacacacacacacacacacacacaeacacacacacabababafafafafafbGbGcscsafababaaaaaaaaaaaaaaaaaaafafafafafafafafafafafafbGewewbGbGafafafafafafaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -895,7 +896,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababafbGbGhThThThThTkmknkohThTkpkqkqkqkqgUgVgsgsgsgsflfkgsgsflbGbGbGafafabababacacababababafafbGbGgPgQgPgQbGbGbGbGbGbGbGdUdWbGbGbGfkgsflewbGbGbGbGafafafafabhwhwhwhwkrjfksktkujbkvkwkwkxkxkwkwkykzkykzkAkAkAkAkAkAkAkAkBkBkBkBkBkBkBkCkDkCkDkEkFkGixkHkIkJkKixkLkMixdWbGbGbGbGafafafafafaiaiaiaiaiafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababafafbGbGbGbGbGhTkNkOkPkQhTkRkShMbGbGdUdWbGbGbGbGfkgsgsflewbGbGbGbGafafafababababababafafbGbGgPgQgPgQbGbGbGbGafbGbGbGbGbGbGbGbGbGbGewewbGbGbGbGbGbGbGafafafafafhwiLkTkUkVkVkUkWkXkYkVkVkUkUkZlalalalblblblblblblblblclclclclclcldlelelelflglhlijgjgjhjgjgjgjgjgjgljlklllklmcsafafafafafaiaiaiaiafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababafafbGbGbGbGhTlnlolplqhTbGbGbGbGbGbGbGbGbGbGbGbGbGbGewfkflbGbGbGbGbGafafafafafafafafbGbGgPgQgPgQbGbGafafafafafafafbGbGbGbGbGbGbGewewbGgOdZbGbGbGbGbGbGafafhwhwhLlrhLhwhwlsltluhwhwhLlvhLhwhLbGbGbGaaaaaaaaalaaaaaaalaaaaaaaaaaalaajijilwlxlylzlAlBlClDlElElFlGlHlHlHlHlmbGafafafafafaiaiaiaiafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababafafbGbGbGhThThThThThTbGbGafafafafafafafafafbGbGbGfkflfkgsgsgsflbGbGbGbGbGbGbGbGbGbGbGewgPgQbGbGafafabababababafbGbGbGbGbGbGbGewfkgsgUgVgsgsgsgsflbGbGafhwlIlJlKlLhwlMlNlOlPlZhwlRlSlTlUbGbGbGbGbGbGaaaaalaaaaaaalalalalalalalalaljglVlWlXjgjgjgjgjgjgjgjgjglYlmlmlmlmbGafafafafafaiaiaiaiafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababafafbGbGbGhThThThThThTbGbGafafafafafafafafafbGbGbGfkflfkgsgsgsflbGbGbGbGbGbGbGbGbGbGbGewgPgQbGbGafafabababababafbGbGbGbGbGbGbGewfkgsgUgVgsgsgsgsflbGbGafhwlIlJlKlLhwlMlPlOnKlZhwlRlSlTlUbGbGbGbGbGbGaaaaalaaaaaaalalalalalalalalaljglVlWlXjgjgjgjgjgjgjgjgjglYlmlmlmlmbGafafafafafaiaiaiaiafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababafbGbGbGbGbGbGbGbGbGbGbGafabababababababafafbGbGbGfkgsgsgsflfkflbGgOdZbGbGgPgsgsgsgsgQewbGbGafafababababababafafbGbGbGbGbGbGfkgsgsgUgVgsgsgsflewbGbGbGhwmcmambnJhwmdlQlQmemfhwmgmhmihwbGbGbGbGbGbGalalalalalalalaaaaaaaaaaalaaaljgmjmkmlmmjgmnmoeemqmpeEjgbGbGbGbGbGafafafafaiaiaiaiaiaiafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababafbGbGbGbGbGbGbGbGbGafafafabababacacabababafafafbGbGbGbGbGfkflfkgsgUgVgsgsgQgPgsgsgsgsgQbGafafababababababababafafafbGbGbGbGbGbGbGdUdWbGbGbGewewbGbGbGlUhwhwhwhwhwmsmtmumvmfhwhLmwhLhwbGbGbGbGbGbGaaaaalaaaaaaalaaaaaaaaaaalaajijilwmxmlmmlemykckdmzmAmrjgbGbGbGbGbGafafafafaiaiaiaiaiaiafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababafafafafbGbGbGbGafafafababacacacacacacacabababafafafbGbGbGbGfkgsgsgUgVgsgsgsgQbGbGbGbGbGbGafababababababacacabababafafafafbGbGbGbGbGbGbGbGbGewfkgsflbGbGbGbGbGbGlUhwhwhwhwhwlUmCmCiFmDbGbGbGbGbGaaaaaaalaaaaaaalaaaaaaaaaamEjimFmGmHmxmlmIjgmJlwmKmLjgmMjgbGbGbGbGafafafafafaiaiaiaiaiaiafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
diff --git a/code/__DEFINES/clothing.dm b/code/__DEFINES/clothing.dm
index 6e9734c1fa5..672a58facdd 100644
--- a/code/__DEFINES/clothing.dm
+++ b/code/__DEFINES/clothing.dm
@@ -85,4 +85,12 @@
#define NO_FEMALE_UNIFORM 0
#define FEMALE_UNIFORM_FULL 1
-#define FEMALE_UNIFORM_TOP 2
\ No newline at end of file
+#define FEMALE_UNIFORM_TOP 2
+
+
+//flags for covering body parts
+#define GLASSESCOVERSEYES 1
+#define MASKCOVERSEYES 2 // get rid of some of the other retardation in these flags
+#define HEADCOVERSEYES 4 // feel free to realloc these numbers for other purposes
+#define MASKCOVERSMOUTH 8 // on other items, these are just for mask/head
+#define HEADCOVERSMOUTH 16
\ No newline at end of file
diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm
index 3d704c12cf0..2996b1af708 100644
--- a/code/__DEFINES/flags.dm
+++ b/code/__DEFINES/flags.dm
@@ -19,12 +19,6 @@
#define ON_BORDER 512 // item has priority to check when entering or leaving
-#define GLASSESCOVERSEYES 1024
-#define MASKCOVERSEYES 1024 // get rid of some of the other retardation in these flags
-#define HEADCOVERSEYES 1024 // feel free to realloc these numbers for other purposes
-#define MASKCOVERSMOUTH 2048 // on other items, these are just for mask/head
-#define HEADCOVERSMOUTH 2048
-
#define HEADBANGPROTECT 4096
#define EARBANGPROTECT 1024
diff --git a/code/__HELPERS/names.dm b/code/__HELPERS/names.dm
index 7c1746cc4ed..85eb94093cd 100644
--- a/code/__HELPERS/names.dm
+++ b/code/__HELPERS/names.dm
@@ -131,7 +131,7 @@ var/syndicate_name = null
syndicate_name = name
return name
-var/gang_name_pool = list("Clandestine", "Prima", "Blue", "Zero-G", "Max", "Blasto", "Waffle", "North", "Omni", "Newton", "Cyber", "Donk", "Gene", "Gib", "Tunnel", "Diablo", "Psyke", "Osiron")
+var/gang_name_pool = list("Clandestine", "Prima", "Zero-G", "Max", "Blasto", "Waffle", "North", "Omni", "Newton", "Cyber", "Donk", "Gene", "Gib", "Tunnel", "Diablo", "Psyke", "Osiron")
var/gang_A_name = null
var/gang_B_name = null
/proc/gang_name(var/gang)
diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm
index 3db6ac72db9..c4cee037c58 100644
--- a/code/__HELPERS/unsorted.dm
+++ b/code/__HELPERS/unsorted.dm
@@ -732,15 +732,16 @@ Turf and target are seperate in case you want to teleport some distance from a t
for (var/i = 1 to numticks)
if(user.client)
progbar = make_progress_bar(i, numticks, target)
- user.client.images |= progbar
+ if(progbar)
+ user.client.images |= progbar
sleep(delayfraction)
if(!user || user.stat || user.weakened || user.stunned || !(user.loc == Uloc))
- if(user && user.client)
+ if(user && user.client && progbar)
user.client.images -= progbar
return 0
if(Tloc && (!target || Tloc != target.loc)) //Tloc not set when we don't want to track target
- if(user && user.client)
+ if(user && user.client && progbar)
user.client.images -= progbar
return 0 // Target no longer exists or has moved
@@ -749,18 +750,18 @@ Turf and target are seperate in case you want to teleport some distance from a t
//i.e the hand is used to insert some item/tool into the construction
if(!holdingnull)
if(!holding)
- if(user && user.client)
+ if(user && user.client && progbar)
user.client.images -= progbar
return 0
if(user.get_active_hand() != holding)
- if(user && user.client)
+ if(user && user.client && progbar)
user.client.images -= progbar
return 0
- if(user && user.client)
+ if(user && user.client && progbar)
user.client.images -= progbar
- if(user && user.client)
+ if(user && user.client && progbar)
user.client.images -= progbar
- if(user && user.client)
+ if(user && user.client && progbar)
user.client.images -= progbar
return 1
@@ -1321,4 +1322,4 @@ var/list/WALLITEMS = list(
return pick("red","green","blue","brown","yellow","orange","darkred","crimson",
"lime","darkgreen","cyan","navy","teal","purple","indigo")
else
- return "white"
+ return "white"
diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm
index 87a9734db17..2275c00a0e3 100644
--- a/code/datums/uplink_item.dm
+++ b/code/datums/uplink_item.dm
@@ -478,7 +478,7 @@ var/list/uplink_items = list()
/datum/uplink_item/stealthy_tools/stimpack
name = "Stimpack"
- desc = "Stimpacks, a tool of many great heroes, make you immune to stuns and knockdowns for about 5 minutes after injection."
+ desc = "Stimpacks, a tool of many great heroes, make you nearly immune to stuns and knockdowns for about 5 minutes after injection."
item = /obj/item/weapon/reagent_containers/syringe/stimulants
cost = 8
surplus = 90
diff --git a/code/game/gamemodes/changeling/powers/mutations.dm b/code/game/gamemodes/changeling/powers/mutations.dm
index 40884bda963..1ff47bb9dda 100644
--- a/code/game/gamemodes/changeling/powers/mutations.dm
+++ b/code/game/gamemodes/changeling/powers/mutations.dm
@@ -271,8 +271,9 @@
name = "flesh mass"
icon_state = "lingspacehelmet"
desc = "A covering of pressure and temperature-resistant organic tissue with a glass-like chitin front."
- flags = HEADCOVERSEYES | BLOCKHAIR | HEADCOVERSMOUTH | STOPSPRESSUREDMAGE | NODROP //Again, no THICKMATERIAL.
+ flags = BLOCKHAIR | STOPSPRESSUREDMAGE | NODROP //Again, no THICKMATERIAL.
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
+ flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
/obj/item/clothing/head/helmet/space/changeling/dropped()
qdel(src)
@@ -320,9 +321,10 @@
name = "chitinous mass"
desc = "A tough, hard covering of black chitin with transparent chitin in front."
icon_state = "lingarmorhelmet"
- flags = HEADCOVERSEYES | BLOCKHAIR | NODROP
+ flags = BLOCKHAIR | NODROP
armor = list(melee = 40, bullet = 15, laser = 30,energy = 10, bomb = 5, bio = 2, rad = 0)
flags_inv = HIDEEARS
+ flags_cover = HEADCOVERSEYES
/obj/item/clothing/head/helmet/changeling/dropped()
qdel(src)
diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm
index 90ebb2d9f93..bfdacd24ad3 100644
--- a/code/game/gamemodes/cult/cult_items.dm
+++ b/code/game/gamemodes/cult/cult_items.dm
@@ -34,7 +34,7 @@
icon_state = "culthood"
desc = "A hood worn by the followers of Nar-Sie."
flags_inv = HIDEFACE
- flags = HEADCOVERSEYES
+ flags_cover = HEADCOVERSEYES
armor = list(melee = 30, bullet = 10, laser = 5,energy = 5, bomb = 0, bio = 0, rad = 0)
cold_protection = HEAD
min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT
@@ -70,8 +70,9 @@
item_state = "magus"
desc = "A helm worn by the followers of Nar-Sie."
flags_inv = HIDEFACE
- flags = HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR
+ flags = BLOCKHAIR
armor = list(melee = 30, bullet = 30, laser = 30,energy = 20, bomb = 0, bio = 0, rad = 0)
+ flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
/obj/item/clothing/suit/magusred
name = "magus robes"
diff --git a/code/game/gamemodes/gang/dominator.dm b/code/game/gamemodes/gang/dominator.dm
index 8ac7ba8b72f..0a6f4a0e471 100644
--- a/code/game/gamemodes/gang/dominator.dm
+++ b/code/game/gamemodes/gang/dominator.dm
@@ -163,15 +163,23 @@
examine(user)
return
- if(isnum(timer)) //In theory, this shouldn't happen. But if it does, they get this meme
+ if(isnum(timer))
user << "Error: Hostile Takeover is already in progress."
return
+ if(tempgang == "A" ? !mode.A_dominations : !mode.B_dominations)
+ user << "Error: Unable to breach station network. Firewall has logged our signature and is blocking all further attempts."
+ return
+
var/time = max(300,900 - ((round((gang_territory/start_state.num_territories)*200, 1) - 60) * 15))
- if(alert(user,"With [round((gang_territory/start_state.num_territories)*100, 1)]% station control, a takeover will require [time] seconds.\nYour gang will be unable to gain influence while it is active.\nThe entire station will likely be alerted to it once it starts.\nAre you ready?","Confirm","Ready","Later") == "Ready")
+ if(alert(user,"With [round((gang_territory/start_state.num_territories)*100, 1)]% station control, a takeover will require [time] seconds.\nYour gang will be unable to gain influence while it is active.\nThe entire station will likely be alerted to it once it starts.\nYou have [tempgang == "A" ? mode.A_dominations : mode.B_dominations] attempt(s) remaining. Are you ready?","Confirm","Ready","Later") == "Ready")
if ((!in_range(src, user) || !istype(src.loc, /turf)))
return 0
gang = tempgang
+ if(gang == "A")
+ mode.A_dominations --
+ else
+ mode.B_dominations --
mode.domination(gang,1,src)
src.name = "[gang_name(gang)] Gang [src.name]"
healthcheck(0)
diff --git a/code/game/gamemodes/gang/gang.dm b/code/game/gamemodes/gang/gang.dm
index a2f9322be73..1ccf81b290c 100644
--- a/code/game/gamemodes/gang/gang.dm
+++ b/code/game/gamemodes/gang/gang.dm
@@ -31,6 +31,9 @@
// Victory timers
var/A_timer = "OFFLINE"
var/B_timer = "OFFLINE"
+ //How many attempts at domination each team is allowed
+ var/A_dominations = 3
+ var/B_dominations = 3
///////////////////////////
//Announces the game type//
///////////////////////////
@@ -589,7 +592,7 @@
return
for(var/obj/item/device/gangtool/tool in gangtools)
var/mob/living/mob = get(tool.loc,/mob/living)
- if(mob && mob.mind)
+ if(mob && mob.mind && mob.stat == CONSCIOUS)
if(((tool.gang == "A") && ((mob.mind in A_gang) || (mob.mind in A_bosses))) || ((tool.gang == "B") && ((mob.mind in B_gang) || (mob.mind in B_bosses))))
mob << "\icon[tool] [message]"
if(beep)
diff --git a/code/game/gamemodes/gang/gang_pen.dm b/code/game/gamemodes/gang/gang_pen.dm
index 450deb70aef..371ce0f9019 100644
--- a/code/game/gamemodes/gang/gang_pen.dm
+++ b/code/game/gamemodes/gang/gang_pen.dm
@@ -22,7 +22,7 @@
M.Paralyse(5)
cooldown(max(0,ticker.mode.B_gang.len - ticker.mode.A_gang.len))
if(1)
- user << "This mind has already been recruited by another gang!"
+ user << "This mind has already been recruited into a gang!"
else
user << "This mind is resistant to recruitment!"
else if(user.mind in ticker.mode.B_bosses)
@@ -32,7 +32,7 @@
M.Paralyse(5)
cooldown(max(0,ticker.mode.A_gang.len - ticker.mode.B_gang.len))
if(1)
- user << "This mind has already been recruited by another gang!"
+ user << "This mind has already been recruited into a gang!"
else
user << "This mind is resistant to recruitment!"
diff --git a/code/game/gamemodes/gang/recaller.dm b/code/game/gamemodes/gang/recaller.dm
index bb51306880d..6f586dc5764 100644
--- a/code/game/gamemodes/gang/recaller.dm
+++ b/code/game/gamemodes/gang/recaller.dm
@@ -130,12 +130,15 @@
else
dat += "Promote a Gangster
"
if(gangmode)
- dat += "(30 Influence) "
- if(points >= 30)
- dat += "Station Dominator
"
+ if(gang == "A" ? !gangmode.A_dominations : !gangmode.B_dominations)
+ dat += "(Out of stock) Station Dominator"
else
- dat += "Station Dominator
"
- dat += "(Estimated Takeover Time: [round(max(300,900 - ((round((gang_territory/start_state.num_territories)*200, 10) - 60) * 15))/60,1)] minutes)
"
+ dat += "(30 Influence) "
+ if(points >= 30)
+ dat += "Station Dominator
"
+ else
+ dat += "Station Dominator
"
+ dat += "(Estimated Takeover Time: [round(max(300,900 - ((round((gang_territory/start_state.num_territories)*200, 10) - 60) * 15))/60,1)] minutes)
"
dat += "
"
dat += "Refresh
"
@@ -213,6 +216,9 @@
if(isnum((gang == "A") ? mode.A_timer : mode.B_timer))
return
+ if(gang == "A" ? !mode.A_dominations : !mode.B_dominations)
+ return
+
var/area/usrarea = get_area(usr.loc)
var/usrturf = get_turf(usr.loc)
if(initial(usrarea.name) == "Space" || istype(usrturf,/turf/space) || usr.z != 1)
@@ -274,7 +280,7 @@
if(members.len)
var/ping = "[gang_name(gang)] [boss ? "Gang Boss" : "Gang Lieutenant"]: [message]"
for(var/datum/mind/ganger in members)
- if(ganger.current.z <= 2)
+ if((ganger.current.z <= 2) && (ganger.current.stat == CONSCIOUS))
ganger.current << ping
for(var/mob/M in dead_mob_list)
M << ping
@@ -326,6 +332,7 @@
if(!istype(ticker.mode, /datum/game_mode/gang))
return 0
+ var/datum/game_mode/gang/mode = ticker.mode
recalling = 1
loc << "\icon[src]Generating shuttle recall order with codes retrieved from last call signal..."
@@ -339,6 +346,11 @@
sleep(rand(100,300))
+ if(gang == "A" ? !mode.A_dominations : !mode.B_dominations)
+ user << "\icon[src]Error: Unable to access communication arrays. Firewall has logged our signature and is blocking all further attempts."
+ recalling = 0
+ return 0
+
var/turf/userturf = get_turf(user)
if(userturf.z != 1) //Shuttle can only be recalled while on station
user << "\icon[src]Error: Device out of range of station communication arrays."
diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm
index 34097634102..8b43e46c620 100644
--- a/code/game/gamemodes/objective.dm
+++ b/code/game/gamemodes/objective.dm
@@ -576,3 +576,21 @@ var/global/list/possible_items_special = list()
explanation_text = "Destroy [target.name], the experimental AI."
else
explanation_text = "Free Objective"
+
+/datum/objective/summon_guns
+ explanation_text = "Steal at least five guns!"
+
+/datum/objective/summon_guns/check_completion()
+ if(!isliving(owner.current)) return 0
+ var/guncount = 0
+ var/list/all_items = owner.current.GetAllContents() //this should get things in cheesewheels, books, etc.
+ for(var/obj/I in all_items) //Check for guns
+ if(istype(I, /obj/item/weapon/gun))
+ guncount++
+ if(guncount >= 5)
+ return 1
+ else
+ return 0
+ return 0
+
+
diff --git a/code/game/gamemodes/wizard/rightandwrong.dm b/code/game/gamemodes/wizard/rightandwrong.dm
index 2a38c519a77..7d1a612ecfc 100644
--- a/code/game/gamemodes/wizard/rightandwrong.dm
+++ b/code/game/gamemodes/wizard/rightandwrong.dm
@@ -12,15 +12,18 @@
for(var/mob/living/carbon/human/H in player_list)
if(H.stat == 2 || !(H.client)) continue
if(H.mind)
- if(H.mind.special_role == "Wizard" || H.mind.special_role == "apprentice") continue
+ if(H.mind.special_role == "Wizard" || H.mind.special_role == "apprentice" || H.mind.special_role == "survivalist") continue
if(prob(survivor_probability) && !(H.mind in ticker.mode.traitors))
ticker.mode.traitors += H.mind
- H.mind.special_role = "traitor"
+ var/datum/objective/summon_guns/guns = new
+ guns.owner = H.mind
+ H.mind.objectives += guns
+ H.mind.special_role = "survivalist"
var/datum/objective/survive/survive = new
survive.owner = H.mind
H.mind.objectives += survive
- H.attack_log += "\[[time_stamp()]\] Was made into a survivor, and trusts no one!"
- H << "You are the survivor! Your own safety matters above all else, trust no one and kill anyone who gets in your way. However, armed as you are, now would be the perfect time to settle that score or grab that pair of yellow gloves you've been eyeing..."
+ H.attack_log += "\[[time_stamp()]\] Was made into a survivalist, and trusts no one!"
+ H << "You are the survivalist! Your own safety matters above all else, and the only way to ensure your safety is to stockpile weapons! Grab as many guns as possible, by any means necessary. Kill anyone who gets in your way."
var/obj_count = 1
for(var/datum/objective/OBJ in H.mind.objectives)
H << "Objective #[obj_count]: [OBJ.explanation_text]"
diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm
index 2c9ea69ef97..0f2b69da0ac 100644
--- a/code/game/gamemodes/wizard/spellbook.dm
+++ b/code/game/gamemodes/wizard/spellbook.dm
@@ -327,9 +327,9 @@
/datum/spellbook_entry/summon/guns
name = "Summon Guns"
- category = "Challenges"
+ category = "Rituals"
desc = "Nothing could possibly go wrong with arming a crew of lunatics just itching for an excuse to kill you. Just be careful not to stand still too long!"
- cost = 0
+ cost = 1
log_name = "SG"
/datum/spellbook_entry/summon/guns/IsAvailible()
@@ -337,11 +337,9 @@
/datum/spellbook_entry/summon/guns/Buy(var/mob/living/carbon/human/user,var/obj/item/weapon/spellbook/book)
feedback_add_details("wizard_spell_learned",log_name)
- rightandwrong(0, user, 0)
- book.uses += 1
- active = 1
+ rightandwrong(0, user, 25)
playsound(get_turf(user),"sound/magic/CastSummon.ogg",50,1)
- user << "You have cast summon guns and gained an extra charge for your spellbook."
+ user << "You have cast summon guns!"
return 1
/datum/spellbook_entry/summon/magic
diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm
index 590837a40fd..12c9fec1d69 100644
--- a/code/game/jobs/job/security.dm
+++ b/code/game/jobs/job/security.dm
@@ -133,7 +133,7 @@ Detective
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/black(H), slot_gloves)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/det_suit(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/toy/crayon/white(H), slot_l_store)
- H.equip_to_slot_or_del(new /obj/item/weapon/lighter/zippo(H), slot_r_store)
+ H.equip_to_slot_or_del(new /obj/item/weapon/lighter(H), slot_r_store)
var/obj/item/clothing/mask/cigarette/cig = new /obj/item/clothing/mask/cigarette(H)
cig.light("")
diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm
index ebe873ae94e..d9a0b84f457 100644
--- a/code/game/machinery/computer/arcade.dm
+++ b/code/game/machinery/computer/arcade.dm
@@ -11,7 +11,7 @@
/obj/item/toy/gun = 2,
/obj/item/weapon/gun/projectile/shotgun/toy/crossbow = 2,
/obj/item/weapon/storage/box/fakesyndiesuit = 2,
- /obj/item/weapon/storage/fancy/crayons = 2,
+ /obj/item/weapon/storage/crayons = 2,
/obj/item/toy/spinningtoy = 2,
/obj/item/toy/prize/ripley = 1,
/obj/item/toy/prize/fireripley = 1,
diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm
index 9f36d735ee4..8662dce832e 100644
--- a/code/game/machinery/vending.dm
+++ b/code/game/machinery/vending.dm
@@ -739,11 +739,11 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
/obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3,
/obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 3,
/obj/item/weapon/storage/box/matches = 10,
- /obj/item/weapon/lighter/grayscale = 4,
+ /obj/item/weapon/lighter/greyscale = 4,
/obj/item/weapon/storage/fancy/rollingpapers = 5)
- contraband = list(/obj/item/weapon/lighter/zippo = 4)
+ contraband = list(/obj/item/weapon/lighter = 4)
premium = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_robustgold = 2, \
- /obj/item/weapon/storage/fancy/cigars = 1, /obj/item/weapon/storage/fancy/cigars/havana = 1, /obj/item/weapon/storage/fancy/cigars/cohiba = 1)
+ /obj/item/weapon/storage/fancy/cigarettes/cigars = 1, /obj/item/weapon/storage/fancy/cigarettes/cigars/havana = 1, /obj/item/weapon/storage/fancy/cigarettes/cigars/cohiba = 1)
refill_canister = /obj/item/weapon/vending_refill/cigarette
/obj/machinery/vending/medical
diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm
index 578fe74bade..d31a0feba06 100644
--- a/code/game/objects/effects/spawners/lootdrop.dm
+++ b/code/game/objects/effects/spawners/lootdrop.dm
@@ -118,3 +118,12 @@
/obj/item/weapon/relic = 3,
"" = 11
)
+
+/obj/effect/spawner/lootdrop/crate_spawner
+ name = "lootcrate spawner"
+ lootdoubles = 0
+
+ loot = list(
+ /obj/structure/closet/crate/secure/loot = 20,
+ "" = 80
+ )
\ No newline at end of file
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 0468739411b..a782f6fbb51 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -77,6 +77,9 @@
/obj/machinery/r_n_d/experimentor,
/obj/machinery/autolathe
)
+
+ var/flags_cover = 0 //for flags such as GLASSESCOVERSEYES
+
/obj/item/proc/check_allowed_items(atom/target, not_inside)
if((src in target) || ((!istype(target.loc, /turf)) && (!istype(target, /turf)) && (not_inside)) || is_type_in_list(target, can_be_placed_into))
return 0
@@ -328,16 +331,16 @@
if(ishuman(M))
is_human_victim = 1
var/mob/living/carbon/human/H = M
- if((H.head && H.head.flags & HEADCOVERSEYES) || \
- (H.wear_mask && H.wear_mask.flags & MASKCOVERSEYES) || \
- (H.glasses && H.glasses.flags & GLASSESCOVERSEYES))
+ if((H.head && H.head.flags_cover & HEADCOVERSEYES) || \
+ (H.wear_mask && H.wear_mask.flags_cover & MASKCOVERSEYES) || \
+ (H.glasses && H.glasses.flags_cover & GLASSESCOVERSEYES))
// you can't stab someone in the eyes wearing a mask!
user << "You're going to need to remove that mask/helmet/glasses first!"
return
if(ismonkey(M))
var/mob/living/carbon/monkey/Mo = M
- if(Mo.wear_mask && Mo.wear_mask.flags & MASKCOVERSEYES)
+ if(Mo.wear_mask && Mo.wear_mask.flags_cover & MASKCOVERSEYES)
// you can't stab someone in the eyes wearing a mask!
user << "You're going to need to remove that mask/helmet/glasses first!"
return
diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm
index a512741096f..caed55b1454 100644
--- a/code/game/objects/items/crayons.dm
+++ b/code/game/objects/items/crayons.dm
@@ -83,6 +83,45 @@
else
..()
+/*
+ * Crayon Box
+ */
+/obj/item/weapon/storage/crayons
+ name = "box of crayons"
+ desc = "A box of crayons for all your rune drawing needs."
+ icon = 'icons/obj/crayons.dmi'
+ icon_state = "crayonbox"
+ w_class = 2.0
+ storage_slots = 6
+ can_hold = list(
+ /obj/item/toy/crayon
+ )
+
+/obj/item/weapon/storage/crayons/New()
+ ..()
+ new /obj/item/toy/crayon/red(src)
+ new /obj/item/toy/crayon/orange(src)
+ new /obj/item/toy/crayon/yellow(src)
+ new /obj/item/toy/crayon/green(src)
+ new /obj/item/toy/crayon/blue(src)
+ new /obj/item/toy/crayon/purple(src)
+ update_icon()
+
+/obj/item/weapon/storage/crayons/update_icon()
+ overlays.Cut()
+ for(var/obj/item/toy/crayon/crayon in contents)
+ overlays += image('icons/obj/crayons.dmi',crayon.colourName)
+
+/obj/item/weapon/storage/crayons/attackby(obj/item/W as obj, mob/user as mob, params)
+ if(istype(W,/obj/item/toy/crayon))
+ switch(W:colourName)
+ if("mime")
+ usr << "This crayon is too sad to be contained in this box."
+ return
+ if("rainbow")
+ usr << "This crayon is too powerful to be contained in this box."
+ return
+ ..()
//Spraycan stuff
diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm
index 5e8555d13ad..3d6f1a022b0 100644
--- a/code/game/objects/items/devices/flashlight.dm
+++ b/code/game/objects/items/devices/flashlight.dm
@@ -57,8 +57,8 @@
return
var/mob/living/carbon/human/H = M //mob has protective eyewear
- if(istype(M, /mob/living/carbon/human) && ((H.head && H.head.flags & HEADCOVERSEYES) || (H.wear_mask && H.wear_mask.flags & MASKCOVERSEYES) || (H.glasses && H.glasses.flags & GLASSESCOVERSEYES)))
- user << "You're going to need to remove that [(H.head && H.head.flags & HEADCOVERSEYES) ? "helmet" : (H.wear_mask && H.wear_mask.flags & MASKCOVERSEYES) ? "mask": "glasses"] first."
+ if(istype(M, /mob/living/carbon/human) && ((H.head && H.head.flags_cover & HEADCOVERSEYES) || (H.wear_mask && H.wear_mask.flags_cover & MASKCOVERSEYES) || (H.glasses && H.glasses.flags_cover & GLASSESCOVERSEYES)))
+ user << "You're going to need to remove that [(H.head && H.head.flags_cover & HEADCOVERSEYES) ? "helmet" : (H.wear_mask && H.wear_mask.flags_cover & MASKCOVERSEYES) ? "mask": "glasses"] first."
return
if(M == user) //they're using it on themselves
diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm
index dcc041016ee..1c7fcb368d1 100644
--- a/code/game/objects/items/weapons/cards_ids.dm
+++ b/code/game/objects/items/weapons/cards_ids.dm
@@ -145,15 +145,15 @@ update_label("John Doe", "Clowny")
/obj/item/weapon/card/id/syndicate/attack_self(mob/user as mob)
if(!src.registered_name)
//Stop giving the players unsanitized unputs! You are giving ways for players to intentionally crash clients! -Nodrak
- var t = copytext(sanitize(input(user, "What name would you like to put on this card?", "Agent card name", ishuman(user) ? user.real_name : user.name)),1,26)
+ var t = copytext(sanitize(input(user, "What name would you like to put on this card?", "Agent card name", ishuman(user) ? user.real_name : user.name)as text | null),1,26)
if(!t || t == "Unknown" || t == "floor" || t == "wall" || t == "r-wall") //Same as mob/new_player/prefrences.dm
- alert("Invalid name.")
+ if (t)
+ alert("Invalid name.")
return
src.registered_name = t
- var u = copytext(sanitize(input(user, "What occupation would you like to put on this card?\nNote: This will not grant any access levels other than Maintenance.", "Agent card job assignment", "Assistant")),1,MAX_MESSAGE_LEN)
+ var u = copytext(sanitize(input(user, "What occupation would you like to put on this card?\nNote: This will not grant any access levels other than Maintenance.", "Agent card job assignment", "Assistant")as text | null),1,MAX_MESSAGE_LEN)
if(!u)
- alert("Invalid assignment.")
src.registered_name = ""
return
src.assignment = u
diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm
index 99bde856d35..5d728df3a9d 100644
--- a/code/game/objects/items/weapons/cigs_lighters.dm
+++ b/code/game/objects/items/weapons/cigs_lighters.dm
@@ -24,7 +24,6 @@ CIGARETTE PACKETS ARE IN FANCY.DM
var/smoketime = 5
w_class = 1.0
origin_tech = "materials=1"
- attack_verb = null
/obj/item/weapon/match/process()
var/turf/location = get_turf(src)
@@ -101,7 +100,6 @@ CIGARETTE PACKETS ARE IN FANCY.DM
item_state = "cigoff"
w_class = 1
body_parts_covered = null
- attack_verb = null
var/lit = 0
var/icon_on = "cigon" //Note - these are in masks.dmi not in cigarette.dmi
var/icon_off = "cigoff"
@@ -145,9 +143,9 @@ CIGARETTE PACKETS ARE IN FANCY.DM
var/lighting_text = null
if(istype(O, /obj/item/weapon/weldingtool))
lighting_text = "[user] casually lights the [name] with [O], what a badass."
- else if(istype(O, /obj/item/weapon/lighter/zippo))
- lighting_text = "With a single flick of their wrist, [user] smoothly lights their [name] with [O]. Damn they're cool."
else if(istype(O, /obj/item/weapon/lighter))
+ lighting_text = "With a single flick of their wrist, [user] smoothly lights their [name] with [O]. Damn they're cool."
+ else if(istype(O, /obj/item/weapon/lighter/greyscale))
lighting_text = "After some fiddling, [user] manages to light their [name] with [O]."
else if(istype(O, /obj/item/weapon/melee/energy))
lighting_text = "[user] swings their [O], barely missing their nose. They light their [name] in the process."
@@ -438,51 +436,28 @@ CIGARETTE PACKETS ARE IN FANCY.DM
//ZIPPO//
/////////
/obj/item/weapon/lighter
- name = "cheap lighter"
- desc = "A cheap-as-free lighter."
- icon = 'icons/obj/items.dmi'
- icon_state = "lighter-g"
- item_state = "lighter-g"
- var/icon_on = "lighter-g-on"
- var/icon_off = "lighter-g"
- w_class = 1
- throwforce = 0
- flags = CONDUCT
- slot_flags = SLOT_BELT
- attack_verb = null
- var/lit = 0
-
-/obj/item/weapon/lighter/grayscale
- name = "cheap lighter"
- desc ="A cheap-as-free lighter."
- icon = 'icons/obj/cigarettes.dmi'
- icon_state = "lighter-off"
- item_state = "lighter-off"
- icon_on = "lighter-on"
- icon_off = "lighter-off"
-
-/obj/item/weapon/lighter/grayscale/New()
- var/icon/overlay = new /icon('icons/obj/cigarettes.dmi',"lighter-overlay")
- overlay.ColorTone(color2hex(randomColor(1)))
- overlays += overlay
-
-/obj/item/weapon/lighter/zippo
name = "\improper Zippo lighter"
desc = "The zippo."
+ icon = 'icons/obj/cigarettes.dmi'
icon_state = "zippo"
item_state = "zippo"
- icon_on = "zippoon"
- icon_off = "zippo"
+ w_class = 1
+ flags = CONDUCT
+ slot_flags = SLOT_BELT
+ var/lit = 0
+
+/obj/item/weapon/lighter/greyscale
+ name = "cheap lighter"
+ desc = "A cheap-as-free lighter."
+ icon_state = "lighter"
+
+/obj/item/weapon/lighter/greyscale/New()
+ var/image/I = image(icon,"lighter-overlay")
+ I.color = color2hex(randomColor(1))
+ overlays += I
/obj/item/weapon/lighter/update_icon()
- icon_state = lit ? icon_on : icon_off
-
-/obj/item/weapon/lighter/random
- New()
- var/color = pick("r","c","y","g")
- icon_on = "lighter-[color]-on"
- icon_off = "lighter-[color]"
- icon_state = icon_off
+ icon_state = lit ? "[icon_state]_on" : "[initial(icon_state)]"
/obj/item/weapon/lighter/attack_self(mob/living/user)
if(user.r_hand == src || user.l_hand == src)
@@ -493,7 +468,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
damtype = "fire"
hitsound = 'sound/items/welder.ogg'
attack_verb = list("burnt", "singed")
- if(istype(src, /obj/item/weapon/lighter/zippo) )
+ if(!istype(src, /obj/item/weapon/lighter/greyscale))
user.visible_message("Without even breaking stride, [user] flips open and lights [src] in one smooth movement.", "Without even breaking stride, you flip open and lights [src] in one smooth movement.")
else
if(prob(75))
@@ -510,11 +485,10 @@ CIGARETTE PACKETS ARE IN FANCY.DM
hitsound = "swing_hit"
force = 0
attack_verb = null //human_defense.dm takes care of it
- if(istype(src, /obj/item/weapon/lighter/zippo) )
+ if(!istype(src, /obj/item/weapon/lighter/greyscale))
user.visible_message("You hear a quiet click, as [user] shuts off [src] without even looking at what they're doing. Wow.", "You quietly shut off [src] without even looking at what you're doing. Wow.")
else
user.visible_message("[user] quietly shuts off [src].", "You quietly shut off [src].")
-
user.AddLuminosity(-1)
SSobj.processing.Remove(src)
else
@@ -530,7 +504,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
if(M == user)
cig.attackby(src, user)
else
- if(istype(src, /obj/item/weapon/lighter/zippo))
+ if(!istype(src, /obj/item/weapon/lighter/greyscale))
cig.light("[user] whips the [name] out and holds it for [M]. Their arm is as steady as the unflickering flame they light \the [cig] with.")
else
cig.light("[user] holds the [name] out for [M], and lights the [cig.name].")
diff --git a/code/game/objects/items/weapons/cosmetics.dm b/code/game/objects/items/weapons/cosmetics.dm
index f9e39c9994e..116b60905f8 100644
--- a/code/game/objects/items/weapons/cosmetics.dm
+++ b/code/game/objects/items/weapons/cosmetics.dm
@@ -65,7 +65,7 @@
else
user.visible_message("[user] begins to do [H]'s lips with \the [src].", \
"You begin to apply \the [src] on [H]'s lips...")
- if(do_after(user, 20, target = H) && do_after(H, 20, 5, 0)) //user needs to keep their active hand, H does not.
+ if(do_after(user, 20, target = H))
user.visible_message("[user] does [H]'s lips with \the [src].", \
"You apply \the [src] on [H]'s lips.")
H.lip_style = "lipstick"
diff --git a/code/game/objects/items/weapons/gift_wrappaper.dm b/code/game/objects/items/weapons/gift_wrappaper.dm
index 26bdda71d65..242abdf81f6 100644
--- a/code/game/objects/items/weapons/gift_wrappaper.dm
+++ b/code/game/objects/items/weapons/gift_wrappaper.dm
@@ -30,7 +30,7 @@
/obj/item/weapon/storage/wallet,
/obj/item/weapon/storage/photo_album,
/obj/item/weapon/storage/box/snappops,
- /obj/item/weapon/storage/fancy/crayons,
+ /obj/item/weapon/storage/crayons,
/obj/item/weapon/storage/backpack/holding,
/obj/item/weapon/storage/belt/champion,
/obj/item/weapon/soap/deluxe,
diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm
index 0b6f3428996..1e95e040502 100644
--- a/code/game/objects/items/weapons/storage/belt.dm
+++ b/code/game/objects/items/weapons/storage/belt.dm
@@ -68,7 +68,7 @@
/obj/item/weapon/reagent_containers/glass/bottle,
/obj/item/weapon/reagent_containers/pill,
/obj/item/weapon/reagent_containers/syringe,
- /obj/item/weapon/lighter/zippo,
+ /obj/item/weapon/lighter,
/obj/item/weapon/storage/fancy/cigarettes,
/obj/item/weapon/storage/pill_bottle,
/obj/item/stack/medical,
diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm
index 121a7b505ca..c7f35dc05a0 100644
--- a/code/game/objects/items/weapons/storage/fancy.dm
+++ b/code/game/objects/items/weapons/storage/fancy.dm
@@ -9,16 +9,21 @@
* Donut Box
* Egg Box
* Candle Box
- * Crayon Box
* Cigarette Box
* Cigar Case
*/
-/obj/item/weapon/storage/fancy/
+/obj/item/weapon/storage/fancy
icon = 'icons/obj/food/containers.dmi'
icon_state = "donutbox6"
name = "donut box"
var/icon_type = "donut"
+ var/spawn_type = null
+
+/obj/item/weapon/storage/fancy/New()
+ ..()
+ for(var/i = 1 to storage_slots)
+ new spawn_type(src)
/obj/item/weapon/storage/fancy/update_icon(var/itemremoved = 0)
var/total_contents = src.contents.len - itemremoved
@@ -27,12 +32,10 @@
/obj/item/weapon/storage/fancy/examine(mob/user)
..()
- if(contents.len <= 0)
- user << "There are no [src.icon_type]s left in the box."
- else if(contents.len == 1)
- user << "There is one [src.icon_type] left in the box."
+ if(contents.len == 1)
+ user << "There is one [src.icon_type] left."
else
- user << "There are [src.contents.len] [src.icon_type]s in the box."
+ user << "There are [contents.len <= 0 ? "no" : "[src.contents.len]"] [src.icon_type]s left."
/*
* Donut Box
@@ -45,13 +48,7 @@
name = "donut box"
storage_slots = 6
can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/donut)
-
-
-/obj/item/weapon/storage/fancy/donut_box/New()
- ..()
- for(var/i=1; i <= storage_slots; i++)
- new /obj/item/weapon/reagent_containers/food/snacks/donut(src)
- return
+ spawn_type = /obj/item/weapon/reagent_containers/food/snacks/donut
/*
* Egg Box
@@ -64,12 +61,7 @@
name = "egg box"
storage_slots = 12
can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/egg)
-
-/obj/item/weapon/storage/fancy/egg_box/New()
- ..()
- for(var/i=1; i <= storage_slots; i++)
- new /obj/item/weapon/reagent_containers/food/snacks/egg(src)
- return
+ spawn_type = /obj/item/weapon/reagent_containers/food/snacks/egg
/*
* Candle Box
@@ -85,56 +77,7 @@
storage_slots = 5
throwforce = 2
slot_flags = SLOT_BELT
-
-
-/obj/item/weapon/storage/fancy/candle_box/New()
- ..()
- for(var/i=1; i <= storage_slots; i++)
- new /obj/item/candle(src)
- return
-
-/*
- * Crayon Box
- */
-
-/obj/item/weapon/storage/fancy/crayons
- name = "box of crayons"
- desc = "A box of crayons for all your rune drawing needs."
- icon = 'icons/obj/crayons.dmi'
- icon_state = "crayonbox"
- w_class = 2.0
- storage_slots = 6
- icon_type = "crayon"
- can_hold = list(
- /obj/item/toy/crayon
- )
-
-/obj/item/weapon/storage/fancy/crayons/New()
- ..()
- new /obj/item/toy/crayon/red(src)
- new /obj/item/toy/crayon/orange(src)
- new /obj/item/toy/crayon/yellow(src)
- new /obj/item/toy/crayon/green(src)
- new /obj/item/toy/crayon/blue(src)
- new /obj/item/toy/crayon/purple(src)
- update_icon()
-
-/obj/item/weapon/storage/fancy/crayons/update_icon()
- overlays = list() //resets list
- overlays += image('icons/obj/crayons.dmi',"crayonbox")
- for(var/obj/item/toy/crayon/crayon in contents)
- overlays += image('icons/obj/crayons.dmi',crayon.colourName)
-
-/obj/item/weapon/storage/fancy/crayons/attackby(obj/item/W as obj, mob/user as mob, params)
- if(istype(W,/obj/item/toy/crayon))
- switch(W:colourName)
- if("mime")
- usr << "This crayon is too sad to be contained in this box."
- return
- if("rainbow")
- usr << "This crayon is too powerful to be contained in this box."
- return
- ..()
+ spawn_type = /obj/item/candle
////////////
//CIG PACK//
@@ -143,24 +86,30 @@
name = "\improper Space Cigarettes packet"
desc = "The most popular brand of cigarettes, sponsors of the Space Olympics."
icon = 'icons/obj/cigarettes.dmi'
- icon_state = "cigpacket"
+ icon_state = "cig"
item_state = "cigpacket"
w_class = 1
throwforce = 0
slot_flags = SLOT_BELT
storage_slots = 6
- can_hold = list(/obj/item/clothing/mask/cigarette,/obj/item/weapon/lighter)
+ can_hold = list(/obj/item/clothing/mask/cigarette)
icon_type = "cigarette"
+ spawn_type = /obj/item/clothing/mask/cigarette
/obj/item/weapon/storage/fancy/cigarettes/New()
..()
flags |= NOREACT
- for(var/i = 1 to storage_slots)
- new /obj/item/clothing/mask/cigarette(src)
create_reagents(15 * storage_slots)//so people can inject cigarettes without opening a packet, now with being able to inject the whole one
/obj/item/weapon/storage/fancy/cigarettes/update_icon()
- icon_state = "[initial(icon_state)][contents.len]"
+ overlays.Cut()
+ icon_state = initial(icon_state)
+ if(!contents.len)
+ icon_state += "_empty"
+ else
+ overlays += "[icon_state]_open"
+ for(var/c = contents.len, c >= 1, c--)
+ overlays += image(icon = src.icon, icon_state = "cigarette", pixel_x = 1 * (c -1))
return
/obj/item/weapon/storage/fancy/cigarettes/remove_from_storage(obj/item/W, atom/new_location)
@@ -178,35 +127,31 @@
remove_from_storage(W, M)
M.equip_to_slot_if_possible(W, slot_wear_mask)
contents -= W
- user << "You take a cigarette out of the pack."
+ user << "You take a [icon_type] out of the pack."
else
..()
else
- user << "There are no cigarettes left in the pack."
+ user << "There are no [icon_type]s left in the pack."
/obj/item/weapon/storage/fancy/cigarettes/dromedaryco
name = "\improper DromedaryCo packet"
desc = "A packet of six imported DromedaryCo cancer sticks. A label on the packaging reads, \"Wouldn't a slow death make a change?\""
- icon_state = "Dpacket"
- item_state = "Dpacket"
+ icon_state = "dromedary"
/obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift
name = "\improper Uplift Smooth packet"
desc = "Your favorite brand, now menthol flavored."
- icon_state = "upliftpacket"
- item_state = "upliftpacket"
+ icon_state = "uplift"
/obj/item/weapon/storage/fancy/cigarettes/cigpack_robust
name = "\improper Robust packet"
desc = "Smoked by the robust."
- icon_state = "robustpacket"
- item_state = "robustpacket"
+ icon_state = "robust"
/obj/item/weapon/storage/fancy/cigarettes/cigpack_robustgold
name = "\improper Robust Gold packet"
desc = "Smoked by the truly robust."
- icon_state = "robustgpacket"
- item_state = "robustgpacket"
+ icon_state = "robustg"
/obj/item/weapon/storage/fancy/cigarettes/cigpack_robustgold/New()
..()
@@ -216,14 +161,12 @@
/obj/item/weapon/storage/fancy/cigarettes/cigpack_carp
name = "\improper Carp Classic packet"
desc = "Since 2313."
- icon_state = "carppacket"
- item_state = "carppacket"
+ icon_state = "carp"
/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate
name = "cigarette packet"
desc = "An obscure brand of cigarettes."
- icon_state = "syndiepacket"
- item_state = "syndiepacket"
+ icon_state = "syndie"
/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate/New()
..()
@@ -234,14 +177,12 @@
/obj/item/weapon/storage/fancy/cigarettes/cigpack_midori
name = "\improper Midori Tabako packet"
desc = "You can't understand the runes, but the packet smells funny."
- icon_state = "midoripacket"
- item_state = "midoripacket"
+ icon_state = "midori"
/obj/item/weapon/storage/fancy/cigarettes/cigpack_shadyjims
name ="\improper Shady Jim's Super Slims"
desc = "Is your weight slowing you down? Having trouble running away from gravitational singularities? Can't stop stuffing your mouth? Smoke Shady Jim's Super Slims and watch all that fat burn away. Guaranteed results!"
- icon_state = "shadyjimpacket"
- item_state = "shadyjimpacket"
+ icon_state = "shadyjim"
/obj/item/weapon/storage/fancy/cigarettes/cigpack_shadyjims/New()
..()
@@ -258,61 +199,44 @@
icon = 'icons/obj/cigarettes.dmi'
icon_state = "cig_paper_pack"
storage_slots = 10
- icon_type = "rolling papers"
+ icon_type = "rolling paper"
can_hold = list(/obj/item/weapon/rollingpaper)
+ spawn_type = /obj/item/weapon/rollingpaper
/obj/item/weapon/storage/fancy/rollingpapers/update_icon()
+ overlays.Cut()
if(!contents.len)
- icon_state = "[initial(icon_state)]0"
- else
- icon_state = initial(icon_state)
-
- desc = "There are [contents.len] papers\s left!"
+ overlays += "[icon_state]_empty"
return
-/obj/item/weapon/storage/fancy/rollingpapers/New()
- ..()
- for(var/i = 1 to storage_slots)
- new /obj/item/weapon/rollingpaper(src)
-
/////////////
//CIGAR BOX//
/////////////
-/obj/item/weapon/storage/fancy/cigars
+/obj/item/weapon/storage/fancy/cigarettes/cigars
name = "\improper premium cigar case"
desc = "A case of premium cigars. Very expensive."
icon = 'icons/obj/cigarettes.dmi'
- icon_state = "cigarcasep"
- item_state = "cigarcasep"
+ icon_state = "cigarcase"
w_class = 3
- throwforce = 0
- slot_flags = SLOT_BELT
storage_slots = 7
can_hold = list(/obj/item/clothing/mask/cigarette/cigar)
- icon_type = "cigar"
- var/cigar_type = /obj/item/clothing/mask/cigarette/cigar
+ icon_type = "premium cigar"
+ spawn_type = /obj/item/clothing/mask/cigarette/cigar
-/obj/item/weapon/storage/fancy/cigars/New()
- ..()
- flags |= NOREACT
- for(var/i = 1 to storage_slots)
- new cigar_type(src)
-
-/obj/item/weapon/storage/fancy/cigars/update_icon()
- icon_state = "[initial(icon_state)][contents.len]"
+/obj/item/weapon/storage/fancy/cigarettes/cigars/update_icon()
+ overlays.Cut()
+ overlays += "[icon_state]_open"
+ for(var/c = contents.len, c >= 1, c--)
+ overlays += image(icon = src.icon, icon_state = icon_type, pixel_x = 4 * (c -1))
return
-/obj/item/weapon/storage/fancy/cigars/cohiba
+/obj/item/weapon/storage/fancy/cigarettes/cigars/cohiba
name = "\improper cohiba robusto cigar case"
desc = "A case of imported Cohiba cigars, renowned for their strong flavor."
- icon_state = "cigarcase"
- item_state = "cigarcase"
- cigar_type = /obj/item/clothing/mask/cigarette/cigar/cohiba
+ spawn_type = /obj/item/clothing/mask/cigarette/cigar/cohiba
-/obj/item/weapon/storage/fancy/cigars/havana
+/obj/item/weapon/storage/fancy/cigarettes/cigars/havana
name = "\improper premium havanian cigar case"
desc = "A case of classy Havanian cigars."
- icon_state = "cigarcase"
- item_state = "cigarcase"
- cigar_type = /obj/item/clothing/mask/cigarette/cigar/havana
+ spawn_type = /obj/item/clothing/mask/cigarette/cigar/havana
diff --git a/code/game/objects/structures/fireaxe.dm b/code/game/objects/structures/fireaxe.dm
index 831c009fad8..338c90f3fab 100644
--- a/code/game/objects/structures/fireaxe.dm
+++ b/code/game/objects/structures/fireaxe.dm
@@ -31,6 +31,9 @@
user << "You place the [F.name] back in the [name]."
update_icon()
return
+ else if(glass_hp > 0)
+ toggle_open()
+
else if(istype(I, /obj/item/weapon))
user.changeNext_move(CLICK_CD_MELEE)
var/obj/item/weapon/W = I
@@ -122,7 +125,7 @@
/obj/structure/fireaxecabinet/proc/toggle_lock(mob/user)
user << " Resetting circuitry..."
playsound(src, 'sound/machines/locktoggle.ogg', 50, 1)
- if(do_after(user, 20))
+ if(do_after(user, 20, target = src))
user << "You [locked ? "disable" : "re-enable"] the locking modules."
locked = !locked
update_icon()
diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm
index d6eaf07c04f..5b0b47205f6 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -224,7 +224,7 @@
if(WT.remove_fuel(0,user))
user << "You begin repairing [src]..."
playsound(loc, 'sound/items/Welder.ogg', 40, 1)
- if(do_after(user, 40))
+ if(do_after(user, 40, target = src))
health = maxhealth
playsound(loc, 'sound/items/Welder2.ogg', 50, 1)
else
diff --git a/code/modules/admin/admin_memo.dm b/code/modules/admin/admin_memo.dm
index 5ca3ea9942f..89f9116aeaf 100644
--- a/code/modules/admin/admin_memo.dm
+++ b/code/modules/admin/admin_memo.dm
@@ -37,7 +37,7 @@
var/savefile/F = new(MEMOFILE)
if(F)
for(var/ckey in F.dir)
- src << "Admin Memoby [F[ckey]]"
+ src << "Admin Memo by [F[ckey]]"
//delete your own or somebody else's memo
/client/proc/admin_memo_delete()
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 3d982716ad2..2b643231e19 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -1111,7 +1111,7 @@
var/DBQuery/query = dbcon.NewQuery("SELECT ckey FROM [format_table_name("watch")] WHERE (ckey = '[sql_ckey]')")
query.Execute()
if(query.NextRow())
- switch(alert(usr, "Ckey already flagged", "[sql_ckey] is already on the watchlist, do you want to:", "Remove", "Edit reason", "Cancel"))
+ switch(alert(usr, "[sql_ckey] is already on the watchlist, do you want to:", "Ckey already flagged", "Remove", "Edit reason", "Cancel"))
if("Cancel")
return
if("Remove")
@@ -1120,7 +1120,7 @@
var/err = query_watchdel.ErrorMsg()
log_game("SQL ERROR during removing watch entry. Error : \[[err]\]\n")
return
- log_admin("[key_name_admin(usr)] has removed [key_name_admin(M)] from the watchlist")
+ log_admin("[key_name(usr)] has removed [key_name_admin(M)] from the watchlist")
message_admins("[key_name_admin(usr)] has removed [key_name_admin(M)] from the watchlist", 1)
if("Edit reason")
var/DBQuery/query_reason = dbcon.NewQuery("SELECT ckey, reason FROM [format_table_name("watch")] WHERE (ckey = '[sql_ckey]')")
@@ -1131,12 +1131,12 @@
new_reason = sanitizeSQL(new_reason)
if(!new_reason)
return
- var/DBQuery/update_query = dbcon.NewQuery("UPDATE [format_table_name("watch")] SET reason = '[new_reason]', edits = CONCAT(edits,'- [usr] changed watchlist reason from \\\"[watch_reason]\\\" to \\\"[new_reason]\\\"
') WHERE (ckey = '[sql_ckey]')")
+ var/DBQuery/update_query = dbcon.NewQuery("UPDATE [format_table_name("watch")] SET reason = '[new_reason]' WHERE (ckey = '[sql_ckey]')")
if(!update_query.Execute())
var/err = update_query.ErrorMsg()
log_game("SQL ERROR during edit watch entry reason. Error : \[[err]\]\n")
return
- log_admin("[key_name_admin(usr)] has edited [sql_ckey]'s reason from [watch_reason] to [new_reason]",1)
+ log_admin("[key_name(usr)] has edited [sql_ckey]'s reason from [watch_reason] to [new_reason]",1)
message_admins("[key_name_admin(usr)] has edited [sql_ckey]'s reason from [watch_reason] to [new_reason]",1)
else
var/reason = input(usr,"Reason?","reason","Metagaming") as text|null
@@ -1148,7 +1148,7 @@
var/err = query_watchadd.ErrorMsg()
log_game("SQL ERROR during adding new watch entry. Error : \[[err]\]\n")
return
- log_admin("[key_name_admin(usr)] has added [key_name_admin(M)] to the watchlist - Reason: [reason]")
+ log_admin("[key_name(usr)] has added [key_name_admin(M)] to the watchlist - Reason: [reason]")
message_admins("[key_name_admin(usr)] has added [key_name_admin(M)] to the watchlist - Reason: [reason]", 1)
else if(href_list["mute"])
@@ -1505,6 +1505,8 @@
var/mob/dead/observer/A = C.mob
sleep(2)
A.ManualFollow(M)
+ log_admin("[key_name(usr)] followed [key_name(M)]")
+ message_admins("[key_name_admin(usr)] followed [key_name_admin(M)]")
else if(href_list["adminplayerobservecoodjump"])
if(!isobserver(usr) && !check_rights(R_ADMIN)) return
diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm
index c5f1a2bb22f..02aac7f6db8 100644
--- a/code/modules/admin/verbs/debug.dm
+++ b/code/modules/admin/verbs/debug.dm
@@ -885,7 +885,7 @@ var/global/list/g_fancy_list_of_types = null
M.equip_to_slot_or_del(new /obj/item/clothing/mask/cigarette/cigar/cohiba(M), slot_wear_mask)
M.equip_to_slot_or_del(new /obj/item/clothing/head/centhat(M), slot_head)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/revolver/mateba(M), slot_belt)
- M.equip_to_slot_or_del(new /obj/item/weapon/lighter/zippo(M), slot_r_store)
+ M.equip_to_slot_or_del(new /obj/item/weapon/lighter(M), slot_r_store)
M.equip_to_slot_or_del(new /obj/item/ammo_box/a357(M), slot_l_store)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
@@ -912,7 +912,7 @@ var/global/list/g_fancy_list_of_types = null
M.equip_to_slot_or_del(new /obj/item/clothing/mask/cigarette/cigar/havana(M), slot_wear_mask)
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/beret(M), slot_head)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse/pistol/m1911(M), slot_belt)
- M.equip_to_slot_or_del(new /obj/item/weapon/lighter/zippo(M), slot_r_store)
+ M.equip_to_slot_or_del(new /obj/item/weapon/lighter(M), slot_r_store)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
var/obj/item/weapon/card/id/W = new(M)
diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm
index c52adc42c2c..bc6aebd7a3a 100644
--- a/code/modules/awaymissions/corpse.dm
+++ b/code/modules/awaymissions/corpse.dm
@@ -260,7 +260,7 @@
corpsehelmet = /obj/item/clothing/head/centhat
corpsegloves = /obj/item/clothing/gloves/combat
corpseshoes = /obj/item/clothing/shoes/combat/swat
- corpsepocket1 = /obj/item/weapon/lighter/zippo
+ corpsepocket1 = /obj/item/weapon/lighter
corpseid = 1
corpseidjob = "Commander"
corpseidaccess = "Captain"
diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm
index 46881e3cb1f..aeeb2713757 100644
--- a/code/modules/client/client procs.dm
+++ b/code/modules/client/client procs.dm
@@ -233,7 +233,7 @@ var/next_external_rsc = 0
query_watch.Execute()
if(query_watch.NextRow())
message_admins("Notice: [key_name_admin(src)] is flagged for watching and has just connected - Reason: [query_watch.item[2]]")
- send2irc_adminless_only("Watchlist", "[key_name_admin(src)] is flagged for watching and has just connected - Reason: [query_watch.item[2]]")
+ send2irc_adminless_only("Watchlist", "[key_name(src)] is flagged for watching and has just connected - Reason: [query_watch.item[2]]")
var/admin_rank = "Player"
if (src.holder && src.holder.rank)
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index 049e675e104..c655ee34d45 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -39,7 +39,7 @@
name = "glasses"
icon = 'icons/obj/clothing/glasses.dmi'
w_class = 2.0
- flags = GLASSESCOVERSEYES
+ flags_cover = GLASSESCOVERSEYES
slot_flags = SLOT_EYES
var/vision_flags = 0
var/darkness_view = 2//Base human is 2
@@ -167,7 +167,7 @@ BLIND // can't see anything
name = "space helmet"
icon_state = "spaceold"
desc = "A special helmet with solar UV shielding to protect your eyes from harmful rays."
- flags = HEADCOVERSEYES | BLOCKHAIR | HEADCOVERSMOUTH | STOPSPRESSUREDMAGE | THICKMATERIAL
+ flags = BLOCKHAIR | STOPSPRESSUREDMAGE | THICKMATERIAL
item_state = "spaceold"
permeability_coefficient = 0.01
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50)
@@ -179,6 +179,7 @@ BLIND // can't see anything
flash_protect = 2
strip_delay = 50
put_on_delay = 50
+ flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
/obj/item/clothing/suit/space
name = "space suit"
diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm
index ef549cf4acb..8f5cc495877 100644
--- a/code/modules/clothing/head/helmet.dm
+++ b/code/modules/clothing/head/helmet.dm
@@ -2,7 +2,7 @@
name = "helmet"
desc = "Standard Security gear. Protects the head from impacts."
icon_state = "helmet"
- flags = HEADCOVERSEYES | HEADBANGPROTECT
+ flags = HEADBANGPROTECT
item_state = "helmet"
armor = list(melee = 25, bullet = 15, laser = 25,energy = 10, bomb = 25, bio = 0, rad = 0)
flags_inv = HIDEEARS|HIDEEYES
@@ -14,6 +14,7 @@
var/obj/machinery/camera/portable/helmetCam = null
var/spawnWithHelmetCam = 0
var/canAttachCam = 0
+ flags_cover = HEADCOVERSEYES
/obj/item/clothing/head/helmet/New()
@@ -49,7 +50,7 @@
toggle_message = "You pull the visor down on"
alt_toggle_message = "You push the visor up on"
can_toggle = 1
- flags = HEADCOVERSEYES|HEADCOVERSMOUTH|HEADBANGPROTECT
+ flags = HEADBANGPROTECT
armor = list(melee = 41, bullet = 15, laser = 5,energy = 5, bomb = 5, bio = 2, rad = 0)
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
strip_delay = 80
@@ -57,6 +58,7 @@
visor_flags = HEADCOVERSEYES|HEADCOVERSMOUTH
visor_flags_inv = HIDEMASK|HIDEEYES|HIDEFACE
toggle_cooldown = 0
+ flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
/obj/item/clothing/head/helmet/attack_self()
if(usr.canmove && !usr.stat && !usr.restrained() && can_toggle)
@@ -126,7 +128,7 @@
/obj/item/clothing/head/helmet/roman
name = "roman helmet"
desc = "An ancient helmet made of bronze and leather."
- flags = HEADCOVERSEYES
+ flags_cover = HEADCOVERSEYES
armor = list(melee = 25, bullet = 0, laser = 25, energy = 10, bomb = 10, bio = 0, rad = 0)
icon_state = "roman"
item_state = "roman"
@@ -142,15 +144,16 @@
name = "gladiator helmet"
desc = "Ave, Imperator, morituri te salutant."
icon_state = "gladiator"
- flags = HEADCOVERSEYES|BLOCKHAIR
+ flags = BLOCKHAIR
item_state = "gladiator"
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES
+ flags_cover = HEADCOVERSEYES
/obj/item/clothing/head/helmet/redtaghelm
name = "red laser tag helmet"
desc = "They have chosen their own end."
icon_state = "redtaghelm"
- flags = HEADCOVERSEYES
+ flags_cover = HEADCOVERSEYES
item_state = "redtaghelm"
armor = list(melee = 15, bullet = 10, laser = 20,energy = 10, bomb = 20, bio = 0, rad = 0)
// Offer about the same protection as a hardhat.
@@ -160,7 +163,7 @@
name = "blue laser tag helmet"
desc = "They'll need more men."
icon_state = "bluetaghelm"
- flags = HEADCOVERSEYES
+ flags_cover = HEADCOVERSEYES
item_state = "bluetaghelm"
armor = list(melee = 15, bullet = 10, laser = 20,energy = 10, bomb = 20, bio = 0, rad = 0)
// Offer about the same protection as a hardhat.
diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm
index d19c7b7397c..7d2d81b6fa9 100644
--- a/code/modules/clothing/head/jobs.dm
+++ b/code/modules/clothing/head/jobs.dm
@@ -47,7 +47,8 @@
name = "nun hood"
desc = "Maximum piety in this star system."
icon_state = "nun_hood"
- flags = HEADCOVERSEYES|BLOCKHAIR
+ flags = BLOCKHAIR
+ flags_cover = HEADCOVERSEYES
/obj/item/clothing/head/det_hat
name = "detective's fedora"
diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm
index 7130556f958..e7fc2072172 100644
--- a/code/modules/clothing/head/misc.dm
+++ b/code/modules/clothing/head/misc.dm
@@ -41,7 +41,8 @@
name = "hastur's hood"
desc = "It's unspeakably stylish."
icon_state = "hasturhood"
- flags = HEADCOVERSEYES|BLOCKHAIR
+ flags = BLOCKHAIR
+ flags_cover = HEADCOVERSEYES
/obj/item/clothing/head/nursehat
name = "nurse's hat"
@@ -68,7 +69,7 @@
desc = "A helmet made out of a box."
icon_state = "cardborg_h"
item_state = "cardborg_h"
- flags = HEADCOVERSEYES
+ flags_cover = HEADCOVERSEYES
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
/obj/item/clothing/head/justice
@@ -76,7 +77,8 @@
desc = "Fight for what's righteous!"
icon_state = "justicered"
item_state = "justicered"
- flags = HEADCOVERSEYES|BLOCKHAIR
+ flags = BLOCKHAIR
+ flags_cover = HEADCOVERSEYES
/obj/item/clothing/head/justice/blue
icon_state = "justiceblue"
diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm
index 6eee2eaf8a0..fa58e31116a 100644
--- a/code/modules/clothing/head/misc_special.dm
+++ b/code/modules/clothing/head/misc_special.dm
@@ -15,7 +15,7 @@
name = "welding helmet"
desc = "A head-mounted face cover designed to protect the wearer completely from space-arc eye."
icon_state = "welding"
- flags = HEADCOVERSEYES | HEADCOVERSMOUTH
+ flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
item_state = "welding"
m_amt = 1750
g_amt = 400
@@ -47,7 +47,7 @@
name = "cake-hat"
desc = "It's tasty looking!"
icon_state = "cake0"
- flags = HEADCOVERSEYES
+ flags_cover = HEADCOVERSEYES
var/onfire = 0.0
var/status = 0
var/fire_resist = T0C+1300 //this is the max temp it can stand before you start to cook. although it might not burn away, you take damage
@@ -116,11 +116,12 @@
icon_state = "hardhat0_pumpkin"
item_state = "hardhat0_pumpkin"
item_color = "pumpkin"
- flags = HEADCOVERSEYES | BLOCKHAIR
+ flags = BLOCKHAIR
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
action_button_name = "Toggle Pumpkin Light"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
brightness_on = 2 //luminosity when on
+ flags_cover = HEADCOVERSEYES
/*
* Kitty ears
diff --git a/code/modules/clothing/masks/breath.dm b/code/modules/clothing/masks/breath.dm
index 4735d9325b9..a3b54c55779 100644
--- a/code/modules/clothing/masks/breath.dm
+++ b/code/modules/clothing/masks/breath.dm
@@ -4,13 +4,14 @@
icon_state = "breath"
item_state = "m_mask"
body_parts_covered = 0
- flags = MASKCOVERSMOUTH | MASKINTERNALS
+ flags = MASKINTERNALS
visor_flags = MASKCOVERSMOUTH | MASKINTERNALS
w_class = 2
gas_transfer_coefficient = 0.10
permeability_coefficient = 0.50
action_button_name = "Adjust Breath Mask"
ignore_maskadjust = 0
+ flags_cover = MASKCOVERSMOUTH
/obj/item/clothing/mask/breath/attack_self(var/mob/user)
adjustmask(user)
diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm
index bf59b9d3278..f1d415357bf 100644
--- a/code/modules/clothing/masks/gasmask.dm
+++ b/code/modules/clothing/masks/gasmask.dm
@@ -2,12 +2,13 @@
name = "gas mask"
desc = "A face-covering mask that can be connected to an air supply. While good for concealing your identity, it isn't good for blocking gas flow." //More accurate
icon_state = "gas_alt"
- flags = MASKCOVERSMOUTH | MASKCOVERSEYES | BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
+ flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE
w_class = 3.0
item_state = "gas_alt"
gas_transfer_coefficient = 0.01
permeability_coefficient = 0.01
+ flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH
// **** Welding gas mask ****
@@ -47,10 +48,11 @@
icon_state = "sechailer"
var/aggressiveness = 2
ignore_maskadjust = 0
- flags = MASKCOVERSMOUTH | BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
+ flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
flags_inv = HIDEFACE
visor_flags = MASKCOVERSMOUTH | BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
visor_flags_inv = HIDEFACE
+ flags_cover = MASKCOVERSMOUTH
/obj/item/clothing/mask/gas/sechailer/swat
name = "\improper SWAT mask"
@@ -222,9 +224,10 @@
/obj/item/clothing/mask/gas/clown_hat
name = "clown wig and mask"
desc = "A true prankster's facial attire. A clown is incomplete without his wig and mask."
- flags = MASKCOVERSEYES | BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
+ flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
icon_state = "clown"
item_state = "clown_hat"
+ flags_cover = MASKCOVERSEYES
/obj/item/clothing/mask/gas/clown_hat/attack_self(mob/user)
@@ -245,30 +248,34 @@
/obj/item/clothing/mask/gas/sexyclown
name = "sexy-clown wig and mask"
desc = "A feminine clown mask for the dabbling crossdressers or female entertainers."
- flags = MASKCOVERSEYES | BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
+ flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
icon_state = "sexyclown"
item_state = "sexyclown"
+ flags_cover = MASKCOVERSEYES
/obj/item/clothing/mask/gas/mime
name = "mime mask"
desc = "The traditional mime's mask. It has an eerie facial posture."
- flags = MASKCOVERSEYES | BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
+ flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
icon_state = "mime"
item_state = "mime"
+ flags_cover = MASKCOVERSEYES
/obj/item/clothing/mask/gas/monkeymask
name = "monkey mask"
desc = "A mask used when acting as a monkey."
- flags = MASKCOVERSEYES | BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
+ flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
icon_state = "monkeymask"
item_state = "monkeymask"
+ flags_cover = MASKCOVERSEYES
/obj/item/clothing/mask/gas/sexymime
name = "sexy mime mask"
desc = "A traditional female mime's mask."
- flags = MASKCOVERSEYES | BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
+ flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
icon_state = "sexymime"
item_state = "sexymime"
+ flags_cover = MASKCOVERSEYES
/obj/item/clothing/mask/gas/death_commando
name = "Death Commando Mask"
@@ -283,5 +290,6 @@
/obj/item/clothing/mask/gas/owl_mask
name = "owl mask"
desc = "Twoooo!"
- flags = MASKCOVERSEYES | BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
- icon_state = "owl"
\ No newline at end of file
+ flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
+ icon_state = "owl"
+ flags_cover = MASKCOVERSEYES
\ No newline at end of file
diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm
index dc9c31861c7..46e72e75908 100644
--- a/code/modules/clothing/masks/miscellaneous.dm
+++ b/code/modules/clothing/masks/miscellaneous.dm
@@ -3,7 +3,7 @@
desc = "To stop that awful noise."
icon_state = "muzzle"
item_state = "blindfold"
- flags = MASKCOVERSMOUTH
+ flags_cover = MASKCOVERSMOUTH
w_class = 2
gas_transfer_coefficient = 0.90
put_on_delay = 20
@@ -22,7 +22,7 @@
icon_state = "sterile"
item_state = "sterile"
w_class = 1
- flags = MASKCOVERSMOUTH
+ flags_cover = MASKCOVERSMOUTH
flags_inv = HIDEFACE
visor_flags = MASKCOVERSMOUTH
visor_flags_inv = HIDEFACE
@@ -111,7 +111,7 @@
name = "botany bandana"
desc = "A fine bandana with nanotech lining and a hydroponics pattern."
w_class = 1
- flags = MASKCOVERSMOUTH
+ flags_cover = MASKCOVERSMOUTH
flags_inv = HIDEFACE
visor_flags = MASKCOVERSMOUTH
visor_flags_inv = HIDEFACE
diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm
index 352482476a1..06bdfc347d6 100644
--- a/code/modules/clothing/spacesuits/hardsuit.dm
+++ b/code/modules/clothing/spacesuits/hardsuit.dm
@@ -12,7 +12,8 @@
var/on = 0
item_color = "engineering" //Determines used sprites: hardsuit[on]-[color] and hardsuit[on]-[color]2 (lying down sprite)
action_button_name = "Toggle Helmet Light"
- flags = HEADCOVERSEYES | BLOCKHAIR | HEADCOVERSMOUTH | STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP
+ flags = BLOCKHAIR | STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP
+ flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
/obj/item/clothing/head/helmet/space/hardsuit/attack_self(mob/user)
@@ -162,7 +163,8 @@
on = 0
var/obj/item/clothing/suit/space/hardsuit/syndi/linkedsuit = null
action_button_name = "Toggle Helmet Mode"
- flags = HEADCOVERSEYES | BLOCKHAIR | HEADCOVERSMOUTH | STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP
+ flags = BLOCKHAIR | STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP
+ flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
/obj/item/clothing/head/helmet/space/hardsuit/syndi/update_icon()
icon_state = "hardsuit[on]-[item_color]"
@@ -182,7 +184,8 @@
name = initial(name)
desc = initial(desc)
user.AddLuminosity(brightness_on)
- flags |= HEADCOVERSEYES | HEADCOVERSMOUTH | STOPSPRESSUREDMAGE
+ flags |= STOPSPRESSUREDMAGE
+ flags_cover |= HEADCOVERSEYES | HEADCOVERSMOUTH
flags_inv |= HIDEMASK|HIDEEYES|HIDEFACE
cold_protection |= HEAD
else
@@ -190,7 +193,8 @@
name += " (combat)"
desc = alt_desc
user.AddLuminosity(-brightness_on)
- flags &= ~(HEADCOVERSEYES| HEADCOVERSMOUTH | STOPSPRESSUREDMAGE)
+ flags &= ~(STOPSPRESSUREDMAGE)
+ flags_cover &= ~(HEADCOVERSEYES | HEADCOVERSMOUTH)
flags_inv &= ~(HIDEMASK|HIDEEYES|HIDEFACE)
cold_protection &= ~HEAD
update_icon()
diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm
index 9fedcc0e3a8..2f7f85299e6 100644
--- a/code/modules/clothing/spacesuits/miscellaneous.dm
+++ b/code/modules/clothing/spacesuits/miscellaneous.dm
@@ -96,7 +96,8 @@
name = "Santa's hat"
desc = "Ho ho ho. Merrry X-mas!"
icon_state = "santahat"
- flags = HEADCOVERSEYES | BLOCKHAIR | STOPSPRESSUREDMAGE
+ flags = BLOCKHAIR | STOPSPRESSUREDMAGE
+ flags_cover = HEADCOVERSEYES
/obj/item/clothing/suit/space/santa
name = "Santa's suit"
@@ -115,9 +116,10 @@
icon_state = "pirate"
item_state = "pirate"
armor = list(melee = 30, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
- flags = HEADCOVERSEYES | BLOCKHAIR | STOPSPRESSUREDMAGE
+ flags = BLOCKHAIR | STOPSPRESSUREDMAGE
strip_delay = 40
put_on_delay = 20
+ flags_cover = HEADCOVERSEYES
/obj/item/clothing/suit/space/pirate
name = "pirate coat"
@@ -141,8 +143,9 @@
item_color = "ert_commander"
armor = list(melee = 65, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 100, rad = 100)
strip_delay = 130
- flags = HEADCOVERSEYES | BLOCKHAIR | HEADCOVERSMOUTH | STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP
+ flags = BLOCKHAIR | STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP
brightness_on = 7
+ flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
/obj/item/clothing/suit/space/hardsuit/ert
name = "emergency response team suit"
diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm
index b3e05df12ce..51ff7384a99 100644
--- a/code/modules/clothing/spacesuits/plasmamen.dm
+++ b/code/modules/clothing/spacesuits/plasmamen.dm
@@ -39,9 +39,10 @@
icon_state = "plasmaman_helmet0-plasma"
item_color = "plasma" //needed for the helmet lighting
item_state = "plasmaman_helmet0"
- flags = HEADCOVERSEYES | BLOCKHAIR | HEADCOVERSMOUTH | STOPSPRESSUREDMAGE | THICKMATERIAL
+ flags = BLOCKHAIR | STOPSPRESSUREDMAGE | THICKMATERIAL
//Removed the NODROP from /helmet/space/hardsuit.
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES
//Removed the HIDEFACE from /helmet/space/hardsuit
basestate = "plasmaman_helmet"
+ flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm
index 7d75bef57d4..1cf684ab76d 100644
--- a/code/modules/clothing/suits/bio.dm
+++ b/code/modules/clothing/suits/bio.dm
@@ -4,10 +4,11 @@
icon_state = "bio"
desc = "A hood that protects the head and face from biological comtaminants."
permeability_coefficient = 0.01
- flags = HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR|THICKMATERIAL
+ flags = BLOCKHAIR|THICKMATERIAL
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20)
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES
unacidable = 1
+ flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
/obj/item/clothing/suit/bio_suit
name = "bio suit"
diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm
index c32db545664..a4d69048234 100644
--- a/code/modules/clothing/suits/utility.dm
+++ b/code/modules/clothing/suits/utility.dm
@@ -55,7 +55,7 @@
name = "bomb hood"
desc = "Use in case of bomb."
icon_state = "bombsuit"
- flags = HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR|THICKMATERIAL
+ flags = BLOCKHAIR|THICKMATERIAL
armor = list(melee = 20, bullet = 0, laser = 20,energy = 10, bomb = 100, bio = 0, rad = 0)
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES
cold_protection = HEAD
@@ -64,6 +64,7 @@
max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT
strip_delay = 70
put_on_delay = 70
+ flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
/obj/item/clothing/suit/bomb_suit
@@ -105,10 +106,11 @@
name = "radiation hood"
icon_state = "rad"
desc = "A hood with radiation protective properties. The label reads, 'Made with lead. Please do not consume insulation.'"
- flags = HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR|THICKMATERIAL
+ flags = BLOCKHAIR|THICKMATERIAL
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100)
strip_delay = 60
put_on_delay = 60
+ flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
/obj/item/clothing/suit/radiation
diff --git a/code/modules/mining/abandoned_crates.dm b/code/modules/mining/abandoned_crates.dm
new file mode 100644
index 00000000000..1e38491439f
--- /dev/null
+++ b/code/modules/mining/abandoned_crates.dm
@@ -0,0 +1,212 @@
+//Originally coded by ISaidNo, later modified by Kelenius. Ported from Baystation12.
+
+/obj/structure/closet/crate/secure/loot
+ name = "abandoned crate"
+ desc = "What could be inside?"
+ icon_crate = "securecrate"
+ icon_state = "securecrate"
+ var/code = null
+ var/lastattempt = null
+ var/attempts = 10
+ var/codelen = 4
+ locked = 1
+
+/obj/structure/closet/crate/secure/loot/New()
+ ..()
+ var/list/digits = list("1", "2", "3", "4", "5", "6", "7", "8", "9", "0")
+
+ code = ""
+ for(var/i = 0, i < codelen, i++)
+ var/dig = pick(digits)
+ code += dig
+ digits -= dig //Player can enter codes with matching digits, but there are never matching digits in the answer
+
+ var/loot = rand(1,100) //100 different crates with varying chances of spawning
+ switch(loot)
+ if(1 to 5) //5% chance
+ new /obj/item/weapon/reagent_containers/food/drinks/bottle/rum(src)
+ new /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia(src)
+ new /obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey(src)
+ new /obj/item/weapon/lighter(src)
+ if(6 to 10)
+ new /obj/item/weapon/bedsheet(src)
+ new /obj/item/weapon/kitchen/knife(src)
+ new /obj/item/weapon/wirecutters(src)
+ new /obj/item/weapon/screwdriver(src)
+ new /obj/item/weapon/weldingtool(src)
+ new /obj/item/weapon/hatchet(src)
+ new /obj/item/weapon/crowbar(src)
+ if(11 to 15)
+ new /obj/item/weapon/reagent_containers/glass/beaker/bluespace(src)
+ if(16 to 20)
+ for(var/i = 0, i < 10, i++)
+ new /obj/item/weapon/ore/diamond(src)
+ if(21 to 25)
+ for(var/i = 0, i < 5, i++)
+ new /obj/item/weapon/contraband/poster(src)
+ if(26 to 30)
+ for(var/i = 0, i < 3, i++)
+ new /obj/item/weapon/reagent_containers/glass/beaker/noreact(src)
+ if(31 to 35)
+ new /obj/item/seeds/cashseed(src)
+ if(36 to 40)
+ new /obj/item/weapon/melee/baton(src)
+ if(41 to 45)
+ new /obj/item/clothing/under/shorts/red(src)
+ new /obj/item/clothing/under/shorts/blue(src)
+ if(46 to 50)
+ new /obj/item/clothing/under/chameleon(src)
+ for(var/i = 0, i < 7, i++)
+ new /obj/item/clothing/tie/horrible(src)
+ if(51 to 52) // 2% chance
+ new /obj/item/weapon/melee/classic_baton(src)
+ if(53 to 54)
+ new /obj/item/toy/balloon(src)
+ if(55 to 56)
+ var/newitem = pick(typesof(/obj/item/toy/prize) - /obj/item/toy/prize)
+ new newitem(src)
+ if(57 to 58)
+ new /obj/item/toy/syndicateballoon(src)
+ if(59 to 60)
+ new /obj/item/weapon/pickaxe/drill(src)
+ new /obj/item/device/taperecorder(src)
+ new /obj/item/clothing/suit/space(src)
+ new /obj/item/clothing/head/helmet/space(src)
+ if(61 to 62)
+ for(var/i = 0, i < 12, ++i)
+ new /obj/item/clothing/head/kitty(src)
+ if(63 to 64)
+ var/t = rand(4,7)
+ for(var/i = 0, i < t, ++i)
+ var/newcoin = pick(/obj/item/weapon/coin/silver, /obj/item/weapon/coin/silver, /obj/item/weapon/coin/silver, /obj/item/weapon/coin/iron, /obj/item/weapon/coin/iron, /obj/item/weapon/coin/iron, /obj/item/weapon/coin/gold, /obj/item/weapon/coin/diamond, /obj/item/weapon/coin/plasma, /obj/item/weapon/coin/uranium)
+ new newcoin(src)
+ if(65 to 66)
+ new /obj/item/clothing/suit/ianshirt(src)
+ if(67 to 68)
+ var/t = rand(4,7)
+ for(var/i = 0, i < t, ++i)
+ var /newitem = pick(typesof(/obj/item/weapon/stock_parts) - /obj/item/weapon/stock_parts - /obj/item/weapon/stock_parts/subspace)
+ new newitem(src)
+ if(69 to 70)
+ for(var/i = 0, i < 5, ++i)
+ new /obj/item/bluespace_crystal(src)
+ if(71 to 72)
+ new /obj/item/weapon/pickaxe/drill(src)
+ if(73 to 74)
+ new /obj/item/weapon/pickaxe/drill/jackhammer(src)
+ if(75 to 76)
+ new /obj/item/weapon/pickaxe/diamond(src)
+ if(77 to 78)
+ new /obj/item/weapon/pickaxe/drill/diamonddrill(src)
+ if(79 to 80)
+ new /obj/item/weapon/cane(src)
+ new /obj/item/clothing/head/collectable/tophat(src)
+ if(81 to 82)
+ new /obj/item/weapon/gun/energy/plasmacutter(src)
+ if(83 to 84)
+ new /obj/item/toy/katana(src)
+ if(85 to 86)
+ new /obj/item/weapon/defibrillator/compact(src)
+ if(87) //1% chance
+ new /obj/item/weed_extract(src)
+ if(88)
+ new /obj/item/organ/brain(src)
+ if(89)
+ new /obj/item/organ/brain/alien(src)
+ if(90)
+ new /obj/item/organ/heart(src)
+ if(91)
+ new /obj/item/device/soulstone/anybody(src)
+ if(92)
+ new /obj/item/weapon/katana(src)
+ if(93)
+ new /obj/item/weapon/dnainjector/xraymut(src)
+ if(94)
+ new /obj/item/weapon/storage/backpack/clown(src)
+ new /obj/item/clothing/under/rank/clown(src)
+ new /obj/item/clothing/shoes/clown_shoes(src)
+ new /obj/item/device/pda/clown(src)
+ new /obj/item/clothing/mask/gas/clown_hat(src)
+ new /obj/item/weapon/bikehorn(src)
+ new /obj/item/toy/crayon/rainbow(src)
+ new /obj/item/weapon/reagent_containers/spray/waterflower(src)
+ if(95)
+ new /obj/item/clothing/under/rank/mime(src)
+ new /obj/item/clothing/shoes/sneakers/black(src)
+ new /obj/item/device/pda/mime(src)
+ new /obj/item/clothing/gloves/color/white(src)
+ new /obj/item/clothing/mask/gas/mime(src)
+ new /obj/item/clothing/head/beret(src)
+ new /obj/item/clothing/suit/suspenders(src)
+ new /obj/item/toy/crayon/mime(src)
+ new /obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofnothing(src)
+ if(96)
+ new /obj/item/weapon/hand_tele(src)
+ if(97)
+ new /obj/item/clothing/mask/balaclava
+ new /obj/item/weapon/gun/projectile/automatic/pistol(src)
+ new /obj/item/ammo_box/magazine/m10mm(src)
+ if(98)
+ new /obj/item/weapon/katana/cursed(src)
+ if(99)
+ new /obj/item/weapon/storage/belt/champion(src)
+ new /obj/item/clothing/mask/luchador(src)
+ if(100)
+ new /obj/item/clothing/head/bearpelt(src)
+
+/obj/structure/closet/crate/secure/loot/attack_hand(mob/user as mob)
+ if(locked)
+ user << "The crate is locked with a Deca-code lock."
+ var/input = input(usr, "Enter [codelen] digits.", "Deca-Code Lock", "") as text
+ if(user.canUseTopic(src, 1))
+ if (input == code)
+ user << "The crate unlocks!"
+ locked = 0
+ overlays.Cut()
+ overlays += greenlight
+ else if (input == null || length(input) != codelen)
+ user << "You leave the crate alone."
+ else
+ user << "A red light flashes."
+ lastattempt = input
+ attempts--
+ if (attempts == 0)
+ user << "The crate's anti-tamper system activates!"
+ var/turf/T = get_turf(src.loc)
+ explosion(T, -1, -1, 1, 1)
+ qdel(src)
+ return
+ else
+ return ..()
+
+/obj/structure/closet/crate/secure/loot/attackby(obj/item/weapon/W as obj, mob/user as mob)
+ if(locked)
+ if (istype(W, /obj/item/weapon/card/emag))
+ user << "The crate's anti-tamper system activates!"
+ var/turf/T = get_turf(src.loc)
+ explosion(T, -1, -1, 1, 1)
+ qdel(src)
+ return
+ if (istype(W, /obj/item/device/multitool))
+ user << "DECA-CODE LOCK REPORT:"
+ if (attempts == 1)
+ user << "* Anti-Tamper Bomb will activate on next failed access attempt."
+ else
+ user << "* Anti-Tamper Bomb will activate after [src.attempts] failed access attempts."
+ if (lastattempt != null)
+ var/list/guess = list()
+ var/bulls = 0
+ var/cows = 0
+ for(var/i = 1, i < codelen + 1, i++)
+ var/a = copytext(lastattempt, i, i+1) //Stuff the code into the list
+ guess += a
+ guess[a] = i
+ for(var/i in guess) //Go through list and count matches
+ var/a = findtext(code, i)
+ if(a == guess[i])
+ ++bulls
+ else if(a)
+ ++cows
+ user << "Last code attempt had [bulls] correct digits at correct positions and [cows] correct digits at incorrect positions."
+ else ..()
+ else ..()
diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm
index 9670240e4aa..1b58d61fb27 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm
@@ -84,7 +84,9 @@
overlays.Cut()
if(stat == DEAD)
icon_state = "queen_dead"
- else if(stat == UNCONSCIOUS || lying || resting)
+ else if((stat == UNCONSCIOUS && !sleeping) || weakened)
+ icon_state = "queen_l"
+ else if(sleeping || lying || resting)
icon_state = "queen_sleep"
else
icon_state = "queen_s"
diff --git a/code/modules/mob/living/carbon/alien/life.dm b/code/modules/mob/living/carbon/alien/life.dm
index 39b9a267f9e..f081e566f3a 100644
--- a/code/modules/mob/living/carbon/alien/life.dm
+++ b/code/modules/mob/living/carbon/alien/life.dm
@@ -64,4 +64,5 @@
return 1
/mob/living/carbon/alien/CheckStamina()
+ setStaminaLoss(max((staminaloss - 2), 0))
return
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm
index 7ff98ab7531..c053d20c090 100644
--- a/code/modules/mob/living/carbon/alien/special/facehugger.dm
+++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm
@@ -15,9 +15,10 @@ var/const/MAX_ACTIVE_TIME = 400
icon_state = "facehugger"
item_state = "facehugger"
w_class = 1 //note: can be picked up by aliens unlike most other items of w_class below 4
- flags = MASKCOVERSMOUTH | MASKCOVERSEYES | MASKINTERNALS
+ flags = MASKINTERNALS
throw_range = 5
tint = 3
+ flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH
var/stat = CONSCIOUS //UNCONSCIOUS is the idle state in this case
diff --git a/code/modules/mob/living/carbon/brain/brain_item.dm b/code/modules/mob/living/carbon/brain/brain_item.dm
index ed151132066..7a233cea9c2 100644
--- a/code/modules/mob/living/carbon/brain/brain_item.dm
+++ b/code/modules/mob/living/carbon/brain/brain_item.dm
@@ -51,7 +51,7 @@
return ..()
var/mob/living/carbon/human/H = M
- if(istype(M, /mob/living/carbon/human) && ((H.head && H.head.flags & HEADCOVERSEYES) || (H.wear_mask && H.wear_mask.flags & MASKCOVERSEYES) || (H.glasses && H.glasses.flags & GLASSESCOVERSEYES)))
+ if(istype(M, /mob/living/carbon/human) && ((H.head && H.head.flags_cover & HEADCOVERSEYES) || (H.wear_mask && H.wear_mask.flags_cover & MASKCOVERSEYES) || (H.glasses && H.glasses.flags & GLASSESCOVERSEYES)))
user << "You're going to need to remove their head cover first!"
return
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index d7038367204..937d13e4ec4 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -38,9 +38,10 @@
/mob/living/carbon/relaymove(var/mob/user, direction)
if(user in src.stomach_contents)
if(prob(40))
- audible_message("You hear something rumbling inside [src]'s stomach...", \
- "You hear something rumbling.", 4,\
- "Something is rumbling inside your stomach!")
+ if(prob(25))
+ audible_message("You hear something rumbling inside [src]'s stomach...", \
+ "You hear something rumbling.", 4,\
+ "Something is rumbling inside your stomach!")
var/obj/item/I = user.get_active_hand()
if(I && I.force)
var/d = rand(round(I.force / 4), I.force)
@@ -494,7 +495,7 @@ var/const/GALOSHES_DONT_HELP = 8
src << "You fail to break [I]!"
/mob/living/carbon/proc/is_mouth_covered(head_only = 0, mask_only = 0)
- if( (!mask_only && head && (head.flags & HEADCOVERSMOUTH)) || (!head_only && wear_mask && (wear_mask.flags & MASKCOVERSMOUTH)) )
+ if( (!mask_only && head && (head.flags_cover & HEADCOVERSMOUTH)) || (!head_only && wear_mask && (wear_mask.flags_cover & MASKCOVERSMOUTH)) )
return 1
/mob/living/carbon/get_standard_pixel_y_offset(lying = 0)
diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm
index 7c0773877c1..b6cb6f5181b 100644
--- a/code/modules/mob/living/carbon/human/human_damage.dm
+++ b/code/modules/mob/living/carbon/human/human_damage.dm
@@ -50,7 +50,7 @@
var/loose = 40
if(stat || (status_flags & FAKEDEATH))
multiplier = 2
- if(H.flags & (HEADCOVERSEYES | HEADCOVERSMOUTH) || H.flags_inv & (HIDEEYES | HIDEFACE))
+ if(H.flags_cover & (HEADCOVERSEYES | HEADCOVERSMOUTH) || H.flags_inv & (HIDEEYES | HIDEFACE))
loose = 0
return loose * multiplier
diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm
index 5beeeb3a847..151b8978dc8 100644
--- a/code/modules/mob/living/life.dm
+++ b/code/modules/mob/living/life.dm
@@ -62,6 +62,7 @@
return
/mob/living/proc/handle_mutations_and_radiation()
+ radiation = 0 //so radiation don't accumulate in simple animals
return
/mob/living/proc/handle_chemicals_in_body()
diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm
index 35d2a433f96..af8b231f78a 100644
--- a/code/modules/mob/living/living_defense.dm
+++ b/code/modules/mob/living/living_defense.dm
@@ -228,7 +228,7 @@
return 0
if (M.a_intent == "harm")
- if(M.is_muzzled() || (M.wear_mask && M.wear_mask.flags & MASKCOVERSMOUTH))
+ if(M.is_muzzled() || (M.wear_mask && M.wear_mask.flags_cover & MASKCOVERSMOUTH))
M << "You can't bite with your mouth covered!"
return 0
M.do_attack_animation(src)
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index e9bd8434232..8cace44236d 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -221,7 +221,7 @@
modules += new /obj/item/weapon/reagent_containers/dropper(src)
- var/obj/item/weapon/lighter/zippo/L = new /obj/item/weapon/lighter/zippo(src)
+ var/obj/item/weapon/lighter/L = new /obj/item/weapon/lighter(src)
L.lit = 1
modules += L
diff --git a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm
index 1bccd4f88a5..98253d6b5d5 100644
--- a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm
+++ b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm
@@ -49,7 +49,7 @@
if("Cannibalize")
if(D.health < D.maxHealth)
D.visible_message("[D] begins to cannibalize parts from [src].", "You begin to cannibalize parts from [src]...")
- if(do_after(D, 60,5,0))
+ if(do_after(D, 60,5,0, target = src))
D.visible_message("[D] repairs itself using [src]'s remains!", "You repair yourself using [src]'s remains.")
D.adjustBruteLoss(-src.maxHealth)
new /obj/effect/decal/cleanable/oil/streak(get_turf(src))
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm
index b4616ae9fb7..850f307f63b 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm
@@ -264,7 +264,7 @@
/obj/item/asteroid/hivelord_core
name = "hivelord remains"
- desc = "All that remains of a hivelord, it seems to be what allows it to break pieces of itself off without being hurt... its healing properties will soon become inert if not used quickly. Try not to think about what you're eating."
+ desc = "All that remains of a hivelord, it seems to be what allows it to break pieces of itself off without being hurt... its healing properties will soon become inert if not used quickly."
icon = 'icons/obj/food/food.dmi'
icon_state = "boiledrorocore"
var/inert = 0
@@ -285,10 +285,9 @@
user << "[src] are useless on the dead."
return
if(H != user)
- H.visible_message("[user] forces [H] to eat [src]... they quickly regenerate all injuries!")
+ H.visible_message("[user] forces [H] to apply [src]... they quickly regenerate all injuries!")
else
- user << "You chomp into [src], barely managing to hold it down, but feel amazingly refreshed in mere moments."
- playsound(src.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
+ user << "You start to smear [src] on yourself. It feels and smells disgusting, but you feel amazingly refreshed in mere moments."
H.revive()
qdel(src)
..()
diff --git a/code/modules/mob/living/simple_animal/revenant/revenant.dm b/code/modules/mob/living/simple_animal/revenant/revenant.dm
index c81bb72ee31..dc1137e62d5 100644
--- a/code/modules/mob/living/simple_animal/revenant/revenant.dm
+++ b/code/modules/mob/living/simple_animal/revenant/revenant.dm
@@ -18,6 +18,7 @@
response_help = "passes through"
response_disarm = "swings at"
response_harm = "punches"
+ 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 = INFINITY
harm_intent_damage = 5
diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm
index f7f81ef7c41..6d3ff27d7a9 100644
--- a/code/modules/mob/living/simple_animal/simple_animal.dm
+++ b/code/modules/mob/living/simple_animal/simple_animal.dm
@@ -201,6 +201,10 @@
if(!atmos_suitable)
adjustBruteLoss(unsuitable_atmos_damage)
+ else
+ if(atmos_requirements["min_oxy"] || atmos_requirements["min_tox"] || atmos_requirements["min_n2"] || atmos_requirements["min_co2"])
+ adjustBruteLoss(unsuitable_atmos_damage)
+
handle_temperature_damage()
/mob/living/simple_animal/proc/handle_temperature_damage()
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index 416fe4d1170..1ff60cfeffb 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -159,8 +159,8 @@ var/next_mob_id = 0
var/range = 7
if(hearing_distance)
range = hearing_distance
- var/msg = message
for(var/mob/M in get_hearers_in_view(range, src))
+ var/msg = message
if(self_message && M==src)
msg = self_message
M.show_message( msg, 2, deaf_message, 1)
diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm
index 3f2e156b2bf..5ec959df34f 100644
--- a/code/modules/paperwork/pen.dm
+++ b/code/modules/paperwork/pen.dm
@@ -69,12 +69,12 @@
if(..())
if(reagents.total_volume)
if(M.reagents)
- reagents.trans_to(M, 55)
+ reagents.trans_to(M, reagents.total_volume)
/obj/item/weapon/pen/sleepy/New()
- create_reagents(55)
- reagents.add_reagent("morphine", 30)
+ create_reagents(45)
+ reagents.add_reagent("morphine", 20)
reagents.add_reagent("mutetoxin", 15)
reagents.add_reagent("tirizene", 10)
..()
diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm
index 9a30df83891..90c60fc5769 100644
--- a/code/modules/power/singularity/singularity.dm
+++ b/code/modules/power/singularity/singularity.dm
@@ -358,18 +358,13 @@
/obj/singularity/proc/toxmob()
var/toxrange = 10
- var/toxdamage = 4
var/radiation = 15
var/radiationmin = 3
- if (src.energy>200)
- toxdamage = round(((src.energy-150)/50)*4,1)
- radiation = round(((src.energy-150)/50)*5,1)
- radiationmin = round((radiation/5),1)//
+ if (energy>200)
+ radiation += round((energy-150)/10,1)
+ radiationmin = round((radiation/5),1)
for(var/mob/living/M in view(toxrange, src.loc))
M.irradiate(rand(radiationmin,radiation))
- toxdamage = (toxdamage - (toxdamage*M.getarmor(null, "rad")))
- M.apply_effect(toxdamage, TOX)
- return
/obj/singularity/proc/combust_mobs()
diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm
index a51b81cf13c..f85d5dcc655 100644
--- a/code/modules/power/solar.dm
+++ b/code/modules/power/solar.dm
@@ -391,7 +391,7 @@
/obj/machinery/power/solar_control/attackby(I as obj, user as mob, params)
if(istype(I, /obj/item/weapon/screwdriver))
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
- if(do_after(user, 20))
+ if(do_after(user, 20, target = src))
if (src.stat & BROKEN)
user << "The broken glass falls out."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
diff --git a/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Food-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Food-Reagents.dm
index 7fd49928443..64ac0c3278b 100644
--- a/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Food-Reagents.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Food-Reagents.dm
@@ -176,10 +176,10 @@
//monkeys and humans can have masks
if( victim.wear_mask )
- if ( victim.wear_mask.flags & MASKCOVERSEYES )
+ if ( victim.wear_mask.flags_cover & MASKCOVERSEYES )
eyes_covered = 1
safe_thing = victim.wear_mask
- if ( victim.wear_mask.flags & MASKCOVERSMOUTH )
+ if ( victim.wear_mask.flags_cover & MASKCOVERSMOUTH )
mouth_covered = 1
safe_thing = victim.wear_mask
@@ -187,10 +187,10 @@
if(istype(victim, /mob/living/carbon/human))
var/mob/living/carbon/human/H = victim
if( H.head )
- if ( H.head.flags & MASKCOVERSEYES )
+ if ( H.head.flags_cover & MASKCOVERSEYES )
eyes_covered = 1
safe_thing = H.head
- if ( H.head.flags & MASKCOVERSMOUTH )
+ if ( H.head.flags_cover & MASKCOVERSMOUTH )
mouth_covered = 1
safe_thing = H.head
if(H.glasses)
diff --git a/code/modules/reagents/Chemistry-Reagents/Medicine-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Medicine-Reagents.dm
index d53b85db81d..0637664da4d 100644
--- a/code/modules/reagents/Chemistry-Reagents/Medicine-Reagents.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Medicine-Reagents.dm
@@ -704,10 +704,10 @@
M.adjustToxLoss(-1*REM)
M.adjustBruteLoss(-1*REM)
M.adjustFireLoss(-1*REM)
- M.AdjustParalysis(-1)
- M.AdjustStunned(-1)
- M.AdjustWeakened(-1)
- M.adjustStaminaLoss(-1.5*REM)
+ M.AdjustParalysis(-3)
+ M.AdjustStunned(-3)
+ M.AdjustWeakened(-3)
+ M.adjustStaminaLoss(-5*REM)
..()
/datum/reagent/medicine/stimulants/overdose_process(var/mob/living/M as mob)
diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm
index 8a8f5f1728b..f67392fab7d 100644
--- a/code/modules/reagents/reagent_containers/dropper.dm
+++ b/code/modules/reagents/reagent_containers/dropper.dm
@@ -2,7 +2,7 @@
name = "dropper"
desc = "A dropper. Holds up to 5 units."
icon = 'icons/obj/chemical.dmi'
- icon_state = "dropper0"
+ icon_state = "dropper"
amount_per_transfer_from_this = 5
possible_transfer_amounts = list(1, 2, 3, 4, 5)
volume = 5
@@ -28,10 +28,10 @@
var/obj/item/safe_thing = null
if(victim.wear_mask)
- if(victim.wear_mask.flags & MASKCOVERSEYES)
+ if(victim.wear_mask.flags_cover & MASKCOVERSEYES)
safe_thing = victim.wear_mask
if(victim.head)
- if(victim.head.flags & MASKCOVERSEYES)
+ if(victim.head.flags_cover & MASKCOVERSEYES)
safe_thing = victim.head
if(victim.glasses)
if(!safe_thing)
@@ -83,7 +83,8 @@
update_icon()
/obj/item/weapon/reagent_containers/dropper/update_icon()
- if(reagents.total_volume<=0)
- icon_state = "dropper0"
- else
- icon_state = "dropper1"
\ No newline at end of file
+ overlays.Cut()
+ if(reagents.total_volume)
+ var/image/filling = image('icons/obj/reagentfillings.dmi', src, "dropper")
+ filling.color = mix_color_from_reagents(reagents.reagent_list)
+ overlays += filling
\ No newline at end of file
diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm
index 9d7988c289e..ad9c064c873 100644
--- a/code/modules/reagents/reagent_containers/syringes.dm
+++ b/code/modules/reagents/reagent_containers/syringes.dm
@@ -180,7 +180,7 @@
/obj/item/weapon/reagent_containers/syringe/update_icon()
- var/rounded_vol = round(reagents.total_volume,5)
+ var/rounded_vol = min(round(reagents.total_volume,5), 15)
overlays.Cut()
if(ismob(loc))
var/injoverlay
@@ -195,12 +195,7 @@
if(reagents.total_volume)
var/image/filling = image('icons/obj/reagentfillings.dmi', src, "syringe10")
-
- switch(rounded_vol)
- if(5) filling.icon_state = "syringe5"
- if(10) filling.icon_state = "syringe10"
- if(15) filling.icon_state = "syringe15"
-
+ filling.icon_state = "syringe[rounded_vol]"
filling.color = mix_color_from_reagents(reagents.reagent_list)
overlays += filling
diff --git a/code/modules/surgery/helpers.dm b/code/modules/surgery/helpers.dm
index 662a4304d3e..4982c6bcc64 100644
--- a/code/modules/surgery/helpers.dm
+++ b/code/modules/surgery/helpers.dm
@@ -80,13 +80,13 @@
for(var/obj/item/clothing/I in list(C.back, C.wear_mask, C.head))
covered_locations |= I.body_parts_covered
face_covered |= I.flags_inv
- eyesmouth_covered |= I.flags
+ eyesmouth_covered |= I.flags_cover
if(ishuman(C))
var/mob/living/carbon/human/H = C
for(var/obj/item/I in list(H.wear_suit, H.w_uniform, H.shoes, H.belt, H.gloves, H.glasses, H.ears))
covered_locations |= I.body_parts_covered
face_covered |= I.flags_inv
- eyesmouth_covered |= I.flags
+ eyesmouth_covered |= I.flags_cover
switch(location)
if("head")
diff --git a/code/modules/surgery/organs/cybernetic_implants.dm b/code/modules/surgery/organs/cybernetic_implants.dm
index a54491e6f41..7230c1d0572 100644
--- a/code/modules/surgery/organs/cybernetic_implants.dm
+++ b/code/modules/surgery/organs/cybernetic_implants.dm
@@ -318,6 +318,7 @@
origin_tech = "materials=6;programming=3;biotech=6;syndicate=4"
var/revive_cost = 0
var/reviving = 0
+ var/cooldown = 0
/obj/item/cybernetic_implant/chest/reviver/function()
SSobj.processing |= src
@@ -333,22 +334,22 @@
spawn(30)
if(prob(90) && owner.getOxyLoss())
owner.adjustOxyLoss(-3)
- revive_cost += 0.1
+ revive_cost += 5
if(prob(75) && owner.getBruteLoss())
owner.adjustBruteLoss(-1)
- revive_cost += 0.5
+ revive_cost += 20
if(prob(75) && owner.getFireLoss())
owner.adjustFireLoss(-1)
- revive_cost += 0.5
+ revive_cost += 20
if(prob(40) && owner.getToxLoss())
owner.adjustToxLoss(-1)
- revive_cost++
+ revive_cost += 50
else
- revive_cost = (revive_cost * 100) + world.time
+ cooldown = revive_cost + world.time
reviving = 0
return
- if(revive_cost > world.time)
+ if(cooldown > world.time)
return
if(owner.stat != UNCONSCIOUS)
return
@@ -360,7 +361,11 @@
reviving = 1
/obj/item/cybernetic_implant/chest/reviver/emp_act(severity)
- revive_cost = world.time + 200
+ if(reviving)
+ revive_cost += 200
+ else
+ cooldown += 200
+
if(prob(50 / severity))
owner.heart_attack = 1
spawn(600 / severity)
diff --git a/html/changelog.html b/html/changelog.html
index 814d7a74dd7..929ed44f31f 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -55,6 +55,25 @@
-->
+
26 June 2015
+
Ikarrus updated:
+
+ - Added a couple of new gang tag resprites by Joan.
+
+
Kor updated:
+
+ - Summon Guns has returned to its former glory. The spell will once again create antagonists, now with the objective to steal as many guns as possible.
+ - Summon Guns once again costs a spell point, rather than granting one.
+
+
phil235 updated:
+
+ - Buffs traitor stimpack (and adrenalin implant) to be more efficient against stuns/knockdowns.
+
+
pudl updated:
+
+ - You can now play games of mastermind to unlock abandoned crates found throughout space.
+
+
25 June 2015
Iamgoofball updated:
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml
index b9f3ce4a05c..c9ad089f910 100644
--- a/html/changelogs/.all_changelog.yml
+++ b/html/changelogs/.all_changelog.yml
@@ -2968,3 +2968,16 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
- rscadd: A Macrobomb implant was added for 20 TC. It is the equivalent of injecting
20 microbombs.
- rscadd: Nuke Ops start with microbomb implants again.
+2015-06-26:
+ Ikarrus:
+ - imageadd: Added a couple of new gang tag resprites by Joan.
+ Kor:
+ - tweak: Summon Guns has returned to its former glory. The spell will once again
+ create antagonists, now with the objective to steal as many guns as possible.
+ - tweak: Summon Guns once again costs a spell point, rather than granting one.
+ phil235:
+ - tweak: Buffs traitor stimpack (and adrenalin implant) to be more efficient against
+ stuns/knockdowns.
+ pudl:
+ - rscadd: You can now play games of mastermind to unlock abandoned crates found
+ throughout space.
diff --git a/icons/effects/crayondecal.dmi b/icons/effects/crayondecal.dmi
index 3be0a965e70..0225a6349b6 100644
Binary files a/icons/effects/crayondecal.dmi and b/icons/effects/crayondecal.dmi differ
diff --git a/icons/obj/chemical.dmi b/icons/obj/chemical.dmi
index 42e1b95b2c0..e44ddedfcd4 100644
Binary files a/icons/obj/chemical.dmi and b/icons/obj/chemical.dmi differ
diff --git a/icons/obj/cigarettes.dmi b/icons/obj/cigarettes.dmi
index 8a22d33423e..517f220f2ba 100644
Binary files a/icons/obj/cigarettes.dmi and b/icons/obj/cigarettes.dmi differ
diff --git a/icons/obj/dropper.dmi b/icons/obj/dropper.dmi
deleted file mode 100644
index 40fa42fafd3..00000000000
Binary files a/icons/obj/dropper.dmi and /dev/null differ
diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi
index 787f929e923..194a21eecb6 100644
Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ
diff --git a/icons/obj/reagentfillings.dmi b/icons/obj/reagentfillings.dmi
index 594e646fa2d..52aea26c0cb 100644
Binary files a/icons/obj/reagentfillings.dmi and b/icons/obj/reagentfillings.dmi differ
diff --git a/icons/obj/syringe.dmi b/icons/obj/syringe.dmi
index 52fefa673d1..d9be4abbce7 100644
Binary files a/icons/obj/syringe.dmi and b/icons/obj/syringe.dmi differ
diff --git a/tgstation.dme b/tgstation.dme
index 4be3b7321c1..9f138489b88 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -1040,6 +1040,7 @@
#include "code\modules\library\lib_machines.dm"
#include "code\modules\library\lib_readme.dm"
#include "code\modules\lighting\lighting_system.dm"
+#include "code\modules\mining\abandoned_crates.dm"
#include "code\modules\mining\equipment_locker.dm"
#include "code\modules\mining\machine_input_output_plates.dm"
#include "code\modules\mining\machine_processing.dm"