diff --git a/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm b/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm index bbac1ae4e8d9..29ad64707d84 100644 --- a/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm +++ b/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm @@ -237,14 +237,6 @@ light_range = 2 }, /area/ruin/beach/float_resort/villa) -"gr" = ( -/obj/structure/table/wood, -/obj/structure/curtain/cloth, -/obj/item/nullrod/tribal_knife, -/turf/open/floor/wood{ - light_range = 2 - }, -/area/ruin/beach/float_resort/villa) "gQ" = ( /obj/structure/flora/ausbushes/genericbush, /turf/open/floor/plating/grass/beach, @@ -2502,7 +2494,7 @@ kp kp kp kp -gr +ar OH OH OH diff --git a/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm b/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm index dee3343b8d78..83f661365941 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm @@ -5611,7 +5611,7 @@ /area/overmap_encounter/planetoid/jungle/explored) "LM" = ( /obj/structure/closet, -/obj/item/clothing/suit/armor/vest/capcarapace/ngr_captain, +/obj/item/clothing/suit/armor/ngr/captain, /obj/item/clothing/under/syndicate/ngr/officer, /obj/item/gun/ballistic/automatic/pistol, /obj/item/ammo_box/magazine/m10mm, @@ -7296,7 +7296,7 @@ /obj/effect/decal/remains/human, /obj/effect/decal/cleanable/vomit/old, /obj/item/clothing/under/syndicate/ngr/officer, -/obj/item/clothing/suit/armor/vest/capcarapace/ngr_captain, +/obj/item/clothing/suit/armor/ngr/captain, /obj/item/clothing/shoes/combat, /turf/open/floor/mineral/plastitanium, /area/ruin/jungle/starport/tower) diff --git a/_maps/RandomRuins/SpaceRuins/DJstation.dmm b/_maps/RandomRuins/SpaceRuins/DJstation.dmm deleted file mode 100644 index 63659db94417..000000000000 --- a/_maps/RandomRuins/SpaceRuins/DJstation.dmm +++ /dev/null @@ -1,932 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( -/turf/template_noop, -/area/template_noop) -"ab" = ( -/obj/structure/grille, -/turf/open/floor/plating/airless, -/area/ruin/space/djstation/solars) -"ac" = ( -/obj/machinery/power/solar/fake, -/obj/effect/turf_decal/solarpanel, -/turf/open/floor/plasteel/airless, -/area/ruin/space/djstation/solars) -"ad" = ( -/turf/open/floor/plating/airless, -/area/ruin/space/djstation/solars) -"ae" = ( -/obj/structure/lattice, -/turf/template_noop, -/area/space/nearstation) -"af" = ( -/turf/closed/wall, -/area/ruin/space/djstation) -"ag" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/ruin/space/djstation) -"ah" = ( -/turf/open/floor/plating, -/area/ruin/space/djstation) -"ai" = ( -/obj/machinery/telecomms/relay/preset/ruskie, -/obj/machinery/light/directional/north, -/turf/open/floor/plating, -/area/ruin/space/djstation) -"aj" = ( -/obj/machinery/power/terminal, -/turf/open/floor/plating, -/area/ruin/space/djstation) -"ak" = ( -/obj/item/multitool, -/turf/open/floor/plating, -/area/ruin/space/djstation) -"al" = ( -/obj/item/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 - }, -/turf/open/floor/plating, -/area/ruin/space/djstation) -"am" = ( -/obj/item/extinguisher, -/turf/open/floor/plating, -/area/ruin/space/djstation) -"as" = ( -/obj/structure/rack, -/obj/item/clothing/suit/space/syndicate/orange, -/obj/item/clothing/head/helmet/space/syndicate/orange, -/obj/item/clothing/mask/breath, -/turf/open/floor/plating, -/area/ruin/space/djstation) -"at" = ( -/obj/machinery/door/airlock/maintenance_hatch, -/turf/open/floor/plating, -/area/ruin/space/djstation) -"au" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"av" = ( -/obj/machinery/vending/snack, -/obj/machinery/light/small/directional/north, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"aw" = ( -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"ax" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"ay" = ( -/obj/machinery/newscaster/directional/north{ - pixel_y = 32 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"az" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/effect/turf_decal/corner/transparent/bar, -/obj/effect/turf_decal/corner/transparent/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"aA" = ( -/obj/effect/turf_decal/corner/transparent/bar, -/obj/effect/turf_decal/corner/transparent/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"aB" = ( -/obj/effect/spawner/lootdrop/crate_spawner, -/turf/open/floor/plasteel/grimy, -/area/ruin/space/djstation) -"aC" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/turf/open/floor/plasteel/grimy, -/area/ruin/space/djstation) -"aD" = ( -/obj/structure/bed, -/obj/item/bedsheet, -/turf/open/floor/plasteel/grimy, -/area/ruin/space/djstation) -"aE" = ( -/obj/structure/table, -/obj/item/flashlight/lamp, -/turf/open/floor/plasteel/grimy, -/area/ruin/space/djstation) -"aF" = ( -/obj/structure/table, -/obj/machinery/microwave{ - pixel_y = 8 - }, -/obj/effect/turf_decal/corner/transparent/bar, -/obj/effect/turf_decal/corner/transparent/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"aG" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Kitchen"; - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"aH" = ( -/obj/structure/table, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/obj/item/radio/intercom/table{ - dir = 8; - freerange = 1 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"aI" = ( -/obj/structure/chair/office/light, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"aJ" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Rest Room"; - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"aK" = ( -/turf/open/floor/plasteel/grimy, -/area/ruin/space/djstation) -"aL" = ( -/obj/machinery/sleeper{ - dir = 8 - }, -/turf/open/floor/plasteel/grimy, -/area/ruin/space/djstation) -"aM" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/obj/effect/turf_decal/corner/transparent/bar, -/obj/effect/turf_decal/corner/transparent/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"aN" = ( -/obj/machinery/light/small/directional/south, -/obj/effect/turf_decal/corner/transparent/bar, -/obj/effect/turf_decal/corner/transparent/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"aO" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/bar, -/obj/effect/turf_decal/corner/transparent/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"aP" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"aQ" = ( -/obj/structure/table, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/obj/item/radio/intercom/table{ - freerange = 1 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"aS" = ( -/obj/structure/frame/computer{ - anchored = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/ruin/space/djstation) -"aT" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/grimy, -/area/ruin/space/djstation) -"aU" = ( -/obj/machinery/light/small/directional/south, -/turf/open/floor/plasteel/grimy, -/area/ruin/space/djstation) -"aV" = ( -/obj/structure/closet, -/turf/open/floor/plasteel/grimy, -/area/ruin/space/djstation) -"aW" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/ruin/space/djstation) -"aX" = ( -/obj/machinery/door/airlock/hatch{ - name = "Washroom" - }, -/turf/open/floor/plasteel/freezer, -/area/ruin/space/djstation) -"aY" = ( -/obj/machinery/light/directional/east, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"aZ" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"ba" = ( -/turf/open/floor/plasteel/freezer, -/area/ruin/space/djstation) -"bb" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"bc" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/machinery/space_heater, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"bd" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/rack, -/obj/item/clothing/under/costume/pirate, -/obj/item/clothing/head/bandana, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"be" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plasteel/freezer, -/area/ruin/space/djstation) -"bf" = ( -/obj/structure/toilet{ - pixel_y = 8 - }, -/turf/open/floor/plasteel/freezer, -/area/ruin/space/djstation) -"bg" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/pen, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"bh" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_y = -32 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"bi" = ( -/obj/machinery/door/airlock/external{ - name = "Ruskie DJ Station" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plating, -/area/ruin/space/djstation) -"bj" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/structure/disposaloutlet, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"hc" = ( -/obj/machinery/power/smes/magical{ - desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; - name = "power storage unit" - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/ruin/space/djstation) -"lU" = ( -/obj/structure/table, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/obj/item/paper/fluff/ruins/djstation, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"nM" = ( -/obj/item/storage/box/lights/mixed, -/obj/structure/sign/warning/electricshock{ - pixel_y = -32 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/ruin/space/djstation) -"uK" = ( -/obj/machinery/power/apc{ - name = "Worn-out APC"; - pixel_y = -25 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/ruin/space/djstation) -"zO" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/ruin/space/djstation) -"Co" = ( -/obj/machinery/door/airlock/external{ - name = "Ruskie DJ Station" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ruin/space/djstation) -"Gg" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/ruin/space/djstation) - -(1,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -aa -af -ag -ag -ag -af -aa -ae -aa -aa -aa -"} -(2,1,1) = {" -aa -aa -aa -aa -aa -ab -ac -ad -ac -ad -ac -ab -aa -af -az -aF -aM -aW -aZ -aZ -aZ -bj -aa -"} -(3,1,1) = {" -aa -aa -aa -aa -aa -ab -ac -ad -ac -ad -ac -ab -aa -af -aA -aA -aN -af -ae -ae -aa -aa -aa -"} -(4,1,1) = {" -aa -aa -aa -aa -ae -ab -ac -ad -ac -ad -ac -ab -aa -af -aA -aA -aO -af -af -af -af -aa -aa -"} -(5,1,1) = {" -aa -aa -aa -ae -ae -ab -ac -ad -ac -ad -ac -ab -aa -af -aA -aA -aA -aX -ba -be -af -aa -aa -"} -(6,1,1) = {" -ab -ab -ab -ab -ab -af -ag -ag -af -ag -ag -af -af -af -ag -aG -ag -af -af -bf -af -aa -aa -"} -(7,1,1) = {" -ab -ac -ac -ac -ac -ag -ah -ah -ah -am -ah -uK -af -au -aw -aw -aw -aw -af -af -af -aa -aa -"} -(8,1,1) = {" -ab -ad -ad -ad -ad -ag -ah -ah -ah -ah -ah -nM -af -av -aw -aH -aP -aw -bb -bg -af -aa -aa -"} -(9,1,1) = {" -ab -ac -ac -ac -ac -af -ai -ah -aj -hc -Gg -zO -at -aw -aw -aI -aQ -aw -aw -aw -af -aa -aa -"} -(10,1,1) = {" -ab -ad -ad -ad -ad -ag -ah -ah -ak -ah -ah -ah -af -ax -aw -lU -aQ -aw -bc -bh -af -af -af -"} -(11,1,1) = {" -ab -ac -ac -ac -ac -ag -ah -ah -al -ah -ah -as -af -ay -aw -aw -aw -aY -bd -aw -bi -ah -Co -"} -(12,1,1) = {" -ab -ab -ab -ab -ab -af -ag -ag -af -ag -ag -af -af -af -ag -aJ -ag -af -af -af -af -af -af -"} -(13,1,1) = {" -aa -aa -ae -ae -ae -ab -ac -ad -ac -ad -ac -ab -aa -af -aB -aK -aS -af -aa -aa -aa -aa -aa -"} -(14,1,1) = {" -aa -aa -aa -aa -ae -ab -ac -ad -ac -ad -ac -ab -aa -af -aC -aK -aT -af -aa -aa -aa -aa -aa -"} -(15,1,1) = {" -aa -aa -aa -aa -ae -ab -ac -ad -ac -ad -ac -ab -aa -af -aD -aK -aU -af -ae -ae -aa -aa -aa -"} -(16,1,1) = {" -aa -aa -aa -aa -aa -ab -ac -ad -ac -ad -ac -ab -aa -af -aE -aL -aV -af -aa -aa -aa -aa -aa -"} -(17,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -aa -af -ag -ag -ag -af -aa -aa -aa -aa -aa -"} -(18,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ae -ae -aa -ae -aa -aa -ae -aa -aa -aa -aa -aa -aa -"} diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm index 8a63378ced3c..b6298e29f39d 100644 --- a/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm +++ b/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm @@ -35,7 +35,6 @@ /area/ruin/wasteplanet) "bL" = ( /obj/structure/fluff/divine/convertaltar, -/obj/item/nullrod/tribal_knife, /obj/item/clothing/accessory/pandora_hope, /turf/open/indestructible/hierophant/two/waste, /area/ruin/wasteplanet) diff --git a/_maps/configs/syndicate_gorlex_hyena.json b/_maps/configs/syndicate_gorlex_hyena.json index 7b72cf208e0d..a835e00b1eba 100644 --- a/_maps/configs/syndicate_gorlex_hyena.json +++ b/_maps/configs/syndicate_gorlex_hyena.json @@ -18,25 +18,25 @@ "map_path": "_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm", "job_slots": { "Captain": { - "outfit": "/datum/outfit/job/syndicate/captain/gorlex", + "outfit": "/datum/outfit/job/syndicate/captain/ngr", "officer": true, "slots": 1 }, "Foreman": { - "outfit": "/datum/outfit/job/syndicate/ce/gorlex/ngr", + "outfit": "/datum/outfit/job/syndicate/ce/ngr", "officer": true, "slots": 1 }, "Mechanic": { - "outfit": "/datum/outfit/job/syndicate/engineer/gorlex", + "outfit": "/datum/outfit/job/syndicate/engineer/ngr", "slots": 1 }, "Wrecker": { - "outfit": "/datum/outfit/job/syndicate/miner/gorlex", + "outfit": "/datum/outfit/job/syndicate/miner/ngr", "slots": 2 }, - "Junior Agent": { - "outfit": "/datum/outfit/job/syndicate/assistant/gorlex/ngr", + "Initiate": { + "outfit": "/datum/outfit/job/syndicate/assistant/ngr", "slots": 2 } }, diff --git a/_maps/map_catalogue.txt b/_maps/map_catalogue.txt index f3fbe957688c..a8538ae59aeb 100644 --- a/_maps/map_catalogue.txt +++ b/_maps/map_catalogue.txt @@ -302,10 +302,6 @@ Find the key for using this catalogue in "map_catalogue_key.txt" SpaceRuins: - File Name = "_maps\RandomRuins\SpaceRuins\.dmm" - Size = (x = 18)(y = 23)(z = 1) - Tags = "No Combat", "Minor Loot", "Shelter" - File Name = "_maps\RandomRuins\SpaceRuins\astraeus.dmm" Size = (x = 47)(y = 35)(z = 1) Tags = "Minor Combat Challenge", "Medium Loot", "Inhospitable" diff --git a/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm b/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm index 93600539c4b4..ce77d98f5833 100644 --- a/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm +++ b/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm @@ -56,11 +56,11 @@ }, /obj/item/storage/backpack/security, /obj/item/clothing/under/syndicate/ngr/officer, -/obj/item/clothing/suit/armor/vest/capcarapace/ngr_captain, -/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/suit/armor/ngr/captain, +/obj/item/clothing/shoes/combat, /obj/item/clothing/gloves/combat, /obj/item/clothing/glasses/hud/security/sunglasses/eyepatch, -/obj/item/clothing/head/ngrcap, +/obj/item/clothing/head/ngr/peaked, /obj/effect/decal/cleanable/dirt/dust, /obj/item/gun/ballistic/revolver, /obj/item/ammo_box/a357/match, @@ -75,10 +75,6 @@ icon_state = "syndicate"; name = "armor locker" }, -/obj/item/clothing/suit/armor/vest/syndie, -/obj/item/clothing/suit/armor/vest/syndie, -/obj/item/clothing/head/helmet/operator, -/obj/item/clothing/head/helmet/operator, /obj/effect/decal/cleanable/dirt/dust, /obj/item/radio/intercom/directional/west{ pixel_y = -5 @@ -91,6 +87,12 @@ /obj/machinery/light/small/directional/west{ pixel_y = 7 }, +/obj/item/clothing/glasses/hud/security/sunglasses/ngr, +/obj/item/clothing/glasses/hud/security/sunglasses/ngr, +/obj/item/clothing/suit/armor/ngr, +/obj/item/clothing/suit/armor/ngr, +/obj/item/clothing/head/helmet/ngr, +/obj/item/clothing/head/helmet/ngr, /turf/open/floor/mineral/plastitanium, /area/ship/security/armory) "bN" = ( @@ -882,14 +884,10 @@ "pt" = ( /obj/effect/turf_decal/industrial/outline, /obj/item/clothing/shoes/workboots/mining, -/obj/item/clothing/under/syndicate/gorlex, -/obj/item/clothing/gloves/explorer, /obj/item/clothing/accessory/armband/cargo, /obj/item/storage/belt/mining, /obj/item/clothing/glasses/meson, /obj/item/clothing/glasses/welding, -/obj/item/clothing/head/hardhat/orange, -/obj/item/clothing/head/soft/grey, /obj/machinery/light/small/directional/north, /obj/structure/closet/secure_closet{ anchored = 1; @@ -899,15 +897,9 @@ }, /obj/machinery/firealarm/directional/east, /obj/effect/turf_decal/industrial/outline, -/obj/item/clothing/shoes/workboots/mining, -/obj/item/clothing/under/syndicate/gorlex, -/obj/item/clothing/gloves/explorer, -/obj/item/clothing/accessory/armband/cargo, -/obj/item/storage/belt/mining, -/obj/item/clothing/glasses/meson, -/obj/item/clothing/glasses/welding, -/obj/item/clothing/head/hardhat/orange, -/obj/item/clothing/head/soft/grey, +/obj/item/clothing/under/syndicate/ngr/jumpsuit, +/obj/item/clothing/suit/hazardvest/ngr, +/obj/item/clothing/head/hardhat/ngr, /turf/open/floor/plasteel/tech/grid, /area/ship/storage) "pu" = ( @@ -1028,14 +1020,10 @@ req_access = list(11) }, /obj/item/clothing/shoes/workboots, -/obj/item/clothing/under/syndicate/gorlex, /obj/item/clothing/accessory/armband/engine, -/obj/item/clothing/suit/hazardvest, /obj/item/storage/belt/utility, /obj/item/clothing/glasses/meson, /obj/item/clothing/glasses/welding, -/obj/item/clothing/head/hardhat, -/obj/item/clothing/head/soft/yellow, /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/south, /obj/machinery/light_switch{ @@ -1043,6 +1031,9 @@ pixel_y = -16; pixel_x = -12 }, +/obj/item/clothing/under/syndicate/ngr, +/obj/item/clothing/suit/hazardvest/ngr, +/obj/item/clothing/head/hardhat/ngr, /turf/open/floor/plasteel/tech/grid, /area/ship/storage) "rM" = ( @@ -1154,15 +1145,14 @@ req_access = list(48) }, /obj/item/clothing/shoes/workboots/mining, -/obj/item/clothing/under/syndicate/gorlex, -/obj/item/clothing/gloves/explorer, /obj/item/clothing/accessory/armband/cargo, /obj/item/storage/belt/mining, /obj/item/clothing/glasses/meson, /obj/item/clothing/glasses/welding, -/obj/item/clothing/head/hardhat/orange, -/obj/item/clothing/head/soft/grey, /obj/machinery/airalarm/directional/north, +/obj/item/clothing/under/syndicate/ngr/jumpsuit, +/obj/item/clothing/suit/hazardvest/ngr, +/obj/item/clothing/head/hardhat/ngr, /turf/open/floor/plasteel/tech/grid, /area/ship/storage) "tI" = ( @@ -1340,6 +1330,18 @@ /area/ship/crew) "wP" = ( /obj/effect/turf_decal/industrial/outline, +/obj/structure/closet/crate{ + name = "desert equipment crate"; + desc = "A rectangular steel crate containing supplies to survive a desert environment more easily." + }, +/obj/item/clothing/neck/shemagh/ngr, +/obj/item/clothing/neck/shemagh/ngr, +/obj/item/clothing/neck/shemagh/ngr, +/obj/item/clothing/neck/shemagh/ngr, +/obj/item/clothing/head/ngr/flap, +/obj/item/clothing/head/ngr/flap, +/obj/item/clothing/head/ngr/flap, +/obj/item/clothing/head/ngr/flap, /turf/open/floor/plasteel/mono/dark, /area/ship/cargo) "xm" = ( @@ -1489,25 +1491,32 @@ /obj/structure/closet/wall/red/directional/east{ name = "uniform closet" }, -/obj/item/clothing/under/syndicate/gorlex, -/obj/item/clothing/under/syndicate/gorlex, -/obj/item/clothing/under/syndicate/gorlex, -/obj/item/clothing/under/syndicate/gorlex, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/shoes/jackboots, +/obj/item/tank/jetpack/suit, +/obj/item/clothing/shoes/combat, +/obj/item/clothing/shoes/combat, +/obj/item/clothing/shoes/combat, +/obj/item/clothing/shoes/combat, /obj/item/clothing/under/syndicate/ngr, /obj/item/clothing/under/syndicate/ngr, /obj/item/clothing/under/syndicate/ngr, /obj/item/clothing/under/syndicate/ngr, -/obj/item/clothing/head/soft/black, -/obj/item/clothing/head/soft/black, -/obj/item/clothing/head/soft/black, -/obj/item/clothing/head/soft/black, /obj/structure/cable{ icon_state = "1-8" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/item/clothing/under/syndicate/ngr/jumpsuit, +/obj/item/clothing/under/syndicate/ngr/jumpsuit, +/obj/item/clothing/under/syndicate/ngr/jumpsuit, +/obj/item/clothing/under/syndicate/ngr/jumpsuit, +/obj/item/clothing/head/ngr, +/obj/item/clothing/head/ngr, +/obj/item/clothing/head/ngr, +/obj/item/clothing/head/ngr, /obj/item/radio, /obj/item/radio, /obj/item/radio, @@ -1515,12 +1524,6 @@ /obj/item/radio, /obj/item/radio, /obj/item/radio, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, /turf/open/floor/plasteel/dark, /area/ship/crew/dorm) "zA" = ( @@ -1642,19 +1645,14 @@ name = "foreman's locker"; req_access = list(56) }, -/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/shoes/combat, /obj/item/clothing/under/syndicate/ngr/officer, -/obj/item/clothing/suit/toggle/industrial, /obj/item/clothing/gloves/combat, /obj/item/storage/belt/utility/chief{ name = "\improper Foreman's toolbelt" }, /obj/item/clothing/glasses/meson, /obj/item/clothing/glasses/welding, -/obj/item/clothing/head/hardhat/white, -/obj/item/clothing/head/beret/ce{ - name = "foreman beret" - }, /obj/item/storage/toolbox/syndicate, /obj/item/wrench/combat, /obj/item/ammo_box/magazine/m10mm, @@ -1662,6 +1660,8 @@ /obj/item/clothing/accessory/holster, /obj/item/grenade/chem_grenade/metalfoam, /obj/machinery/airalarm/directional/west, +/obj/item/clothing/suit/ngr, +/obj/item/clothing/head/hardhat/ngr/foreman, /obj/item/tank/jetpack/suit, /turf/open/floor/carpet/red, /area/ship/cargo/office) @@ -1692,7 +1692,7 @@ dir = 4; pixel_x = -20 }, -/obj/item/clothing/suit/space/hardsuit/syndi/sbg, +/obj/item/clothing/suit/space/hardsuit/syndi/ngr, /obj/item/clothing/mask/gas/syndicate, /turf/open/floor/carpet/black, /area/ship/bridge) diff --git a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm index 5878f667db1e..f420ba047123 100644 --- a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm +++ b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm @@ -101,8 +101,8 @@ req_access = list(3,150) }, /obj/item/clothing/under/syndicate/ngr/officer, -/obj/item/clothing/suit/armor/vest/capcarapace/ngr_captain, -/obj/item/clothing/head/ngrcap, +/obj/item/clothing/suit/armor/ngr/captain, +/obj/item/clothing/head/ngr/peaked, /obj/item/clothing/shoes/combat, /obj/item/megaphone/sec{ name = "syndicate megaphone" @@ -2367,7 +2367,7 @@ dir = 8 }, /obj/machinery/suit_storage_unit/syndicate{ - suit_type = /obj/item/clothing/suit/space/hardsuit/syndi/sbg; + suit_type = /obj/item/clothing/suit/space/hardsuit/syndi/ngr; name = "lieutenant's suit storage unit" }, /turf/open/floor/mineral/plastitanium, @@ -6100,10 +6100,6 @@ /obj/machinery/camera/autoname{ dir = 6 }, -/obj/item/reagent_containers/spray/syndicate{ - pixel_y = 11; - pixel_x = -2 - }, /turf/open/floor/wood/walnut, /area/ship/crew/janitor) "IE" = ( diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index d9edeb83202c..0ae530f47913 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -773,3 +773,6 @@ ///called in /obj/item/gun/process_chamber (src) #define COMSIG_GUN_CHAMBER_PROCESSED "gun_chamber_processed" + +///called when an elzu should unroot +#define COMSIG_DIGOUT "dig_out" diff --git a/code/__DEFINES/sight.dm b/code/__DEFINES/sight.dm index a0ce649dd04d..ba4589985015 100644 --- a/code/__DEFINES/sight.dm +++ b/code/__DEFINES/sight.dm @@ -13,6 +13,8 @@ #define INVISIBILITY_OBSERVER 60 #define SEE_INVISIBLE_OBSERVER 60 +#define INVISIBILITY_INVINISMIN 80 //invisible admins + #define INVISIBILITY_MAXIMUM 100 //the maximum allowed for "real" objects #define INVISIBILITY_ABSTRACT 101 //only used for abstract objects (e.g. spacevine_controller), things that are not really there. diff --git a/code/datums/components/storage/concrete/pockets.dm b/code/datums/components/storage/concrete/pockets.dm index bd0a59f85f42..ce224d44e4e5 100644 --- a/code/datums/components/storage/concrete/pockets.dm +++ b/code/datums/components/storage/concrete/pockets.dm @@ -83,10 +83,16 @@ /datum/component/storage/concrete/pockets/helmet/Initialize() . = ..() set_holdable(list( - /obj/item/reagent_containers/food/drinks/bottle/vodka, - /obj/item/reagent_containers/food/drinks/bottle/molotov, - /obj/item/reagent_containers/food/drinks/drinkingglass, - /obj/item/ammo_box/magazine/illestren_a850r + /obj/item/clothing/glasses/cold, + /obj/item/clothing/glasses/heat, + /obj/item/clothing/glasses/welding, + /obj/item/clothing/glasses/thermal, + /obj/item/clothing/glasses/night, + /obj/item/clothing/glasses/hud/health/night, + /obj/item/clothing/glasses/hud/security/night, + /obj/item/clothing/glasses/hud/security/sunglasses/inteq, + /obj/item/ammo_casing, + /obj/item/ammo_box/magazine/illestren_a850r, )) /datum/component/storage/concrete/pockets/holster diff --git a/code/datums/mood_events/generic_positive_events.dm b/code/datums/mood_events/generic_positive_events.dm index dbaac99c4296..d79847ea04c8 100644 --- a/code/datums/mood_events/generic_positive_events.dm +++ b/code/datums/mood_events/generic_positive_events.dm @@ -239,3 +239,8 @@ description = "Fishing is relaxing" mood_change = 5 timeout = 3 MINUTES + +/datum/mood_event/root + description = span_nicegreen("I rooted recently, it feels good to charge naturally.\n") + mood_change = 5 + timeout = 5 MINUTES diff --git a/code/datums/ruins/space.dm b/code/datums/ruins/space.dm index 7872ba58a3a4..fefb250a1208 100644 --- a/code/datums/ruins/space.dm +++ b/code/datums/ruins/space.dm @@ -39,13 +39,6 @@ description = "In the darkest times, we will find our way home." */ -/datum/map_template/ruin/space/djstation - id = "djstation" - suffix = "djstation.dmm" - name = "DJ Station" - description = "Until very recently this pirate radio station was used to harangue local space stations over a variety of perceived \"ethics violations\". \ - It seems like someone finally got sick of it, but the equipment still works." - /datum/map_template/ruin/space/crashedship id = "crashedship" suffix = "crashedship.dmm" diff --git a/code/datums/status_effects/neutral.dm b/code/datums/status_effects/neutral.dm index 76a33319631f..c7765ff772ac 100644 --- a/code/datums/status_effects/neutral.dm +++ b/code/datums/status_effects/neutral.dm @@ -275,3 +275,29 @@ /atom/movable/screen/alert/status_effect/surrender/Click(location, control, params) . = ..() owner.emote("surrender") + +/datum/status_effect/rooted + id = "rooted" + alert_type = /atom/movable/screen/alert/status_effect/rooted + +/datum/status_effect/rooted/on_apply() + . = ..() + ADD_TRAIT(owner,TRAIT_IMMOBILIZED, TRAIT_STATUS_EFFECT(id)) + ADD_TRAIT(owner,TRAIT_PUSHIMMUNE, TRAIT_STATUS_EFFECT(id)) + SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, "root", /datum/mood_event/root) + +/datum/status_effect/rooted/on_remove() + . = ..() + REMOVE_TRAIT(owner,TRAIT_IMMOBILIZED, TRAIT_STATUS_EFFECT(id)) + REMOVE_TRAIT(owner,TRAIT_PUSHIMMUNE, TRAIT_STATUS_EFFECT(id)) + +/atom/movable/screen/alert/status_effect/rooted + name = "Rooted" + desc = "You're currently rooted into the ground and can't move. Click here to start digging yourself out." + icon_state = "dig_out" + +/atom/movable/screen/alert/status_effect/rooted/Click(location, control, params) + . = ..() + to_chat(owner, span_notice("You begin digging yourself free.")) + SEND_SIGNAL(owner,COMSIG_DIGOUT) + diff --git a/code/game/area/areas/ruins/space.dm b/code/game/area/areas/ruins/space.dm index e6034e412198..de546d164c96 100644 --- a/code/game/area/areas/ruins/space.dm +++ b/code/game/area/areas/ruins/space.dm @@ -167,18 +167,6 @@ name = "Derelict Atmospherics" icon_state = "red" -//DJSTATION - -/area/ruin/space/djstation - name = "Ruskie DJ Station" - icon_state = "DJ" - has_gravity = STANDARD_GRAVITY - -/area/ruin/space/djstation/solars - name = "DJ Station Solars" - icon_state = "DJ" - has_gravity = STANDARD_GRAVITY - //OLD AI SAT /area/tcommsat/oldaisat diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm index 6a36a0ee01d6..17e3fc0116b8 100644 --- a/code/game/mecha/equipment/tools/medical_tools.dm +++ b/code/game/mecha/equipment/tools/medical_tools.dm @@ -306,8 +306,8 @@ mechsyringe.forceMove(get_turf(chassis)) reagents.trans_to(mechsyringe, min(mechsyringe.volume, reagents.total_volume), transfered_by = chassis.occupant) syringes -= mechsyringe - mechsyringe.icon = 'icons/obj/chemical.dmi' - mechsyringe.icon_state = "syringeproj" + mechsyringe.icon = 'icons/obj/chemical/misc.dmi' + mechsyringe.icon_state = "potgreen" playsound(chassis, 'sound/items/syringeproj.ogg', 50, TRUE) log_message("Launched [mechsyringe] from [src], targeting [target].", LOG_MECHA) var/mob/originaloccupant = chassis.occupant diff --git a/code/game/objects/effects/anomalies/anomalies_static.dm b/code/game/objects/effects/anomalies/anomalies_static.dm index a00babe5844a..ab574ee475dd 100644 --- a/code/game/objects/effects/anomalies/anomalies_static.dm +++ b/code/game/objects/effects/anomalies/anomalies_static.dm @@ -39,19 +39,19 @@ playsound(src, 'sound/effects/walkietalkie.ogg', 75) if(stored_mob && looking.stat != DEAD && prob(25)) say_fucky_things() - if (!HAS_TRAIT(looking, TRAIT_MINDSHIELD) && looking.stat != DEAD || !looking.research_scanner && looking.stat != DEAD || !HAS_TRAIT(looking, TRAIT_DEAF)) - looking.adjustOrganLoss(ORGAN_SLOT_BRAIN, 10, 200) - playsound(src, 'sound/effects/stall.ogg', 50) - if(looking.getOrganLoss(ORGAN_SLOT_BRAIN) >= 150 && looking.stat != DEAD) - if(prob(20)) - var/mob/living/carbon/victim = looking - var/obj/effect/anomaly/tvstatic/planetary/expansion - expansion = new(get_turf(victim)) - visible_message(span_warning("The static overtakes [victim], taking their place!")) - victim.death() - expansion.stored_mob = victim - victim.forceMove(expansion) - return + if(HAS_TRAIT(looking, TRAIT_MINDSHIELD) || looking.stat == DEAD || looking.research_scanner || HAS_TRAIT(looking, TRAIT_DEAF)) + continue + looking.adjustOrganLoss(ORGAN_SLOT_BRAIN, 10, 200) + playsound(src, 'sound/effects/stall.ogg', 50) + if(looking.getOrganLoss(ORGAN_SLOT_BRAIN) >= 150 && looking.stat != DEAD) + if(prob(20)) + var/mob/living/carbon/victim = looking + var/obj/effect/anomaly/tvstatic/planetary/expansion + expansion = new(get_turf(victim)) + visible_message(span_warning("The static overtakes [victim], [expansion] taking their place!")) + victim.death() + expansion.stored_mob = victim + victim.forceMove(expansion) /obj/effect/anomaly/tvstatic/Bumped(atom/movable/AM) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 240c4c3c640e..7e4256ccaa4c 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -706,6 +706,9 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb /obj/item/proc/get_belt_overlay() //Returns the icon used for overlaying the object on a belt return mutable_appearance('icons/obj/clothing/belt_overlays.dmi', icon_state) +/obj/item/proc/get_helmet_overlay() // returns the icon for overlaying on a helmet + return mutable_appearance('icons/mob/clothing/helmet_overlays.dmi', icon_state) + /obj/item/proc/update_slot_icon() if(!ismob(loc)) return diff --git a/code/game/objects/items/devices/portable_chem_mixer.dm b/code/game/objects/items/devices/portable_chem_mixer.dm index fa777fec1124..1964e2dbd04a 100644 --- a/code/game/objects/items/devices/portable_chem_mixer.dm +++ b/code/game/objects/items/devices/portable_chem_mixer.dm @@ -1,7 +1,7 @@ /obj/item/storage/portable_chem_mixer name = "Portable Chemical Mixer" desc = "A portable device that dispenses and mixes chemicals. Can be upgraded to hold more beakers by inserting a vortex anomaly core. All necessary reagents need to be supplied with beakers. A label indicates that a screwdriver is required to open it for refills. This device can be worn on a belt. The letters 'S&T' are imprinted on the side." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "portablechemicalmixer_open" w_class = WEIGHT_CLASS_HUGE slot_flags = ITEM_SLOT_BELT diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index e44cf557b9a2..3afd539d4c97 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -22,6 +22,7 @@ GLOBAL_LIST_INIT(channel_tokens, list( custom_materials = list(/datum/material/iron=75) subspace_transmission = TRUE headset = TRUE + listening = TRUE canhear_range = 0 // can't hear headsets from very far away slot_flags = ITEM_SLOT_EARS diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index 2c7262139b17..944fe7462583 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -4,6 +4,7 @@ icon = 'icons/obj/radio.dmi' icon_state = "intercom" anchored = TRUE + listening = TRUE w_class = WEIGHT_CLASS_BULKY canhear_range = 2 dog_fashion = null diff --git a/code/game/objects/items/holy_weapons.dm b/code/game/objects/items/holy_weapons.dm index cd01cef70503..872d81323cf3 100644 --- a/code/game/objects/items/holy_weapons.dm +++ b/code/game/objects/items/holy_weapons.dm @@ -671,33 +671,6 @@ lefthand_file = 'icons/mob/inhands/weapons/staves_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi' -/obj/item/nullrod/tribal_knife - icon_state = "crysknife" - item_state = "crysknife" - lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' - righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' - name = "arrhythmic knife" - w_class = WEIGHT_CLASS_HUGE - desc = "They say fear is the true mind killer, but stabbing them in the head works too. Honour compels you to not sheathe it once drawn." - sharpness = IS_SHARP - slot_flags = null - hitsound = 'sound/weapons/bladeslice.ogg' - attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") - item_flags = SLOWS_WHILE_IN_HAND - -/obj/item/nullrod/tribal_knife/Initialize(mapload) - . = ..() - START_PROCESSING(SSobj, src) - AddComponent(/datum/component/butchering, 50, 100) - -/obj/item/nullrod/tribal_knife/Destroy() - STOP_PROCESSING(SSobj, src) - . = ..() - -/obj/item/nullrod/tribal_knife/process() - slowdown = rand(-2, 2) - - /obj/item/nullrod/pitchfork icon_state = "pitchfork0" lefthand_file = 'icons/mob/inhands/weapons/polearms_lefthand.dmi' diff --git a/code/game/objects/items/kitchen.dm b/code/game/objects/items/kitchen.dm index 2732e0d37719..1475ae88f8dd 100644 --- a/code/game/objects/items/kitchen.dm +++ b/code/game/objects/items/kitchen.dm @@ -66,10 +66,13 @@ /obj/item/kitchen/knife name = "kitchen knife" - icon_state = "knife" - item_state = "knife" + icon = 'icons/obj/item/knife.dmi' + lefthand_file = 'icons/mob/inhands/weapons/knifes_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/knifes_righthand.dmi' + icon_state = "kitchenknife" + item_state = "kitchenknife" desc = "A general purpose Chef's Knife made by SpaceCook Incorporated. Guaranteed to stay sharp for years to come." - pickup_sound = 'sound/items/handling/knife1_pickup.ogg' + pickup_sound = 'sound/items/handling/knife1_pickup.ogg' drop_sound = 'sound/items/handling/knife3_drop.ogg' flags_1 = CONDUCT_1 force = 10 @@ -97,7 +100,6 @@ /obj/item/kitchen/knife/plastic name = "plastic knife" icon_state = "plastic_knife" - item_state = "knife" desc = "A very safe, barely sharp knife made of plastic. Good for cutting food and not much else." force = 0 w_class = WEIGHT_CLASS_TINY @@ -155,8 +157,8 @@ /obj/item/kitchen/knife/butcher name = "butcher's cleaver" - icon_state = "butch" - item_state = "butch" + icon_state = "cleaver" + item_state = "cleaver" desc = "A huge thing used for chopping and chopping up meat." flags_1 = CONDUCT_1 force = 15 @@ -177,7 +179,8 @@ /obj/item/kitchen/knife/combat name = "combat knife" - icon_state = "buckknife" + icon_state = "combatknife" + item_state = "combatknife" desc = "A military combat utility survival knife." embedding = list("pain_mult" = 4, "embed_chance" = 65, "fall_chance" = 10, "ignore_throwspeed_threshold" = TRUE) force = 20 @@ -188,6 +191,7 @@ /obj/item/kitchen/knife/combat/survival name = "survival knife" icon_state = "survivalknife" + item_state = "survivalknife" embedding = list("pain_mult" = 4, "embed_chance" = 35, "fall_chance" = 10) desc = "A hunting grade survival knife." force = 15 diff --git a/code/game/objects/items/storage/firstaid.dm b/code/game/objects/items/storage/firstaid.dm index 4505f596907f..bac896c0b8d5 100644 --- a/code/game/objects/items/storage/firstaid.dm +++ b/code/game/objects/items/storage/firstaid.dm @@ -306,7 +306,7 @@ name = "pill bottle" desc = "It's an airtight container for storing medication." icon_state = "pill_canister" - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/medicine.dmi' item_state = "contsolid" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' diff --git a/code/game/objects/structures/crates_lockers/crates/secure.dm b/code/game/objects/structures/crates_lockers/crates/secure.dm index 63d9b6552c16..cdd98f22196f 100644 --- a/code/game/objects/structures/crates_lockers/crates/secure.dm +++ b/code/game/objects/structures/crates_lockers/crates/secure.dm @@ -105,7 +105,7 @@ else ..() /obj/structure/closet/crate/secure/exo - desc = "A lock-enabled crate used to carry EXOCON merchandise destined for export to potential buyers." - name = "EXOCON storage crate" + desc = "A lock-enabled crate used to carry EXOCOM merchandise destined for export to potential buyers." + name = "EXOCOM storage crate" icon = 'icons/obj/crates.dmi' icon_state = "exocrate" diff --git a/code/game/objects/structures/lavaland/geyser.dm b/code/game/objects/structures/lavaland/geyser.dm index ed177c72d34e..224a11206d9f 100644 --- a/code/game/objects/structures/lavaland/geyser.dm +++ b/code/game/objects/structures/lavaland/geyser.dm @@ -51,6 +51,8 @@ name = "plunger" desc = "It's a plunger for plunging." icon = 'icons/obj/watercloset.dmi' + righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' + lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' icon_state = "plunger" slot_flags = ITEM_SLOT_MASK diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 0539dca13e25..ef2bfae400e4 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -403,11 +403,13 @@ GLOBAL_PROTECT(admin_verbs_hideable) set category = "Admin.Game" set desc = "Toggles ghost-like invisibility (Don't abuse this)" if(holder && mob) - if(mob.invisibility == INVISIBILITY_OBSERVER) + if(mob.invisibility == INVISIBILITY_INVINISMIN) mob.invisibility = initial(mob.invisibility) + mob.remove_from_all_data_huds() to_chat(mob, "Invisimin off. Invisibility reset.", confidential = TRUE) else - mob.invisibility = INVISIBILITY_OBSERVER + mob.invisibility = INVISIBILITY_INVINISMIN + mob.add_to_all_human_data_huds() to_chat(mob, "Invisimin on. You are now as invisible as a ghost.", confidential = TRUE) /client/proc/check_antagonists() diff --git a/code/modules/antagonists/_common/antag_spawner.dm b/code/modules/antagonists/_common/antag_spawner.dm index 537afd8d4ff5..4b4ca9bd96ec 100644 --- a/code/modules/antagonists/_common/antag_spawner.dm +++ b/code/modules/antagonists/_common/antag_spawner.dm @@ -292,7 +292,7 @@ /obj/item/antag_spawner/syndi_borer name = "syndicate brain-slug container" desc = "Releases a modified cortical borer to assist the user." - icon = 'icons/obj/chemical.dmi' //Temporary? //The most permanent type of solution lol + icon = 'icons/obj/chemical/hypovial.dmi' icon_state = "hypoviallarge-b" var/polling = FALSE diff --git a/code/modules/antagonists/borer/borer.dm b/code/modules/antagonists/borer/borer.dm index d4af47670412..511bbbec1fd5 100644 --- a/code/modules/antagonists/borer/borer.dm +++ b/code/modules/antagonists/borer/borer.dm @@ -1053,7 +1053,7 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 3) /datum/action/innate/borer/make_chems name = "Secrete Chemicals" desc = "Push some chemicals into your host's bloodstream." - icon_icon = 'icons/obj/chemical.dmi' + icon_icon = 'icons/obj/chemical/chem_machines.dmi' button_icon_state = "minidispenser" /datum/action/innate/borer/make_chems/Activate() diff --git a/code/modules/autowiki/pages/reactions.dm b/code/modules/autowiki/pages/reactions.dm new file mode 100644 index 000000000000..2e1a07b806e4 --- /dev/null +++ b/code/modules/autowiki/pages/reactions.dm @@ -0,0 +1,65 @@ +/* +Templates: + +Autowiki/Reaction +{{{chems|ERROR}}} {{#if: {{{temperature|}}} |
Temperature {{{temperature}}} | }} {{#if: {{{container|}}} |
Needs container "{{{container}}}" | }}
Makes {{{volume|1}}}u + +Autowiki/Reagent +{{#if: {{{tooltip|}}} | {{Tooltip|{{{volume}}} part [[#{{{name}}}|{{{name}}}]]|{{{tooltip}}}|FEF6E7}} | {{{volume}}} part {{{name}}} }} + +*/ + +/datum/autowiki/reactions + page = "Template:Autowiki/Content/Reactions" + +/datum/autowiki/reactions/generate() + var/list/output = list() + + var/list/mixable_reagents = list() + var/list/all_reactions = list() + for(var/type in subtypesof(/datum/chemical_reaction)) + var/datum/chemical_reaction/reaction = new type + all_reactions += reaction + mixable_reagents |= reaction.results + + for(var/datum/chemical_reaction/reaction as anything in all_reactions) + var/required_chems = "" + for(var/datum/reagent/required_chem_type as anything in reaction.required_reagents) + var/has_tooltip = (required_chem_type in mixable_reagents) && !(required_chem_type in reaction.results) && !(required_chem_type in GLOB.base_reagents) + required_chems += format_required_reagent(required_chem_type, reaction.required_reagents[required_chem_type], has_tooltip) + + for(var/datum/reagent/required_catalyst_type as anything in reaction.required_catalysts) + var/has_tooltip = (required_catalyst_type in mixable_reagents) && !(required_catalyst_type in reaction.results) && !(required_catalyst_type in GLOB.base_reagents) + required_chems += format_required_reagent(required_catalyst_type, reaction.required_catalysts[required_catalyst_type], has_tooltip, "Catalyst") + + for(var/datum/reagent/result_chem_type as anything in reaction.results) + var/result_name = escape_value(initial(result_chem_type.name)) + var/list/details = list("volume" = reaction.results[result_chem_type], "chems" = required_chems, "name" = result_name) + + if(reaction.required_temp > 0) + details["temperature"] = "[reaction.is_cold_recipe ? "below" : "above"] [reaction.required_temp]K" + + if(reaction.required_container) + details["container"] = "[escape_value(initial(reaction.required_container.name))]" + + var/description = include_template("Autowiki/Reaction", details) + if(result_name in output) + output[result_name] += "
OR
[description]" + else + output[result_name] = description + + return output + +/datum/autowiki/reactions/proc/format_required_reagent(datum/reagent/required_reagent_type, volume, has_tooltip = FALSE, type) + var/list/details = list( + "volume" = volume, + "name" = escape_value(initial(required_reagent_type.name)) + ) + + if(has_tooltip) + details["tooltip"] = include_template("Autowiki/Content/Reactions/[initial(required_reagent_type.name)]") + + if(type) + details["type"] = type + + return include_template("Autowiki/Reagent", details) diff --git a/code/modules/autowiki/pages/reagents.dm b/code/modules/autowiki/pages/reagents.dm index d10137d07f53..885c64665c20 100644 --- a/code/modules/autowiki/pages/reagents.dm +++ b/code/modules/autowiki/pages/reagents.dm @@ -1,65 +1,52 @@ -/* -Templates: - -Autowiki/Reaction -{{{chems|ERROR}}} {{#if: {{{temperature|}}} |
Temperature {{{temperature}}} | }} {{#if: {{{container|}}} |
Needs container "{{{container}}}" | }}
Makes {{{volume|1}}}u - -Autowiki/Reagent -{{#if: {{{tooltip|}}} | {{Tooltip|{{{volume}}} part [[#{{{name}}}|{{{name}}}]]|{{{tooltip}}}|FEF6E7}} | {{{volume}}} part {{{name}}} }} - -*/ - /datum/autowiki/reagents - page = "Template:Autowiki/Content/Reactions" + page = "Template:Autowiki/Content/Reagents" /datum/autowiki/reagents/generate() - var/list/output = list() + var/output = "" var/list/mixable_reagents = list() - var/list/all_reactions = list() for(var/type in subtypesof(/datum/chemical_reaction)) var/datum/chemical_reaction/reaction = new type - all_reactions += reaction mixable_reagents |= reaction.results + qdel(reaction) - for(var/datum/chemical_reaction/reaction as anything in all_reactions) - var/required_chems = "" - for(var/datum/reagent/required_chem_type as anything in reaction.required_reagents) - var/has_tooltip = (required_chem_type in mixable_reagents) && !(required_chem_type in reaction.results) && !(required_chem_type in GLOB.base_reagents) - required_chems += format_required_reagent(required_chem_type, reaction.required_reagents[required_chem_type], has_tooltip) + var/list/categories = list() - for(var/datum/reagent/required_catalyst_type as anything in reaction.required_catalysts) - var/has_tooltip = (required_catalyst_type in mixable_reagents) && !(required_catalyst_type in reaction.results) && !(required_catalyst_type in GLOB.base_reagents) - required_chems += format_required_reagent(required_catalyst_type, reaction.required_catalysts[required_catalyst_type], has_tooltip, "Catalyst") + for(var/reagent in mixable_reagents) + var/datum/reagent/chem = new reagent - for(var/datum/reagent/result_chem_type as anything in reaction.results) - var/result_name = escape_value(initial(result_chem_type.name)) - var/list/details = list("volume" = reaction.results[result_chem_type], "chems" = required_chems, "name" = result_name) + LAZYINITLIST(categories[chem.category]) + categories[chem.category] += list(chem) - if(reaction.required_temp > 0) - details["temperature"] = "[reaction.is_cold_recipe ? "below" : "above"] [reaction.required_temp]K" + for(var/category in sortList(categories)) + output += "\n" + output += generate_category(category, categories[category]) - if(reaction.required_container) - details["container"] = "[escape_value(initial(reaction.required_container.name))]" + return output - var/description = include_template("Autowiki/Reaction", details) - if(result_name in output) - output[result_name] += "
OR
[description]" - else - output[result_name] = description +/datum/autowiki/reagents/proc/generate_category(name, list/datum/reagent/reagents) + var/output = "== [escape_value(name)] ==\n" - return output + output += "{| class='wikitable sortable' style=width:100%; text-align:left; border: 3px solid #FFDD66; cellspacing=0; cellpadding=2; background-color:white;'\n" + output += "! scope='col' style='width:150px; background-color:#FFDD66;' |Name\n" + output += "! class='unsortable' scope='col' style='width:150px; background-color:#FFDD66;' |Recipe\n" + output += "! class='unsortable' scope='col' style='background-color:#FFDD66;' |Description\n" + output += "! scope='col' | Metabolization Rate\n" + output += "! scope='col' | Overdose Threshold\n" + output += "! scope='col' | Addiction Threshold\n" + output += "|-\n" -/datum/autowiki/reagents/proc/format_required_reagent(datum/reagent/required_reagent_type, volume, has_tooltip = FALSE, type) - var/list/details = list( - "volume" = volume, - "name" = escape_value(initial(required_reagent_type.name)) - ) + reagents = sortList(reagents, /proc/cmp_typepaths_asc) - if(has_tooltip) - details["tooltip"] = include_template("Autowiki/Content/Reactions/[initial(required_reagent_type.name)]") + for(var/datum/reagent/reagent as anything in reagents) + output += "! style='background-color: #FFEE88;' | [include_template("anchor", list("1" = escape_value(reagent.name)))][escape_value(reagent.name)] _\n" + output += "|[include_template("Autowiki/Content/Reactions/[escape_value(reagent.name)]")]\n" + output += "|[escape_value(reagent.description)]\n" + output += "|data-sort-value=[reagent.metabolization_rate]|[reagent.metabolization_rate] units per tick\n" + output += "|[reagent.overdose_threshold || "data-sort-value=0|N/A"]\n" + output += "|[reagent.addiction_threshold || "data-sort-value=0|N/A"]\n" + output += "|-\n" - if(type) - details["type"] = type + output += "|}\n" - return include_template("Autowiki/Reagent", details) + return output diff --git a/code/modules/cargo/packs/ammo.dm b/code/modules/cargo/packs/ammo.dm index 53bfd35974e7..f1e46fe88cc8 100644 --- a/code/modules/cargo/packs/ammo.dm +++ b/code/modules/cargo/packs/ammo.dm @@ -143,6 +143,12 @@ contains = list(/obj/item/ammo_box/amagpellet_claris) cost = 1000 +/datum/supply_pack/ammo/a300 + name = ".300 Magnum Stripper Clip Crate" + desc = "Contains a five round .300 Magnum stripper clip for sniper rifles such as the HP Scout." + contains = list(/obj/item/ammo_box/a300) + cost = 750 + /datum/supply_pack/ammo/ebr_ammo name = "M514 EBR .308 Magazine Crate" desc = "Contains a .308 magazine for the M514 EBR rifle, containing ten rounds." @@ -173,6 +179,12 @@ contains = list(/obj/item/ammo_box/a762_40) cost = 500 +/datum/supply_pack/ammo/a357_ammo_box + name = ".357 Ammo Box Crate" + desc = "Contains a fifty-round .357 box for revolvers such as the Scarborough Revolver and the HP Firebrand." + contains = list(/obj/item/ammo_box/a357_box) + cost = 250 + /datum/supply_pack/ammo/c556mmHITP_ammo_box name = "5.56 Caseless Ammo Box Crate" desc = "Contains a fifty-round 5.56mm caseless box for SolGov sidearms like the Pistole C." @@ -209,6 +221,12 @@ contains = list(/obj/item/ammo_box/c9mm/ap) cost = 500 +/datum/supply_pack/ammo/a357match_ammo_box + name = ".357 Match Ammo Box Crate" + desc = "Contains a fifty-round .357 match box for better performance against armor." + contains = list(/obj/item/ammo_box/a357_box/match) + cost = 500 + /datum/supply_pack/ammo/c556mmHITPap_ammo_box name = "5.56 caseless AP Ammo Box Crate" desc = "Contains a fifty-round 5.56mm caseless boxloaded with armor piercing ammo." @@ -233,6 +251,12 @@ contains = list(/obj/item/ammo_box/c9mm/hp) cost = 500 +/datum/supply_pack/ammo/a357hp_ammo_box + name = ".357 HP Ammo Box Crate" + desc = "Contains a fifty-round .357 box loaded with hollow point ammo, great against unarmored targets." + contains = list(/obj/item/ammo_box/a357_box/hp) + cost = 500 + /datum/supply_pack/ammo/c10mmhp_ammo_box name = "10mm HP Ammo Box Crate" desc = "Contains a fifty-round 10mm box loaded with hollow point ammo, great against unarmored targets." @@ -305,6 +329,18 @@ contains = list(/obj/item/ammo_box/c8x50mmhp_box) cost = 500 +/datum/supply_pack/ammo/a300_box + name = ".300 Ammo Box Crate" + desc = "Contains a twenty-round .300 Magnum ammo box for sniper rifles such as the HP Scout." + contains = list(/obj/item/ammo_box/a300_box) + cost = 500 + +/datum/supply_pack/ammo/a4570_box + name = ".45-70 Ammo Box Crate" + desc = "Contains a twelve-round box containing devastatingly powerful .45-70 caliber ammunition." + contains = list(/obj/item/ammo_box/a4570) + cost = 500 + /datum/supply_pack/ammo/ferropelletboxcrate name = "Ferromagnetic Pellet Box Crate" desc = "Contains a fifty-round ferromagnetic pellet ammo box for gauss guns such as the Claris." diff --git a/code/modules/cargo/packs/gun.dm b/code/modules/cargo/packs/gun.dm index 85a1cb0e0c3c..4025db76d300 100644 --- a/code/modules/cargo/packs/gun.dm +++ b/code/modules/cargo/packs/gun.dm @@ -7,16 +7,19 @@ */ /datum/supply_pack/gun/disposable - name = "Disposable Guns Crate" - desc = "In some sectors, these disposable pistols are the only firearms that can be legally sold for less than 400cr. That price is still far too high; this pack contains five." - cost = 750 - contains = list(/obj/item/gun/ballistic/automatic/pistol/disposable, - /obj/item/gun/ballistic/automatic/pistol/disposable, - /obj/item/gun/ballistic/automatic/pistol/disposable, - /obj/item/gun/ballistic/automatic/pistol/disposable, - /obj/item/gun/ballistic/automatic/pistol/disposable) + name = "Disposable Gun Crate" + desc = "In some sectors, these disposable pistols are the only firearms that can be legally sold for less than 200cr. That price is still far too high." + cost = 150 + contains = list(/obj/item/gun/ballistic/automatic/pistol/disposable) crate_name = "disposable gun crate" +/datum/supply_pack/gun/derringer + name = ".38 Derringer Crate" + desc = "A cheap, concealable pistol manufactured by the reputable Hunter's Pride. At least it's better than a disposable pistol. Chambered in .38 rounds." + cost = 350 + contains = list(/obj/item/gun/ballistic/derringer) + crate_name = "derringer crate" + /datum/supply_pack/gun/commanders name = "Commander Pistol Crate" desc = "Contains a modified Candor 'Commander' pistol, produced by Nanotrasen and chambered in 9mm." @@ -30,16 +33,22 @@ contains = list(/obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/automatic/pistol) -/datum/supply_pack/gun/revolver - name = "Scarborough Revolver Crate" - desc = "Contains a concealable Scarborough revolver, chambered in .357." +/datum/supply_pack/gun/candors + name = "Candor Pistol Crate" + desc = "Contains a Candor pistol, the trusty sidearm of any spacer, produced by Hunter's Pride and chambered in .45 ACP." + cost = 1000 + contains = list(/obj/item/gun/ballistic/automatic/pistol/candor) + +/datum/supply_pack/gun/pepperbox + name = "HP Firebrand Pepperbox Revolver Crate" + desc = "Contains a concealable pepperbox revolver manufactured by the Saint Roumain Militia, chambered in .357." cost = 1250 - contains = list(/obj/item/gun/ballistic/revolver) + contains = list(/obj/item/gun/ballistic/revolver/firebrand) /datum/supply_pack/gun/detrevolver name = "Hunter's Pride Detective Revolver Crate" - desc = "Contains a concealable Solarian revolver, chambered in .38." - cost = 1000 + desc = "Contains a concealable revolver favored by police departments around the sector, chambered in .38." + cost = 600 contains = list(/obj/item/gun/ballistic/revolver/detective) /datum/supply_pack/gun/shadowrevolver @@ -101,6 +110,13 @@ Shotguns */ +/datum/supply_pack/gun/doublebarrel_shotgun + name = "Double Barrel Shotgun Crate" + desc = "For when you need to deal with 2 drunkards the old-fashioned way. Contains a double-barreled shotgun, favored by Bartenders. Warranty voided if sawed off." + cost = 1000 + contains = list(/obj/item/gun/ballistic/shotgun/doublebarrel) + crate_name = "shotguns crate" + /datum/supply_pack/gun/hellfire_shotgun name = "Hellfire Shotgun Crate" desc = "For when you need to deal with 7 hooligans. Contains a pump shotgun, with a 8-round capacity." @@ -126,13 +142,6 @@ contains = list(/obj/item/gun/ballistic/shotgun/flamingarrow) crate_name = "rifle crate" -/datum/supply_pack/gun/cobra20 - name = "Cobra-20 SMG Crate" - desc = "Contains a .45 submachine gun, manufactured by Scarborough Arms and chambered in .45" - cost = 3000 - contains = list(/obj/item/gun/ballistic/automatic/smg/c20r/cobra) - crate_name = "SMG crate" - /datum/supply_pack/gun/illestren name = "Illestren Rifle Crate" desc = "Contains a expertly made bolt action rifle intended for hunting wildlife. Chambered in 8x50mmR rounds." @@ -140,6 +149,27 @@ contains = list(/obj/item/gun/ballistic/rifle/illestren) crate_name = "rifle crate" +/datum/supply_pack/gun/beacon + name = "Contender Break Action Rifle Crate" + desc = "Contains a single shot break action rifle to hunt wildlife that annoys you in particular. Chambered in devastating .45-70 rounds. Warranty voided if sawed off." + cost = 2250 + contains = list(/obj/item/gun/ballistic/shotgun/doublebarrel/beacon) + crate_name = "rifle crate" + +/datum/supply_pack/gun/scout + name = "Scout Sniper Rifle Crate" + desc = "Contains a traditional scoped rifle to hunt wildlife and big game from a respectful distance. Chambered in powerful .300 Magnum." + cost = 5500 + contains = list(/obj/item/gun/ballistic/rifle/scout) + crate_name = "rifle crate" + +/datum/supply_pack/gun/cobra20 + name = "Cobra-20 SMG Crate" + desc = "Contains a .45 submachine gun, manufactured by Scarborough Arms and chambered in .45" + cost = 3000 + contains = list(/obj/item/gun/ballistic/automatic/smg/c20r/cobra) + crate_name = "SMG crate" + /datum/supply_pack/gun/wt550 name = "WT-550 Auto Rifle Crate" desc = "Contains a high-powered, automatic personal defense weapon chambered in 4.6x30mm." diff --git a/code/modules/cargo/packs/sec_supply.dm b/code/modules/cargo/packs/sec_supply.dm index 023ab5ee853f..8ff09a5dc38a 100644 --- a/code/modules/cargo/packs/sec_supply.dm +++ b/code/modules/cargo/packs/sec_supply.dm @@ -56,11 +56,9 @@ /datum/supply_pack/sec_supply/riotshields name = "Riot Shields Crate" - desc = "For when the greytide gets really uppity. Contains three riot shields." - cost = 2000 - contains = list(/obj/item/shield/riot, - /obj/item/shield/riot, - /obj/item/shield/riot) + desc = "Contains a riot shield, effective at holding back hostile fauna, xenofauna, or large crowds." + cost = 600 + contains = list(/obj/item/shield/riot) crate_name = "riot shields crate" /datum/supply_pack/sec_supply/survknives diff --git a/code/modules/client/loadout/loadout_suit.dm b/code/modules/client/loadout/loadout_suit.dm index ec9fc916723e..8c758145f71e 100644 --- a/code/modules/client/loadout/loadout_suit.dm +++ b/code/modules/client/loadout/loadout_suit.dm @@ -111,3 +111,7 @@ display_name = "worn shirt" path = /obj/item/clothing/suit/ianshirt +/datum/gear/suit/hawaiian + display_name = "floral shirt" + description = "From grills to guns, this shirt's seen it all." + path = /obj/item/clothing/suit/hawaiian diff --git a/code/modules/clothing/factions/ngr.dm b/code/modules/clothing/factions/ngr.dm new file mode 100644 index 000000000000..7892a098b50d --- /dev/null +++ b/code/modules/clothing/factions/ngr.dm @@ -0,0 +1,244 @@ +////////////// +//Jumpsuits// +///////////// + +/obj/item/clothing/under/syndicate/ngr + name = "\improper NGR uniform" + desc = "A button-up in a tasteful beige with black pants, used as the basic uniform of the New Gorlex Republic." + icon_state = "ngr" + item_state = "ngr" + armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) + can_adjust = FALSE + icon = 'icons/obj/clothing/faction/ngr/uniforms.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/uniforms.dmi' + +/obj/item/clothing/under/syndicate/ngr/fatigues + name = "\improper NGR fatigues" + desc = "Beige fatigues used primarily by the ship and mech pilots of the New Gorlex Republic." + icon_state = "ngr_fatigues" + item_state = "ngr_fatigues" + +/obj/item/clothing/under/syndicate/ngr/jumpsuit + name = "\improper NGR jumpsuit" + desc = "A beige jumpsuit with black overalls used by wreckers of the New Gorlex Republic. A reminder of Gorlex VII's history as a mining colony, prior to its destruction." + icon_state = "ngr_jumpsuit" + item_state = "ngr_jumpsuit" + +/obj/item/clothing/under/syndicate/ngr/officer + name = "\improper NGR officer uniform" + desc = "A button-up in a tasteful black with beige pants, used by officers of the New Gorlex Republic." + icon_state = "ngr_officer" + item_state = "ngr_officer" + +/obj/item/clothing/under/plasmaman/ngr + name = "\improper NGR phorid envirosuit" + desc = "A button-up envirosuit with use intended for phorids of the New Gorlex Republic. Ensures they don't die of combustion." + icon_state = "ngr_envirosuit" + item_state = "ngr_envirosuit" + icon = 'icons/obj/clothing/faction/ngr/uniforms.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/uniforms.dmi' + + +//////////////////// +//Unarmored suits// +/////////////////// + +/obj/item/clothing/suit/ngr + name = "foreman's jacket" + desc = "A beige high-visibility jacket worn by the Foreman of the New Gorlex Republic." + icon = 'icons/obj/clothing/faction/ngr/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/suits.dmi' + icon_state = "ngr_foreman" + item_state = "blackcloth" + +/obj/item/clothing/suit/ngr/smock + name = "blood red smock" + desc = "A blood-red surgical smock typically worn by field medics of the New Gorlex Republic. It hides red blood really well!" + icon_state = "ngr_apron" + item_state = "redcloth" + +/obj/item/clothing/suit/hazardvest/ngr + name = "blood-red hazard vest" + desc = "A blood-red high-visibility vest typically used in work zones by the New Gorlex Republic." + icon = 'icons/obj/clothing/faction/ngr/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/suits.dmi' + icon_state = "ngr_hazard" + item_state = "redcloth" + +////////////////// +//Armored suits// +///////////////// + +/obj/item/clothing/suit/armor/ngr + name = "NGR armor vest" + desc = "A slim Type I armored vest, utilized by the 2nd Battlegroup of the New Gorlex Republic that provides decent protection against most types of damage." + icon_state = "ngr_vest" + item_state = "armor" + icon = 'icons/obj/clothing/faction/ngr/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/suits.dmi' + blood_overlay_type = "armor" + +/obj/item/clothing/suit/armor/ngr/lieutenant + name = "\improper 2nd Battlegroup overcoat" + desc = "An armored overcoat worn by the lieutenants of the New Gorlex Republic's 2nd Battlegroup." + body_parts_covered = CHEST|GROIN|ARMS + icon_state = "ngr_lieutenant" + item_state = "ngr_lieutenant" + blood_overlay_type = "coat" + armor = list("melee" = 35, "bullet" = 30, "laser" = 30, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) + +/obj/item/clothing/suit/armor/ngr/captain + name = "\improper 2nd Battlegroup coat" + desc = "An armored coat worn by captains the New Gorlex Republic's 2nd Battlegroup." + body_parts_covered = CHEST|GROIN|ARMS + icon_state = "ngr_captain" + item_state = "ngr_captain" + blood_overlay_type = "coat" + armor = list("melee" = 35, "bullet" = 30, "laser" = 30, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) + +/////////////// +//Spacesuits// +////////////// + +/obj/item/clothing/head/helmet/space/hardsuit/syndi/ngr + name = "beige-red hardsuit helmet" + desc = "A standardized dual-mode helmet derived from ICW-era advanced special operations helmets, its red partly replaced by beige. It is in EVA mode. Manufactured by Second Battlegroup." + alt_desc = "A standardized dual-mode helmet derived from ICW-era advanced special operations helmets, its red partly replaced by beige. It is in combat mode. Manufactured by Second Battlegroup." + icon_state = "hardsuit1-ngr" + item_state = "hardsuit1-ngr" + icon = 'icons/obj/clothing/faction/ngr/head.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/head.dmi' + hardsuit_type = "ngr" + +/obj/item/clothing/suit/space/hardsuit/syndi/ngr + name = "beige-red hardsuit" + desc = "A standardized dual-mode hardsuit derived from ICW-era advanced special operations hardsuits, its red partly replaced by beige. It is in EVA mode. Manufactured by Second Battlegroup." + alt_desc = "A standardized dual-mode hardsuit derived from ICW-era advanced special operations hardsuits, its red partly replaced by beige. It is in combat mode. Manufactured by the Second Battlegroup." + icon_state = "hardsuit1-ngr" + item_state = "hardsuit1-ngr" + hardsuit_type = "ngr" + icon = 'icons/obj/clothing/faction/ngr/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/suits.dmi' + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/ngr + lightweight = 1 + jetpack = null + +/obj/item/clothing/head/helmet/space/plasmaman/ngr + name = "NGR phorid envirosuit helmet" + desc = "An envirohelmet designed for phorids of the New Gorlex Republic, with intimidating blood-red stripes." + icon_state = "ngr_envirohelm" + item_state = "ngr_envirohelm" + icon = 'icons/obj/clothing/faction/ngr/head.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/head.dmi' + +///////// +//Hats// +//////// + +/obj/item/clothing/head/ngr + name = "beige garrison cap" + desc = "A garrison cap used by low-ranking members of the New Gorlex Republic's 2nd Battlegroup when off-duty." + icon_state = "ngr_garrison" + icon = 'icons/obj/clothing/faction/ngr/head.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/head.dmi' + armor = list("melee" = 10, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) + +/obj/item/clothing/head/ngr/flap + name = "beige flap cap" + desc = "A flap cap used by soldiers of the New Gorlex Republic's 2nd Battlegroup in desert environments." + icon_state = "ngr_flap" + +/obj/item/clothing/head/ngr/surgical + name = "blood-red surgical cap" + desc = "A surgical cap used by field medics of the New Gorlex Republic's 2nd Battlegroup." + icon_state = "ngr_surgery" + +/obj/item/clothing/head/hardhat/ngr + name = "blood-red hard hat" + desc = "A blood-red hardhat typically used by Wreckers and Ship Engineers of the New Gorlex Republic." + icon_state = "ngr_hardhat" + icon = 'icons/obj/clothing/faction/ngr/head.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/head.dmi' + +/obj/item/clothing/head/hardhat/ngr/foreman + name = "beige hard hat" + desc = "A beige hardhat used exclusively by the Foreman of the New Gorlex Republic." + icon_state = "ngr_foreman" + +/obj/item/clothing/head/ngr/peaked + name = "2nd Battlegroup peaked cap" + desc = "A cap worn by officers of the New Gorlex Republic's 2nd Battlegroup." + icon_state = "ngr_officer" + item_state = "ngr_officer" + +/obj/item/clothing/head/helmet/ngr + name = "\improper NGR X-11 helmet" + desc = "A well-armored helmet utilized by the New Gorlex Republic's 2nd Battlegroup, far better at protecting one's head than the softer caps." + icon = 'icons/obj/clothing/faction/ngr/head.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/head.dmi' + armor = list("melee" = 40, "bullet" = 60, "laser" = 35, "energy" = 35, "bomb" = 40, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) // The guys who specialize in ballistics would probably have better bullet armor. Maybe. + icon_state = "ngr_x11" + item_state = "ngr_x11" + +/obj/item/clothing/head/helmet/ngr/swat + name = "\improper NGR pilot helmet" + desc = "A modified X-11 helmet utilized by the pilots of the New Gorlex Republic's 2nd Battlegroup. The attached visor helps protect against sudden flashes from explosions." + flash_protect = FLASH_PROTECTION_WELDER + icon_state = "ngr_pilot" + item_state = "ngr_pilot" + +//////////// +//Glasses// +/////////// + +/obj/item/clothing/glasses/hud/security/sunglasses/ngr + name = "NGR modified mesons" + desc = "A modified version of widely-used optical meson scanners, with a flash-proof tint and integrated security HUD. Unfortunately, the opaque visor disables the meson functionality." + icon_state = "ngr_goggles" + item_state = "ngr_goggles" + icon = 'icons/obj/clothing/faction/ngr/eyes.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/eyes.dmi' + glass_colour_type = /datum/client_colour/glass_colour/green + +////////// +//Masks// +///////// + +/obj/item/clothing/mask/gas/sechailer/balaclava/ngr + name = "NGR combat balaclava" + desc = "A surprisingly advanced balaclava. while it doesn't muffle your voice it has a miniature rebreather for internals. Comfy to boot! This version is commonly used by the soldiers of the New Gorlex Republic to protect against sandstorms." + icon_state = "ngr_balaclava" + item_state = "ngr_balaclava" + icon = 'icons/obj/clothing/faction/ngr/mask.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/mask.dmi' + +/obj/item/clothing/mask/gas/syndicate/ngr + name = "NGR face mask" + desc = "A face mask that covers the nose, mouth and neck of those who wear it. Favored by field medics over the balaclava due to lessened heat while wearing." + icon_state = "ngr_facemask" + item_state = "ngr_facemask" + icon = 'icons/obj/clothing/faction/ngr/mask.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/mask.dmi' + +////////// +//Neck// +///////// + +/obj/item/clothing/neck/shemagh/ngr + name = "shemagh" + desc = "An oversized shemagh, in a tacticool blood-red for use in the 2nd Battlegroup." + icon_state = "ngr_shemagh" + icon = 'icons/obj/clothing/faction/ngr/neck.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/neck.dmi' + +////////// +//Belts// +///////// + +/obj/item/storage/belt/security/webbing/ngr + name = "NGR webbing" + desc = "A set of tactical webbing for operators of the New Gorlex Republic, can hold security gear." + icon_state = "ngr_webbing" + item_state = "ngr_webbing" + icon = 'icons/obj/clothing/faction/ngr/belt.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/belt.dmi' diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 60d6ae18c6a5..dee6b0d0c9ee 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -18,10 +18,15 @@ dog_fashion = /datum/dog_fashion/head/helmet - var/can_flashlight = FALSE //if a flashlight can be mounted. if it has a flashlight and this is false, it is permanently attached. + //if a flashlight can be mounted. if it has a flashlight and this is false, it is permanently attached. + var/can_flashlight = FALSE var/obj/item/flashlight/seclite/attached_light var/datum/action/item_action/toggle_helmet_flashlight/action_light + pocket_storage_component_path = /datum/component/storage/concrete/pockets/helmet + // should we overlay the items inside our helmet + var/content_overlays = FALSE + /obj/item/clothing/head/helmet/Initialize() . = ..() if(attached_light) @@ -173,16 +178,21 @@ var/mutable_appearance/flashlightlight_overlay if(isinhands) return - if(!attached_light) - return - if(attached_light.on) - flashlightlight_overlay = mutable_appearance('icons/mob/clothing/head.dmi', "[flashlight_state]_on") + if(attached_light) + if(attached_light.on) + flashlightlight_overlay = mutable_appearance('icons/mob/clothing/head.dmi', "[flashlight_state]_on") + else + flashlightlight_overlay = mutable_appearance('icons/mob/clothing/head.dmi', flashlight_state) + . += flashlightlight_overlay + if(content_overlays) + for(var/obj/item/I in contents) + . += I.get_helmet_overlay() else - flashlightlight_overlay = mutable_appearance('icons/mob/clothing/head.dmi', flashlight_state) - . += flashlightlight_overlay + return /obj/item/clothing/head/helmet/sec can_flashlight = TRUE + content_overlays = TRUE /obj/item/clothing/head/helmet/sec/attackby(obj/item/I, mob/user, params) if(issignaler(I)) @@ -216,6 +226,7 @@ "Snow" = "helmetalt_snow", "Urban" = "helmetalt_urban", ) + content_overlays = TRUE /obj/item/clothing/head/helmet/marine name = "tactical combat helmet" @@ -489,6 +500,7 @@ icon_state = "inteq_swat" item_state = "inteq_swat" flags_inv = HIDEHAIR + content_overlays = TRUE /obj/item/clothing/head/helmet/inteq name = "inteq helmet" @@ -496,6 +508,7 @@ icon_state = "inteq_helmet" icon_state = "inteq_helmet" can_flashlight = TRUE + content_overlays = TRUE /obj/item/clothing/head/solgov name = "\improper SolGov officer's cap" @@ -537,6 +550,7 @@ desc = "A robust combat helmet commonly employed by Syndicate forces, regardless of alignment." icon_state = "operator" item_state = "operator" + content_overlays = TRUE /obj/item/clothing/head/helmet/medical name = "\improper trauma team helmet" diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 0e9e09ee0fdd..61f032b5ef61 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -452,13 +452,6 @@ icon_state = "JackFrostHat" item_state = "JackFrostHat" -/obj/item/clothing/head/ngrcap - name = "2nd Battlegroup peaked cap" - desc = "A cap worn by officers of the New Gorlex Republic's 2nd Battlegroup." - icon_state = "ngrcap" - item_state = "ngrcap" - flags_inv = 0 - /obj/item/clothing/head/maidheadband/syndicate name = "tactical maid headband" desc = "Tacticute." diff --git a/code/modules/clothing/outfits/factions/syndicate.dm b/code/modules/clothing/outfits/factions/syndicate.dm index 8f98f29a6b1f..8f13554f4b00 100644 --- a/code/modules/clothing/outfits/factions/syndicate.dm +++ b/code/modules/clothing/outfits/factions/syndicate.dm @@ -59,10 +59,14 @@ uniform = /obj/item/clothing/under/syndicate/gorlex alt_uniform = /obj/item/clothing/under/syndicate -/datum/outfit/job/syndicate/assistant/gorlex/ngr - name = "Syndicate - Junior Agent (New Gorlex Republic)" +/datum/outfit/job/syndicate/assistant/ngr + name = "Syndicate - Initiate (New Gorlex Republic)" + id_assignment = "Initiate" + head = /obj/item/clothing/head/ngr uniform = /obj/item/clothing/under/syndicate/ngr + shoes = /obj/item/clothing/shoes/combat + alt_uniform = null /datum/outfit/job/syndicate/assistant/gec @@ -305,8 +309,16 @@ name = "Syndicate - Captain (Gorlex Marauders)" uniform = /obj/item/clothing/under/syndicate/ngr/officer - head = /obj/item/clothing/head/ngrcap - suit = /obj/item/clothing/suit/armor/vest/capcarapace/ngr_captain + head = /obj/item/clothing/head/ngr/peaked + suit = /obj/item/clothing/suit/armor/ngr/captain + +/datum/outfit/job/syndicate/captain/ngr + name = "Syndicate - Captain (New Gorlex Republic)" + + uniform = /obj/item/clothing/under/syndicate/ngr/officer + head = /obj/item/clothing/head/ngr/peaked + suit = /obj/item/clothing/suit/armor/ngr/captain + shoes = /obj/item/clothing/shoes/combat /datum/outfit/job/syndicate/captain/cybersun name = "Syndicate - Captain (Cybersun)" @@ -427,10 +439,18 @@ shoes = /obj/item/clothing/shoes/jackboots gloves = /obj/item/clothing/gloves/combat -/datum/outfit/job/syndicate/ce/gorlex/ngr +/datum/outfit/job/syndicate/ce/ngr name = "Syndicate - Foreman (New Gorlex Republic)" + head = /obj/item/clothing/head/hardhat/ngr/foreman + ears = /obj/item/radio/headset/syndicate/alt uniform = /obj/item/clothing/under/syndicate/ngr/officer + alt_uniform = null + suit = /obj/item/clothing/suit/ngr + alt_suit = null + shoes = /obj/item/clothing/shoes/combat + gloves = /obj/item/clothing/gloves/combat + //Chief Medical Officer @@ -549,6 +569,22 @@ name = "Syndicate - Sergeant (Gorlex)" id_assignment = "Sergeant" +/datum/outfit/job/syndicate/hos/ngr + name = "Syndicate - Lieutenant (New Gorlex Republic)" + id_assignment = "Lieutenant" + + ears = /obj/item/radio/headset/syndicate/alt + uniform = /obj/item/clothing/under/syndicate/ngr/officer + head = /obj/item/clothing/head/ngr/peaked + suit =/obj/item/clothing/suit/armor/ngr/lieutenant + id = /obj/item/card/id/syndicate_command/crew_id + shoes = /obj/item/clothing/shoes/combat + glasses = /obj/item/clothing/glasses/hud/security/sunglasses + suit_store = /obj/item/gun/ballistic/automatic/pistol + r_pocket = /obj/item/assembly/flash/handheld + l_pocket = /obj/item/restraints/handcuffs + backpack_contents = list(/obj/item/melee/baton/loaded=1) + /datum/outfit/job/syndicate/hos/twink name = "Syndicate - Lieutenant (Twinkleshine, NGR)" id_assignment = "Lieutenant" @@ -667,6 +703,18 @@ id = /obj/item/card/id/syndicate_command/crew_id backpack_contents = list(/obj/item/storage/box/survival/syndie=1, /obj/item/storage/firstaid/medical,) +/datum/outfit/job/syndicate/doctor/ngr + name = "Syndicate - Medical Doctor (New Gorlex Republic)" + + uniform = /obj/item/clothing/under/syndicate/ngr + head = /obj/item/clothing/head/ngr/surgical + suit = /obj/item/clothing/suit/ngr/smock + glasses = /obj/item/clothing/glasses/hud/health + r_pocket = /obj/item/kitchen/knife/combat/survival + back = /obj/item/storage/backpack/duffelbag/syndie/med + id = /obj/item/card/id/syndicate_command/crew_id + backpack_contents = list(/obj/item/storage/box/survival/syndie=1, /obj/item/storage/firstaid/medical,) + //paramedics @@ -858,6 +906,20 @@ /datum/outfit/job/syndicate/security/gorlex name = "Syndicate - Assault Operative (Gorlex)" +/datum/outfit/job/syndicate/security/ngr + name = "Syndicate - Operative (New Gorlex Republic)" + id_assignment = "Operative" + job_icon = "securityofficer" + + uniform = /obj/item/clothing/under/syndicate/ngr + belt = /obj/item/storage/belt/security/webbing/ngr + suit = /obj/item/clothing/suit/armor/ngr + gloves = /obj/item/clothing/gloves/color/black + head = /obj/item/clothing/head/helmet/ngr + shoes = /obj/item/clothing/shoes/combat + l_pocket = /obj/item/restraints/handcuffs + r_pocket = /obj/item/assembly/flash/handheld + /datum/outfit/job/syndicate/security/twink name = "Syndicate - Operative (Twinkleshine)" @@ -933,6 +995,17 @@ shoes = /obj/item/clothing/shoes/workboots ears = /obj/item/radio/headset/alt +/datum/outfit/job/syndicate/miner/ngr + name = "Syndicate - Wrecker (New Gorlex Republic)" + id_assignment = "Wrecker" + + head = /obj/item/clothing/head/hardhat/ngr + suit = /obj/item/clothing/suit/hazardvest/ngr + uniform = /obj/item/clothing/under/syndicate/ngr/jumpsuit + accessory = /obj/item/clothing/accessory/armband/cargo + shoes = /obj/item/clothing/shoes/workboots + ears = /obj/item/radio/headset/alt + /datum/outfit/job/syndicate/miner/twink name = "Syndicate - Miner (Twinkleshine, SUNS)" @@ -1024,6 +1097,16 @@ shoes = /obj/item/clothing/shoes/workboots glasses = null +/datum/outfit/job/syndicate/engineer/ngr + name = "Syndicate - Mechanic (New Gorlex Republic)" + id_assignment = "Mechanic" + + head = /obj/item/clothing/head/hardhat/ngr + suit = /obj/item/clothing/suit/hazardvest/ngr + uniform = /obj/item/clothing/under/syndicate/ngr + shoes = /obj/item/clothing/shoes/workboots + glasses = null + /datum/outfit/job/syndicate/engineer/twink name = "Syndicate - Ship Engineer (Twinkleshine, GEC)" diff --git a/code/modules/clothing/outfits/plasmaman.dm b/code/modules/clothing/outfits/plasmaman.dm index ba38a4a9240b..05b8c0e1a42c 100644 --- a/code/modules/clothing/outfits/plasmaman.dm +++ b/code/modules/clothing/outfits/plasmaman.dm @@ -217,3 +217,9 @@ head = /obj/item/clothing/head/helmet/space/plasmaman/solgov uniform = /obj/item/clothing/under/plasmaman/solgov gloves = /obj/item/clothing/gloves/color/plasmaman/white + +/datum/outfit/plasmaman/ngr + name = "Plasmangr" + head = /obj/item/clothing/head/helmet/space/plasmaman/ngr + uniform= /obj/item/clothing/under/plasmaman/ngr + gloves = /obj/item/clothing/gloves/color/plasmaman/black diff --git a/code/modules/clothing/spacesuits/_spacesuits.dm b/code/modules/clothing/spacesuits/_spacesuits.dm index 98a360a48ae2..bd1817e1bf45 100644 --- a/code/modules/clothing/spacesuits/_spacesuits.dm +++ b/code/modules/clothing/spacesuits/_spacesuits.dm @@ -21,6 +21,8 @@ flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF resistance_flags = NONE dog_fashion = null + content_overlays = FALSE + pocket_storage_component_path = null /obj/item/clothing/suit/space name = "space suit" diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 1ea5af9f1ea4..c07841cdba5a 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -444,26 +444,6 @@ combat_slowdown = 0.5 jetpack = null -//2nd Battlegroup Syndie suit -/obj/item/clothing/head/helmet/space/hardsuit/syndi/sbg - name = "beige-red hardsuit helmet" - desc = "A standardized dual-mode helmet derived from ICW-era advanced special operations helmets, its red partly replaced by beige. It is in EVA mode. Manufactured by Second Battlegroup." - alt_desc = "A standardized dual-mode helmet derived from ICW-era advanced special operations helmets, its red partly replaced by beige. It is in combat mode. Manufactured by Second Battlegroup." - icon_state = "hardsuit1-sbg" - item_state = "hardsuit1-sbg" - hardsuit_type = "sbg" - -/obj/item/clothing/suit/space/hardsuit/syndi/sbg - name = "beige-red hardsuit" - desc = "A standardized dual-mode hardsuit derived from ICW-era advanced special operations hardsuits, its red partly replaced by beige. It is in EVA mode. Manufactured by Second Battlegroup." - alt_desc = "A standardized dual-mode hardsuit derived from ICW-era advanced special operations hardsuits, its red partly replaced by beige. It is in combat mode. Manufactured by the Second Battlegroup." - icon_state = "hardsuit1-sbg" - item_state = "hardsuit1-sbg" - hardsuit_type = "sbg" - helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/sbg - lightweight = 1 - jetpack = null - //Hardliner Syndie suit /obj/item/clothing/head/helmet/space/hardsuit/syndi/hl name = "white-red hardsuit helmet" diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index ae8f11ed0387..889bcc0420f2 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -159,15 +159,6 @@ desc = "An extraordinarily fashionable haori, utilized by Cybersun captains. Weaved with armored fabric to protect the user from gunshots." icon_state = "carapace_cybersun" -/obj/item/clothing/suit/armor/vest/capcarapace/ngr_captain - name = "\improper 2nd Battlegroup jacket" - desc = "An armored jacket worn by the New Gorlex Republic's 2nd Battlegroup." - body_parts_covered = CHEST|GROIN|ARMS|HANDS - icon_state = "carapace_ngr" - item_state = "carapace_ngr" - blood_overlay_type = "coat" - armor = list("melee" = 35, "bullet" = 30, "laser" = 30, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) - /obj/item/clothing/suit/armor/vest/capcarapace/captunic name = "captain's parade coat" desc = "Worn by a captain to show their class." diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index a99a1e2937fb..f8e8c3f69909 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -663,8 +663,8 @@ flags_inv = HIDEHAIR|HIDEEARS|HIDEFACIALHAIR|HIDEFACE|HIDEMASK /obj/item/clothing/suit/hawaiian - name = "hawaiian overshirt" - desc = "A cool shirt for chilling on the beach." + name = "floral shirt" + desc = "From grills to guns, this shirt's seen it all." icon_state = "hawaiian_blue" item_state = "hawaiian_blue" diff --git a/code/modules/clothing/under/jobs/cargo.dm b/code/modules/clothing/under/jobs/cargo.dm index c5426e63883e..2341da5567a9 100644 --- a/code/modules/clothing/under/jobs/cargo.dm +++ b/code/modules/clothing/under/jobs/cargo.dm @@ -46,7 +46,7 @@ supports_variations = KEPORI_VARIATION /obj/item/clothing/under/rank/cargo/miner/lavaland - desc = "A light uniform for operating in hazardous environments, manufactured en-masse by EXOCON for the profitable frontier prospector market. Adventurous khaki jeans included." + desc = "A light uniform for operating in hazardous environments, manufactured en-masse by EXOCOM for the profitable frontier prospector market. Adventurous khaki jeans included." name = "prospector jumpsuit" icon_state = "explorer" item_state = "explorer" diff --git a/code/modules/clothing/under/syndicate.dm b/code/modules/clothing/under/syndicate.dm index 36cc7c96220e..9eb76ee6bf5e 100644 --- a/code/modules/clothing/under/syndicate.dm +++ b/code/modules/clothing/under/syndicate.dm @@ -93,22 +93,6 @@ armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) alt_covers_chest = TRUE -/obj/item/clothing/under/syndicate/ngr/officer - name = "NGR officer uniform" - desc = "A black uniform worn by officers of the New Gorlex Republic." - icon_state = "ngr_officer" - can_adjust = FALSE - armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) - alt_covers_chest = TRUE - -/obj/item/clothing/under/syndicate/ngr - name = "NGR uniform" - desc = "A button-up in a tasteful shade of gray with red pants, used as the basic uniform of the New Gorlex Republic." - icon_state = "ngr_grunt" - can_adjust = FALSE - armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) - alt_covers_chest = TRUE - /obj/item/clothing/under/syndicate/gorlex name = "Gorlex Marauder uniform" desc = "Originally worn by the miners of the Gorlex VII colony, it is now donned by veteran Gorlex Marauders." diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm index 41fce675bf70..6955bd23d66b 100644 --- a/code/modules/mining/equipment/explorer_gear.dm +++ b/code/modules/mining/equipment/explorer_gear.dm @@ -1,7 +1,7 @@ /****************Explorer's Suit and Mask****************/ /obj/item/clothing/suit/hooded/explorer name = "explorer suit" - desc = "A light, armor-plated softsuit, designed for exploration of dangerous planetary enviroments. An NT design by origin, later reappropriated by EXOCON for mass retail production." + desc = "A light, armor-plated softsuit, designed for exploration of dangerous planetary enviroments. An NT design by origin, later reappropriated by EXOCOM for mass retail production." icon_state = "explorer" item_state = "explorer" body_parts_covered = CHEST|GROIN|LEGS|ARMS @@ -36,7 +36,7 @@ /obj/item/clothing/mask/gas/explorer name = "explorer gas mask" - desc = "An advanced atmospheric scrubbing mask with a built-in pressure seal, manufactured by EXOCON. Can be connected to an air supply." + desc = "An advanced atmospheric scrubbing mask with a built-in pressure seal, manufactured by EXOCOM. Can be connected to an air supply." icon_state = "gas_mining" visor_flags = BLOCK_GAS_SMOKE_EFFECT | ALLOWINTERNALS visor_flags_inv = HIDEFACIALHAIR diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm index debdb2e2ea02..278fccd0fcd1 100644 --- a/code/modules/mining/equipment/kinetic_crusher.dm +++ b/code/modules/mining/equipment/kinetic_crusher.dm @@ -6,7 +6,7 @@ lefthand_file = 'icons/mob/inhands/weapons/hammers_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/hammers_righthand.dmi' name = "proto-magnetic crusher" - desc = "A multipurpose disembarkation and self-defense tool designed by EXOCON using an incomplete Nanotrasen prototype. \ + desc = "A multipurpose disembarkation and self-defense tool designed by EXOCOM using an incomplete Nanotrasen prototype. \ Found in the grime-stained hands of wannabee explorers across the frontier, it cuts rock and hews flora using magnetic osscilation and a heavy cleaving edge." force = 0 //You can't hit stuff unless wielded w_class = WEIGHT_CLASS_BULKY diff --git a/code/modules/mining/equipment/mining_tools.dm b/code/modules/mining/equipment/mining_tools.dm index d334b0ce3de4..ed8be5000a66 100644 --- a/code/modules/mining/equipment/mining_tools.dm +++ b/code/modules/mining/equipment/mining_tools.dm @@ -79,7 +79,7 @@ icon_state = "diamonddrill" item_state = "diamonddrill" toolspeed = 0.2 - desc = "EXOCON's improvement on the NT autodrill design, featuring a premium diamond cutting head. Yours is the drill that will pierce the heavens!" + desc = "EXOCOM's improvement on the NT autodrill design, featuring a premium diamond cutting head. Yours is the drill that will pierce the heavens!" force = 20 /obj/item/pickaxe/drill/cyborg/diamond //This is the BORG version! @@ -94,7 +94,7 @@ toolspeed = 0.1 //the epitome of powertools. extremely fast mining usesound = 'sound/weapons/sonic_jackhammer.ogg' hitsound = 'sound/weapons/sonic_jackhammer.ogg' - desc = "The epitome of conventional rock-smashing technology, invented by NT and cost-optimized by EXOCON. Smashes rocks, objects, and unfortunate wildlife with sonic blasts." + desc = "The epitome of conventional rock-smashing technology, invented by NT and cost-optimized by EXOCOM. Smashes rocks, objects, and unfortunate wildlife with sonic blasts." force = 25 attack_verb = list("blasted", "smashed", "slammed", "hammered") diff --git a/code/modules/mining/equipment/regenerative_core.dm b/code/modules/mining/equipment/regenerative_core.dm index 87736c3438e4..4bd6824327f3 100644 --- a/code/modules/mining/equipment/regenerative_core.dm +++ b/code/modules/mining/equipment/regenerative_core.dm @@ -1,7 +1,7 @@ /*********************Hivelord stabilizer****************/ /obj/item/hivelordstabilizer name = "stabilizing serum" - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/medicine.dmi' icon_state = "bottle19" desc = "Inject certain types of monster organs with this stabilizer to preserve their healing powers indefinitely." w_class = WEIGHT_CLASS_TINY diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index c84d61ab7cf2..15cde601689e 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -1,7 +1,7 @@ /* Mining Points Equipment Vendor */ /obj/machinery/vending/mining_equipment name = "frontier equipment vendor" - desc = "An equipment vendor for miners, prospectors, and all manner of far reach scroungers. Ore Redemption Points can be spent here to purchase rough-and-tumble goods. Sold by EXOCON." + desc = "An equipment vendor for miners, prospectors, and all manner of far reach scroungers. Ore Redemption Points can be spent here to purchase rough-and-tumble goods. Sold by EXOCOM." icon_state = "mining" icon_deny = "mining-deny" max_integrity = 500 // A bit more durable than your average snack vendor diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 380b1e8f61fc..ae867d518eb5 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -239,7 +239,8 @@ message_param = "beeps at %t." /datum/emote/living/carbon/human/robot_tongue/beep/run_emote(mob/user, params) - if(..()) + . = ..() + if(.) playsound(user.loc, 'sound/machines/twobeep.ogg', 50) /datum/emote/living/carbon/human/robot_tongue/buzz @@ -249,7 +250,8 @@ message_param = "buzzes at %t." /datum/emote/living/carbon/human/robot_tongue/buzz/run_emote(mob/user, params) - if(..()) + . = ..() + if(.) playsound(user.loc, 'sound/machines/buzz-sigh.ogg', 50) /datum/emote/living/carbon/human/robot_tongue/buzz2 @@ -257,7 +259,8 @@ message = "buzzes twice." /datum/emote/living/carbon/human/robot_tongue/buzz2/run_emote(mob/user, params) - if(..()) + . = ..() + if(.) playsound(user.loc, 'sound/machines/buzz-two.ogg', 50) /datum/emote/living/carbon/human/robot_tongue/chime @@ -266,7 +269,8 @@ message = "chimes." /datum/emote/living/carbon/human/robot_tongue/chime/run_emote(mob/user, params) - if(..()) + . = ..() + if(.) playsound(user.loc, 'sound/machines/chime.ogg', 50) /datum/emote/living/carbon/human/robot_tongue/no @@ -275,7 +279,8 @@ message = "emits an negative blip." /datum/emote/living/carbon/human/robot_tongue/no/run_emote(mob/user, params) - if(..()) + . = ..() + if(.) playsound(user.loc, 'sound/machines/synth_no.ogg', 50) /datum/emote/living/carbon/human/robot_tongue/ping @@ -285,7 +290,8 @@ message_param = "pings at %t." /datum/emote/living/carbon/human/robot_tongue/ping/run_emote(mob/user, params) - if(..()) + . = ..() + if(.) playsound(user.loc, 'sound/machines/ping.ogg', 50) /datum/emote/living/carbon/human/robot_tongue/warn @@ -294,7 +300,8 @@ message = "blares an alarm!" /datum/emote/living/carbon/human/robot_tongue/warn/run_emote(mob/user, params) - if(..()) + . = ..() + if(.) playsound(user.loc, 'sound/machines/warning-buzzer.ogg', 50) /datum/emote/living/carbon/human/robot_tongue/yes @@ -303,7 +310,8 @@ message = "emits an affirmative blip." /datum/emote/living/carbon/human/robot_tongue/yes/run_emote(mob/user, params) - if(..()) + . = ..() + if(.) playsound(user.loc, 'sound/machines/synth_yes.ogg', 50) // the following emote were originally clown-locked and synthetic exclusive @@ -315,7 +323,8 @@ message = "plays a sad trombone..." /datum/emote/living/carbon/human/robot_tongue/sad/run_emote(mob/user, params) - if(..()) + . = ..() + if(.) playsound(user.loc, 'sound/misc/sadtrombone.ogg', 50) //kepi (plus one vox i guess) diff --git a/code/modules/mob/living/carbon/human/species_types/ethereal.dm b/code/modules/mob/living/carbon/human/species_types/ethereal.dm index 248e9f413795..6aa59e824169 100644 --- a/code/modules/mob/living/carbon/human/species_types/ethereal.dm +++ b/code/modules/mob/living/carbon/human/species_types/ethereal.dm @@ -1,4 +1,8 @@ #define ELZUOSE_EMAG_COLORS list("#00ffff", "#ffc0cb", "#9400D3", "#4B0082", "#0000FF", "#00FF00", "#FFFF00", "#FF7F00", "#FF0000") +#define GOOD_SOIL list(/turf/open/floor/plating/grass, /turf/open/floor/plating/dirt, /turf/open/floor/ship/dirt, /turf/open/floor/grass/ship, /turf/open/floor/plating/asteroid/whitesands/grass, /turf/open/floor/grass/fairy/beach) +#define DIG_TIME (7.5 SECONDS) +#define ROOT_TIME (3 SECONDS) +#define ROOT_CHARGE_GAIN (5 * ELZUOSE_CHARGE_SCALING_MULTIPLIER) /datum/species/elzuose name = "\improper Elzuose" @@ -14,6 +18,7 @@ attack_type = BURN //burn bish exotic_bloodtype = "E" damage_overlay_type = "" //We are too cool for regular damage overlays + species_age_max = 300 species_traits = list(DYNCOLORS, EYECOLOR, HAIR, FACEHAIR) changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN | SLIME_EXTRACT species_language_holder = /datum/language_holder/ethereal @@ -46,35 +51,118 @@ loreblurb = "Elzuosa are an uncommon and unusual species best described as crystalline, electrically-powered plantpeople. They hail from the warm planet Kalixcis, where they evolved alongside the Sarathi. Kalixcian culture places no importance on blood-bonds, and those from it tend to consider their family anyone they are sufficiently close to, and choose their own names." var/drain_time = 0 //used to keep ethereals from spam draining power sources var/obj/effect/dummy/lighting_obj/ethereal_light + var/datum/action/innate/root/rooting /datum/species/elzuose/Destroy(force) if(ethereal_light) QDEL_NULL(ethereal_light) return ..() -/datum/species/elzuose/on_species_gain(mob/living/carbon/C, datum/species/old_species, pref_load) +/datum/species/elzuose/on_species_gain(mob/living/carbon/_carbon, datum/species/old_species, pref_load) . = ..() - if(!ishuman(C)) + if(!ishuman(_carbon)) return - var/mob/living/carbon/human/ethereal = C + var/mob/living/carbon/human/ethereal = _carbon default_color = "#[ethereal.dna.features["ethcolor"]]" RegisterSignal(ethereal, COMSIG_ATOM_EMAG_ACT, PROC_REF(on_emag_act)) RegisterSignal(ethereal, COMSIG_ATOM_EMP_ACT, PROC_REF(on_emp_act)) ethereal_light = ethereal.mob_light() spec_updatehealth(ethereal) + rooting = new + rooting.Grant(_carbon) + RegisterSignal(ethereal, COMSIG_DIGOUT, PROC_REF(digout)) + RegisterSignal(ethereal, COMSIG_MOVABLE_MOVED, PROC_REF(uproot)) //The following code is literally only to make admin-spawned ethereals not be black. - C.dna.features["mcolor"] = C.dna.features["ethcolor"] //Ethcolor and Mut color are both dogshit and will be replaced - for(var/obj/item/bodypart/BP as anything in C.bodyparts) + _carbon.dna.features["mcolor"] = _carbon.dna.features["ethcolor"] //Ethcolor and Mut color are both dogshit and will be replaced + for(var/obj/item/bodypart/BP as anything in _carbon.bodyparts) if(BP.limb_id == SPECIES_ELZUOSE) BP.update_limb(is_creating = TRUE) -/datum/species/elzuose/on_species_loss(mob/living/carbon/human/C, datum/species/new_species, pref_load) - UnregisterSignal(C, COMSIG_ATOM_EMAG_ACT) - UnregisterSignal(C, COMSIG_ATOM_EMP_ACT) +/datum/species/elzuose/on_species_loss(mob/living/carbon/human/_carbon, datum/species/new_species, pref_load) + UnregisterSignal(_carbon, COMSIG_ATOM_EMAG_ACT) + UnregisterSignal(_carbon, COMSIG_ATOM_EMP_ACT) + UnregisterSignal(_carbon, COMSIG_DIGOUT) + UnregisterSignal(_carbon, COMSIG_MOVABLE_MOVED) QDEL_NULL(ethereal_light) + if(rooting) + rooting.Remove(_carbon) return ..() +/datum/action/innate/root + name = "Root" + desc = "Root into good soil to gain charge." + check_flags = AB_CHECK_CONSCIOUS + button_icon_state = "plant-22" + icon_icon = 'icons/obj/flora/plants.dmi' + background_icon_state = "bg_alien" + +/datum/action/innate/root/Activate() + var/mob/living/carbon/human/_human = owner + var/datum/species/elzuose/_elzu = _human.dna.species + // this is healthy for elzu, they shouldnt be able to overcharge and get heart attacks from this + var/obj/item/organ/stomach/ethereal/stomach = _human.getorganslot(ORGAN_SLOT_STOMACH) + + if(_human.wear_suit && istype(_human.wear_suit, /obj/item/clothing)) + var/obj/item/clothing/CS = _human.wear_suit + if (CS.clothing_flags & THICKMATERIAL) + to_chat(_human, span_warning("Your [CS.name] is too thick to root in!")) + return + + if(stomach.crystal_charge > ELZUOSE_CHARGE_FULL) + to_chat(_human,span_warning("Your charge is full!")) + return + _elzu.drain_time = world.time + ROOT_TIME + _human.visible_message(span_notice("[_human] is digging into the ground"),span_warning("You start to dig yourself into the ground to root. You won't won't be able to move once you start the process."),span_notice("You hear digging.")) + if(!do_after(_human,DIG_TIME, target = _human)) + to_chat(_human,span_warning("You were interupted!")) + return + _human.apply_status_effect(/datum/status_effect/rooted) + to_chat(_human, span_notice("You root into the ground and begin to feed.")) + + while(do_after(_human, ROOT_TIME, target = _human)) + if(istype(stomach)) + to_chat(_human, span_notice("You receive some charge from rooting.")) + stomach.adjust_charge(ROOT_CHARGE_GAIN) + _human.adjustBruteLoss(-3) + _human.adjustFireLoss(-3) + + if(stomach.crystal_charge > ELZUOSE_CHARGE_FULL) + stomach.crystal_charge = ELZUOSE_CHARGE_FULL + to_chat(_human, span_notice("You're full on charge!")) + break + + else + to_chat(_human,span_warning("You're missing your biological battery and can't recieve charge from rooting!")) + break + +/datum/species/elzuose/proc/digout(mob/living/carbon/human/_human) + if(do_after(_human, DIG_TIME,target = _human)) + to_chat(_human,span_notice("You finish digging yourself out.")) + _human.remove_status_effect(/datum/status_effect/rooted) + return + +/datum/species/elzuose/proc/uproot(mob/living/carbon/human/_human) + //You got moved and uprooted, time to suffer the consequences. + if(_human.has_status_effect(/datum/status_effect/rooted)) + _human.visible_message(span_warning("[_human] is forcefully uprooted. That looked like it hurt."),span_warning("You're forcefully unrooted! Ouch!"),span_warning("You hear someone scream in pain.")) + _human.apply_damage(8,BRUTE,BODY_ZONE_CHEST) + _human.apply_damage(8,BRUTE,BODY_ZONE_L_LEG) + _human.apply_damage(8,BRUTE,BODY_ZONE_R_LEG) + _human.emote("scream") + _human.remove_status_effect(/datum/status_effect/rooted) + return + +/datum/action/innate/root/IsAvailable() + if(..()) + var/mob/living/carbon/human/_human = owner + var/turf/terrain = get_turf(_human) + if(_human.has_status_effect(/datum/status_effect/rooted)) + return FALSE + if(is_type_in_list(terrain,GOOD_SOIL)) + return TRUE + return FALSE + /datum/species/elzuose/random_name(gender,unique,lastname) if(unique) return random_unique_lizard_name(gender) @@ -86,30 +174,30 @@ return randname -/datum/species/elzuose/spec_updatehealth(mob/living/carbon/human/H) +/datum/species/elzuose/spec_updatehealth(mob/living/carbon/human/_human) . = ..() if(!ethereal_light) return - if(H.stat != DEAD && !EMPeffect) + if(_human.stat != DEAD && !EMPeffect) if(!emag_effect) - current_color = health_adjusted_color(H, default_color) - set_ethereal_light(H, current_color) + current_color = health_adjusted_color(_human, default_color) + set_ethereal_light(_human, current_color) ethereal_light.set_light_on(TRUE) fixed_mut_color = copytext_char(current_color, 2) else ethereal_light.set_light_on(FALSE) fixed_mut_color = rgb(128,128,128) - for(var/obj/item/bodypart/parts_to_update as anything in H.bodyparts) + for(var/obj/item/bodypart/parts_to_update as anything in _human.bodyparts) parts_to_update.species_color = fixed_mut_color parts_to_update.update_limb() - H.update_body() - H.update_hair() + _human.update_body() + _human.update_hair() -/datum/species/elzuose/proc/health_adjusted_color(mob/living/carbon/human/H, default_color) - var/health_percent = max(H.health, 0) / 100 +/datum/species/elzuose/proc/health_adjusted_color(mob/living/carbon/human/_human, default_color) + var/health_percent = max(_human.health, 0) / 100 var/static/unhealthy_color_red_part = GETREDPART(unhealthy_color) var/static/unhealthy_color_green_part = GETGREENPART(unhealthy_color) @@ -126,130 +214,129 @@ ) return result -/datum/species/elzuose/proc/set_ethereal_light(mob/living/carbon/human/H, current_color) +/datum/species/elzuose/proc/set_ethereal_light(mob/living/carbon/human/_human, current_color) if(!ethereal_light) return - var/health_percent = max(H.health, 0) / 100 + var/health_percent = max(_human.health, 0) / 100 var/light_range = 1 + (1 * health_percent) var/light_power = 1 + round(0.5 * health_percent) ethereal_light.set_light_range_power_color(light_range, light_power, current_color) -/datum/species/elzuose/proc/on_emp_act(mob/living/carbon/human/H, severity) +/datum/species/elzuose/proc/on_emp_act(mob/living/carbon/human/_human, severity) EMPeffect = TRUE - spec_updatehealth(H) - to_chat(H, "You feel the light of your body leave you.") + spec_updatehealth(_human) + to_chat(_human, span_notice("You feel the light of your body leave you.")) switch(severity) if(EMP_LIGHT) - addtimer(CALLBACK(src, PROC_REF(stop_emp), H), 10 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) //We're out for 10 seconds + addtimer(CALLBACK(src, PROC_REF(stop_emp), _human), 10 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) //We're out for 10 seconds if(EMP_HEAVY) - addtimer(CALLBACK(src, PROC_REF(stop_emp), H), 20 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) //We're out for 20 seconds + addtimer(CALLBACK(src, PROC_REF(stop_emp), _human), 20 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) //We're out for 20 seconds -/datum/species/elzuose/proc/on_emag_act(mob/living/carbon/human/H, mob/user) +/datum/species/elzuose/proc/on_emag_act(mob/living/carbon/human/_human, mob/user) if(emag_effect) return emag_effect = TRUE if(user) - to_chat(user, "You tap [H] on the back with your card.") - H.visible_message("[H] starts flickering in an array of colors!") - handle_emag(H) - addtimer(CALLBACK(src, PROC_REF(stop_emag), H), 30 SECONDS) //Disco mode for 30 seconds! This doesn't affect the ethereal at all besides either annoying some players, or making someone look badass. + to_chat(user, span_notice("You tap [_human] on the back with your card.")) + _human.visible_message(span_danger("[_human] starts flickering in an array of colors!")) + handle_emag(_human) + addtimer(CALLBACK(src, PROC_REF(stop_emag), _human), 30 SECONDS) //Disco mode for 30 seconds! This doesn't affect the ethereal at all besides either annoying some players, or making someone look badass. -/datum/species/elzuose/spec_life(mob/living/carbon/human/H) +/datum/species/elzuose/spec_life(mob/living/carbon/human/_human) .=..() - handle_charge(H) + handle_charge(_human) -/datum/species/elzuose/proc/stop_emp(mob/living/carbon/human/H) +/datum/species/elzuose/proc/stop_emp(mob/living/carbon/human/_human) EMPeffect = FALSE - spec_updatehealth(H) - to_chat(H, "You feel more energized as your shine comes back.") + spec_updatehealth(_human) + to_chat(_human, span_notice("You feel more energized as your shine comes back.")) -/datum/species/elzuose/proc/handle_emag(mob/living/carbon/human/H) +/datum/species/elzuose/proc/handle_emag(mob/living/carbon/human/_human) if(!emag_effect) return current_color = pick(ELZUOSE_EMAG_COLORS) - spec_updatehealth(H) - addtimer(CALLBACK(src, PROC_REF(handle_emag), H), 5) //Call ourselves every 0.5 seconds to change color + spec_updatehealth(_human) + addtimer(CALLBACK(src, PROC_REF(handle_emag), _human), 5) //Call ourselves every 0.5 seconds to change color -/datum/species/elzuose/proc/stop_emag(mob/living/carbon/human/H) +/datum/species/elzuose/proc/stop_emag(mob/living/carbon/human/_human) emag_effect = FALSE - spec_updatehealth(H) - H.visible_message("[H] stops flickering and goes back to their normal state!") + spec_updatehealth(_human) + _human.visible_message(span_danger("[_human] stops flickering and goes back to their normal state!")) -/datum/species/elzuose/proc/handle_charge(mob/living/carbon/human/H) +/datum/species/elzuose/proc/handle_charge(mob/living/carbon/human/_human) brutemod = 1.25 - switch(get_charge(H)) + switch(get_charge(_human)) if(ELZUOSE_CHARGE_NONE to ELZUOSE_CHARGE_LOWPOWER) - if(get_charge(H) == ELZUOSE_CHARGE_NONE) - H.throw_alert("ELZUOSE_CHARGE", /atom/movable/screen/alert/etherealcharge, 3) + if(get_charge(_human) == ELZUOSE_CHARGE_NONE) + _human.throw_alert("ELZUOSE_CHARGE", /atom/movable/screen/alert/etherealcharge, 3) else - H.throw_alert("ELZUOSE_CHARGE", /atom/movable/screen/alert/etherealcharge, 2) - if(H.health > 10.5) - apply_damage(0.2, TOX, null, null, H) + _human.throw_alert("ELZUOSE_CHARGE", /atom/movable/screen/alert/etherealcharge, 2) + if(_human.health > 10.5) + apply_damage(0.2, TOX, null, null, _human) brutemod = 1.75 if(ELZUOSE_CHARGE_LOWPOWER to ELZUOSE_CHARGE_NORMAL) - H.throw_alert("ELZUOSE_CHARGE", /atom/movable/screen/alert/etherealcharge, 1) + _human.throw_alert("ELZUOSE_CHARGE", /atom/movable/screen/alert/etherealcharge, 1) brutemod = 1.5 if(ELZUOSE_CHARGE_FULL to ELZUOSE_CHARGE_OVERLOAD) - H.throw_alert("ethereal_overcharge", /atom/movable/screen/alert/ethereal_overcharge, 1) + _human.throw_alert("ethereal_overcharge", /atom/movable/screen/alert/ethereal_overcharge, 1) brutemod = 1.5 if(ELZUOSE_CHARGE_OVERLOAD to ELZUOSE_CHARGE_DANGEROUS) - H.throw_alert("ethereal_overcharge", /atom/movable/screen/alert/ethereal_overcharge, 2) + _human.throw_alert("ethereal_overcharge", /atom/movable/screen/alert/ethereal_overcharge, 2) brutemod = 1.75 if(prob(10)) //10% each tick for ethereals to explosively release excess energy if it reaches dangerous levels - discharge_process(H) + discharge_process(_human) else - H.clear_alert("ELZUOSE_CHARGE") - H.clear_alert("ethereal_overcharge") + _human.clear_alert("ELZUOSE_CHARGE") + _human.clear_alert("ethereal_overcharge") -/datum/species/elzuose/proc/discharge_process(mob/living/carbon/human/H) - to_chat(H, "You begin to lose control over your charge!") - H.visible_message("[H] begins to spark violently!") +/datum/species/elzuose/proc/discharge_process(mob/living/carbon/human/_human) + _human.visible_message(span_danger("[_human] begins to spark violently!"),_human,span_warning("You begin to lose control over your charge!")) var/static/mutable_appearance/overcharge //shameless copycode from lightning spell overcharge = overcharge || mutable_appearance('icons/effects/effects.dmi', "electricity", EFFECTS_LAYER) - H.add_overlay(overcharge) - if(do_mob(H, H, 50, 1)) - H.flash_lighting_fx(5, 7, current_color) - var/obj/item/organ/stomach/ethereal/stomach = H.getorganslot(ORGAN_SLOT_STOMACH) - playsound(H, 'sound/magic/lightningshock.ogg', 100, TRUE, extrarange = 5) - H.cut_overlay(overcharge) - tesla_zap(H, 2, (stomach.crystal_charge / ELZUOSE_CHARGE_SCALING_MULTIPLIER) * 50, ZAP_OBJ_DAMAGE | ZAP_ALLOW_DUPLICATES) + _human.add_overlay(overcharge) + if(do_mob(_human, _human, 50, 1)) + _human.flash_lighting_fx(5, 7, current_color) + var/obj/item/organ/stomach/ethereal/stomach = _human.getorganslot(ORGAN_SLOT_STOMACH) + playsound(_human, 'sound/magic/lightningshock.ogg', 100, TRUE, extrarange = 5) + _human.cut_overlay(overcharge) + tesla_zap(_human, 2, (stomach.crystal_charge / ELZUOSE_CHARGE_SCALING_MULTIPLIER) * 50, ZAP_OBJ_DAMAGE | ZAP_ALLOW_DUPLICATES) if(istype(stomach)) stomach.adjust_charge(ELZUOSE_CHARGE_FULL - stomach.crystal_charge) - to_chat(H, "You violently discharge energy!") - H.visible_message("[H] violently discharges energy!") + to_chat(_human,span_warning("You violently discharge energy!")) + _human.visible_message(span_danger("[_human] violently discharges energy!")) if(prob(10)) //chance of developing heart disease to dissuade overcharging oneself var/datum/disease/D = new /datum/disease/heart_failure - H.ForceContractDisease(D) - to_chat(H, "You're pretty sure you just felt your heart stop for a second there..") - H.playsound_local(H, 'sound/effects/singlebeat.ogg', 100, 0) - H.Paralyze(100) + _human.ForceContractDisease(D) + to_chat(_human, span_userdanger("You're pretty sure you just felt your heart stop for a second there.")) + _human.playsound_local(_human, 'sound/effects/singlebeat.ogg', 100, 0) + _human.Paralyze(100) return -/datum/species/elzuose/proc/get_charge(mob/living/carbon/H) //this feels like it should be somewhere else. Eh? - var/obj/item/organ/stomach/ethereal/stomach = H.getorganslot(ORGAN_SLOT_STOMACH) +/datum/species/elzuose/proc/get_charge(mob/living/carbon/_human) //this feels like it should be somewhere else. Eh? + var/obj/item/organ/stomach/ethereal/stomach = _human.getorganslot(ORGAN_SLOT_STOMACH) if(istype(stomach)) return stomach.crystal_charge return ELZUOSE_CHARGE_NONE -/datum/species/elzuose/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H) +/datum/species/elzuose/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/_human) if(istype(I, /obj/item/multitool)) if(user.a_intent == INTENT_HARM) . = ..() // multitool beatdown return if (emag_effect == TRUE) - to_chat(user, "The multitool can't get a lock on [H]'s EM frequency") + to_chat(user, span_warning("The multitool can't get a lock on [_human]'s EM frequency!")) return - if(user != H) + if(user != _human) // random color change default_color = "#" + GLOB.color_list_ethereal[pick(GLOB.color_list_ethereal)] - current_color = health_adjusted_color(H, default_color) - spec_updatehealth(H) - H.visible_message("[H]'s EM frequency is scrambled to a random color.") + current_color = health_adjusted_color(_human, default_color) + spec_updatehealth(_human) + _human.visible_message(span_danger("[_human]'s EM frequency is scrambled to a random color.")) else // select new color var/new_etherealcolor = input(user, "Choose your Elzuose color:", "Character Preference",default_color) as color|null @@ -257,10 +344,10 @@ var/temp_hsv = RGBtoHSV(new_etherealcolor) if(ReadHSV(temp_hsv)[3] >= ReadHSV("#505050")[3]) // elzu colors should be bright ok?? default_color = sanitize_hexcolor(new_etherealcolor, 6, TRUE) - current_color = health_adjusted_color(H, default_color) - spec_updatehealth(H) - H.visible_message("[H] modulates \his EM frequency to [new_etherealcolor].") + current_color = health_adjusted_color(_human, default_color) + spec_updatehealth(_human) + _human.visible_message(span_notice("[_human] modulates [_human.p_their()] EM frequency to [new_etherealcolor]")) else - to_chat(user, "Invalid color. Your color is not bright enough.") + to_chat(user, span_danger("Invalid color. Your color is not bright enough.")) else . = ..() diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm index fa7b0a133bae..0b5a7f80a837 100644 --- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm @@ -23,6 +23,28 @@ desc = "A 7-round speed loader for quickly reloading .357 revolvers. These hollow point rounds do incredible damage against soft targets, but are nearly ineffective against armored ones." ammo_type = /obj/item/ammo_casing/a357/hp +/obj/item/ammo_box/a357_box + name = "ammo box (.357)" + desc = "A box of standard .357 ammo." + icon_state = "357box" + ammo_type = /obj/item/ammo_casing/a357 + max_ammo = 50 + +/obj/item/ammo_box/a357_box/match + name = "ammo box (.357)" + desc = "A box of match .357 ammo." + icon_state = "357box-match" + ammo_type = /obj/item/ammo_casing/a357/match + max_ammo = 50 + +/obj/item/ammo_box/a357_box/hp + name = "ammo box (.357)" + desc = "A box of hollow point .357 ammo." + icon_state = "357box-hp" + ammo_type = /obj/item/ammo_casing/a357/hp + max_ammo = 50 + + // .45-70 Ammo Holders (Hunting Revolver) /obj/item/ammo_box/a4570 @@ -443,3 +465,10 @@ icon_state = "8x50mmbox-hp" ammo_type = /obj/item/ammo_casing/a8_50rhp max_ammo = 20 + +/obj/item/ammo_box/a300_box + name = "ammo box (.300 Magnum)" + desc = "A box of standard .300 Magnum ammo." + icon_state = "300box" + ammo_type = /obj/item/ammo_casing/a300 + max_ammo = 20 diff --git a/code/modules/projectiles/boxes_magazines/internal/revolver.dm b/code/modules/projectiles/boxes_magazines/internal/revolver.dm index 43748f7afe7b..d757ddf03047 100644 --- a/code/modules/projectiles/boxes_magazines/internal/revolver.dm +++ b/code/modules/projectiles/boxes_magazines/internal/revolver.dm @@ -28,7 +28,10 @@ /obj/item/ammo_box/magazine/internal/cylinder/pepperbox name = "pepperbox revolver cylinder" + ammo_type = /obj/item/ammo_casing/a357 + caliber = ".357" max_ammo = 5 + instant_load = FALSE /obj/item/ammo_box/magazine/internal/cylinder/rev45 name = "cattleman revolver cylinder" diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm index f201dfbca548..dea8c12e5a2e 100644 --- a/code/modules/projectiles/guns/ballistic/revolver.dm +++ b/code/modules/projectiles/guns/ballistic/revolver.dm @@ -472,6 +472,7 @@ "The Peacemaker" = "detective_peacemaker", "Black Panther" = "detective_panther" ) + w_class = WEIGHT_CLASS_SMALL manufacturer = MANUFACTURER_HUNTERSPRIDE recoil = 0 //weaker than normal revolver, no recoil @@ -679,6 +680,7 @@ manufacturer = MANUFACTURER_HUNTERSPRIDE spread_unwielded = 50 fire_delay = 0 + gate_offset = 4 semi_auto = TRUE safety_wording = "safety" diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm index 5f39d407d749..ac3aa9e3d21a 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -1,6 +1,6 @@ /obj/item/gun/energy/kinetic_accelerator name = "kinetic accelerator" - desc = "A self recharging, ranged self-defense and rock pulverizing tool that does increased damage in low pressure. EXOCON does not condone use of this weapon against other sentient life." + desc = "A self recharging, ranged self-defense and rock pulverizing tool that does increased damage in low pressure. EXOCOM does not condone use of this weapon against other sentient life." icon_state = "kineticgun" item_state = "kineticgun" ammo_type = list(/obj/item/ammo_casing/energy/kinetic) diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 06698ca53982..829393d4d115 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -306,7 +306,7 @@ if(firer && HAS_TRAIT(firer, TRAIT_NICE_SHOT)) best_angle += NICE_SHOT_RICOCHET_BONUS for(var/mob/living/L in range(ricochet_auto_aim_range, src.loc)) - if(L.stat == DEAD || !isInSight(src, L)) + if(L.stat == DEAD || !isInSight(src, L) || L == firer) continue var/our_angle = abs(closer_angle_difference(Angle, Get_Angle(src.loc, L.loc))) if(our_angle < best_angle) diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index 0985ce758976..290aec1f6c54 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -1,12 +1,12 @@ /proc/translate_legacy_chem_id(id) - switch (id) - if ("sacid") + switch(id) + if("sacid") return "sulphuricacid" - if ("facid") + if("facid") return "fluorosulfuricacid" - if ("co2") + if("co2") return "carbondioxide" - if ("mine_salve") + if("mine_salve") return "minerssalve" else return ckey(id) @@ -15,7 +15,7 @@ name = "chem dispenser" desc = "Creates and dispenses chemicals." density = TRUE - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/chem_machines.dmi' icon_state = "dispenser" base_icon_state = "dispenser" use_power = IDLE_POWER_USE @@ -451,7 +451,7 @@ /obj/machinery/chem_dispenser/drinks name = "soda dispenser" desc = "Contains a large reservoir of soft drinks." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/chem_machines.dmi' icon_state = "soda_dispenser" base_icon_state = "soda_dispenser" has_panel_overlay = FALSE @@ -509,7 +509,7 @@ name = "booze dispenser" desc = "Contains a large reservoir of the good stuff." base_icon_state = "booze_dispenser" - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/chem_machines.dmi' icon_state = "booze_dispenser" circuit = /obj/item/circuitboard/machine/chem_dispenser/drinks/beer dispensable_reagents = list( diff --git a/code/modules/reagents/chemistry/machinery/chem_heater.dm b/code/modules/reagents/chemistry/machinery/chem_heater.dm index b3a0cfee615d..e8892390e189 100644 --- a/code/modules/reagents/chemistry/machinery/chem_heater.dm +++ b/code/modules/reagents/chemistry/machinery/chem_heater.dm @@ -1,7 +1,7 @@ /obj/machinery/chem_heater name = "chemical heater" density = TRUE - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/chem_machines.dmi' icon_state = "mixer0b" base_icon_state = "mixer" use_power = IDLE_POWER_USE diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index 602c37710a57..e53a7f20ae16 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -3,7 +3,7 @@ desc = "Used to separate chemicals and distribute them in a variety of forms." density = TRUE layer = BELOW_OBJ_LAYER - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/chem_machines.dmi' icon_state = "mixer0" base_icon_state = "mixer" use_power = IDLE_POWER_USE diff --git a/code/modules/reagents/chemistry/machinery/chem_press.dm b/code/modules/reagents/chemistry/machinery/chem_press.dm index 80500efc78bf..43cd01e63b65 100644 --- a/code/modules/reagents/chemistry/machinery/chem_press.dm +++ b/code/modules/reagents/chemistry/machinery/chem_press.dm @@ -1,7 +1,7 @@ /obj/machinery/chem_press name = "pill press" desc = "A press operated by hand to produce pills in a variety of forms." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/chem_machines.dmi' icon_state = "press" pass_flags = PASSTABLE use_power = FALSE @@ -26,17 +26,17 @@ /obj/machinery/chem_press/Initialize() . = ..() beaker = new /obj/item/reagent_containers/glass/beaker/large(src) - beaker_overlay = image(icon = 'icons/obj/chemical.dmi', icon_state = "press_beaker") - bottle_overlay = image(icon = 'icons/obj/chemical.dmi', icon_state = "press_bottle") + beaker_overlay = image(icon = 'icons/obj/chemical/chem_machines.dmi', icon_state = "press_beaker") + bottle_overlay = image(icon = 'icons/obj/chemical/chem_machines.dmi', icon_state = "press_bottle") //shouldn't this use mutable_appearance...? /obj/machinery/chem_press/examine(mob/user) . = ..() - . += "There's a small screw that can help to adjust the pill size." - . += "There's a small dial you could push with a screwdriver to adjust the pill color." + . += span_notice("There's a small screw that can help to adjust the pill size.") + . += span_notice("There's a small dial you could push with a screwdriver to adjust the pill color.") if(!bottle) - . += "The pill bottle slot is empty." + . += span_notice("The pill bottle slot is empty.") if(!beaker) - . += "The beaker slot is empty." + . += span_notice("The beaker slot is empty.") /obj/machinery/chem_press/attack_hand(mob/user) . = ..() diff --git a/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm b/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm index 2c6f5ed38186..7b5656521209 100644 --- a/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm +++ b/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm @@ -1,7 +1,7 @@ /obj/machinery/chem_dispenser/chem_synthesizer //formerly SCP-294 made by mrty, but now only for testing purposes name = "\improper debug chemical synthesizer" desc = "If you see this, yell at adminbus." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/chem_machines.dmi' icon_state = "dispenser" base_icon_state = "dispenser" amount = 10 diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm index 1fefd1d55031..65bcf56ef25c 100644 --- a/code/modules/reagents/chemistry/machinery/pandemic.dm +++ b/code/modules/reagents/chemistry/machinery/pandemic.dm @@ -5,7 +5,7 @@ name = "PanD.E.M.I.C 2200" desc = "Used to work with viruses." density = TRUE - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "pandemic0" base_icon_state = "pandemic" use_power = TRUE diff --git a/code/modules/reagents/chemistry/machinery/smoke_machine.dm b/code/modules/reagents/chemistry/machinery/smoke_machine.dm index 7c67609593d5..e93e6f3117ca 100644 --- a/code/modules/reagents/chemistry/machinery/smoke_machine.dm +++ b/code/modules/reagents/chemistry/machinery/smoke_machine.dm @@ -3,7 +3,7 @@ /obj/machinery/smoke_machine name = "smoke machine" desc = "A machine with a centrifuge installed into it. It produces smoke with any reagents you put into the machine." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/chem_machines.dmi' icon_state = "smoke0" base_icon_state = "smoke" density = TRUE diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm index a35a8c91542a..66465dfafb17 100644 --- a/code/modules/reagents/chemistry/reagents.dm +++ b/code/modules/reagents/chemistry/reagents.dm @@ -77,6 +77,9 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent()) ///How good of an accelerant is this reagent var/accelerant_quality = 0 + ///The section of the autowiki chem table this reagent will be under + var/category = "Misc" + /datum/reagent/New() . = ..() diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm index ad21aa93e745..b776a285b346 100644 --- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm @@ -2,6 +2,7 @@ name = "Drug" metabolization_rate = 0.5 * REAGENTS_METABOLISM taste_description = "bitterness" + category = "Drug" var/trippy = TRUE //Does this drug make you trip? /datum/reagent/drug/on_mob_end_metabolize(mob/living/M) diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index e17af4bd9c86..2c0ecef181a1 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -11,6 +11,7 @@ name = "Consumable" taste_description = "generic food" taste_mult = 4 + category = "Food and Drink" var/nutriment_factor = 1 * REAGENTS_METABOLISM var/quality = 0 //affects mood, typically higher for mixed drinks with more complex recipes diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 24be546cb3f6..7fb71324d7af 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -9,6 +9,7 @@ /datum/reagent/medicine name = "Medicine" taste_description = "bitterness" + category = "Medicine" /datum/reagent/medicine/on_mob_life(mob/living/carbon/M) current_cycle++ diff --git a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm index 62c743558e13..313fb7475e00 100644 --- a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm @@ -2,6 +2,7 @@ /datum/reagent/thermite name = "Thermite" description = "Thermite produces an aluminothermic reaction known as a thermite reaction. Can be used to melt walls." + category = "Pyrotechnics" reagent_state = SOLID color = "#550000" taste_description = "sweet tasting metal" @@ -19,6 +20,7 @@ /datum/reagent/nitroglycerin name = "Nitroglycerin" description = "Nitroglycerin is a heavy, colorless, oily, explosive liquid obtained by nitrating glycerol." + category = "Pyrotechnics" color = "#808080" // rgb: 128, 128, 128 taste_description = "oil" @@ -37,6 +39,7 @@ /datum/reagent/clf3 name = "Chlorine Trifluoride" description = "Makes a temporary 3x3 fireball when it comes into existence, so be careful when mixing. ClF3 applied to a surface burns things that wouldn't otherwise burn, including typically-robust flooring, potentially exposing it to the vacuum of space." + category = "Pyrotechnics" reagent_state = LIQUID color = "#FFC8C8" metabolization_rate = 4 @@ -82,6 +85,7 @@ /datum/reagent/sorium name = "Sorium" description = "Sends everything flying from the detonation point." + category = "Pyrotechnics" reagent_state = LIQUID color = "#5A64C8" taste_description = "air and bitterness" @@ -89,6 +93,7 @@ /datum/reagent/liquid_dark_matter name = "Liquid Dark Matter" description = "Sucks everything into the detonation point." + category = "Pyrotechnics" reagent_state = LIQUID color = "#210021" taste_description = "compressed bitterness" @@ -96,6 +101,7 @@ /datum/reagent/gunpowder name = "Gunpowder" description = "Explodes. Violently." + category = "Pyrotechnics" reagent_state = LIQUID color = "#000000" metabolization_rate = 0.05 @@ -120,6 +126,7 @@ /datum/reagent/rdx name = "RDX" description = "Military grade explosive" + category = "Pyrotechnics" reagent_state = SOLID color = "#FFFFFF" taste_description = "salt" @@ -127,6 +134,7 @@ /datum/reagent/tatp name = "TaTP" description = "Suicide grade explosive" + category = "Pyrotechnics" reagent_state = SOLID color = "#FFFFFF" taste_description = "death" @@ -134,6 +142,7 @@ /datum/reagent/flash_powder name = "Flash Powder" description = "Makes a very bright flash." + category = "Pyrotechnics" reagent_state = LIQUID color = "#C8C8C8" taste_description = "salt" @@ -141,6 +150,7 @@ /datum/reagent/smoke_powder name = "Smoke Powder" description = "Makes a large cloud of smoke that can carry reagents." + category = "Pyrotechnics" reagent_state = LIQUID color = "#C8C8C8" taste_description = "smoke" @@ -148,6 +158,7 @@ /datum/reagent/sonic_powder name = "Sonic Powder" description = "Makes a deafening noise." + category = "Pyrotechnics" reagent_state = LIQUID color = "#C8C8C8" taste_description = "loud noises" @@ -155,6 +166,7 @@ /datum/reagent/phlogiston name = "Phlogiston" description = "Catches you on fire and makes you ignite." + category = "Pyrotechnics" reagent_state = LIQUID color = "#FA00AF" taste_description = "burning" @@ -179,6 +191,7 @@ /datum/reagent/napalm name = "Napalm" description = "Very flammable." + category = "Pyrotechnics" reagent_state = LIQUID color = "#FA00AF" taste_description = "burning" @@ -206,6 +219,7 @@ /datum/reagent/cryostylane name = "Cryostylane" description = "Comes into existence at 20K. As long as there is sufficient oxygen for it to react with, Cryostylane slowly cools all other reagents in the container 0K." + category = "Pyrotechnics" color = "#0000DC" metabolization_rate = 0.5 * REAGENTS_METABOLISM taste_description = "bitterness" @@ -227,6 +241,7 @@ /datum/reagent/pyrosium name = "Pyrosium" description = "Comes into existence at 20K. As long as there is sufficient oxygen for it to react with, Pyrosium slowly heats all other reagents in the container." + category = "Pyrotechnics" color = "#64FAC8" metabolization_rate = 0.5 * REAGENTS_METABOLISM taste_description = "bitterness" @@ -242,6 +257,7 @@ /datum/reagent/teslium //Teslium. Causes periodic shocks, and makes shocks against the target much more effective. name = "Teslium" description = "An unstable, electrically-charged metallic slurry. Periodically electrocutes its victim, and makes electrocutions against them more deadly. Excessively heating teslium results in dangerous destabilization. Do not allow to come into contact with water." + category = "Pyrotechnics" reagent_state = LIQUID color = "#20324D" //RGB: 32, 50, 77 metabolization_rate = 0.5 * REAGENTS_METABOLISM @@ -273,6 +289,7 @@ /datum/reagent/teslium/energized_jelly name = "Energized Jelly" description = "Electrically-charged jelly. Boosts jellypeople's nervous system, but only shocks other lifeforms." + category = "Pyrotechnics" reagent_state = LIQUID color = "#CAFF43" taste_description = "jelly" @@ -291,6 +308,7 @@ /datum/reagent/firefighting_foam name = "Firefighting Foam" description = "A historical fire suppressant. Originally believed to simply displace oxygen to starve fires, it actually interferes with the combustion reaction itself. Vastly superior to the cheap water-based extinguishers found on NT vessels." + category = "Pyrotechnics" reagent_state = LIQUID color = "#A6FAFF55" taste_description = "the inside of a fire extinguisher" diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index d95bd68759c7..91927581095c 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -7,6 +7,7 @@ color = "#CF3600" // rgb: 207, 54, 0 taste_description = "bitterness" taste_mult = 1.2 + category = "Toxin" var/toxpwr = 1.5 var/silent_toxin = FALSE //won't produce a pain message when processed by liver/life() if there isn't another non-silent toxin present. diff --git a/code/modules/reagents/chemistry/recipes/medicine.dm b/code/modules/reagents/chemistry/recipes/medicine.dm index b2e275bc0631..302d05f0712b 100644 --- a/code/modules/reagents/chemistry/recipes/medicine.dm +++ b/code/modules/reagents/chemistry/recipes/medicine.dm @@ -315,12 +315,12 @@ WS End */ required_reagents = list(/datum/reagent/medicine/lavaland_extract = 1, /datum/reagent/medicine/bonefixingjuice = 1, /datum/reagent/titanium = 5) /datum/chemical_reaction/pure_soulus_dust_hollow - results = list(/datum/reagent/medicine/soulus/pure = 10,) - required_reagents = list(/datum/reagent/medicine/soulus = 20, /datum/reagent/medicine/system_cleaner = 1, /datum/reagent/water/hollowwater = 10) + results = list(/datum/reagent/medicine/soulus/pure = 20,) + required_reagents = list(/datum/reagent/medicine/soulus = 20, /datum/reagent/water/hollowwater = 10) /datum/chemical_reaction/pure_soulus_dust_holy - results = list(/datum/reagent/medicine/soulus/pure = 10,) - required_reagents = list(/datum/reagent/medicine/soulus = 20, /datum/reagent/medicine/system_cleaner = 1, /datum/reagent/water/holywater = 10) + results = list(/datum/reagent/medicine/soulus/pure = 20,) + required_reagents = list(/datum/reagent/medicine/soulus = 20, /datum/reagent/water/holywater = 10) /datum/chemical_reaction/chartreuse results = list(/datum/reagent/medicine/chartreuse = 10) diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm index d63debc16e41..bfecd046f977 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -1,7 +1,7 @@ /obj/item/reagent_containers name = "Container" desc = "..." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/beakers.dmi' icon_state = null w_class = WEIGHT_CLASS_TINY var/amount_per_transfer_from_this = 5 diff --git a/code/modules/reagents/reagent_containers/bottle.dm b/code/modules/reagents/reagent_containers/bottle.dm index 5645ed54957e..5916fee4b44a 100644 --- a/code/modules/reagents/reagent_containers/bottle.dm +++ b/code/modules/reagents/reagent_containers/bottle.dm @@ -278,6 +278,7 @@ /obj/item/reagent_containers/glass/bottle/necropolis_seed name = "bowl of blood" desc = "A clay bowl containing a fledgling spire, preserved in blood. When consumed, allows the user to transform into an avatar of the Necropolis. A robust virologist may be able to unlock its full potential..." + icon = 'icons/obj/chemical/mortar.dmi' icon_state = "mortar_bone" spawned_disease = /datum/disease/advance/necropolis diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm index 63acf014b214..248586792679 100644 --- a/code/modules/reagents/reagent_containers/dropper.dm +++ b/code/modules/reagents/reagent_containers/dropper.dm @@ -1,7 +1,7 @@ /obj/item/reagent_containers/dropper name = "dropper" desc = "A dropper. Holds up to 5 units." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/beakers.dmi' icon_state = "dropper0" amount_per_transfer_from_this = 5 possible_transfer_amounts = list(1, 2, 3, 4, 5) diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 6682a9ba7943..58e46dcb1048 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -118,7 +118,7 @@ /obj/item/reagent_containers/glass/beaker name = "beaker" desc = "A beaker. It can hold up to 50 units." - icon = 'icons/obj/chemical.dmi' //Should I modularize this? Yes. Will I do it? + icon = 'icons/obj/chemical/beakers.dmi' icon_state = "beaker" item_state = "beaker" custom_materials = list(/datum/material/glass=500) @@ -296,7 +296,6 @@ /obj/item/reagent_containers/glass/filter name = "seperatory funnel" desc = "A crude tool created by welding several beakers together. It would probably be useful for seperating reagents." - icon = 'icons/obj/chemical.dmi' icon_state = "beakerfilter" item_state = "beaker" volume = 100 diff --git a/code/modules/reagents/reagent_containers/hypovial.dm b/code/modules/reagents/reagent_containers/hypovial.dm index f16984cd7e5b..7696bf0d950a 100644 --- a/code/modules/reagents/reagent_containers/hypovial.dm +++ b/code/modules/reagents/reagent_containers/hypovial.dm @@ -2,7 +2,7 @@ /obj/item/reagent_containers/glass/bottle/vial name = "broken hypovial" desc = "A hypovial compatible with most hyposprays." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/hypovial.dmi' icon_state = "hypovial" spillable = FALSE var/comes_with = list() //Easy way of doing this. diff --git a/code/modules/reagents/reagent_containers/jug.dm b/code/modules/reagents/reagent_containers/jug.dm index a863be707c48..80ebcbb4d5b3 100644 --- a/code/modules/reagents/reagent_containers/jug.dm +++ b/code/modules/reagents/reagent_containers/jug.dm @@ -1,7 +1,7 @@ /obj/item/reagent_containers/glass/chem_jug name = "chemical jug" desc = "A large jug used for storing bulk ammounts chemicals. Provided with a tamper seal which ensures that the contents are pure" - icon = 'icons/obj/chem_jug.dmi' + icon = 'icons/obj/chemical/chem_jug.dmi' icon_state = "chem_jug" item_state = "sheet-plastic" w_class = WEIGHT_CLASS_BULKY diff --git a/code/modules/reagents/reagent_containers/medigel.dm b/code/modules/reagents/reagent_containers/medigel.dm index 7542f606a899..193d588bcbb5 100644 --- a/code/modules/reagents/reagent_containers/medigel.dm +++ b/code/modules/reagents/reagent_containers/medigel.dm @@ -1,7 +1,7 @@ /obj/item/reagent_containers/medigel name = "medical gel" desc = "A medical gel applicator bottle, designed for precision application, with an unscrewable cap." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/medicine.dmi' icon_state = "medigel" item_state = "spraycan" lefthand_file = 'icons/mob/inhands/equipment/hydroponics_lefthand.dmi' diff --git a/code/modules/reagents/reagent_containers/mortar.dm b/code/modules/reagents/reagent_containers/mortar.dm index 3c1443bfb9d2..c139a0b6fb09 100644 --- a/code/modules/reagents/reagent_containers/mortar.dm +++ b/code/modules/reagents/reagent_containers/mortar.dm @@ -10,14 +10,14 @@ to accommodate additional materials. name = "pestle" desc = "An ancient, simple tool used in conjunction with a mortar to grind or juice items." w_class = WEIGHT_CLASS_SMALL - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/mortar.dmi' icon_state = "pestle" force = 7 /obj/item/reagent_containers/glass/mortar name = "mortar" desc = "A specially formed bowl of ancient design. It is possible to crush or juice items placed in it using a pestle; however the process, unlike modern methods, is slow and physically exhausting. Alt click to eject the item." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/mortar.dmi' icon_state = "mortar_wood" fill_icon_state = "mortar" fill_icon_thresholds = list(1, 20, 40, 80, 100) diff --git a/code/modules/reagents/reagent_containers/patch.dm b/code/modules/reagents/reagent_containers/patch.dm index c8187cd8843d..d244b05f55d3 100644 --- a/code/modules/reagents/reagent_containers/patch.dm +++ b/code/modules/reagents/reagent_containers/patch.dm @@ -1,7 +1,7 @@ /obj/item/reagent_containers/pill/patch name = "chemical patch" desc = "A chemical patch for touch based applications." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/medicine.dmi' icon_state = "bandaid" item_state = "bandaid" possible_transfer_amounts = list() diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 85853ba5096b..77b8bc8f318c 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -1,7 +1,7 @@ /obj/item/reagent_containers/pill name = "pill" desc = "A tablet or capsule." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/medicine.dmi' icon_state = "pill" item_state = "pill" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 8be0bea8a313..05f68682083c 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -213,16 +213,6 @@ /obj/item/reagent_containers/spray/waterflower/attack_self(mob/user) //Don't allow changing how much the flower sprays return -///Subtype used for the lavaland clown ruin. -/obj/item/reagent_containers/spray/waterflower/superlube - name = "clown flower" - desc = "A delightly devilish flower... you got a feeling where this is going." - icon = 'icons/obj/chemical.dmi' - icon_state = "clownflower" - amount_per_transfer_from_this = 3 // WS edit - superlube fix - volume = 30 - list_reagents = list(/datum/reagent/lube/superlube = 30) - /obj/item/reagent_containers/spray/waterflower/cyborg reagent_flags = NONE volume = 100 @@ -345,26 +335,9 @@ volume = 100 list_reagents = list(/datum/reagent/toxin/plantbgone = 100) -/obj/item/reagent_containers/spray/syndicate - name = "suspicious spray bottle" - desc = "A spray bottle, with a high performance plastic nozzle. The color scheme makes you feel slightly uneasy." - icon = 'icons/obj/chemical.dmi' - icon_state = "sprayer_sus_8" - item_state = "sprayer_sus" - lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' - spray_range = 4 - stream_range = 2 - volume = 100 - custom_premium_price = 900 - -/obj/item/reagent_containers/spray/syndicate/Initialize() - . = ..() - icon_state = pick("sprayer_sus_1", "sprayer_sus_2", "sprayer_sus_3", "sprayer_sus_4", "sprayer_sus_5","sprayer_sus_6", "sprayer_sus_7", "sprayer_sus_8") - /obj/item/reagent_containers/spray/medical name = "medical spray bottle" - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/medicine.dmi' icon_state = "sprayer_med_red" item_state = "sprayer_med_red" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' diff --git a/code/modules/research/xenobiology/crossbreeding/_potions.dm b/code/modules/research/xenobiology/crossbreeding/_potions.dm index 1fb17ea4d1fd..fc9d9ef06c6a 100644 --- a/code/modules/research/xenobiology/crossbreeding/_potions.dm +++ b/code/modules/research/xenobiology/crossbreeding/_potions.dm @@ -8,7 +8,7 @@ Slimecrossing Potions /obj/item/slimepotion/extract_cloner name = "extract cloning potion" desc = "An more powerful version of the extract enhancer potion, capable of cloning regular slime extracts." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potpurple" /obj/item/slimepotion/extract_cloner/afterattack(obj/item/target, mob/user , proximity) @@ -36,7 +36,7 @@ Slimecrossing Potions /obj/item/slimepotion/peacepotion name = "pacification potion" desc = "A light pink solution of chemicals, smelling like liquid peace. And mercury salts." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potlightpink" /obj/item/slimepotion/peacepotion/attack(mob/living/M, mob/user) @@ -70,7 +70,7 @@ Slimecrossing Potions /obj/item/slimepotion/lovepotion name = "love potion" desc = "A pink chemical mix thought to inspire feelings of love." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potpink" /obj/item/slimepotion/lovepotion/attack(mob/living/M, mob/user) @@ -104,7 +104,7 @@ Slimecrossing Potions /obj/item/slimepotion/spaceproof name = "slime pressurization potion" desc = "A potent chemical sealant that will render any article of clothing airtight. Has two uses." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potblue" var/uses = 2 @@ -136,14 +136,14 @@ Slimecrossing Potions /obj/item/slimepotion/enhancer/max name = "extract maximizer" desc = "An extremely potent chemical mix that will maximize a slime extract's uses." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potpurple" //Lavaproofing potion - Charged Red /obj/item/slimepotion/lavaproof name = "slime lavaproofing potion" desc = "A strange, reddish goo said to repel lava as if it were water, without reducing flammability. Has two uses." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potred" resistance_flags = LAVA_PROOF | FIRE_PROOF var/uses = 2 @@ -174,7 +174,7 @@ Slimecrossing Potions /obj/item/slimepotion/slime_reviver name = "slime revival potion" desc = "Infused with plasma and compressed gel, this brings dead slimes back to life." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potsilver" /obj/item/slimepotion/slime_reviver/attack(mob/living/simple_animal/slime/M, mob/user) @@ -198,7 +198,7 @@ Slimecrossing Potions /obj/item/slimepotion/slime/chargedstabilizer name = "slime omnistabilizer" desc = "An extremely potent chemical mix that will stop a slime from mutating completely." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potcyan" /obj/item/slimepotion/slime/chargedstabilizer/attack(mob/living/simple_animal/slime/M, mob/user) diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index 113f130562de..c907f11c1cfa 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -664,7 +664,7 @@ /obj/item/slimepotion/slime/docility name = "docility potion" desc = "A potent chemical mix that nullifies a slime's hunger, causing it to become docile and tame." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potsilver" /obj/item/slimepotion/slime/docility/attack(mob/living/simple_animal/slime/M, mob/user) @@ -695,7 +695,7 @@ /obj/item/slimepotion/slime/sentience name = "intelligence potion" desc = "A miraculous chemical mix that grants human like intelligence to living beings." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potpink" var/list/not_interested = list() var/being_used = FALSE @@ -754,7 +754,7 @@ /obj/item/slimepotion/transference name = "consciousness transference potion" desc = "A strange slime-based chemical that, when used, allows the user to transfer their consciousness to a lesser being." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potorange" var/prompted = 0 var/animal_type = SENTIENCE_ORGANIC @@ -802,7 +802,7 @@ /obj/item/slimepotion/slime/steroid name = "slime steroid" desc = "A potent chemical mix that will cause a baby slime to generate more extract." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potred" /obj/item/slimepotion/slime/steroid/attack(mob/living/simple_animal/slime/M, mob/user) @@ -826,13 +826,13 @@ /obj/item/slimepotion/enhancer name = "extract enhancer" desc = "A potent chemical mix that will give a slime extract an additional use." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potpurple" /obj/item/slimepotion/slime/stabilizer name = "slime stabilizer" desc = "A potent chemical mix that will reduce the chance of a slime mutating." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potcyan" /obj/item/slimepotion/slime/stabilizer/attack(mob/living/simple_animal/slime/M, mob/user) @@ -853,7 +853,7 @@ /obj/item/slimepotion/slime/mutator name = "slime mutator" desc = "A potent chemical mix that will increase the chance of a slime mutating." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potgreen" /obj/item/slimepotion/slime/mutator/attack(mob/living/simple_animal/slime/M, mob/user) @@ -878,7 +878,7 @@ /obj/item/slimepotion/speed name = "slime speed potion" desc = "A potent chemical mix that will reduce the slowdown from any item." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potyellow" /obj/item/slimepotion/speed/afterattack(obj/C, mob/user, proximity) @@ -913,7 +913,7 @@ /obj/item/slimepotion/fireproof name = "slime chill potion" desc = "A potent chemical mix that will fireproof any article of clothing. Has three uses." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potblue" resistance_flags = FIRE_PROOF var/uses = 3 @@ -945,7 +945,7 @@ /obj/item/slimepotion/genderchange name = "gender change potion" desc = "An interesting chemical mix that changes the biological gender of what its applied to. Cannot be used on things that lack gender entirely." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potlightpink" /obj/item/slimepotion/genderchange/attack(mob/living/L, mob/user) @@ -969,7 +969,7 @@ /obj/item/slimepotion/slime/renaming name = "renaming potion" desc = "A potion that allows a self-aware being to change what name it subconciously presents to the world." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potgreen" var/being_used = FALSE @@ -1002,7 +1002,7 @@ /obj/item/slimepotion/slime/slimeradio name = "bluespace radio potion" desc = "A strange chemical that grants those who ingest it the ability to broadcast and receive subscape radio waves." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potgrey" /obj/item/slimepotion/slime/slimeradio/attack(mob/living/M, mob/user) diff --git a/code/modules/ruins/spaceruin_code/DJstation.dm b/code/modules/ruins/spaceruin_code/DJstation.dm deleted file mode 100644 index 3be98b064e3e..000000000000 --- a/code/modules/ruins/spaceruin_code/DJstation.dm +++ /dev/null @@ -1,5 +0,0 @@ -/////////// djstation items - -/obj/item/paper/fluff/ruins/djstation - name = "paper - 'DJ Listening Outpost'" - default_raw_text = "Welcome new owner!

You have purchased the latest in listening equipment. The telecommunication setup we created is the best in listening to common and private radio frequencies. Here is a step by step guide to start listening in on those saucy radio channels:
  1. Equip yourself with a multitool
  2. Use the multitool on the relay.
  3. Turn it on. It has already been configured for you to listen on.
Simple as that. Now to listen to the private channels, you'll have to configure the intercoms. They are located on the front desk. Here is a list of frequencies for you to listen on.